随着 Visual Studio 2019 16.7 Preview 4 的发布,现在可以尝试我们新的实验性 Razor 编辑器,用于本地开发,包括 MVC、Razor Page 和 Blazor。我们很期待你来试一试!

启用新的 Razor 编辑器

  要在 Visual Studio 2019 16.7 Preview 4 或更高版本中启用新的实验性 Razor 编辑器:

  1. 安装最新版 Visual Studio

  2. 点击 Tools > Options > Environment > Preview Features,勾选Enable experimental Razor editor 选项:

  3. 点击 OK 并重启 Visual Studio

  如此,现在可以使用新的 Razor 编辑器。

Razor 是什么?

  Razor 是一种基于 HTML 和 C# 的模板语言,用于为基于 MVC、Razor Page 和 Blazor 的 .NET Web 应用程序定义动态呈现逻辑。在 MVC 和 Razor 页面应用程序中,你使用 Razor 来定义视图和页面的呈现逻辑 .cshtml 文件。在 Blazor 中,使用 Razor 在 .razor 文件中编写可重用的 UI 组件。Razor 是使用 .NET 构建 Web 应用程序的体验中至关重要的一部分。

  你现在可以尝试一下 Razor,用 ASP.NET Core 或 Blazor 构建你的第一个Web 应用程序。

为什么是新的 Razor 编辑器?

  Razor 的部分价值在于 Visual Studio 为编辑 Razor 文件提供了丰富的工具体验。Visual Studio 现在在同一个 Razor 文件中为 HTML、CSS、JavaScript、C# 和 Razor 特定语法提供了智能感知、自动完成和诊断。

  Visual Studio 做了一些巧妙的操作,以在 Razor 文件中同时启用对所有这些语言的编辑器支持。对 Razor 文档进行解析以确定其组成部分,然后将每个部分投影到一个称为投影缓冲区的特定于语言的缓冲区中。在 Visual Studio 中编辑 Razor 文档时,您看到的是这些投影缓冲区中的一组小窗口,它们组成了一个完整的文档。然后,每个语言服务分别为每个独立的投影缓冲区处理编辑体验。

  例如,考虑下面Razor代码:

@{
ViewData["Title"] = "About";
}
<script type="text/javascript">
alert("Hello, World!");
</script>

  Visual Studio 处理 Razor 代码的方式如下:

  这个项目缓冲区设置在 Visual Studio 和 Mac 的 Visual Studio 中工作得很好,但是对于远程编辑场景,比如 Visual Studio LiveShare 或 Visual Studio Codespaces,它就有问题了。它也不能用于没有投影缓冲区支持的编辑器,比如 Visual Studio Code。由于 Razor 编辑器缺少中央编配器,如果不仔细协调各种语言服务实现(因为它们在投影场景中控制自己的体验),就很难启用新特性。

Razor语言服务器

  为了更广泛地支持 Razor 编辑,我们已经为一个基于 Razor 语言服务器的 ASP.NET Core 项目的新的 Razor 编辑器工作了一段时间。这个新的 Razor 语言服务器通过 LSP(Language Server Protocol)实现了一些编辑器特性,比如自动完成、转到定义等,LSP 为编辑器或 IDE 定义了一种启用这些特性的标准方法。然后一个 IDE 特定的 Razor 扩展用于处理与 Razor 语言服务器以及其他 HTML 和 C# 语言服务器的协调。

  这个新的 Razor 语言服务器已经作为 C# 扩展的一部分在 Visual Studio 代码中启用了对 Razor 的支持。它将是 Visual Studio Codespaces 和 Visual Studio LiveShare 支持 Razor 编辑的基础。现在可以在 Visual Studio 中作为预览特性进行本地开发。

  目前,我们的重点是使新的基于 LSP 的 Razor 编辑器在功能上与现有的 Visual Studio Razor 编辑体验相同(如下所述,仍然有一些功能上的差距需要解决)。在未来的版本中,我们希望通过添加重要的新功能来填补这些功能空白,比如为 Razor 带来更多的 C# 编辑特性,以及其他针对 Razor 的生产力改进。

已知问题

  新的 Razor 编辑器目前还处于试验阶段,有一些已知的限制。下面的Razor编辑器功能还没有完全实现,将在未来的版本中增加:

      • 支持 JavaScript 和 CSS 的智能感知

      • C#、JavaScript、CSS、Blazor 组件、Tag Helper 和 tooltip 的颜色设置

      • 格式化仅限于 @code 和 @functions 块中的 C# 代码(没有嵌入 HTML 标记或 Razor 语法)

      • HTML 中支持 URL 选择器

      • C# 代码段(“prop”、“ctor”等)

      • 复杂的 C# 自动完成(例如,生成 override)

      • 从 C# 到 Razor 的定义/实现

      • C# 文件中的重命名不会传播到Razor文件

      • HTML 和 { } 中匹配标识符高亮显示

  16.7 Preview 4 中新的 Razor 编辑器也有一些功能问题,这些问题将在未来的版本中解决:

      • C# 中标识错误的波浪线可能是对不齐

      • 由于在 Razor 文件中不必要地使用指令而报告了不必要的信息错误

      • Blazor 组件和 Tag Helper 现在的颜色和 C# 类一样,不受 Tag Helper 颜色选项的控制

