.NET Core和ASP.NET Core简介与区别

ASP.NET 是适应 Web 的 .NET 框架的第一个版本。
ASP.NET Core 是一个改进版本,具有更丰富的功能、更舒适的界面、新的库和其他区别。

目录:

什么是 Asp.net?

ASP.NET 一个基本的 Web 开发平台,用于创建网站、应用程序和 Web 服务。它是 HTML、CSS 和 JavaScript 的集成。ASP.net 最初于 2002 年发布。部署的第一个版本的 Asp.Net 是 1.0。Asp.Net 的最新版本是 4.6。

Asp.Net 在 HTTP(超文本传输​​协议)上工作,并使用 HTTP 命令和策略来设置浏览器到服务器的双边通信。

ASP.NET 是 Microsoft .NET 框架的一部分。下图显示了组件堆栈。

ASP.NET 为创建 Web 应用程序提供了三种开发风格:

  • Web Forms
  • ASP.NET MVC
  • ASP.NET Web Pages
阅读更多:为服务器端应用程序选择什么 – .NET Core 或 .NET Framework

1.Web FormsASP.NET Web 表单将交互的事件驱动模型扩展到 Web 应用程序。它用于开发具有数据访问权限的应用程序,并提供服务器端和事件来创建应用程序。

2.ASP.NET MVC:ASP.NET Web 表单将交互的事件驱动模型扩展到 Web 应用程序。它用于开发具有数据访问权限的应用程序,并提供服务器端和事件来创建应用程序。

3.Asp.Net 网页:它用于创建动态网页。它以快速的方式将服务器代码与 HTML 结合起来。

下表说明了每种开发模式。

模型技能发展方式经验
Web FormsWin Forms、WPF、.NET使用封装 HTML 标记的丰富控件库进行快速开发中级、高级 RAD
MVCRuby on Rails,.NET完全控制 HTML 标记,代码和标记分离,易于编写测试。移动和单页应用程序 (SPA) 的最佳选择。中级、高级
Web Pages经典的 ASP、PHPHTML 标记和您的代码一起在同一个文件中新中级

ASP.NET 应用程序代码可以用以下任何一种语言编写:

  • 1.C #
  • 2.VB.Net _
  • 3.J #

ASP.NET 体系结构及其组件

ASP.NET 基本架构如下所示。

此 .NET 框架具有以下关键组件。

  • 1.言- .NET 框架是多种编程语言,包括 VB.NET 和 C#。
  • 2.库Library– .NET 框架是一组用于ASP .NET 开发 过程和系统功能的可重用类、接口和值类型的标准类库
  • 3.公共语言运行时(CLR)– CLR 用于执行代码活动。活动主要包括异常处理和垃圾收集。

什么是 Asp.net Core:

Asp.net Core 是微软发布的新版 Asp.net。它是一个用于开发 Web 框架的开源软件,可以在 Windows、Mac 或 Linux 等不同的浏览器上执行。ASP.Net Core 是 asp.net 的新版本。它是一个免费的开源软件,可以在 Mac、Windows 和 Linux 等不同的操作系统上运行。它最初是作为 ASP.NET 5 发布的,但后来被重命名为 ASP.NET Core,并且仍然使用相同的名称。

Asp.Net Core 是一个基于云的跨平台框架,用于在 Windows、Mac 和 Linux 上构建 Web 应用程序,包括 MVC 框架。它是 MVC 和 WEB API 在单个 Web 编程框架中的组合。

ASP.Net Core 的主要优点:

  • 1. Asp.Net core 是一个更加精简和模块化的框架,因为它有多种架构
  • 2. Asp.net Core 是一个开源框架。
  • 3.易于在Windows、Mac和Linux上构建跨平台的asp.net应用程序。
  • 4.配置为云就绪环境。
  • 5.能够托管在:
      A) Kestral
      B) IIS
      C) HTTP.sys
      D) Nginx
      E) Apache
      F) Docker

ASP.NET Core 版本历史:

版本发布日期
ASP.NET 核心 2.12018 年 5 月
ASP.NET 核心 2.02017 年 8 月
ASP.NET 核心 1.12016 年 11 月
ASP.NET 核心 1.02016 年 6 月

Asp.Net VS Asp.Net Core 的区别

