vs中预览datatable_ASP.NET Core 3.0 预览版体验

(给DotNet加星标,提升.Net技能)

转自:LineZero

cnblogs.com/linezero/p/aspnetcore3preview.html

目前.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项目:

  • 首先将包引用添加到Microsoft.AspNetCore.Mvc.NewtonsoftJson

  • 更新ConfigureServices方法以添加AddNewtonsoftJson()。

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

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 mywebcd mywebdotnet run

运行起来如下图:

c002296ccce27889513c461749d60a3b.png

对应组件代码Counter.razor :

@page "/counter"<h1>Counterh1><p>LineZerop><p>Current count: @currentCountp><button class="btn btn-primary" onclick="@IncrementCount">Click mebutton>@functions {    int currentCount = 0;    void IncrementCount()    {        currentCount++;    }}

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

@page "/"

Hello, world!h1>

Welcome to your new app.LineZero

46e08ac17d9b308e1defdfa2fe75affd.png

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

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

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

如:

@page "/"

Hello, world!h1>

Welcome to your new app.LineZero"6"/>

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

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

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

dfc81e26b365941e634244ec45b325e3.png

运行时编译

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

要启用运行时编译:

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

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 Individualdotnet 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 简单介绍可以参照之前文章:

gRPC C#学习:

http://www.cnblogs.com/linezero/p/grpc.html  

gRPC.NET Core跨平台学习:https://www.cnblogs.com/linezero/p/grpcnetcore.html

示例代码GitHub:https://github.com/linezero/Blog

推荐阅读

(点击标题可跳转阅读)

一键发布部署VS插件AntDeploy开源了

ASP.NET Core中WebAPI测试工具Http-Repl

.NET Core 2.2 WebAPI通过OAuth2.0实现微信登录

看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

30f6442ba768ace2d7010e830da17217.png

喜欢就点一下「好看」呗~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值