asp.netcore源码_netcore开源

hacker|
180

文章目录:

ASP.net core是什么?

ASP.NET

Core

是一个全新的开源、跨平台框架,可以用它来构建基于网络连接的现代云应用程序,比如:Web

应用,IoT(Internet

Of

Things,物联网)应用和移动后端等。ASP.NET

Core可以运行在

.NET

Core

或完整的

.NET

Framework

之上,其架构为发布到云端或本地运行的应用提供了一个最佳的开发框架,由开销很小的模块化组件构成,这就保持了你构造解决方案的灵活性。你可以跨平台地在Windows、Mac和Linux等设备上开发和运行你的

ASP.NET

Core

应用。

ASP.NET

Core有以下优势:

ASP.NET

Core相对于之前的版本有许多变化,才使得它成为一个更加灵活和模块化的框架。ASP.NET

Core不再是基于System.Web.dll,它基于一组分解在NuGet的包。这使您可以根据实际需要来判断是否引用相应的Nuget包,可以优化您的应用程序。表面积更小的应用程序的好处包括安全更强、维修更少,提高性能,降低成本。

最新版本的

ASP.NET

叫做

ASP.NET

Core

(也被称为

ASP.NET

5)

它颠覆了过去的

ASP.NET。

asp.net core mvc 是不是未包含使用UA 动态选择displayModel

这个吧,可能有些东西你不太理解造成的。

关于性能提升的问题,net core是否性能提升10倍?答案是还真差不多!为什么呢?这是因为.net core为了跨平台,编译的方式使用的是dotnet publish -r 版本,例如发布到windows X64的机器上,使用的命令就应该是dotnet publish -r win-x64这样的命令进行发布。而运行方式呢,使用的是dotnet run xx.dll,或者直接dotnet xx.dll,它并不依赖于IIS!当然可以在IIS上部署,也就是在配置文件中使用dotnet 其中参数为xx.dll效果是一样的——但是一旦这样部署的样,受制于IIS(多数情况下使用的是IIS10.0),尤其多线程测试时weblimit参数不做更新的话,性能上有影响,即使数据很大也是有影响的。

当然如果你直接使用IIS把源码丢过去,在配置文件中使用允许编译的方式的话,这种方式其实与.net framework的效果是一样的,并没有任何性能上的优势——这种情况只是你把net core看作是net framework的一个版本一样,他自然和其他版本相关不大!所以你不说话你的测试方式自然性能上无法估量。

net core相比之下的优势其实除了性能上的提高就是跨平台(其实是源码跨平台),什么意思呢?.net framework的移植性非常好,生成一个通用的dll(MSIL中间文件),然后该文件由不同机器上的运行环境自行翻译(JIT功能),一般认为是边翻译边执行,当然为了整体的性能问题,JIT首次编译的内容(调用的片段才会被翻译,不调用的不会翻译)存储到Native上,下次再调用时不用翻译过的代码时,JIT会跳过翻译,直接使用使用首次翻译过的片段。所以在以前的时候,有时我们为了性能,玩Native文件,而netcore后边指定版本的作用,其实就是翻译成可执行的二进制PE文件,当然他需要指定操作系统的,比如ubuntu等linux发行版上都可以的!想来看看,netcore本身在net framework上进行了重写,生成的也是针对不同系统的可执行内容,所以性能上肯定有所提升是绝对的。当然,这种方式最适合的方式还是容器方式(docker),所以性能上要比在IIS上提升不少——当然不能是类似.net framework直接源码的形式,有点类似于.net framework,但是比framework发布的形式还要高些,而性能提升也是基本这两种形式的对比!

当然,严格来说.net core也是试水跨平台的方式,他去掉了.net framework的大多数内容,所以主要的体现就以下三点:

1,跨平台

2,重写库,性能上的提高

3,为docker做足准备(也是跨平台的扩展之一)

