ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇
给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过。踏实的生活(曾辞职转行后重新回来),娶妻生子,很感谢我的朋友能在最危难时刻帮助我,也很感话我的妻子对我事业的支持,希望大家保重好身体,多学习,多陪伴家人。
一直从事.Net和 PHP 和一些不成型的前端开发,有人评论WP的失败,是,现在这个开源的时候,如果跟不上,闭门自封,将会坠入深渊。个人认为微软出.Net Core 为迟已晚,很多市场像Windows, CE,Phone一样被市场冷酷的淘汰。但唯是 ASP.NET Core 是对 ASP.NET 的一次意义重大的重构。跨平台,C#语法通俗简练,肯定效果不凡。
懂行的人都知道,ASP.NET 易学难精,只要大神优化做的好,用好MVC,webAPI,解决高并发,在后台语言上是有很多优点的,这里就不多费话了。本篇内容是为了记录:ASP.NET Core Web开发学习笔记遇到的总结点。
什么是 ASP.NET Core?
ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。ASP.NET Core 应用可运行于 .NET Core 和完整的 .NET Framework 之上。 构建它的目的是为那些部署在云端或者内部运行(on-premises)的应用提供一个优化的开发框架。它由最小开销的模块化的组件构成,因此在构建你的解决方案的同时可以保持灵活性。你可以在 Windows、Mac 和 Linux 上跨平台的开发和运行你的 ASP.NET Core 应用。 ASP.NET Core 开源在 GitHub 上。
通过 ASP.NET Core,你可以获得的改进:
- 一个统一的方式用于构建 web UI 和 web APIs
- 集成 现代的客户端开发框架 和开发流程
- 一个适用于云的,基于环境的 配置系统
- 内置的 依赖注入
- 新型的轻量级的、模块化 HTTP 请求管道
- 运行于 IIS 或者自宿主(self-host)于你自己的进程的能力
- 基于支持真正的 side-by-side 应用程序版本化的 .NET Core 构建
- 完全以 NuGet 包的形式发布
- 新的用于简化现代 web 开发的工具
- 可以在 Windows 、Mac 和 Linux 上构建和运行跨平台的 ASP.NET 应用
- 开源并且重视社区
应用程序事例
要进行开发环境和工具包安装:

我们使用VS2015创建一个新的 ASP.NET Core 解决方案

一个 ASP.NET Core 应用其实就是一个在其 Main 方法中创建一个 web 服务器的简单控制台应用程序:
在上面图示中,web 服务器 Kestrel 被启用,但是你也可以指定其它 web 服务器。(Kestrel 是一个实现了应用程序类似于IIS功能的服务器)
用于创建一个 web 应用程序宿主。这个 builder 有些用于定义 web 服务器 (如 UseKestrel)和 startup 类型( UseStartup)的方法。(startup 是一个全局启动配置文件,用来定义请求处理管道和配置应用需要的服务。)

