ASP.NetCore2.0概览

  微软为了统一微软平台,造就了.netStandard,不管之前的Framework还是最新的.netCore都必须支持.netStandard标准来统一各个平台的开发api。

以下是之前的微软各个平台构成,这种分叉对于开发人员为多个.NET平台编写代码构成了巨大的问题,因为没有一个统一的类库来定位:

目前有三种主要的.NET平台,这意味着您必须掌握三种不同的基类库,以便编写可在其中运行的所有代码。由于行业现在比起.NET最初创建的时候更加多样化,如果我们定义一个标准,那将极大简化开发过程并且规范各个平台开发的一致性。

以下是.netStandard之后的微软平台构成:

  从图可看出三大平台的底层都是.netStandard来支撑,对于开发人员来说,这意味着他们只需要掌握一个基类库。面向.NET Standard的库将能够在所有.NET平台上运行。平台提供商不必猜测他们需要提供哪些API才能使用NuGet上可用的库。

我们需要.NET标准有两个原因:

1.Driving force for consistency .We want to have an agreed upon set of required APIs that all .NET platforms have to implement in order to gain access to the .NET library ecosystem.

2.Foundation for great cross-platform tooling .We want a simplified tooling experience that allows you to target the commonality of all .NET platforms by choosing a single version number.

.NET Standard 2.0有什么新功能?

  当NET Core 1.0时,微软还引入了.NET Standard。有多个版本的.NET标准,以表示所有当前平台的API可用性。下表显示了现有平台的哪个版本与给定版本的.NET Standard兼容情况:

箭头表示该平台支持更高版本的.NET Standard。例如,.NET Core 1.0支持.NET Standard 1.6版,这就是为什么有较低版本1.0 - 1.5的箭头指向的原因。

从图可知微软在.NET Framework4.5开始执行.NET Standard1.1标准(换句话说也许是.NET Standard1.1以.NET Framework为标准制定,毕竟.NET Framework4.5的时候还没有出现.NET Standard标准),这样的话那以后就可以开发1.1版本的.NET Standard作为中间间供.NET Framework引用,也可以供支持了1.1标准的其他平台的引用(例如.NET Core或者未来微软开发的新的平台,只要支持.NET Standard1.1的即可)。这样极大的统一了微软各个平台代码的共享。

官方介绍

