1..NET core扫盲
2.盘点5个基于SkiaSharp开发的源码.Net开源图形项目
3.å¼è¿ä½ä»£ç å¦ä½
.NET core扫盲
.NET发行至今已经过了十四个年头。随着版本的源码不断迭代更新,.NET在Windows平台上的源码表现也是越来越好,可以说Windows平台上所有的源码应用类型.NET几乎都能完成。只是源码成也Windows,败也Windows,源码牌九 源码这十四年来,源码除了部分“民间”版本,源码.NET一直没能在官方支持下摆脱Windows平台的源码局限,“开源”和“跨平台”这两个词语也是源码所有.NET开发者心中的痛楚。最终,源码.NET Core出现了,源码它让开发者们在官方和社区的源码支持走出了Windows,可以在macOS,源码Linux主流distributions上编写调试并部署.NET程序。源码系泊系统源码
.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。.NET Core的源码放在 GitHub上,由微软官方和社区共同支持。它和传统的.NET Framework,属于“子集—超集”的关系,或者你也可以简单地认为它就是.NET Framework的跨平台版本(基于 BCL的层面上看)。这是选片系统源码因为在当前版本中(1.0),.NET Core中的大部分核心代码都是从.NET Framework中继承重写的,包括Runtime和Libraries(如GC, JIT, 部分类型)。
现在的.NET Core 1.0版本是一个很小的核心,APIs和工具也并不完整,但是随着.Net Core的不断完善,补充的Apis和创新也会一起整合到.NET Framework中。也就是说,.NET Core微软会同时更新.NET Framework和.NET Core,他们就像俩兄弟,共同努力致富(致谁的富?当然是.NET开发者们),实现所谓的天下大同,也就是 .NET 标准2.0
这里不得不提到一个叫做 .NET Standard Library概念。作为.NET平台APIs开发官方支持标准,它要求所有的文档同步源码.NET框架APIs都遵循向下兼容。比如说.NET Framwork 4.6支持.NET Standard Library 1.3,.NET Framwork 4.6.2框架支持.NET Standard Library 1.5,而.NET Core 1.0框架支持1.6标准。
Tips:是不是想起了MSCorEE.dll这个垫片,它同样承载着Windows平台上为.NET应用程序选择CLR版本的工作
第二种方式和.NET Native也是不一样的,仍然使用CoreCLR,而.NET Native使用CoreRT作为运行时,详细信息请见 dotnet/corert
.NET Core 1.0版本中支持的编程语言仅有C#(F#和VB暂未实现),这里还要提到一个开源的语言编译器Roslyn,它负责将代码编译成我们熟悉的IL语言,然后再借由AOT或JIT编译器编译成机器熟悉的机器语言。
以下内容演示在Windows和CentOS 7.2下的命令行生成和发布demo
3.1 Win
3.1.1 安装 .NET Core SDK和 .NET Core Runtime .NET Core SDK = 使用.NET Core开发应用.NET Core Runtime 和 SDK+CLI 工具
3.1.2 简单的运行结果 打开cmd,依次输入mkdir .project(创建目录),cd .\.project(进入目录),lol源码被盗dotnet new(新建初始项目),dotnet restore(还原依赖),dotnet run(运行)即可运行第一个Hello World程序
3.2 CentOS 7.2(本地Hyper-V)
3.2.1 安装和运行 详情请见: .NET Core in CentOS,大致命令如下
第六行命令后可使用dotnet --info查看是否链接成功,显示如下
以上步骤在.NET Core官方网站都可以找到,可以看到应用在经过简单的dotnet new, dotnet restore, dotnet run命令后就跑起来了,但是这其实是类似于开发环境中的调试运行,而且win上new的应用此时也不能直接跨平台到Linux下运行,所以我们又得提到dotnet publish命令了
3.2.2 Self-contained applications 发布 (1) 修改project.json文件 我们现在win下按照步骤new一个新的HW控制台应用self,按照 官方文档要求,我们需要用以下内容替换原来project.json文件(删除"type": "platform",并增加runtimes节点)
(2) 执行restore和publish操作
之后执行dotnet restore指令,针对平台进行还原操作。该步操作耗时较久,虽然只是两个平台,第一次也花了较长时间。紧接着进行进行dotnet publish -r centos.7-x -c release。
dotnet publish指令详见 dotnet-publish - Packs the application and all of its dependencies into a folder getting it ready for publishing (3) 在Linux平台上运行
上述操作后,我们只需要将发布后的文件夹(bin/release/netcoreapp1.0/centos7-x/publish,包含self.exe)上传到Linux root目录下project(新建)文件夹中, 在Shell中输入指令
修改可执行权限后,即可成功运行“Hello World”,这就是我们“Self-contained applications”方式的部署方法
至此,.NET Core的学习便告一段落了,以上内容简单介绍了.NET Core的组成和特性,同时也在Windows和Linux系统上通过两种不同的部署方式成功运行了示例。相比较之前的.NET Framework傻瓜式部署,.NET Core的新奇真是让我眼前一亮。接下来,我也会将.NET Core和 ASP.NET Core的学习记录下来,欢迎指正。
4.2 相关学习资料
5. 参考资料
盘点5个基于SkiaSharp开发的.Net开源图形项目
基于SkiaSharp开发的.Net开源图形项目为开发者提供了强大的跨平台图形处理能力。这些项目涵盖了从富文本编辑、图像绘制到二维码生成、报表开发和处理等多个领域,展现了SkiaSharp在图形处理领域的广泛适用性与灵活性。
1. **富文本编辑工具**:此工具作为开源的富文本编辑器,支持.Net、.NetCoreapp2.1、.Net 5,提供丰富的字体样式,包括粗体、斜体、下划线等,同时支持Emoji和其他国际字符集的字体回退。此工具的代码地址位于github.com/toptensoftwa...。
2. **图像绘制工具**:此基于Avalonia开发的项目可在macOS、Linux、Windows上运行,允许开发者编写.Net应用程序进行图形绘制和渲染。通过编辑C#代码,开发者可以在右侧实时查看绘制效果。项目源代码位于github.com/mattleibow/S...。
3. **二维码开发库**:这是一个用于生成QR码的.NET库,支持生成文本、URL、二进制数据等多种类型的二维码,并能导出为PNG、JPG格式。同时,此库支持指定二维码的颜色、大小、背景等属性,并且具备跨平台能力。项目地址为github.com/guitarrapc/S...。
4. **报表开发库**:此简单的Xamarin.Forms图表库适用于报表或移动项目开发,提供丰富的示例作为学习资源。项目地址为github.com/NdubuisiJr/s...。
5. **处理开发库**:基于ASP.NET Core的图像处理工具,支持加载各种数据源的,包括HTTP、本地等,提供调整大小、裁剪、旋转等基本图像处理操作,并具备PDF转的功能。此库的代码地址位于github.com/usercode/Ima...。
这些项目展示了SkiaSharp在.Net生态系统中的强大应用潜力,适合不同场景的图形处理需求。开发者可以根据项目需求选择合适的开源库进行开发。
å¼è¿ä½ä»£ç å¦ä½
å¼è¿ä½ä»£ç å¦ä½ï¼æä¹æ ·ï¼å¥½ä¸å¥½ç¨ï¼ä¸é¢è¯´è¯´ä¸ªäººæäºè§£çã
å¼è¿ä½ä»£ç ï¼å称为JNPFï¼å ¶å身æ¯ä¸å®¶å¿«éå¼åå¹³å°ï¼åé¢éæ¸è½¬åæ为ä½ä»£ç 产åãç±ç¦å»ºå¼è¿ä¿¡æ¯ææ¯æéå ¬å¸ç åèæï¼è¯¥å ¬å¸æç«äºå¹´ï¼æ³å®ä»£è¡¨äººä½èµéï¼æ³¨åèµæ¬ä¸ï¼äººåè§æ¨¡äººãæ¯ä¸æ¬¾åºäºä»£ç çæå¨çä½ä»£ç å¼åå¹³å°ï¼æçè§èçå¼åæµç¨åçµæ´»çä¸å¡é»è¾ãéç¨çææ¯æ2ç§ï¼ä¸ç§æ¯NETCoreï¼ä¸ç§æ¯JAVAå¼åï¼æ¥æå¯è§åå¼åç¯å¢ï¼ææ½å¼å¿«é设计表åï¼PCãPadãææºç«¯éé ï¼æéé ç½®ãSaaSæå¡ï¼æ¥å£å¯¹æ¥ï¼å·¥ä½æµå¼æï¼å¤ç«¯ä½¿ç¨WebãAndroidãIOSã微信å°ç¨åºï¼å¹¶ä¸æ以æ建ä¸å¡æµç¨ãé»è¾åæ°æ®æ¨¡åçæéçåè½ã为ä¼ä¸é¡¹ç®èçé¨åéå¤å·¥ä½ï¼è®©å¼åè å°éå¿æ¾å¨ä¸å¡é»è¾ï¼ä¸å¿ ç¦æ¼åºå±æ¶æ设计ã
å¼è¿ä½ä»£ç åè½ï¼
1ãé¶ä»£ç å¼åï¼æ é代ç ï¼ææ½å¼æä½ï¼èªå¨çæå¯è§ååºç¨ï¼çµæ´»æ建ä¸å¡ç®¡çç³»ç»ï¼å å¿«ä¸å¡é¨ç½²ã
2ãä½ä»£ç å¼åï¼åºäºä»£ç çæå¨ï¼ä»£ç èªå¨çæåå¯ä»¥ä¸è½½æ¬å°ï¼è¿è¡äºæ¬¡å¼åï¼æææé«æ´ä½å¼åæçã
3ãæ¥è¡¨å¯è§åï¼æä½çé¢å¯è§åï¼éè¿ç®æé ç½®å³å¯èªå¨çæåç§ç±»åçæ¥è¡¨ï¼ä¸ºä¼ä¸èç大éçéå¤å¼åå·¥ä½ã
4ã大å±å¯è§åï¼ä¸°å¯ç交äºæ§ä»¶åå¾è¡¨ç»ä»¶ï¼æä¾æºè½å¾å½¢æ¨èï¼æ¥è¡¨å¾å½¢ä»»æåæ¢ï¼ä¸ä¸å维度ã度éçéå¶ã
5ãå·¥ä½æµå¼æï¼å®ç°äºçé¢åæµç¨ç建模ï¼ä½¿å¾æµç¨è®¾è®¡åå¾ç®ååå¯æä½ï¼ç¨æ·éè¿æãæãç¹ãæ½å³å¯å¿«éå®ç°æµç¨è®¾è®¡ã
6ã移å¨ç«¯APPï¼ç§»å¨ç«¯æ°æ®æéï¼å¯ä¸é®åå¸å°APPãå°ç¨åºãH5ç移å¨å¹³å°ä¸ï¼å®ç°äºèäºéãé«æåå ¬ã
å¼è¿ä½ä»£ç ç¹ç¹ï¼
1ãææ¯åå¼æï¼éç¨.NET/JAVAææ¯
2ãå ¨æºç 交ä»ï¼å¯äºæ¬¡å¼åçå ¨æºç 交ä»
3ãéä½é¡¹ç®ææ¬ï¼%åºç¡ä»£ç æ éç¼å
4ãè·å¾åä¸ææï¼ä¿æ¤å®¢æ·çåæ³æç
5ãæé«å¼åæçï¼åºç¡åè½æ éå¼å
å¼è¿ä½ä»£ç ææ¯æ ï¼
主æ¡æ¶ï¼Spring Boot + Spring Frameworkãæä¹ å±æ¡æ¶ï¼Mybatis-plusãHibernate ValidationãAlibaba DruidãJSONåºåå: Jacksonã
æ°æ®ç¼åï¼Redisã项ç®æ建ï¼Mavenãå®å ¨æ¡æ¶ï¼Spring Security Oauth2+JWTã模æ¿å¼æï¼Velocityãå³æ¶é讯ï¼spring-boot-starter-websocketãAOP: spring-boot-starter-aopçã
æ¡é¢æä½ç³»ç»ï¼
Windows 7+ãMacOSãUbuntu Desktop(æ¡é¢ç)ãDeepin(深度æä½ç³»ç»)ãç»ä¿¡UOSæ¡é¢(ä¸ä¸)çãä¸æ éºéºæ¡é¢çãä¸ç§æ¹å¾·æ¡é¢ççã
å½å è¿æåªäºå¥½ç¨çä½ä»£ç å¼åå¹³å°ï¼
æè¿éçä½ä»£ç ççç«ï¼å½å å·²ç»åºç°äºå¾å¤ä½ä»£ç å¼åå¹³å°ï¼èä¸JNPFä½ä»£ç 产å类似çä½ä»£ç å¹³å°ï¼å½å ä¹æå¾å¤ï¼æ¯å¦ï¼ééå®æãå为åºç¨éæ¹ãç±éæãClickPaaSãç»ä¿¡Informatçã
ä»æ°æ®å®å ¨è§åº¦èèï¼è¿æ¯ç§æåé¨ç½²çä½ä»£ç å¹³å°æ´é è°±ï¼æ¯å¦ç»ä¿¡Informatä¼ä¸çº§ä½ä»£ç å¹³å°ï¼å¯ä»¥æ»¡è¶³ç¨æ·æ´å¤å®å¶åéæ±ï¼åæ¶æ°æ®æ´å®å ¨ãç§æåé¨ç½²å¯ä»¥ä¸ºä¼ä¸å¸¦æ¥å¾å¤å¢çï¼
1ãå®å¶å¼å
ç§æåé¨ç½²å¯ä»¥æ ¹æ®å®¢æ·èªå·±çéæ±åæ åµï¼å®å¶ä½¿ç¨åè½ãä¸åè¡ä¸ãä¸åç±»åçä¼ä¸ç¨æ·å¯¹è½¯ä»¶éæ±æ¯ä¸ä¸æ ·çï¼éç¨è½¯ä»¶å¹¶ä¸è½æ»¡è¶³ä¸åç±»åç管çéæ±ãè对äºä¸ä¸ªä¼ä¸æ¥è¯´ï¼æå¤çåå±é¶æ®µä¸ä¸æ ·ï¼å°±åå¨äºä¸ä¸æ ·ç管çéæ±ãå¾å¤ä¼ä¸å¯¹è½¯ä»¶æäºä¸ªæ§åå®å¶çéæ±ï¼éè¦å¼åä¸å±åè½ï¼ç§æåé¨ç½²å¹³å°å¯ä»¥æ´å¥½å°æ»¡è¶³è¿ç±»éæ±ã
2ãæ°æ®å®å ¨
ä¸äºå¯¹æ°æ®ææçè¡ä¸ï¼æ¯å¦æ¿ä¼åä½ãéèãåå·¥çè¡ä¸ï¼æ 论æ¯å¤å æ°æ®åå¨è¿æ¯ä½¿ç¨æµè¡çäºè®¡ç®SaaSåºç¨ç¨åºï¼é½å°ä½¿ä¼ä¸æ°æ®çå®å ¨æ§åéå¯æ§é¾ä»¥ä¿è¯ï¼ç»ä¼ä¸å¸¦æ¥æ æ³é¢æçé£é©ï¼ç§æåé¨ç½²å¹³å°æ´å®å ¨ã
3ã对æ¥å·²æç³»ç»
ä¼ä¸ç³»ç»éç使ç¨æ¶é´è¶é¿ãå¤ææ§è¶é«ï¼è°æ´ä¼åè½åè¶æ¥è¶å·®ï¼ä½ä¼ä¸åä¸æ³éæ°æ´ä½å¼å以è´äºå½¢æåµå±ï¼å¯¹æ¤ï¼å¯ç§æåé¨ç½²çä½ä»£ç å¼åå¹³å°å¯ä»¥å©ç¨å¼æ¾çæ¥å£å°æ°ç³»ç»éæå°ä¼ä¸å·²æç³»ç»ä¸ï¼ä»¥æå°çè°æ´ææ¬å®ç°å¯¹åæç³»ç»æ¹é å级ãåæ¶ï¼ç§æåé¨ç½²çå¹³å°æå±æ§å¼ºï¼å¯å¨åæåè½ä¸äºæ¬¡å¼åè¿è¡èªä¸»å级ï¼è®©äº§åæ´å¥½çæå¡äºä¼ä¸ï¼å»¶é¿è½¯ä»¶ä½¿ç¨å¯¿å½ã