ASP.NET Core 2.0 发布日期:2017年8月14日

ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Visual Studio 2017 15.3支持ASP.NET Core 2.0,提供新的Razor Pages项目模板。

详细发布信息查看.NET Core 2.0.0发布说明文档

最新版SDK下载:https://dot.net/core

ASP.NET Core 2.0提供一系列新功能使得Web应用开发、发布、部署和维护变得更加容易,框架性能得到进一步提升。

前言:答读者问(time by:2017.8.19)

在开始之前先集中回复前两篇文章评论中大家比较关注的问题

  • 问题1:工具的更新问题
    问题by @軒轅劍:有没单独升级到15.3的更新啊?
    答案by @yyww:下载新版本的安装程序,1M多,会自动更新的

VS2017安装程序经过重构变成模块化安装,所以对于15.3版本的更新是增量更新,下载最新的安装程序,会自动检测。

Visual Studio For Mac 7.1也一样,检测软件更新,进行增量更新。

  • 问题2:.NET Standard到底是什么?
    问题by @wdwwtzy:这个系列不错,想听听 standard 到底是啥,建议深入一些,现在太浅了
    问题by @海阔天空XM:几张体系结构图?

.NET Standard是一组API集合,支持.NET Standard的.NET平台之间可以实现代码共享,基于.NET Standard构建的类库可以在支持.NET Standard的.NET平台进行复用,防止代码碎片化。
目前支持.NET Standard 2.0的平台有:

  • .NET Framework 4.6.1

  • .NET Core 2.0

  • Mono 5.4

  • Xamarin.iOS 10.14

  • Xamarin.Mac 3.8

  • Xamarin.Android 7.5

  • UWP (预计2017年下半年发布)

在深入一点,看这张图

平台对.NET Standard 支持对应表(by @农码一生)


【图】

  • 问题3:关于System.Drawing API是否提供?
    问题by @PowerShell免费软件:.net core2正式版了,增加了System.Drawing。
    有人在上面成功运行以前的winform程序吗?谁能帮忙搞个hello试试看吗?

命名空间System.Drawing是增加了,只提供了结构体,并没有提供绘图类,相信在接下来的版本会支持。

项目升级到ASP.NET Core 2.0

ASP.NET Core 2.0 可以同时运行在.NET Framework 4.6.1 和 .NET Core 2.0框架,更改项目目标框架为:netcoreapp2.0

<PropertyGroup><TargetFramework>netcoreapp2.0</TargetFramework></PropertyGroup>

在Visual Stdio中可以设置项目属性

frameborder="0" scrolling="no" style="border-width: initial; border-style: none; width: 883px; height: 176px;">

也可以手动编辑项目文件,将原项目中Microsoft.AspNetCore.*引用包升级到2.0

<ItemGroup><PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /><PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0" /><PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.0" /></ItemGroup>

ASP.NET Core 2.0项目发布做了优化,发布文件只包含引用的类库。这个优化有助于使发布过程更流畅,更容易分发Web应用程序。

将 ASP.NET Core 1.0 升级到 2.0 详细内容可以参看这篇文章。

新增功能:Razor Pages介绍

ASP.NET Core 2.0中,提供一种新的编码方式,这种方式在页面逻辑集中的场景下比使用MVC架构开发更加简单。

Razor Pages是页面优先的架构,允许用户开发界面时,使用简单的服务端交互方式,通过页面模型对象(Page Model)进行数据交互,而无需控制器中转。

在项目启动文件中,添加代码

public class Startup{   

 public void ConfigureServices(IServiceCollection services)    {         // 包含对Razor Pages 和控制器支持.services.AddMvc();}       public void Configure(IApplicationBuilder app)    {app.UseMvc();}
}

当在服务注册中调用AddMvc方法时会激活Razor Pages功能。
添加一个测试页面,放在Pages目录下,命名为Now.cshtml

@page<html>    <body>        <h2>The server-local time now is:</h2>        <p>@DateTime.Now</p>    </body></html>

这看起来像是标准的Razor视图,只是在页面顶部添加标记@page,就定义该页面为独立的Razor Page,在页面中依然可以使用 HtmlHelpers, TagHelpers 或者.NET 代码,可以像在Razor视图中一样定义方法,只需添加块级元素@functions,然后在其内部编写代码。

@page@functions {public string FormatDate(DateTime theTime) {return theTime.ToString("d");
}}<html><body><h2>The server-local time now is:</h2><p>@FormatDate(DateTime.Now)</p></body></html>

结合使用PageModel对象,可以创建更加复杂的页面交互,PageModel是一个MVVM架构概念,相当于视图模型(VM),允许执行方法并将属性绑定到对应的页面中。在Pages目录中创建一个NowModel.cshtml.cs 类。

namespace MyFirstRazorPage.Pages{  public class NowModel : PageModel{    private IFileProvider _FileProvider;  

