原标题:帅呆了!微软发布 Visual Studio for Mac 预览版
11 月 17 日更新:微软发布了 Visual Studio for Mac 预览版,官方发布博文:
Announcing the new Visual Studio for Mac
,下载地址:
https://www.visualstudio.com/vs/visual-studio-mac/
。
编者注:
Visual Studio for Mac - Introducing Visual Studio for Mac
这篇英文原文链接现在已经无法访问,猜测这篇文章应该是在 Connect (); 2016 宣布这一消息后发布,可能是被提前误发布了。
从
Hacker News
上得知的确是微软误发布的:
Since this was an accidental post (now removed) in advance of the actual announcement and release, we've buried this story. That way we can avoid treating the actual announcement as a duplicate when it happens.
大致翻译如下:
在即将于 11 月 16 日举行的 Connect (); 2016 线上研讨会上,微软将发布 Visual Studio for Mac 预览版。这是 .NET 社区让人欣喜若狂的一个进展,微软将以移动开发为中心的 Xamarin Studio IDE 进化成为了真正的 “mobile-first, cloud-first” 的 .NET 开发工具,将 Visual Studio 宇宙第一的开发体验带到了宇宙第一的开发电脑 Mac 上。
Visual Studio 家族的新成员
本质上,Visual Studio for Mac 是 Windows 版 Visual Studio 的 macOS 版。如果你很享受 Visual Studio 的开发体验,又很喜欢 macOS ,拥有 Visual Studio for Mac ,你在 Mac 上做开发将有一种如家的感觉 —— 身在 macOs ,却亲切如 Windows 。它的用户体验源于 Visual Studio ,却和 macOs 的体验结合得天衣无缝,看起来用起来就如为 macOS 量身打造。
除了外观上与 macOS 的融合,Visual Studio for Mac 在功能上也不打折扣,Windows 版 Visualt Studio 有的很多功能它都有,比如基于 Roslyn 编译平台的 IntelliSense (智能感知) 与 refactoring(重构),project 系统与 build 引擎用的也都是 MSBuild。对于 Xamarin 与 .NET Core 程序,用的是同样的 debugger 引擎。
兼容性是 Visual Studio for Mac 的重要关注点。虽然它是一个全新的产品,不支持所有的 Visual Studio 项目类型,但是对于支持的项目类型,它使用同样的 MSBuild 解决方案与项目文件格式。如果你的团队中既有人使用 macOs 又有人使用 Windows,或者你自己在这两个操作系统之间切换,你可以在不同平台之间无缝地共享 Visual Studio 项目,无需任何转换与迁移。
Mobile-First, Cloud-First 开发
目前 Visual Studio for Mac 支持的主要开发场景是基于 Xamarin 进行原生 iOS、Android、Mac 应用开发和基于 .NET Core 进行服务端应用开发。它提供了这两个开发场景所需要的所有工具。
所有这些开发都用你所熟知、你所喜爱的 C# 语言来完成,而且是生产力更高的 C# 7.0。你可以拥有编译型代码更好的性能,你可以拥有先进的类型安全语言所带来的更高生产力;你可以发挥各个平台特有的优势,你可以充分利用 .NET 生态系统中丰富多彩的类库与工具;你可以在移动端与云端运用已有的经验,你可以在客户端与服务端共享代码;你可以在同一个解决方案管理不同类型的项目。
在 Visual Studio for Mac 中,除了使用 C#,你还可以使用 F# 。
iOS, Android, Mac
对于当今碎片化的移动市场,能够覆盖更多移动设备显得格外重要。由于 Visual Studio for Mac 是基于 Xamarin Studio,所以它对使用 C# 开发 iOS, Android, Mac 应用的支持是久经考验的。你可以运用已有的 C# 开发经验,利用现有的 .NET 类库,跨平台共享代码,不受限制地调用原生 API ,用 C# 打造出媲美原生语言开发的原生 App。
你可以使用跨平台的 Xamarin.Forms UI 类库,实现更多的代码共享。Visual Studio for Mac 提供了你熟悉的基于 XAML 的开发环境,它可以跨多个平台,比如 iOS, Android, macOS 以及 UWP。你也可以混合使用Xamarin.Forms 与原生 toolkit 。NuGet 服务器上提供了大量的针对 Xamarin 的类库,供你随时选用。
和 Windows 版 Visual Studio 一样,Visual Studio for Mac 也提供了拖放式 UI 设计器(drag-and drop designer),你可以在 iOS 和 Android 开发中使用它组装与调整 UI。对于 Xamarin.Forms ,它有丰富的 XAML 智能感知与实时预览功能(见下图)。设计器与实时预览通过模拟器渲染出在实际运行设备上的显示效果,即使是你的自定义控件,也能支持。
为云端量身定制
几乎每一个移动 App 的背后都有为其提供接口、运行在服务器上的后端服务。Visual Studio for Mac 支持最新的 ASP.NET Core Web 开发平台,让你开发 App 的后端服务变得更方便。ASP.NET Core 运行于 .NET Core 上,.NET Core 是 .NET Framework 与 .NET 运行时的最新进化,它被打磨得性能格外卓越,身轻如燕,超凡脱俗(超越了只能运行于 Windows 的限制)。
海阔凭鱼跃,天高任鸟飞,.NET Core 给你提供了前所未有的自由,你可以随心所欲、随时随地地开发与部署服务端应用程序,无论是 Mac, Windows 还是 Linux,无论是自己的数据中心还是云端。.NET Core 与 Xamarin 都是开源的,你也不用担心被厂商绑架(vendor lock-in)。
Visual Studio for Mac 对 .NET Core 项目的支持让你可以在 Mac 上开发 .NET Standard 类库(跨平台共享 .NET 代码的新方式)。.NET Standard 类库取代了 PCLs (Protable Class Libraries),提供了覆盖范围更广的 API。.NET Core 与 Xamarin 都是遵循 .NET Standard 标准的,你可以用它们在 VS 解决方案中或者通过 NuGet 包管理器共享代码。
熟悉的工作台
Visual Studio for Mac 工作台对于使用 Visual Studio 的 .NET 开发者来说是熟悉的。当你首次打开它,你会看到一个包含最近打开的解决方案列表的欢迎页,一个开发者新闻动态页,以及一些帮助你快速上手的信息。
打开 File 菜单,选择 New Project,就会创建一个新的解决方案,见下图。
处于中心位置的是可以通过 tab 切换的源代码编辑器(source editor),围绕着它的是一些停靠窗口(docked windows)与面板(pads),比如解决方案面板,输出面板,属性面板,文档大纲,工具箱。和 Windows 版 Visual Studio(以下简称 Visual Studio) 一样,这个布局是可以灵活定制的,而且会根据你当前的操作自动切换。
工具栏也是熟悉的,但有一些需要注意的地方:最左边的是运行按钮。它的旁边是下拉菜单,可以选择当前配置(Active Configuration)、运行配置(Run Configuration)以及目标设备,在移动开发时,通过下拉菜单可以方便地根据你测试或调试的 App 切换设备与模拟器。运行配置类似于 Visual Studio 的启动项目,除了可以选择当前运行的项目,它还可以为运行配置选项集创建自定义名称。
在工具栏中间位置的是通知区域,它会显示不同操作的相关信息,比如 building 或者 resoring NuGet packages。如果正在进行运行操作,通知区域会显示一个取消按钮。通知区域也会显示软件更新提示。有些通知你可以直接点击,比如 build 错误,点击后会打开显示更多信息的面板(pad)。
在工具栏的右侧是全局搜索。除了帮助你搜索解决方案中的命令与文件之外,它的 camelCase 过滤功能可以快速地激活命令,跳转到解决方案中的文件或者代码中的类型定义。它甚至还可以在解决方案中启动 “Find in Files” 搜索,或者打开 NuGet Package Manager 搜索 NuGet 包。
解决方案面板(pad)很像 Visual Studio 中的解决方案资源管理器,让你可以方便地浏览与管理解决方案以及其中的项目与文件的结构。上下文菜单会根据你在解决方法树形结构中所选择的内容显示相应的操作命令,比如向项目中添加文件或者从项目中移除文件,修改项目引用,打开终端窗口,build 或调试指定的项目。
错误信息面板会显示任何 build 警告与错误,在它的分隔视图这可以看到 build 日志输出。与 Visual Studio 不同,Visual Studio for Mac 没有一个统一的窗口显示所有的输出,特定的输出显示在特定的窗口中,比如应用程序输出窗口会显示运行或调试时来自应用程序的输出,NuGet 操作日志会显示在 NuGet 控制台面板。
源代码编辑器(source editor)是整个 IDE 的中心,作为 Visual Studio 家族成员之一,Visual Studio 中 source editor 所具有的有用功能,在 Visual Studio for Mac 中都有,比如下图中显示的是在 .NET Core 项目中的 C# 智能感知与语法高亮,还有代码折叠,输入时用下划线进行错误提醒以及输入建议提示,可定制的自动格式化,代码导航命令,强大的重构工具。
默认设置下 Visual Studio for Mac 并不会开启编辑器的所有功能。你可以在 Mac 应用程序菜单中打开 Preferences 对话框调整设置,其中有很多选项供你按需定制 IDE。
对单元测试的支持使用的是 NUnit ,其它的 test runner 可以通过扩展添加。在你的程序集中发现的单元测试会显示在单元测试面板中,你可以通过 View | Pads 菜单打开单元测试面板的显示。Source editor 中也集成了 Git 版本控制,在编辑器的下方有一组标签可以查看当前文件的 git log, diff, blame。
开源的内核(Open Source Core)
和 Xamarin Studio 一样,Visual Studio for Mac 是基于开源的MonoDevelop IDE(这也是微软的开源项目),并且是完全用 C# 开发的。它拥有强大的可扩展能力,从添加简单的编辑器命令到添加一种新的编程语言与项目类型,都可以通过扩展实现。即使已有的核心功能,比如 C# 代码编辑,对 Xamarin.iOS, Xamarin.Android, ASP.NET Core 的支持都是通过扩展实现的。
和 Visual Studio 与 Visual Studio Code 一样,Visual Studio for Mac 对 C# 的支持也是借助 Roslyn 编译器平台实现的,你会享有与使用 Visual Studio 时同样的智能感知体验,并且支持编辑器内实时 Analyzers 与 Code Fixes(Roslyn 的功能),而且默认就包含 Refacoring Essentials(也是 Roslyn 的功能)。
借助 TextMate bundles 提供的代码高亮与简单的智能感知,Visual Studio for Mac 可用于编辑很多编程语言。
创建一个 ASP.NET Core 应用程序
为了展示使用 Visuao Studio for Mac 加速你的开发是多么容易,接下来我创建一个简单的 ASP.NET Core 后端服务程序演示一下。它为一个假定的 “Shared To-Do List” 移动 App 提供服务接口,允许多个用户添加待办任务,只要一提交成功,所有用户都可以看到。
请注意我写这篇文章时用的是 Visual Studio for Mac 的 pre-release 版,UI上的一些细节在正式发布时可能会有变化,但使用方式与概念是不会变的。
在安装并打开 Visual Studio for Mac 之后,在欢迎页面上点击 New Solution 按钮,这时会打开 New Project 对话框。将鼠标移到 Cloud 部分,选择 ASP.NET Core Web Application 模板,点击 Next ,然后选择 Web API 模板(Web API 模板将为你创建 RESTful Web service ,这是移动应用后端服务首选的接口方式,之后你也可以在项目添加视图创建 Web 前端)。
接着,我将项目命名为 HelloVSMac 并点击 Create 。Visual Studio for Mac 使用 dotnet 模板引擎创建好项目,打开它,并安装项目所依赖的 Nuget 包。这时你如果用编辑器打开刚创建的项目文件,你会看到基于 MSBuild 的项目文件格式。
将目光移至解决方案面板(solution pad),看一下项目结构:
Packages:显示的是项目所依赖的 NuGet 包。
Program.cs:(翻译略)
Startup.cs:(翻译略)
appsettings.json:(翻译略)
为了演示目的,上面这些不动它们,我们添加一个 ToDoItem 类与一个 ToDoList 类,并添加一个 ToDoController(这部分文字在翻译时被精简) ,具体代码如下:
[Route ("api/[controller]")]public class ToDoController : Controller{ [HttpGet] public IEnumerable<ToDoItem> Get () { return ToDoList.GetAll (); } [HttpPost] public void Post ([FromBody]ToDoItem item) { ToDoList.Add (item); }}public class ToDoItem{ public string Title { get; set; }}public static class ToDoList{ static List<ToDoItem> list = new List<ToDoItem>(); public static void Add (ToDoItem item) { lock (list) { list.Add (item); } } public static IEnumerable<ToDoItem> GetAll () { lock (list) { return list.ToArray (); } }}
这样我们就实现了一个非常简单的 RESTful Web service 。让我们运行它试试。
在 ToDoController 的 Post 方法中添加一个断点,然后启动调试。这时输出面板(Output pad)开始显示 Kestrel Web 服务器启动时的输出。Kestrel 启动后,你可以通过浏览器访问 127.0.0.1:5000/api/todo,但此刻返回的只是一个空数组。
由于现在并没有一个实际的移动客户端,所以我们需要打开 macOs 的终端程序,使用 curl 命令发送一个 POST 请求给我们刚刚运行的 ASP.NET Core 演示程序。
$ curl -H "Content-type: application/json" -X POST -d '{ title: "build mobile app" }' 127.0.0.1:5000/api/todo
请求发出后,会触发 debugger 中的断点,你会看到 Visual Studio for Mac 自动进入 debugging 界面,在 debugger pads 中会显示 Stack, Locals, Threads, Breakpoints 等等。
这时,你回到 macOS 的终端,使用 curl 命令访问 Get 方法,你会看到刚刚通过 POST 请求添加的数据。
$ curl 127.0.0.1:5000/api/todo[{"title":"build mobile app"}]
小结(Wrapping Up)
我希望这篇简介能够引发你对 Visual Studio for Mac 的兴趣。试试 Visual Studio for Mac 吧,也许它会成为你在 macOS 上进行云端与移动端开发得心应手的 IDE 。
英文原文:
Visual Studio for Mac - Introducing Visual Studio for Mac
via:
https://news.cnblogs.com/n/557064/
返回搜狐,查看更多
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。