细说微软2018Build大会中.Net Core更新的是啥
2018 年5月8日凌晨,在微软一年一度的Build大会上,微软发布了 Azure 云、AI、物联网等很多方面的东西。由于.Net Core是可以跨windows、Linux等平台的技术,也是为微服务等架构奠定基础,因此很多程序员鹏友向我问关于.Net Core变化的详细解读,比如“Winform是不是跨平台了”之类的,因此我只就.Net Core部分的变化做我个人的粗浅的解读。
1、.Net Core 3.0支持WinForm、WPF等桌面UI库。
.Net Core 3.0将会在2019年发布(一下子就给我们指到一年后了呀)。并不是表明可以在Linux等平台下用.Net进行WinForm、WPF的开发。因为微软明确说了,这个是“Windows Only”的。
***附件停止解析***
微软应该也没有计划开发跨平台的UI库,因为毕竟桌面软件的时代已经过去了,大部分行业都用不到WinForm、WPF等这些桌面开发技术了。
在特殊领域如果要开发跨平台的桌面程序,对于UI性能要求高的地方可以用QT这个目前最成熟、最流行的跨平台UI框架。当然QT是C++写的,Python下有成熟的PyQT库,希望能有QT高人来做QT for .net core的binding库。
如果开发类似QQ桌面版、网易云音乐桌面版、有道云笔记桌面版或者一些管理软件桌面版的话,由于这些软件对UI性能要求不高,但是对于开发效率、更新升级要求高,那么可以使用Electron(跨平台的开发工具Visual Studio Code就是用类似技术开发的,连桌面版QQ等很多地方其实都是用类似技术实现的)等技术,当然这是用JavaScript+HTML去写的,一部分页面可以放到服务器端用.net core去写,这类似于手机中的混合App开发,升级、AB测试、灰度发布什么的都方便很多。
2、.Net core在IIS中运行时候支持托管方式运行
之前.Net Core网站在IIS中运行,其实IIS只是充当一个反向代理的作用,没有用到IIS的托管支持。新版.Net Core中将支持像普通.Net Framwork网站一样用托管方式运行。
我个人其实感觉这个特性很没有卵用(仅是个人观点),用.net core就是为了Linux。IIS只能跑在Windows下,微软应该也没有考虑把IIS移植到Linux的打算。作为“服务器就要用Linux”这已经成为一个“政zhi正确”的口号,已经不需要讨论这个口号是对还是错了,大环境如此,改变很难。
***附件停止解析***
3、SignalR for .net core即将发布
.net core版的SignalR 已经处于RC版状态,应该很快就要发布正式版了。
现在的网站或多或少都要用到“服务器推送”技术(站内消息、弹幕等等),而SignalR 是实现这个非常方便的技术。我一直期待.net core版的SignalR很久了,一旦发布我们也将会在我们自己的如鹏网中第一个使用。
4、Entity Framework Core(简称EF Core)支持延迟加载
之前的EFCore只支持通过Include显示加载导航属性,不能使用EF中的延迟加载(LazyLoad),新版EFCore将支持延迟加载,这个特性默认关闭,需要手动打开。
我个人也无视这个新的特性,在如鹏网项目以及我讲课的时候,我都是强烈不建议使用延迟加载的。因为使用延迟加载一个不小心就会造成性能的问题,要用啥关联对象应该自己明确的去Include,如果一个程序员都不知道自己要取啥对象,这是很危险的。
Less is more,真希望微软不要支持延迟加载这个破玩意,否则“EFCore性能差”这样的屎盆子又会被人扣上头了!
5、EFCore支持TransactionScope
有了TransactionScope在EFCore中就能更容易的实现嵌套事务了,毕竟复杂的系统中代码调用层级会很复杂,在对数据完整性要求高的场合,需要一个嵌套事务来确保数据的原子性。
OK,这就是我对微软2018 Build大会关于.Net Core的新特性的理解,如果有欠缺的地方请各位评论指正。
via:***链接停止解析***
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!