.net core项目初建
电脑装Visual Studio2017,并升级版本。启动一个.net core 的项目。
NET Core基本介绍
1.1 什么是ASP.NET Core
ASP.NET Core 是一个全新的开源、跨平台框架,可以用它来构建基于网络连接的现代云应用程序,比如:Web 应用,IoT(Internet Of Things,物联网)应用和移动后端等。ASP.NET Core可以运行在 .NET Core 或完整的 .NET Framework 之上,其架构为发布到云端或本地运行的应用提供了一个最佳的开发框架,由开销很小的模块化组件构成,这就保持了你构造解决方案的灵活性。你可以跨平台地在Windows、Mac和Linux等设备上开发和运行你的 ASP.NET Core 应用。ASP.NET Core 的源代码已经在 GitHub上托管。
1.2 ASP.NET Core的改进
1) 在统一的方案中构建Web UI 和 Web API
2) 集成现代客户端开发框架和工作流
3) 以云就绪环境为基础的配置系统
4) 内置依赖注入
5) 全新、轻量级、模块化的HTTP请求管道
6) 在IIS或在自己托管进程中托管应用程序的能力。
7) 以.NET Core为基础,支持并行应用版本控制。
8) 完全以 NuGet 程序包方式分发
9) 一组全新的工具,简化现代Web 开发
10) 在Windows、Mac和Linux等设备上开发和运行 ASP.NET应用
11) 开放源代码和社区聚焦
1.3 ASP.NET Core 项目解读

如上图:一个ASP.NET Core应用其实就是一个简单的控制台应用程序,只是它在Main方法中创建了一个 Web 服务器而已,

using System.IO;
using Microsoft.AspNetCore.Hosting; namespace ProgrammersLiveShow
{
/// <summary>
/// 系统初始化信息
/// </summary>
/// 修改记录:
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build(); host.Run();
}
}
}

Main 使用一个遵循生成器模式的 WebHostBuilder来创建Web应用程序宿主。生成器具有定义web服务器(UseKestrel)和指定启动类(UseStartup<Startup>())的方法。 上述示例使用的是 Kestrel Web 服务器,但你可以指定其他类型的Web 服务器。在下一节中将展示更多 UseStartup 相关的信息。WebHostBuilder 提供了大量的选项方法,包括指定宿主为 IIS 和 IIS Express 服务器的 UseIISIntegration,指定内容根目录的 UseContentRoot等。其中Build 和Run方法用于构建 IWebHost的实例,它将被用来挂载应用并开始监听到来的HTTP请求。
Startup类:
WebHostBuilder上的Startup方法用来指定你的应用程序的启动类。

该类是定义请求处理管道的地方,也是配置应用需要的服务的地方。Startup类必须是public的,而且必须包含ConfigureServices(IServiceCollection services)和Configure(IApplicationBuilder app)方法。
a) ConfigureServices 定义应用程序中用到的服务(比如:ASP.NET MVC Core 框架,Entity Framework Core,Identity等等)
b) Configure 定义请求处理管道中的中间件
Startup 类的 执行顺序:构造 -> configureServices->configure。
详情请参考:Startup 和 Middleware(中间件),总结的很不错。
project.json

{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Pls.Service": {
"target": "project"
}
},
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config",
"Areas",
"nlog.config"
],
"exclude": [ "bin" ]
}
}

