netcore 学习

一 

.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<T>;
    当操作中可能有多个ActionResult返回类型时,适合使用IActionResult返回类型。
    ActionResult类型表示多种HTTP状态代码。

ASP.NET Core 中的Razor页面
    是ASP.NET Core MVC 的一个新特性,它可以使基于页面的编码方式更简单高效。
    Startup.cs中已启用Razor页面;
    @page使文件转换为一个MVC操作,这样文件将直接处理请求,而无需通过控制器处理。
    @page必须是页面上的第一个Razor指令。

三 使用netcore命令创建第一个netcore的helloworld程序并运行

    以下是控制台的输出;

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以后的目录结构;本机情况;

发布了434 篇原创文章 · 获赞 512 · 访问量 294万+

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/103930594