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

比较ASP.NET和ASP.NET Core[经典 Asp.Net v和 Asp.Net Core (Asp.Net Core MVC)]的更多相关文章

  1. ABP CORE 框架入门视频教程《电话薄》基于 Asp.NET Core2.0 EF Core

    ABP框架简介 ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...

  2. Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  3. 【ASP.NET Core】在Win 10 的 Linux 子系统中安装 .NET Core

    在上一篇文章中,老周扯了一下在 Windows 10 中开启 Linux 子系统,并且进行了一些简单的设置.本篇咱们就往上面安装 .net core . 老周假设你从来没有用过 Linux,所以,接着 ...

  4. Docker----与Asp.net core 的完美结合,在docker容器中创建Asp.Net Core 项目

    在腾讯云上买了一个小容量的服务器,搭建一个docker环境后,可以尝试做一些单系统做起来很麻烦的东西.譬如说,你在windows OS或UbuntuOS中,突然想玩CentOS了,你可以选择将电脑再装 ...

  5. 《ASP.NET Core In Action》读书笔记系列四 创建ASP.NET Core 应用步骤及相应CLI命令

    一般情况下,我们都是从一个模板(template)开始创建应用的(模板:提供构建应用程序所需的基本代码).本节使用 Visual Studio 2017 .ASP.NET Core2.0和 Visua ...

  6. 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获

    项目开发中的一些注意事项以及技巧总结   1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...

  7. 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)

    前言: 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC WebApi 用户验证 (1) 回顾上一节,我们利用webapi简单的登录并 ...

  8. ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限

    开发了一个导入TXT文件的功能,执行过程中出错.提示:.....ASP.NET 未被授权访问所请求的资源.请考虑授予 ASP.NET 请求标识访问此资源的权限.ASP.NET 有一个在应用程序没有模拟 ...

  9. ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug

    ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug 近日发现eWebEditor V2.8 asp 版本上传文件文件名不能包含中文双引号,发现eWebEditor使用ASP“无惧上 ...

  10. .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)

    一.前言 本篇开发环境?1.操作系统: Windows 10 X642.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core下载地址 ...

随机推荐

  1. flask based on tornado

    from flask import Flask from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPSe ...

  2. java国际化---native2ascii.exe 的使用方法

    从另一个博客迁移 native2ascii.exe使用方法: 命令的语法格式: native2ascii -[options] [inputfile [outputfile]] 说明: -[optio ...

  3. kali linux源大全

    输入leafpad /etc/apt/sources.list进入        #官方源 deb http://http.kali.org/kali kali main non-free contr ...

  4. 下载安装Emacs和基本配置--待更新中

    Emacs下载地址 下载好后,解压到D:\Emacs,并设置环境变量D:\Emacs\bin 熟悉基本操作 光标的移动 文件的创建与打开

  5. webApi添加视图出现/Index.cshtml”处的视图必须派生自 WebViewPage 或 WebViewPage<TModel>。

    是因为webApi Views文件夹下缺乏web.config文件,从mvc项目相同目录拷贝一个web.Config文件放入 删除多余的namespaces 即可 web.config配置如下: &l ...

  6. 深入理解C语言内存管理

    之前在学Java的时候对于Java虚拟机中的内存分布有一定的了解,但是最近在看一些C,发现居然自己对于C语言的内存分配了解的太少. 问题不能拖,我这就来学习一下吧,争取一次搞定. 在任何程序设计环境及 ...

  7. Python: 遍历

    ======================遍历列表========================# 直接遍历list: for elem in list: pass # 通过索引获取 for i ...

  8. Docker 入门到实践(三)Docker 安装

    注意:不要在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. 一.准备工作 系统要求 Docker CE 支持一下版本的 Ubuntu 操作系统 Cosmic 18 ...

  9. JavaScript -- 时光流逝(七):js中的全局函数

    JavaScript -- 知识点回顾篇(七):js中的全局函数 全局函数可用于所有内建的 JavaScript 对象. (1) encodeURI():把字符串编码为 URI. <script ...

  10. Echarts的一些总结

    Echarts是专注做统计图表的插件,其本质是使用canvas进行图表的绘制.而如今它的属性和配置也是越来越丰富.基本的配置很简单,比如饼状图,就是数据和要显示的文字和颜色,柱状图,就是横纵坐标和数据 ...