.net core web
1. 支持MVC和PageModel,两种方式
PageModel是物理文件对应,page.cshtml, page.cshtml.cs, 像原来的asp.net,但是Razor模板引擎,和mvc里一样,有viewdata,没有viewbag,后台代码处理有doget, dopost方法,像极了java的servlet处理方式
2. 关于配置,程序启动加载,在页面代码这层(Controller或pageModel)构造方法传入
支持很多文件类型,单独文件,常用JSON,读入后为字典类型
3. 登录验证有很多,也支持cookie,用法上#2一样,启动加载配置,
using Microsoft.AspNetCore.Authentication; HttpContext.SignInAsync(); HttpContext.SignOutAsync();
但是用法太累赘。支持简单的直接读写cookie。
4. 参数接收
//[HttpPost] public ContentResult FormPar() { //获取get参数 var par = Request.Query["par"]; //获取post参数 var par2 = Request.Form["par"]; //获取文件,有这个类型,放在方法参数里 IFormFile file; List<IFormFile>; //获取cookie string val = ""; Request.Cookies.TryGetValue("lims", out val); //删除cookie Response.Cookies.Delete("lims"); //写入cookie Response.Cookies.Append("lims", "system by net core"); return Content(Request.Query.ToString()+"<br>"+Request.QueryString.ToString()); }
记录
ASP.NET MVC => ASP.NET Core MVC
1. 第三方组件,查看是否支持.net standard平台(core),库项目基于standard创建,主程序为Core MVC
在core里,不支持外部DLL文件的引用,必须是项目引用(一个solution下的不同project),或者NuGet引用。
2. 配置不再建议原来的Web.config文件了,使用json,xml等。。。。
1) System.Configuration.System.ConfigManager是个NuGet引用包,引用后可以和原来一样使用web.config/app.config等
2) 引用NuGet包Micorsoft.AspNetCore,里面有个Microsoft.Extensions.Configuratio类,Core下推荐这个,如果是Web项目,必须引用这个了,VS创建的话已经引用好了,但是如果其它项目的话比如Console引用这个有点小题大作了,但也能用。这个类可以支持很多配置文件格式,也能自定义。常用JSON文件配置,这个类读出来后都是k-v形式,注意key有嵌套的话中间是:分号分开的。
3. 其它DLL
在NuGet包搜索添加时,查看是否支持.net standard 2.0
NLog,支持standard 2.0,用法一样
Newtonsoft.Json, 支持,用法一样
Mysql.Data,支持,用法一样
* PetaPoco,不支持,改用Dapper,研究一下,和petapoco接近。EF Core支持,但用法差别比较大。
Aspose.cell,words,slides,这三个都可以直接从NuGet上下载引用,使用没问题,用法一样。但是转换成的结果文件有水印。NPOI这个库关注一下,主要是excel和word的读写,特别是excel编辑方面很强大(不支持core)。
# 发现PetaPoco最近有更新,已经支持core,nuget包名子叫PetaPoco.Compiled,不包括T4 (生成T4模板用.net fx下的petapoco)
以上nuget包指最新版
#Dapper,基本上就是一个ADO.NET的SQLHelper,查询可以自动填充为实体类对象。其它都要写SQL。查询SELECT语句也要写。本身不能生成实体类。比petapoco弱。(生成实体可以使用petapoco的T4模板来生成)
#EF Core生成的实体和数据库拼写不一致,有个参数控制,但不起作用。
改动最大的就是数据库访问部份(已解决),然后找aspose解决办法。
# 最大的不同,在于程序的启动方式和配置文件,启动时注入,使用时构造方法传入,中间件等。



下载安装.NET CORE SDK和VSCODE(安装C#插件),再配合dotnet命令,就可以开发core程序了。只是没有VS强大。
环境(launchSettings.json):
- Development 开发环境
- Staging 发布前的预生产环境
- Production 正式生产环境
默认的配置文件appsettings.json,也可以指定。核心文件为Startup.cs,添加配置注册服务(注入),设定路由,环境,中间件等。注册服务后,再使用的地方(无论是controller还是其它project下的类)都可以在构造函数中传入要使用的实例,通常为接口,这个设计非常的好。
异常在指定处理的Action下面获取
var feature = HttpContext.Features.Get<IExceptionHandlerFeature>();
var error = feature?.Error;
其它HTTP处理可以用过滤器,或自定义的中间件来处理,注意中间件的顺序。原asp.net中的Global.asax.cs和web.config文件已不存在。日志可以使用core的方式配合nlog扩展,或者使用原方式使用也可。
core中无处不在的存在DI。
浙公网安备 33010602011771号