《ASP.NET Core In Action》读书笔记系列二 ASP.NET Core 能用于什么样的应用,什么时候选择ASP.NET Core
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的更多相关文章
- 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 ...
- asp.net MVC4 框架揭秘 读书笔记系列2
1.2 MVC 变体 MVC 是一种Pattern 另外一种说法是ParaDigm 范例 模式和范例的区别在于前者可以应用到具体的应用上,而后者则仅仅提供一些指导方针 1.2.1 MVP Model ...
- asp.net MVC4 框架揭秘 读书笔记系列1
1.1 传统MVC 名词解释 Autonomous View. AV. 自制视图 GUI图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式 ...
- 《ASP.NET Core In Action》读书笔记系列,这是一个手把手的从零开始的教学系列目录
最近打算系统学习一下asp.net core ,苦于没有好的中文书藉,只好找来一本英文的 <ASP.NET Core In Action>学习.我和多数人一样,学习英文会明显慢于中文.希 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- 《Mastering Opencv ...读书笔记系列》车牌识别(II)
http://blog.csdn.net/jinshengtao/article/details/17954427 <Mastering Opencv ...读书笔记系列>车牌识别(I ...
- 《Mastering Opencv ...读书笔记系列》车牌识别(I)
http://blog.csdn.net/jinshengtao/article/details/17883075/ <Mastering Opencv ...读书笔记系列>车牌识别(I ...
- 读书笔记系列01-《收获、不止Oracle》
读书笔记系列01-<收获.不止Oracle> 最近计划将看过的Oracle书籍依次系统的总结下读书笔记. 这本书是我个人觉得写的最有趣的Oracle书籍,也是我接触Oracle后第一本完全 ...
随机推荐
- PostgreSQL自学笔记:7 插入、更新与删除数据
7 插入.更新与删除数据 7.1 插入数据 先创建表person: create table person( id int not null, name char(40) not null defau ...
- 关于FastReport在winform中的使用(包含FastReport.net的安装步骤链接)
一.FastReport的简介 FastReport是功能齐全的报表控件,使开发者可以快速并高效地为·NET/VCL/COM/ActiveX应用程序添加报表支持. 二.FastReport的安装(推荐 ...
- django——视图层
1. 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...
- vue cli搭建项目
1.首先电脑要在安装node环境下才能运行 2.全局安装webpack:npm install webpack -g 3.安装vue脚手架: npm install vue-cli -g 4.新建文件 ...
- mobile_5 种常见适配_设备兼容
em 参照本身元素的 font-size rem 参照 html 根元素 的 font-size 1. rem 适配 (同一元素,在不同设备上,效果一样) 适用情况: 当页面大于 独立像素375 ...
- 8. 环境变量_数据库_mongoose的基本使用_模型对象的CRUD
1. 环境变量 系统环境(cmd)使用的变量/命令 能够让我们在cmd环境下运行指定的程序 用户环境变量 path(我们一般设置这个) 系统环境变量 path 过程: 当我们在cmd中输入一个指令 先 ...
- Windows系统Git安装配置
Git的安装 Git是一个开源的分布式的版本控制软件,是Linus Torvalds 为了方便开源贡献者协同开发和管理 Linux 内核开发替代BitKe而开发的. 打开git官网的下载地址:http ...
- App拉起小程序提示跳转失败
App拉起小程序提示跳转失败 req.userName = "gh_8afldfalsejw"; // 小程序的原始ID,注意不是Appid
- CodeForces #549 Div.2 C Queen
题目 水题,dfs #include <iostream> #include <stdio.h> #include <algorithm> using namesp ...
- C++标准库algorithm
(1) 基本数学相关: max(t1, t2)和min(t1, t2), 返回t1和t2中的较大.较小者. max_element(b, e)和min_element(b, e), 返回两个迭代器所指 ...