.Net Core 学习 (1) - ASP.NET Core 总览
- 什么是ASP.NET 1.0
- 开源 - GitHub
- 跨平台 - 支持Windows, Mac, Linux
- 从底层进行了优化 - 使用最小开销的模块化组件 - 给与了开发人员很大的灵活性
- 为什么要使用ASP.NET Core
- 轻量级模块化HTTP请求管道 - 过去的框架过于臃肿, ASP.NET 5 更加小巧(模块化), 如: 不再基于System.Web.dll进行开发, 而是分解为一系列的NuGet包, 您只需安装所需几个即可(pay-for-what-you-use);
- 框架大统一 - WebUI, Web APIs 甚至客户端网络框架都是统一的
- 基于云开发, 基于环境配置, 提供内建的依赖注入支持
- 基于云开发 - 所有包通过NuGet管理
- 基于环境配置 - 根据不同的平台使用不同的配置, 也可以配置使用IIS托管, 自托管, OWIN托管等
- 内建的依赖注入 - 内部整合了Autofac和Ninject
- 支持跨平台开发工具
- Visual Studio(非跨平台) : 提供了一个全新的灵活的项目系统
- 其他开发工具(跨平台支持) : 提供了完整的命令行接口, 使你可以选择喜欢的工具进行开发
- 支持跨平台运行
- 完全开源, 社区支持
- 支持side-by-side应用程序版本控制 - 只需要升级需要的部分即可
- 应用程序剖析
- ASP.NET Core 1.0 运行在 .NET Execution Environment(DNX) 之上
- Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services) {}
public void Configure(IApplicationBuilder app) {}
public static void Main(string[] args) => WebApplication.Run<Startup>(args);
}
- ConfigureServices : 定义使用的服务
- Configure : 定义在请求管道中使用的中间件
- 什么是服务
服务是在整个应用程序中都要用到的公共组件, 通过依赖注入获得, ASP.NET Core 1.0中有三种类型的服务:
- Singleton : 整个应用程序任何时候都是使用这一个
- Scoped : 如果在指定作用域中没有, 则创建一个, 默认的容器域是每次请求都创建一个
- Transient : 每次使用服务都会创建一个
- 什么是中间件
中间件用于组成你的应用程序请求管道, ASP.NET Core 1.0 在HttpContext之上采用异步逻辑, 它可以选择执行序列中的下一个中间件或者直接终止请求:
- 静态文件处理
- 路由
- 诊断
- 身份验证
- 什么是服务器Servers
- 用于监听Request请求
- IIS
- Self-hosting : 自己的进程中, 在Windows中, 可以使用WebListener服务
- Kestrel : 跨平台的WebServer
- 什么是WebRoot
- Http请求进行处理的根目录(比如处理静态文件)
- 如何配置应用程序 - Configuration
- 以前: 使用System.Configuration和Web.config
- 现在: 新的配置模块处理简单的键值对设置, 支持多种格式(XML, JSON, INI)
- 对其他客户端框架的整合 - AngularJS, KnockoutJS, Bootstrap…
.Net Core 学习 (1) - ASP.NET Core 总览的更多相关文章
- Orchard Core Framework:ASP.NET Core 模块化,多租户框架
Orchard Core Framework:ASP.NET Core 模块化,多租户框架 上一篇编写Orchard Core一分钟搭建ASP.NET Core CMS ,介绍ASP.NET Core ...
- ASP.NET Core 新增用户 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 新增用户 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新增用户 上一章节我们实现了一个注册表单,但也留了一些东西还没完成, ...
- ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 配置 上一章节我们简单介绍了下 Id ...
- ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 框架 前面我们使用了 N 多个章节, ...
- ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 数据库上下文 上一章节中我们了解了 Entity Framewo ...
- ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 动作结果 前面的章节中,我们一直使用简单的 C# 类作为控制器. 虽 ...
- ASP.NET Core 属性路由 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 属性路由 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 属性路由 经过前面章节的学习,想必你已经对 ASP.NET Core ...
- ASP.NET Core 静态文件 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 静态文件 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 静态文件 前几章节中,我们学习了 ASP.NET Core 的中间件 ...
- 使用EF Core+CodeFirst建立ASP.NET Core MVC项目
本篇随笔介绍如何使用.NET Core+EF Core创建Web应用程序 首先借用官网的话简单介绍一下ASP.NET Core ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且 ...
随机推荐
- C++中的虚函数解析[The explanation for virtual function of CPlusPlus]
1.什么是虚函数? ...
- 使用Mono Cecil 动态获取运行时数据 (Atribute形式 进行注入 用于写Log) [此文报考 xxx is declared in another module and needs to be imported的解决方法]-摘自网络
目录 一:普通写法 二:注入定义 三:Weave函数 四:参数构造 五:业务编写 六:注入调用 7. 怎么调用别的程序集的方法示例 8. [is declared in another module ...
- android-serialport-api and libusb for android
libusb for android: Even if you get it compiled, Android is probably not going to let you access the ...
- RPi Debian Auto Login
This guide will show you how to login to a Debian image and start LXDE by simply powering the Pi on. ...
- centos修改时区,设置时间
在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...
- nyoj 79 拦截导弹
拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到 ...
- opencv 通过摄像头捕捉头部
code: #include <opencv\cv.h> #include <opencv\highgui.h> #include <opencv\cxcore.h> ...
- 【Away3D代码解读】(三):渲染核心流程(渲染)
还是老样子,我们还是需要先简略的看一下View3D中render方法的渲染代码,已添加注释: //如果使用了 Filter3D 的话会判断是否需要渲染深度图, 如果需要的话会在实际渲染之前先渲染深度图 ...
- Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
一.Java的位运算符实例——与(&).非(~).或(|).异或(^) 1.与(&) 0 & 2 = 0 0 0 0 0 1 0 0 1 0 2.非(~) ~0 = 7 0 0 ...
- 局部更新listview的问题(只更新某个item)
转:http://blog.csdn.net/wu_shu_jun/article/details/7794576 public void updateView(int itemIndex) { // ...