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");
})
;
}
}
浙公网安备 33010602011771号