具体的解释请看 project.json 引用(中文版的适合英语不好的人翻翻看)。我挑几个上面用到的解释解释:
dependencies:依赖项,定义项目的包依赖项的一个对象,此对象的每个键是包名称,每个值包含版本信息。有关详细信息,请参阅 NuGet 文档站点上的 依赖项解析文章,类型是Object。
tools:定义用作当前项目工具(而不是用作引用)的包依赖项的一个对象。 此处定义的包可用于生成过程中运行的脚本,但不可访问项目自身的代码,类型是Object。
frameworks:框架,指定此项目支持的框架,如 .NET Framework 或通用 Windows 平台 (UWP)。 必须是有效的目标框架名字对象 (TFM)。 每个值都是一个对象,可以包含特定于此框架的信息以及以下各部分中的属性,类型是Objecttarget:限制依赖项以仅匹配
project或package,类型是StringbuildOptions:其属性控制编译各个方面的一个对象。 下面列出了有效属性。 也可以按框架部分中所述目标框架进行指定,类型是Object。
runtimeOptions:指定在初始化期间向运行时提供的参数,类型是Object。
configProperties:包含用于配置运行时和框架的配置属性,类型是Object。
System.GC.Server:若要启用服务器垃圾回收,则为
true;否则为false。 默认值为false。emitEntryPoint:若要创建可执行文件,则为
true;否则为false。 默认值为false。preserveCompilationContext:若要保留引用程序集和其他上下文数据以实现运行时编译,则为
true;否则为false。 默认值为false。publishOptions:包含编译配置的属性的一个对象,类型是 Object。
include:包含文件以及文件夹,类型是String 或带有通配模式的 String[]。
exclude:指定要从生成中排除的文件,类型是String 或带有通配模式的 String[]。
.net core项目初建的更多相关文章
- vscode 创建.net core项目初体验
微软的virtual studio编辑器那是宇宙第一大编辑器,可惜就是太笨重,遇到性能差一些的电脑设备,简直无法快速的编辑项目. 而vs code编辑器轻便易用,想要编辑哪种项目,只需扩展插件就OK, ...
- 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我 ...
- 【无私分享:ASP.NET CORE 项目实战(第十章)】发布项目到 Linux 上运行 Core 项目
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下 ...
- 初建FreeMarker工程
初建FreeMarker工程 ——@梁WP 背景:听说freemarker可以用来写页面的组件,热衷于编写可重用代码的我,迫不及待地研究了freemarker,不过,在写组件之前,还是先研究一下fre ...
- 发布项目到 Linux 上运行 Core 项目
发布项目到 Linux 上运行 Core 项目 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win ...
- yoeman构建Asp.net core项目并且实现分层
在Mac上开发使用yoeman构建Asp.net core项目并且实现分层引用 1.Yoeman? yoeman是一个自动化脚手架工具.它提供很多generator,generator相当于Visua ...
- 在IIS上部署你的ASP.NET Core项目
概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...
- 使用VsCode编写和调试.NET Core项目
本来我还想介绍以下VSCode或者donet core,但是发现都是废话,没有必要,大家如果对这个不了解可以直接google这两个关键字,或者也根本不会看我这边文章. 好直接进入主题了,本文的 ...
- 打造自己的.NET Core项目模板
前言 每个人都有自己习惯的项目结构,有人的喜欢在项目里面建解决方案文件夹:有的人喜欢传统的三层命名:有的人喜欢单一,简单的项目一个csproj就搞定.. 反正就是萝卜青菜,各有所爱. 可能不同的公司对 ...
随机推荐
- ilspy反编译
资料: http://www.cnblogs.com/JamesLi2015/archive/2011/09/08/2170519.html 软件: http://ilspy.net/
- MyCat不支持的SQL语句
SELECT: Ø 跨分片(实体库)的交叉查询 Ø 跨节点的联合查询 (如用户库的表和平台库的表做联合查询) INSERT: Ø 插入的字段不包含分片字段 (如插入tbl_user_base_info ...
- Windows下编译打包Spice PC客户端
目录 1 环境搭建 2 编译客户端 3 打包客户端 1 环境搭建 1.1 准备工作 安装启动: 安装替换图标工具: Resource Hacker 安装exe制作工具: NSIS(提取码:3dfp ...
- T-SQL触发器,限制一次只能删除一条数据
/****** Object: Trigger [dbo].[trg_del] Script Date: 01/01/2016 12:58:28 ******/ SET ANSI_NULLS ON G ...
- BeanDefinition到Bean
转自:http://songzi0206.iteye.com/blog/1430239 当 BeanDefinition 注册完毕以后, Spring Bean 工厂就可以随时根据需要进行实例化了.对 ...
- Centos7 安装字体库&中文字体
1.概述 在安装一些服务的时候,会涉及到字符编码与字体的问题,字符编码一般在数据库或代码级别设置,字体一般是在系统级别设置.如安装使用jira或confluence的时候,使用一些宏的时候经常会出现乱 ...
- 数字三角形 (简单DP)
问题描述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋彼岸的美国.美国人民的生活非常有意思,经常会有形形色色.奇奇怪怪的活动举办,这不,小Hi和小Ho刚刚下飞 ...
- UIKit 框架之UIActionSheet
UIAlertView和UIActionSheet相似,区别很小, 很容易理解. // // ViewController.m // UIActionSheet // // Created by Ci ...
- Java基础——工厂模式
通过学习,一句话概括Java工厂模式的特点——通过建立一个工厂来创建对象,不必关心构造对象实例能不能被实例化啊等诸多细节和复杂过程. 工厂模式呢?就像我们从劳动密集型社会转型到技术密集型社会.打个比方 ...
- java基础-基础语法
一.标识符 java中对各种变量.方法和类等要素命名的时候使用的字符序列称为标识符. java中标识符的命名规则:1.由字母.数字.下划线(_)以及美元符号($)组成 2.标识符应该以字母或者下划线开 ...