《ASP.NET Core In Action》读书笔记系列四 创建ASP.NET Core 应用步骤及相应CLI命令
一般情况下,我们都是从一个模板(template)开始创建应用的(模板:提供构建应用程序所需的基本代码)。本节使用 Visual Studio 2017 、ASP.NET Core2.0和 Visual Studio自带的模板创建一个基本的ASP.NET Core 应用。当然你也可以使用 .NET CLI,它拥有同样的模板。
本节将告诉你如何创建应用,如何恢复依赖项,编译应用程序,并运行它以查看HTML输出。示例虽是很简单的 , 只有三个不同的页面,但它是一个完整的ASP.NET Core应用程序。创建一个ASP.NET Core应用并运行它,一般分为四步:
a、创建 - 从模板创建基础应用程序;
b、还原 - 使用Nuget将所有程序包和依赖项还原到本地项目文件夹;
c、生成 - 编译应用程序并生成应用;
d、运行 - 运行已编译的应用程序;
创建ASP.NET Core 应用
使用模板可以快速创建并运行应用程序,它将自动为您配置许多基础部分。 Visual Studio和.NET CLI附带了许多用于构建Web应用程序的标准模板,控制台应用程序和类库。 要创建Web应用程序,请打开Visual Studio并执行以下步骤:
1、文件(File) > New (新建)> Project(项目);
2、从左侧的Templates节点中,选择.NET Core,然后选择ASP.NET Core Web应用程序;
3、输入名称,位置和解决方案名称(可选),然后单击“确定”,如下图所示:

4、在下图执行如下操作:
a、选择ASP.NET Core 2.0,生成的应用程序将为ASP.NET Core2.0应用程序;
b、选择Web Application (Model-View-Controller) < Web 应用程序(模型 - 视图 - 控制器)>, 它将创建一个传统的,用户在Web浏览器中查看其生成的HMTL页面的Web应用程序;另一个Web 应用程序 <Web Application> 模板,它使用新的ASP.NET Core 2.0 中的Razor Pages2 功能;Web API模板生成一个使用指定格式(JSON XML)为SPA(单页面应用)和API返回数据的应用程序; Angular、React.js、React.js和Redux模板将生成指定的SPA(单页面应用)应用程序;
c、确保未指定身份验证;
d、确保未选中 “Enable Docker Support(启用Docker支持)";
e、点击Ok(确定);

5、等待Visual Studio从模板生成应用程序, 一旦Visual Studio完成生成应用程序,您将看有关ASP.NET Core的介绍页面,Visual Studio为您的项目创建并添加了多个文件,如下图所示:

注意:如果你使用.NET CLI,请输入如下指令来创建上面的应用(dotnet new mvc –o WebApplication2),-o参数,指示CLI在名为WebApplication2的子文件夹创建应用。
编译ASP.NET Core 应用
此时,我们拥有运行应用程序所需的绝大部分文件,但您离完成还着两步了。 首先,您需要确保项目使用的所有依赖项恢复到您的本地目录,其次,您需要编译您的应用程序。第一步不一定需要,因为Visual Studio和.NET CLI在首次创建项目时会自动恢复软件包(在早期版本的.NET CLI(2.0之前)中,需要手工使用dotnet restore恢复依赖项)。您可以选择菜单 Build> Build Solution来编译应用程序,或者使用快捷键Ctrl + Shift + B,或者从命令行运行dotnet build命令,或者从Visual Studio的程序包管理器控制台运行dotnet build 命令。 如果你使用Visual Studio 编译,输出窗口将显示编译进度。
注:一般情况Visual Studio and the .NET CLI会自动检查应用程序的更改,并自动执行此步。
.NET Core跨平台开发的基础组件之一.NET Core命令行界面(CLI),它提供了许多基本命令用于创建、构建和运行.NET Core应用程序。 Visual Studio会自动调用这些命令,同时,您也可以直接从命令行执行他们。 开发过程中最常见的命令有:
a、dotnet restore;
b、dotnet build;
c、dotnet run;
这些命令中需要在项目文件夹中运行。所有ASP.NET Core应用程序都依赖许多不同的外部应用程序库,通过NuGet包管理器进行管理。这些依赖项显示项目中,但不包括库本身的文件。在构建和运行应用程序之前,需要确保项目文件夹中存在每个依赖项有一个本地副本。dotnet restore,将确保应用程序的NuGet依赖项被复制到项目文件夹。如果你使用2.0版的.NET CLI,将不再需要显式运行此命令。ASP.NET Core项目在项目的csproj文件(XML文件格式)中列出它们的依赖项。它将每个依赖项列为PackageReference节点,运行 dotnet restore命令时,它使用此文件来确定要下载的NuGet包并复制到您的项目文件夹。dotnet build 命令 编译应用程序。它将检查应用程序是否有任何错误,如果没有,将生成可以运行的应用程序,dotnet run 为运行应用的命令。每个命令都包含许多可以修改其行为的选项。查看完整的可用命令列表,使用如下命令:
dotnet --help
查看特定命令的可用选项(例如new,run)使用如下命令
dotnet new --help
运行ASP.NET Core 应用
现在应用程序已经准备就绪,可以使用多种方式来运行它。 在Visual Studio中,您可以单击IIS旁边工具栏上的绿色箭头快速,或按F5快捷方式。 Visual Studio将自动打开Web浏览器窗口为您提供适当的URL,在一两秒后,您将看到您的全新应用程序,如下所示。可以使用.NET CLI工具从命令行执行命令 dotnet run 运行应用程序并使用命令行上提供的地址手动在Web浏览器中打开URL。运行结果如图所示:

