Quantcast
Channel: MSDN 台灣部落格
Viewing all 136 articles
Browse latest View live

Visual Studio Team Services (VSTS) 測試工具藍圖

$
0
0

最近這幾個月,很常會被問及 Visual Studio Team Services (VSTS) / Team Foundation Server (TFS) 測試工具藍圖。我這裡希望能分享我們當家的部分以及過去半年持續不斷傳達的策略方向,如果您認為我們正在做的事情是對的或者哪裡我們迷失了焦點都很歡迎收到您的回饋。

有鑑於各種軟體開發趨勢 (Agile, DevOps, Cloud, Mobile),這裡列出我們在測試領域看到的主要轉變:

  • 企業期待更快速的交付 – 上市時間 (Time to Market) 成為一個非常重要的區分。多渠道 應用程式運行在網頁、手機、個人電腦與平板上,加上支援企業內部自攜設備 (BYOD)  ,引領測試配置爆炸性需求。就品質而言,各維度的期望不斷增加,增加客戶價值,縮短發行週期,更多的測試組態,適度的預算與高度的經營風險伴隨著品質的流失。
  • 工程團隊有效率地進行轉變與持續整合 (CI),工程師逐漸擁抱 及早測試、頻繁測試 的概念,他們撰寫更多的單元測試以及頻繁執行作為持續整合的一部分。導入 DevOps 以在一個或者多個環境 (開發 / 測試 / 試生產 / 生產) 中及自動化建置、部署與測試 BDT (Build-Deploy-Test) 流程,並且為每個環境執行相對應的自動化測試。.
  • 手動測試  仍然是重要的,但有更多的人投入在手動測試產品之中,功能團隊掃蟲 (bug) 作戰,產品經理試玩產品,企業用戶與領域專家進行用戶驗收測試 (UAT),搶先試用者在真實世界中使用產品的情境等,每個人都想要提供反饋進而改善產品品質,但沒有適切的產品能毫無摩擦的協助彼此溝通。
  • 企業渴望借力雲端基礎建置實踐資源最佳化應用程式搬到雲上的同時,安全性與效能測試變得尤其需要。企業利用在雲上執行測試以及多種 SaaS 服務提供壓力和效能測試、行動裝置測試。

基於以上內容,下述是我們的投資的主要領域。

  • 迴圈中開發Dev Inner Loop – 單元測試在Visual Studio 集成開發環境
  • 測試在CI 與 CD 發行管理 (RM)
  • 手動與探勘測試
  • 壓力與效能測試
  • 第三方測試服務整合

過去半年我們已經遵行這個策略,下列是我們到現在傳達 VSTS 以及 TFS 2015, 更新 1 和 更新 2 (RC) 的主要價值。

Dev Inner Loop – 單元測試在 Visual Studio 集成開發環境

在 Visual Studio 中,我們擁有開放與可擴充的測試平台,多樣的測試框架撰寫的測試皆能被不同種類的適配器 (adapter) 所執行。我們會持續加強功能,造福所有的單元測試框架 – MSTest, Junit, Xunit, Nunit 等等。時常會有關於有效率執行單元測試的詢問 – 我們已經支援多核心平行處理 (Parrallel execution) 以及增量型確認 (Incremental Validation),執行只影響基於測試的產品變化。

MSTest – 我們會持續支持與強化 MSTest。針對 ASP.NET 5 應用程式我們已經支援撰寫基於 MSTest 的測試以及收集程式碼覆蓋率的資料。我們打算支援高詢問度的需求關於針對類別 (class) 或組件(assembly) 層級的 Data row 與 Test category 等。

現在可以:

  • 執行平行測試利用電腦上可用的核心
    1
  • 增量型確認(透過內容相關性執行 Context sensitive execution) – 只針對更新的測試容器偵測與執行測。
  • 為 ASP.NET 5 應用程式的 MSTest 架構式測試增加了新支援
  • 可以從 NuGet 資源庫取得 MSTest 架構元件

即將支援的功能:

  • MSTest 的強化 – Data row 與 Test category 的支援
  • 程式碼 UI 支援 Edge 瀏覽器
  • 測試總管的強化 – 多條路徑中發現測試組件,豐富的過濾器,排序以及功能分組等

持續整合裡的測試

一個完美的 CI 系統中執行與分析測試是必備的功能。我們的目標是提供各種應用程式很棒的體驗在語境測試 (in-context test) 與程式碼覆蓋結果伴隨可執行的見解。我們會不斷的致力在加強這部分的體驗,透過增加更多的價值、圖表以及趨勢如同我們前進的方向。

現在可以:

  • 所有在建置中執行的測試結果將統一彙整。
  • 上下文檢測結果與可操作的見解。Bug中第一次的測試失敗將會被標記為”新的錯誤 (New Failures)”,以幫助您識別回歸。對於在多次建置中持續失敗的測試,您可以看到這個錯誤已經失效多久以及在哪次建置中發生。
    2
  • 支持您所選擇的任何 UT 框架 – MSTest, XUnit, NUnit, Junit 等。
  • 增加了xUnit、NUnit、Junit 和附檔名為 .trx 的任務發行測試結果(Publish Test Results) 支援。
  • 測試 Java 應用程式:
  • 支援 JUnit: 您可以上傳 Junit 結果到 TFS,從Ant、Gradle、 和Maven。您也可以使用不同的命令列工具發行測試結果,執行測試並發行這次測試所產生的結果。
  • 支援 Java 應用程式程式碼覆蓋率: 可以為您的Java專案選擇 Jacoco 或者 Cobertura 作為程式碼覆蓋率工具。這個組建檔案可以使用正確的工具動態修改並且上傳結果到 TFS。
  • 發行程式碼覆蓋率 (Publish Code Coverage) 工作支援 Jacoco 和 Cobertura 如果您的組建檔案已經成功設定收集程式碼覆蓋率的資訊,或者您使用不同的程式碼覆蓋率工具(例如 Istanbul) 支援產出 Jacoco 或 Cobertura 格式的結果,您可以透過發行程式碼覆蓋率 (Publish Code Coverage) 工作上傳資料到 TFS。
  • 趨勢圖中檢視最近10個建置中執行了多少個測試案例,其中失敗的數量。您可以把這些圖表加到儀表板中。

發行管理 (Release Management) 中的測試

和 CI 相似,發行的測試結果會顯示在每個環境 (例如開發/QA/生產) 中。 您將能夠評估每次在特定的環境中發行的品質,並且在您的發行管道之中,為移動到下個環境制定有根據的決定。鑒於每次發行文本會執行大量的測試,我們專注在有效率的執行功能性 UI 測試、負載/性能測試等。我們要無縫執行在任何的雲端架構上 – SCVMM、VMWare、Azure 和提供混合式管理給您的應用程式與測試設備。

現在可以:

  • 不同環境的語境 (In-context) 測試結果在 RM – 和Build 相似。
  • 不同機器上執行平行測試。
  • 支援使用程式碼 UI和 Selenium 進行功能性 UI 測試。
  • 支援 建置-部署-測試 (BDT) 工作流程在標準環境和 Azure VM。3
  • CI 與 RM 中 MTM 測試計劃與測試套件執行改善
    4
  • 支援 BDT 工作流程在VMWare 和 SCVMM 環境

即將支援的功能:

  • 配置儀錶板上的測試小部件。
  • 彙總分支 (CI) 與環境 (RM) 的測試歷史紀錄
  • CI中測試影響 (Test Impact)

手動與探勘測試

我們專注在使團隊的所有人都能提供反饋與提高品質。我們提供了新的探勘測試體驗在網頁與行動應用程式上。了解更多關於網頁的探勘測試以及透過從市集下載安裝 Chrome 瀏覽器外掛開始使用。我們打算為了所有手動與探勘測試的需求提供一個可信賴的網站體驗。我們希望讓測試者更加融入敏捷的實踐 – 輕鬆地為使用者故事 (User Story) 添加測試、更新測試結果內聯在看板 (Kanban) 和提供品質觀察在草創時期。

由於我們專注於跨平台、敏捷與測試場景、與第三方測試服務整合、端到端的追溯,我們決定提供大部分的新價值在我們的web體驗上,例如: Test Hub。我們正在積極的縮短微軟測試管理 (MTM) 與 web  體驗 (Test Hub) 之間的功能差距。我們將繼續支援 MTM 但我們鼓勵使用者使用我們的 web 體驗並且受益於我們正在創造的新價值。

現在可以:

手動測試

  • 匯出測試成果,手動測試迭代結果。
  • 測試結果保留政策(Retention Policy)
  • 過濾測試計劃、刪除測試計劃。
  • 從子套件查看測試案例

Web 上的探勘測試(XT)

  • 簡易的螢幕截圖與註解擷取。
  • XT Session中發現檔案錯誤。自動為您擷取註解、有註解的截圖、團隊區域和迭代路徑以及系統和瀏覽器資訊。
  • 搜尋並且更新既有的錯誤
  • 整合 Perfecto Mobile 為了測試行動應用程式。
  • 獨立與連接 ( TFS 或 VSTS) 模式
  • 發現問題在 XT Session,自動創建任務。
  • 探索工作項目– 從 XT Session 中搜尋工作項目,並關連至對應的 Session。然後您可以在 XT 期間參考驗收標準/描述。在您選定的工作項目與XT Session 中您可以端到端的追溯錯誤與您提出的任務。
    5

即將支援的功能:

  • 直接內聯測試在看板 (Kanban)
  • Web 存取的配置管理
  • 測試計劃/測試套件複製 (透過市集擴充元件)
  • 離線測試 (透過市集擴充元件)
  • XT-Image 操作紀錄, 追溯能力與影片擷取
  • XT-Insights 橫跨多個 XT Session
  • XT-Support 給專案關係人請求與未請求的工作流程
  • 負載與效能測試

我們的目標是提供一個可信賴的負載測試服務,讓您能在幾分鐘內創建負載測試設備利用多個 Azure 資料中,並提供快速的見解針對您的應用程式效能在真實世界情境裡。

現在可以:

  • 支援JMeter
  • 作者-執行-分析 (Author-Execute-Analyze) 負載測試的網站體驗
  • 整合 Azure 網站應用程式效能測試體驗
  • CI/RM 管道的一部分 – 執行負載測試的能力

即將支援的功能:

我們正在積極討論負載測試的藍圖,我稍後會分享更多的細節。.

整合第三方測試服務

我們已經整合了一些第三方測試服務作為擴充元件。我們會持續整合更多的第三方服務提供更信賴的價值給我們的客戶。

6

還有一件事 – 我們致力於創造一個完美的 DevOps 故事給行動應用程式。透過 VSTS 和 HockeyApp 的整合,您可以建置您的 Andriod、iOS 或 Windows 應用程式,部署到內部裝置或者由第三方雲端服務供應商管理的裝置,運行自動化測試,執行探勘測試,然後利用 HockeyApp 服務分送 beta 給使用者,收集即時的crash reports,獲得真實使用者反饋與分析測試覆蓋率!

讓我澄清我們的定位在其他幾個重要的領域:

Microsoft Test Manager (MTM) and 實驗室管理 (Lab Management)

許多客戶使用 MTM 和實驗室管理進行手動、探勘和自動化測試。針對手動與探勘測試,我們已經提供所有新的價值在網站體驗 – Test Hub。我們很快便會搬移 MTM 剩下的功能到 Web 上。

對於自動化測試 (Build-Deploy-Test) 情境的支援上,我們尚有一些缺口在 TFS 2015 RTM 的測試計劃 (Test Plan) / 測試套件 (Test Suite) 基本的執行、視需求 (on-demand) 執行、和自動化相關,支持 SC-VMM 環境等。

我們正在積極的縮小這些缺口並且加入新的功能,例如針對 VMWare 和 Azure 環境的支援,簡化應用程式部署等。這確實幫助客戶移轉至我們新的建置與發行流程。

我們並沒有做更多的強化功能在既有的 MTM 以及實驗室管理產品上。我們更專注在跨平台、敏捷測試情境、和第三方測試服務的整合、端到端的追蹤和簡化建置/發行的工作流程,我們決定傳遞這些新價值在我們的網站體驗服務 – Test Hub。我們將繼續支援 MTM 但我們鼓勵使用者使用我們的 web 體驗並且受益於我們正在創造的新價值。

Coded UI 和 Selenium

Coded UI 依然會是我們最推薦給桌面、網站以及商店應用程式的功能型 UI 自動化工具。隨著 WebDriver 變成 W3C 標準以及強大的企業需求支援 Selenium 在網站應用程式,我們會持續改善撰寫與執行基於 WebDriver 的 Selenium 以及 Appium 測試。 我們會選擇性的增強程式碼 UI功能,例如UWP,支援 Edge 等,以及鼓勵顧客使用 Selenium 和 Appium 在功能型UI 測試。關於更多細節資訊以及如何開始可以參考以下文章:

我們很期待聽到您的聲音,感謝您花時間看了這麼長的文章。

如果您喜愛這些功能,快開始使用 VSTS上的測試工具吧!.

如果您有任何疑問或者想要的功能,都可以留訊息給我們!

本文翻譯自 Visual Studio Team Services – Testing Tools Roadmap 若翻譯有誤,煩請不吝惜留言指教:)

 

【VSTS 相關活動 】-

對於 VSTS 還是充滿疑惑? 想知道更多 VSTS 能幫助您的部分嗎? 選對工具,實踐 DevOps 雲端轉型一點也不難!
歡迎參加 3/30 【DevOps 在雲端 – Visual Studio Team Services 實戰秘笈】


由 Azure SDK 進入微軟雲端應用開發的世界

$
0
0

前言

Microsoft Azure 自2011年開始全球服務以來,己經經過了五個年頭,雖然目前 Azure 上的基礎建設服務 (IaaS) 的使用量是所有 Azure 服務內最高的,但 Azure 早期是由平台服務 (PaaS) 起家,以 Cloud Service、Storage 與 AppFabric 等服務開始了微軟的雲端世代,經過了這些年的努力與發展,Azure己經有30餘種的服務以及無以數計的功能,而且仍然在增加中。

雖然還是有很多特別或高度客製化 (需要自己配置軟體組態) 的應用仍然會使用基礎建設服務,但雲端應用的未來性,平台服務會比基礎建設服務要高出許多,而且使用平台服務來發展應用程式,能讓 IT 管理成本降低,這是平台服務優於基礎建設服務的一個重要指標,開發人員通常不會想要自己去組態 IT 環境,尤其是和自己的開發工作無關時,因此PaaS會比IaaS更適合開發人員,因為 PaaS 讓開發人員能將心力放在開發應用程式的功能,而非處理與基礎建設的相容性。

Azure 提供了許多 PaaS 服務,從早期的Cloud Service,到現在的 Azure App Service 與 Azure IoT Suites 等,利用相應的服務來開發中大型應用早己經是雲端上的主流作法,既然有這麼多的服務,就會需要一個能整合那些服務的工具,但這個工具又不能讓開發人員覺得麻煩,所以微軟將必需用到的管理工具與範本,包裝在 Azure SDK 裡面,只要是使用 Visual Studio的開發人員,下載並安裝 Azure SDK 就能得到 Azure 平台服務相關的工具與範本,協助開發人員運用 Azure 的 PaaS 開發應用程式。

取得Azure SDK

獲取Azure SDK的方法十分簡單,如果是使用Windows平台的開發人員可以到Microsoft Web網站中下載 Web Platform Installer ,它提供了一致的安裝介面。

1

只要新增需要安裝的套件 (如 Microsoft Azure SDK for .NET (VS2015) – 2.8.2),然後按安裝,並接受必要的授權合約後即可安裝,若有相關的相依套件也會一起安裝,省下到處去找安裝套件的時間。

2

安裝完畢後,啟動 Visual Studio 就能在各個角落中找到 Azure SDK 的功能。

若是非 Windows 平台的開發人員,則可以視需要於Azure 官方下載網站取得SDK與工具:

  • Azure Tools for Eclipse (這個工具可由Eclipse的下載擴充功能取得)
  • Azure CLI (Command Line Interface) 命令列工具
  • Azure SDK for Java, PHP, node.js, Python, Ruby

專案範本群

Azure SDK 提供了 Azure PaaS 服務所需的專案範本,包含最早期的 Azure 雲端服務、Azure Mobile App (行動應用程式)、Service Fabric 應用程式範本等。若是需要資料分析如 HDInsight 或是 Azure Data Factory 的專案範本,Azure SDK 也有供應,在不同的分類內即可找到。

3

若是第一次使用 Azure SDK 或是第一次接觸 Azure 雲端應用開發,Azure SDK 內也含有快速入門 (Quickstart) 的範本供初學者參考用,基本上只要是 Azure 上需要程式碼範例的,在快速入門都有提供。

4

在專案範本內還提供了一個叫 Azure 資源群組的專案範本,它允許你可由內建的範本產生一個新資源範本 (Resource Template),或是自己從頭寫一份資源範本。資源範本是新的 Azure 管理架構,格式為 JSON,隸屬於資源管理員模式 (Resource Manager Mode),與現有的傳統模式 (Classic Mode) 相比,資源管理員模式允許由開發人員或 IT人員使用範本的方式定義 Azure 資源的配置方式,例如一次部署100台虛擬機,或是在範本內就定義好必要的基礎建設資源,Azure 會在載入範本時解析並在內部呼叫相關的 API 將資源產生出來,當範本作業完成時,就能存取定義好的基礎建設資源,可減輕開發人員或IT人員的管理負擔。Visual Studio 也貼心的在編輯範本時提供 JSON 大綱,讓編寫範本的開發人員或 IT 人員能夠快速的在如此大的 JSON 範本的各個區域之間移動,減少找尋相關指令位置的時間。

5

基本上,除了要向後相容於 Azure 虛擬機器v1的版本外,建議全面採用資源管理員模式,Azure Portal 上的資源部署除了部份服務 (如虛擬機器與儲存體等) 還能選擇傳統部署之外,其他的均採資源管理員部署模式。

管理工具

Azure資源相當的多,雖然 Visual Studio 本身有內建一個 Azure 管理員,但 Azure 管理員是建構於傳統模式的服務導向管理架構,因此較新的採用資源管理員模式的服務無法放 Azure 管理員存取,所以在較新版的 Azure SDK 中,微軟另外提供了一個 Cloud Explorer 工具,這個工具採用資源管理員模式,而且也可以看到傳統模式內的資源,而且你也可以改用資源群組的視角來瀏覽你的 Azure 服務。

採用資源類型視角

採用資源群組視角

 6  7

每項工具都有自己的指令,只要選擇資源就會出現相應的指令,以 Azure Web 為例,點選其中的一個網站,就能看到相應的動作。

8

或是按下右鍵也有相同效果:

9

這些指令和在 Azure Portal,或是使用 Azure PowerShell / Azure CLI 等工具執行動作相同,它們都是使用相同的 API,所以你可以自己選擇喜歡的方法。

已連接服務

Azure 除了 PaaS 之外,還有支援應用程式功能的服務,像是負責使用者識別與存取管理的 Azure AD (Active Directory);負責收集與處理應用程式資料的 Application Insights;儲存與管理資料的 Azure Storage 等,有些服務會需要一些繁瑣的設定,因此微軟在 Visual Studio 2015 內新增了一個功能,稱為已連接服務 (Connected Services),這個功能可幫助開發人員簡化服務的設定工作,加快服務採用的速度。目前已連接服務的內建範本有 Microsoft 和 Salesforce 兩個,Microsoft 的範本則提供了Application Insights、Azure AD、Azure Storage 以及 Office 365 APIs 等雲端服務的介接方法。

10

例如要加入 Azure 儲存體,只要選擇要加入的帳戶,

11

系統就會自動加入相關的設定,若需要 NuGet 套件的話也會一起安裝,省去自行處理的麻煩。

12

部署的支援