ASP.NETASP.NET 核心
用于 Windows 的 Asp.Net 构建适用于 Windows、Mac 和 Linux 的 Asp.Net Core 构建
Asp.Net 具有良好的性能ASP.Net core 的性能高于 ASP.Net 4x。
它在 .Net Framework 上运行或通常称为完整的 .Net Framework它在 .Net Core 和完整的 .Net Framework 上运行。
Asp.Net 支持 WebForm、Asp.Net MVC 和 Asp.Net WebAPI。Asp.Net Core 不支持 WebForm。它支持最初在 .Net Core 2.0 中添加的 MVC、Web API 和 Asp.Net 网页。
Asp.Net 使用了唯一依赖于 System.web.dll 的 IIS。Asp.Net Core 没有依赖 System.web.dll 等 IIS。
支持C#、VB等多种语言,同时支持WCF、WPF、WF仅支持 C#、F# 语言。VB 支持在短时间内添加,不支持 WCF、WPF 和 WF,但支持 WCF 客户端库。
Asp.Net MVC 应用程序添加了 Web.config、Global.asax、Application Start。Core 不支持 Web.config 和 Global.asax 文件。它支持 appsettings.json。
容器支持不亚于 ASP.Net Core 应用程序。容器支持最适合 Docker 等部署。
支持所有主要版本支持 Visual Studio 2015 更新 3 和当前版本 VS 2017 的核心。
我们需要在代码更改后重新编译。Core Browser refresh 将编译并执行代码,无需重新编译。

.NET Core 与 ASP.NET Core:有什么区别?

什么是 .NET 核心? 由 Microsoft 和 .NET 社区维护的开源通用开发平台。跨平台(支持 Windows、macOS 和 Linux),可用于构建设备、云和 IoT 应用程序。

什么是 ASP.NET 核心? 一个跨平台的 .NET 框架,用于在 Windows、Mac 或 Linux 上构建基于云的现代 Web 应用程序。微软和社区共同开发的一个免费的开源网络框架,性能比 ASP.NET 更高。它是一个模块化框架,可在完整的 .NET Framework、Windows 和跨平台 .NET Core 上运行。

.NET Core 和 ASP.NET Core 属于技术栈的“框架(全栈)”类别。

.NET Core 和 ASP.NET Core 都是开源工具。看起来,在 GitHub 上拥有13.6K GitHub 星和3.34K分叉的 ASP.NET Core 的采用率高于拥有11.7K GitHub 星和2.54K GitHub 分叉的 .NET Core。

如果您正在考虑为 PC 构建软件或跨平台软件,您很可能听说过ASP.NET 与 ASP.NET Core 。两者都源自 . NET是 Microsoft 构建的框架,与 C# 和 C++ 兼容,但也与 F# 和 VB.NET 等其他不太流行的语言兼容。 

该框架可在 Microsoft 许可和开源协议下使用。它过去仅适用于 PC 开发,但最近也适用于操作系统。使用 .NET 的原因在于它的简单性。您可以快速遵守装备、使用库组件和管理框架类。

然而,虽然 .NET 使开发过程更简单,但绘制基础架构背后的多个概念对于许多开发人员来说是一个挑战。对于区分 ASP.NET 和 ASP.NET Core 尤其如此。 

消除一些常见的误解

您已经知道 .NET 是什么并了解其用途。但是,我们仍然需要澄清 ASP 部分。Active Service Page 基本上是一个基于脚本运行的 HTML 页面,用于构建 Web 应用程序。 

可以从任何浏览器(包括移动版本)预览活动服务页面。ASP 通常用于 Web 应用程序的后端。它们用于连接客户端和服务器端保留的输入和输出。 

为了使 .NET 更适用于 Web 应用程序开发,Microsoft 选择发布 ASP.NET 框架 – 一个专门适用于 Web 后端的 .NET 版本。 

将 Web 应用程序构建为 ASP.NET 有什么好处?

