Connect(); 2016

第 31 卷,第 12 期

本文章是由機器翻譯。

Visual Studio 開發 - Visual Studio for Mac 簡介

Mikayla Hutchinson;2016

在 connect ();在 11 月,Microsoft 推出 Visual Studio 的預覽 mac這是令人興奮的開發、 行動中心 Xamarin Studio IDE 演變成功,則為 true 的行動優先、 雲端優先的開發工具.NET 和 C# 和 Visual Studio 開發經驗帶入 mac

Visual Studio 系列產品的新成員

Visual Studio for Mac 本質上是 macOS 對應 Windows 版本的 Visual Studio。如果您喜歡的 Visual Studio 開發經驗,但需要或想要使用 macOS,您應該得心應手。其 UX 啟發的 Visual Studio 中,但設計外觀和風格類似 macOS 原生公民。而且像 Visual Studio for Windows,它會輔以 Visual Studio 程式碼的時間,當您不需要完整的 IDE,但又想輕量型但功能豐富的獨立原始檔編輯器。

以下介面,適用於 Mac 的 Visual Studio 也有許多與 Visual Studio 系列產品在其同層級。其 IntelliSense 和重構使用 Roslyn 編譯器平台。專案建置系統和引擎使用 MSBuild;其來源的編輯器支援 TextMate 套組。它會使用相同的偵錯工具引擎 Xamarin 和.NET 核心應用程式和相同的設計工具 Xamarin.iOS 和 Xamarin.Android。

相容性是 Visual Studio for mac 金鑰焦點雖然它是新的產品,並不支援所有 Visual Studio 專案類型,它有共通的它會使用相同的 MSBuild 方案和專案格式。如果您的小組成員在 macOS 和視窗,或自行切換兩個作業系統,您可以順暢地跨平台上共用您的專案。就不需要進行任何轉換或移轉。

行動優先、 雲端優先開發

Visual Studio 支援適用於 Mac 的主要工作負載是原生 iOS、 Android 和 Mac 開發透過 Xamarin 和透過.NET Core 的伺服器開發與 Azure 整合。它可讓您開發豐富的原生行動應用程式所需的工具可讓您體驗使用者期望現在,所有,並以雲端為基礎的伺服器後結束在。

所有是由 C# 語言您熟悉且慣用的最新的 C# 7 產能增強功能來支援它。您取得已編譯的程式碼,產能的現代的型別安全語言,對每個平台的獨特功能及程式庫和工具的豐富生態系統的效能。您可以使用現有的體驗,跨行動與定域機組網域用戶端和伺服器之間共用程式碼。並在單一解決方案中您所有專案,您可以利用適用整個方案的跨專案的重整和程式碼巡覽。

C# 不支援在 Visual Studio for Mac 預覽中的唯一語言。你們當中的功能性程式設計人員,它包含極佳 F # 的支援,是由同一個 F # 編譯器在 Visual Studio 中使用。

iOS、 Android 和 Mac

分散行動市場與今天務必要能夠以各種裝置為目標。因為它根據 Xamarin Studio 中,Visual Studio for Mac 已經成熟支援 C#-基礎 iOS、 Android 和 Mac Xamarin 平台開發。您可以利用現有的 C# 經驗和程式庫,並共用一般程式碼跨平台,具有完整存取權的原生 Api,因此您可以建置快速、 美麗的原生應用程式體驗。

更佳的程式碼共用,您可以使用提供熟悉以 XAML 為基礎的開發環境,包括 iOS、 Android、 macOS 及通用 Windows 平台 (UWP) 的多個平台為目標的跨平台 Xamarin.Forms UI 程式庫 — 雖然 UWP 開發是目前支援的 Visual Studio — 而且會對應到每個平台的原生 UI。當您需要更多的控制時,您可以混用,且符合 Xamarin.Forms 直接存取原生工具套件。沒有適用於 Xamarin 透過 NuGet,包括平台特定程式庫、 繫結至原生程式碼和可攜式的標準.NET 程式庫的龐大的生態系統的程式庫。

