《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后第一本完全 ...
随机推荐
- Mybatis 通用 Mapper 和 Spring 集成
依赖 正常情况下,在原有依赖基础上增加的 mapper-spring. <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spr ...
- [Code+#4]最短路 解题报告
Luogu · 传送门 Orz THU众大佬,lct(注意不是link-cut-tree,是一个大佬) 这道题很容易让人联想到 最短路,但是最短路需要先 建图: 暴力建出所有边的算法显然是不可行的,因 ...
- 小甲鱼Python第二十二讲课后习题
笔记: 斐波那契数列的两种实现方式: 迭代的方式: 自己写的: def fab(n): n1 =1 n2 =1 n3 =1 if n < 1: return -1 if n ==1: ret ...
- Vue使用中常见问题
1.安装sass时报未找到 1.原因应该同时安装:1.npm install --save-dev sass-loader 2.npm install --save-dev node-sass ...
- ECMA Script 6_模块加载方案 ES6 Module 模块语法_import_export
1. 模块加载方案 commonJS 背景: 历史上,JavaScript 一直没有模块(module)体系, 无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来. 其他语言都有这项功能: ...
- Handler Bundle Runnable
Handler: 不能在子线程更新UI,可以通过handler来实现在子线程发送消息在主线程更新 Bundle: https://blog.csdn.net/qq_36895346/ar ...
- Selenium 3----定位一组元素+多表单切换+多窗口切换
定位一组元素 和定位单个元素类似,WebDriver提供了8种用于定位一组元素的方法.定位一组元素的方法与定位单个元素的方法类似,唯一的区别是在单词element后面多了一个s表示复数. find_e ...
- 模块化Javascript代码的两种方式
1.将模块整体放在函数里 function buildMonthNameModule() { var names = ["January ", "February&quo ...
- 来自一个电子狂的stm32学习历程
文章尾部有学习时的一些视频资料在学的可以看看那么我们就进入今天的主题我stm32的学习历程 在学习了51单片机之后,早已经对单片机这个东西甚有了解了,所有不管是从内部资源,还是一些常见应用,都可以说的 ...
- JS数组reduce()方法详解及高级技巧
1.语法 arr.reduce(callback,[initialValue]) reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上 ...