  public NowModel(PhysicalFileProvider fileProvider)    {_FileProvider = fileProvider;LastModified = _FileProvider.GetFileInfo("Pages/Now.cshtml").LastModified.LocalDateTime;}  

     public DateTime LastModified { get; set; }   

     public void OnGet() { }}
}

这个类继承自PageModel,根据页面业务需要可以构建与页面交互的逻辑类,并且可以对该类中的业务逻辑进行单元测试。在本例中,将LastModified属性加载到页面。另外注意OnGet方法用来声明PageModel可以响应HTTP GET请求。

更新Razor Page,使用PageModel定义的LastModified属性。

@page
@model MyFirstRazorPage.Pages.NowModel

<html>    <body>        <h2>This page was last updated:</h2>        <p>@Model.LastModified</p>    </body></html>

更多Razor Pages详细介绍参看资料。

回到目录

模板更新

模板已经增强,不仅包含MVC模式的Web应用程序模板,也包含Razor Pages Web应用程序模板,还包含一系列单页应用(SPA)程序模板。这些单页模板使用Javascript服务功能在ASP.NET Core服务中嵌入NodeJS,将JavaScript应用程序服务器作为项目中的一部分进行编译。

命令行工具提供的内置项目模板

Entity Framework Core 2.0提供DbContext池

参看:Entity Framework Core 2.0发布(稍后发布,会用单独一篇文章总结)

监视器、无代码更改配置、应用程序监视器

运行在Azure应用服务上的ASP.NET Core 2.0项目无需修改,提供性能分析、错误报告和Azure应用程序监视功能。

在Visual Studio 2017中右键项目,Add->Application Insights Telemetry,启动应用程序数据收集,然后可以直接预览日志信息和应用程序性能报告。

这个功能可以让我们在开发阶段,对应用程序性能做出测试和反馈,当程序发布到Azure之后,可以在Azure门户中进行分析和调试,程序信息的收集从第一次发布应用程序并导航到云门户时开始。Azure将会以一个紫色横幅提示您,这表明应用程序监视和分析功能是可用的。

点击进入查看应用程序监视服务,无需重新编译和部署,应用程序监视服务将开始报告捕获到的活动数据。

数据报告显示了应用程序中失败的请求和错误的数量。单击关注的数据项,将展示关于失败请求的详细信息:

上图中抛出一个System.Exception,点击查看异常报告,可以查看抛出异常的详细信息,包括调用堆栈:

应用程序监视的快照调试现在支持ASP.NET Core 2.0应用。如果设置在应用程序中配置快照调试,则顶部的“打开调试快照”链接将显示并显示完整的调用堆栈,可以单击堆栈中的方法来查看本地变量:

好了!我们可以更进一步,点击右上角的“下载快照”按钮,在Visual Studio中启动一个异常调试会话。

这些页面的性能如何?从应用程序监视页面中,选择左侧的性能选项,深入地研究每个请求在应用程序的性能跟踪。

更多信息参看使用应用程序洞察的性能分析。

如果您想要使用您的应用程序的原始日志,您可以在应用程序服务中启用诊断日志,并将诊断级别设置为警告或错误,以查看该异常被抛出。

最后,选择左边的日志流,您可以看到您在开发人员工作站上所拥有的控制台。选择将在Azure中触发的严重级别或更大级别的错误和日志消息。

所有应用程序感知功能都可以在 ASP.NET Core 中使用,不用重新编译和部署。快照调试需要添加额外的步骤和一些代码,而配置就像在启动类中添加额外代码一样简单。

更新信息参看:应用程序洞察在线文档

Razor支持C# 7.1

Razor视图引擎借助Roslyn编译器支持C# 7.1功能,比如:默认表达式、推断的元组名称和模式匹配泛型。要在项目中使用c# 7.1特性,在项目文件中添加以下属性,然后重新加载解决方案:

<LangVersion>latest</LangVersion>

C# 7.1本身还是预览版状态,可以在其GitHub存储库中查看这些特性的语言规范。

简化应用程序的主机配置

主机配置已经大大简化,默认ASP.NET Core项目模板中提供WebHost.CreateDefaultBuilder,自动分配一个Kestrel服务器,如果IIS可用则尝试运行在IIS上,并配置标准控制台日志提供程序。

public class Program{         public static void Main(string[] args)    {BuildWebHost(args).Run();}  

     public static IWebHost BuildWebHost(string[] args) =>WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().Build();
}

总结

ASP.NET Core 2.0提供的一系列新功能提供编写应用程序的新方法,简化了应用程序在生产环境的管理和维护。

相关文章:

