问题源于这么一本书:

《ASP.NET 4 解密(卷1)》,这本书大约是六七年前买的了,根据其名字,它讲述的是ASP.NET 4,那么ASP.NET现在究竟是什么版本?与.NET Framework版本的关系是什么?与.NET Core,ASP.NET Core又有什么关系?我整理了这么一张表,可能其中有些瑕疵,但总体八九不离十。

时间 Visual Studio .NET Framework ASP.NET ASP.NET MVC .NET Core ASP.NET Core
2002 Visual Studio.NET 1.0 1.0      
2003 Visual Studio.NET 2003 1.1 1.1      
2005 Visual Studio 2005 2.0 2.0      
2006   3.0 3.0      
2008 Visual Studio 2008 3.5 3.5      
2009       1.0    
2010 Visual Studio 2010 4.0 4.0 2.0    
2011       3.0    
2012 Visual Studio 2012 4.5 4.5 4.0    
2013 Visual Studio 2013 4.5.1 4.5.1 5.0    
2014   4.5.2 4.5.2 5.2   ASP.NET 5
2015 Visual Studio 2015 4.6 4.6 5.2.3    
2016         1.0 更名并发布1.0
2017 Visual Studio 2017 4.7     2.0 2.0
  1. ASP.NET是与.NET Framework一起发布的,它属于.NET Framework的一部分,它的实现是封装在System.Web.dll中的,所以可以认为.NET Framework的版本就是ASP.NET的版本
  2. 但到了ASP.NET 4.6之后,微软计划的下一代ASP.NET是要具备“跨平台”特性的,也就是说,它并不再依赖于.NET Framework,这个项目代号为“ASP.NET vNext”的产品后来一度被称作ASP.NET 5,直到2016年才被正式更名为ASP.NET Core并发布1.0版,所以ASP.NET Core并不是ASP.NET的继任者,它架构与ASP.NET相差较大,并且不依赖于System.Web.dll
  3. ASP.NET Core基于.NET Core,它是跨平台的
  4. .NET Core和ASP.NET Core都是开源的(使用MIT License),而.NET Framework和ASP.NET并不开源
  5. ASP.NET MVC是微软官方提供给ASP.NET的额外的MVC框架,可以独立通过nuget获取,其最新版是5.2.4(截止2008年3月8日,就是我写下这段文字的时候),由于使用广泛,不少人将其与ASP.NET搞混,其实从时间上来看,ASP.NET MVC出现较晚,直到2011年的3.0版本出来,推出了Razor渲染引擎才算比较成熟,另外ASP.NET MVC是开源的
  6. 另外有一个叫ASP.NET Web API的框架,与ASP.NET MVC框架类似,可以独立通过nuget获取,开发模式与ASP.NET MVC类似,区别在于侧重点,Web API注重数据交换而不是页面渲染
  7. ASP.NET Core中直接包含了MVC及Web API的功能(其实准确的说,应该是你可以自由选择其中的各个组件,可谓丰俭由人)

好了,那接下来的问题是:我改选择什么?

答案显而易见,肯定是最新的ASP.NET Core 2.0了,(事实上,到我写下这段文字时,它最新版是2.0.4)当然了,前提是你有得选的话,至于.NET好在哪,C#好在哪这种问题,请自行知乎。

