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的安装包,这设计太糟糕了

 

posted @ 2026-08-30 17:24  chy710  阅读(3)  评论(0)    收藏  举报