.Net Core学习一

-

什么是.Net Core?

    .Net Core是.Net Framework的新一代版本,是微软开发的具有跨平台能力的开源应用框架(Windows Mac   OSX   Linux),ASP.NET Core 应用可运行于 .NET Core 和完整的 .NET Framework 之上。它整合了原来ASP.NET中的MVC和WebApi框架,你可以在 Windows、Mac 和 Linux 上跨平台的开发和运行你的 ASP.NET Core 应用,您使用.Net Core 可以:

   创建 Web 应用程序和服务、IoT 应用和移动后端。

   在 Windows、macOS 和 Linux 上使用喜爱的开发工具。

   部署到云或本地。

   在 .NET Core 或 .NET Framework 上运行。

为何选择 ASP.NET Core?

    数百万开发人员使用过(并将继续使用)ASP.NET 4.x 创建 Web 应用。 ASP.NET Core 是重新设计的 ASP.NET 4.x,更改了体系结构,形成了更精简的模块化框架。

ASP.NET Core 具有如下优点:

  •  生成 Web UI 和 Web API 的统一场景。

  •   针对可测试性进行构建。

  •   Razor Pages 可以使基于页面的编码方式更简单高效。

  •   Blazor 允许你在浏览器中使用 C# 和 JavaScript。 共享全部使用 .NET 编写的服务器端和客户端应用逻辑。

  •   能够在 Windows、macOS 和 Linux 上进行开发和运行。

  •   开放源代码和以社区为中心。

  •   集成新式客户端框架和开发工作流。

  •   基于环境的云就绪配置系统。

  •   内置依赖项注入。

  •   轻型的高性能模块化 HTTP 请求管道。

  •   能够托管于以下各项:

  •   Kestrel

  •   IIS

  •   HTTP.sys

  •   Nginx

  •   Apache

  •   Docker

  •   并行版本控制。

  •   简化新式 Web 开发的工具。


ASP.NET Core的特点

     ASP.NET Core 在架构上做出了一些改变,这些改变会使它成为一个更为精简并且模块化的框架。在project.json文件中我们可以发现,ASP.NET Core 不再基于 System.Web.dll(我们在project.json中见到的大部分都是Microsoft打头) ,基于一系列颗粒化的,并且良好构建的 NuGet 包,结合智能提示,它能够让你通过仅仅包含需要的 NuGet 包的方法来优化你的应用。一个更小的应用程序接口通过“只为你需要的功能付出”(pay-for-what-you-use)的模型获得的好处包括更可靠的安全性、简化服务、改进性能和减少成本。

以下列举其他几个改良特点

  •      开源和跨平台

  •      满足运行在.NET Core和.NET Framework上

  •      中间件支持

  •      性能优化

  •      无所不在的依赖注入

  •      标准日志记录

  •      整合MVC和Web Api到一个框架中

  •      MVC 标签帮助

  •      CLI工具

ASP.NET Core 项目文件夹解读

     ASP.NET Core 1.0 发布以来,相较于传统项目编码发布的行为,新项目中的操作已经有了很大的变化,如解析依赖,选择运行平台和Runtime等等,就连项目结构也有了比较大的改变,越来越多的配置选项由编辑器转交给了开发者手动决定,这一点在新的各类配置文件中体现得尤为明显,这里就来简单解读一下。

CCCCCCCC.png

project.json和global.json

project.json是.NET Core项目中最重要的一个配置文件,它类似于.NET Framework上的 .csrpoj文件(在下一版本中.NET Core将弃用该文件,转而回归.csrpoj)。所以这里还是搬运下张大大的博客吧,包括对global.json的解读。
project.json 这葫芦里卖的什么药

Properties——launchSettings.json

顾名思义——启动配置文件。launchSettings.json文件为一个ASP.NET Core应用保存特有的配置标准,用于应用的启动准备工作,包括环境变量,开发端口等。在launchSettings.json文件中进行配置修改,和开发者右键项目——属性中所提交的更改的效果是一样的(目前右键属性中的Property真是少得可怜),并且支持同步更新。