.NET Core 2.0发布之后,实际上是实现了.NET Standard 2.0 约等于 .NET Framework 4.6.1。
以后就可以放心的使用 ASP.NET Core on Linux,比跑在Mono上放心。
从.NET平台迁移到.NET Core必将是趋势。
.NET core 与 .NET Framework的区别
.NET Core 就是 .NET Framework的区别的开源且跨平台版本。
微软抽象出来一个标准库,.NET Core 与 .NET Framework 都必须实现标准库的API ,就这样 .NET Core、.NET Framework、XAMARIN成了三兄弟,分别为不同的平台服务。
ASP.Net Core 优点
内置依赖项注入;
轻型的高性能模块化HTTP请求管道;
可以使用并行应用版本控制;
能够在Windows、maxOS、Linux进行生成和运行;
ASP.Net Core 完全作为NuGet包的一部分提供;
使用ASP.Net Core MVC 生成Web API 和 Web UI
使用 ASP.Net Core 构建 Web API
添加控制器
右击 控制器 文件夹,添加-新建项;在 添加新项 对话框中,选择 API 控制器类模板;
从ControllerBase派生类
BadRequest和CreateAtAction方法,分别返回 HTTP 400和201 状态代码。
将使用ModelState属性执行请求模型验证。
使用ApiControllerAttribute批注类
[!code-csharp]
此特性通常与ControllerBase配合使用以获得其他有用的方法和属性。通过ControllerBase可使用NotFound和File等方法。
绑定源参数推理
[FromBody] 请求正文
[FromForm] 请求正文中的表单数据
[FromHeader] 请求标头
[FromQuery] 请求查询字符串参数
[FromRoute] 当前请求中的路由数据
[FromServices] 作为操作参数插入的请求服务
netcore Web API 中的控制器操作返回类型
控制器可以返回:特定类型;IActionResult;ActionResult
当操作中可能有多个ActionResult返回类型时,适合使用IActionResult返回类型。
ActionResult类型表示多种HTTP状态代码。
ASP.NET Core 中的Razor页面
是ASP.NET Core MVC 的一个新特性,它可以使基于页面的编码方式更简单高效。
Startup.cs中已启用Razor页面;
@page使文件转换为一个MVC操作,这样文件将直接处理请求,而无需通过控制器处理。
@page必须是页面上的第一个Razor指令。
以下是控制台的输出;
G:\netcorePrj\test1>dotnet new console -o lpcorehelloworld
欢迎使用 .NET Core 3.0!
---------------------
SDK 版本: 3.0.100
遥测
---------
.NET Core 工具收集使用数据,以帮助我们改善你的体验。数据是匿名的。它由 Microsoft 收集并与社区共享。你可以通过使用喜欢的 shell 将 DOTNET_CLI_TELEMETRY_OPTOUT 环境变量设置为 "1" 或 "true" 来选择退出 遥测。
阅读有关 .NET Core CLI 工具遥测的更多信息: https://aka.ms/dotnet-cli-telemetry
----------------
查看文档: https://aka.ms/dotnet-docs
通过 GitHub 报告问题和查找源: https://github.com/dotnet/core
查找最新功能: https://aka.ms/dotnet-whats-new
了解已安装的 HTTPS 开发者证书: https://aka.ms/aspnet-core-https
使用 "dotnet --help" 查看可用命令或访问: https://aka.ms/dotnet-cli-docs
编写你的第一个应用: https://aka.ms/first-net-core-app
--------------------------------------------------------------------------------------
Getting ready...
The template "Console Application" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on lpcorehelloworld\lpcorehelloworld.csproj...
G:\netcorePrj\test1\lpcorehelloworld\lpcorehelloworld.csproj 的还原在 125.37 ms 内完成。
Restore succeeded.
G:\netcorePrj\test1>lpcorehelloworld
'lpcorehelloworld' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
G:\netcorePrj\test1>dotnet run
找不到要运行的项目。请确保 G:\netcorePrj\test1 中存在项目,或使用 --project 传递项目路径。
G:\netcorePrj\test1>dotnet run lpcorehelloworld
找不到要运行的项目。请确保 G:\netcorePrj\test1 中存在项目,或使用 --project 传递项目路径。
G:\netcorePrj\test1>cd lpcorehelloworld
G:\netcorePrj\test1\lpcorehelloworld>dotnet run
Hello World,XXKJ,netcore one test!
G:\netcorePrj\test1\lpcorehelloworld>
netcore基本结构;网上摘录的图;
netcore 安装信息;本机情况;
安装了2.1和3.0SDK以后的目录结构;本机情况;