《ASP.NET Core In Action》读书笔记系列一 ASP.NET Core 的诞生

  最近打算系统学习一下asp.net  core ,苦于没有好的中文书藉,只好找来一本英文的 《ASP.NET Core In Action》学习。我和多数人同样,学习英文会明显慢于中文。但愿与我相同状况的人避免这样的低效,决定把书重要的部分提取出来分享给你们。git

  ASP.NET Core是微软ASP.NET Web框架的最新版本。于2016年6月发布,相比以前ASP.NET有不少增量更新。 ASP.NET Core经过进行重大的体系结构调整来提升开发人员的工做效率和向后兼容性。从新设计Web框架和构建方式。 ASP.NET Core不少功能来至以前ASP.NET,但它是一个新的框架,整个技术堆栈全被重写,包括Web框架和底层平台。 与其余现代框架相比,它有更新的定位和目标。同时保留之前ASP. NET 的优势。github

 

ASP.NET的优势和局限性web

  要知道微软决定构建新框架的缘由,咱们得了解现有ASP.NET Web框架的优势和局限性。编程

  ASP.NET的第一个版本于2002年做为.NET Framework 1.0的一部分发布。相比当时传统的ASP和PHP,ASP.NET Web Forms容许开发人员使用图形设计器、简单的像Windows应用中的事件模型快速建立Web应用程序。但随着时间的推移,web开发生态发生很大的改变。ASP.NET Web Form 遇到了许多问题,尤为是在构建大型的应用程序时,缺少可测试性,复杂的有状态模型以及对生成复杂的HTML使得客户端开发变得异常困难,这些致使开发人员选择了别的开发平台。为了扭转这种局面,微软于2009年发布了初版的ASP.NET MVC,它基于MVC模式(模型 - 视图 - 控制器),这种Web设计模式普遍用于Ruby on Rails,Django和Java Spring等框架。它容许UI元素与应用逻辑分离,易于测试,并提供能控​​制HTML生成过程的能力。ASP.NET MVC自首次发布以来已经进行了四次迭代,但它们都创建在由System .Web.dll库提供的底层框架上,该库是.NET Framework的一部分,包含了ASP.NET在构建web 应用时的全部核心代码,所以它依赖于Windows。这种依赖性既带来了优势又带来了缺点。一方面,ASP.NET框架是一个通过实战考验的可靠平台,是在Windows上构建现代应用程序的绝佳选择。它提供的众多的功能已经多年运用于web应用系统,这是从事windwos web 应用开发人员所熟知的。另外一方面,这种依赖性致使它更新速度很慢,至多只能第每一年发布一次,由于对System.Web.dll的修改涉及到了NET Framework 。另外它Windows Web主机Internet信息服务(IIS)的耦合,阻止了它在非Windows平台上的使用。设计模式

  近年来,许多Web开发人员开始关注跨平台Web应用,能够在Windows、Linux和macOS运行的框架。同时,微软也感受到,是时候建立一个再也不依赖于Windows的框架了,因而ASP.NET Core诞生了。架构

 

什么是ASP.NET Core?app

  ASP.NET Core的四个主要目标:框架

    一、跨平台运行和开发;asp.net

    二、采用模块化架构,便于维护;模块化

    三、彻底开源;

    四、适应当前Web开发趋势,例如:客户端应用程序和部署到云环境;

  为了实现这些目标,Microsoft须要一个能够提供 ,用于建立List(列表)和dictionaries(词典)等基本对象,以及执行简单的文件操做的底层库的平台。到目前为止,ASP.NET开发一直专一于,依赖于Windows专用的.NET Framework。对于ASP.NET Core,它是Microsoft建立的一个在Windows上运行的轻量级平台,Linux和macOS称之为.NET Core,以下图所示。

 

   .NET Core与.NET Framework共享许多相同的API,但它更小,目前只实现了.NET Framework提供的功能的一个子集,它提供更简单的实现和编程模型的目标,是一个全新的平台,而不是.NET Framework的分支,尽管它们使用许多类似的API代码。

   仅使用.NET Core,就能够构建运行跨平台的控制台应用程序。 微软建立了ASP.NET Core做为控制台之上的附加层应用程序,例如:将控制台应用程序转换为Web应用程序涉及添加的库。以下图所示:

 

  最上面的 .NET Core console 能够运行在 ASP.NET Core web Server中,微软提供了一个跨平台的默认实现--Kestrel, web application 逻辑层在Kestrel中运行, 经过添加相应的类库来增长应用的功能,好比:日志记录(Logging)、Html 生成。

  ASP.NET Core由许多小型库组成,能够根据应用的须要添加相应的库,不多有应用会用到全部的可用库。有一些经常使用的库,几乎会出如今每一个应用程序中,例如:读取应用程序 配置文件、日志记录。其余类库可创建在这些基础库之上,例如第三方提供的经过Facebook或Google登陆的库。在ASP.NET Core中使用的大多数库均可以在GitHub上(https://github.com/aspnet)找到例如Kestrel Web Server和日志库、例如第三方认证库以及更多的外围库。全部ASP.NET Core应用程序都将遵循相似的基本配置设计,如基础库那样,但总的来讲框架是灵活的,您能够自由定义本身的代码约定。

 

 

   谢谢你的阅读,下节见!若是期待本系列,请点一下推荐!

相关文章
相关标签/搜索