.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 框架的演变史的完全版,也是过去这么多年互联网的发展史
- ASP.NET Core 2.1 不是 ASP.NET 4.x 的延续,或者这么说, ASP.NET Core 1.0 不是 ASP.NET 4.6 的延续
- ASP.NET Core 是一个全新的 Web 框架,它与 ASP.NET 并行发展
- ASP.NET Core 是对 ASP.NET 的重新设计,更小,也更模块化
- 虽然能从 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 具有以下优点:
- ASP.NET Core 有着大量的体系结构更改,这些更改使得 ASP.NET Core 更精简和更模块化
- 模块化的设计,使得 ASP.NET Core 不再基于 System.Web.dll ,而是基于一组精细且充分考虑的 NuGet 包
- ASP.NET Core 允许我们优化应用程序,只包含必要的 NuGet 包
- 更为精简的应用程序可以带来更高的安全性,更少的维护,更好的性能以及更低的成本
使用 ASP.NET Core ,我们可以获得以下好处:
- 能在 Windows,Mac 和 Linux 上构建和运行跨平台的 ASP.NET 应用程序
- 使用 ASP.NET Core 可以构建和并行运行版本化的应用程序
- 新的工具简化了现代 Web 应用程序的开发
- 统一的方式构建 Web UI 和 Web API
- 云环境配置
- 内置依赖注入
- 使得 Razor 标记更接近原声 HTML 的标签助手
- 应用程序即可以在 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若所思。
- 欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com