.Net Framework

.Net程序跑在Linux上

时光总嘲笑我的痴心妄想 提交于 2020-08-16 09:58:43
.Net越来越拥抱开源了,今天就试了如何让.Net程序跑在Linux上,果然再无人可以阻挡.Net的脚步了。 Linux Disibutaion:Open Logic 7.2 1、Install .NET Core SDK SSH进入Linux,输入如下命令: sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=827529 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin 这里我们就安装好了.Net程序运行的环境。 2、打开VS,新建一个控制台应用程序 3、将代码文件上传到Linux上 这里我使用的是pscp command line工具上传文件到linux 代码上传成功之后,我们的程序要跑在linux上,还缺少一个project.json的文件。 输入linux命令:vi project.json 进入vi编辑器加入如下内容: { "version": "1.0.0-*", "buildOptions": { "debugType":

基于.NET的免费开源的模板引擎---VTemplate

回眸只為那壹抹淺笑 提交于 2020-08-16 09:32:09
1、VTemplate模板引擎的简介 VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何人使用简单的类似HTML语法的模板语言来引用.NET里定义的对象。当VTemplate应用于web开发时,界面设计人员可以和程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由程序开发人员关注业务逻辑编码。VTemplate将.NET程序代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在ASP.NET WebForm开发之外又提供了一种可选的方案。 VTemplate也可以作为动态文本生成工具,生成HTML、XML、邮件、程序源代码或其它文本等。 2、VTemplate模板的特色: 2.1、 VT是一种解释型的模板引擎,所以你可以随时更改你的模板代码以获得不同的输出,而不需要重新编译程序代码 2. 2、 VT支持缓存,也就是模板只需要解析一次,下次就可以直接从内存里构建您的模板对象而不需要再次解析模板代码,除非相关的模板文件已被修改。 2. 3、 VT的模板标签语法是基于HTML规范定义的元素,所以对页面设计人员来说是非常友好的。 2. 4、 VT模板支持循环、条件判断、数值表达式计算等,以方便你在模板里直接进行逻辑处理。 2. 5、 VT支持直接调用对象里的方法 例子: --------

Autocad.net利用Xaml创建Ribbon界面

空扰寡人 提交于 2020-08-16 08:27:40
0.Ribbon界面 Ribbon界面设计语言最早于Office 2007出现,后来逐渐被其他Windows系统组件采用,一些专业软件也开始以Ribbon界面取代传统菜单栏设计。Ribbon设计语言显著减少了鼠标点击的平均次数,且更易于使用户找到已存在的功能和发现新功能。 Autodesk AutoCAD从 2009 版开始,引入了 Ribbon 界面,并于2015版开始正式取代传统的菜单组件。一般创建Ribbon界面的方式是用c#新建一个RibbonTab对象,然后加入各种各样的组件,最后附加到Ribbon中去。这种办法不方便实现前后端分离的设计,我们可以仿照WPF的方式,用Xaml编写前端,C#编写后端。 1.准备工作 本文采用Visual Studio 2019和AutoCAD 2018。AutoCAD 2018需要的.Net Framework版本为≥4.6。 首先,因为需要用到WPF的Xaml模板,创建一个“WPF应用(.Net Framework)”,选择版本”.Net Framework 4.6”。 在项目属性中,将输出类型改为“类库”,生成的目标平台改为“x64”。 在“解决方案资源管理器”中,删除“App.config”、“App.xaml”、“MainWindow.xaml”三项。 增加“AutoCAD.Net”Nuget包,选择2018对应的版本22.0.0。

foreach 集合又抛经典异常了,这次一定要刨根问底

空扰寡人 提交于 2020-08-16 07:42:49
一:背景 1. 讲故事 最近同事在写一段业务逻辑的时候,程序跑起来总是报: 集合已修改;可能无法执行枚举操作 ,硬是没有找到什么情况下会导致这个异常产生,就让我来找一下bug,其实这个异常在座的每个程序员几乎都遇到过,谁也不是一生下就是大牛,简单看了下代码,确实是多线程操作foreach,但并没有对foreach进行Add,Remove操作,扫完代码其实我也是有点懵,没撤只能调试了,在foreach里套一层trycatch,查看异常的线程堆栈从而找出了问题代码,代码简化如下: static void Main(string[] args) { var dict = new Dictionary<int, int>() { [1001] = 1, [1002] = 10, [1003] = 20 }; foreach (var userid in dict.Keys) { dict[userid] = dict[userid] + 1; } } 先寻找点安慰,说实话,凭肉眼你觉得这段代码会抛出异常吗? 反正我是被骗过了,大写的尴尬,结论如下,运行一下便知。 从图中看确实是异常,说明在foreach的过程中连迭代集合的 value 都不可以修改,这让我激起了强烈的探索欲,看看FCL中到底是怎么限制的。 二:源码探索 1. 从IL中寻找答案 C#已发展到 9.0 了,到处都充斥着语法糖

龙芯开源社区上线.NET主页

与世无争的帅哥 提交于 2020-08-16 07:40:56
龙芯团队从2019年7 月份开始着手.NET Core的MIPS64支持研发,经过将近一年的研发,在2020年6月18日完成了里程碑性的工作,在github CoreCLR 仓库: https://github.com/gsvm/coreclr , 随后受到.NET社区的很大参与热情鼓舞之下,2020年7月7日,龙芯团队在github发布了 corefx: https://github.com/gsvm/corefx 、core-setup : https://github.com/gsvm/core-setup 。 2020年7月9日,龙芯团队发布了 dotnet 运行时、aspnet core 运行时与 sdk 的 EA 版本,见 loongson-dotnet/releases 。同时在龙芯开源社区上线了.NET主页: http://www.loongnix.org/index.php/Dotnet 。据主页上的介绍龙芯版本 .NET 平台正在开发阶段,该平台基于 .NET Core ,初始版本为3.0,后续会升级至3.1。欢迎贡献 相关文章: 龙芯团队完成CoreCLR MIPS64移植,已在github开源 dotnet core 在 MIPS64 下的移值进度:EA 版本已经发布 来源: oschina 链接: https://my.oschina.net/u

dotnet serve 一句话开启文件服务器 通过 HTTP 将文件共享给其他设备

巧了我就是萌 提交于 2020-08-16 07:19:29
在当前的 IT 领域,我推荐每个开发设备都应该安装 dotnet 这个工具,在 dotnet 这个工具上有大量开发者提供了无数好用的工具。本文要告诉小伙伴的工具是 natemcmaster 大佬提供了 serve 工具,可以用来开启本地文件服务器,使用非常简单。这个方案适合在 Windows 系统和 Linux 系统和 MAC 上使用,发布的 HTTP 服务可以在任何能访问到的设备上使用 默认小伙伴电脑已经安装了 dotnet 工具,如果还没有安装,请到 官网 下载安装 首次使用需要安装,请打开 cmd 控制台输入下面代码安装 dotnet tool install --global dotnet-serve 安装完成之后通过 cmd 控制台进入到需要发布共享的文件夹里面,如我需要发布 F:\lindexi\foo.txt 这个资源到我的笔记本 ubuntu 系统,我先进入到 F:\lindexi 文件夹 cd /d F:\lindexi 然后就是一句话开启文件服务器了 dotnet serve -p 1007 默认会使用 8080 端口,上面代码的 -p 就是指定端口为 1007 如果接受默认端口,那么可以使用 dotnet serve 开启服务器 此时用浏览器访问 http://127.0.0.1:1007 就可以看到文件了 等等,我还有个问题,我不想用 8080 端口

C#解析json文件的方法

╄→гoц情女王★ 提交于 2020-08-16 06:01:54
 JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。 JSON与XML的比较 ◆可读性   JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解。 ◆文件大小与传输   XML允许使用方便的标签,所以文件尺寸是要比JSON大的。而且JSON源于Javascript,所以天生的主战场是Javascript与网络,在这里,JSON有着XML无法赶超的优势。 JSON语法 1. JSON 语法是 JavaScript 对象表示法语法的子集。 数据在名称/值对中:名称是字符串,使用双引号表示。值可以是:数字(整数或浮点数),字符串(在双引号中),数组(在方括号中),对象(在花括号中),true/false/null。 数据由逗号分隔: 花括号保存对象:对象可以包含各种数据,包括数组。 方括号保存数组:数字可以包含对象。 例如: { "employees": [ { "firstName": "Bill", "lastName": "Gates" }, { "firstName": "George", "lastName

实用性网站大全

≡放荡痞女 提交于 2020-08-16 05:55:47
本文阅读仅需三分钟,希望这篇帖子对您有帮助 大多数人不是一开始就是大神、大牛的,都是从菜鸟阶段过来的,所以咱们得沉得住气,低调沉稳的打磨,因为我很赞同郭德纲的那句话:没成功之前,才华等于狗屎。唯有提供自己的学习,不断地改变自己,充实自己,才能在这条路上走的更长远,更踏实,更坚定。以下我要展示的,是给广大的网友提供一些实用性网站和工具,因为,这些真的极具有价值,包您满意,当然,您千万别"收藏从未停止,学习从未开始",因为这是给您用的,望您笑纳!!! 视频学习网站 中国大学慕课(https://www.icourse163.org/) 中国大学mooc里有众多高校的课程,包括国家精品课程。课程质量好且选择多,最重要的是里面能找到与必修课考试内容相同的课程,是广大的大学生群体的追捧网站,是他们期末复习的法宝,当然,不仅仅适用于在校大学生,同样的也适用于上班族 哔哩哔哩(https://www.bilibili.com/) 哔哩哔哩俗称‘B站’,这是小编重点推荐的网站(此处应该有掌声!!!),因为这个网站的视频资源太丰富了,学什么你都能找得到,而且哔哩哔哩是学习网站早已不是新闻,连央视爸爸都点名表扬过。 极客学院(https://www.jikexueyuan.com/) 两个字,专业!在这个网站,我几乎没发现不是针对程序员的课程,缺点是部分课程要收费,(不缺钱的金主爸爸可以浅尝一下)

.NET版文档管理利器Aspose.Words 7月更新已至,看看有没有解决你的疑难!

我们两清 提交于 2020-08-16 05:55:17
七月已至,.NET版Aspose.Words也为大家带来了7月的新版本!Aspose.Words for .Net是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。 点击下载 主要特点如下: 添加了新节点以处理多节结构化文档标签。 添加了一个新的公共属性MailMerge.RetainFirstSectionStart。 RevisionOptions类扩展了新的属性。 改进了SmartArt冷渲染的性能。 具体更新内容 key 概述 类别 WORDSNET-9500 国际字符(泰米尔语)不能正确地从MHTML转换为PDF 新功能 WORDSNET-7150 SDT控件在打开/保存过程中丢失 新功能 WORDSNET-9501 国际字符(泰卢固语)未正确从MHTML转换为PDF 新功能 WORDSNET-5713 包含分节符的StructuredDocumentTag在加载时丢失 新功能 WORDSNET-20589 PDF到DOCX-脚注 新功能 WORDSNET-20480 提供属性以在邮件合并期间启用“严格MS Word行为合规性” 新功能 WORDSNET-9908 通过分节符保留RichText内容控件 新功能 WORDSNET-6773

使用Linux的Crontab定时执行PHP脚本的方法

邮差的信 提交于 2020-08-16 05:05:53
先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行。 要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。 安装crontab: yum install crontabs 说明: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 查看crontab服务状态