ASP.NET的版本?的更多相关文章

  1. 【转载】保哥 釐清 CLR、.NET、C#、Visual Studio、ASP.NET 各版本之間的關係

    我常常不仅仅逛 博客园,还会去找国外,特别是台湾的技术部落格,发现好的文章,我便会收录,今天我转载或者全文复制,在Google 博客园,一位叫保哥, 釐清 CLR..NET.C#.Visual Stu ...

  2. CLR/.NET/C#/Visual Studio/ASP.NET各版本之间的关系(转)

    由于这篇文章记录的是2015年7月,那时.net core还是叫做.net core 5 名词定义 下列这些名词,写.NET 的人一定都不陌生,但你是否有真正理解呢?如果看了我的摘要文字说明还无法理解 ...

  3. Asp.NetCore1.1版本没了project.json,这样来生成跨平台包

    本章将要和大家分享的是Asp.NetCore1.1版本去掉了project.json后如何打包生成跨平台包, 为了更好跟进AspNetCore的发展,把之前用来做netcore开发的vs2015卸载后 ...

  4. [转帖]ASP.NET的版本?

    ASP.NET的版本? https://www.cnblogs.com/guogangj/p/8526365.html 问题源于这么一本书: <ASP.NET 4 解密(卷1)>,这本书大 ...

  5. Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法

    更新Win10,原来的IIS站点访问不了,原因是因为IIS 没有.net 4.5,使用网上的aspnet_regiis.exe -i命令,一点都不靠谱,直接提示: C:\WINDOWS\system3 ...

  6. 【转】Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法

    原文:https://blog.csdn.net/sweety820/article/details/79538973 更新Win10,原来的IIS站点访问不了,原因是因为IIS 没有.net 4.5 ...

  7. Win10-IIS注册asp 此操作系统版本不支持此选项 错误解决方法

    现象再现: 今日在Win10上面ASP.NET网站突然不能跑了, 过程再现: 根据资料提示重新注册ASPNET_IIS.exe -i 直接提示: C:\WINDOWS\system32>c:\w ...

  8. ASP.NET网站版本自动更新程序及代码[转]

    1.自动更新程序主要负责从服务器中获取相应的更新文件,并且把这些文件下载到本地,替换现有的文件.达到修复Bug,更新功能的目的.用户手工点击更新按钮启动更新程序.已测试.2.环境VS2008,采用C# ...

  9. EF7 在ASP.NET5 RC1版本中数据结构合并的问题

    由于EF版本和asp.net5版本不断更新导致命令出现冲突.最新命令如下: C:\ScrumBasic\ScrumBasic>dnx ef _/\__ ---==/ \\ ___ ___ |. ...

随机推荐

  1. HTTP Strict Transport Security实战详解

    HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式. 0×01. Freebuf百科: ...

  2. Linux内核参数调优

    用法: vim /etc/sysctl.conf #修改内容 sysctl -p #生效 相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整.   net.core.net ...

  3. Linux kernel的中断子系统之(七):GIC代码分析

    返回目录:<ARM-Linux中断系统>. 总结: 原文地址:<linux kernel的中断子系统之(七):GIC代码分析> 参考代码:http://elixir.free- ...

  4. MIT KIT OpenID Connect Demo Client

    Hello world! You are NOT currently logged in. This example application is configured with several pa ...

  5. 在 Docker 容器中运行应用程序

    案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 ...

  6. 富文本编辑器UEditor自定义工具栏(三、自定义工具栏功能按钮图标及工具栏样式简单修改)

    导读 富文本编辑器UEditor提供丰富了定制配置项,如果想设置个性化的工具栏按钮图标有无办法呢?答案是肯定的!前两篇博文简要介绍了通过将原工具栏隐藏,在自定义的外部按钮上,调用UEditor各命令实 ...

  7. jquery的$.extend和$.fn.extend作用及区别/用span实现进度条/腾讯云IIS端口号修改

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); 虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便. ...

  8. java 匿名对象,内部类,修饰符,代码块

    匿名对象是在建对象时只有创建对象的语句方法而没有把对象的地址赋值给变量,匿名对象只能调用一次方法,想再调用时需要再创建一个新的匿名对象 创建普通对象:Person p =new Person(); 创 ...

  9. selenium相关技术研究(从1.0-3.0)

    注: 以下内容引自http://www.cnblogs.com/hhudaqiang/p/6550135.html Selenium相关技术研究(从1.0-3.0) 好吧,最近看wxpython有点多 ...

  10. appium----【已解决】【Mac】环境配置提示“Xcode Command Line Tools are NOT installed!"

    报错问题提示截图如下: 报错原因 :根据给出的信息很明显可以看到是"Xcode Command Line Tools"此工具没有安装 解决措施: 打开终端直接执行:xcode-se ...