目前.NET Core 3.0的版本为.NET Core 3.0 Preview 3,对应ASP.NET Core 3.0 Preview 3。

ASP.NET Core 3.0 之后将不再支持.NET Framework,只运行在.NET Core 上面。

ASP.NET Core 3.0 现在已经出到了第三个预览版,增加和改进了很多功能。

环境准备:

下载最新.NET Core 3.0 Preview 3 SDK, https://dotnet.microsoft.com/download/dotnet-core/3.0。

ASP.NET Core 3.0 需要VS 2019开发,或者使用VS Code,Visual Studio for Mac version 8.0 or later。

Visual Studio 2019 将会在4月2日推出正式版。

下面大致列举一些功能:

Json.NET 不在内置在框架内

如果要将Json.NET支持添加回ASP.NET Core 3.0项目:

services.AddMvc()
.AddNewtonsoftJson();

HostBuilder 替换掉WebHostBuilder

    public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
} public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}

UseRouting 中间件的增加

示例代码:

    app.UseRouting(routes =>
{
routes.MapGet("/hello", context =>
{
return context.Response.WriteAsync("Hi there! linezero");
});
});

同时还增加 MapHealthChecks及RequireHost 等功能,看示例:

app.UseRouting(routes =>
{
routes.MapGet("/", context => context.Response.WriteAsync("Hi linezero!"))
.RequireHost("linezero.com");
routes.MapGet(context => context.Response.WriteAsync("Hi zero!"))
.RequireHost("zero.com"); routes.MapHealthChecks("/healthz").RequireHost("*:8080");
});

Razor Components

razor 组件支持,下面实际看看这个功能点。

dotnet new razorcomponents -o myweb

cd myweb

dotnet run

运行起来如下图:

对应组件代码Counter.razor :

@page "/counter"

<h1>Counter</h1>
<p>LineZero</p> <p>Current count: @currentCount</p> <button class="btn btn-primary" onclick="@IncrementCount">Click me</button> @functions {
int currentCount = ; void IncrementCount()
{
currentCount++;
}
}

你可以直接将组件添加到主页或其他页面,例如放到主页Index.razor:

@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.LineZero

<Counter />

还可以使用 [Parameter] int IncrementSize { get; set; } = 1; 来设置参数:

@functions {
int currentCount = ; [Parameter] int IncrementSize { get; set; } = ; void IncrementCount()
{
currentCount+=IncrementSize;
}
}

这样可以做到每个页面设置不同的大小,增加不同数量。

如:

@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.LineZero

<Counter IncrementSize=""/>

下图描述了Razor的一些原理。

 

另外,Blazor是一个实验性单页面应用程序框架,它使用基于WebAssembly的.NET运行时直接在浏览器中运行Razor Components。

在Blazor应用程序中,Razor组件的UI更新都直接应用于DOM。

运行时编译

从.NET Core 3.0中的ASP.NET Core共享框架中删除了对运行时编译的支持,现在可以通过向应用程序添加软件包来启用它。

要启用运行时编译:

  1. 添加对Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation的包引用

    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.0.0-preview3-19153-02" />
  2. Startup.ConfigureServices加入方法AddRazorRuntimeCompilation

    services.AddMvc().AddRazorRuntimeCompilation();

Worker Service模板

此模板旨在作为运行长时间运行的后台进程的起点,例如您可以作为Windows服务或Linux守护程序运行。

单页面应用程序模板的身份验证

由IdentityServer在后台提供支持

dotnet new angular -au Individual

dotnet run

最终运行起来,可以进行登录注册,及对API 的保护。

更多可以查看官方文档:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-api-authorization?view=aspnetcore-3.0

gRPC服务模板

dotnet new grpc

会生成两个项目,一个在ASP.NET Core中托管的gRPC服务,以及一个用它来测试它的控制台应用程序。

这是gRPC for ASP.NET Core的第一次公开预览,并没有实现gRPC的所有功能。对应开源项目: https://github.com/grpc/grpc-dotnet

gRPC 简单介绍可以参照之前文章:http://www.cnblogs.com/linezero/p/grpc.html  及 https://www.cnblogs.com/linezero/p/grpcnetcore.html

