目前.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<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" οnclick="@IncrementCount">Click me</button>

@functions {int currentCount = 0;

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 = 0;

    [Parameter] int IncrementSize { get; set; } = 1;

void IncrementCount()    {        currentCount+=IncrementSize;    }}

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

如:

@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.LineZero

<Counter IncrementSize="6"/>

下图描述了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服务模板

会生成两个项目,一个在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

原文地址:https://www.cnblogs.com/linezero/p/aspnetcore3preview.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

ASP.NET Core 3.0预览版体验相关推荐

  1. 使用.NET Core 3.0 预览版,Web API和Visual Studio 2019进行ASP.NET Core Blazor游戏开发

    目录 介绍 使用ASP.NET核心Blazor创建这个奇怪的图像输出应用程序应该知道什么? 背景 先决条件 Visual Studio 2019 .NET Core 3.0 Preview SDK B ...

  2. 微软.Net Core 3.0 预览版7发布:大幅减少 SDK 空间大小

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

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

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

  4. 微软释新.NET Core 3.0预览版可加速程序加载速度ReadyToRun

    微软释出了最新的.NET Core 3.0第6预览版,更新了能够加速程序加载速度的ReadyToRun(R2R)格式,以及可以缩减应用程序大小的组译连结(Assembly Linking)工具IL l ...

  5. 开源、免费、企业级的SiteServer CMS .NET CORE 7.0 预览版发布

    经过连续不断地开发与完善,SiteServer CMS .NET CORE 版本终于在今天与大家见面了,版本为7.0.0-preview1,我们将在未来几个月收集大家的反馈,修复与完善产品,最终发布能 ...

  6. ASP.NET 3.5 Extensions预览版即将发布

    ASP.NET 3.5 Extensions 从Scott Guthrie的博客上得知,下星期微软即将发布ASP.NET 3.5 Extensions预览版.在ASP.NET 3.5 Extensio ...

  7. 重磅!Facebook公布PyTorch 1.0预览版!

    作者 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 今日,Facebook 宣布发布深度学习框架 PyTorch 1.0 开发者预览版,包括一些列工具和集成,使其与 Googl ...

  8. 分布式图处理引擎Graph Engine 1.0 预览版正式发布

    分布式图处理引擎Graph Engine 1.0 预览版正式发布 我们很高兴地宣布,由微软亚洲研究院开发的Graph Engine 1.0预览版正式发布.Graph Engine是一个基于内存的分布式 ...

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

    来源:阿里巴巴中间件公众号 Dubbo 自 2011 年 10 月 27 日开源后,已被许多非阿里系的公司使用,其中既有当当网.网易考拉等互联网公司,也不乏中国人寿.青岛海尔等大型传统企业. 自去年 ...

最新文章

  1. 以太坊,EOS和其他DApps的总数达到2,432,但没有大规模采用
  2. MATLAB 与Modelsim之间通过Linker的联合仿真
  3. spring-ioc-xml
  4. ng机器学习视频笔记(二) ——梯度下降算法解释以及求解θ
  5. 165-PHP 文本替换函数str_replace(六)
  6. 从云计算到低延时,传统编码器与创新技术双剑合璧严把成本质量关
  7. 为mysql cluster添加sql节点
  8. Python-DDT框架
  9. java provider_Java SPI(Service Provider Interface)
  10. bootstrap学习笔记(一)网络系统
  11. spring加载ApplicationContext.xml的四种方式
  12. 型管件的作用_W型柔性铸铁排水管适用范围
  13. UE4之Obj模型解构解析
  14. linux查询语言,Linux结构化查询语言SQL——SQL的分类和DDL使用
  15. android 网易音乐sdk,Netease Music SDK 开发文档
  16. Learning Git Branching 题解(基础、高级、Git远程仓库)
  17. 拯救电脑族的营养美食
  18. linux命令日志抓取,linux抓取某条日志记录的命令
  19. C++ int a= {}和int a = 0
  20. 计算机科学的主要研究领域是,斯坦福大学计算机科学专业研究领域有哪些?

热门文章

  1. 华为堡垒机_安恒信息成为“华为云优秀严选合作伙伴”,携手保障“云上”资产安全访问...
  2. EventBus的实现
  3. MongoDB基本管理命令
  4. C++ float的内存布局
  5. 第十一周项目3-程序的多文件组织
  6. Locations Section of OpenCascade BRep
  7. mysql cmake 参数详解
  8. 如何通过 反射 调用某个对象的私有方法?
  9. 提高「搜商」,挣大钱
  10. Blazor Server 应用程序中进行 HTTP 请求