針對 Azure PaaS 服務的部署,因應服務的不同而有些許的不一樣,例如 Azure Web App 在 Visual Studio 2015 內就己有內建工具,不過若要對應到最新的版本,還是要安裝最新版的 Azure SDK 才能獲得,例如 Azure SDK 更新了原本的 Azure Web Apps 網站工具,在新增網站時可一併新增 Azure SQL Database,介面也和之前的版本不一樣了。

13

網站部署時選擇網站的畫面也有些不同,用樹狀的方式呈現出主站與預備環境,讓開發人員更容易的選擇。

14

另外一個重要的變更是,Azure App Service 部署工具在部署 Web Apps、Mobile Apps 或是 API Apps 時採用的是相同的介面,所以若部署其他類型應用時若看到相同的介面也無須覺得意外。至於 Cloud Service,因為基礎建設沒有太大的改變,所以部署方法也沒有什麼變化。

應用程式診斷的支援

Azure SDK 除了應用程式的範本和工具外,對 Azure PaaS 應用程式的除錯與診斷的支援也是其功能重點之一,其中較為重要的是針對 Azure Web App 的診斷方式以及 Cloud Service 的診斷方式。

Azure Web App 提供了遠端偵錯 (Remote Debugging) 的能力,開發人員可將 Visual Studio 的偵錯器掛在 Azure Web App上,以進行即時的偵錯,但以往要到 Azure Portal 去啟用遠端偵錯的功能,現在只要用 Cloud Explorer 就可以做到了,只要使用連結偵錯工具的功能即可。

15

偵錯工具連結成功時,Visual Studio就會進入偵錯模式,你就可以透過瀏覽 Azure 上的 Web App 來偵錯你的網站應用程式了。不過遠端偵錯模式並不是好作法,一來它會很要求網路頻寬,二來在一個生產環境的網站內使用的話,你不知道會攔到哪個使用者的作業,除非你能確信只有一個使用者在上面,所以遠端偵錯應作為不得已的手段較佳。除了遠端偵錯功能外,Azure Web App 還提供了記錄串流 (Log Streaming) 的功能,讓開發人員能在Visual Studio 中就能監看記錄的內容,這個功能一樣可以由 Cloud Explorer 代為啟用應用程式記錄功能,它會捕捉在應用程式內使用 Trace 類別寫出的訊息,然後傳送到 Visual Studio,並顯示在輸出視窗。

不過若要長期監控應用程式,最佳的作法還是使用 Azure 的 Application Insights 服務,可使用前面提到的已連接服務來加入,它除了可以捕捉錯誤狀態 (使用ping或自訂規則等) 外,還可以捕捉與分析使用者的活動,讓你可以掌握目前在Web應用裡面的使用者活動狀況,也可以寫點程式寫入自己的記錄。

在 Cloud Service 上的診斷功能提供得就比 Web App 完整,而且經過長時間的演進,其組態系統也都己經成熟,Azure SDK 提供了 GUI 工具讓開發人員能簡單的設定,所有診斷的組態都會寫入專案的 diagnostics.wadcfgx 檔案 (這是一個 XML 格式的檔案)。

16

Cloud Service 的診斷資訊不像 Web App 能使用檔案系統,它會固定需要一個 Azure 儲存體來儲存診斷資訊,不同的診斷記錄會使用不同的儲存體格式,基本上格式固定的診斷資料會使用 Table 來儲存 (例如應用程式記錄、基礎建設記錄、事件記錄與效能計數等),而較大且格式不固定的資料則會改用 Blob 儲存 (例如 IIS 的記錄檔、失敗要求追踪記錄檔、當機傾印檔與自訂記錄檔等),而且也需要由程式或管理員自行管理記錄的容量 (因為使用到儲存體,會以容量計價)。如果需要瀏覽診斷資料,可以使用像 Azure Storage Explorer (可瀏覽 Blob, Table 等格式) 或 Microsoft Storage Explorer (目前僅能瀏覽Blob) 連到診斷資料所在的儲存體帳戶即可。

總結

Azure SDK 提供了開發人員進入 Azure 雲端開發所需要的專案範本與工具,讓想要使用 Azure 平台作為其應用程式載具的開發人員有了很明確的著力點,讓開發人員只需要專心在應用程式的功能上,而非基礎建設,這是 Azure PaaS 的目標,也是 Azure SDK 想要做到的。


相關資料 -

Azure Tools 與 Visual Studio 介紹 
Azure 文件中心
Azure App Service 文件

【Visual Studio Team Services 相關活動 】- (原名 Visual Studio Online)

想知道 Azure 服務還能如何幫助您開發測試嗎? 想掌握應用程式健康度卻不知如何下手? 選對工具,實踐 DevOps 雲端轉型一點也不難!
歡迎參加 3/30 【DevOps 在雲端 – Visual Studio Team Services 實戰秘笈】

 

在 Visual Studio 中使用 R 語言進行進階資料分析 –使用 R Tools for Visual Studio

$
0
0

摘要

R 語言是近來相當熱門的統計和資料分析語言,常見到使用 R Studio 來當作 R 語言的 IDE 工具,現在經由安裝 R Tools for Visual Studio(RTVS),就可以在各位開發者所熟悉的 Visual Studio 來撰寫 R 語言,請見本文的介紹。


前置作業

開始之前請依照下列順序安裝所需的軟體:

  1. 下載並安裝 Visual Sutdio 2015(Visual Studio Community 2015即可)。
  2. 下載並安裝 R Tools for Visual Studio
  3. 下載並安裝 Microsoft R Open

安裝 Visual Studio 2015 的部分,相信每位 .NET 開發者都已經很熟悉,在此就不多作介紹,就從安裝 R Tools for Visual Studio 開始作說明。

當您下載並執行 R Tools for Visual Studio,安裝程式會檢查環境中是否存在 Microsoft R Open 引擎。

r1

一旦未發現 R 語言引擎,安裝程式會詢問是否要開啟網頁來協助您下載所需執行環境,點選對話視窗中的 Yes 來開啟 Microsoft R Open 的下載頁面。

r2

請在 MRAN 的下載頁面點選【Download Software】來下載【Microsoft R Open 3.2.3】。

r3

依照所使用的平台來選擇安裝程式,本文以 Windows 為例,點選下方紅色方框處的連結即可下載。

r4

建立 R 語言專案

依照前一節的步驟完成相關安裝後,開啟 Visual Studio 2015 並新增專案就可以看到 R Project 的專案類型。

r5

建立 R 語言專案,首先會看到 Editor 視窗及 R Interactive 視窗(如下圖1、2處),這是每個 R 語言專案的主要工作視窗,其他視窗會隨著R語言程式碼執行時自動出現。

r6

R Tools for Visual Studio 提供那些功能來幫助您使用R語言進行資料分析?請見下一節。

Editor視窗

您可以在 Editor 或 R Interactive視窗撰寫您的 R 語言程式,所有執行結果會出現在下方的 R Interactive 視窗,不論是在 Editor 或 R Interactive 視窗,R Tools for Visual Studio 都提供了 IntelliSense來幫助您更有效率的撰寫R語言程式碼,和其他 Visual Studio 所支援的語言相同,當您輸入程式碼時會自動帶出相關的程式碼,協助完成程式碼的輸入。

r7

r8

和 R Studio 一樣,不須選取程式碼直接按【Ctrl+Enter】就可以執行單行的 R 語言程式碼,若要執行多行則可將之選取後再按【Ctrl+Enter】即可執行。

r9

此外,可以使用 Ctrl+L 來清除 R Interactive視窗的內容,或於視窗中按滑鼠右鍵選擇【清空螢幕】。

r10

若要格式化 R 語言程式碼,可以先將滑鼠游標停留在想要格式化的程式碼上,接著按滑鼠右鍵選擇【格式化選取範圍】,或直接按【Ctrl+K、Ctrl+F】也可以達到將程式碼依照R語言的撰寫習慣來排版的目的。

r11

格式化程式碼的結果如下圖所示。

r12

您也可以直接用【Ctrl+K、Ctrl+D】來格式化整份 R 語言程式碼檔案,或於功能選單中點選【編輯>格式化文件】亦可達到相同效果。

r13

除上述方式外,透過修改 Editor 的 Automtic formatting 選項,也可以開啟或關閉自動格式化 R 語言程式碼的功能。

r14

r15

更多有關開發 R 語言的編輯器和執行環境的設定,可以從選項視窗來調整。

r16

r17

R Interactive 視窗

R Interactive 視窗可用來輸入並執行 R 語言程式碼,另外 R 語言程式碼檔案(*.R)的執行結果也會出現在此。

r18

所有執行過的 R 語言程式碼無法再做修改,但您可以透過功能選單或使用快速鍵來複製、貼上程式碼或執行結果,也可以使用 Ctrl+L 來清空螢幕。

r19

透過鍵盤的向上或向下箭頭來選擇執行過的 R 語言程式碼,而點選視窗上方的向上或向下箭頭亦可達到相同效果。

r20

所有目前工作階段的各項全域變數、函數定義或載入的套件都會暫存在工作空間(workspace),在關閉 R 語言專案前 Visual Studio 都會詢問是否儲存(*.rdata)。

r21

透過儲存工作空間,在下次開啟時選擇載入工作空間,就可以把前一次執行R語言程式碼執行時存放在記憶體中的相關變數和定義資訊載入進來,您就不需要每次都重新載入套件及資料。

r22

若要清除目前工作階段的暫存在工作空間的內容,可以點選上窗上方的重設按鈕。

r23

R History視窗

所有執行過的R語言程式碼,都會被記錄在 R History 視窗,即使關閉 Visual Studio 再打開,除非選擇【Delete all history entries】或【Delete selected history entries】來將之刪除。

r24

Variable Explorer視窗

在R語言專案中所定義的變數都會出現在 Variable Explorer 視窗,在這個視窗可以看到變數的名稱、內容、類別及資料型別。

r25

其中 data.frame 型態變數的內容無法從 Variable Explorer 視窗直接檢視,必須利用 View 函數來開啟顯示 data.frame 內容的獨立視窗(如下圖)。

r26

R Help 視窗

當您使用?或 help 函數來查詢 R 語言函數的用法時,其說明文件會呈現於 R Help 視窗。對於 R 語言提供的函數用法不清楚時,可以善用這項功能。

r27

R Plot 視窗

R 語言另一個強項就是資料視覺化的能力,R Tools for Visual Studio 也支援繪圖功能,使用 R 語言來繪圖時,會將結果呈現於 R Plot 視窗。

r28

繪圖結果可以匯出成多種格式,包含圖片及 PDF 等。

r29

偵錯

Visual Stduio 強大的偵錯功能在 R 語言當然不能缺席,點選功能表中的【R Tools > Session > Attach Debugger】或 R Interative 視窗的 Attach Debugger,就可以進入偵錯模式。

r30

r31

接著就可以設定所需的中斷點或使用快速鍵來進行偵錯,絕大部分的偵錯命令都和您開發其他語言時相同,在此就不贅述。

r32

R Markdown

R Markdown 可以同時撰寫並執行 R 語言程式碼,並將結果轉成 HTML 文件,使用前必須下載並安裝 pandoc

接著使用 install.packages 函數安裝 knitr 和 rmarkdown 套件。

r33

完成上述步驟後就可以在新增項目時看到 R Markdown 的檔案類型。

r34

於 R Markdown 檔案(*.rmd)的編輯視窗按滑鼠右鍵選擇 Preview,就可以將 R Markdown檔案的內容及執行結果產生成 HTML 或 Word 文件。

r35

以 HTML 為例,產生的結果如下圖所示。

r36

結語

經由上述介紹,您應該可以了解如何使用Visual Studio 2015來開發R語言程式碼,此外,R Tools for Visual Studio 也支援使用 Git 來作版本控管,及搭配 R SDK 就可以增加和 Azure Machine Learning 的整合能力。

R Tools for Visual Studio 目前雖尚在預覽階段,但所提供的功能已經接近 R Studio 等 R 語言的 IDE 工具,在此預告未來將有更多令人興奮的功能釋出,敬請期待!

七分鐘概覽 R Tools for Visual Studio 教學影片

 

Visual Studio Apache Cordova Apps 單元測試二部曲

$
0
0

這篇文章中您可以閱讀到以下資訊:

這系列文章的第一篇使用 Visual Studio 撰寫 Apache Cordova app,透過一個基本範例說明了單元測試的本質。在這篇文章中,我們將以測試驅動開發 (test-driven development) 的過程,針對範例程式進行許多改善,這會有助於幫助你解析思考如何挑戰一個單元程式碼從失敗到成功的過程。我們也會討論一點點關於單元測試偵錯。

同樣的這二個部份都是我們最近新增到 Visual Studio Tools for Apache Cordova 文件, Author & run tests 章節中的精簡版本。

 

測試驅動開發 Test-driven development

很明顯的它是一個空的測試 (過於簡化),normalizeData 的實作是遠遠不足的。一個健全的 normalizeData 需要處理各種會引發像是 JSON.parse 函式或屬性失敗的不良  JSON 。當然我們需要測試所有我們能想的到各種變化資料。

問題是,從哪裡開始?撰寫程式碼,撰寫測試,或是來回二者之間?你可能做了很多後者,在 normalizeData 裡寫了一些很好的程式碼,然後寫了一些測試,測驗失敗情況下,然後寫更多的程式碼,寫更多那些你還沒有涵蓋到的測試,再次修改程式碼等等….。儘管這是可控制的,它促使你來回思考程式碼及資料,並試著讓程式碼在正常運作以及想辦法讓它失敗間來回轉變。這確實是二種不同的思考過程。

這是測試驅動開發方式所顯示出的價值。充分的執行任何一段單元程式碼,最終你必須考慮所有必要輸入值的變化。測試驅動開發進行這種前置思考,是非常有效的,因為一旦你想到一些測試案例,你可以很快的連想到其它的。例如,如果你想到 JSON 裡包含一個物件,你會很自然的認為包括陣列。假如你想到包括一個整數,而單元程式碼可能預期是一個字串,它自然也就預期是一個整數的字串。

normalizeData 函式,我發現它可能是花了15分鐘思考一套完整的不同輸入值測試,來驗證 JSON.parse ,驗證 JSON 結構假設,以及驗證有關資料型別的假設。這裡有份清單:

'{"Name": "Maria", "PersonalIdentifier": 2111858}'
null
''
'blahblahblah'
'{{}'
'{{[]}}}'
'document.location="malware.site.com"'
'drop database users'
'{"Name": "Maria"}'
'{"PersonalIdentifier": 2111858}'
'{}'
'{"name": "Maria", "personalIdentifier": 2111858}'
'{"nm": "Maria", "pid": 2111858}'
'{"Name": "Maria", "PersonalIdentifier": 2111858, "Other1": 123, "Other2": "foobar"}'
'{"Name": "Maria", "PersonalIdentifier": "2111858"}'
'{"Name": "Maria", "PersonalIdentifier": -1}'
'{"Name": "Maria", "PersonalIdentifier": 123456789123456789123456789123456789}'
'{"Name": , "PersonalIdentifier": 2111858}'
'{"Name": 12345, "PersonalIdentifier": 2111858}'
'{"Name": {"First": "Maria"}, "PersonalIdentifier": 2111858}'
'{"Name": "Maria", "PersonalIdentifier": {"id": 2111858}}'
'{"Name": {"First": "Maria"}, "PersonalIdentifier": {"id": 2111858}}'
'{"Name": ["Maria"], "PersonalIdentifier": 2111858}'
'{"Name": "Maria", "PersonalIdentifier": [2111858]}'
'{"Name": ["Maria"], "PersonalIdentifier": [2111858]}'
'{"Name": "Maria", "PersonalIdentifier": "002111858"}'
'{"Name": "Maria", "PersonalIdentifier": 002111858}'

同樣的,一旦你開始思索關於輸入值的變化,測試案例自然會一個一個被引導出來。然後一旦你制定完成 JSON 變化形成一個單元測試,本實上你已經建立一個可重覆使用於其它任何需要用到 JSON 的專案測試資源了。

隨著手邊的輸入值清單,接著現在是件簡單的事,在每一組輸入的必要測試結構上,重覆的複製及貼上,例如:

it('accepts golden path data', function () {
    var json = '{"Name": "Maria", "PersonalIdentifier": 2111858}';
    var norm = normalizeData(json);
    expect(norm.name).toEqual("Maria");
    expect(norm.id).toEqual(2111858);
});

it ('rejects non-JSON string', function () {
    var json = 'blahblahblah';
    var norm = normalizeData(json);
    expect(norm).toEqual(null);
 });

it('accepts PersonalIdentifier only, name defaults', function () {
    var json = '{"PersonalIdentifier": 2111858}';
    var norm = normalizeData(json);
    expect(norm.name).toEqual("default"); //Default
    expect(norm.id).toEqual(2111858);
});

it('ignores extra fields', function () {
    var json = '{"Name": "Maria", "PersonalIdentifier": 2111858, "Other1": 123, "Other2": "foobar"}';
    var norm = normalizeData(json);
    expect(norm.name).toEqual("Maria");
    expect(norm.id).toEqual(2111858);
});

it('truncates excessively long Name', function () {
    //Create a string longer than 255 characters
    var name = "";
    for (var i = 0; i < 30; i++) {
        name += "aaaaaaaaaa" + i;
    }

    var json = '{"Name": "' + name + '", "PersonalIdentifier": 2111858}';
    var norm = normalizeData(json);
    equal(norm.Name).toEqual(name.substring(0, 255));
    equal(norm.Name.length).toEqual(255);
    expect(norm.id).toEqual(2111858);
});

it('rejects object Name and PersonalIdentifier', function () {
    var json = '{"Name": {"First": "Maria"}, "PersonalIdentifier": {"id": 2111858}}';
    var norm = normalizeData(json);
    expect(norm).toEqual(null);
});

注意測試的名稱(it函式的第一個參數),它會呈現在 UI 裡,例如測試總管,所以它應該要能辨示出是測試什麼以及測試的基本性質 (例如, “rejects”或“accepts”) 。此外,當然它可以把輸入及預期結果放到一個集合陣列,來取代逐一撰寫每個測試。目前在這裡所呈現的樣子。

這裡的重點是,首先花 30 分鐘專注於進行輸入值的變化,然後裝載到單元測試裡,你是完全無拘束的專注在撰寫程式碼,不需要去懷疑(或擔心!)是否已經真的處理了所有可能的輸入。

事實上,如果你針對像 normalizeData 這樣尚未實作的函式,進行全部的測試,很明顯大部份的結果都會是失敗的。但是這只是表示那些結果失敗的測試是你必須在程式碼裡的待處理事項,反應出實際上還沒有被妥善處理的輸入情況。增加更多的實作程式碼,然後通過更多的測試。當這個函式可以通過所有的測試時,你就可以完全信任它可以處理所有應該被處理的情況。針對整個完整的示範演練,包含完成 normalizeData 實作,請參閱 Improving the unit tests: an introduction to test-driven development 文件。

測試驅動開發 (Test-driven development) ,簡單來說,就是明確的針對這些輸入的情況,分別撰寫程式碼來處理它們。最後,如果你真的想做好你的程式碼測試工作,你就必須拆解這些任務。在這個前題之下,測試驅動開發 (Test-driven development) 可以在開發初期階段就建立更強壯健全的程式碼,整體來看是可以降低成本的。

 

偵錯測試及行期變數值

先前的單元測試揭漏了一個 bug 。你有看出是哪一個嗎?我以為已經寫完了 normalizeData 函式的實作,包含處理"截斷過長的名稱 (truncates excessively long Name)"的測試案例,但這個案例還是失敗了,我無法立即看出問題所在。

幸運的是, Visual Studio 提供你可以單元測試偵錯的能力,就像其它類型的程式碼一樣,設置中斷點,檢查變數值,然後逐步遍歷測試程式碼。測試程式碼仍然還是程式碼,只是出現 bugs !