  • .NET Core 2.0 正式发布信息汇总

  • .NET Standard 2.0 特性介绍和使用指南

  • .NET Core 2.0 的dll实时更新、https、依赖包变更问题及解决

  • .NET Core 2.0 特性介绍和使用指南

  • Entity Framework Core 2.0 新特性

  • 体验 PHP under .NET Core

  • .NET Core 2.0使用NLog

  • 升级项目到.NET Core 2.0,在Linux上安装Docker,并成功部署

  • 解决Visual Studio For Mac Restore失败的问题

原文地址:http://www.cnblogs.com/vveiliang/p/7380260.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

ASP.NET Core 2.0 特性介绍和使用指南相关推荐

  1. Entity Framework Core 2.0 特性介绍和使用指南

    前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升级EF也发展到EF6.x,Entity Framework Core是一个支持跨平台的全新版本, ...

  2. .NET Core 2.0 特性介绍和使用指南

    前言 这一篇会比较长,介绍了.NET Core 2.0新特性.工具支持及系统生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路径.提纲来用. 对于.NET Core 2.0的发布介绍, ...

  3. .NET Standard 2.0 特性介绍和使用指南

    前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时会趋于成熟,所以一个新的.Net开发时代已经来临!未来属于.NET Core. 对 ...

  4. Razor Page–Asp.Net Core 2.0新功能 Razor Page介绍

    Razor Page介绍 前言 上周期待已久的Asp.Net Core 2.0提前发布了,一下子Net圈热闹了起来,2.0带来了很多新的特性和新的功能,其中Razor Page引起我的关注,作为web ...

  5. ASP.Net Core 2.0中的Razor Page不是WebForm

    随着.net core2.0的发布,我们可以创建2.0的web应用了.2.0中新东西的出现,会让我们忘记老的东西,他就是Razor Page.下面的这篇博客将会介绍ASP.Net Core 2.0中的 ...

  6. ASP.NET Core 2.0 自定义 _ViewStart 和 _ViewImports 的目录位置

    在 ASP.NET Core 里扩展 Razor 查找视图目录不是什么新鲜和困难的事情,但 _ViewStart 和 _ViewImports 这2个视图比较特殊,如果想让 Razor 在我们指定的目 ...

  7. 从ASP.NET Core 3.0 preview 特性,了解CLR的Garbage Collection

    前言 在阅读这篇文章:Announcing Net Core 3 Preview3的时候,我看到了这样一个特性: Docker and cgroup memory Limits We conclude ...

  8. .NET Core ASP.NET Core 1.0在Redhat峰会上正式发布

    众所周知,Red Hat和微软正在努力使.NET Core成为Red Hat企业版Linux (RHEL)系统上的一流开发平台选项.这个团队已经一起工作好几个月了,RHEL对.NET有许多需求.今天在 ...

  9. diskgeniusv4.4.0_.NET Core 3.0及ASP.NET Core 3.0前瞻

    (给DotNet加星标,提升.Net技能) 转自:LineZerocnblogs.com/linezero/p/netcore3 前几天微软发布了< .NET Core 3.0 Preview ...

最新文章

  1. Arrays.asList问题
  2. 完成登录功能,用session记住用户名
  3. Sliverlight好教程
  4. eureka实例相关配置
  5. Django—自定义分页
  6. Hibernate查询技术(2)
  7. 六石编程学:数据正确是软件的基石
  8. 淘宝首页中meta标签的作用整理
  9. 图片预览(原生js实现)
  10. 初级调色转档CameraRaw
  11. Webots2021b和ROS2调试笔记21-07-27
  12. 三重邪骨手机版怎么登录服务器未响应,三重邪骨锁血版
  13. 15分钟内制作自己的文本编辑器:Yandex的实践
  14. KMP算法next数组详解
  15. Intrinsic Relationship Reasoning for Small Object Detection
  16. 前端证券项目_头条猿辅导瓜子老虎证券等前端面经
  17. 知识更新越来越快,但是学习起来越来越困
  18. Winform BLE 蓝牙通信
  19. 小米手机一键修改机器码参数
  20. java教程 invoke_Java中Method的Invoke方法详细介绍

热门文章

  1. POJ 3981(字符串替换)
  2. 如何使用c#编写单片机程序
  3. C#多线程开发-使用并发集合
  4. .NET 6新特性试用 | 可空引用类型
  5. Hostonly cookie是什么鬼?
  6. 在 Azure VM 上使用 Jitsi 搭建私人视频会议
  7. ASP.Net Core Web API 如何返回 File。
  8. .NET6正式版将近,70%开发者或面临技术断层!
  9. [Stardust]星尘分布式全链路监控
  10. .NET 应用如何优雅的做功能开关(Feature Flag)