You can use this table to understand what the highest version of .NET Standard is that you can target, based on which .NET platforms you intend to run on.For instance, if you want to run on .NET Framework 4.5 and .NET Core 1.0, you can at most target .NET Standard 1.1.(您可以使用此表来决定您要运行的.NET平台来可以定位的最高版本的.NET Standard。(官方这段话大意是如果开发例如.NET Framework4.5 和 .NET Core 1.0上运行的程序,那最多只能开发.NET Standard1.1版本的程序集)

From a library targeting .NET Standard you’ll be able to reference two kinds of other libraries:

  • .NET Standard, if their version is lower or equal to the version you’re targeting.
  • Portable Class Libraries, if their profile can be mapped to a .NET Standard version and that version is lower or equal to the version you’re targeting.

(以上大意是如果你开发了.NET Standard程序集,那你可以引用两种两种类型的类库:

1.引用不大于当前.NET Standard 版本的.NET Standard

2.引用PCL,前提是其描述文件对应到不大于您当前 .NET Standard版本)

The following improvements are included in .NET Core 2.0 Preview 1:

  • Massive API increase (>100%) relative to .NET Core 1.x.
  • Support for .NET Standard 2.0.
  • Support for referencing .NET Framework libraries and NuGet packages.
  • Support for Visual Basic.

以上大意是:

.NET Core 2.0 Preview预览版包括四点改进:

  • 相对于Core1.1增加大量api
  • 支持.NET Standard2.0
  • 支持引用.NET Framework和NuGet的包
  • 支持VB语言

.NET Standard 2.0

.NET Standard allows sharing code, binaries and skills across all flavors of .NET, including .NET Framework, .NET Core, Xamarin, Unity, and UWP(以上大意是开发的.net Standard2.0类库可以在微软旗下任意平台引用,例如在Framework和Xamarin和Unity或者UWP项目下都可以引用同一个.NET Standard类库)

Here is what’s new with .NET Standard 2.0:

  • Has a much bigger API surface. It’s extended to cover the intersection between

.NET Framework and Xamarin. This also makes .NET Core 2.0 much bigger as it

implements .NET Standard 2.0. The total number of APIs added to .NET Standard

is ~20,000.

  • Can reference existing .NET Framework libraries. The best thing is:

no recompile required, so this includes existing NuGet packages. Of course,

this will only work if the consumed libraries use APIs that exist in .NET

Standard. However, our extensive API surface results in 70% of all NuGet

packages to be API compatible with .NET Standard 2.0.

(以上大意是 .NET Standard 2.0两个新功能:

  • 支持更多的api
  • 可以引用现有.NET Framework,前提是.NET Framework使用了在.NET Standard 存在的Api才有效)

Visual Studio 2017 Improvements

Visual Studio 2017 continues to use .NET Core 1.x by default.You need to install the .NET Core SDK 2.0 Preview 1 to get .NET Core 2.0 support.(以上大意是VS17默认情况下继续使用Core1.X 的版本,除非你安装2.0预览版得到2.0支持。.NET Core2.0预览版下载地址https://www.microsoft.com/net/core/preview#windowscmd)

时间: 2024-10-07 21:35:56

ASP.NetCore2.0概览的相关文章

搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi

里我们用三层架构搭建一个连接MySql的ASP.netCore模板的WebApi项目 首先添加WebApi项目(ASP.NetCore版本) 右键解决方案>新建项目> 选择Web>ASP.NET Core Web应用程序(.NET Core) 选择Web API 此时的目录结构: 添加实体层Entity 右键添加>新建项目>.Net Core类库 添加后的目录结构 BaseEntity: using System; using System.Collections.Gener

05、NetCore2.0插件框架运行原理源码初窥

05.NetCore2.0插件框架运行原理之WebHostBuilder源码初窥 NetCore2.0的插件框架是要解决对象创建的问题,把创建对象与使用对象进行解耦.调用者不需要关心对象是单例的还是多实例的:插件的扩展和调用也更容易. 一.我们先看看插件框架是如何使用的 首先使用VS2017新建一个控制台程序,要使用插件框架,我们需要引入微软的依赖注入包: install-package Microsoft.Extensions.DependencyInjection 我们声明一个自己的接口,并

关于asp.netCore3.0区域和路由配置

在ASP.NET Core 3.0中路由配置和2.0不一样了 一.MVC 服务注册 ASP.NET Core 3.0 添加了用于注册内部的 MVC 方案的新选项Startup.ConfigureServices.三个新的顶级扩展方法与 MVC 方案上IServiceCollection可用. 模板使用这些新方法,而不是UseMvc. 但是,AddMvc继续像它已在以前的版本.下面的示例将添加对控制器和与 API 相关的功能,但不是视图或页面的支持. API 模板使用此代码: public voi

创建一个netcore2.0和angular的项目并运行起来

netcore2.0发布了,喜大普奔. 我们先下载SDK,请看张善友老师的这篇博客 http://www.cnblogs.com/shanyou/p/7363037.html 下载完之后 我用的vs2017社区版,打开installer 更新一下,然后打开创建项目web Asp.net core web,在版本里默认的是2.0了,因为已经装过SDK了,选择angular模板 点击确定,VS会自动还原引用的包,但是npm包无法还原!!起码我这里是. 解决方法是!!!! 打开项目目录调出命令行界面(

.NetCore2.0引用DLL报System.InvalidOperationException: Can not find compilation library location for package 'XXX'

.NET CORE 2.0 MVC项目引用类库出现:System.InvalidOperationException: Can not find compilation library location for package 'XXX' 临时解决如下(据说2.0.1会修复):在Startup.cs文件中:修改: public void ConfigureServices(IServiceCollection services) { var mvcBuilder = services.AddMv

在ASP.NET2.0里打印网页指定的内容(比如打印网页里的一个Table)

原文:在ASP.NET2.0里打印网页指定的内容(比如打印网页里的一个Table) 打印指定内容: <html> <head> <script   type= "text/javascript "   language= "javascript "> function   printPage()   {   var   newWin   =   window.open( 'about:blank ', ' ', ' ');   v

ASP.NET MVC5(一):ASP.NET MVC概览

ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. ASP.NET MVC模式简介 MVC将Web应用程序划分为三个主要的部分,以下是MSDN给出的定义: 模型(Model):模型对象是实现应用程序数据域逻辑的应用程序部件. 通常,模型对象会检索模型状态并将其存储在数据库中. 例如,Product 对象可能会从数据库中检索信息,操作该信息,然后将更新的信息写回到 SQL S

ASP.NET2.0 ObjectDataSource的使用详解《转》

原文发布时间为:2008-08-02 -- 来源于本人的百度文章 [由搬家工具导入] ASP.NET2.0 ObjectDataSource的使用详解(2) http://mqingqing123.cnblogs.com/archive/2006/04/20/379720.html           这是因为GridView 和其他数据绑定控件调用 Update 操作的自动功能需依赖此命名约定才能工作。参数的命名预期应与 SelectCommand 返回的关联字段值相同。使用此命名约定使得数据

【IHttpHandler】在ASP.Net2.0中使用UrlRewritingNet实现链接重写

很多时候我们需要链接转向(Url Rewriting),例如二级域名转向.文章访问链接等场合. 让我们看两个例子: 1 你现在看到的当前作者的博客园的域名: http://jx270.cnblogs.com/ 实际上是 http://www.cnblogs.com/jx270 的一种链接重写(Url Rewriting). 2 codeproject上的文章,我们获取的地址都是以文章主要关键字做的网页名称: http://www.codeproject.com/cs/webservices/ws