無論如何,在 Visual Studio 編輯器設置中斷點是不夠的。透過測試總管執行測試無法掛起那些中斷點,因為像 Chutzpah 這類的測試執行器 (test runner) 是在獨立的  PhantomJS 程序中去載入 JavaScript 並執行的,但是 Visual Studio IDE 沒有辦法關聯這些引擎進行偵錯。

你必須進入"測試>偵錯>執行 ",在這裡你可以看有 "選取的測試 " "所有測試 "選項。你也可以在失敗的測試上按右鍵,然後選擇偵錯所選擇的測試。這些命令可以驅使測試執行器 (test runner) 在瀏覽器中執行 JavaScrip t程式碼, Visual Studio 就可以捕抓到偵錯器。測試框架 (test framework) 的報告也會顯示在瀏覽器。

提醒!在"]測試>偵錯>所有測試 "以及"測試總管>全部執行 "命令,會自動儲存你在專案裡所做的任何程式碼變更。但是,執行個別測試的命令,是不會儲存變更的,這可能會造成預期應改變卻沒有生效的困惑。所以執行個別測試前先確認已經儲存程式碼變更。

在偵錯器 (debugger),我看到我的單元測試錯誤引用了norm.Name 而不是 norm.name :

 

修正這個問題之後,我剩一個測試還未通過,它是測試在 JSON 裡帶有 0 開頭的整數值。我不知道為何它是失敗的,因此我啟用偵錯器 (debugger) 對它進行偵錯。但是在偵錯器 (debugger) ,它通過了測試!這是怎麼一回事?

原來,我發現到 JSON.parse在PhantomJS 與 Internet Explorer 的執行環境,在實作上有些微不同,在偵錯器 (debugger) 以外的 PhantomJS 執行環境運作時針對 0 開頭的會引發例外,而在偵錯器 (debugger) 內部採用 Internet Explorer 執行環境進行則不會引發例外。詳細原因請參閱 Debugging unit tests 文件。

最重要值得注意的是,你也許會發現在單元測試所使用的環境與 App 真正執行所使用的環境,執行時有些許的差異。正因為如此,所以好的建議是偶爾在所有行動平台上執行你的單元測試。要做到這一點,在你的 App 開發版本加入一個特殊頁面,然後在瀏覽該頁面時執行你的單元測試。在這個情況下,瀏覽行為就像是個測試執行器 (test runner) ,你必須要引用參考測試框架 (test framework libraries) ,以便裝載該頁面。

 

 

包含第一篇和第二篇的文章內容,都是我們發佈在文件裡 Author & run tests  章節內容的精簡版本,你可以在那裡找到更詳細的演練示範,以及談論有關使用 “mocks” 來處理呼叫平台 APIs ,還有其它延伸未談及到的單元測試執行環境內容。歡迎告訴我們你的想法。

我也希望聽聽你是如何在 Cordova apps 進行單元測試,你是如何進行 UI 測試(手動及自動),以及我們可以如何進一步提升我們的支援透過 Visual Studio Tools for Apache Cordova ,歡迎到 http://visualstudio.uservoice.com/. 提出建議。

本文翻譯自 Unit Testing Apache Cordova Apps with Visual Studio, Part 2

[延伸閱讀 – 影片教學]

使用 Visual Studio 2015 TACO 建置 Windows 10 應用程式

Visual Studio 2015 tools for Apache Cordova Build apps for Windows 10

由 Azure SDK 進入微軟雲端應用開發的世界

$
0
0

前言

Microsoft Azure 自2011年開始全球服務以來,己經經過了五個年頭,雖然目前 Azure 上的基礎建設服務 (IaaS) 的使用量是所有 Azure 服務內最高的,但 Azure 早期是由平台服務 (PaaS) 起家,以 Cloud Service、Storage 與 AppFabric 等服務開始了微軟的雲端世代,經過了這些年的努力與發展,Azure己經有30餘種的服務以及無以數計的功能,而且仍然在增加中。

雖然還是有很多特別或高度客製化 (需要自己配置軟體組態) 的應用仍然會使用基礎建設服務,但雲端應用的未來性,平台服務會比基礎建設服務要高出許多,而且使用平台服務來發展應用程式,能讓 IT 管理成本降低,這是平台服務優於基礎建設服務的一個重要指標,開發人員通常不會想要自己去組態 IT 環境,尤其是和自己的開發工作無關時,因此PaaS會比IaaS更適合開發人員,因為 PaaS 讓開發人員能將心力放在開發應用程式的功能,而非處理與基礎建設的相容性。

Azure 提供了許多 PaaS 服務,從早期的Cloud Service,到現在的 Azure App Service 與 Azure IoT Suites 等,利用相應的服務來開發中大型應用早己經是雲端上的主流作法,既然有這麼多的服務,就會需要一個能整合那些服務的工具,但這個工具又不能讓開發人員覺得麻煩,所以微軟將必需用到的管理工具與範本,包裝在 Azure SDK 裡面,只要是使用 Visual Studio的開發人員,下載並安裝 Azure SDK 就能得到 Azure 平台服務相關的工具與範本,協助開發人員運用 Azure 的 PaaS 開發應用程式。

取得Azure SDK

獲取Azure SDK的方法十分簡單,如果是使用Windows平台的開發人員可以到Microsoft Web網站中下載 Web Platform Installer ,它提供了一致的安裝介面。

1

只要新增需要安裝的套件 (如 Microsoft Azure SDK for .NET (VS2015) – 2.8.2),然後按安裝,並接受必要的授權合約後即可安裝,若有相關的相依套件也會一起安裝,省下到處去找安裝套件的時間。

2

安裝完畢後,啟動 Visual Studio 就能在各個角落中找到 Azure SDK 的功能。

若是非 Windows 平台的開發人員,則可以視需要於Azure 官方下載網站取得SDK與工具:

  • Azure Tools for Eclipse (這個工具可由Eclipse的下載擴充功能取得)
  • Azure CLI (Command Line Interface) 命令列工具
  • Azure SDK for Java, PHP, node.js, Python, Ruby

專案範本群

Azure SDK 提供了 Azure PaaS 服務所需的專案範本,包含最早期的 Azure 雲端服務、Azure Mobile App (行動應用程式)、Service Fabric 應用程式範本等。若是需要資料分析如 HDInsight 或是 Azure Data Factory 的專案範本,Azure SDK 也有供應,在不同的分類內即可找到。

3

若是第一次使用 Azure SDK 或是第一次接觸 Azure 雲端應用開發,Azure SDK 內也含有快速入門 (Quickstart) 的範本供初學者參考用,基本上只要是 Azure 上需要程式碼範例的,在快速入門都有提供。

4

在專案範本內還提供了一個叫 Azure 資源群組的專案範本,它允許你可由內建的範本產生一個新資源範本 (Resource Template),或是自己從頭寫一份資源範本。資源範本是新的 Azure 管理架構,格式為 JSON,隸屬於資源管理員模式 (Resource Manager Mode),與現有的傳統模式 (Classic Mode) 相比,資源管理員模式允許由開發人員或 IT人員使用範本的方式定義 Azure 資源的配置方式,例如一次部署100台虛擬機,或是在範本內就定義好必要的基礎建設資源,Azure 會在載入範本時解析並在內部呼叫相關的 API 將資源產生出來,當範本作業完成時,就能存取定義好的基礎建設資源,可減輕開發人員或IT人員的管理負擔。Visual Studio 也貼心的在編輯範本時提供 JSON 大綱,讓編寫範本的開發人員或 IT 人員能夠快速的在如此大的 JSON 範本的各個區域之間移動,減少找尋相關指令位置的時間。

5

基本上,除了要向後相容於 Azure 虛擬機器v1的版本外,建議全面採用資源管理員模式,Azure Portal 上的資源部署除了部份服務 (如虛擬機器與儲存體等) 還能選擇傳統部署之外,其他的均採資源管理員部署模式。

管理工具

Azure資源相當的多,雖然 Visual Studio 本身有內建一個 Azure 管理員,但 Azure 管理員是建構於傳統模式的服務導向管理架構,因此較新的採用資源管理員模式的服務無法放 Azure 管理員存取,所以在較新版的 Azure SDK 中,微軟另外提供了一個 Cloud Explorer 工具,這個工具採用資源管理員模式,而且也可以看到傳統模式內的資源,而且你也可以改用資源群組的視角來瀏覽你的 Azure 服務。

採用資源類型視角

採用資源群組視角

 6  7

每項工具都有自己的指令,只要選擇資源就會出現相應的指令,以 Azure Web 為例,點選其中的一個網站,就能看到相應的動作。

8

或是按下右鍵也有相同效果:

9

這些指令和在 Azure Portal,或是使用 Azure PowerShell / Azure CLI 等工具執行動作相同,它們都是使用相同的 API,所以你可以自己選擇喜歡的方法。

已連接服務

Azure 除了 PaaS 之外,還有支援應用程式功能的服務,像是負責使用者識別與存取管理的 Azure AD (Active Directory);負責收集與處理應用程式資料的 Application Insights;儲存與管理資料的 Azure Storage 等,有些服務會需要一些繁瑣的設定,因此微軟在 Visual Studio 2015 內新增了一個功能,稱為已連接服務 (Connected Services),這個功能可幫助開發人員簡化服務的設定工作,加快服務採用的速度。目前已連接服務的內建範本有 Microsoft 和 Salesforce 兩個,Microsoft 的範本則提供了Application Insights、Azure AD、Azure Storage 以及 Office 365 APIs 等雲端服務的介接方法。

10

例如要加入 Azure 儲存體,只要選擇要加入的帳戶,

11

系統就會自動加入相關的設定,若需要 NuGet 套件的話也會一起安裝,省去自行處理的麻煩。

12

部署的支援

針對 Azure PaaS 服務的部署,因應服務的不同而有些許的不一樣,例如 Azure Web App 在 Visual Studio 2015 內就己有內建工具,不過若要對應到最新的版本,還是要安裝最新版的 Azure SDK 才能獲得,例如 Azure SDK 更新了原本的 Azure Web Apps 網站工具,在新增網站時可一併新增 Azure SQL Database,介面也和之前的版本不一樣了。

13

網站部署時選擇網站的畫面也有些不同,用樹狀的方式呈現出主站與預備環境,讓開發人員更容易的選擇。

14

另外一個重要的變更是,Azure App Service 部署工具在部署 Web Apps、Mobile Apps 或是 API Apps 時採用的是相同的介面,所以若部署其他類型應用時若看到相同的介面也無須覺得意外。至於 Cloud Service,因為基礎建設沒有太大的改變,所以部署方法也沒有什麼變化。

應用程式診斷的支援

Azure SDK 除了應用程式的範本和工具外,對 Azure PaaS 應用程式的除錯與診斷的支援也是其功能重點之一,其中較為重要的是針對 Azure Web App 的診斷方式以及 Cloud Service 的診斷方式。

Azure Web App 提供了遠端偵錯 (Remote Debugging) 的能力,開發人員可將 Visual Studio 的偵錯器掛在 Azure Web App上,以進行即時的偵錯,但以往要到 Azure Portal 去啟用遠端偵錯的功能,現在只要用 Cloud Explorer 就可以做到了,只要使用連結偵錯工具的功能即可。

15

偵錯工具連結成功時,Visual Studio就會進入偵錯模式,你就可以透過瀏覽 Azure 上的 Web App 來偵錯你的網站應用程式了。不過遠端偵錯模式並不是好作法,一來它會很要求網路頻寬,二來在一個生產環境的網站內使用的話,你不知道會攔到哪個使用者的作業,除非你能確信只有一個使用者在上面,所以遠端偵錯應作為不得已的手段較佳。除了遠端偵錯功能外,Azure Web App 還提供了記錄串流 (Log Streaming) 的功能,讓開發人員能在Visual Studio 中就能監看記錄的內容,這個功能一樣可以由 Cloud Explorer 代為啟用應用程式記錄功能,它會捕捉在應用程式內使用 Trace 類別寫出的訊息,然後傳送到 Visual Studio,並顯示在輸出視窗。

不過若要長期監控應用程式,最佳的作法還是使用 Azure 的 Application Insights 服務,可使用前面提到的已連接服務來加入,它除了可以捕捉錯誤狀態 (使用ping或自訂規則等) 外,還可以捕捉與分析使用者的活動,讓你可以掌握目前在Web應用裡面的使用者活動狀況,也可以寫點程式寫入自己的記錄。

在 Cloud Service 上的診斷功能提供得就比 Web App 完整,而且經過長時間的演進,其組態系統也都己經成熟,Azure SDK 提供了 GUI 工具讓開發人員能簡單的設定,所有診斷的組態都會寫入專案的 diagnostics.wadcfgx 檔案 (這是一個 XML 格式的檔案)。

16

Cloud Service 的診斷資訊不像 Web App 能使用檔案系統,它會固定需要一個 Azure 儲存體來儲存診斷資訊,不同的診斷記錄會使用不同的儲存體格式,基本上格式固定的診斷資料會使用 Table 來儲存 (例如應用程式記錄、基礎建設記錄、事件記錄與效能計數等),而較大且格式不固定的資料則會改用 Blob 儲存 (例如 IIS 的記錄檔、失敗要求追踪記錄檔、當機傾印檔與自訂記錄檔等),而且也需要由程式或管理員自行管理記錄的容量 (因為使用到儲存體,會以容量計價)。如果需要瀏覽診斷資料,可以使用像 Azure Storage Explorer (可瀏覽 Blob, Table 等格式) 或 Microsoft Storage Explorer (目前僅能瀏覽Blob) 連到診斷資料所在的儲存體帳戶即可。

總結

Azure SDK 提供了開發人員進入 Azure 雲端開發所需要的專案範本與工具,讓想要使用 Azure 平台作為其應用程式載具的開發人員有了很明確的著力點,讓開發人員只需要專心在應用程式的功能上,而非基礎建設,這是 Azure PaaS 的目標,也是 Azure SDK 想要做到的。


相關資料 -

Azure Tools 與 Visual Studio 介紹 
Azure 文件中心
Azure App Service 文件

【Visual Studio Team Services 相關活動 】- (原名 Visual Studio Online)

想知道 Azure 服務還能如何幫助您開發測試嗎? 想掌握應用程式健康度卻不知如何下手? 選對工具,實踐 DevOps 雲端轉型一點也不難!
歡迎參加 3/30 【DevOps 在雲端 – Visual Studio Team Services 實戰秘笈】

 

Azure Functions 簡介

$
0
0

雲端開發正在演進

資料無所不在,在雲端、地端以及在 Internet 連結的設備之間不斷的擴散。組織正在努力的在資料中將價值解開,並且要求他們的開發人員在不斷壓縮的時程中回應高可擴展性的解決方案。解決方案通常要求開發人員實作出隨選或是已排定時間的批次工作以實行交易、採集與處理資料,或即時做出反應。

這些需求迫使雲端運算典範演進並提供簡單與可擴展的事件驅動式解決方案,開發人員正在尋找方法抽象這些共同的問題與雲端應用程式的概念;釋放他們以聚焦於寫程式來解決在高速與資料驅動的世界中的真正問題。

Azure Functions 概要

今天,Microsoft 宣佈 Azure Functions 。Azure Functions 是一個事件驅動、隨選運算並延展現有的Azure 應用程式平台能力的經驗以實作由事件觸發的程式碼於 Azure 或是第三方服務以及地端的系統。Azure Functions 允許開發人員由連接資料來源或訊息解決方案來執行動作因而讓處理與和事件互動變得容易。開發人員能利用 Azure Functions 建立 HTTP 為主的 API 端點並能由應用程式、行動裝置與 IoT 設備等組成的大範圍存取,Azure Functions 是以擴展為基礎與具隨選能力,因此你只需要依你使用的資源付費即可。

為了支援持續部署與整合,Azure Functions 提供了一個直觀、以瀏覽器為主的使用者介面,以允許你建立已排程或已觸發的程式碼片段,且使用不同的程式語言所實作。

多樣的觸發器與連接器允許開發人員於Azure服務中與事件互動,Azure Functions 的資料處理能儲存到 Azure 資料服務如 Azure Storage 、Azure SQL Database 與 DocumentDB 。

工作原理

 強大的開發人員體驗

