ASP.NET Core介绍

ASP.NET Core是一个新的开源和跨平台的框架,用于构建如Web应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。ASP.NET Core应用可运行于.NET Core和完整的.NET Framework之上。构建它的目的是为那些部署在云端或者内部运行的应用提供一个优化的开发框架。它由最小开销的模块化的组件构成,因此在构建解决方法的同时可以保持灵活性。

ASP.NET Core有一些架构上的改变,这些改变使得它成为一个更为精简并且模块化的框架。

通过ASP.NET Core可以获得的改进如下:

  • 统一的方式用于构建Web UI和Web API
  • 集成现代的客户端开发框架和开发流程
  • 适用于云的基于环境的配置系统
  • 内置依赖项注入
  • 轻型高性能模块化HTTP请求管道
  • 能够在IIS上进行托管或在自己的进程中进行自托管
  • 可以在.NET Core上运行,支持真正的并行应用版本控制
  • 简化新式Web开发的工具
  • 能够在Windows、macOS和Linux上进行生成和运行
  • 开源和关注社区

1.ASP.NET Core应用

ASP.NET Core应用其实就是在一个Main方法中创建一个Web服务器的简单控制台应用程序。

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting; namespace WebApplication
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
} public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
}

Main方法调用WebHost.CreateDefaultBuilder,后者按照生成器模式来创建Web应用程序主机。生成器提供定义Web服务器(例如UseKestrel)和启动类(UseStartup)的方法。

IWebHostBuilder是WebHost.CreateDefaultBuilder调用的返回类型,它提供了许多可选方法,包括用于在HTTP.sys中托管应用的UseHttpSys,以及用于指定根内容目录的UseContentRoot。Build和Run方法生成IWebHost对象,该对象托管应用并开始侦听HTTP请求。

2.StartUp

WebHostBuilder的UseStartup方法为你的应用指定Startup类

Startup类可用来定义请求处理管道和配置应用需要的服务。Startup类必须是公开的(public),并且必须包含如下方法:

   public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
} // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
} app.UseHttpsRedirection();
app.UseMvc();
}
}

ConfigureServices方法用于定义你的应用所使用的服务(例如,ASP.NET Core MVC、Entity Framework Core、Identity等)。

Configure方法用于定义你的请求管道中的中间件。

3.服务

服务是应用中用于通用调用的组件。服务通过依赖注入获取并使用。ASP.NET Core内置了一个简单的控制反转(IoC)容器,它默认支持构造器注入,并且可以方便地替换成你自己选用的IoC容器。由于它的松耦合特性,依赖注入(DI)使服务在整个应用中都可以使用。

4.中间件

在ASP.NET Core中,你可以使用中间件构建你的请求处理管道。一般来说,要想使用一个中间件,只需在Configure方法里调用IApplicationBuilder上一个对应的UseXXX扩展方法即可。

ASP.NET Core带来了丰富的内置中间件,也可以创建自己的自定义中间件。

5.服务器

ASP.NET Core托管模式并不直接监听请求,而是依赖于一个HTTP Server实现来转发请求到应用程序。

ASP.NET Core包含了一个托管的跨平台Web服务器:Kestrel,它往往会被运行在一个如IIS或者Nginx的生产Web服务器之后。

6.内容根目录

内容根目录是应用程序所用到的所有内容的根路径,比如它的views和web内容。

7.网站根目录

应用程序的Web根目录是项目中类似于CSS、JS和图片文件公开、静态的资源的目录。Web根目录默认为<contentroot>/wwwroot,但是也可以通过WebHostBuilder来指定另外一个地址。

8.配置

ASP.NET Core使用了一个新的配置模型,用来处理简单的键值对。新的配置模型不是基于System.Configuration或者web.config;相反,它是一个有序拉取数据的配置providers。

9.环境

环境,如"Development"和"Production",是ASP.NET Core中的第一级概念,而且它可以使用环境变量来设置。

10.使用ASP.NET Core MVC构建Web UI和Web API

  • 可以使用Model-View-Controller(MVC)模式创建优秀的、可测试的Web应用程序
  • 可以构建支持多种格式并且完全支持内容协商的HTTP服务
  • Razor提供了一种高效的语言,用于创建Views
  • TagHelpers启用服务器端的代码参与到Razor文件的创建和HTML元素渲染
  • 可以使用自定义或者内置的formatters(JSON、XML)来构建完全支持内容协商的HTTP服务
  • Model Binding自动映射HTTP请求中的数据到action方法参数
  • Model Validation自动执行客户端和服务器端验证

