dotnet 8 体验
在AI时代体验一下dotnet开发
技术发展太快,变化太大,核心是不依赖于.net framework,而是dotnet sdk/runtime,这东西关键是按需加载,跨平台,每种操作系统有自己的sdk
1. 新版dotnet里有个叫Razor Pages 东西,好像原来的web page一样,是物理文件(.cshtml和.cshtml.cs),但是没有服务器控件
2. mvc和原来基本差不多,但是发布后,view是看不到了,编译到dll里了。
3.最主要的是运行方式差别太大了,安装了net运行环境,运行直接就是dotnet xx.dll (主文件)就行了,开启一个终端,内置web服务器(Kestrel),和python类的很像,这样前端放一个nginx就行转发就行了,不再绑定iis了。
当然,如果是windows,推荐还是iis,但是默认iis是托管代码,应用程序池 要选择“无托管代码”,关键是要安装一个组件dotnet-hosting-8.0.22-win.exe(包括了.NET Runtime + ASP.NET Core Module),这东西要100M,就是让IIS来接管。发布后有个web.config就是起这个作用的。
4.发布的时候,可以选择,独立(不依赖环境),也就是把dotnet运行环境,也打进去了,这样就不用安装sdk/runtime了(但是这包会很大,10倍,简单一个示例,不带框架5M,带框架50M),这样在linux上运行,直接就是./myapp,windows上就是myapp.exe,这个exe不是.net程序集。
资源文件国际化控制,不要发布多出很多不用的文件
<SatelliteResourceLanguages>zh-Hans;en</SatelliteResourceLanguages>
5.主要程序的执行顺序,入口都不一样了,运行环境变了
6.AOT和上面说的发布不是一个东西,是一种编译模式,指的是运行不依赖于dotnet环境,和C++一样编译成机器码,要求开发环境要安装c++,不是所有项目都适配AOT。Ahead-of-Time Compilation(提前编译),
dotnet publish -c Release -r linux-x64 -p:PublishAot=true
<PublishAot>true</PublishAot>
7. windows会自带.net framework是有的,但是不会自带dotnet runtime
8. 感受,对于.net framework老系统改造,可能没必要非要上dotnet新版本了,差别太大,各种依赖库,搞死人。但是新系统,完全可以试
9. sqlserver 2019/2022等新版本,已经把引擎服务和management studio分开了,管理工具要单独下载安装,竟然是一个vs的安装包,这设计太糟糕了
浙公网安备 33010602011771号