ConfigureServices 方法:可定义的服务有:实现了一系列IService的IServiceCollection,如:ASP.NET MVC Core framework、Entity Framework Core、Identity 等等
Configure 方法:定义你的请求管道中的 中间件(middleware)来配置并请求和响应HTTP的管道命令
什么是服务(Services)
服务是应用中用于通用调用的组件。服务通过依赖注入获取并使用。 ASP.NET Core 内置了一个简单的控制反转(IoC) 容器,它默认支持构造器注入,并且可以方便的替换成你自己选用的 IoC 容器。
什么是中间件(Middleware)
ASP.NET Core 中间件为一个 HttpContext 执行异步逻辑,然后按顺序调用下一个中间件或者直接终止请求。一般来说你要使用一个中间件,这个中间件要完成IHttpContext的ProcessRequest方法,如果您熟悉HTTP请求管道,这个方法一般在第7-8个事件处理中。
简单的说,这个中间件,就是您的应用程序如何实现了IHttpContext,并做了相应的request 和 response和处理。
微软给我们提供了哪些中间件:
ASP.NET Core 带来了丰富的内置中间件:
- 静态文件(Static files)
- 路由(Routing)
- 身份验证(Authentication)
你也可以创建你自己的 自定义中间件。
你也可以在 ASP.NET Core 中使用任何基于 OWIN 的中间件。
服务器(Servers)
ASP.NET Core 托管模式并不直接监听请求;而是依赖于一个 HTTP server 实现来转发请求到应用程序。
这个服务器进行监听你的应用服务端口,并转发以一组 feature 接口的形式来包装后请求,然后被应用程序组合到一个 HttpContext中去。
ASP.NET Core 包含了一个托管的跨平台 web 服务器,被称为 Kestrel,(想起来了吗? 在)它往往会被运行在一个如 IIS 或者 nginx 的生产 web 服务器之后。
内容根目录(Content root)
内容根目录是应用程序所用到的所有内容的根路径,例如它的 views 和 web 内容。内容根目录默认与宿主应用的可执行程序的应用根目录相同;一个替代的地址可以通过 WebHostBuilder 来设置。
Web根目录(Web root)
你的应用的Web根目录(Web root)是你项目中所有公共的、静态的资源,如 css、js 和 图片文件的目录。静态文件中间件将默认只发布 Web 根目录(Web root)和其子目录中的文件。 Web 根目录(Web root)默认为 /wwwroot,但是你也可以通过 WebHostBuilder 来指定另外一个地址。
配置(Configuration)
ASP.NET Core 使用了一个新的配置模型用于处理简单的键值对。新的配置模型并非基于System.Configuration 或者 web.config ;而是从一个有序的配置提供者集合拉取数据。内置的配置提供者支持多种不同的文件格式如(XML,JSON, INI)和用于支持基于环境的配置环境变量。你也可以实现你自己自定义的配置提供者。
环境(Environments)
环境:生产环境,DEBUG和RELEASE是一种编译状态,开发时在系统级开发中分了如 “Development” 和 “Production”,是 ASP.NET Core 中的第一级概念而且它可以设置成使用环境变量。
使用 ASP.NET Core MVC 构建 web UI 和 web APIs
- 你可以使用 Model-View-Controller(MVC)模式创建优秀的并且可测试的 web 应用程序。查看MVC 和 测试。
- 你可以构建支持多种格式并且完全支持内容协商的 HTTP 服务。 查看 Formatting
- Razor 提供了一种高效的语言用于创建 Views
- Tag Helpers 启用服务器端的代码参与到 - Razor 文件的创建和 HTML 元素渲染
- 你可以使用自定义或者内置的 formatters (JSON, XML)来构建完全支持内容协商的 HTTP 服务
- Model Binding 模型绑定 自动的映射 HTTP 请求中的数据到 action 方法参数
- Model Validation 模型验证 自动的执行客户端和服务器端验证
客户端开发
ASP.NET Core 在设计时已考虑到和各种客户端框架(AngularJS,KnockoutJS 和 Bootstrap)的无缝集成。
ASP.NET Core Web开发学习笔记-1介绍篇的更多相关文章
- 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移
不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...
- ASP.NET Core MVC 网站学习笔记
ASP.NET Core MVC 网站学习笔记 魏刘宏 2020 年 2 月 17 日 最近因为” 新冠” 疫情在家办公,学习了 ASP.NET Core MVC 网站的一些知识,记录如下. 一.新建 ...
- 【前端】移动端Web开发学习笔记【2】 & flex布局
上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...
- 【前端】移动端Web开发学习笔记【1】
下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...
- ASP.NET Core快速入门--学习笔记系列文章索引目录
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 抓住国庆假期的尾巴完成了此系列课程的学习笔记输出! ASP.NET Core快 ...
- ASP.NET Core快速入门学习笔记(第1章:介绍与引入)
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务1:课程介绍 任务2:环境安装 下载地址:https://dotnet.m ...
- ASP.NET Core快速入门学习笔记(第2章:配置管理)
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务9:配置介绍 命令行配置 Json文件配置 从配置文件文本到c#对象实例的 ...
- 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建
作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...
随机推荐
- 何时可以开启透明数据加密(TDE)?
TDE可以为我们的数据库提供加密保护,但是,不是任何情况下都可以随意开启TDE的,同时开启TDE后,我们的数据库维护管理工作也需要进行一些调整. 下面我们就先看看开启TDE需要的条件吧! 无法正常开启 ...
- asp.net mvc4 signalR后台自推送
1.在引用中添加signalr后首选要引入Startup.cs类,在VS2012中添加Signalr后没有Startup.cs类然后就会报错 代码如下 using System; using Syst ...
- information_schema.routines 学习
information_schema.routines 用户查看mysql中的routine信息 1.information_schema.routines 表中的常用列: 1.
- 三星S5360(GALAXY Y)首次刷机尝试~
刷机包下载: http://www.romjd.com/Device/samsung-s5360 http://www.shuaji.com/rom/2033.htm#down http://www. ...
- JS扩展方法
JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. 下面给出一个例子 ...
- Json之语法,格式
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同.由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 Jav ...
- 认识元数据和IL(下)<第五篇>
书接上回: 第二十四回:认识元数据和IL(上) , 第二十五回:认识元数据和IL(中) 我们继续. 终于到了,说说元数据和IL在JIT编译时的角色了,虽然两个回合的铺垫未免铺张,但是却丝毫不为过,因为 ...
- C#开发SQLServer的Geometry和Geography存储
原文:C#开发SQLServer的Geometry和Geography存储 SQL Server2008推出后最大的变化就是提供了支持空间数据存储的Geometry和Geography,这个也是如果将 ...
- Windows7安装SQL Server 2008图解
不知是什么时候,把这篇博客给删除了,今天才发现,想恢复好像又不行,所以重新发布一下吧! 这几天因为需要,一直想安装SQL Server 2008来作为Web后台的数据库进行些实验,但总是没有时间,今天 ...
- 安装GeoIP数据库
1.安装GeoIP数据库 cd /usr/local/logstash/etc curl -O "http://geolite.maxmind.com/download/geoip/data ...