Microsoft 启用了 ASP 支持,让开发人员可以使用 Microsoft 工具、生态系统以及 C++ 和 C# 进行 Web 开发以及桌面开发。结果,他们实现了提供 100% 跨平台开发环境的目标。使用基于 .NET 的开发工具作为 Web 开发工具的主要优点是: 

  • 使用 C# 编写后端的可能性:与往常一样,前端是使用 JavaScript 及其框架编写的。然而,对于后端,开发人员可以在多个技术堆栈中进行选择,微软的目标是让基于 C 的后端开发更容易。开发人员可以使用JET 包并在Visual Studio中工作。 
  • 用于 JS、HTML、CSS 和 C# 开发的单一开发环境:开发人员可以为动态 Web 应用程序构建语法并立即预览发送给用户的应用程序输出。 
  • .NET 框架允许 C#与 JavaScript 无缝集成,并为渐进式 Web 应用程序和单页应用程序开发提供库、模板、即用型插件。 

这里的另一个问题可能是使用基于 C# 的后端开发框架的原因是什么?.NET 提供的具体优势是什么? 

.NET 只是做了所有好的开发框架都应该做的事情。它为开发人员提供了现成的应用程序架构、带有模式和页面模板的库、现成的 Web 应用程序功能(如身份验证、访问控制、页面显示等)

此外,开发人员在代码编辑器中工作,可以自动完成代码片段、突出显示代码、有效地对不同部分进行排序,并支持实时编辑。 

ASP.NET Core 与 ASP.NET 有何关系?

您已经了解 .NET 和 ASP.NET 之间的区别。回顾一下:

NET 是一个 C#、C++、F# 框架,它使桌面开发更容易、更快捷。

ASP.NET 是一个与 .NET 具有相同功能的框架,只是它适用于为网页和 Web 应用程序编写后端。 

开发人员可以使用相同的工具、库和基础架构来构建 Web 和桌面项目。这样,桌面开发团队可以轻松学习后端开发,开发时间更短,跨平台开发更轻松。 

但是,这并不是 .NET 生态系统中的唯一区别。ASP.NET 只是该框架的版本之一。另一种称为ASP.NET Core。 

ASP.NET 和 ASP.NET Core 是一样的吗?

ASP.NET 是适应 Web 的 .NET 框架的第一个版本。ASK.NET Core 是一个改进版本,具有更丰富的功能、更舒适的界面、新的库和其他区别。我们将在一分钟内讨论它们的并排比较,但这里是现在的关键点: 

  • ASP.NET Core 是 ASP.NET 的延续,一种改进;
  • ASP.NET Core 可作为开源工具使用;
  • ASP.NET Core 是跨平台的,可以在 macOS、Linux 和 Windows 上运行,不像 ASP.NET 只能在 Windows 上运行;
  • 与 ASP.NET 一样,ASP.NET Core 是基于 Model-View-Controller 框架的,与大多数 Web 开发框架一样;
  • ASP.NET Core 具有强大的云支持,它比 ASP.NET 更好地支持模块化架构。 

因此,ASP.NET Core 是一个更新、更舒适的 ASP.NET 版本。微软的团队了解在用户体验方面可以改进哪些方面并改进了功能。 

.NET Core 和 .NET Framework 是否相同?

同样,由于 ASP.NET 被分解为传统的 .NET 版本和更新的 Core 版本,经典的 .NET 框架也经历了同样的转变。这就是为什么现在开发人员看到了对两种工具的需求——. NET 核心和 . NET 框架。 

两者有什么区别?

.NET 框架上市时间更长,这就是为什么它拥有更精细的生态系统。这不仅仅是关于补丁、库更新和指南——即使在就业市场上,.NET 框架技能仍然受到高度重视,即使它在技术上不是最新版本。 

使用 .NET 框架的场景

因此,如果许多团队支持在引入 Core 之前开发的工具,他们更愿意使用 .NET。另一个常见的情况是,习惯于 .NET 的团队不想花时间学习 Core 功能,因为他们需要快速赶上最后期限。 

?

有关详细信息,请阅读我们 的 Microsoft .NET Framework 完整指南。

的问题NET 框架:.NET 框架的最新版本是 4.8。而且不会有新的。迟早,您将不得不迁移到 Core 版本——这一点毫无疑问。

.NET Core 使用场景

如果您正在开始一个新项目并从头开始组建团队,我们绝对建议您选择更新的核心版本。一方面,它确实有所改善。从 .NET 版本迁移到 Core 的开发人员都同意界面变得更好。尽管适应新感觉需要一些时间,但绝对值得努力。 

此外,尽管 .NET 在市场上的需求量仍然很大,但情况肯定会很快发生变化。Microsoft 可能会完全停止对所有版本的支持。与官方更新同步肯定会更好,这意味着使用核心版本。 

