ASP.NET Core 能用于什么样的应用

  ASP.NET Core 可以用作传统的web服务、RESTful服务、远程过程调用(RPC)服务、微服务,这归功于它的跨平台支持和轻量级设计。如下图所示:

什么时候选择ASP.NET Core 

  这个问题需要从三个方面来讨论。

  1、刚学习.NET的开发人员

    如果您是.NET开发新手并正在考虑使用ASP.NET Core,那么欢迎您! 微软正在推动ASP.NET Core作为Web开发初学者的一个有吸引力的选择,与其他跨平台Web框架相比,它具有如下的优势:

      a、它是一个现代的,高性能的开源Web框架;

      b、它使用熟悉的设计模式和范式;

      c、C#是一种很棒的语言(如果你愿意,你可以使用VB.NET或F#);

      d、您可以在任何平台上构建和运行(跨平台);

    ASP.NET Core是对ASP.NET框架的重构,在新的.NET Core平台之上,使用了现代软件设计原理。虽然它是一个全新的平台,但.NET Core是从已经使用了十多年,获得了巨大的成功的,成熟、稳定、可靠的.NET框架重构而来,选择ASP.NET Core和.NET Core,您将获得可靠的平台以及功能齐全的Web框架。当前流行的许多Web框架都使用类似设计模式,这各ASP.NET Core没有什么不同。例如,众所周知的Ruby on Rails,它使用模型 - 视图 - 控制器(MVC)模式; Node.js,它使用管道处理请求;存在于各种各样的框架中的依赖注入。如果熟悉这些技术,学习ASP.NET Core是件很容易的事;如果不熟悉,也没关系,ASP.NET Core带你体验这些技术的最佳实践!

  2、你是一个.NET开发人员,准备创建一个新项目

    如果您是.NET开发人员,那么选择ASP.NET Core只是时间问题。 虽然微软承诺继续支持老版的ASP.NET框架,但很明显他们的重心在新的ASP.NET Core框架。 从长远来看,如果你愿意使用新的特性和功能,ASP.NET Core是你必然的选择。

    ASP.NET Core是否适合您,很大程度上取决于您的需求和之前ASP.NET框架的体验。 跟ASP.NET框架相比,ASP.NET Core具有如下优势:

      a、跨平台开发和部署;

      b、高性能;

      c、简化的托管模型;

      d、更短的迭代和开发周期;

      e、开源;

      f、模块化设计;

      

    如果您在应用中没有使用任何特定于Windows的组件,例如注册表。那么跨平台构建和部署应用程序的能力将为你打开一个进入全新的应用程序大门:它可以利用更便宜的Linux 虚拟主机,托管在云端,使用Docker容器进行可复用的持续集成,或者在Mac上编写.NET代码而无需运行Windows虚拟机。

    以前的ASP.NET框架的托管模型是一个相对复杂的模型,依靠Windows IIS提供Web服务器进行托管。 在跨平台环境中,不存在这种共生关系,而是使用了另一种托管模型,它将Web应用程序与底层分开。 这促成了微软对Kestrel的开发:一个快速,跨平台的可以运行ASP.NET Core应用的HTTP服务器。下图是ASP.NET 和ASP.NET Core的托管示意图:

    为了实现这一点,ASP.NET Core被设计为高度模块化,尽可能减少模块间的耦合。从一个简单的应用程序开始添加需要的库,而不是像以前的从一开始就变得臃肿的ASP.NET应用程序 。在ASP.NET Core应用中,甚至MVC也是一个可选包! 这并不意味着ASP.NET Core缺少了功能; 它仅仅是让你按需添加类库,构造灵活的,轻量的应用。它包含如下重要的组件:

      a、用于定义应用程序行为的中间件“管道”(“pipeline”);

      b、内建的依赖注入(dependency injection);

      c、组合UI(MVC)和API(Web API)基础结构;

      d、高度可扩展的配置系统;

      e、异步编程;

    3、将现有ASP.NET应用程序转换为ASP.NET Core    

      如果你的应用程序为ASP.NET Web Form 、WCF、SignalR、使用了很多ASP.NET MVC高级功能的应用,那么,不建议你将其转换为ASP.NET Core 应用。因为这些类型应用的很多特性,在ASP.NET Core 不被支持。(SignalR将在新版本中支持),如果你的应用是轻量的ASP.NET MVC应用或者你打算重新创建一个新应用时,建议使用ASP.NET Core;

  

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

  

