初探ASP.NET Core 3.x项目中,哪些重要组成不可或缺?
摘要:本文地址:https:www.cnblogs.comoberon-zjt0806p12225807.html O 前请提要 在第1期构建项目之后,我们看到项目中有这样的组成结构: MyASPWebApplication ├─ob
目录O 前请提要I 启动部分I.1 Program类I.2 Startup类I.2.1 这个类干什么呢??I.2.2 特征??I.3 appsettings.jsonI.4 launchSettings.jsonII wwwroot目录II.1 静态文件??III 常规目录III.1 Pages目录和Views目录III.1.1 页面??但是wwwroot里不是也存放页面了么??III.1.2 有什么区别么??III.1.3 Shared子文件夹III.1.4 PageModels文件III.2 Controller文件夹III.3 Models文件夹IV 其他
本文地址:https://www.cnblogs.com/oberon-zjt0806/p/12225807.html
O 前请提要
在第1期构建项目之后,我们看到项目中有这样的组成结构:
MyASPWebApplication/
├─obj/
│ └─/一些文件.../
├─Pages/
│ ├─Shared/
│ │ ├─_Layout.cshtml
│ │ └─_ValidationScriptsPartial.cshtml
│ ├─Error.cshtml
│ ├─Error.cshtml.cs
│ ├─Index.cshtml
│ ├─Index.cshtml.cs
│ ├─Privacy.cshtml
│ ├─Privacy.cshtml.cs
│ ├─_ViewImports.cshtml
│ └─_ViewStart.cshtml
├─Properties/
│ └─launchSettings.json
├─wwwroot/(empty)
├─appsettings.Development.json
├─appsettings.json
├─Program.cs
├─Startup.cs
└─MyASPWebApplication.csproj
这是初始生成项目所包含的目录结构,这里面包含了很多东西,但是,我们还不清楚每个部分能做些什么,充当怎样的一个角色,以及哪些东西是最基础的,这一节就来解决这些问题。
在第3期中我们从原理层面上了解了ASP.NET Core Web项目的一个基本的工作流程以及所包含的部分。
I 启动部分
I.1 Program类
按照绝大部分C#开发框架的惯例,Program类一般是程序的入口,里面包含一个Main函数并被单独放置于Program.cs中。
小提示:
尽管C#并不像Java那样强制要求必须将各个数据实体分放到不同的文件中,但C#依然要求定义类的代码文件必须和该文件中所定义的类(如果多个则任取其一)相同。此外,如非必要,我们仍然建议将各个类定义分离到不同的文件中,除非:
class A与class B之间有比较大的实体关联,例如依赖关系。
class B只是class A的一个辅助工具性的类,例如class B只是针对class A的一个异常类等
ASP.NET Core产生的Program类如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
namespace MyASPWebApplication
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}
当然了,这里public static void Main(string[] args)自然就是程序的入口了。