使用 Azure Functions 的開發人員可以使用不同的程式語言 ( JavaScript、C#、Python 與 PHP 等 ) 實作事件,以及指令碼選項如 Bash 、Batch 與 PowerShell ,而且,開發人員可以上傳與觸發預先編譯 ( Pre-compiled ) 的可執行檔。 Azure Functions 提供一個 Git 終端點以允許無縫的將本地開發與使用像Visual Studio Team Services、GitHub 與 BitBucket 的持續整合接軌。開發人員可以採用內建於 Azure Functions 的記錄能力監控與排除 Azure Functions 的問題。

多樣的觸發選項

Azure Functions 能以多種方法觸發,包含藉由 CRON 運算式預先定義的時間、當 Azure Storage Blob 容器變更、Azure Queue 的變更、由 Service Bus 傳入訊息,以及 HTTP 觸發器等。因 HTTP 的支援, Fucntions 能夠由任何支援 Web Hooks 的 SaaS 產品發射出的事件進行互動,它們都很容易設定以及只需要最小的組態。

存取與處理資料的創新方法

Azure Functions 變得比以往更簡單,不僅是讓以在其他服務的資料觸發程式碼,也能存取與處理資料。隨著 Functions 繫結,開發人員能簡單的透過它們的功能與其他資料來源與服務互動, 而不必擔心 Function 的資料來源與目的地。繫結 ( Binding ) 使工作像加入訊息到 Queue 或是擷取一個 Blob 就如同傳遞 JSON 到 Function 輸出變數或是由 Function 輸入變數讀取 Blob 般簡單。利用這個能力,開發人員只需知道非常小,關於將與其互動的服務的細節,並簡單的與不同的服務交換。

 譯註:這一段的意思是,Azure Functions 會將其他服務傳遞資料的行為封裝成 Function 的參數,例如讀取 Blob 時,Azure Functions 會將 Blob 物件的資訊傳給 Function ;取得 Queue 訊息時,Azure Functions 也會有一個參數表示收到的 Queue 訊息。利用這樣的方式抽象化了與其他服務的互動方式,開發人員就不需要了解太多服務的細節,如 API 的使用。

 

“ Serverless ” 的執行模型

PaaS 解決方案的其中一個價值主張是由程式碼抽象化作業系統層,底下的平台提供預先組態的作業系統映像且不需要任何修補或維護工作,且能依應用程式負載需要自動擴展。Azure Functions 延伸了 PaaS 的概念以提供開發人員自底下的基礎建設而來的完整抽象化,透過依執行次數計費的模型來自動化以觸發喚起為主的擴展能力。若需要更多 Functions 的計費方式,可參考這裡。

開放原始碼執行期元件能在任何地方執行

Functions 的執行期元件、範本、UI 以及作為基礎的 WebJob SDK 全部都是開源專案並公開發展。 Azure Functions 執行期元件也將作成可攜式,因此你可以執行 Function 在任何地方,在 Azure 、在你的資料中心或其他雲端。

其他好處

Azure Functions 允許開發人員運用開發人員生產力的功能,像是部署槽 ( deployment slot ) 、簡易驗證  ( easy auth )、以及其他更多。需要對他們的應用程式的容器做細粒度控制 ( fine-gained control ) 的客戶可以執行 Azure Functions 在傳統的 App Service Plan 像是 App Service Environment ( ASE )。另外,客戶已有應用程式、API 或資料庫已部署在公司防火牆內,也可以由端資料中心使用 Azure 技術如混合式連線  ( Hybrid Connection ) 或虛擬網路來觸發 Azure Functions 或是儲存資料到地端系統。

 開始入門

若要開始,請到 Azure Functions 入口網站並依照其步驟,它會開始詢問你想要使用的情境。

當你選擇了一個選項,你會被帶到 Azure Functions 的數位儀表板,你在那裡可以撰寫程式碼、組態事件、監控執行與管理其他一般設定。

瀏覽器內的程式碼體驗讓它可以用所有 Azure 支援的語言編寫程式,這裡你可以看到 JavaScript 以及瀏覽器教學的下一步。

使用事件與資料頁面組態與管理你的事件與繫結也是一個簡單的流程。

繼續向前

Azure Functions 今天進入預覽階段,並且將會開放給所有 Azure 客戶以使用我們的試用體驗。預計功能清單  ( backlog )  可在我們的 GitHub 網頁上找到。新功能將會在接下來數個月內釋出,並且我們很珍惜你的回饋意見。請在 Azure UserVoice 網站傳送你的意見,以協助我們改變你想要使用 Azure Functions 在雲端建立應用程式的方法。

本文翻譯自 Introducing Azure Functions

在 2016 年微軟開發者大會上談論到的幾件事:UWP 登上 Xbox、釋出 Xbox One 開發模式與 Windows 10 上的遊戲開發環境

$
0
0

微軟 2016 年開發者大會在本周於舊金山 Moscone 中心進行舉辦,而 Xbox 開發團隊當然沒有錯過這次的大會,為開發者們帶來了 Xbox One 與 Windows 10 上有關於未來跨平台遊戲開發方面的目標與願景。

第一天的開發者大會 Keynote 上由 Xbox 團隊主管 Phil Spencer 談論有關於 Universal Windows Platform  ( UWP ) 除了能於多種 Windows 10 裝置上開發一般應用程式之外,更能讓遊戲透過 UWP 進行跨平台開發。而全新的 Xbox 開發模式更是在發表會上成為一大亮點,該模式能夠允許各式各樣的開發團隊能透過簡單的方式解鎖市售版的 Xbox One ,讓 Xbox One 能夠成為開發、測試以及實驗 UWP App 與遊戲的裝置。

在 UWP 與 Windows 10 上發揮更多機會

在 Keynote 中,Spencer 向大家說明 Windows 10 是最適合遊戲開發者開發遊戲的平台。Windows 10 UWP 是一個完全開放的平台,讓任何一位的遊戲開發者能夠透過多種方式將已經透過傳統 Win32 開發的遊戲轉換並包裝成UWP,用以充分發揮UWP的特性(如動態磚等)。另外開發完成的 UWP 遊戲不在僅僅於Windows Store上發行出去,更能提供多種的方式發布。這代表能夠透過任何技術發佈至任何的 Store。

 

使用 UWP 開發成果將帶給消費者數個好處,例如:使遊戲以及應用程式有更完整及穩定的操作與安裝體驗、跨平台與不同尺寸裝置上的良好操作體驗。而對於開發者來說,透過凝聚力如此強的平台則能夠更輕易的讓消費者們獲取其發布的 UWP App 與遊戲。

 

UWP 基於 30 年來 Windows 在遊戲上的驚人表現打造而成。目前在 Windows 平台上遊戲市場已經茁壯成長為驚人且具有相當規模的生態,這也得感謝不同的遊戲銷售商及開發商,打造出來不同種類的遊戲並吸引了各式各樣的玩家們遊玩。而我們想做的事情就是無論玩家們是用什麼樣子的裝置,皆能將這些玩家在統一的平台上繼續遊玩他們想玩的遊戲。

 

Spencer 表示因前述的種種原因,團隊一直以來與遊戲開發社群有密切的互動跟意見交換。為此 Spencer 在大會上表示接下來的幾個月,Win 32 與 UWP 皆能獲得幾點遊戲開發技術的重要功能:如現在能夠禁用 V-Sync 與加入 G-Sync 、FreeSync 畫面同步技術,並能由 DirectX 12 直接支援多 GPU 的繪圖運算處裡。對於這幾項技術新增支援,無疑是替遊戲開發者帶來更容易地開發流程,如更簡單的為開發的遊戲加入多 GPU 的支援與在全螢幕下遊戲的效能增進及更容易加入畫面 overlays 的相關功能。

 

簡介Xbox開發模式

 

接著 Xbox 軟體工程開發主管 Ashley Speicher 在舞台上帶來了 Xbox 開發模式的介紹,有了開發模式的幫助,開發人員能夠部屬開發好的 UWP apps 與遊戲到 Xbox One 上。 Speicher 表示透過已經解鎖開發模式的市售 Xbox One 使開發者能夠於典型的客廳環境進行實驗及測試已開發的 UWP App 或遊戲。

 

接下來的開發者們不再需有額外的”開發套件”來使開發的應用或遊戲部屬運行至 Xbox One ,從今天開始 Xbox 開發模式預覽版能夠下載來使用,而 Speicher 提醒到因為目前為預覽階段,較建議有經驗的開發者使用。開發者若確定想要嘗試使用開發模式預覽版的話,能夠於 Xbox Store 上找到 ” Xbox Dev Mode Activation App ” 並下載安裝,在切換至 Dev Mode 您可能需要花一點時間閱讀安裝提示內容,來決定是否繼續使用預覽版的開發模式或者等待日後 Windows 10 年度更新時的開發模式正式版本再進行使用。

 

今年夏天,Windows 10 年度更新將會來到。其中最重要的是 Xbox Store 與 Windows Store 將會進行整合用來提供單一且跨平台的商城,使 Windows Store 能夠給予消費者一致性的體驗像是遊戲同捆包的販售、遊戲季票、預購等。

 

在年度更新中也將會為 Xbox One 帶來 Cortana ,以及大多數玩家希望的背景音樂撥放功能。

 

當 Cortana 於 Windows 10 年度更新而登上 Xbox One 時,我們預計玩家能夠獲得在 Windows 10 上使用Cortana 類似的操作體驗。 Cortana 能做為個人的遊戲助手,幫助玩家找到更有趣的遊戲新聞、挑戰與一些遊戲的小技巧。我們將會於 2016 年六月的 E3 電玩展上發布更多 Xbox One 在 Windows 10 年度更新上所會加入功能的詳盡內容。

 

最後,謝謝各位能夠製作出如此棒的遊戲與應用程式,有各位的相伴,相信在未來 Xbox One 與 Windows 10 的道路是如此燦爛美妙。我們也等不及的看到各位開發者能夠在接下來的幾個月時間能替 Universal Windows Platform 開發出更多有趣的遊戲及應用!

(本文出自:http://news.xbox.com/2016/03/30/xbox-at-build-2016/)

 

宣佈 Azure Resource Manager 內的範本匯出功能

$
0
0

今天,我們很高興的宣佈範本匯出功能的預覽,以回應出資源群組作為範本的能力的需求。在這篇部落格文章中,我們將告訴你能與範本互動的三個新方法。

由運行中的資源群組匯出範本

在 Azure Portal ,你可以選擇你目前的資源群組並選擇設定的 Export Template  ( 匯出範本 )。當範本匯出完成時,你能夠在 Portal 下載範本檔或觸發一個新的部署,你也可以找到 PowerShell 指令碼及 CLI 指令碼以用於部署範本。

為了使用 PowerShell 匯出範本,你可以執行下列指令:

Export-AzureRmResourceGroup -ResourceGroupName <String> [-Path <String>] [-IncludeParameterDefaultValue [<SwitchParameter>]] [-IncludeComments [<SwitchParameter>]]

若要用 CLI 做,你可以執行:

azure group export<name>[directory]

由前次的部署匯出範本

你也可以由你部署的歷史清單中選擇特定部署,並且匯出範本與當時傳送時的參數。選擇 deployment 與按下 Export template 。

若要使用 PowerShell 匯出前次的部署範本,你可以執行:

Save-AzureRmResourceGroupDeploymentTemplate -DeploymentName <String> -ResourceGroupName <String> [-Path <String>]

若要使用 CLI ,你可以執行:

azure group deployment template download [options] <resource-group> <name> [directory]

建立的自動化選項

另外的選項是按下 Automation Options 在 Portal 中檢視即將代表你建立的體驗的範本。

試用它吧,並且我們會繼續期待你的回饋。

本文翻譯自 Announcing template export feature in Azure Resource Manager

 


Windows 10 Anniversary SDK 提供更多機會給開發人員

$
0
0

在 //build 2016 第一天的 keynote,Satya Nadella 與 Terry Myerson 公佈了 Windows 10 Anniversary Update 並且會持續投資在 Windows Platform 提供更多的機會給全部的開發人員。Terry’s blog 裏面有總結當天相關釋出的消息,不過翻譯的這個篇內容特別對開發者需要知道的部分多做一些説明。

The Windows 10 Anniversary SDK

這次更新包含數以千計的新功能和 APIs,更多來自於開發人員們的建議與回饋 ( Windows Insider Program ) 所加入的特性與功能。

以下便列出幾個在 keynote 中提到的重點部分:

  • Connected Devices

實現了新的連接方式,例如:Windows Mobile 與 Xbox 控制器,Windows Mobile 與 Windows 電腦可以直接連接,可以參考示範影片

提供 Cortana 新的延伸應與 Action Center 與 Cloud 互相整合。可以到 Cortana Dev Center 注冊參加 preview program,將可以優先體驗如何整合 Cortana search 與 Cortana Action 等相關的應用。

 

  • Background execution

正努力實現讓開發人員不需要再切成兩個不同執行緒,衹是爲了開發支援 background 應用的 Apps 。隨著執行延伸與更強大的 tasks,讓開發應用程式變得更加簡單與強大。

 

  • App Extensions

UWP 現在支援 app 更豐富的可延伸性,讓開發人員可以基於 App 建立起更緊密的生態系統,例如: Desktop, Tablet, Mobile…等,或是 Microsoft Edge 在 keynote 介紹新的 extensions 與整合 Hello Windows 做登入的範例。

 

  • Action Center in the Cloud

整合所有的 Action Center 中的訊息可以同步到任何一臺屬於您的設備。讓你在哪裏都可以看到訊息或是直接在 Action Center 上做互動,如果刪除了一個訊息其他設備上的訊息也可以一併處理。

 

  • Windows Store & Dev Center

Dev Center 這一次的改版增加了更多的新功能:新的分析 APIs,提供在針對同一個 App 只有更新特定的用戶,更多的  APIs 可以抓取或是建立屬於自己的 dashboard,使用者角色使用者細分化與目標,A / B 測試, 應用程式訂閱, 廣告的改進,更多詳細的內容可以參考:Announcing New Dev Center Capabilities to Increase App Revenue and Streamline Management

Pioneers wanted: NUI Innovations coming to UWP

藉由 Universal Windows Platform 的發展,微軟一直在創造新的方式,整合用戶的設備超越觸摸操作和滑鼠,更包括視覺、 寫作、 演講等各式各樣的應用。它是不僅僅是投入和產出,更是關於創建超越單個設備的經驗,使開發人員能夠在設備之間協調的經驗。在 Keynote 裏面公佈了許多新的創新,如下:

  • Windows Ink APIs

微軟新開放的技術讓應用程式可以跟Windows Ink 互相整合。衹需要兩行程式碼就可以搭配 InkCanvas 與 InkToolbar 控制項藉由 Windows Ink帶入 “Hello World“ 到您的應用程式。InkPresenter 提供了一個功能強大和靈活的方式將延長 InkToolbar,創建自訂 ink 的經驗。在所有情況下,該平臺提供美麗的低延遲水墨渲染 (low-latency ink rendering)、手寫辨識和油墨資料管理 (ink data management)。

 

  • Windows Hello

在 Windows 10 新的設備已經可以使用 Windows Hello和生物特徵進行認證,使您的應用程式易於訪問和與 Windows Passport更安全。如果您是網頁程式開發人員,現在可以帶入相同的 Windows Hello 使用經驗到您的網站中,而且是使用JavaScript Api 在 Microsoft Edge裏。

 

  • Cortana APIs

目前超過 1,000 以上個 apps 已經使用了 voice commands 與 Cortana 互相整合。Cortana 現在更開發與積極行動,讓開發人員可以整合應用程式到 Cortana 上,透過它在正確的情境增加使用者與應用的參與度,例如:在開車的時候藉由 Cortana 操作音樂控制或是搜尋相關資料…等。更多新的特性可以參考Cortana portal

 

  • Microsoft HoloLens Development Edition begins shipping

想開發 HoloLens 嗎?沒有問題現在開放購買了,可以參考 Get your Development Edition.。目前還沒有開發亞洲地區運送,任然可以藉由更新Visual Studio 2015 Update 2  與 Windows Holographic SDK and emulator使用模擬器來學習與開發適合於 HoloLens 上運作的 UWP應用程式。微軟公佈了許多範例可以參考:HoloToolkitHoloToolkit-UnityGalaxy Explorer,這將加速全息 (holographic) 應用程式的開發。開發人員現在可以利用立體透鏡將現有 UWP 應用程式放在虛擬世界內的二維曲面執行。相關的文件論壇已經熱烈討論快點連結去看看吧。

Listening to your needs, embracing tools for multi-platform development on Windows.

微軟聽見了開發者的聲音努力讓 Windows 成為最佳的發展環境,無論開發者使用的技術或指定目標平臺,並以 Universal Windows Platform 為核心,努力使跨設備開發成為現實。其中有幾個讓人非常興奮的項目:

  • Converting Desktop App ( Project Centennial )

  微軟釋出新的 desktop app converter 讓 Win32 與 .NET apps 可以連結 UWP 與 Windows Store。新的安裝程式技術,您的應用程式就可以乾淨地安裝、 卸載,和更新和也獲得完全訪問 UWP APIs,包括:動態磁貼 (Live Tiles)、Cortana、notifications …等。

 

  • Bash is coming to Windows

對於喜歡使用熱門 command-line tools 的用戶,Windows 10 現在支援Ubuntu在 Windows 上運作,並且支援更多開放原始碼的open-source command-line tools. 開發人員將能夠從 Windows 應用商店下載 Bash shell。

 

  • Xamarin

Xamarin 被微軟收購之後,在 Keynote 馬上就公佈了 Xamarin 免費的消息,並且提供 Free ebook: Creating Mobile Apps with Xamarin.Forms 檔讓開發人員可以快速學習。Xamarin 簡單且共用代碼達到跨平臺的目標,爲每個平臺提供本機的經驗。微軟支援 open source ,提供 iOS 開發者橋接 Objective-C code 到 Visual Studio 與編譯成 UWP apps。

 

  • Retail Dev Kit Unlock for Xbox One

期待已久的 UWP Apps 運作在 Xbox One 終於來了,可以先參考 How to activate Dev Mode on your Xbox One console 讓 Xbox One 先開啓 Dev Mode。現在開發者可以開發 UWP apps 和部署在 Xbox One 上協助測試,專門針對較大的觀看距離和螢幕大小的客廳裡的調整,遊戲控制器的輸入,或是上 Xbox One 測試與優化。更多詳細的開發檔可以參考:UWP on Xbox One 與注冊 ID@Xbox

 

介紹了 Anniversary SDK 之後,是否想要立即更新呢?到 Visual Studio 2015 Update 2 下載更新,並且加入Windows 10 Anniversary SDK Preview Build 14295.。除了 Anniversary SDK 之外,別忘了 Visual Studio `15` 的更新,這一個更新讓 Visual Studio 2015 可以開發更多 Red stone 更新後的新功能。還有更多的內容可參考 Channel 9 //build 2016 專區

本文原始發布於: Windows 10 Anniversary SDK is bringing exciting opportunities to developers

Visual Studio “15″ Preview –開放兼容,維持生產力!

$
0
0

2016/03/30 //Build/ 2016 正式宣布 Visual Studio “15″ Preview 發行的消息。這裡整理了重點新功能的介紹與相關文章給各位:)

最新功能

立即下載 -> Visual Studio Enterprise “15″ Preview

重要事項 這是未受支援的 Visual Studio 發行前版本。 不建議您在生產環境中使用。


 

新安裝程式 – Visual Studio 瘦身計劃!

vs15 installer

相關文章: 安裝你所需的功能

相關文章: 快速精簡的安裝程式

相關文章: 輕量 C++ 安裝程式

 

XAML 應用程式的 [編輯後繼續] 功能

Visual Studio 現在可讓您在 WPF 或通用 Windows 應用程式執行時編輯 XAML,以及查看執行中應用程式的變更。 在程式碼編輯器中,您可以變更標記,而且不需要重新編譯應用程式,這些變更就會反映在執行中的應用程式。

您必須在目前的 Windows 10 Insider 版本上安裝 Visual Studio,並具有該 Insider 版本的對應 Windows 10 SDK,才能對通用 Windows 應用程式使用 XAML [編輯後繼續] 功能。 若要安裝這些項目,請參閱 Windows 測試人員計畫 頁面。

xaml-edit-continue

相關文章: 透過 Xaml [編輯後繼續] 輕鬆進行 UI 開發 

 

從任何資料夾開啟並編輯程式碼

[開啟資料夾] 可方便您在專案和解決方案之外巡覽程式碼基底。方案總管包含一個新按鈕,可在 [解決方案] 和 [資料夾] 檢視間切換。 如果資料夾中有 MSBuild 專案,編輯器會提供適用於 C# 或 Visual Basic 檔案的 IntelliSense,而且您可以使用 F5 鍵及方案總管中的檔案操作功能表建置或偵錯。 安裝相關的 Visual Studio 工具之後,也可以針對 Python 和 Node.js 指令碼進行偵錯。 您可以在方案總管中,針對 Git 版本控制下的檔案執行版本控制作業。

open any folder

相關文章: 在 Visual Studio “15”中開啟任何資料夾

 

新的JavaScript Language Service - Salsa

新的 JavaScript Language Service 已可供預覽! 您可以切換登錄機碼加以啟用。 這項新服務使用 TypeScript 定義檔改進 IntelliSense,並包含對 JSDoc 註解註釋以及 ES6 和 Common JS 模組格式的 IntelliSense 支援。 此外也支援 JSX 語法,以及 ES2016 中的功能,例如產生器、模組和裝飾項目。

如需可啟用新語言服務的特定指示及其詳細資訊,請參閱 GitHub 上的 Salsa 文件

相關文章: 搶先看新的 JavaScript Language Service – Salsa 

 

Visual Studio Tools for Apache Cordova

Visual Studio “15″ Preview 包含 Visual Studio Apache Cordova 工具 Update 8,並有下列功能改進:

  • 支援 Cordova 6.0.0
  • 改善建置錯誤訊息
  • 改善 npm 整合 (使用沙箱版本並遵從系統 Proxy 設定)
  • 更新外掛程式清單

如需此版本的詳細資訊,請參閱 Visual Studio Tools for Apache Cordova 版本資訊

重要事項 本版 Visual Studio 不支援 Windows 市集 8.1 專案。 建議您以 Windows 10 為目標來更新 Cordova 專案。

 

Visual Studio Tools for Universal Windows App Development

Visual Studio “15″ Preview 包含通用 Windows 平台工具的下列功能:

  • 更新的 .NET Native 工具鏈。 此更新的 .NET Native 工具鏈新增了多項最佳化功能,可改善 Visual Studio 中受管理 UWP 應用程式的執行階段效能。 本版包含 600 多個錯誤 (bug) 修正和功能,不僅滿足主要的客戶意見反應,也改善工具鏈的整體品質。
  • 5.1.0 Microsoft.NETCore.UniversalWindowsPlatform 套件。 .NET Core NuGet 架構程式庫的這項更新解決了自 Visual Studio 2015 RTM 以來客戶所回報的主要問題。 現有的 UWP 專案可以使用 NuGet 參考管理員更新至此新版本。

 

C# Visual Basic

我們已新增/更新三種新的樣式分析器,以協助您自訂及強制執行小組的程式碼慣例,如下所示:

  • 命名樣式規則
  • 使用 “var” 或明確類型
  • 對成員存取使用 “this.” 或 “Me.”

exception

Visual Studio 2015 Update 2 也提供 IDE 體驗的下列增強功能:

  • 重構以簡化委派引動過程,以及使用 null 條件運算子引發事件。
  • 重構可讓非同步方法在適用時同步執行。
  • 增強 [加入 using] 命令,以對拼字錯誤的類型支援「模糊」比對,包括新增任何所需專案或中繼資料參考。

利用新的 C# 語言功能來使用模式比對與區域函式

我們正為下一版 C# 致力於某些建議的新語言擴充功能,而本版也提供其預覽。 若要試用這些實驗性編譯器功能,您必須使用對應的功能旗標,如下所示:

  • 巢狀區域函式擴充語言,以支援在區塊範圍中宣告函式 (使用 /features:localFunctions)
  • 模式比對擴充功能提供代數資料類型及從功能語言進行模式比對 (/features:patterns) 的許多優點
  • Ref returns 可讓函式以傳址方式傳回值 (/features:refLocalsAndReturns)

本版也會預覽新的 Analyzer API,讓您更輕鬆地撰寫 分析器,以便只著重於程式碼語意 (相對於語言語法)。 這些新的 IOperation API 可讓分析器檢查方法主體非語言相關的表示法。

如需詳細資訊,請關注我們在 GitHub 上的發展,以深入了解這些分析器,以及其他建議的語言擴充功能和 API。

相關文章: Visual Studio 中 C# 和 VB 新功能 

 

偵錯和診斷

將條件加入例外狀況設定中

當您設定偵錯工具在擲回例外狀況中斷時,您可以新增條件,讓偵錯工具只在例外狀況於指定模組中擲回時才中斷。

debug

相關文章: 新例外狀況幫手 Exception Helper 

 

Application Insights

Application Insights for Visual Studio “15″ Preview 針對 Visual Studio 2015 Update 1 隨附的 v4.0,包含了數項新功能和功能改進。 值得注意的新增項目包括:

  • 搜尋本機偵錯工作階段中發出之 Application Insights 遙測的功能。
  • Visual Studio 中目標更明確的 Application Insights 快顯通知。
  • 設定來自 log4net、NLog 和 System.Diagnostics 等記錄架構之追蹤集合的簡化體驗。

我們也對 Application Insights 搜尋功能進行了數項改進,如下所示:

  • 從例外狀況堆疊追蹤跳至原始程式碼中方法的功能。
  • 搜尋相關遙測的功能。
  • 支援在程式碼中尋找遙測屬性值。
  • 下一個/上一個搜尋記錄。

如需詳細資訊,請參閱 Microsoft Azure 上的 技術版本資訊

相關下載:  Application Insights Tools for Visual Studio “15″ Preview v6.1.0

 

Team 總管

工作項目表單

如果您從 Visual Studio “15” Preview 連接到 Visual Studio Team Services 並開啟一個工作項目,該工作項目表單會出現在您的網頁瀏覽器中。 不過,如果您連接到 Team Foundation Server 2015 (含) 以前版本,則會看到舊版工作項目表單。

team explorer

 

 

SQL Server Data Tools

Visual Studio “15″ Preview 包含 SQL Server Data Tools 的最新更新,可支援 Azure SQL DatabaseSQL Server 2016 的最新功能。

本版可讓您在所有支援的 SQL Server 版本和資料庫平台上,輕鬆地使用 Visual Studio 開發、測試及部署內部部署和雲端資料庫。 本版也增強了資料庫程式設計介面區,並改善 SQL Server Data Tools 中的 SQL 連接體驗,現在只要按一下就能自動探索可連接的 SQL Server 和 Azure SQL Database。

此外,Visual Studio “15″ Preview 可處理新的 Azure SQL Database 驗證類型,以及 Azure Active Directory 整合式驗證和密碼驗證。

 

其他相關內容

錯誤 (bug) 修正及已知問題

如需此版本的技術改進、Bug 修正及已知問題的完整說明,請參閱下列 MSDN 文件。

深入了解: Visual Studio “15″ Preview 的說明

搭配新安裝程式的 Visual Studio “15″ Preview

我們正在預覽新的實驗性安裝程式,該安裝程式支援更能夠設定也更快的 Visual Studio 安裝,而將取代傳統的安裝體驗。 Visual Studio “15″ Preview 版本包含適用於我們環境的新輕量型安裝程式首次公開預覽,從頭經過重新設計,而能夠達成下列目標:

  • 將 Visual Studio 的磁碟使用量降到最低
  • 以更快且更不會影響系統的方式進行安裝
  • 讓您更輕鬆地只選取及安裝需要的功能

藉由安裝最小核心編輯器,您將取得超過二十種語言的基本程式碼編輯支援、從任何資料夾開啟及編輯程式碼而不需要專案的功能、Managed 和原生偵錯支援,以及整合式原始程式碼控制。 您也可以選擇加入其他語言的額外支援,此 Preview 版本隨附 .NET 桌面開發、C++、Unity 或 Python 的初步支援。

因為這是早期預覽版本,所以尚不支援完整的 Visual Studio 功能集。 但此版本可與其他 Visual Studio 執行個體並存安裝。 如果您想要安裝一組更完整的元件,請改為安裝 Visual Studio Enterprise “15″ Preview。

您可以從此 Visual Studio 下載 頁面下載 Visual Studio “15″ Preview 與新的安裝程式。

Visual Studio IDE 整體改進
  • 發行前版本授權到期訊息更清楚地表達目前的授權狀態。
  • Visual Studio 的首次啟動速度提高 30-35%

重要事項 這是未受支援的 Visual Studio 發行前版本。 不建議您在生產環境中使用。 不過,歡迎您提供寶貴的意見反應! 如有任何問題,請透過 Visual Studio 的 傳送意見反應 選項告知我們。若要提出建議,請透過 UserVoice 告知我們。

您可以從下列連結安裝此新版 Visual Studio:

下載: Visual Studio Enterprise “15″ Preview

若要深入了解其他相關下載,請參閱 下載 頁面。

 

相關文章

//Build/ 2016 –微軟智能機器人開發框架

$
0
0

今年的 Build 2016 大會,微軟正式揭曉了微軟智能機器人開發框架。在大會中,微軟 CEO 納德拉也揭示了一個未來願景:「交談即平台 (conversation as a platform)」。這個軟體巨人也在大會主題演講中展示了許多各具功能的智能機器人,有些可以讓使用者與他討論或是交談 (就如同之前推出的交談機器 Tay 一樣),除此之外,微軟同時也發表了一些可以嵌入在 Skype 以及幫助使用者設定時程表、預約飯店或是執行其他的任務。更重要的是,微軟還展示了人工智慧機器人可以利用智慧手機照相機鏡頭來「看」或是「感知」視覺障礙的使用者的周遭環境,例如可以描述臉部表情等等。

當然,這些只是微軟出品的智能機器人的一部分,但是,這次推出的智能機器人開發框架是一個能夠讓開發者更簡單的建立自己的智能機器人的服務。根據微軟的說法,智能機器人開發框架同時也能讓開發者者已讓他的機器人與更多服務對接,像是 Office 365 與 Slack。微軟是這麼說的:

微軟智能機器人開發框架提供您建構自己的智能機器人所需的一切,以及能將機器人與用戶間緊密連結,無論這交談的平台是來自於簡訊、Office 365 郵件還是 Slack 之類的服務,這就是屬於您的智能機器人,無論何處都能與用戶進行交談。想要學習如何運用智能機器人開發框架以及自己的程式來建構屬於自己的機器人,除了可以透過機器人設計師這樣的工具自動產生一些表層的交談對話,你還能給與機器人更多的自然語言處理技巧以及整合最新的深度學習技術。還不快來透過這工具來開發更多精彩的智能機器人,讓它們與客戶緊緊相連,無論客戶身在何方。

若您想要了解更多關於智能機器人開發框架,請到官方網站

智能機器人 (Bot Framework) 開發框架總覽

微軟智能機器人開發框架能夠提供您建構與連結智能機器人的一切所需,讓智能機器人能夠自然地與您的客戶透過對談、或是文字與簡訊,甚至於是 Skype、Slack、Office 365 郵件等熱門服務進行自然的交互。

01

機器人連接器 (Bot Connector)

02

將您的機器人與文字/簡訊、Office365 郵件、Skype、Slack 以及其他服務接通。

  • 只需要簡單幾個步驟:註冊、連接、發布以及透過機器人儀表板進行管理
  • 訊息路由
  • 自動翻譯為 30 種以上的語言
  • 使用者與狀態管理
  • 內嵌網頁對談控制項
  • 除錯工具

Get started with the Bot Connector.

365 郵件、Skype、Slack 以及其他服務接通,僅僅需要註冊您的機器人、連接、以及發布至機器人目錄。

機器人建構 SDK (Bot Builder SDK)

機器人建構 SDK 是在 Github 上開源的 SDK,提供您所需要的一切,為您的 Node.js 或 C# 基礎開發的機器人創造精彩的對話。03

  • 在 Github 上開源的 SDK
  • 從簡單內建的提示或是指令式對話,到易用的「表格流程」對話
  • 大量的文件庫、案例以及工具讓您開發更為便利
  • 交談模擬器
  • 提供與相關的認知服務高度整合

C# 與 Node.js

  • 將交談 (conversation) 模型化為對話 (dialogs)
    • 對話是可重複利用的
    • 交談可以擴充至數台機器的規模
    • 對話狀態可以被儲存於智能機器人連接器 (每個使用者、每個 session、每個使用者 +session)
  • 對話的種類
    • 內建提示:是/否、字串、數字、選項
    • 自然語言理解 (LUIS)
    • 表單填寫 (分歧流程、確認以解決歧義問題、多次訪問)
    • 個人基本資料 (例如家裡住址)

機器人目錄 (Bot Directory)

試試看,您可以運用它將您的機器人發布到全球,一起加入世界頂尖對話體驗的行列。04

  • 機器人公開目錄可透過機器人開發框架來註冊與核准。
  • 使用者可以在目錄上的網頁交談控制項來試用您的機器人
  • 使用者可以透過搜尋找到您的機器人服務,並將它加入設定好的頻道中。

智能機器人很快的進入我們每個人的數位生活,而成為不可缺少的一部分。它們對於使用者為何如此重要,是因為它們能提供使用者與網頁上或是行動裝置上的各種服務或是應用程式一種新的互動模式。開發者在撰寫智能機器人的時候都會面對到類似的問題:智能機器人需要基本的對話輸入與輸出、它需要具備語言與對話的技巧,而且它們必須能夠與使用者建立連結的管道,當然最好能以使用者所選定的語言來讓整個對談的使用者體驗更為完整。智能機器人開發框架提供了能夠協助開發者簡單解決以上問題的相關工具,不但如此,它還能提供更多像是自動翻譯成 30 國以上的語言、使用者與對話狀態管理、除錯工具、內嵌交談控制項以及能讓一般用戶可以搜尋、試用以及能將他們喜愛的機器人加入至對話中的機器人目錄。

智能機器人開發框架包含了數個模組,包括了:機器人連接器、機器人建構 SDK 以及機器人目錄。

想要對智能機器人開發框架有更深入的了解,請看常見問題 FAQ 或是詳讀相關文件

//Build/ 2016 相關 bot 課程 – Building a Conversational Bot: From 0 to 60


原文翻譯至:Build 2016: Microsoft introduces its Bot Framework Bot Framework Overview

//Build/ 2016 – Windows 10 上執行 Bash 腳本指令以及 Linux Ubuntu 版本使用者模式執行檔

$
0
0

bash-windows-announce_0

詳細課程可以欣賞以下 Build 影片


如同大多數使用 Windows 10 的網站開發者,時常在瀏覽網頁時被一些新奇有趣的開源命令列工具所吸引而停下腳步,大多數的時候會見到下面的圖示:

根據過往,對於一般 Windows 使用者,”$” 的圖示象徵著這些工具與他們無關。

 

我必須要找到諸如

或者

的圖示。

理所當然的,不可能老是找到這樣可以操作的圖示。但在微軟的 Build 開發者大會上,Kevin Gallo 在 keynotes 的時候宣布,開發者將可以 “在 Windows 上執行 Ubuntu 的 Bash 命令列”。這將是其中一項隨著 Windows 10 “週年“ 更新檔一同發佈的新開發者功能(即將上市)。這項功能可以讓你在 Windows 作業系統上執行原生的 Linux 使用者模式命令列及指令工具。

先在 Windows 設定下開啟「開發者模式」並加入此項功能,執行你的 Bash 便能夠取得由 Canonical 開發商在 Windows Store 所提供的 “Ubuntu On Windows”,如下圖所示:

這並不是將 Bash 或 Ubuntu 執行在虛擬機上,而是真的直接由 Windows 所執行的原生 Bash Linux 執行檔。Microsoft 將實體的 Ubuntu 映像檔掛在 Windows 作業系統之上,並且附上大多數的 Linux 命令列工具諸如 awk, sed, grep, vi …等。執行起來十分的輕量快速。這些工具的執行檔需要由開發者使用 “apt-get” 來下載,一如既往在 Linux 上的操作方式一樣,因為它就是原生的 Linux。開發者可以藉由 “apt-get” 來下載其他的工具諸如 Ruby, Redis, emacs …等,這對一個慣於使用大量類型的工具的開發者來說,著實是一項非常驚艷的功能。

這項功能能夠在 64 位元的電腦上不依靠虛擬機來執行,對開發者而言,在哪些情境下 Windows 上的 Bash 能夠融入你的開發環境呢?

如果你想在 Windows 上執行 Bash,過往的你有幾個選擇:

  • Cygwin - 為了 Win32 而編譯且能夠與原生 Windows 作業系統底層完整整合的GNU 命令列,但並不算是 Linux 的一種。
  • HyperV and Ubuntu - 執行一個完整的 Linux 虛擬機(需求多少記憶體與儲存空間),然後使用遠端的方法連線存取(RDP, VNC, ssh)。
  • Docker 也是一個可以執行 Linux container 的方案,在 HyperV 的虛擬機上執行

在 Windows 上可以執行 Bash 這個方案可以說是對症下藥,他的使用情境就像一般在操作 Linux 一般,因為它就是真的在執行一個 Linux 執行檔,只要敲擊 Windows 鍵並鍵入 Bash 即可。

在你安裝完以後,執行 “apt-get update” 來下載一些開發者套件。我需要 Redis 跟 Emacs,便執行 ”apt-get install emacs23” 來獲取 Emacs。要也解到的是這個版本的 Emacs 就等同於我實際上從 Ubuntu 資源上獲取的 Emacs。

理所當然的,我不知道怎麼關閉 Emacs,所以我直接關掉視窗

要注意到的是這項功能並非聚焦在 Linux 伺服器或是 Linux 負載,而是聚焦在已開發者的角度出發,協助移除開發者在他們的工作流程上需要用到 Linux 相關套件或工具時,所遇到的困境。在這裡我使用了 apt-get 指令下載了 Redis 並使它運作已符合我的工作需要。

現在即可使用 bash 來執行 Redis,藉以輔助使用 Visual Studio 編程 ASP.NET 專案的時候會需要用到 redis cache。在這之後我可以藉由 Azure Redis Cache 的功能來將我的專案部署到 Azure 上,所以對開發者而言這樣形成了一個好的開發流程。

開始清單現在也變得很美呢!

可以多關注 http://blogs.msdn.microsoft.com/commandline 在接下來幾週可能提供的技術細節,接下來也會有更多能夠支援程式碼控管、ANSI、VT100 等底層作業的良好更新陸續釋出。目前這個功能還處於早期開發者版本階段,開發團隊也會持續收集使用者的回饋跟評論以繼續改良。能夠在 Windows 上運行 Ubuntu 這項功能也會在 Build Windows 10 之後陸續釋出。期許開發者以新奇試用即發現的心態來探討如何將 Bash on Ubuntu On Windows 這項功能導入你的開發流程!

 

本文原始發布於: Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10

//Build/ 2016 –宣佈以 Azure 管理服務發行 Parse Server

$
0
0

b6d3c5b9-1d96-4f1d-bb14-abe668009017

Facebook 在一月時宣佈 Parse,這個由成千上萬開發人員喜愛的開發平台將被關閉,震撼了行動開發產業。今天,我們很高興的宣布 Parse Server on Azure Managed Services,一個給 Parse 開發人員繼續他們的工作並集中於他們喜愛做的事物的簡單方法,藉由行動服務 Azure App Service 與 Notification Hub ,開發人員服務包含 Apache Cordova , Xamarin 與原生 iOS / Andriod 開發的支援,以及受管理的資料庫服務如 DocumentDB 來撰寫很棒的行動體驗。

我們使用了完全受管理的 Azure 服務建立了一個 Parse Server的實作並釋出到 Azure 市集中,依這個範本, Parse 開發人員將能夠容易的建置 Parse Server v2.1.4 於已事先整合好的Azure服務。

  • Parse Server v2.1.4 由 Azure App Service 提供。
  • NoSQL 資料儲存由 Azure DocumentDB 提供。
  • 推送通知功能由 Azure Notification Hub 提供。
  • Parse 數位儀表板整合至 Azure Portal 內。

這些服務為你的行動後台向前發展提供了一個最佳品種的體驗,你可以很容易的擴展你的服務給數百萬使用者。問問 Canadian Broadcasting Corporation 他們關於平台擴展與穩定性的體驗。你可以以我們的持續部署工具與預備環境朝向 DevOps 觀念,並且使用 HockyApp 取得 Beta 散布、當機分析與回饋的能力。

為了幫助你移轉你的 Parse Server ,我們提供了入門的 DocumentDB 特別優惠給 Parse 服務的客戶,於 Azure 嘗試 Parse Server 並且無須支付 DocumentDB 費用直到六月,若要取得本優惠的優點,使用市集範本來建置你的 Parse Server 。 DocumentDB 是一個提供擴展、高效能資料儲存給應用程式的 NoSQL 資料庫服務。客戶如 Next Games 已經使用 DocumentDB 來發行評比最高的 iOS 與 Android 遊戲如「陰屍路:無人之境 ( The Walking Dead: No Man’s Land. )」。

Azure 也有一個月的免費試用提供 200 美元額度以支付所有 Azure 服務。

移轉你的 Parse Service 到 Azure

移轉你的 Parse Service 到 Azure 有三個流程,首先,你將要使用我們的新市集範本設定你的Parse Server,然後,你將會由你的Parse Service移轉你的資料到你的新Azure服務,最後,你將更新你的行動用戶端以支援新服務。

部署新Parse Server

使用我們的新市集範本設定Parse Server on Azure比以往任何時候都容易。

  1. 登入Azure Portal。
  2. 按下側邊欄內的 “+ NEW” 按鈕 (中文介面是 “+ 新增”)。
  3. 在搜尋文字方塊中輸入Parse Server。
  4. 選擇由Microsoft發行的Parse Server on managed Azure services。
  5. 按下Create
  6. 跟隨畫面的指示建立新的Parse Server。

移轉你的資料

Parse 已經提供了詳盡的移轉指南,你將會需要讓你的 DocumentDB 執行個體可在 Internet 上使用,接著登入到你的 Parse 帳戶並移轉你的資料。你應該要在 Parse 宣布的四月底前計畫這件事,如果你沒有在 4 / 28 前移轉你的資料,他們將會將你的資料下架 ( de-prioritize ) ,這對一個已在生產環境的 app 來說不是好事。如何組態 DocumentDB 以為移轉作好準備的詳細說明可在我們的 GitHub 儲存庫中找到。

更新你的行動用戶端

在這個時間點你會有兩個 Parse 服務,原本執行在 Parse Service 上的服務以及執行在 Azure 上的新服務。你將會想要使用新的 URL 與應用程式 ID 更新並發行新的用戶端,這可能會涉及你的用戶端使用的 Parse SDK 。若要取得 Server URL 以及應用程式 ID ,請參考在我們的 GitHub 儲存庫內的詳細指示。

登入 Parse 數位儀表板

我們已經將 Parse 數位儀表板整合進 Azure Portal 管理體驗,你在部署完 Parse Server on Azure 時,這個數位儀表板就會自動提供。

下一步

我們知道你主要的關注點會在 Parse Server 的運行與移轉。在你的後台運轉時,你可以取得你可用的新設施,包含:

  • 學習你可用的新功能,如 Azure App Service 、DocumentDB 、Notification Hub 與 Storage 。
  • 使用 Application Insights 監控你的 Parse Server 與用戶端,以及使用 HockyApp 於用戶端。
  • 使用 Azure Mobile Engagement 獲取用戶寶貴的見解與參與。

 

本文翻譯自: Announcing the publication of Parse Server with Azure Managed Services

【敬邀參加】前進的力量 –創新應用開發大會 ~ 雲端與創新,模式與實踐

$
0
0

banner

 

opencloud

opencloud2

★5/9 企業創新實踐日 立即報名

為什麼您應該要來參加?

領導 Visual Studio 開發團隊、推動 .NET 開源關鍵決策者

微軟全球開發平台事業部資深副總裁 潘正磊 女士 再次來台!

將為各位分享微軟開放轉型之路與具體落實到互聯網企業的實踐。

同時邀請 亞太研發集團團隊微軟大中華區總部的技術專家 來台分享企業實踐第一手經驗!

時間 講題
09:00 – 09:15 開幕致詞
09:15 – 10:45 主題演說:雲端與創新,模式與實踐 微軟公司開發平臺事業部全球資深副總裁潘正磊女士
10:45 – 11:00 休息
11:00 – 11:45 Julia會客室:來賓現場答疑 - 邀請與會來賓,現場提問,進行互動交流 微軟公司開發平臺事業部全球資深副總裁潘正磊女士
11:45 – 13:00 用餐
分會場A雲端創新的模式與實踐 分會場B跨平臺開發的架構設計與技術 分會場CDevOps開發運維一體化的推動策略
13:00 – 14:00 A01雲端物聯網應用架構設計模式與實踐 - 使用Azure IoT服務構建端到端的物聯網解決方案 B01 前端跨平臺開發技術的應用與比較 - Xamarin、Cordova與C++ C01 用戶故事驅動的DevOps研發運維一體化
14:00 – 14:10 休息
14:10 – 15:10 A02 互聯網媒體服務的雲計算架構設計模式與實踐 - 使用Azure Media Service構建端到端的媒體視訊平臺 B02 運用.NET開源框架,提高前後端開發生產力 – 以知名互聯網平臺為例,以C#語言開發跨平臺的伺服器應用 C02 DevOps方式開發跨平臺移動app - 集成最熱門的Xamarin技術管理跨平臺移動開發
15:10 – 15:20 休息
15:20 – 16:20 A03 社交分析商務應用模式與實踐 - 使用HDInsight,搭配雲計算與微信社交分析服務,推動電子商務大資料應用 B03 企業級雲端應用的架構與模式 – 使用 Azure App Service 快速實現跨平台企業整合情境 C03企業級互聯網方式的應用開發管理 - 從 ALM 到 DevOps
16:20 – 16:30 會後答疑

主題演講來賓:

微軟公司 全球資深副總裁 潘正磊女士

1

潘正磊女士 (Julia Liuson) 目前擔任微軟總部開發平台事業部 (Developer Division) 的全球資深副總裁,她所帶領的團隊負責開發用於軟件開發與測試的工具Visual Studio 以及微軟的中間件 .Net Framework,包括Visual Basic.NET、C#.NET 等所有的編程語言,用戶界面,以及團隊開發管理平台Team Foundation Server。微軟開發平台事業部的人才皆為一時之選,包括 Anders Hejlsberg 等全球知名的軟件開發大師。近來微軟開發技術積極走向開放與開源,潘女士是這個戰略的主要推手。

潘女士於1992年加入微軟,歷練多項全球範圍的技術和管理職位。她曾任微軟服務器和開發平台事業部的 Visual Studio 商業應用總經理,她所領導的創新,使全球開發人員可以輕鬆地構建業務應用程序。多年前她還同時擔任微軟亞太研發集團服務器與開發平台事業部 (中國)的總經理,管理在中國與美國兩地的研發團隊。

潘女士對於全球開發團隊的運籌、管理具備相當豐富的經驗,她也是敏捷軟件工程的實踐專家。

 

分會場 A:雲端創新的模式與實踐

A01:雲端物聯網架構設計模式與實踐 – 使用 Azure IoT 服務構建端到端的物聯網解決方案

要構建一個端到端的物聯網解決方案,需要涵蓋多種不同的科技與技術:從設備的連結到設備的管理、從資料的介面到資料流程的處理、從結構化的資料到非結構化的資料、從資料儲存到資料處理、從事件監測到資料的洞察,這些需要掌握大範圍的架構與服務設計的能力。本議程將深入分享來自于微軟亞太研發集團的第一手經驗,以集成式的觀點說明物聯網解決方案架構設計的模式與實踐,可以説明企業研發團隊大幅簡化構建一個端到端物聯網平臺的過程。本議程所使用到的技術與服務包括:Azure IoT Hub、Azure IoT Suite、Event Hub、Stream Analytics、HDInsight、Storm、Azure Storage、Azure Database。此外,這個參考架構模型也將提供如何設計命令與控制,以及如何進行即時監控的數位儀表板機制,我們也將會分享一些關於使用HDInsight與機器學習來萃取資料洞察的方式。

2專家講師:陳岩

現任職於微軟亞太研發集團雲計算研發中心的客戶諮詢團隊,之前擔任多年微軟私有雲解決方案開發工作。

A02:互聯網流媒體架構設計模式與實踐 – 如何使用 Azure Media Service 構建端到端的流媒體服務平臺

Azure Media Service 是一組功能豐富的 PaaS 服務,可以讓不同類型的組織去建立他們自己管理的線上流媒體平臺,無論是採用現場直播或是隨需服務。現在,微軟亞太研發集團將各種不同構建端到端流媒體服務的最佳實踐,總結成容易參考的模型。 您無需成為專家就能使用 Azure Media Service 搭建自己的流媒體服務。本議程將分享互聯網流媒體架構設計模式與實踐,包括Media ingression、Encoding、Dynamic Packaging、DRM protection、Indexing、Media Searching以及 sample Cross-device Players 等多種不同的技術。您可以學習如何運用這套流媒體的模式與實踐,根據您的實際業務需求,訂制合適的互聯網流媒體服務模式。

3

專家講師:鍾曜戎

現任職於微軟亞太研發集團雲計算研發中心的客戶諮詢團隊,曾擔任多年微軟 TechDay 及大型活動講者,有多次參與專案經驗,現在主要負責 Azure 媒體服務,Azure 資源管理,Azure 備份與容災等多項解決方案。

A03:社交分析商務應用模式與實踐 – 使用HDInsight,搭配雲計算與微信社交分析服務,推動電子商務大資料應用

本議程將涵蓋基於 Azure 的微信分析平臺的架構設計模式與實踐,並流覽一系列可以用來採集、儲存與處理社交分析資料洞察 (Social Analytic Telemetry) 的 Azure 服務。我們還會深入探討Azure Mobile Services、Azure Web Sites、Azure Social Engagement、Azure Storage、HDInsight的應用方式。此外,我們也將展示基於 Azure 的微信社交分析架構,並說明我們構建平臺所採用的框架與工具。最後,我們也會說明如何運用 HDInsight 分析並處理社交資料,並解釋如何使用HDInsight去提取資料,匯入到DMP場景。

4

專家講師:萬毅

現任職於微軟亞太研發集團雲計算研發中心的客戶諮詢團隊,曾擔任多年Office系列產品的開發工作,並參與開發了多個重要產品。

分會場 B:跨平臺開發的架構設計與技術

B01:前端跨平臺開發技術的應用與比較 - Xamarin、Cordova 與 C++

自微軟在上個月宣佈收購 Xamarin 公司以來並宣佈免費提供給 Visual Studio 用户,跨平臺移動開發頓時再次成為全面性的技術熱點。微軟 Visual Studio開發工具現在可以同時支援兩種橫跨移動端的開發框架,Apache Cordova 和 Xamarin,讓開發者可以僅僅使用一種工具,一種主要的程式設計語言,開發包括 Android、iOS 與 Windows Mobile 平台的原生 app 應用,大幅簡化開發團隊的技術成本,並提供良好的專案與代碼管理基礎。本課程會從一個簡單的移動端應用程式開始,比較兩種開發框架的異同和兩種開發框架的適用場景。

5

專家講師:李爭

現任微軟 (中國) 有限公司開發者體驗與平臺合作部技術顧問。目前專注於微軟公有雲 Azure平臺的解決方案架構設計等工作。在此之前,曾在微軟企業服務部作為原廠技術支援工程師工作四年,專注於開發者技術支援和 IIS的問題診斷、調優、培訓等工作。具有豐富的企業客戶臨場解決嚴重系統問題的經驗。李爭還是一名具有十二年授課經驗的微軟認證講師 (MCT)。

B02:運用 .NET開源框架,提高前後端開發生產力 – 以知名互聯網平臺為例,以 C# 語言開發跨平臺的伺服器應用

本課程會介紹微軟 .NET 技術的最新架構及發展路線圖,闡述 .NET面向現在跨平臺場景需求下的繼承與創新,並分享如何使用 .NET Core開源框架來實現前後端的開發一致性,提供開發生產力。我們也特別邀請來自網易的技術專家,展示在真實世界中,開源的 .NET Core 框架,如何可以有效的運行在Linux的伺服器平臺上,並在確認服務品質的前提下,大幅降低開發成本與提升服務水準。

0421

專家講師:周鋒

網易雷火遊戲事業部產品總監。早期在微軟亞太研發集團工作,歷任工程師、主管等技術角色。在微軟期間,主要從事Windows伺服器和開發工具的研發工作,對中大型軟體研發和工程團隊管理有一手的經驗和深刻體會。11年來到網易,進入遊戲行業任測試和產品總監,在網易的前幾年,經歷和參與過多款線上遊戲和手機遊戲研發、上線和營運,其中不乏倩女幽魂、西楚霸王等成功產品。後出任《絕代雙驕OL》的產品負責人,產品團隊中既有遊戲業界打拼近十年的老兵,經驗老到的外企管理人員,也有朝氣蓬勃的留學歸國精英,核心成員都有多年的遊戲設計研發經驗。團隊以生動有愛、務實拼搏的遊戲熱愛理念凝聚一堂,力求為玩家展現一個策略縱橫、輕鬆逗趣的絕代江湖。

tory

專家講師:徐玉濤

現任微軟 (中國) 有限公司開發體驗及平臺合作事業部高級技術顧問。徐玉濤先生在 IT領域內有超過10年的工作經歷,曾就職於多家知名 IT 企業並擔任技術推廣及合作的工作,積累了豐富的互聯網 / 移動互聯網、跨行業與系統平臺以及實施、諮詢、管理經驗。目前主要專注於研究微軟的下一代系統和平臺、互聯網及雲端運算技術、開發生產力及跨平臺工具等,致力於推動與微軟開發者生態及與國內企業的技術合作與交流,構建面向消費者市場、企業市場、ISV合作夥伴的整合開發體驗,涉及方向包括物聯網、移動消費者應用、AR / VR、大數據等。

分會場 CDevOps開發運維一體化的落地與實踐

C01:使用者故事驅動的 DevOps 研發維一體化

本議程將以使用者故事驅動的方式,帶領您走完一段 DevOps的實戰過程:

  • 設計階段:影響地圖和使用者故事地圖解決最終使用者和團隊溝通的問題,產生 backlog;
  • 計畫階段:使用 TFS進行多級別使用者故事和計畫的編制和跟蹤;
  • 反覆開發階段:使用 Scrum 的團隊模型和 Kanban結合每日立會的方式驅動團隊按照使用者故事進行交付;
  • 交付階段:建立發佈管道,連接開發 / 測試 / UAT / 生產環境,並配合分支計畫完成整個持續集成和部署的過程;

最後返回設計階段完成一個產品版本的開發循環。

6專家講師:徐磊

徐磊獲得微軟社群專家最高榮譽,大中華區社群技術總監 (Regional Director),除了多年的微軟最有價值專家、TechEd講師,他也是認證的 Scrum Master,一名寫了十幾年程式碼但還沒寫夠的程式工程師。徐磊 2005 年建立 SSW 中國研發中心擔任 Country Manager,帶領研發團隊負責多個大型產品和專案的研發工作。2015 年創立 Lean-Soft,專注於軟體工程、DevOps的解決方案諮詢。其客戶涵蓋從電信、能源、傳統生產製造、金融和電商等各行業,從 2005 年至今已經為超過 100 家企業提供過軟體工程方案的諮詢和服務。

C02:以 DevOps 方式開發跨平臺移動 app – 集成 Xamarin 技術

7專家講師:許豪

現任微軟 (中國) 公司開發平臺資深技術專家,負責微軟開發與測試技術的推廣和導入工作。致力於新興開發測試技術的研究,推動先進工具和方法論的導入和使用,為行業培養輸送新型人才。在加入微軟之前,曾任惠普 (HP) ALM 架構師、內訓講師;諾基亞 (Nokia) 手機測試經理;通用電氣 (GE) 測試技術專家。曾擔任上海市軟體行業協會榮譽講師。

C03:企業級互聯網方式的應用開發管理 – 從 ALM 到 DevOps

專家講師:黃承皓


【同場加映】

為什麼您應該一起參加?

  Azure App Platform 開發團隊首席 – Nir Mashkowski微軟全球黑帶技術菁英團隊

最新雲端應用服務直接演示給您看!

 

opencloud

opencloud2

★5/10 雲端技術開發 立即報名

時間 講題
09:00 – 09:30 報到
Track 1: Open Developers Track 2: Azure PaaS & SaaS
09:30 – 10:30 Xamarin跨平台行動裝置 App開發實務 Azure Cognitive Service:搶先認識微軟人工智慧的雲端加值服務,如何開發辨識語音、文字、人臉、情緒理解、物件辦識等API
10:30 – 10:45 中場休息
10:45 – 11:45 使用TypeScript駕馭Web世界的脫韁野馬 – 以 Angular 2 開發框架為例 Azure Mobile Engagement:充分了解 iOS、Android 與 Windows 行動應用程式用戶行為之Azure SaaS 服務,協助您增加App 用戶的粘著度
11:45 – 13:00 中午休息
13:00 – 14:00 當 Java 遇上 DevOps Azure App Service:輕鬆快速建置雲端網站和行動應用的 PaaS 平台
14:00 – 14:15 中場休息
14:15 – 15:15 利用 Mesos 打造高延展性 Container 環境 Azure Media Service:打造可擴充、支援多種播放平台與版權保護的媒體播放雲端平台
15:15 – 15:30 中場休息
15:30 – 16:30 Docker on Windows : 身為 developer 不可不知的幾件事 Azure API Management: 一管理與發佈API 的一站式解決方案

★注意★ 兩場活動地點不同

5/09【企業創新實踐】:台北市信義區信義路五段1號 – 台北國際會議中心 101 室

5/10【雲端開發技術】:台北市松山區敦化南路一段 108 號 – 富邦國際會議中心 B1

 

MSDN 論壇精選 (02/23 – 04/11)

$
0
0

123

MSDN 論壇  是一個可以讓開發人員自由提出問題、尋找資訊的好地方,歡迎大家多多利用,與社群中的同好們一同分享 Microsoft 技術資訊。

而我們會不定期整理論壇精選給大家,希望對您的學習有所幫助!以下為 2016 02/23 – 2016 04/11  的論壇精選,大家在閱讀時有疑問也可以直接加入論壇中討論喔。

現在只要到微軟社群之星學院問問題,就有機會月月抽好禮,參加請點這裡,我們更提供不收費線上課程 Channel 9 讓您尋求更多知識。

 

日期 主題
02/23  用 C# 取得多層不規則資料夾下的所有圖片路
 02/23  UserControl 主表單移動太慢的解決方法
 03/01  使用 Visual Studio 編寫 Universal 程式時出現的問題
 03/02  資料庫匯出後出現即將過期無法執行封裝
03/03  如何讀取 Javascript 傳回的值
03/05  關於綁定 list 到 datagrid 的問題
03/05  安裝 Visual Studio Community 2013 時發生問題
03/08  請問如何將 C++ 寫的 DLL 檔轉成用 C# 的 DLLImport 使用?
03/16  如何將 excel 檔案使用 asp.net 網頁匯入 SQL 2005?
03/22  關於 c# tcp sockets 的連線問題
03/22  ASP.NET MVC 取得資料庫 SP 資料回傳 model 是空的
03/23  請問 vc++ 2010 mfc 程式有辦法區分 Windows10 跟舊版的 windows 嗎?
04/01  請問如何非同步讀取較大的檔案,不讓UI執行緒被封鎖?
04/01  ASP.NET 5 MVC 使用外部 dll 檔錯誤
04/11  Button1按第2次時,無法清除textBox1的文字

跨平台行動開發神器,最熱門的 Xamarin 技術!

$
0
0

Xamarin 是一家針對 Mobile App 從開發、上架、維護的過程中,所需要的相關服務發展相當完整的公司。無論 Mobile App 是處在開發階段、測試階段、維護階段的哪個層面 (圖1),Xamarin 都有對應的相關服務來協助,讓我們的 Mobile App 能夠不斷地持續交付出越來越棒的版本給使用者。也就是說 Xamarin 能帶給使用 Xamarin 的客戶,一整套很好的 Mobile App 發展過程的經驗。

1
(圖1 – Xamarin 在 Mobile App 發展的各個階段所提供的服務)

(註1)

跨平台開發 Mobile App 的優勢介紹

在開發 Mobile App 的理想上,當然是能透過同一套 IDE 開發工具,統一的程式語言,就能開發出在不同平台上運行順暢的 App,會是讓人最開心的一件事情。所以若是用各家原生平台上 (e.g. iOS、Android、Windows…等) 的開發技術來開發 Mobile App 時 (圖2),就知道是不可能發生的這樣的事情。

2

(圖2 – Mobile App 在各家不同平台開發時所用的程式語言及 IDE 開發工具)

也就是因為這樣,常常會發生各個平台的 Mobile App 開發完整度上會有嚴重的落差,造成終端使用者在不同平台上轉換時,若使用同一個 App 產品的時候,會感到相當不愉快的使用者經驗。而對公司內部的開發團隊來說,也因為在不同的平台上寫不同的程式語言,就會造成團隊因此造了至少兩份以上相同的輪子。若是知道 Kent Beck 大師的人,應該就知道這樣是嚴重抵觸他在 Extreme Programming 當中,對於簡單的程式碼四項目標當中的 DRY 精神。這對於測試、除錯以及未來的維護來說,都會造成公司多餘且沉重的無形成本,更別說公司本來就必須要養好幾位開發團隊的人員,來處理不同平台的Mobile App開發,所以當有跨平台 Mobile App 開發技術時,對於發展 Mobile App 的公司來說,會是一個迫切需要的解決方案。

跨平台 Mobile App 的開發技術目前為止有相當多解決方案 (e.g. Web App、Cordova、Xamarin…等),其中的 Xamarin 這個跨平台 Mobile App 的開發技術,不僅對傳統上 Mobile App 開發時所遭遇上述的 DRY 問題可以迎刃而解之外,團隊技術人員也可以更專心在各個平台 Mobile App 的各項 Feature 開發上,而不是花時間重複造底層的輪子,讓整體的開發進展上能夠更有效率。而拿 Xamarin 跟其他的跨平台技術相比較時,Xamarin 透過原生二進位碼的轉譯方式 (e.g. AIO or JIT) 成 Native App 的結果,所以會比其他的跨平台技術有著更棒的先天優勢 (e.g.效能、第三方套件整合…等) (圖3)。

3

(圖3 – 各種跨平台開發方式的比較)

(註2)

透過 Xamarin 開發 Mobile App

在微軟所推出的號稱地表上最強的開發工具 Visual Studio 2015 當中,就已經有內建最新與最完整的 Xamarin 安裝 (圖4)。所以如果要在 Windows 的作業系統當中,透過 Visual Studio 2015 來使用 Xamarin 開發 Mobile App 的話,應該不會花太多額外的安裝功夫 (畢竟都要安裝 Visual Studio 2015 了不是嗎!?)。

4

(圖4 – 在 Visual Studio 2015 自訂安裝項目的選項)

而若是要在 Mac 的作業系統上來使用 Xamarin 開發 Mobile App 的話,就得先到 Xamarin 官網的下載網頁(見連結1)來下載 Xamarin 的一鍵安裝檔 (圖5) 來安裝,再透過 Xamarin 所設計的 Xamarin Studio (圖6) 這套專屬 Xamarin 的 IDE 開發工具來開發各個平台上的 Mobile App 的。

5

(圖5 – 在 Mac 的環境中 Xamarin 的安裝檔)

6

(圖6 – 在 Mac 的環境中 Xamarin Studio 開發 iOS App 示意畫面)

在 Xamarin 的開發環境安裝沒有問題後,我們先來認識一下若要採用 Xamarin 開發 Mobile App 的話,在 Xamarin 的兩大開發面向:典型 Xamarin 開發與 Xamarin.Forms 開發。

典型 Xamarin 開發

在典型 Xamarin 開發上,是讓 C# 的開發人員能夠直接透過 Xamarin 的協助,來建構 Android 及 iOS 上的 Mobile App。若是從 Visual Studio 的 C# 專案範本當中來看時,大概會看到 Android、iPad、iPhone、Universal、Extensions 與 Apple Watch 這幾個範本分類 (圖7-1~圖7-6)。

78

(圖 7-1 與 圖 7-2)

910

(圖 7-3 與 圖 7-4)

1112

(圖 7-5 與 圖 7-6)

透過這些 Xamarin 提供的專案範本,相信只要本身是 C# 的開發人員絕對都可以順利地建構出基本的 Android 或 iOS 的 Mobile App。C# 開發人員只要記得,在 Android 的 Mobile App 開發時,App 的架構觀念與 SDK 使用都跟 Android 的原生開發一致;在 iOS 的 Mobile App 開發時,App 的架構觀念與 SDK 使用都跟 iOS 的原生開發一致,但是是在寫 C#。
而 Xamarin 最重要的部分就這個時候,我們可以透過整體在軟體架構規劃的抽象化過程,將各個平台之間重用的程式部分抽取出來,形成共享程式碼或是可攜式類別庫的方式,來在平台的 Mobile App 之間共享與使用 (圖 8-1 與圖 8-2)。

1314

(圖 8-1 與 圖 8-2 Xamarin 共享程式碼與可可攜式類別庫的共用程式碼概念)

使用典型的 Xamarin 開發後,常常聽到會有很多類似以下的抱怨:但 Xamarin 在各個平台的 Mobile App 對於 UI 設計的部分又不能像 Cordova 這樣直接共用,還是得針對各個平台各設計一次 UI,根本是騙人,我們還是選 Cordova 好了。其實如果是看得懂箇中門道的開發人員,會對於類似這樣的抱怨瞭然於胸的,雖然 UI 很重要沒錯,但畢竟一個好的軟體不是只有 UI 介面,對於 UI 介面之後的運作程式才常常是一個好的軟體真正的重點,若這部分可以各平台之間共用,對於提升整體的開發效益與降低浪費成本,絕對都是有莫大的助益的,這也才是典型 Xamarin 開發 Mobile App 方式的真正核心價值。

但如果仍然是面臨到這樣正在氣頭上的抱怨聲音,無法體會典型 Xamarin 開發的核心價值的的人,而也因此想要採用 Cordova 的解決方案作為 Mobile App 的人,也許可以再看看下面 Xamarin.Forms 的開發介紹,想必是會讓人有耳目一新的感覺。

Xamarin.Forms 開發

如果是一個對於 Mobile App 的開發是沒有任何平台客制化的顧慮時,希望對於各個平台的 UI 設計只要設計一次,就可以在各個平台上產出 Mobile App,並且又希望產出的 Mobile App 的執行效果可以順暢無礙,然後因為 Windows 10 的市佔率越來越高,所以最好寫出來的 App 同時也可以有 UWP App 的產出。那 Xamarin.Forms 開發技術的採用,將可以一次滿足這三種期待的。

在 Visual Studio 的專案範本當中,可以見到有個 Cross-Platforms 的範本 (圖9) 當中,有 Xamarin.Forms (Portable)、Xamarin.Forms (Shared)、ClassLibrary (Xamarin.Forms) 的這三種 Xamarin.Forms 專案範本。

15

(圖9 – Xamarin.Froms 的專案範本類型)

在採用 Xamarin.Forms 的開發技術開發 Mobile App 的時候,無論是 UI 介面還是程式碼,都通通只要寫一份就可以。例如是採用 Portable 的那種專案範本的話,那建立好的方案架構下就會有一個專門撰寫共用 UI 介面與程式一個專案,我們所需做的事情,就是寫好之後,編譯整個方案就會編譯出各個不同的平台 Mobile App,或是去設定某個平台上的專案為執行的起始專案動作(圖10),針對某個平台上 Mobile App 做測試執行的動作。

16

(圖10 – Xamarin.Froms 的專案當中設定各個平台做測試執行的動作,圖為 Android 專案)

由於 Xamarin.Forms 在 UI 介面設計上是採用 MVVM 框架所設計的一套全新的 UI 介面設計,也極為類似 .NET 的 WPF 介面設計,在使用上可以透過 Property 與 Command 的 ViewModel 設定概念,將 UI 介面與邏輯程式碼的抽離,讓整個 Mobile App 的設計更加的有架構性。所以若對於 MVVM 架構不陌生,又很希望可以迅速建構出自己各個平台的 Mobile App 的人,歡迎趕緊來嘗試 Xamarin.Forms 開發技術。

若是有要打算讓公司的 Mobile App 能登上 Windows 市集讓 Windows 使用者下載使用的話,Xamarin.Forms 將是很棒的選擇。當建立 Xamarin.Forms 的開發方案時,就會發現 Xamarin.Forms 也有針對 Windows 10 的 UWP 做了整合規劃 (圖11)。所以只要在建立的好的 Xamarin.Forms 開發方案當中,再針對 Windows 10 的 UWP 專案作些微的設定,調整成符合 Windows App 市集的規範設定,就能迅速的將公司採用 Xamarin.Forms 開發出來的 Mobile App 在 Windows App 市集上架成功。

17

(圖11 – Xamarin Test Recorder 的 UI 測試錄製過程)

透過 Xamarin 測試 Mobile App

對於 Mobile App 的開發來說,最煩人的部分莫過於 UI 測試了。主要的原因是每個使用者的手機可能版本不同、可能螢幕大小不同、可能硬體規格差異很大,要做 Mobile App 的 UI 測試哪可能做得完(整)?!但在上文的內容介紹當中,各位一定知道 Xamarin 也提供對於 Mobile App 的 UI 作自動化測試的部分,而若是細心點的讀者,也應該在前面的圖9 當中就有出現 Xamarin.UITest 這個專案分類。沒錯,這個 Xamarin.UITest 就是針對前述的這些種種因素,導致於沒法測、沒空測、沒有測以及不想測…的這三沒一不的藉口,找到一條可行的康莊大道。

在 Xamarin 的官方網站當中 (連結2) 有推出一個協助我們錄製 Mobile App 的 UI 測試步驟的工具,名稱叫做 Xamarin Test Recorder。透過這個 Xamarin Test Recorder (圖12),就可

18

(圖12 – Xamarin Test Recorder 的 UI 測試錄製過程)

(註3)

以將這些 UI 測試的步驟錄製後,匯入成 Xamarin.UITest 用的測試程式碼,再匯入到 Visual Studio 或是 Xamarin Studio 的 UITest 專案當中,再進行測試重新播放或測試細微調整的設定等動作 (圖13)。

19

(圖13 – 在 Xamarin Studio 當中執行 Xamarin.UITest 的測試偵錯執行過程)

(註4)

透過 Xamarin.UITest 的協助對於 Mobile App 的 UI 測試的部分時,相較於過去只能用純手工的 UI 測試的方式,想必會對開發團隊在 Mobile App 的 UI 測試上,有大幅度的效益提升。

而有了前述的自動化測試動作後,在面臨手機規格百百款而造成 UI 測試的測試機種涵蓋率的問題上,則能透過 Xamarin Test Cloud 服務 (圖14) 將此痛點解除。有關於 Xamarin Test Cloud 的詳細介紹,可到  Xamarin Test Cloud 的服務介紹官方網站多加了解 (連結4)。

(圖14 – 在 Xamarin Test Cloud 當中測試眾多裝置 UI 測試執行結果查核)
(註5)

結語

在跨平台開發 Mobile App 的部分,Xamarin 挟著技術上的能達成 Native App 先天優勢,更提供了除了有典型 Xamarin 開發方式,讓開發者透過 OO、DP 等的抽象化技巧,達成多平台上共用程式的跨平台能力,也能再搭配 Xamarin.Forms 開發方式來達成單次開發多平台執行的跨平台能力,以求滿足各種開發者的跨平台開發 Mobile App 的需求模式。對於所發展的 Xamarin.UITest 的 UI 測試技術,對於開發 Mobile App 後也能有一套完善的自動化 UI 測試,這樣如此完善好用的一套 Mobile App 開發解決方案,不用嗎?!

參考資料

1. Xamarin官方網站

2. 昕力資訊(Xamarin大中華區正式代理商)官方網站

連結 1: Xamarin 下載

連結 2: Xamarin Test Recoder下載

連結 3: Xamarin Test Cloud介紹

註1: 圖片取自Xamarin官方網站首頁畫面

註2: 圖片取自昕力資訊公司的Xamarin介紹頁面

註3: 圖片取自Xamarin官方網站Xamarin Test Recorder介紹影片

註4: 圖片取自Xamarin官方網站Xamarin Test Recorder介紹影片

註5: 圖片取自Xamarin Test Cloud官方介紹網頁

 

對 Xamarin 心動了嗎? Xamarin 開發的 App 效能更是超越原生語言! 快來參加 5/9 2016 年度開發大會,將由大中華區技術專家為你比較各開發方式的優缺點以及 Xamarin 實際成功案例 Show 給你看!

banner

opencloudopencloud2

//Build/ 2016 – .NET 開發者大進化 –開源、跨平台神器 Xamarin 讓你免費變身全才工程師!

$
0
0

什麼是 Xamarin? 參考 跨平台行動開發神器,最熱門的 Xamarin 技術!

哇! 您能夠想像 .NET 平台會變成這個樣子嗎? 沒錯,的確是這樣!

在今天的 Build 2016 研討會中,我們發佈了一些令人驚訝的功能,這些功能讓許多人感到非常驚喜。如果您有線上收看研討會的廣播,您可以看到 Scott Guthrie 在舞台上玩的很開心。我們在 Build 2016 發佈的功能涵蓋的範圍從裝置到雲端都有,而且很多功能都是開放原始碼,另外也有很多免費的功能! 如果您是 .NET 平台的程式開發者,您可以花一點時間從我們發佈的功能中找到和您所使用的技術有關的新功能。如果您不是 .NET 平台的程式開發者,也可以花一點時間重新審視 .NET 平台!.NET 平台包含完整的應用程式開發工具、應用程式開發介面、以及支援使用不同程式開發語言的所有程式開發者使用的服務,協助所有的程式開發者建置各種不同型態的應用程式。

和 Xamarin 有關的新功能:

  • Xamarin 已經內建在 Visual Studio,包括免費的 Visual Studio Community 版都內建 Xamarin,支援使用 Visual Studio 的程式開發者建立 iOS、Android、和 UWP App,並上傳到各種 App 巿集進行銷售。
  • 和 Visual Studio Community 一樣,Xamarin Studio Community 是免費的。
  • Xamarin SDK (包括執行環境、函式庫、和命令列工具),將在未來的幾個月中發佈成開放原始碼。
  • Mono 變更成使用 MIT 授權條款,Mono 是 .NET Foundation 的組成元件,如同 .NET Core 一樣。

和 Red Hat 有關的新功能:

  • Red Hat 發佈免費的 Red Hat Enterprise Linux developer 版本。
  • Red Hat 提供 .NET 程式開發者網站,網址:redhatloves.net

和 .NET Foundation 有關的新功能:

  • .NET Foundation 啟動了 Technical Steering Group 群組,邀請公司正式參與,對 .NET 的發展方向發揮影響力並提供建議。
  • Red Hat, Unity 和 JetBrains 已經正式參與 .NET Foundation,成為 Technical Steering Group 群組的成員。

有興趣的讀者可以跟隨以下的推特以了解最新的發展:

11

Xamarin 可以無償使用

我們聽到很多關於 Xamarin 如何整合到 Visual Studio 與 Microsoft 的臆測或猜測,這件事確定成真,而且超乎大家的期望。Xamarin 已經內建在 Visual Studio 中,成為 Visual Studio 核心功能之一,但是卻不需要額外付費。甚至使用免費的 Visual Studio Community 版本的程式開發者也能夠使用 Xamarin 的功能。以後不會再有比這個更吸引人的理由吸引您下載 Visual Studio 並開始開發您的下一個 App。

12

如果您之前並不是從事開發 App 的工作,可能對 Xamarin 並不熟悉。Xamarin 是支援建置 iOS、Android、和 Windows 10 UWP App 的企業等級解決方案。支援程式開發者使用 C# 或 F# 程式語言,以及 .NET API 進行開發原生 App 的工作,讓 .NET 程式設計師設計的 App 能夠在 iOS 和 Android 裝置執行。如果您已經擁有 Visual Studio 2015,表示您可以直接使用 Xamarin 開發適用於多種裝置的 App!

您可以跟隨以下的推特,以了解 Xamarin 在開發跨裝置平台的 App 的強大功能:

13

支援多種平台及免費使用的 Mono

Mono 的授權條款已變更為 MIT 授權,而且也是 .NET Foundation 的組成元件。您可以自由地在任何想像的到的場合進行使用。Mono 已經有移植到多種作業系統和 CPU 處理器的版本,而且也已經被廣泛採用,包括 Xamarin 在內,以及桌上型應用程式、伺服器程式、以及遊戲程式等等。

14

我們將要發佈的新版本 Mono 會比現已發行的版本優良一些,使用 Mono 的 Xamarin 經過修正,並加入一些擴充功能之後變的更好。我們將要發佈的新版本將會內含這些修正。

說真的,採用 Mono,並發展一些令人驚訝的應用,您將會令 Miguel 感到快樂。

Red Hat 發佈免費的選項

Red Hat 和 Microsoft 携手合作,讓 Red Hat Enterprise Linux (RHEL) 系統採用 .NET Core 做為應用程式發展平台的第一選擇這一件事已經不是秘密。Red Hat 與 Microsoft 已經携手合作數個月之久,RHEL 平台對 .NET 有高度的需求,這個版本很快就會和大家見面,而 Red Hat 將會提供新的選項,支援在 RHEL 系統能夠更方便地使用 NET Core。

今天 Red Hat 發佈了免費的 Red Hat Enterprise Linux developer 版本,您可以到 Red Hat Developers 程式開發網站下載並安裝這個版本。您可以參考 Getting started guides 安裝手冊,將 Red Hat Enterprise Linux developer 版本安裝在 Virtualbox、VMware,或是 Hyper-V 虛擬機器。立即下載 Red Hat Enterprise Linux developer 版本,下載網址:Download

.NET Foundation 與 Technical Steering Group 群組

投入 .NET 陣營的公司的數量日益增加,其中有許多公司不斷地增加對 .NET 的投資,包括 Microsoft 自已。這些公司曾經告訴我們,他們想要更加投入,以便影響 .NET 平台的發展方向,特別是和基礎設計相關,會影響每一個人的課題。.NET Foundation 顯然已經變成資訊界有關 .NET 平台的事務的對話平台。

Technical Steering Group 群組是一個正式的組織,而且是 .NET 平台產品開發團隊的延伸。群組中的所有成員都是 .NET 產品團隊的一份子,負責主導 .NET 平台的路線,互相審核 .NET 平台的設計,並以開放原始碼專案的方式分享資訊。我們的目標是要引入 Technical Steering Group 群組的成員做為審核 .NET 平台設計的基石。

這個群組的成立是因為 .NET 平台已經變成很多企業的關鍵營運平台,所以我們需要更多來自客戶的聲音。這個方向並不會影響 .NET 平台的產品團隊持續與開放原始碼社群合作的策略。事實上,成立這個正式的群組有助於 .NET 平台產品團隊與開放原始碼社群合作地更好。

成為 .NET 平台程式開發者的好時機

現階段是成為 .NET 平台程式開發者的良好時機,您可以使用功能強大的開發工具開發跨平台的 App。事實上,借助 Microsoft與越來越多的公司的力量,您將會更有機會建置偉大的 App。現在就下載 Visual StudioXamarin Studio、或 Visual Studio Code、利用各種不同的作業系統開始發展各種類型的 .NET App 吧!

本文翻譯自:.NET at Build 2016 – Open, Cross-platform and FREE

 

想知道更多關於 Xamarin 的故事?快來參加 5/9 – 2016 年度開發大會,將由大中華區技術專家為你比較各開發方式的優缺點以及 Xamarin 實際成功案例 Show 給你看!

banner

opencloudopencloud2

搶鮮體驗 Salsa –從 Visual Studio “15″開始推出的新 JavaScript 語言服務

$
0
0

我們很高興為您介紹一個在 Visual Studio “15″ 預覽版本中推出,代號「Salsa」的新 JavaScript 語言服務,在開發工具中,語言服務負責處理像是語法高亮度顯示、語法完成列表、函數型態說明、以及其它與處理程式語言特色的相關功能,Salsa 為目前在 Visual Studio 裡使用的 JavaScript 語言服務做了許多強化,像是支援模組參考、完整的 ES6/ES7 語法、以及 JSX 等等。

為什麼需要一個新的語言服務?

目前在 Visual Studio 中編輯 JavaScript 程式碼會為語言服務啟動一個執行模型,基本上,當你輸入一些程式碼時,背景有一個 JavaScript 引擎會不斷執行你的程式碼,藉此提供接近執行階段精準的語法提示列表、函數型態說明、以及其它的功能。這樣的設計對處理語言動態的部份很有用,但這也為語言服務這部份的功能帶來更多的複雜度以及不一致性,舉例來說,這個在背景執行的 JavaScript 引擎可能會因為一些過長的操作像是深度巢狀迴圈或是 http 呼叫而 timeout,這都會影響到 IntelliSense 的功能。

Salsa 使用了與 TypeScript 用來推測物件型態相同的靜態語言分析功能,透過這個新的語言服務,我們希望達到幾項目標,首先,靜態語言分析為不同設定的 Visual Studio 中 JavaScript 程式碼帶來了一致的行為,以減少解決這些環境的問題;第二,利用 TypeScript 既有的型別定義可以強化 JavaScript 程式碼的編輯體驗;第三,支援更新的 JavaScript 語言標準如 ES2016 甚至是 TypeScript 目前已支援的 ES2016 以及往後的標準;最後,我們可以更簡化我們的程式碼並加快版本迭代速度提供更新的功能。

在 Visual Studio “15″ 預覽版中啟用 Salsa

因為是預覽版本,所以 Salsa 在預設情況下並沒有被啟動,如果想在 Visual Studio “15″ 預覽版本中啟用 Salsa,您可以複製下列程式碼,然後存成本地檔案 salsa.reg,接著執行它來更改系統登錄檔,重新開啟 Visual Studio “15″ 預覽版後就會生效了(您可以自行切換數值 00000000 為關閉 00000001 為開啟 Salsa 的功能)。

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\15.0\TypeScriptLanguageService]
"UseTypeScriptExperimental"=dword:00000001

Salsa 所提供的新功能

ES6 以及 CommonJS 模組支援

Salsa 已經能夠處理 ES6 以及 CommonJS 模組的語法(這兩個是我們 UserVoice 上最多人想要的功能),這樣一來我們便能跨模組提供 IntelliSense 的功能。

假設有個檔案 math-util.js 內容是:

/**
* Returns square of a number.
* @param {number} x Number to square.
*/
export function square(x) {
  return x * x;
}

而在其它的 JavaScript 檔案中引入這個模組時,一樣能夠完成語法提示:

支援 JSX

Salsa 加入對 JSX 語法大量的支援,包括在 JSX 元素中語法上色以及自動完成,這些都大幅提昇使用現代化使用 JSX 的開發框架(如:React)的程式碼編輯體驗。

從 TypeScript 定義中處理資料型態

由於這個新的語言服務核心也用來強化在 Visual Studio 中使用 TypeScript 的語言體驗,所以 Salsa 同樣也能利用大量由 TypeScript 社群所貢獻的資料型態定義檔,其中包含了許多知名的 JavaScript 函式庫及開發框架。這些資料型態的資訊以 TypeScript 定義檔案的型式 (.d.ts 檔案) 儲存,而 Salsa 就能夠根據這些定義來處理 JavaScript 程式碼中的資料型態問題。

在預設的狀況下,Salsa 語言服務會嘗試偵測使用的 JavaScript 函式庫為何,並且自動下載對應要參考的 .d.ts 檔案,想要瞭解更多這個功能的訊息,可以參考我們在 GitHub 上的 wiki

計劃中發展的功能

我們正在努力的其中一項功能是能加強語言服務自動判斷資料型態,目前的實作是藉由一併釋出的檔案以及第三方函式庫,這還不是最好的作法,我們希望由語言服務自行判斷資料型態以減少對第三方函式庫的依賴,而讓這項功能表現得更順暢。同時,我們也在加強支援 JSDoc 規格的支援像是加入 @constructor 以及 @typedef。您可以在 GitHub 上的 issues 中看到我們正在進行哪些項目。

值得一提的挑戰

既然 Salsa 是一個全新的語言服務,有幾項功能我們做了一些調整,其中一項改變是這個語言服務不再使用 VSDoc 的註解格式,而是使用 JSDoc 格式,這能更容易讓 JavaScript 開發人員理解。另外一個與舊的語言服務不同的地方是擴充性的模型,在 Salsa 中不再讓使用者開發自訂的語言服務擴充套件,而是希望社群以及開發能量與 TypeScript 整合。

請給我們建議

如果想要膫解更多關於 Salsa 的深入內容、功能解說、或是特定功能的行為,您可以參考我們在 GitHub 上的 wiki: Using the Salsa Preview in Visual Studio 15 Preview

Salsa 的終極目標是提供一個可靠、用起來愉悅的 JavaScript 編輯體驗,不過我們還有很多工作要完成才能達到這個目標,同時我們也誠摯地希望您下載 Visual Studio “15″ 預覽版本 試一下 Salsa ,然後讓我們知道您的想法以及任何對 Salsa 的建議。


本文翻譯自: Previewing Salsa – the New JavaScript Language Service in Visual Studio “15″

//Build/ 2016 –和開發人員對話,擁抱開源、貢獻社群

$
0
0
全球的資訊科技一如既往生氣蓬拔的發展著,不過在近幾年來,微軟將與開發者之間的話題逐漸聚焦在三個議題上。
第一項議題便是:微軟正在擁抱開源社群與技術。在過往,開發者往往僅熟悉於單一平台上,例如 ”純微軟開發環境“、”純甲骨文開發環境“、”純 Linux 開發環境“以及”純蘋果開發環境“,但今日的開發者早已習慣於跨平台間的開發。因此當微軟在與一些並非傳統的合作企業開始合作時,便驚艷了大多數的人。如今,在我們更加深耕於擁抱開源這項議題的同時,除了少數的驚艷外更多我們的合作夥伴更受惠於此項策略。這項深刻的文化轉變可以由我們與 SalesforceBoxRedHatDockerMesosphereDropbox 的合作以及我們投入在 iOSAndroid 以及 Linux 上的努力得到證實。
針對第二項議題,在前述發展中的願景下,我們將致力投注更多微軟的技術與資源。我們藉由聚焦及分析橫跨 Windows, Office 以及 Azure 的開發者最重要的需求,並以釋出更多的產品實情成為建立與開發者聯繫的最佳方式。
至於第三項議題,也是我們現在正努力在執行的,便是開始提升更多的曝光以及參與度。當我們提升了我們與開發者以及社群直接或間接地接觸後,便也發現這些參與後的回饋正逐漸在發酵著。我們在社群活動中與開發者一同撰寫程式碼,也在黑客松中協助我們的夥伴處理那些困住他們的棘手技術挑戰。這樣的努力不僅有助益於社群,也協助了我們產品開發團隊能夠更快且又效率的收集更多的回饋,並建立起更佳高品質產品。我們的合作關係(包含今日以及過往曾在 Build 大會上發表過的夥伴),將展現我們近來努力的成果。

次世代生產力工具

藉由雲端的蓬勃發展,Office 以及 Microsoft Graph 開發者如今能夠針對常見的生產力工具使用情境,重新定義出更佳的見解以及協作概念。在我們所有的合作夥伴中,Highspot,一家 產品銷售能力開發的獨立軟體開發商,展現出擁抱微軟的生產力的最佳範例。他們逐漸地拉近自己與微軟技術的距離,以非常務實的方式,將他們的方案逐步的投注到客戶每天的生產力工具 — Office 之上,藉以使客戶逐漸習慣於他們產品的使用。Office 支援許多第三方的企業夥伴,包含 Dropbox、Box等等。
除此之外,Highspot 傾向於以 Office 插件的形式更加深入的與 Office 整合。這次大會我們將展示我們去年便有介紹過的新一代的 Manifold.JS。我們將展示 Highspot 是如何藉著這項工具將自家的其中一個網頁自動化的生成一項 Office 插件,以及介紹可以協助在撰寫 Office 插件時偵錯的 Vorlon.js ( 另一項去年 Build 大會上介紹過的技術 )。去年我們曾經在我們的專題演講上介紹過 PowerBI,今年我們也將展示 Highspot 是如何使用 PowerBI 的其中一項新功能 — 嵌入 Power BI 以協助搜集資料,並給予終端使用者工具協助其能夠解析資料並解決他們的問題。
溝通是促進進步的關鍵,因此在次世代的生產力解決方案上,微軟將發展“溝通及平台”的概念。行動裝置化的使用情境興盛,解決了人與人之間溝通的障礙,但我們將目標放在更遠的前景 — 讓使用者的裝置能夠以有意義且智慧化的回話來與使用者溝通。時至今日已有許多人們用來協助交流聯繫的工具,包含電子郵件、簡訊、Skype、Slack、Telegram等等。那為何不再多增加一個智能回復機器人?我們開始著手於研發一個 Highspot 機器人,其功能包含使用者在寫下一些東西的時候,他能夠做一些簡單的回覆。無論如何,機器人將在其能夠達成更多智慧化的行為後,大幅提升它的價值。藉由使用 Highspot 本身提供的資料,以及 Bing 還有一些認知服務的協助,如今使用者已經能夠在操作 Highspot 服務的時候下達一些疑問並得到解答其疑惑的相關資訊了。
機器人不僅僅可以運用在一些有趣的生產力使用情境,單純本身也可以用來產生一些趣味。一些來自 Azure 以及微軟研究機構的開發者,便在 Murphy 計劃裡開發出一個與舊漫威漫畫 “What IF” 裡相似的對談式機器人。在與機器人的互動裡,例如輸入一句類似於 ”What if Scott Guthrie was a penguin?” 的語句,機器人的智能程度便能夠解析這個問題,靠著 Bing 去尋在相關的圖象然後藉由機器學習的方法偵測出臉部位置。從這樣的發法開始,開發者便可以僅專注在完成臉部對換的作業上。這個機器人架構以及認知服務給予開發者足夠的基礎建設去實作這些複雜的技術,讓開發者能夠更自在的專注在他們的產品或機器人的獨特價值上。
penguin

企業邁向雲端

 許多大型企業以矽谷模式為目標,導入高效率部署以及善用雲端擴張性佳的優勢,雲端服務正代表著這些企業在資訊基礎建設上的改變。它將這些企業的金融架構從原本的資金導向轉換成了營運導向,也大大影響了企業在成長中所需備有的技能。
重量級軟體 CloudFoundry 正是一項能夠協助企業方便部署的平台即服務技術,他協助企業先將自家的服務部署到私有雲上,並在他們準備好之後協助其部署到公有雲上。大型企業例如 Ford,藉由 CloudFoundry 這樣的服務能夠簡便地將其服務搬遷至 Azure 上。在一個雲端抽象化的世界,一般服務的資料往往散落在許多地方,因此關鍵便在於,如何讓開發者可以不需再撰寫第三方廠商的程式碼便可存取所有的資料。Rita Zhang 因此協助開發了 S3 proxy,一套可以支援使用者使用同一份放在 CloudFoundry 上的程式碼,便能從 AWS S3 以及 Azure Storage 上取得資料的系統。這套 S3 proxy 解決方案能夠在 CloudFoundry 上部署、管理以及擴展成內建的應用,也因此能讓更多的 apps 善用其功能。一部份的使用者在第一次接觸雲端的時候,會嘗試使用 CloudFoundry 的方案,因此藉由上述的這些例子,開發者能夠繞過 S3 Proxy 並直接的連接到 Azure Storage。
CloudFoundry-1024x538

客戶端及雲端創新

 在當前這個行動裝置/雲端優先的時代,隨身攜帶的裝置以及雲端的能力之間的結合,創造了許多獨特的使用情境。
時至今日,將大量的資料,諸如 3D 資產以及遊戲資料,在雲端上儲存以及運算已經是一件非常普及的事。所以的這些資料以及服務將依據需求去解析,並得以在最後將結果輸出在客戶端的裝置上,使其可以方便操作及使用。Aveva Engage,一項我與 John 所展示的計畫,便是一個很好的例子,我們會在之後闡述更多與其相關的說明。
許多的經驗都是由資料的表象特徵所驅動的,其中一項便是擴增實境。Vuforia,目前是 PTC 企業的一部份,同時也是當前最熱門的開發者擴增實境平台之一。超過 200,000 的開發者使用了 Vuforia,也開發出下載總量超過兩億五千萬的應用程式群。微軟也與 Vuforia 合作,將平台上的應用帶到通用 Windows 平台(UWP)上,這樣的合作關係也創造了一項非常有趣的產業設備型錄。
產業龍頭 Caterpillar 在 UWP 的支援下創造了新的契機,促使他們能夠重塑自家的產品型錄以及銷售體驗,將原本僅僅是紙本的體驗轉換成 3D 的模型。透過 Windows 10 的平板可以讓商品活過來,並讓使用者能夠透過不同的角度甚至從內部去檢閱整個商品模型。商品模型亦可透過轉譯變成文字並存入 3D 的註記內。
上述的情景就是一項通用 Windows 應用,除此之外,由於 HoloLens 本身也是一項預載 Windows 10 的裝置,因此也可讓相同的 app 運行在 HoloLens 上。其之所以可能乃是透過 HoloLens 所提供的容積 APIs,以及 API Vuforia 將模型固定在場景空間。這便是其中一項開放開發者實作 UWP 後,便可讓使用情境在多項裝置上可以呈現的例子。
Vuforia-Caterpillar-1024x576

新世代的開發者們

 在 Redmond 的眾多學校裡,我們在與越來越多的學生開發者互動時發現他們對微軟技術的期許與熱情,我們可以想像新世代的開發者們在針對未來所做的創新前景。微軟相信學生必須從小便融入在 STEM 教育下,也為此投注資源讓學生們能夠享用這樣的教育。
Quest Institute 的 Danny Kim 在過往五年的期間,協助了學生們將總計 74 組的實驗放到 國際太空站(ISS)上。Kim 期許能從原本每年的10至20個實驗數擴展到每年200至300個。但如果需要有這樣的進展,他需要一個新的實驗平台,一個可以讓學生們不需要去設計電路板或使用限制要求高的語言(例如 P-Basic)。除此之外,在宇宙中運行的實驗還須面對特別的環境考驗,諸如因溫度或壓力的波動而產生的物理需求。
為了因應上述需求而產生最新的一套軟體平台,提供了更簡易的開發環境/SDK、一套 Minnowboard Max 運算平台以及一項能夠客製化(也將很快被開源)的 shield 以對應到 Minnowboard Max 上。整個團隊使用 Windows 10 IoT 來監控整個平台以及管力在地球上的實驗。一個由 Megna, Mihir 以及 Micah 三位來自 San Jose 的 Valley Christian Schools 的八年級生所組成的團隊,將透過這個由 Quest 以及微軟所研發的新平台來發射第75號實驗,藉以實驗在太空中的電磁力,他們的實驗將在今年的五月31號發射至國際太空站(ISS)上。
Quest-Space-Students-1024x526

今日總結

 我們在今天的 Keynotes 上討論了許多議題,也有更多的議題有待我們去討論。別擔心你錯過了任何一小部分的 Keynotes,他們將會在 Channel 9 上重複播送。
今天的 Keynote 至此已算到了尾聲,但在 2016 Build 大會上我們還有提供更多的議題。議程會一直延續至禮拜五結束,我們也會同步持續地將影片藉由 Channel 9 播放。大會活動結束之後,許多我們的專業人士會繼續藉由 Build 2016 tour 這項計畫,將在 Build 上釋出的新技術內容散播到全球各個據點,並得以和那些沒有辦法出席這次 Build 大會的開發者持續交流。
儘管 Build 大會是微軟的年度開發者盛事,但它也僅僅是我們與開發者之間一部份的互動對談而已。我鼓勵各位去參與我們的議程、下載工具以及探索我們的平台。也可以透過追蹤這個部落格以及 @msdev 來獲取更多與今天我們所分享的相似的合作夥伴故事。
期許與你們一起建構美好世界!

5/9 【前進的力量 – 創新應用開發大會】 邀請到 領軍 Visual Studio 開發團隊、.NET 開源決策關鍵者 – 潘正磊 (Julia Liuson) 女士,來台解密微軟轉型之路與具體落實的分享,如果您希望與 Julia 來場對話,請千萬不要錯過這場年度盛會,我們將會安排現場來賓直接 Q&A,微軟開放的願景與實踐將不藏私完整呈現。

banner
opencloudopencloud2

超越現在,跨平台行動 App 開發的大未來 –開源、開放的 Xamarin

$
0
0

自從 Xamarin 加入 Microsoft 不過短短一個月,這段時間發生的實在是非常驚人,自從 Scott Guthrie 在 //Build/ 2016 上宣布 Xamarin 現在是所有 Visual Studio 版本的一部分,而且完全免費使用! – 從 Community 到 Enterprise 版本 – 以及我們計畫開源 Xamarin SDK。我們期待將 Xamarin 的力量賦予所有開發人員的夢想終於成真。

比起過去使用 Xamarin 開發的工程師人數,Build 結束後的短短兩周內,我們幫助了接近3.5 倍的工程師們開始透過 Xamarin 建置優秀的 app。

我們正在奧蘭多舉行 Xamarin Evolve 2016,世界上最大的跨平台行動開發研討會。今天早上我們開源了 Xamarin SDK 並且發布了新的途徑讓 Visual Studio 變身最完整的行動開發環境。我們發佈了新的功能讓建置原生、跨平台 app 遠超過以往速度,在我們最受歡迎的跨平台 UI 框架 Xamarin.Forms 上。

這是我們第三場 Evolve 研討會,但卻是第一次我們展現了無所不包的開發體驗,這是只有 Microsoft 和 Xamarin 結合才有辦法提供的。

開源 Xamarin: 為您準備好了!

我們正式開源並且貢獻 Android、iOS 與 Mac 的 Xamarin SDK 給 .NET Foundation,與 Mono 專案一樣在 MIT 授權下。包含了原生 Android、iOS 與 Mac 的 API binding、建置這些平台必備的命令式工具,以及 Xamarin.Forms – 我們最受歡迎的跨平台 UI 框架。

看著 Xamarin 創辦人與開源先鋒 Miguel de lcaza 宣布開源,對我們來說是個多麼驕傲的時刻。原生跨平台行動開發的未來現在正在每位開發人員手中啊! 我們期待看到您的貢獻,快到 open.xamarin.com 成為一份子!

Visual Studio: 你最完整的行動開發環境

今天我們宣布新穎簡單的方式連接 Visual Studio 和您的 Mac,讓 C# 開發人員創建原生 iOS app,以及在 Visual Studio 中自動產生 app 測試腳本。

我們的 iOS Simulator Remoting 讓你在 Visual Studio 中模擬與互動 iOS app – 甚至支援具備觸控螢幕的 Windows 機器使用多點觸控互動模式。我們也揭曉了 iOS USB Remoting,只需插入您的 Windows PC 便可讓您在 Visual Studio 部署與偵錯 app 到 iPad 或者 iPhone。

此外,我們的 Test Recorder Visual Studio Plugin 現在把 Test Recorder 的產生測試腳本能力也帶給了 Visual Studio 使用者。輕鬆地與您的 app 在實體裝置或者模擬器上互動,Test Recorder 自動產生的腳本還能在 Xamarin Test Cloud 數以千計的裝置上跑。

Xamarin.Forms: 更快更簡單的行動應用程式開發

我們幾年前發佈了 Xamarin.Forms 幫助開發人員快速的建立行動 app,最大化 UI 共用程式碼的同時仍然擁有完全原生的體驗。

今天,我們展示了 Xamarin.Forms 即將現身的三大新功能。 Data Pages 與 Themes 讓您更簡單的連接 app 到一般 entities 與 data sources,以及僅需幾行程式碼即可創建美麗、原生的使用者介面。Forms Previewer 提供即時的預覽由 XAML 組成的使用者介面,讓您簡易的檢視您的 Xamarin.Forms 介面設計。

新。行動最佳化的開發生命週期

任何地方皆可取得,透過結合微軟與 Xamarin 各產品線,包括整合 Visual Studio Team Service、HockeyApp 與 Xamarin Test Cloud,我們今天才能展現最現代化的行動生命週期。透過我們聯合的行動生命周期解決方案,您現在可以擁有完整建置大規模的優秀 app、應付 DevOps 在行動上獨特的挑戰。

Blog-Graphic-2-640x270

我們已經聽到客戶們瘋狂的熱情了!Bloomin’ Brands 資深企業架構總監 Bryan Hooper 表示 “Xamarin 和微軟 Azure 技術結合,我們對兩個組織的新關係感到非常興奮!”可口可樂資訊系統服務的副總裁 Darrell Thompson 說 ”微軟與 Xamarin 一直都是我們傑出的夥伴,並且將我們的行動開發帶到了一個全新的水平”。

了解更多

想知道更多關於 Evolve 宣布的部分,請參考 Xamarin Blog,並且今天和明天持續關注 Xamarin Evolve 2016 直播。尤其別錯失了閉幕議程,由 Steve Wozniak 和 Miguel de lcaza 分享他們對於應用程式與軟體開發的未來的見解!

如果我們在短短六周內就釋出了這些給您,試著想像看看六個月後您能做到什麼在 Xamarin 與 Microsoft 的合作之下。

 

本文翻譯自:The future of mobile app development

 

想知道更多關於 Xamarin 的故事?快來參加 5/9 – 2016 年度開發大會,

將由大中華區技術專家為你比較各開發方式的優缺點以及 Xamarin 實際成功案例 Show 給你看!

banner

opencloudopencloud2

Viewing all 136 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>