Net5-1

 

 

 上面是以前的情况,下图现在的

 

 

 打通7大方向,统一的平台 同一套CLR(透明)同一套BCL

WPF—Winform---.NET Core3.x都可以开发了—但是UI不能跨平台---不 是搞不定,只是优先级不够 .NET5 移除了WCF WebForm WWF

.NET5和.NET Core一个东西---只是版本不一样,

公共语言运行库(Common Language Runtime,CLR)是整个.NET框架的核心,它为.NET应用程序提供了一个托管的代码执行环境。它实际上是驻留在内存里的一段代理代码,负责应用程序在整个执行期间的代码管理工作,比较典型的有:内存管理、线程管理、安全管理、远程管理、即时编译、代码强制安全类检查等,这些都可以成为.NET框架的生命线。

BCL,一个公共编程框架,称为基类库,所有语言的开发者都能利用它。是CLI(Common Language Infrastructure,公共语言基础结构)的规范之一。

CLI(command-line interface,命令行界面)是指可在用户提示符下键入可执行指令的界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。

CLI在汇编指令中也有关闭中断的意思。

CLI是Command Line Interface的缩写,即命令行界面

新建一个项目

 

 

 

项目结构:
1.wwwroot:js/css/js包
2.Properties:项目启动需要的一些配置:包含了端口号,IP地址
3.MVC----模型试图控制器
4.appsettings:配置文件
5.Program控制台---ASP.NET Core5.0本质就是一个控制台
6.Startup:支持网站运行的一些相关配置

 

------------------------传值问题----------

    base.ViewBag.User1 = "111~";
    base.ViewData["User2"] = "222";
    base.TempData["User3"] = "333"; 
    base.HttpContext.Session.SetString("User4", "444");
    string User5 = "555"; //传值需要指定为Object类型   如果为string  系统会认为user5为一个页面
   // 
    /// 注意:
    /// 1.Session需要配置
    /// 2.ViewBag 和 ViewData 内部实现是一样的,都是字典支持,如果key一样,后者的值会覆盖前者的值
    /// 
    /// 在之前的方法中共设置值了,跳转到另外一个方法中,以上五种,那种还可以取到值?
    /// 1.就目前看来---只能取到Session--保存在服务器内存
    /// 2.TempData赋值后,取值只能取一次--TempData 底层也是保存在内存中 

  

 

 

 复写ViewData 或者ViewBag 后面的会覆盖前面的  

   Session最小化设计:通过扩展支持Session    Startup.cs类似注册

  public void ConfigureServices(IServiceCollection services)
        {
            services.AddSession();
            services.AddControllersWithViews();
        }
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
             
            app.UseSession();

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }

--------------日志----------------

Program.cs启动项中加入NLog   和Log4net   ,引入配置文件和依赖包   打text  database  类型日志

namespace NET5WebApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            NLogBuilder.ConfigureNLog("CfgFile/NLog.config"); //读取Nlog配置文件,按照配置文件的规则来写日志
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
                .ConfigureLogging(logBuilder =>
                {
                    logBuilder.ClearProviders();//删除所有其他的关于日志记录的配置
                    logBuilder.SetMinimumLevel(LogLevel.Trace);
                })
                .UseNLog()
                 .ConfigureLogging(logBuilder =>
                 {
                     logBuilder.ClearProviders();//删除所有其他的关于日志记录的配置
                     logBuilder.SetMinimumLevel(LogLevel.Trace);
                     logBuilder.AddLog4Net("CfgFile/log4net.Config");
                 })
                ;
    }
}

  

 

posted @ 2021-12-14 16:19  wolfsocket  阅读(202)  评论(0编辑  收藏  举报