.NET Core 的问题:虽然这个版本肯定很快就会在市场上占据主导地位,但目前还不是这样。目前,生态系统较差,教育资源和开源插件不多,招募经验丰富的 .NET Core 开发人员是一个挑战。 

ASP.NET 核心与 ASP.NET

因此,在这个比较中,我们多次提到 Core 是网络的更新版本,据说它更好。为了看看是否真的如此,让我们放大这两个框架的技术特征。 

ASP.NET

用于开发桌面、Web 和跨平台应用程序的平台。该平台的第一个版本于 2002 年发布,基于 .NET 框架。该平台基于HTTP协议进行请求和通信。 

ASP.NET 具有三种主要的开发模式。 

  • WebForms:ASP.NET 允许构建事件驱动的应用程序,管理表单中的用户输入,并启用实时用户交互。 
  • MVC: ASP.NET基于模型-视图-控制器连接应用程序逻辑、数据和接口。开发者可以清楚地分离应用程序的三个组件,并预览模型、视图或控制器更新后整个应用程序的变化情况。 
  • 网页:该平台允许开发人员构建动态 HTML 网页。您可以将后端代码连接到前端功能,以查看其实际性能和界面。 

通过结合这三个开发组件,团队可以轻松编写、预览和管理所有 Web 应用程序架构组件。最重要的是,ASP.NET 提供了多种开发风格。

发展方式和模式

这三种开发模型为开发人员提供了一个多功能的 SPA、跨平台和PWA 开发堆栈。我们喜欢将这三者结合起来以获得全面的可见性。 

ASP.NET 体系结构及其组件:

ASP.NET 基于 .NET 框架,这就是它与 .NET 共享其大部分关键组件的原因。

  • 支持多种语言:.NET开发的主要语言是C#,但也支持F#、VB.NET、C++等;
  • 库:ASP.NET 为基于 .NET 的 Web 开发提供可重用的代码组件、接口、类和值。 
  • 语言运行时:开发人员可以检测代码问题、处理异常以及深入编辑代码库本身。 

主要好处

当 ASP.NET 刚刚出现时,它给 .NET 开发人员留下了许多有用的好处——然而现在,它们听起来不太有前途,因为 Core 继承了其中的大部分。不过,让我们看一下 .NET 的主要积极方面,因为它们也将帮助我们更好地理解 Core 的功能。 

  • 安全和访问控制:代码库受 Microsoft 身份验证保护;开发人员还可以在开发早期配置安全设置;
  • 更少的代码行,更多的功能:ASP 提供了一个方便的代码行视图,对代码库进行分组并缩短了语法;
  • 内置 HTML 生成器。ASP.NET 支持 HTML 并允许自动预览网页;
  • 多语言支持:虽然ASP.NET主要和C#一起使用,但不是必须的;您可以使用任何语言,包括 Java 或Ruby。
  • 实时 Windows 服务器监控:服务器检查组件、页面和集成的数量;
  • 垃圾收集和安全警报:框架检测内存泄漏、有缺陷的循环等;
  • 内置缓存系统;
  • 应用程序内部逻辑和内容的分离。 

总体而言,ASP.NET 为代码编辑、管理和监视提供了许多出色的功能。它将应用程序的后端连接到其他组件,让开发人员全面了解其应用程序的功能和界面。 

ASP.NET 核心

就像我们回顾 ASP.NET 一样,让我们​​来看看 Core 的架构、组件、开发风格和优势。 

ASP Core 是 ASP 的一个新版本,它已开源,不仅可以在 Windows 上执行,还可以在 Linux 和 Mac 上执行。通过此更新,ASP.NET 变得越来越多地适用于通常在 Microsoft 生态系统之外工作的团队。 

架构Architecture

ASP.NET Core 是一个云平台,团队可以在其中从任何操作系统构建 Web 和跨平台应用程序。这个版本是在一个统一的开发系统中 结合了Model-View Controller和WEB API 。

使用 ASP Core 的 MVC,用户可以对他们的请求进行模型绑定和验证,自动建立参数和转换值。此外,该框架支持自动检测无效模型并阻止它们用于未来会话的过滤。 

过去在 ASP.NET 中的“引用”,变成了 ASP.NET Core 中的 Dependencies 文件夹。在您开始创建应用程序时,该平台会演示所有默认依赖项,并允许您跟踪它们的增加或减少。 

