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:支持网站运行的一些相关配置
------------------------传值问题----------
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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类似注册
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | public void ConfigureServices(IServiceCollection services) { <strong> services.AddSession();</strong> 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(); } <strong> app.UseSession();</strong> 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 类型日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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" ); }) ; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现