如同 Visual Studio 中,Visual Studio for Mac 都具備 iOS 和 Android 開發,可讓您快速地組合並微調您的 UI 的拖放設計工具。Xamarin.Forms,但它有豐富的 XAML IntelliSense 和並排的即時預覽,作為 [圖 1 顯示。在設計工具和即時預覽使用模擬器來呈現您的應用程式完全,如何顯示在裝置上,及這甚至適用於您的自訂控制項。

Xamarin.Forms XAML 即時預覽
圖 1] Xamarin.Forms XAML 即時預覽

最新的雲端

幾乎每個行動裝置應用程式都會受到服務,以及適用於 Mac 的 Visual Studio 可讓您輕鬆地開發應用程式的服務及其支援最新的 ASP.NET 核心 Web 開發平台。ASP.NET Core 執行.NET Core 的最新發展的.NET Framework 和執行階段上。它已經針對 blazingly 快速效能調整、 分解對於小型安裝大小,並重新發想要在 Linux 和 macOS,以及 Windows 上執行。

.NET core 可讓您彈性方式和位置開發與部署伺服器應用程式,無論是在您自己的資料中心或雲端平台,例如 Microsoft Azure 上的龐大程度。.NET Core 和 Xamarin 平台是開放原始碼,因為您不必擔心廠商鎖定中。

Visual Studio for Mac.NET Core 專案的支援也可讓您撰寫.NET 標準程式庫,接下來的.NET 平台共用程式碼的新方式。標準.NET 程式庫取代可攜式類別庫 (PCLs),並提供更廣泛的 API 介面區。.NET Core 和 Xamarin 平台是.NET 符合標準,因為它們只是共用程式碼,在您的方案和透過 NuGet 封裝管理員的好方法。

熟悉工作區

Visual Studio for Mac 工作區應該是現有的 Visual Studio 開發人員所熟悉的。當您第一次開啟它時,您會看到一份最近開啟的方案的歡迎頁面,開發人員相關新聞摘要及其他資訊可協助您開始使用。

