Asp.Net Core 轻松学系列-3项目目录和文件作用介绍
前言
上一章介绍了 Asp.Net Core 的前世今生,并创建了一个控制台项目编译并运行成功,本章的内容介绍 .NETCore 的各种常用命令、Asp.Net Core MVC 项目文件目录等信息,通过对命令的学习和操作,对项目结构的认识,进一步理解 Asp.Net Core 的运行机制和项目框架。
创建项目的命令
首先来认识一下创建项目可使用的各种命令,.NETCore 的命令都以 dotnet 打头,这很好理解,输入 dotnet xxx,就是执行环境变量指向的 C:\Program Files\dotnet\dotnet.exe 程序,然后给 dotnet.exe 提供参数运行。建议初学者以下命令逐个执行一遍,加深记忆和理解,如果实在记不住也没有关系,可以通过在控制台中输入命令
1.帮助命令
dotnet --help
// 或者
dotnet optional --help
// 如
dotnet new --help // 了解创建项目的帮助文档
2. dotnet new 创建各种类型的项目
模板 | 短名称 | 语言 |
---|---|---|
控制台应用程序 | console | [C#]、F#、VB |
类库 | classlib | [C#]、F#、VB |
单元测试项目 | mstest | [C#]、F#、VB |
xUnit 测试项目 | xunit | [C#]、F#、VB |
Razor 页 | page | [C#] |
MVC ViewImports | viewimports | [C#] |
MVC ViewStart | viewstart | [C#] |
ASP.NET Core 空 | web | [C#],F# |
ASP.NET Core Web应用程序(Model - View - Controller) | mvc | [C#],F# |
ASP.NET Core Web 应用程序 | razor | [C#] |
含 Angular 的 ASP.NET Core | angular | [C#] |
含 React.js 的 ASP.NET Core | react | [C#] |
含 React.js 和 Redux 的 ASP.NET Core | reactredux | [C#] |
ASP.NET Core Web API | webapi | [C#],F# |
Razor 类库 | razorclasslib | [C#] |
global.json 文件 | globaljson | |
NuGet 配置 | nugetconfig | |
Web 配置 | webconfig | |
解决方案文件 | sln |
- 更多命令,见
https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-new?tabs=netcore21
最最常用的命令有 4 个,这些命令需要在项目根目录执行
1. 创建一个 asp.net core mvc 项目,指定项目名称为 MyMvc
dotnet new mvc -o MyMvc
2. 还原项目引用包
dotnet restore
3. 编译项目
dotnet build
4. 运行项目
dotnet run
Asp.Net Core 项目结构介绍
1. 首先使用上面的命令创建一个 Asp.Net Core MVC 项目
dotnet new mvc -o MyMvc
2. 创建成功,得到一个新的 Asp.Net Core MVC 项目
打开项目文件夹,进入项目,看到一个标准的 Asp.Net Core MVC 项目结构如下
介绍各个目录和文件的作用
1. 三层架构目录
/Models
/ViewS
/Controllers
这是一个和 Asp.Net MVC 相同的三层架构 MVC 项目,包含了 模型(Models)、视图(Views)、控制器(Controllers),简单来说就是 Models 内可以定义视图(Views)通过 html 传递到 Controllers 内控制器的实体对象
2. obj 目录
该目录用于存放相关配置文件暂存项,包引用项目配置说明
3. Properties 目录
该目录用于存放程序集信息,运行配置文件、内部资源等文件,该目录在创建之初,会默认创建一个 launchSettings.json ,该文件包含了一些程序启动时的信息
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:23090",
"sslPort": 44351
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MyMvc": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
4. 无需理解太多,直接在项目根目录下输入命令启动 MVC 项目
dotnet run
你将会得到如下窗口输出信息
重点关注控制台输出的一个信息
Now listening on: https://localhost:5001
Now listening on: http://localhost:5000
该信息表示 Asp.Net Core MVC 项目已成功运行于 5001/5000 端口下,在浏览器中打开该连接地址
https://localhost:5001
再图看看 launchSettings.json 中的信息,找到下面的信息,你就了解了这个文件的作用是配置项目运行端口等信息的
"applicationUrl": "https://localhost:5001;http://localhost:5000",
5. wwwwroot
该目录存放视图层(Views) html 页面引用的静态资源,如图片、样式表、脚本文件(js)等
6. appsettings.json 和 appsettings.Development.json
项目主配置文件,两个文件格式完全相同,实际上 appsettings.Development.json 表示 开发时运行程序的配置文件,使用 appsettings.{env}.json,可以很方便进行运行环境的切换,以加载不同的配置文件
7. MyMvc.csproj 项目描述文件,用记事本打开它,看看
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
</ItemGroup>
</Project>
第一行表示项目是一个 web 应用程序,当前使用的 SDK 版本为 netcoreapp2.1,配置节点 ItemGroup 包含了项目引用的 Nuget 包,如有新的包引用,可以加入该 ItemGroup 配置节
8.Program.cs 文件,程序运行主入口,Main 方法所在
9.Startup.cs
- 该文件是默认文件,不可随意删除,在此文件中可以以包含服务配置、定义请求处理管道的重要操作。
结语
总的来说,这是一篇小白入门答疑,简单的介绍了一个标准的 Asp.Net Core MVC 项目都包含了哪些文件和目录,以及各自的作用,希望对未入门的同学有点帮助
Asp.Net Core 轻松学系列-3项目目录和文件作用介绍的更多相关文章
- Asp.Net Core 轻松学系列-1阅读指引目录
https://www.cnblogs.com/viter/p/10474091.html 目录 前言 1. 从安装到配置 2. 业务实现 3. 日志 4. 测试 5. 缓存使用 6.网络和通讯 7. ...
- Asp.Net Core 轻松学系列-5利用 Swagger 自动生成接口文档
目录 前言 结语 源码下载 前言 目前市场上主流的开发模式,几乎清一色的前后端分离方式,作为服务端开发人员,我们有义务提供给各个客户端良好的开发文档,以方便对接,减少沟通时间,提高开发效率:对 ...
- Asp.Net Core 轻松学系列-4玩转配置文件
目录 前言 另类方式使用 hosting.json 使程序运行于多个端口 结语 前言 在 .NET Core 项目中,配置文件有着举足轻重的地位:与.NetFramework 不同的是,.NE ...
- Asp.Net Core 轻松学系列-2从安装环境开始
Asp.Net Core 介绍 Asp.Net Core是微软新一代的跨平台开发框架,基于 C# 语言进行开发,该框架的推出,意味着微软从系统层面正式进击 Linux 服务器平台:从更新速度开 ...
- Asp.Net Core 轻松学-项目目录和文件作用介绍
前言 上一章介绍了 Asp.Net Core 的前世今生,并创建了一个控制台项目编译并运行成功,本章的内容介绍 .NETCore 的各种常用命令.Asp.Net Core MVC 项目文件目录 ...
- Asp.NETCore轻松学系列阅读指引目录
前言 耗时两个多月,坚持写这个入门系列文章,就是想给后来者更好更快的上手体验,这个系列可以说是从入门到进阶,适合没有 .NETCore 编程经验到小白同学,也适合从 .NET Framework 迁移 ...
- Asp.Net Core 轻松学-使用MariaDB/MySql/PostgreSQL和支持多个上下文对象
前言 在上一篇文章中(Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库)[https://www.cnblogs.com/viter/p/10243577.html],介 ...
- Asp.Net Core 轻松学-利用文件监视进行快速测试开发
前言 在进行 Asp.Net Core 应用程序开发过程中,通常的做法是先把业务代码开发完成,然后建立单元测试,最后进入本地系统集成测试:在这个过程中,程序员的大部分时间几乎都花费在开发.运行 ...
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...
随机推荐
- insmod内核模块时提示"unknown symbol ..."如何处理?
答: 是当前内核模块所依赖的模块没有被加载导致的,加载对应的依赖模块即可
- angular 中*ngIf 和*ngSwitch判断语句
<div style="text-align:center"> <h1> Welcome to {{ title }}! </h1> <p ...
- i18n 语言码和对应的语言库
语言码 语言名称 af Afrikaans am Amharic ar Arabic az Azerbaijani be Belarusian bg Bulgarian bh Bihari bn Be ...
- Spring为什么@Autowired注入的是接口
1.Spring怎么知道注入哪个实现? As long as there is only a single implementation of the interface and that imple ...
- Tomcat重启Shell脚本
--测试通过 vim restart_tomcat.sh#!/bin/bash# Filename: restart_tomcat.sh# Description: Restart tomcat# D ...
- MySQL数据库备份之xtrabackup工具使用
一.Xtrabackup备份介绍及原理 二.Xtrabackup的安装 1.在centos7上基于yum源安装percona-xtrabackup软件 [root@node7 ~]# yum -y i ...
- 常规函数模块CALL in new task 报错
使用START NEW TASK, 函数需要是远程调用模块. 错误:FUNCTION module ' ZMMFM0021' cannot be used for 'remote' CALLS. ...
- kubeadm 安装kubernetes1.6.2
准备工作 安装依赖 yum install -y wget vim net-tools epel-release 修改内核参数 cat <<EOF > /etc/sysctl.d/k ...
- css3 animation 点亮灯光效果
<style> .wrap .bulb { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50% ...
- iOS-Foundation各种NS
1.1 NSRange NSRange range = NSMakeRange(2, 4);//location=2,len=4 NSString *str = @"i love oc ...