ASP.NET Core 简介

.NET Core 是 .NET Framework 的新一代版本,是微软开发的第一个具有跨平台 ( Windows、Mac OSX 、Linux ) 能力的应用程序开发框

ASP.NET Core 是 Microsoft 新开发的,基于 .NET Core 的 Web 开发框架

ASP.NET Core 是对 ASP.NET 的重新设计,变得快速,灵活,现代,并且可以跨不同平台工作。

如果你之前已经接触过 ASP.NET,有过任何 MVC 或 Web API 的经验,那么你会有很强烈的熟悉感。

在本教程中,我们将会学习如何使用 ASP.NET Core 开发网页应用程序, 创建、编辑和查看数据库中的所有数据

ASP.NET 简史

ASP.NET 设计之初,就为 Web 而生,也自那时起,该框架经历了一个稳步的演变,并最终将我们引导至其最新的 ASP.NET Core 2.1 版本

ASP.NET 的演变史,其实就是一部 Web 框架的演变史的完全版,也是过去这么多年互联网的发展史

  1. ASP.NET Core 2.1 不是 ASP.NET 4.x 的延续,或者这么说, ASP.NET Core 1.0 不是 ASP.NET 4.6 的延续

  2. ASP.NET Core 是一个全新的 Web 框架,它与 ASP.NET 并行发展

  3. ASP.NET Core 是对 ASP.NET 的重新设计,更小,也更模块化

  4. 虽然能从 ASP.NET Core 中看到很多 ASP.NET 的熟悉身影,但这并不完全一样, ASP.NET Core 是对 ASP.NET 环境的一个重大改变
     

    什么是 ASP.NET Core?

    ASP.NET Core 是一个由微软创建的,用于构建 web 应用、API、微服务 的 web 框架。它使用常见的模式,诸如 MVC(Model-View-Controller)、依赖注入,和一个由中间件构成的请求处理管线。它基于 Apache 2.0 许可证开放源码,就是说,源代码可以自由获取,并且欢迎社区成员以 缺陷修复 和 新功能提交 的方式进行贡献。

    ASP.NET Core 运行在微软的 .NET 运行时库上,类似于 Java 的 虚拟机(JVM)或者 Ruby 的解释器。有几种语言(C#,Visual Basic,F#)可以用来编写 ASP.NET Core 程序。C# 是最常见的选择,我在本书中也会采用它。你可以在 Windows、Mac,和 Linux 上构建并运行 ASP.NET Core 应用。
     

ASP.NET Core 的优点

ASP.NET Core 具有以下优点:

  1. ASP.NET Core 有着大量的体系结构更改,这些更改使得 ASP.NET Core 更精简和更模块化

  2. 模块化的设计,使得 ASP.NET Core 不再基于 System.Web.dll ,而是基于一组精细且充分考虑的 NuGet

  3. ASP.NET Core 允许我们优化应用程序,只包含必要的 NuGet 包

  4. 更为精简的应用程序可以带来更高的安全性,更少的维护,更好的性能以及更低的成本

使用 ASP.NET Core ,我们可以获得以下好处:

  1. 能在 Windows,Mac 和 Linux 上构建和运行跨平台的 ASP.NET 应用程序

  2. 使用 ASP.NET Core 可以构建和并行运行版本化的应用程序

  3. 新的工具简化了现代 Web 应用程序的开发

  4. 统一的方式构建 Web UI 和 Web API

  5. 云环境配置

  6. 内置依赖注入

  7. 使得 Razor 标记更接近原声 HTML 的标签助手

  8. 应用程序即可以在 IIS 中运行,也可以在自己的进程中运行

     

    又一个 web 框架,需求何在?

    现存的 web 框架选项已经很多了:Node/Express、Spring、Ruby on Rails、Django、Laravel 等等,数不胜数。ASP.NET Core 又有什么可取之处呢?

  • 速度 ASP.NET Core 很快。因为 .NET Core 是编译运行的,执行速度远高于解释执行的语言,比如 JavaScript 或者 Ruby、ASP.NET Core 也已经为多线程和异步任务作了专门的优化。与使用 Node.js 写的代码相比,执行速度高出 5-10 倍是很正常的。

  • 生态 ASP.NET Core 可能初出茅庐,但 .NET 却已久经考验。在 NuGet(.NET 的包管理系统,类似 npm、Ruby gems,或者 Maven)上有成千上万的软件包。有现成的包可用来完成 JSON 反序列化、数据库连接、PDF生成,或者几乎你能想到的任何需求。

  • 安全性 微软的开发团队很注重安全性,ASP.NET Core 的构建就是为彻底的安全性。它已经自动处理了净化输入数据和跨域伪造请求(CSRF),你就不用操心这些了。你同时还享有 .NET 编译器的静态类型检测的优势,它像个时刻警惕着,还有些强迫症的审校者。这样,在使用一个变量或者某些数据时,那些无意识的错误就插翅难逃。

  • 作为对比,这里要指出, .NET Framework 是另一个 .NET标准 的实现,它只能运行在 Windows 上。在 .NET Core 出现并把 .NET 推向 Mac 和 Linux 之前,它是唯一的 .NET 运行时库。 ASP.NET Core 也可以跑在 Windows 专用的 .NET Framework 上,但我不会过多涉及这个主题。

    如果你已经被这些命名搞糊涂了,别发愁!咱们马上就要写代码进行实践了。
     

    .NET Core 和 .NET 标准

    你可能还会听说 .NET Core 和 .NET标准,这些命名有些混乱,所以在此做一简短的释疑:

    .NET 标准 是一个平台无关的接口,它定义了特性和 API。值得指出的是,.NET 标准并不等同于任何实际的代码或者功能,仅仅是 API 的定义。.NET 标准现存多个不同的“版本”或者说级别,反映出提供 API 的数量(或者说 API 所覆盖的广度)。比如 .NET标准2.0 的 API 数量比 .NET标准1.5 多,后者的 API 又比 .NET标准1.0 多。

    .NET Core 是可安装在 Windows、Mac或者Linux上的 .NET 运行时库。它在各个操作系统上,使用对应的平台相关代码实现了定义于 .NET 标准中的 API。你将要把它安装到机器上,用来构建和运行 ASP.NET Core 应用程序。
     

    .NET Core与 .NET Framework 相比优势包括: 跨平台、提高性能、并行版本控制、新API、开源。目前NET Framework 还不会被 .NET Core 代替。Core会试图缩小二者在实现上的差距,下表将 ASP.NET Core 与 ASP.NET 4.x 进行比较:

    ASP.NET Core ASP.NET 4.x
    针对 Windows、macOS 或 Linux 进行生成 针对 Windows 进行生成
    Razor 页面是在 ASP.NET Core 2.x 及更高版本中创建 Web UI 时建议使用的方法 使用 Web 窗体、SignalR、MVC、Web API、WebHooks 或网页
    每个计算机多个版本 每个计算机一个版本
    比 ASP.NET 4.x 性能更高 良好的性能
    选择 .NET Framework 或 .NET Core 运行时 使用 .NET Framework 运行时


    运用场景

        (1) 在什么情况下要求使用 .NET Core包括: 用户有跨平台需求、用户正在面向微服务、用户正在使用 Docker 容器、需要高性能和可扩展的系统、需按应用程序提供并行的 .NET 版本。

        (2) 在什么情况下使用.NET Framework包括: 当前使用 .NET Framework(建议扩展而不是迁移)、不可用于 .NET Core 的第三方 .NET 库或 NuGet 包、不可用于 .NET Core 的 .NET 技术、不支持 .NET Core 的平台。

         不可用于 .NET Core的.NET技术包括:不能用于 ASP.NET Web 窗体、WCF 服务的实现(将来会考虑在Core上实现)、工作流相关的服务。

     

    欢迎添加个人微信号:Like若所思。

    欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

 

posted @ 2019-08-28 10:58  cool2feel  阅读(725)  评论(0编辑  收藏  举报