ASP.NET Core学习——1的更多相关文章

  1. ASP.NET Core学习系列

    .NET Core ASP.NET Core ASP.NET Core学习之一 入门简介 ASP.NET Core学习之二 菜鸟踩坑 ASP.NET Core学习之三 NLog日志 ASP.NET C ...

  2. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  3. ASP.NET Core学习指导

    ASP.NET Core 学习指导 "工欲善其事必先利其器".我们在做事情之前,总应该做好充分的准备,熟悉自己的工具.就像玩游戏有一些最低配置一样,学习一个新的框架,也需要有一些基 ...

  4. Asp.Net Core学习笔记:入门篇

    Asp.Net Core 学习 基于.Net Core 2.2版本的学习笔记. 常识 像Django那样自动检查代码更新,自动重载服务器(太方便了) dotnet watch run 托管设置 设置项 ...

  5. ASP.NET Core学习零散记录

    赶着潮流听着歌,学着.net玩着Core 竹子学Core,目前主要看老A(http://www.cnblogs.com/artech/)和tom大叔的博客(http://www.cnblogs.com ...

  6. ASP.NET Core学习之三 NLog日志

    上一篇简单介绍了日志的使用方法,也仅仅是用来做下学习,更何况只能在console输出. NLog已是日志库的一员大佬,使用也简单方便,本文介绍的环境是居于.NET CORE 2.0 ,目前的版本也只有 ...

  7. ASP.NET Core学习之一 入门简介

    一.入门简介 在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了. 其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的“问 ...

  8. ASP.NET Core学习总结(1)

    经过那么长时间的学习,终于想给自己这段时间的学习工作做个总结了.记得刚开始学习的时候,什么资料都没有,光就啃文档.不过,值得庆幸的是,自己总算还有一些Web开发的基础.至少ASP.NET的WebFor ...

  9. Asp.net Core学习笔记

    之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 ...

  10. 2019年ASP.NET Core学习路线

    - [先决条件] + C# + Entity Framework + ASP.NET Core + SQL 基础知识 - [通用开发技能] + 学习 GIT, 在 GitHub 中创建开源项目 + 掌 ...

随机推荐

  1. Linux CentOS-7.4-x86_64(原版) 百度网盘下载

    因为CentOS-7-x86_64-DVD-1804.iso 镜像文件4.16G,超出了上传百度网盘的单个文件大小限制(4G), 所以这里先现将ISO镜像文件压缩成RAR包,然后上传网盘. 使用的话, ...

  2. 回调函数 和 promise对象,及封装API接口

    1.回调函数:https://blog.csdn.net/baidu_32262373/article/details/54969696 注意:回调函数不一定需要用到 return.如果浏览器支持Pr ...

  3. 关闭禁用 Redis 危险命令

    Redis 的危险命令主要有: flushdb,清空数据库 flushall,清空所有记录,数据库 config,客户端连接后可配置服务器 keys,客户端连接后可查看所有存在的键,当 redis k ...

  4. 前端学习笔记——引入css文件、样式优先级

    CSS样式的引用方式有三种:行间样式表>内部样式表>外部样式表. 如果只有一种样式,那么优先级“由内到外 由近到远” 1.行间样式表--内联方式 内联方式指的是直接在 HTML 标签中的  ...

  5. 常用内置模块(一)——time、os、sys、random、shutil、pickle、json

    常用内置模块 一.time模块 在python中,时间分为3种       1.时间戳: timestamp,从1970年1月1日到现在的秒数, 主要用于计算两个时间的差    2.localtime ...

  6. 论一个PHP项目上线的注意点

    一.后端问题 服务器配置要跟上流量 预估QPS时要给足未知流量的空间 后端数据库设计要根据项目大小来相对应,小型流量单表就可以,但是中大型要分库分表 在处理执行修改的操作时一定要多一层判断(判断是否已 ...

  7. 转 笔记本无线和有线的MAC地址修改

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueqiang03/article/details/80741734无线网卡的mac地址在出厂时就被 ...

  8. 给Laravel4添加中文语系(转)

    Laravel 4 官方不附带英文以外的 validataion 错误信息翻译. 今天发现GitHub 上有一个 repository 收集不同的翻译,大家可以下载需要的翻译. GitHub项目地址: ...

  9. 纯css设置元素过渡效果

    1.首先,先设置一个div,待会我们使用css3给这个div设置过渡效果. 2.然后给div设置宽高和背景,这里我就设置成200像素,深粉色. 3.接着开始设置transition属性,通过这个属性就 ...

  10. Spark和pyspark的配置安装

    如何安装Spark和Pyspark构建Spark学习环境[MacOs] JDK环境 Python环境 Spark引擎 下载地址:Apache-Spark官网 MacOs下一般安装在/usr/local ...