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"); }) ; } }