• 比较ASP.NET和ASP.NET Core[经典 Asp.Net v和 Asp.Net Core (Asp.Net Core MVC)]


    ASP.NET Core是.与.Net Core FrameWork一起发布的ASP.NET 新版本,最初被称为ASP.NET vNext,有一系列的命名变化,ASP.NET 5.0,ASP.NET MVC CORE 6.0,最后才被命名为ASP.NET Core。

    ASP.NET Core是对现有ASP.NET的彻底重写,与传统的ASP.NET框架相比,它采用了完全不同的开发方法。它是开源,并且独立于平台的。

    ASP.NET Core的第一个版本是1.0,是和Visual Studio 2015 Update3一起发布的。

    AspNet Core和Visual Studio项目模板经过了一系列的升级,最终的项目模板连同AspNet Core 1.1一起在Visual Studio 2017上发布(目前最新版本是AspNet Core 2.1)。

    既然ASP.NET是一个全新实现的框架,那么了解传统的ASP.NET和ASP.NET Core就是十分必要的。

    下面的表格展示了他们的区别:

    ASP.NET ASP.NET CORE
    最新版本是ASP.NET 4.6 最新版本是AspNet Core 2.1
    它在.NetFramework上运行,或者通常称为Full .NetFramework 它运行于.net core 和Full . NetFramework。
    它只在Windows环境下运行。但是,我们有用于Linux部署的Mono,它不像.NetFramework那样是一个完整的实现 它是平台独立的,在所有主流平台上都可以运行
    虽然Asp.Net MVC和WebAPI是开源的,但是Asp.Net FrameWork不是。

    完全开源,

    GitHub:https://github.com/aspnet/home

    支持 Asp.Net WebForm, Asp.Net MVC 和 Asp.Net WebAPI 不支持Web Form,支持Asp.Net MVC 和 Asp.Net WebAPI
    Asp.Net不是模块化框架。它需要在机器或服务器上安装.Net FrameWork。

    ASP.NET CORE是模块化框架,即应用程序可以使用最少的框架组件来运行。它所需要的框架组件只能包含在应用程序中,这与传统的Asp.Net不同,它在整个Net框架中运行。

    所有组件都可以作为Nuget包使用。

    在部署之前需要在服务器上装.NetFramework

    不需要在服务器上安装.NET Core Framework就可以部署。

    在请求管道上包含许多默认组件,还有一些额外的开销,像是页面ViewState,这都会降低性能。

    由于它的模块化本质,它比传统的Asp.Net表现得更好。

    支持OWIN与PKatana库,不能在没有 System.Web.dll实现ASP.NET应用程序,因此实现OWIN应用程序或与主机无关的应用程序是困难的。

    支持OWIN规范,对其有新的实现。

    更多关于OWIN: http://www.codedigest.com/posts/1/what-is-owin-a-beginners-guide

    严重依赖System.Web.dll,所以它只能与IIS一起使用

    不依赖于System.Web.dll,还有IIS

    支持应用领域的应用程序隔离,内置的代码访问安全策略的安全性

    不支持应用程序域和代码访问安全策略

    它只能承载在IIS上,虽然IIS是免费的,但是Windows操作系统是付费的

    它有自己的跨平台webserver名为Kestrel。Asp.Net核心应用程序可以由Kestrel托管在最常见的web服务器(如Nginx、Apache、IIS等)后面。这些web服务器充当反向代理,将请求转发给Kestrel服务器。它可以自托管。

    更多关于Kestrel:http://www.codedigest.com/quick-start/5/learn-kestrel-webserver-in-10-minutes

    支持httphandler和httpmodule来进行请求/响应过滤等

    支持Asp.Net Core中间件(由OWIN中间件演化而来)。

    虽然支持命令行,但不像ASP.NET CORE那么完整。

    包含一个名为dotnet CLI的跨平台命令行接口。

    通过FormsAuthentication HttpModule支持表单验证。

    支持Cookie身份验证中间件,以提供表单身份验证。

    Web.config支持. Appsettings还有其他一些的配置

    不支持Web.config,AppSettings是基于json的配置文件appSettings.json的一部分。

    Global.asax文件或支持应用程序级事件的HttpApplication对象

    没有Global.asax文件.只有 Startup 类作为类型的实现 

    支持C#,VB,还有其他一些编程语言

    只支持C#, F#. 以后可能会支持VB.

    支持 WCF,WPF 和 WF

    不支持WCF、WPF和WF。支持WCF客户端库。

    Asp.Net MVC 和 WebAPI are 独立的框架。

    WebAPI和ASP.NET MVC 控制器合并了,是单一的框架。

    依赖注入可以使用DI容器(如Unity、StructureMap、Autofac等)

    依赖注入是Asp.Net MVC的一部分

    容器支持没有ASP.NET CORE好

    最适合用于基于容器的部署,比如Docker。

    Visual Studio IDE的区别:

    ASP.NET  ASP.NET CORE
    所有主流版本都支持 从  Visual Studio 2015 Update 3开始支持. 现在的版本是Visual Studio 2017
    不支持跨平台IDE 有一个跨平台IDE版本Visual Studio Code
    支持Nuget包管理器并在packages.config维护包中的依赖项 Nuget依赖项是项目文件的一部分
    与ASP.NET COORE相比有繁重的项目文件 有一个简化和精益的项目文件。在VS 2015年支持Project.json用于维护移动在项目内的文件
    没有内置支持的Bower。我们需要手动操作来集成Bower。 支持客户端包管理器,如Bower。更多关于Bower:http://www.codedigest.com/quick-start/7/learn-bower-package-manager-in-10-minutes
    内部不支持gulp和grunt,我们需要手工工作来整合gulp和grunt。 支持客户端任务运行程序,如gulp,grunt。
    在项目内部管理静态文件和脚本文件 所有静态内容和客户端脚本现在都是wwwroot文件夹的一部分
    代码更改后需要重新编译 不需要重新编译,刷新浏览器即可。
       

    ASP.NET和ASP.NET Core的相似性:

    ASP.NET ASP.NET CORE
    支持Entity Framework 支持Entity Framework Core
    支持Asp.Net MVC 支持Asp.Net MVC Core
    有Nuget包支持Asp.Net MVC, WebAPI和其他微软框架 主要依赖于Nuget包
    适用于.NetFramework CLR和基类库 CLR和基类库有新的实现
    支持IIS 由一个新的HttpModule被叫做ASP.NET CORE Module提供IIS支持
    支持SignalR 支持SignalR
    支持异步编程 支持异步编程

     原文链接:http://www.codedigest.com/posts/18/difference-between-aspnet-and-aspnet-core

  • 相关阅读:
    进程通信
    我(撞破南墙)的部分文章索引
    我(撞破南墙)参加"博客无双"的文章以及参加的原因(2010年12月05日update)
    MVC3RAZOR尝鲜2细说实用的WebGrid
    MVC3RAZOR尝鲜之漂亮的chart图表
    ASP.NETMVC3RC的一些新特性 (2010.11.9发布版)
    MVC3RAZOR尝鲜1
    Silverlight应用开发2webcam自拍保存和"录像"
    C#功能派的进阶你该思考的一些事1
    MVC3Razor简单文件操作
  • 原文地址:https://www.cnblogs.com/yixuanhan/p/9258800.html
Copyright © 2020-2023  润新知