• .net core框架


    ASP.NET Core 入门

    跨平台开源框架 B/S

    类与方法

    Console 部分称为“类”。 类“拥有”方法;或者可以说方法存在于类中。

    WriteLine() 部分称为“方法”。

    想要使用方法就要知道方法在哪里

    ——————————

    执行流

    一次执行一段

    ASP.NET Core 是什么东西?.net框架吗?

    企业里面-把后端完善

    1.配置Swagger

    1.为生成的api追加注释

    Program.cs

    1. builder.Services.AddSwaggerGen(option =>
    2. {
    3. //xml文档绝对路经--读取根据控制器api生成的Xml的文件 ?????
    4. var file = Path.Combine(AppContext.BaseDirectory,
    5. "BookReadWebApi.xml");
    6. //true显示器层展示注释
    7. option.IncludeXmlComments(file, true);
    8. //action排序
    9. option.OrderActionsBy(o => o.RelativePath);
    10. });

    配置让swagger展示注释

    2.不同版本api的版本控制

    0.创建版本枚举文件夹

    1.获取api的名称
    1. builder.Services.AddSwaggerGen(option =>
    2. {
    3. typeof(ApiVersions).GetEnumNames().ToList().ForEach(Version =>
    4. {
    5. //1.先获取所有name
    6. option.SwaggerDoc(Version,new Microsoft.OpenApi.Models.OpenApiInfo()
    7. {
    8. Title = $"读书平台",
    9. Version = Version,
    10. Description = $"通用版本的CoreApi版本{Version}"
    11. });
    12. });
    13. ......
    14. }
    2.遍历api

    1. app.UseSwaggerUI(c =>
    2. {
    3. foreach(string version in typeof(ApiVersions).GetEnumNames())
    4. {
    5. c.SwaggerEndpoint($"/swagger/{version}/swagger.json",$"阅读平台第{version} 版本");
    6. }
    7. });
    3.控制当前api只在特定(V1)的版本中展示改接口
    [ApiExplorerSettings(IgnoreApi =false,GroupName =nameof(Utility.SwaggerExt.ApiVersions.V1))]

    静态类里面的静态方法的this成为扩展方法

    可以将里面的方法调用改写

    1. CustomSwaggerExt.AddSwaggerExt(builder.Services);等效于
    2. builder.Services.AddSwaggerExt();

    这就是中间件的封装?????不懂,不管

    2.连接数据库??

    还没学

    3.中间件

    将文件定义到该代理下面

    1. app.Use(async (context, next) =>
    2. {
    3. await next.Invoke();
    4. });
    5. app.Run(async context =>
    6. {
    7. await context.Response.WriteAsync("hello");
    8. });

    启用静态文件中间件:

    一,可以通过打开浏览器查看该静态文件里的内容

    1.根目录下新建文件夹wwwroot->将图片文件存储到该地址下

    2.Program.cs配置如下内容

    app.UseStaticFiles()//启用静态文件中间件

    二,指定目录:MyRouse文件夹作为指定目录,RequestPath设置请求前缀

    1. app.UseStaticFiles(new StaticFileOptions()
    2. {
    3. FileProvider=new PhysicalFileProvider(Path.Combine(builder.Environment.ContentRootPath,"MyRouse")),
    4. RequestPath="/StaticFiles"//https://localhost:7035/StaticFiles/2.png(选择性添加)
    5. });

    三,目录浏览-中间件

    在Program.cs配置如下内容

    1. var fileProvider = new PhysicalFileProvider(
    2. Path.Combine(builder.Environment.ContentRootPath, "MyRouse"));
    3. var requestPath = "/MyRouse";
    4. ....
    5. app.UseStaticFiles(new StaticFileOptions()
    6. {
    7. FileProvider=new PhysicalFileProvider(
    8. Path.Combine(builder.Environment.ContentRootPath,"MyRouse")),
    9. RequestPath= requestPath
    10. });
    11. app.UseDirectoryBrowser(new DirectoryBrowserOptions
    12. {
    13. FileProvider=fileProvider,
    14. RequestPath= requestPath
    15. });

    https重定向

    现在都是默认点击就送

    1.启动两个默认地址,默认启动swagger文件,

    1. "https": {
    2. "commandName": "Project",
    3. "dotnetRunMessages": true,
    4. "launchBrowser": true,
    5. "launchUrl": "swagger",
    6. "applicationUrl": "https://localhost:7035;http://localhost:5043",
    7. "environmentVariables": {
    8. "ASPNETCORE_ENVIRONMENT": "Development"
    9. }

    但http地址是不安全的所以我们现在重定向

    2.在Program.cs配置如下内容

    1. app.UseHsts();
    2. app.UseHttpsRedirection();

    Hsts是一种安全机制,在未来一段时间只使用https来访问网站

    读取配置

    ASP.NET Core 项目默认配置文件:appsettings.json文件

    1. //appsettings.json
    2. "msg": "yeye"
    1. //Program.cs
    2. app.MapGet("config", (IConfiguration configuration) =>
    3. {
    4. return configuration["msg"] + '_' + configuration["Logging:LogLevel:befault"];
    5. });

    省略

    开发环境

    控制swagger仅仅在开发环境中展示,发布之后将不再展示

    在Program.cs配置如下内容

    1. if (app.Environment.IsDevelopment())
    2. {
    3. app.UseHsts();
    4. app.UseSwagger();
    5. app.UseSwaggerUI();
    6. }
    7. ..
    8. app.Run();

    4.more

    日志

    开发可以使用

    app.Logger.LogInformation("程序已启动");//本地自带的

    生产环境一般使用第三方的库作为日志:

    可以生成txt文件,可以将日志添加到数据库里面,方便排查问题

    需要注意的点:保存文件的名称及存储地址

    1. //CfgFile/log4net.Config
    2. "1.0" encoding="utf-8"?>
    3. "Console" type="log4net.Appender.ConsoleAppender">
    4. "log4net.Layout.PatternLayout">
    5. value="%5level [%thread] (%file:%line) - %message%newline" />
    6. "RollingFile" type="log4net.Appender.RollingFileAppender">
    7. value="log4\log.log" />
    8. value="true" />
    9. "Encoding" value="UTF-8"/>
    10. value="100KB" />
    11. value="2" />
    12. "log4net.Layout.PatternLayout">
    13. value="%level %thread %logger - %message%newline" />
    14. value="ALL" />
    15. ref ref="Console" />
    16. ref ref="RollingFile" />

    0了,会生成log.log的日志文件

    IIS安装

    1.控制面板

    2.选择程序

    3.

    4.

    发布项目

    默认路经

    IIS运行

    下载安装:dotnet-hosting-7.0.14-win.exe(官网下载选择Hosting Bundle进行下载安装即可)

    IIS部署

  • 相关阅读:
    质数判定与质数表的求解
    msvcp120.dll丢失怎么办?(五种方法快速解决)
    Springboot项目中Controller层的单元测试
    Linux安装Phantomjs
    【算法】算法题-20231117
    提升客户体验,你只需要做到这一点
    面试官:Redis中有序集合的内部实现方式是什么?
    (自监督学习)前沿初识
    LeetCode-47-全排列Ⅱ
    华为的隐藏功能,你们知道多少?
  • 原文地址:https://blog.csdn.net/qq_57676486/article/details/136618770