使用 ASP.NET Core 的好处

  • 清晰的结构:该平台允许将应用程序分成多个层,使用清晰的架构模板、管理业务逻辑和 UI 文件。 
  • 功能在Views 和 Controllers中结构化。开发人员可以按功能文件夹组织功能,使用独立的视图和控制器集创建单独的区域。

过滤器Filters:在 ASP.NET Core 中,开发人员可以通过分配过滤器来检测不需要的特征并清理代码库,从而轻松跟踪中间件和重复。您可以过滤模型、异常、操作、资源和授权。重要的是,这些过滤器可以在有组织的层次结构中构建。 

ASP.NET Core 在安全级别、基于令牌的身份验证、客户端通信、更新控制等方面提供了多个其他更新。最重要的是,这个附加功能在应用程序中的结构非常好——很明显,团队专注于最小化依赖关系。您可以隔离组件并在整个代码库中进行独立更改。 

最后,ASP.NET Core 可以托管在 Docker、HTTP.sys、Apache、Kestrel、IIS、Nginx 和其他系统中。它是云和微服务开发的绝佳选择,尤其适合企业级项目。

ASP.NET Core 与 .NET Core:横向比较

总体而言, ASP.NET 与 ASP.NET Core的主要优势在于生态系统的成熟度。支持更多插件,集成更强大,可在旧版Microsoft Visual Studio中打开。另一方面,考虑到它是平台的过时版本,这个版本最终可能会停产。 

另一方面,.NET Core 以其改进的界面和对 Windows、macOS、Linux 的兼容性而脱颖而出,但在生态系统方面仍然缺乏成熟度。 

在 ASP.NET Core 与 .NET Core 之间进行选择以进行 Web 应用程序开发

在做出最终选择之前,让我们回顾一下这两个版本的主要优点和缺点。 

ASP.NET 和 ASP.NET Core 有什么区别?

将 ASP.NET MVC 移植到 ASP.NET Core

从 ASP.NET 迁移到 ASP.NET Core 的团队需要经历以下阶段:

  • 设置;
  • 迁移视图和控制器;
  • 传输静态内容;
  • 管理依赖项。 

要开始迁移,您需要拥有NET.Core SDK、Visual Studio(至少 2019 版本)和 ASP.NET 项目。 

第 1 步 – 迁移 MVC

尽管ASP.NET Core 与 ASP.NET MVC都具有 MVC,但它们的处理方式不同。MVC 将自动转移到新项目,但您仍需要重新注册它。这是用于将所有 MVC 文件上传到 Core 的命令列表。 

  • AddControllersWithViews:用于让 ASP.NET Core 识别旧应用程序的 API、控制器和视图的命令; 
  • UseStaticFiles 使静态文件被系统识别;
  • UseRouting 允许从您的 .NET 项目上传路由​​路径。 

第 2 步 – 测试端点

您需要检查端点以查看应用程序内容和样式是否正确移动。官方文档建议将传输的视图渲染到浏览器以检查它们的正确显示。 

第 3 步 – 传输静态内容

ASP.NET MVC 与 ASP.NET Core将静态文件存储在不同的目录中。在第一个版本中,文件与服务器端内容一起存储,而在核心版本中,静态文件不再与其他后端内容混合。 

因此,您需要将目录从wwwroot更改为ASP.NET Core WebApp1项目。 

第 4 步 – 检查迁移错误

目前,ASP.NET Core 不支持内置捆绑配置。但是,Microsoft 文档建议使用 WebOptimizer 等开源插件。如果您的项目显示 500 个错误(这是移动的另一个常见后果),您可以将 UseDeveloperExceptionPage 集成到 ASP.NET Core。 

结论

最佳实践是使用 ASP.NET Core,因为它是一个新版本,为团队提供了更多机会。从 ASP.NET 迁移到 ASP Core 是一项长期投资——通过这种方式,团队可以与 Microsoft 的官方更新保持同步,并且可以从持续改进中受益。

虽然有保留在 ASP.NET 上的用例,但这通常不是一个好主意。您将恢复您的业务并切断团队与官方资源的联系。最好不要等到 ASP.NET 完全过时并可能停止使用。相反,展示一种积极的方法并开始迁移。