若要建立新的方案,請移至檔案] 功能表並選取新的專案,以及您會看到工作區包含您的新方案。如您所見的 [圖 2, ,還有一些其他的停駐的視窗或 「 填補 」 框住,例如方案、 輸出、 屬性、 文件大綱和 [工具箱] 的中央索引標籤式的原始檔編輯器。Visual Studio 中,例如版面配置是可高度自訂,並視您正在撰寫程式碼、 偵錯或使用拖放設計工具會自動切換。

Visual Studio for Mac 工作區
[圖 2 Visual Studio for Mac 工作區

工具列也是很熟悉,但有一些明顯的差異︰

左邊是 [執行] 按鈕、 下拉式清單中選取使用中的組態,以及下拉式清單選取的回合組態和目標裝置。跨平台行動應用程式開發,務必要能夠輕鬆地切換裝置或模擬器正在測試或偵錯您的應用程式。執行的設定是在 Visual Studio 中啟動專案之外,像是除了切換專案所在的執行,您也可以建立自訂命名集的執行選項。

在工具列的中心通知區域中,會顯示有關各項作業的訊息,例如建立或還原 NuGet 封裝。執行作業時,[取消] 按鈕會顯示在通知區域。這也是其中會顯示有關軟體更新的通知。某些通知,例如組建錯誤,您可以按一下並將啟動板的詳細資訊。

在工具列的右邊是全域的搜尋。除了協助您尋找方案中的命令和檔案,其 camelCase 篩選系統可讓快速啟動命令,或跳到檔案或在您的方案類型的絕佳方式。它甚至可以開始執行您在方案中的檔案搜尋中尋找或開啟 NuGet 封裝管理員,以搜尋封裝。

方案填補的運作方式很相同 [方案總管] 在 Visual Studio 中,可讓您瀏覽和管理您的方案、 專案和檔案的結構。快顯功能表可讓您的特定內容的命令範圍方案樹狀目錄中,例如新增或移除檔案,專案、 編輯專案參考、 在資料夾中,開啟終端機的 windows 和建置或偵錯特定專案中的項目。

錯誤板會顯示任何組建警告和錯誤,同時也是您可以在其中找到在分割檢視中的組建記錄檔輸出。不同於 Visual Studio 中,沒有單一的統一的填補,為所有類型的輸出。當您執行或偵錯,並從 NuGet 作業的記錄檔會顯示 NuGet 主控台輸入板中,例如,應用程式輸出板顯示您的應用程式的輸出。屬性板並顯示屬性的目前焦點然後選取此選項,而且可用來檢視及變更方案板中的檔案的建置動作。

中央是在 IDE 中,原始檔編輯器,其中包含您希望從 Visual Studio 系列之成員的所有功能的核心。[圖 3 示範 C# IntelliSense 和語法反白顯示,.NET Core 專案中。那里也程式碼摺疊,即時錯誤加上底線及工具,建議做為輸入、 可設定的自動格式設定、 程式碼巡覽命令和一組強大的重構。

.NET Core 專案中的 IntelliSense
[圖 3.NET Core 專案中的 IntelliSense

預設會啟用所有編輯器的功能。您可以調整 Visual Studio 中的喜好設定對話方塊中,從其 Mac 應用程式功能表可存取的 Mac 設定。這相當於 Visual Studio 工具] 功能表中的 [選項] 對話方塊,而且包含許多可幫助您自訂 IDE 的運作的方式,您想要的選項。

單元測試也支援使用 NUnit,並可透過延伸模組插入其他測試跑石。在您的組件中發現測試會顯示在單元測試輸入板可以從檢視存取 |填補功能表。另外還有 git 版本控制整合到原始檔編輯器,以資料列的索引標籤底端的編輯器] 來存取目前的檔案記錄、 差異和怪檢視權限。

如果您想要快速使用一些秘訣和訣竅,快速地上手,我建議您先看我 「 成為 Xamarin Studio 專家 」 的工作階段從 Xamarin 發展 2016年 (xmn.io/xs 專業),其內容會直接套用至 Visual Studio 的 mac。

開放原始碼核心

Xamarin Studio 中,例如 Visual Studio for Mac 根據開放原始碼 MonoDevelop IDE,Microsoft 主動開發。它完全以 C# 撰寫,並具有豐富的擴充性模型可讓您將功能範圍從簡單的編輯器命令新增至全新的語言和專案類型。即使核心功能,例如 C# 編輯、 Xamarin.iOS、 Xamarin.Android 及 ASP.NET 核心會實作為擴充功能。

Visual Studio 和 Visual Studio 程式碼,例如 C# 中的支援 Visual Studio for Mac 是由開放原始碼 Roslyn 編譯器平台支援。您取得完全相同的 IntelliSense 體驗您熟悉從 Visual Studio 中,以及支援的編輯器中即時分析器和程式碼修正。Visual Studio for Mac 甚至還包含預設的分析器和修正程式碼重構 Essentials 集合。

適用於 Mac 的 visual Studio 支援編輯多種語言,不過使用 TextMate 套組,可提供語法反白顯示和簡單的 IntelliSense。其中包括從 Visual Studio 程式碼的開放原始碼 TextMate 套組的數目。

建立 ASP.NET 核心應用程式

若要顯示加速與 Visual Studio for Mac 是多麼的容易,我走雖然建立的簡單的 ASP.NET 核心後端。它假設 「 共用待辦事項清單 」 行動應用程式,以允許多個使用者新增項目,以及所有使用者都看到其中任何一個張貼的項目。

請注意,我撰寫這篇文章的 Mac 上,使用發行前版本的 Visual Studio 版本中可能會變更的 ui 部分詳細資料。不過,仍然有效的處理方式和本文所討論的概念。

安裝適用於 Mac 開啟 Visual Studio 後,我開始依序按一下 [新方案] 按鈕,在 [歡迎使用頁面上,開啟 [新增專案] 對話方塊。我瀏覽到雲端 > 一節,選擇 ASP.NET 核心 Web 應用程式範本,按一下 [下一步],再選擇 [Web API 範本。Web API 範本建立適合行動的後端,雖然您可以將檢視新增至專案,在稍後建立的 Web 前端的 RESTful Web 服務。

最後,我 HelloVSMac 我專案的名稱,然後按一下 [建立]。適用於 Mac 的 visual Studio 會建立使用 dotnet 樣板化引擎專案、 開啟並啟動還原它所依賴的 NuGet 封裝。如果您使用工具在編輯器中開啟專案檔 |編輯檔案在方案板中的專案內容功能表中,您可以看到它是要作為容易了解 minimalistic MSBuild 專案檔案。如果您直接編輯並儲存起來,IDE 會自動重新載入修改過的版本。

查看方案板中的專案,是重要的項目︰

封裝︰ 專案的 NuGet 封裝相依性。ASP.NET Core.NET 核心架構和建置專案的 MSBuild 目標會透過 NuGet 封裝安裝。

Program.cs: Web 應用程式的進入點。ASP.NET 核心應用程式是程式,因此建立、 建置和執行 WebHost 核心應用程式的 Main 方法進入點。

Startup.cs: 定義傳遞給 WebHost 將啟動類別。這個類別包含您的應用程式初始設定方法。

appsettings.json: 您的應用程式的組態設定。這相當於 ASP.NET 核心 ASP.NET 的 web.config。

基於本逐步解說的目的,我就把這些所有,並查看 [檢視] 資料夾中的 ValuesController.cs 檔案。這包含 ValuesController 類別 [Route("api/[controller]")] 路由上註冊。[Controller] 是類別名稱的預留位置,因此這真的是 api/值路由。

我一開始先定義簡單的 ToDoItem 類別和 ToDoList 儲存類別。ToDoList 是靜態的因此要求共用。實際的應用程式中會使用資料庫,但它現在。我也將控制器類別重新命名為 ToDoController (這樣會路由 api/待辦事項)、 Get 和 Post 方法連線到存放區,並清除未使用的控制站的其他方法。結果可以看到在 [圖 4

[圖 4 控制器和其簡單共用待辦事項清單儲存體

[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 服務。那我們就試試看吧。

我將中斷點放置在 Post 方法中,並開始偵錯應用程式。輸出板會顯示 ASP.NET 核心的輸出內建 kestrel Web 伺服器應用程式啟動,預設通訊埠 5000,但是它不會等到它收到要求時執行任何其他項目。您可以開啟網頁瀏覽器,並檢查 127.0.0.1:5000/api/todo,但它是空的陣列。

.NET Core 專案進行偵錯
[圖 5 偵錯.NET 核心專案

因為此服務的行動用戶端還沒有,就可以開啟 macOS 終端機應用程式,並使用 curl POST 要求傳送至應用程式︰

$ curl -H "Content-type: application/json" -X POST -d '{ title: "build
  mobile app" }' 127.0.0.1:5000/api/todo

這樣會觸發偵錯工具中的中斷點。您可以檢查自動已剖析 JSON 主體中的要求和轉換成的 ToDoItem 物件的值。您可以看到 Visual Studio for Mac 自動進入偵錯的版面配置,並具有您所預期的所有偵錯工具板︰ 堆疊、 區域變數、 執行緒、 中斷點等等。

現在,回到存取 Get 方法,終端機與使用 curl,您會看到 JSON 陣列,包含已加入的項目︰

$ curl 127.0.0.1:5000/api/todo
[{"title":"build mobile app"}]

下一個步驟是建置行動應用程式,但我會讓您瀏覽該自己。如需 ASP.NET Core 的詳細深入資訊,建議您簽出 asp.net/入門, ,如果您想要深入了解 Xamarin 開發,還有很多有用的資訊在和 developer.xamarin.com。雖然沒有太多文件的 Visual Studio for Mac 尚未,Xamarin Studio 中的文件適用於直接在大部分情況下,而 Visual Studio 說明文件通常是適用,太。

總結

我希望這個簡短的概觀激勵您試用 Visual Studio for Mac 並使其雲端和行動應用程式開發的理想 IDE 您 macOS ! 如果您有 Mac 我非常鼓勵您下載的預覽 VisualStudio.com, ,讓它微調,再告訴我們您喜歡的方式。我們很高興您的意見來幫助引導它透過預覽和更新版本。


Mikayla Hutchinson 是 Xamarin 平台,在 Microsoft 的資深專案經理。 先前她開發行動和 Xamarin Studio 中的 Web 工具,已 MonoDevelop 的核心開發人員。您可以關注他的 Twitter: @mjhutchinson

感謝下列 Microsoft 技術專家來檢閱這份文件︰ Larry O'Brien 和 Lluis 斯
Larry O'Brien 適用於 Microsoft Xamarin 文件小組。他一直使用中做為作者與編輯軟體開發發行集的欄位中。