• 初识Core


     1.初识Core

    我们新建一个项目-

     

        新建之后我们就会看到:   

       

     Program.cs

        /// <summary>
        ///   asp.net--网站托管在IIS--IIS负责监听-转发请求--响应客户端
        ///  .net core--控制台--CreateWebHostBuilder(内置了服务器)--启动了服务器--负责监听-转发请求--响应客户端
        ///  KestrelServer 跨平台的服务器
        ///  (IIS只能做反向代理,不再做啥监听)/// </summary>
        public class Program
        {
            //Main是整个程序的入口
            public static void Main(string[] args)
            {
                //跨平台没有IIS,.NETCore CreateWebHostBuilder(内置了服务器)--启动了服务器--负责监听-转发请求--响应客户端全部自己做,不用IIS处理
                //只要当前这个服务器是跨平台的,那么我整个程序都是跨平台的
                // 创建一个服务器实例,服务器是跨平台的,
                CreateHostBuilder(args)
                    .Build()
                    .Run();
            }
    
            /// <summary>
            /// 调入当前方法,CreateHostBuilder->然后进入 Startup 这个类
            /// </summary>
            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    }) ;
        }

    appsettings.json配置文件:

        /// appsettings.json相当于Webconfig,存储格式也变了,由XML格式变为了Json格式
        /// Asp读取配置文件:依赖于ConfiguartionManager
        /// Core依赖于Configuration
        /// 通过Xpath来读取配置文件的数据

    Startup.cs

    namespace MyNetCore.MVC6
    {
        /// <summary>
        /// 固定类
        /// </summary>
        public class Startup
        {
            /// <summary>
            /// 构造函数的注入,内置IOC
            /// </summary>
            public IConfiguration Configuration { get; }
            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
            }
    
            /// <summary>
            /// 把服务注入容器里面去【core内置IOC】:当前方法被运行时环境调入,把服务添加到container容器里面去
            /// Startup:IServiceCollection就是一个容器,那我们是怎么使用
            /// </summary>
            /// <param name="services"></param>
            // This method gets called by the runtime. Use this method to add services to the container.
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddControllersWithViews();
                services.AddSession();
            }
    
            //上面服务注册了,那我们就可以做一些使用
            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                /*以下部分可以全部注释,可以自行定义*/
                //判断当前环境是不是开发环境
                if (env.IsDevelopment())
                {
                    //是:抛异常
                    app.UseDeveloperExceptionPage();
                }
                else
                {
                    //进入特定页面
                    app.UseExceptionHandler("/Home/Error");
                }
                //上面是把服务注册到容器里面,这边就可以使用注册进来的服务
                //使用文件,涉及:一些中间件的使用
                //静态文件能够被保存在网站根目录下的任意文件夹内,并通过相对根的路径来访问。为了能使用静态文件服务,必须配置中间件,把静态文件中间件加入到管道内。
    //静态文件中间件可以通过下述方法来配置:在项目中增加Microsoft.AspNetCore.StaticFiles包依赖,然后从Startup.Configure中调用.UseStaticFiles扩展方法:
    //使得web root(默认为wwwroot)下的文件可以被访问。 app.UseStaticFiles(); app.UseSession(); app.UseRouting();//将注册运行逻辑路由的中间件。 app.UseAuthorization(); //注册MVC中间件,并配置路由规则 app.UseEndpoints(endpoints => { //MapControllerRoute:添加控制器的常规路由 endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); } } }
  • 相关阅读:
    1101. Quick Sort (25)
    1100. Mars Numbers (20)
    1099. Build A Binary Search Tree (30)
    TCP四次挥手为何需要TIME_WAIT以及为何是2MSL?
    关于priority_queue运算符重载的问题
    leetcode151.翻转字符串里的单词
    华为笔试题--最长公共子串
    华为笔试题--表达式求值
    华为笔试题--字符串合并处理
    华为笔试题--删除字符串中出现次数最少的字符
  • 原文地址:https://www.cnblogs.com/wangwangwangMax/p/14081032.html
Copyright © 2020-2023  润新知