目前.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. 小程序运行报错:errMsg: "request:fail url not in domain list"

    错误原因: 报错提示说请求的url不在域名列表里,应该是还没有配置服务器域名 解决方法: 可点击开发者工具右上角 详情-项目设置-不校验合法域名.web-view(业务域名).TLS 版本以及 HTT ...

  2. BZOJ3456城市规划

    题目描述 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了.刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或间接的连通.为了 ...

  3. Django练习——图书管理系统

    Django图书管理系统 创建一个项目 1. django-admin startproject 图书管理 2. cmd 命令终端下创建一个app python manage.py startapp ...

  4. Appium测试,定位H5元素(HTML5)

    代码如下: public static void main(String[] args) {         try {             AndroidDriver driver;       ...

  5. 微服务之路由网关—zuul

    Zuul 简介Zuul 是 Netflix 公司开发的一个开源 APIGateway,其本质上是一个 WebServlet 应用.Zuul 的核心是一系列的 Filter. 为什么要使用 Zuul微服 ...

  6. 老男孩Python全栈学习 S9 日常作业 006

    1.使用循环打印以下效果: 1: * ** *** **** ***** 2: ***** **** *** ** * 3: * *** ***** ******* ********* for i i ...

  7. 分布式监控系统开发【day38】:监控trigger表结构设计(一)

    一.需求讨论 1.zabbix触发器的模板截图 1.zabbix2.4.7 2.zabbix3.0 2.模板与触发器关联的好处 好处就是可以批量处理,比如我说我有1000机器都要监控cpu.内存.IO ...

  8. 使用 https://git.io 缩短 a GitHub.com URL.

    curl -i https://git.io -F 'url=https://develon2015.github.io' -F 'code=develon' 现在点击 http://git.io/d ...

  9. WEB内容换行

    word-wrap:break-word 单词间换行 word-break:break-all 单词内也可以换行 white-space属性指定元素内的空白怎样处理 normal 默认.空白会被浏览器 ...

  10. SQL修改日期类型字段为字符串类型

    select * from test1 --添加行 ) --将转换格式后的数据放到列中 ) --删除老的字段 alter table test1 drop column startdate --修改字 ...