默认情况下,此页面显示指向外部资源的各种链接以及页面顶部的大横幅广告轮播(它会滚动显示多个图像)。 在页面顶部有三个链接:主页,关于和联系人。 主页链接是您当前的页面上。 单击“关于”或“联系人”将转到新页面,如下图所示:

此时,菜单各应用程序标题“WebApplication2”在所有三个页面上都是相同的。 别外,页面的标题(如浏览器的选项卡所示),跟当前页面相匹配。 我们将在后面的介绍如何使用使用Razor模板实现这些功能。
谢谢你的阅读,下节见!如果期待本系列,请点一下推荐!
《ASP.NET Core In Action》读书笔记系列四 创建ASP.NET Core 应用步骤及相应CLI命令的更多相关文章
- asp.net MVC4 框架揭秘 读书笔记系列2
1.2 MVC 变体 MVC 是一种Pattern 另外一种说法是ParaDigm 范例 模式和范例的区别在于前者可以应用到具体的应用上,而后者则仅仅提供一些指导方针 1.2.1 MVP Model ...
- 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 框架揭秘 读书笔记系列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后第一本完全 ...
随机推荐
- WPF:解决数据绑定时不更新数据的问题
当用户在窗体控件中修改数据时,如果此时用户点击其它窗体会出现数据没有更新的情况. 这是由于数据绑定默认是通过失去焦点来提交数据的.可通过属性变更方法来更新数据: <TextBox.Text> ...
- JS基础学习1
1 JS 概述 一个完整的javascript实现是由以下3个不同部分组成的: (1) 核心(ECMAscript) (2) 文档对象模型(DOM) Document object ...
- 06_ for 练习 _ 年利率
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 16进制转化8进制---map
#include "stdio.h" #include "string.h" #include "string" #include &quo ...
- Error creating bean with name 'dataSource' defined in class path resource 报错解决办法
在学习spring boot 的数据库操作的时候,报了一串错误
- js_1_基本语法
- Dynamics365 WebAPI ADFS token 获取
public class CrmAuth { ///<summary> /// Token /// </summary> public string access_token ...
- OO第二次博客作业--第二单元总结
第一次作业 1. 设计策略 第一次作业,一共三个线程,主线程.输入线程和电梯线程,有一个共享对象--调度器(队列). 调度的策略大多集中到了电梯里,调度器反而只剩下一个队列. 2. 基于度量的分析 类 ...
- javascript 表达式
// for(表达式1;表达式2;表达式3){// 循环体语句;// }// 先执行表达式1,在执行2表达式,// 如果2表达式结果为false,退出循环 ...
- Python extend()方法--list
描述 extend()方法:在列表末尾追加可迭代对象中的元素. 语法 语法格式:list.extend(iterable) 参数 iterable:可迭代的对象,这里的对象可以是字符串.列表.元组.字 ...