换句话来说,如果你不是基于以上几种的考虑,那么为什么要选择net core呢?要知道每种技术都有他适应的场景的,如果你是winform/WPF时,没有考虑net core的必要性,而且net core也不支持!如果是Azercloud的话,net core小巧,且服务专一,当然可以考虑net core.如果你公司考虑到使用linux发行版以避免高昂的windows费用,还有一堆.net程序员的话,net core肯定是你的选择优势——net framework不支持linux系统啊!

所以我认为技术只是适用!也不是用来比较,net framework与net core的定位是相当明显且不相互冲突,所以只是一种选择罢了,而不是谁一定比谁牛B!

ASP.net core是什么,和ASP.net一样吗?

不一样

ASP.NET Core 是一个用于net程序跨平台的框架,在它的基础上会重写.NET Framework(windows)、Mono( Linux),以实现所有net程序、网站的跨平台

ASP.net 是一种微软推出的网站开发技术 目前一般分为 asp.net webform、asp.net mvc 两种

ASP.NET Core 1.0 是一个开源跨平台的开发框架,用于构建基于云的现代 Web 应用 。它是从底层开始重新构建来提供性能优良的Web应用开发框架,可以部署在云上或者本地服务器上。另外,它使得 ASP.NET 应用更加精简和模块化(可以根据你的应用需要向里面添加其他模块),跨平台(你可以很容易的在 Windows, Mac or Linux 上开发和部署你的应用),云优化(你可以在云上在云上部署和调试你的应用)。

ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。[1-2]

ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单

ASP.NET的开源版与ASP.NET相比具有怎样的优缺点?

不知道你说的是asp.net开源版是什么,是.NET Core?

asp.net只是.net中一个组件,甚至连编程语言都不是(可以使用任何一种.net语言,如C#、vb.net编写asp.net应用的代码),不存在为了它开源不开源的问题。

.net core挺好的,原来是个第三方公司开发的,现在是微软旗下的了,未来应该是.net 5.0,与微软自己的.net共存,功能近似,差别仅是它是开源的。

ASP.net mvc5和asp.net.core有什么区别呢?前景如何?

ASP.net mvc5和asp.net.core有什么区别呢,前景如何:

区别:

asp.net mvc5只能运行在Windows,一般通过IIS发布。

asp.net core开源,可跨平台,能够发布到Linux等系统上。asp.net core做了很多的整合工作,目前来说完成了最基本的一部分类库的迁移。

前景:

asp.net core肯定是以后的一种潮流,随着docker等技术的普及,跨平台的重要性凸显,必须要使用asp.net core编写的接口才能发布到linux中,也就是asp.net core编写的接口可以做成docker的镜像发布,而asp.net mvc5不能。所以最终肯定是会慢慢都转移到asp.net core上来。

但是这需要一个比较久的过程。因为从asp.net mvc5转移到asp.net core需要一定时间的学习,即使在国外也需要一定过程。而国内由于语言环境、开发工具(需要VS2015才能进行asp.net core的开发)等的原因,肯定需要更久。国内的技术一直以来也比较保守。

如果单纯的以在国内找个开发的工作的话,建议先熟悉下asp.net mvc5。如果确实有跨平台的需求,或者团队成员都对新技术有很高的热情,从事的也是全新的项目的话,就使用asp.net core。

.net core:

.NET Core 是.NET Framework的新一代版本,是微软开发的第一个官方版本,具有跨平台 (Windows、Mac OSX、Linux) 能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台[1]  ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。

由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 大包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。

参考资料

百度百科.百度百科[引用时间2018-1-4]

1条大神的评论

  • avatar
    访客 2022-07-17 上午 11:52:57

    p.net mvc5只能运行在Windows,一般通过IIS发布。asp.net core开源,可跨平台,能够发布到Linux等系统上。asp.net core做了很多的整合工作,目前来说完成了最基本的一部分类库的迁移。前景:asp.

发表评论