《ASP.NET Core In Action》读书笔记系列二 ASP.NET Core 能用于什么样的应用,什么时候选择ASP.NET Core的更多相关文章

  1. asp.net MVC4 框架揭秘 读书笔记系列3

    IIS/ASP.net管道 本节全部用图形表示便于理解和记忆 1.3.1 IIS5.x与asp.net 1.3.2 IIS 6.0与asp.net 1.3.3 IIS7.0与asp.net 基于IIS ...

  2. asp.net MVC4 框架揭秘 读书笔记系列2

    1.2 MVC 变体 MVC 是一种Pattern 另外一种说法是ParaDigm 范例 模式和范例的区别在于前者可以应用到具体的应用上,而后者则仅仅提供一些指导方针 1.2.1 MVP Model ...

  3. asp.net MVC4 框架揭秘 读书笔记系列1

    1.1 传统MVC 名词解释 Autonomous View. AV. 自制视图 GUI图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式 ...

  4. 《ASP.NET Core In Action》读书笔记系列,这是一个手把手的从零开始的教学系列目录

    最近打算系统学习一下asp.net  core ,苦于没有好的中文书藉,只好找来一本英文的 <ASP.NET Core In Action>学习.我和多数人一样,学习英文会明显慢于中文.希 ...

  5. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  6. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  7. 《Mastering Opencv ...读书笔记系列》车牌识别(II)

    http://blog.csdn.net/jinshengtao/article/details/17954427   <Mastering Opencv ...读书笔记系列>车牌识别(I ...

  8. 《Mastering Opencv ...读书笔记系列》车牌识别(I)

    http://blog.csdn.net/jinshengtao/article/details/17883075/  <Mastering Opencv ...读书笔记系列>车牌识别(I ...

  9. 读书笔记系列01-《收获、不止Oracle》

    读书笔记系列01-<收获.不止Oracle> 最近计划将看过的Oracle书籍依次系统的总结下读书笔记. 这本书是我个人觉得写的最有趣的Oracle书籍,也是我接触Oracle后第一本完全 ...

随机推荐

  1. BZOJ.5092.[Lydsy1711月赛]分割序列(高维前缀和)

    题目链接 \(Description\) \(Solution\) 首先处理\(a_i\)的前缀异或和\(s_i\).那么在对于序列\(a_1,...,a_n\),在\(i\)位置处分开的价值为:\( ...

  2. saprfc

    PHP在使用saprfc的时候,首先需要安装 saprfc 拓展,然后在引入saprfc.php类库,最后在使用.   一.PHP saprfc拓展的安装(Linux):   安装方法:   安装时需 ...

  3. Jmeter学习系列----3 配置元件之计数器

    在做测试时,会遇到一种需求:在大量数据的情况下,数据不能重复或者需要自增,基于这种形式,我们可以考虑使用计数器. 计数器(counter): 计数器配置允许用户配置起始点,最大值和增量. 计数器将从开 ...

  4. java列表数据基本操作

    列表数据组基本的增删改查 package cn.edu.fhj.day002; import java.util.ArrayList; public class ArrList { // 定义一个主函 ...

  5. __x__(27)0907第四天__ float 浮动

     float 浮动 块元素脱离文档流,水平排列. 浮动元素 会尽量往左上(left),或者右上(right)浮动,直到遇到 块元素 或者 其他浮动元素. 可选值: none;   默认值,不脱离文档流 ...

  6. laravel之ORM增删改查数据

    1.首先在控制器中添加方法,然后添加路由,接着在模型中操作: 以下是模型 2.以下是控制器中的操作 一下是通过ORM进行更新 删除数据

  7. 解析CommandMessage

    Json 解析: void CommandMessage::ParseCmdBody() { try { Json::Reader reader; Json::Value root; if (!rea ...

  8. 六、web应用与Tomcat

    软件系统体系结构 1 常见软件系统体系结构B/S.C/S 1.1 C/S l C/S结构即客户端/服务器(Client/Server),例如QQ: l 需要编写服务器端程序,以及客户端程序,例如我们安 ...

  9. jmeter使用指南:jmeter无脑式指南

    一:启动jmeter 二:添加线程组 三:添加 HTTP 请求 四:添加监听器 五:填写访问的域名,并保存 六:运行,查看结果 七:配置多线程.循环机制,进行压力测试

  10. css页面字体替换源代码和页面显示不一样问题解决

    2018年8月27日19:58:12 css指定字体的时候,可以自制的字体,比如字符替换,比如 0没有被替换,其他在源代码被替换对应的字母,但是现实的时候在替换成正确的数字 很简单,防爬虫,但是... ...