.NET Core 是 .NET Framework 的新一代版本,是微软开发的第一个具备跨平台 ( Windows、Mac OSX 、Linux ) 能力的应用程序开发框web
ASP.NET Core 是 Microsoft 新开发的,基于 .NET Core 的 Web 开发框架数据库
ASP.NET Core 是对 ASP.NET 的从新设计,变得快速,灵活,现代,而且能够跨不一样平台工做。npm
若是你以前已经接触过 ASP.NET,有过任何 MVC 或 Web API 的经验,那么你会有很强烈的熟悉感。跨域
在本教程中,咱们将会学习如何使用 ASP.NET Core 开发网页应用程序, 建立、编辑和查看数据库中的全部数据安全
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 是一个由微软建立的,用于构建 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 再也不基于 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 框架选项已经不少了: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 标准 是一个平台无关的接口,它定义了特性和 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若所思。
欢迎关注个人公众号,不只为你推荐最新的博文,还有更多惊喜和资源在等着你!一块儿学习共同进步!