ASP.NET Core 3.0预览版体验的更多相关文章

  1. 微软.NET CORE 3.0 预览版 7 发布:大幅减少 SDK 空间大小

    据悉,这个预览版是 .Net Core 3 中重要的版本,可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话), ...

  2. .NET Core 3.0预览版7中的ASP.NET Core和Blazor更新

    .NET Core 3.0 Preview 7现已推出,它包含一系列ASP.NET Core和Blazor的新更新. 以下是此预览中的新功能列表: 最新的Visual Studio预览包括.NET C ...

  3. 安装.NET Core 3.0预览版后VS项目目标框架中不显示的解决方法

    下载了微软在GitHub上的cSharpSamples项目后发现其中一些项目使用框架为.NET Core3.0,就下载了.NET Core3.0,但发现项目依然不可用,编译时提示如下 当前 .net ...

  4. Apache Spark 3.0 预览版正式发布,多项重大功能发布

    2019年11月08日 数砖的 Xingbo Jiang 大佬给社区发了一封邮件,宣布 Apache Spark 3.0 预览版正式发布,这个版本主要是为了对即将发布的 Apache Spark 3. ...

  5. Dubbo 3.0 预览版解读,6到飞起~

    , false).start(); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new St ...

  6. .NET 5.0预览版6发布:支持Windows ARM64设备

    2020年6月25日,微软dotnet团队在博客宣布了第六个 .NET 5.0 的预览版:https://devblogs.microsoft.com/dotnet/announcing-net-5- ...

  7. VS2015预览版体验

    .NET开源了,JAVA颤抖吧... 据说VS2015可以开发android,ios,wp应用程序了,还可以开发能运行在mac,linux上的ASP.NET网站,如果真是这样就太爽啦,上微软官网下载了 ...

  8. WSL2(预览版)体验笔记

    WSL2安装 WSL2在今年5月份Microsoft Build大会上发布了,但至今Windows10一直没收到更新推送,我想这么久过去就算没进入正式,至少也到了RC版了吧,于是开始折腾准备体验一把. ...

  9. TMS WEB Core v1.2预览版:新的Electron应用程序支持

    2019年2月20日,星期三 几个月前,我们已经开始与Electron进行实验.在工作概念验证之后,我们的目标是为Delphi开发人员尽可能多地包装Electron API.但当然不仅仅是可以使用的E ...

随机推荐

  1. tomcat8 源码分析 | 组件及启动过程

    tomcat 8 源码分析 ,本文主要讲解tomcat拥有哪些组件,容器,又是如何启动的 推荐访问我的个人网站,排版更好看呦: https://chenmingyu.top/tomcat-source ...

  2. Mybatis的应用2 使用mybits+SpringBoot完成第一个查询的demo(随后加增加,更新,删除)

    首先在mapper下面新建一个mysql.xml mysql.xml <?xml version="1.0" encoding="UTF-8" ?> ...

  3. 时间序列分析模型——ARIMA模型

    时间序列分析模型——ARIMA模型 一.研究目的 传统的经济计量方法是以经济理论为基础来描述变量关系的模型.但经济理论通常不足以对变量之间的动态联系提供一个严密的说明,而且内生变量既可以出现在方程的左 ...

  4. IIS虚拟目录内的视频文件访问出错:HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

    MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开.多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式. 我是 ...

  5. MySQL高可用——PXC简介

    序言 Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法. PXC属于一套近乎完美的mysql高可用集群解决方案,相比那些比较传统的基于主从复制模式的集 ...

  6. Django的项目创建,以及该端口号,语言随地区而变化

    注:myway是项目的名称创建项目:cd wwwdjango-admin startproject mywaycd mywaypython manage.py runserver 如果想改Django ...

  7. TP5报错

    Array to string conversion 数组不能用echo来输出,可使用var_dump().dump()或print_r()

  8. js中子页面父页面方法 变量相互调用(转)

    原文:https://www.cnblogs.com/huangshuqiang/p/5734358.html (1)子页面调用父页面的方法或者变量: window.parent.方法()或者变量名w ...

  9. 题解P3711:【仓鼠的数学题】

    这题黑的丫!怎么会掉紫呢! noteskey 伯努利数... 这里 有介绍哟~ 写的非常详细呢~ 反正这题就是推柿子... 另外就是黈力算法的运用 QWQ 我们令 \(ANS(x)\) 为答案多项式, ...

  10. C++设计模式——适配器模式

    生活中的适配器 买笔记本电脑,买手机时,都有一个电源适配器,电源适配器又叫外置电源,是小型便携式电子设备及电子电器的供电电压变换设备,常见于手机,笔记本电脑上.它的作用是将家里的220V高电压转换成这 ...