.NET Core试用感受

环境:VS2017社区版,.net core 2.0 (win64, sdk2.1.2, runtime 2.0.7)

开发:sdk

运行服务器:runtime (包括.net core runtime和asp.net core runtime,分开的)

以上类似于jdk和jre的关系

其中windows的runtime有个版本是打包了runtime和Hosting(一个IIS模块,asp.net core module for iis,注意这个版本一定要和runtime匹配),在IIS上配置和之前没大的区别,就是程序池的.net framework要设置成“无托管代码”。

本质上并不是由IIS进程直接处理asp.net core上,这里IIS只是充当一个代理的作用,asp.net core有自己的宿主方式。

#直接运行asp.net core网站,默认为localhost:5000
dotnet app.dll
#运行控制台程序 (主程序的dll),core下没有exe
dotnet console1.dll

这点像极了python,自己运行为python xx.py,前面加个nginx,后面自己运行比如用tornado。

安装后的.netcore在C:\Program Files\dotnet

 

在Linux上,本文在CentOS7测试过,按官方安装.net core和asp.net core的runtime (也可安装core sdk,如果需要开发,create, publish等)。

运行也很简单,"dotnet xx.dll"即可,如果是web,加个nginx之类的做个反向代理。

体验上看,和Mono没什么差别,Mono上运行是"mono xx.exe",就是安装core比安装mono要简单省事的多。

 

关于发布

命令行发布

dotnet publish -o \bin\pub

发布的文件比较干净,wwwroot目录,程序dll,及view视图会变成x.PrecompiledViews.dll,没有其它库文件。

用VS2017发布,有个目标运行时

发布后会带上环境运行的库文件。

 

publish下包括了所有库文件,程序dll,及view目录(这点像之前的mvc发布后的)

注意到项目文件里有个这样的配置

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.7" />
  </ItemGroup>

All ? 所以把所有库文件都发布了? 如何确认自己需要的,只添加自己需要的。

posted @ 2018-05-29 11:15  chy710  阅读(102)  评论(0)    收藏  举报