提供反馈

  对于 Visual Studio 中新的基于 LSP 的 Razor 编辑体验来说,现在还处于早期阶段。我们知道,在它取代 Visual Studio 中现有的 Razor 编辑经验之前,还有很多工作要做。新的 Razor 工具在 16.7 中仍然是可选的和实验性的,我们不希望它成为默认的 Razor 编辑器,直到它的功能超过了现有的编辑器。但是,我们希望尽早与你分享我们的进展,以便开始获得你对新 Razor 编辑器工作情况的反馈。为了确保我们提供最好的 Razor 编辑经验,请尝试新的 Razor 工具并让我们知道你的想法。你可以通过在 GitHub 上分享你的反馈。我们感谢你的反馈!

原文链接

  https://devblogs.microsoft.com/aspnet/new-experimental-razor-editor-for-visual-studio/

【译】New experimental Razor editor for Visual Studio的更多相关文章

  1. Microsoft Visual Studio 2008 未能正确加载包“Visual Web Developer HTML Source Editor Package” | “Visual Studio HTM Editor Package”

    在安装Microsoft Visual Studio 2008 后,如果Visual Studio 2008的语言版本与系统不一致时,比如:在Windows 7 English System 安装Vi ...

  2. 【译】Visual Studio 的 Razor 编辑器的改进

    自从我们在一个通用的 Razor 语言服务器上发布了 Visual Studio 的一个新的实验性 Razor 编辑器的第一个预览版以来,已经过去了6个月,现在是时候更新一下我们的进展了.团队一直在努 ...

  3. Visual Studio 2019 for Mac 离线更新方法

    当你打开Visual Studio 2019 for Mac检查更新时,如果下载更新包很慢,可以尝试如下操作: 打开Finder(访达),找到~/Library/Caches/VisualStudio ...

  4. Visual Studio插件

    不定时更新,得到最好用的插件.(友情提示:安装插件时最好先备份系统) 1.Resharper 10.0.0.12.VS10x CodeMAP3.JavaScript Map Parser4.JScri ...

  5. How To Set Dark Theme in Visual Studio 2010

    Want to use the visual studio color theme editor to set the dark theme or other themes? Below shows ...

  6. Visual Studio 2017 设置透明背景图

    一.前言 给大家分享一下,如何为VS2017设置透明背景图.下面是一张设置前和设置后的图片. 设置前: 设置后: 二.设置背景图片的扩展程序 我们打开VS的扩展安装界面:[工具]->[扩展和更新 ...

  7. Create A .NET Core Development Environment Using Visual Studio Code

    https://www.c-sharpcorner.com/article/create-a-net-core-development-environment-using-visual-studio- ...

  8. Visual Studio 设置背景图片主题(所有版本设置方法)

    前言 效果预览: 目录 扩展安装 图片背景设置 主题透明并扩展到 IDE 内容 扩展安装 ClaudiaIDE 扩展下载 我们打开VS的扩展安装界面:[扩展]->[管理扩展]->[联机], ...

  9. Visual Studio中创建混合移动应用程序解决方案Xamarin Portable Razor

    在Visual Studio中创建混合移动应用程序的一个解决方案是使用Xamarin Portable Razor工具,这是ASP.NET MVC API针对移动设备的一个轻量级实现.Xamarin编 ...

随机推荐

  1. 深入剖析.NETCORE中CORS(跨站资源共享)

    前言 由于现代互联网的飞速发展,我们在开发现代 Web 应用程序中,经常需要考虑多种类型的客户端访问服务的情况:而这种情况放在15年前几乎是不可想象的,在那个时代,我们更多的是考虑怎么把网页快速友好的 ...

  2. 前端学习(五):body标签(三)

    进击のpython ***** 前端学习--body标签 接下来的内容就比较多了,各位看官且听我慢慢道来... ... 使用a标签,链接到另一个页面 网页中<a>标签,全称:anchor. ...

  3. 常用的 Systemctl 命令

    常用的 Systemctl 命令 设置开机启动 systemctl enable apache.service 立即启动一个服务 $ sudo systemctl start apache.servi ...

  4. MySQL索引介绍和实战

    索引是什么 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构. 可以得到索引的本质:索引是数据结构,索引的目的是提高查询效率,可以类比英语新华字典,根据目录定位词 ...

  5. Python爆火的原因与未来|内附Python学习书籍大礼包无偿领取|

    从12年到20年,python以肉眼可见的趋势超过了java,成为了当今It界人人皆知的编程语言. python为什么这么火? 网络编程语言搜索指数 适合初学者 Python具有语法简单.语句清晰的特 ...

  6. 女生学Java编程是什么感受?

    那我就代表女生来说说感受 在编程的世界很难遇到好看的帅哥 记得当年15年7月4号是我实习生入职的日子,因为是校企合作,所以没有面试.老师推荐.直接入职.刚来北京第一个感觉就是人多,还有就是热.刚到公司 ...

  7. PHP mysqli_set_charset() 函数

    设置默认客户端字符集: <?php 高佣联盟 www.cgewang.com // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con=mysqli_connect( ...

  8. windows:驱动模块隐藏

    windwos下想要搞点事,权限当然是越大越好:驱动模块天生在0环,和操作提供平级,大家互相是兄弟,所以很多外挂.木马.病毒都会使用驱动达到自己的目的.那么问题来了:PCHUNTER这种工具能查到系统 ...

  9. 40行Python制作超炫酷动态排序图,有了它高逼格PPT再也不愁!

        本文首发于量化投资与机器学习 转载于  https://mp.weixin.qq.com/s/KaB_7oXZf0_IV97y0pRPmQ 前言 最近,这种动态排序条形图视频超级火,如下图: ...

  10. 解决IIS发布时CS0016未能写入输出文件错误

    今天遇到一个将asp.net项目部署到IIS后访问的时候报的一个错误: 在网上查询了相关资料后,解决方法如下: 找到C:\Windows\下的temp文件,右键属性>安全>编辑,给其中II ...