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

【敬邀參加】2015 Microsoft DevOps Day 團隊開發日

$
0
0

2015 Microsoft DevOps Day 團隊開發日

立即報名 << 12/5 (六)12/7 (一)>> 同一主題兩個場次,任君挑選!

        您的團隊能很快地因應市場及使用者需求的改變加速改版嗎?您對目前團隊開發效率滿意嗎?無論您是來自大型企業、新創公司或獨立軟體開發商的研發團隊,無論您是團隊領導者或開發人員,都應了解如何建立出好的團隊開發及系統維運標準,積極擁抱改變,是追求團隊卓越的第一步!

在這個求新、求快、求變的世代,您千萬不能錯過 2015 Microsoft DevOps Day 團隊開發日,我們將為您呈現:

  • 海峽兩岸實務案例研究:從中國互聯網浪潮下的企業 DevOps 轉型成功模式,探討台灣企業研發實力升級應具備之 DevOps 戰略與戰術!
  • 從專案思維轉變成產品思維:從組織設計、開發流程兩方面,探討如何依托工具平台快速完成轉型!
  • 微軟 DevOps 轉型的實戰經驗:作為全球最佳實踐之一,分享微軟 DevOps 轉型的獨家 Know-How!
  • 運用雲的力量加速開發:精采的 Demo 讓您更深入了解如何駕馭雲的力量實現開發維運一體化!
  • 來自微軟全球 Visual Studio Connect(); 開發者大會所宣布的第一手技術消息與改變!
dot
 
 
 
dot
 
忍者
           時    間
                                                   主   題
09:30 - 10:20
                               微軟研發團隊 DevOps 轉型的實踐與經驗
                            微軟大中華區開發工具高級產品經理  胡德民
10:20 - 11:10
                             中國互聯網大潮下企業的 DevOps 轉型挑戰
                                     微軟大中華區社群技術總監  徐磊
11:10 - 12:00
                           推動臺灣企業研發實力升級的 DevOps 新思維
                                    微軟大中華區特聘技術顧問 李智樺
12:00 - 13:30                                                      午          休
 dot
 
 
時    間戰術篇 (7A 會議室)戰略篇 (7B 會議室)
13:30 - 14:30
台灣微軟技術支援經理  邱英瑞
微軟大中華區特聘技術顧問  董大偉
14:30 - 14:50休息
14:50 - 15:50
微軟大中華區社群技術總監  徐磊
微軟大中華區開發技術專家  莊俊乾
15:50 - 16:10休息
16:10 - 17:10
微軟大中華區開發技術專家  莊俊乾
微軟大中華區特聘技術顧問  李智樺


講師及議程介紹 

 

微軟大中華區開發工具高級產品經理  胡德民

        專注於敏捷開發、雲計算與企業移動的應用,以及兩岸三地企業研發體系的敏捷轉型。具備 16 年 IT 專業服務經驗,歷任程式設計師、項目經理、講師與技術顧問,並在 IT 產品規劃、市場戰略與生態系建立有豐富的經驗。於 2004 年加入微軟公司,參與 Visual Studio 2005、2008、2010、2013、2015 版本產品上市發佈。在工作之餘致力於寫作、攝影、旅遊與閱讀。

講述主題:微軟研發團隊 DevOps 轉型的實踐與經驗

        如何讓一向專注在開發與測試工作的研發人員,去參與運營維護,打破開發與系統運維團隊之間的隔閡?本議程將有第一手經驗總結與分享。負責 Visual Studio 與 .NET 技術開發的微軟開發平臺事業部 (Developer Division) 團隊遍佈全球,成功推動了 DevOps 轉型工程,打破專業與溝通的藩籬,讓規劃、開發與測試、發佈上市等環節可以透過緊密溝通,簡化原本的繁複流程並確保計畫執行落實,縮短產品更新與上市速度。

微軟大中華區社群技術總監  徐磊

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

講述主題:中國互聯網大潮下企業的 DevOps 轉型挑戰

        本議程將分享來自微軟中國多個核心企業客戶的 DevOps 轉型挑戰與模式,希望帶來不同的視野,見賢思齊。中國互聯網企業在全球都激起了創新商業模式的風潮:運用無遠弗屆的互聯網特性,在人人片刻不能離身的移動裝置上,不僅僅是傳播訊息、激發需求,甚至瞄準傳統商業模式環節中低效的部份取而代之。影響所及,客戶消費習慣改變、通路成本增加、營運團隊跟不上線下轉移到線上的節奏,當前企業應如何因應來自互聯網的巨大商機與嚴峻挑戰?「互聯網轉型」在中國已經是生與死的命題,舉凡零售業、金融業、流通業、製造業等莫不積極啟動轉型工程,企圖跟上互聯網發展的快速腳步,研發團隊在其中扮演了轉型發動機的重要關鍵角色,與 IT 維運團隊的一體化協作 (DevOps) 更是不可或缺的加速器。

講述主題:教戰守策 - 中國企業大型研發團隊 DevOps 轉型的平台功能規劃

        本議程將通過歸納企業實戰案例,徹底說明多個中國大型企業引入「微軟 DevOps 管理平臺」和諮詢服務的決策過程,以及導入上線 1 年以後,企業整個開發戰力有了哪些變化和改善。本議程並接受現場來賓提問,交流心得。中國某大型金融企業,存在近 100 個核心 IT 系統,開發團隊規模近千人,研發模式採用自主開發和外包等混合模式;使用的技術也多種多樣,有 .NET、Java 及協力廠商的企業 ERP 等系統;開發團隊內部,存在多種 ALM 工具,團隊之間交流溝通基本靠「吼」(會議);決策階層看不到團隊工作狀況,業務部門看不到需求處理進度,研發團隊加班頻繁,工程師個個「亞歷山大」:面對日常工作已經疲於奔命,「敏捷轉型」更是無從談起。這是許多企業共同面對的困境。

微軟大中華區特聘技術顧問 李智樺

        擁有超過 30 年的軟體發展工作資歷。從早期的大型銀行系統到近年來專注於微軟各項新技術的研究,是微軟 Microsoft Azure 雲端及其它新開發技術的指定講師,擔任兩岸多屆 TechDayTechEd 等大型研討會主場演講。過去是資深的開發人員、大型系統及企業的總架構師,有長期同時帶領多個團隊的 Scrum Master 進行大型專案的經驗。Ruddy 老師對資訊技術的熱誠及堅持,至今仍對新技術的 Hands-On 不遺餘力,是少數擁有如此豐富資歷、又能講、能教、隨時能上手的資訊界老兵。

講述主題:推動臺灣企業研發實力升級的 DevOps 新思維

        本議程將徹底剖析一般台灣研發團隊常見的難點與痛點,並結合講師個人豐富的諮詢經驗,以及對海峽兩岸互聯網新興產業研發模式的深入理解,企圖為與會來賓勾勒出一個推動臺灣企業研發實力升級的 DevOps 新思維。台灣的企業在軟體工程方面的追求,以及對軟體品質的重視,已經有相當多年的歷史。從 ISO 9001 到 CMMI,從瀑布式開發到敏捷反覆運算式開發,一步步走來,累積了多少心血與成就。時至今日,我們看到不同的時代,有不同的要求。在當前的互聯網時代,競爭格局徹底顛覆、商業模式日新月異、客戶需求變化多端,該如何在「速度」與「品質」之間求取平衡?敏捷開發是否與 CMMI 格格不入?到底專案管理該繼續用甘特圖還是嘗試看板方法?專案、開發、測試與 IT 維運四大天王之間,到底該如何調整出最適應轉型的工作方式?該是逐步進化,還是砍掉重練?在企業研發戰力的轉型過程中,有太多的糾結、不確定性與本位主義,拖累了改革的黃金時機。

講述主題:精實開發之實作 - 看板方法 ( Kanban )

        精實開發是企業創新的成功之道,這一點大家都知道。但思考如何進行開發作業才能達到精益 Lean 的境界呢?這正是本課程所要帶給大家的真正解決方法:看板方法Kanban Method)。想知道在實施敏捷之後如何才能再擁有精益的力量嗎?請用看板方法來加速你的專案開發吧!它不是開發方法也不是什麼神奇的模式,但卻能帶你處理忙碌的專案開發過程,它是一種化繁為簡帶你一步步邁向 DevOps 的捷徑。本議程在 2015 年北京與臺北的微軟技術大會各一百多個議程中,都得到與會來賓給予相當高的評價,特別再度安排,作為本次研討會的壓軸。

微軟大中華區特聘技術顧問  董大偉

        光岩資訊技術總監、Visual Studio 2010 上市發表會講師、歷任微軟 TechDays、TechEd 講師、MSDN 講座專屬講師、微軟最有價值專家 (MVP)、資訊書籍和雜誌專欄作者。專長於 Microsoft .NET Platform 開發技術、BPM、APS、ERP、Web Solutions、Windows Phone、Azure 等商業應用之建置與導入。

講述主題:推動 DevOps 轉型的成功要素

台灣微軟技術支援經理  邱英瑞

講述主題:微軟 DevOps 開發平台架構的最新進化

        推動 DevOps 實現研發團隊的加速轉型、價值的即時交付,必須打通目前在軟體發展環節上多個障礙與難點,包括:專案管理與開發團隊之間的障礙、開發團隊與測試團隊之間的障礙、開發團隊與運維團隊之間的障礙。本議程將提供一個全景式的展望,說明 Visual Studio 在搭配 Team Foundation Server 2015 及 Azure 雲端平台,如何以 Cloud 與 On-Premises 兩種方式提供端到端無縫整合的 DevOps 自動化開發與管理平臺。我們將特別著重在對於跨平臺開發環境的支援、跨平臺開發專案的管理以及跨平臺解決方案的佈署,為研發團隊推動 DevOps 轉型,提供了關鍵的工具鏈與軍火庫,幫助研發團隊落實一體化的管理架構,並實現夢寐以求的生產力與敏捷性大幅提升。

       

微軟大中華區開發技術專家  莊俊乾

        現任微軟公司大中華區開發者體驗和合作事業部技術專家,在軟體測試,研發管理管理,應用安全測試等領域有極為豐富的經驗,曾為中國的電信金融行業等多家大型企業提供軟體過程管理的諮詢、技術和產品實施服務工作。當前的主要研究方向是基於 Azure 雲端研發測試實踐結合等。

講述主題:雲端發力、加速轉型:微軟開發測試雲一體化解決方案

        當今軟體研發所面臨的品質挑戰前所未有。不僅僅時間的壓力越來越關鍵,在互聯網商業競爭中,軟體的錯誤甚至可以造成無法估量的商業損失。隨著敏捷反覆運算式的開發方法越來越盛行,開發與測試之間的界線越趨模糊,整合密切。如何推動開發測試之間的無縫銜接與分工,成為軟體開發過程加速的一道重要關卡有待突破。本議程將針對 DevOps 轉型過程中的「測試工具」、「測試管理」與「測試平臺」三個方面做探討,介紹 Visual Studio 2015 各項前端工具,如何與 Team Foundation Server 2015 密切集成,在開發與測試的階段中實現雙向協作、跟蹤與管理。對於整合測試,最流行的方式莫過於運用雲計算的力量,藉由雲端虛擬實驗室的佈置,實現測試環境的標準管理、快速佈署與自動化運行。此外,本議程還將首次在台演示,如何運用最新發佈的 Linux 遠端除錯功能,結合 Red Hat Linux 的 Azure 雲端虛擬環境,進行跨平臺整合測試。

講述主題:企業測試團隊的 DevOps 組織規劃實務

        在當前的中國市場,隨著互聯網的高速滲透,以移動 Apps 為核心的商業模式成為兵家必爭之地,每天有高達上千億元人民幣的流動發生在人們掌中的方寸之間,軟體品質得到空前高度的重視。在過去 15 年,在中國的中大型軟體企業,從 50 人到上萬人,測試團隊從無到有,從開發團隊內部的交叉測試,到單獨的測試角色、測試小組,到部門級的測試中心,進而到整個企業的測試中心(品質中心);而現在,特別是最近 年,越來越多的企業測試團隊與開發團隊開始「分久必合,合久必分」。在敏捷轉型過程中,測試團隊被分解,測試人員又開始回到專案編組中,甚至測試工作也更多依賴開發人員。本議程將基於多個中國企業的實務,討論這些轉變的方向是否可以確保品質?其背後的思維與戰略,又有哪些可以值得我們參考。

2015 Microsoft DevOps Day 團隊開發日

<< 12/5 (六) 或 12/7 (一) >> 同一主題兩個場次,座位有限,立即卡位!


MSDN 論壇精選 ( 10/19 - 11/20)

$
0
0

 

MSDN 論壇 是一個可以讓開發人員自由提出問題、尋找資訊的好地方,歡迎大家多多利用,與社群中的同好們一同分享 Microsoft 技術資訊。
而我們會不定期整理論壇精選給大家,希望對您的學習有所幫助!以下為 2015 10/19 - 11/20  的論壇精選,大家在閱讀時有疑問也可以直接加入論壇中討論喔。
現在只要到微軟社群之星學院問問題,就有機會月月抽好禮,參加請點這裡,我們更提供不收費線上課程 Channel 9 讓您尋求更多知識。

  

標題日期
VS 專案如何升到 4.5 版本                                                                        2015/10/19
Add 重覆的資料,可讓重覆 insert 的 Exception 產生嗎    
2015/10/20
存入資料庫時日期格式錯誤的問題
2015/10/20
如何改善 Chrome 列印在不同解析度下印出結果不同2015/10/22  
使用 LINQ 如何按分類後的種類計數2015/10/25
SQL 作日期比較的問題2015/10/28
請問一個 Datareader 的錯誤訊息2015/10/30
Visual Basic 2013 安裝精靈無法使用2015/10/31
無法部署 App 至 Windows 10 mobile 105812015/11/03
如何處理測試好的 .hlkx 檔無法上傳2015/11/03
SQL server 透過內建功能嘗試部屬資料庫到 Azure 失敗 2015/11/11
Toast notification 沒有彈出提示2015/11/13
設計模式中,每次要用到子類別的屬性是否都需向下轉型2015/11/16
利用 Azure Powershell 架設 WIndows 虛擬機器問題2015/11/18
SQL 資料表設計外鍵運用問題2015/11/20

 

Visual Studio Update 1 ,為 Android 專案加入 Java 支援與除錯功能

$
0
0

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


 Visual Studio 2015 Update 1 RC 持續加入更多特性,適合開發多樣的行動裝置相關應用。而在這次更新之中,主要加入了支援對 Android 專案內的 Java 原始碼進行除錯,以及IntelliSense 現在也能夠作用在 Java 原始碼的編輯與瀏覽上。

這篇文章將向您展示如何使用在 Visual Studio Update 1 內為 Java 新增的功能。

建置 Java 原始碼

在 Visual Studio 2015 RTM 釋出時,早已支援建置 Java 的原始碼,而 ANT 建置系統預設會選擇任何在專案中 ”src” 資料夾內副檔名為”.java”的原始碼來進行編譯。如果您的 Android 專案有包含這些檔案,那麼就可以輕易地使用 Visual Studio 內建的版本控制整合功能來做管理。

下列方式可以讓您加入取得 Android 開發專案:

  • 從基本應用程式範本(在新增專案對話框中,其他語言 > Visual C++ > Cross Platform > Basic Application)中建立一個新的專案。
  • 從 Code Gallery Android C++ 範例庫中取得,有些包含 Java 原始碼。
  • 安裝 Java support extension,就能直接匯入由 Eclipse 建立的 Android 專案。
  • 在這些專案底下的 src 資料夾下放置副檔名為 .java 的檔案。

編輯 Java 原始碼( Update 1 新加入,目前為測試階段)

當您在 Visual Studio 打開副檔名為 .java 的 Java 原始檔時,會注意到編輯器上方會彈出提醒訊息,建議您安裝新的 Visual Studio 對 Java 語言的支援擴充套件。這個提示能夠被關閉,不過我們建議您可以安裝這個擴充套件進行使用,並期盼您能夠提供更多回饋讓我們知道。

注意:您安裝擴充套件後,必須要重新開啟 Visual Studio,之後您會發現在 Java 程式碼內會加上顏色標註,或者語法警告及錯誤顏色標註等提示功能。

安裝這個擴充套件後,在您撰寫 Java 程式碼時,IntelliSense 能夠幫助您做到以下幾點:

  • 成員清單將會顯示目前已經參考 ( import ) 的來源或者程式碼相關成員

 

  • 參數指引將會在您撰寫呼叫函式時提示相關函式傳值

  • 快速提示將會於您將滑鼠游標移動至任何一個合法的程式碼片段時顯示

當您在進行大型專案分析原始碼或者使用第三方提供具有原始碼的函式庫時,若專案原始碼包含的結構允許時,您可以在變數或函式的地方點擊右鍵選擇[移至定義]或者按下 F12,即可快速的移動至該變數或函式所被定義的程式碼。

  

對 Java 程式進行除錯(Update1 新加入)

您可以透過偵錯型別的下拉選單選擇 ” Java Only ”,這樣在下一次執行偵錯程序時就能夠針對 Java 程式碼進行偵錯。

 

如果您想在之後維持專案是針對 Java 偵錯的話,可以在方案總管對您的專案點擊右鍵選擇[屬性],並切換至[偵錯],將其中的[Debugger Type]改為 ” Java Only ” 後套用即可生效。

 

您也可以在 Java 程式碼中設定中斷點,且也可以加入條件式或者設定執行了幾次才啟動中斷點等中斷條件,這樣一來將可以較精確地中斷在您所設定的情況。另外也可將中斷點設定轉變成 TracePoint

 

當一個中斷點觸發後,您將能夠存取幾個除錯視窗供您檢視並追蹤錯誤,例如 Call stackWatch and Locals windows,甚至是 Logcat。

執行序視窗將會顯示多執行序的除錯訊息,包含完整的執行序名稱與相關呼叫的堆疊位置,來幫助您除錯。

在例外狀況視窗中,您可以設定哪一些例外狀況必須要使的除錯程序必須停止。當設定的例外情況發生,除錯程序將會停止在引發該例外的地方,並顯示例外狀況說明對話框,能夠提供您更詳細的例外訊息提示。

另外您也可以使用 DataTips 功能,將特定變數固定在畫面上,讓您能夠更方便的檢視變數內容。

 

以上內容為 Visual Studio 2015 Update 1 針對 Java 語言以及 Android 專案除錯所新增的功能。我們期盼能接收到您嘗試 Update 1 RC 後的相關意見反饋,歡迎利用 MSDN 論壇發問,或是透過微軟社群之星,都將由專家為您解惑

本文翻譯自:Java debugging and language support in Visual Studio for Android

 

神 Tools,這樣也可以辨識!

$
0
0

       Chris Bishop,Microsoft 在英國劍橋研究單位的領導人,在 Microsoft's Future Decoded 研討會示範一個能夠辨識人類臉部情緒的新工具。人們天生擅於由人類臉部的表情辨識人的情緒,但是對於電腦而言,這並非是一件很容易的事。

       直到今日,在機器學習 (machine learning) 與人工智慧 (artificial intelligence) 領域的進展,使得電腦科學家能夠開發出能夠辨識聲音、文字、圖片、甚至臉部表情的智慧應用程式。Microsoft Oxford 專案 (Microsoft Project Oxford) 團隊今天計畫要向大眾發佈一個 beta 版本的新工具,讓程式開發者能夠使用這個工具的功能,包括辨識人類臉部表情的功能,發展更多機器學習的應用。ChrisBishop 是 Microsoft 位於英國劍橋的研究單位的主管,在今天稍早的 Future Decoded 這個 Microsoft 探討未來的商業與技術的研討會的主題演講中展示了一個臉部表情辨識工具。

      許多 Microsoft 自己的產品都有用到這個工具的功能,這個工具主要是設計給未具機器學習或人工智慧專業知識,而卻想要為應用程式加入語音辨識,視覺與語言判讀功能的程式開發者使用的。而近日微軟釋出 Speaker Recognition APIs ,用語音就能進行辨識!Microsoft 在今年春季首次發表了第一個版本的 Oxford 專案的工具(請參考:Microsoft Project Oxford tools last spring),Oxford 專案的經理說,這個工具很快地吸引了世界財富 500 大 (Fortune 500) 公司與小型的新創公司的高度興趣,透過這個工具的幫助,未具備機器學習和人工智慧專長的公司和企業也能夠經由這個工具擁有想要的功能。Microsoft 技術和研發部門的資深程式開發經理 Ryan Galgon 說:" 令人興奮的是這個工具引起的廣大注意,以及很多不同的反應 "。

情緒影片拼字檢查以及鬍子


       善用機器學習技術,我們的工具能夠在接收到更多的資料時變的更聰明:有了機器學習技術做基礎,讓我們的 Skype 翻譯工具 (Skype Translator) 即時翻譯功能和 Cortana 個人隨身助理 (Cortana personal assistant) 都獲得了重大的突破 ! 以將機器學習應用在臉部辨識為例,我們的工具能夠經由接收一組訓練用的圖片學習辨識確定的特徵,然後將學習到的特徵資料套用在接收到的新圖片,提升人臉辨識的正確性。

        今天發佈的情緒辨識工具,是以真實的心情感受表現在外的情緒表徵為學習的基礎,支援辨識 8 種主要的情緒狀態,包括– 憤怒, 恥辱, 恐懼, 嫌惡, 快樂, 中立, 悲傷, 及吃驚。Galgon 認為,程式開發者可能會想要將這樣的功能加入到支援收集巿場反應的工具,用來衡量人們對商店展示、電影、或食物的反應,程式開發者會發現將這個工具應用在開發消費者相關的工具上會很有價值,例如應用在即時通訊軟體上,可以從辨識相片中人的表情表達的情緒提供不同的功能選項。Microsoft Oxford 專案提供的臉部表情辨識技術可以應用在很多不同的領域,例如我們可以依據照中的人臉部表情依情緒分類,或是可以應用在較輕鬆的場合。在這個禮拜一開始,在 Movember 基金會以鬍子辨識為名義的募款場合,Microsoft 發佈了 MyMoustache 網站,這個網站就是使用 Oxford 專案的機器學習技術辨識並評鑑人們臉部的鬍子。我們發表的臉部情緒辨識工具是一個 beta 版本,除了這個工具以外,在今年底之前,Microsoft 還會發表數個 beta 版本的新工具,這些新工具都會提供限量的免費試用版本。

這些工具包括:

Spell check提供拼字檢查功能的工具,支援程式開發者為所開發的手機 App,以雲端為基礎的 App,或是其他的產品加入拼字檢查功能,例如辨識像 " gonna " 這樣的俚語,品牌名稱,常見的名稱錯誤,以及不容易發現的拼字錯誤,像是 " four " 和 " for "。這個工具也會在新的品牌名稱和用語普及和流行時,將新的品牌名稱和用語加入到工具中。從今天開始,我們開始提供公開的 Beta 版供有興趣的人下載試用。

Video:這個工具能夠協助使用者很容易地分析和編輯影片,包括追蹤人的臉部,偵測移動,以及消除拍攝影片時的震動。這個工具的某些功能和 Microsoft Hyperlapse 工具使用了相同的技術,同樣在今年底之前會公開Beta版本供有興趣的人下載試用。

Speaker recognition這個工具能夠經由學習個人的口音特質辨識發聲說話的人。程式開發者可以利用這個工具的功能辨識說話的人的身份,如同利用指紋辨識使用者的身份一樣,實作 App 的安全管制功能。這個工具同樣會在今年底之前會發表公開的 Beta 版本。

Custom Recognition Intelligent Services:這個工具簡稱 CRIS,可以很容易地支援使用者依據惡劣的環境,例如公開而且吵雜的場合,調整語音辨識功能。例如公司可以在噪音很大的地點,或是人來人往的購物中心進行語音辨識的工作,也可以用來對母語不是英語的人的演講內容,或是發音有障礙的人的話語進行語音辨識。這個工具將在今年底之前以非公開的方式邀請特定的對象進行 Beta 測試。

Face API 更新:除了上述的新工具以外,Microsoft Oxford 專案提供的臉部辨識工具將會加入新的辨識功能,包括加入鬍子辨識與微笑預測工具。除此之外,也會強化現有的外表年齡估計,以及性別辨識等功能。

對這些工具有興趣的程式開發者可以瀏覽到 Microsoft Project Oxford 網站以獲取更多的資訊,或是試用工具提供的各種辨識功能。

 

本文翻譯自:Happy? Sad? Angry? This Microsoft tool recognizes emotions in pictures

免費加入 Visual Studio Dev Essentials 計劃,取得免費微軟開發工具與平台

$
0
0

Microsoft Connect(); //2015 大會結束後,微軟宣佈了一個 Visual Studio Dev Essentials的計劃,任何人都可以用 Microsoft 帳號(Windows Live ID, MSN 帳號等)免費登入加入計劃,而加入計劃後便能夠透過這個帳號下載免費的微軟軟體開發工具,以及一些雲端平台或第三方服務的軟體折扣或是免費使用額度。

提供什麼

登入您的 Microsoft 帳號之後,會進入一個個人專屬的管理後台,而這個畫面也就呈現了所有您可以存取、下載或兌換的軟體及服務。

而所有陳列的內容都是免費的,它們分別有以下幾個類別:

開發工具

首先,除了像是 Visual Studio Community 版本,這是功能相當於 Visual Studio Professional(專業版)的 IDE;以及著重在輕巧、高生產力的程式碼編輯器 Visual Studio Code 之外,這個部份提供的是在開發各種應用程式可能會需要的服務與平台:

  • Visual Studio Team Services就是過去的 Visual Studio Online,它提供了像是版本管控(支援 Team Foundation 以及 Git)、自動化建置部署(可整合多種第三方套件)、軟體開發流程工具(Agile, Scrum, Kanban 等)、負載測試、發行管理的線上服務,五人以下的小團隊使用也是完全免費。
  • 用來分析行動應用程式使用者行為的 HockeyApp以及 Application Insights也都提供了免費的使用額度。
  • 在 Mac OSX 電腦上用來安裝 Windows 虛擬機器的 Parallels Desktop for Mac Pro, Parallels Access也有三個月的訂閱優惠,可以搭配即將推出的 UWP VM 安裝,以便能在 Mac 上開發 UWP 的應用程式。
  • Azure除了本身就有第一個月免費額度之外,也即將提供給加入 Dev Essentials 的用戶更可以享有 12 個月,每個月 25 美金的免費 Azure 使用額度,讓您在學習以及測試 Azure 平台時可以有更多的彈性。
  • 分享資料 BI 的視覺化圖表工具服務 Power BI以及 Office Online 的免費使用額度。

教育訓練

除了開發工具之外,由微軟提供(如:MVA)或是其它教育訓練夥伴提供的線上訓練課程,也有不同等級的優惠額度,而目前也限量提供 Pluralsight六個月的訂閱優惠,幫助您在使用工具或是有興趣的開發工作上能更上一層樓。

技術支援

除了開發工具、教育資源之外,當然在開發的過程中您可能需要一些技術支援服務,而加入 Dev Essentials 計劃的開發人員也有一些額外的技術支援服務,歡迎多加利用。

原始文章發佈於「開發者之魂」部落格

【歲末聖誕跨新年】技術英雄聯盟 - 機票萬元好禮,高達五次抽獎機會 ❤

$
0
0

來來來!msdn 部落格報好康,在這 2015 歲末歡慶迎新年的愉快時光裡,敬邀讀者參加【歲末聖誕跨新年】活動
技術英雄聯盟,由台灣微軟五大技術傳教士組成,發揮各自專長為開發者們帶來嶄新的技術分享。為開發者們的開拓技術新境界。沒辦法,這就是英雄聯盟裡面頂尖技術者的待遇!

 http://aka.ms/devlol

 


          

  • 評估【雲端服務】關鍵問答解密

    由微軟技術傳教士李匡正 (Tom Lee) 主講。
    您的應用服務夠彈性嗎?是否曾遭遇過網站流量超載而 crash 掉的壓力?或是明明資料已定期備份卻因為備份機出問題無法還原?無論您是來自大型企業、新創公司或獨立軟體開發商的開發團隊,無論您是團隊領導人或開發人員,雲端服務在三五年前也許只是個趨勢,但現在面對大環境的衝擊,您已經不能再選擇不去了解它,因此,學習如何評估變成非常重要課題,本系列課程將列出不同產業、角色在評估雲端時必問的問題!讓您也能夠成為雲端評估專家!
    由李匡正主講的 Microsoft Azure 課程:Microsoft Azure 基本介紹與成本估算 以及 Microsoft Azure 虛擬機器 & Remote App

     

     

  • 進擊的【開發工具】:打造登峰造極的 Code

    由微軟技術傳教士上官林傑 (Eric ShangKuan) 主講。
    您的程式通常大家都看不太懂嗎?您是否時常被 performance 的問題困擾著?撰寫不同的程式語言,應該注意的地方都不太一樣,而終極目標都是希望自己的程式可以快、很、準的呈現需求。要如何培養好的開發習慣?如何善用開發工具協助您打造完美程式?本系列課程將按部就班探討撰寫各個語言時,應時時提醒並反問自己的幾個關鍵問題,讓您的程式總是人人稱羨!
    歡迎參考 活用 Visual Studio Code 系列。

  •  搶佔【物聯網】革命先機

    由微軟技術傳教士吳宏彬 (Herman Wu) 主講。
    物聯網 (Internet of Things, IoT) 將透過一個高度整合的全球網路,把所有事物和每個人都連結在一起,舉凡人、機器、天然資源、產品線、物流網路、消費習性、回收流程,到經濟和社會生活中的所有面向,都將可以透過感測器和軟體連結到 IoT 平台,且會持續不斷地即時對每個節點 (node, 包括企業、家庭、汽車等) 提供巨量資料,接著透過即時資料分析和機器學習,真正達到精準預測的目標。在物聯網衝擊下您應該如何佈局,搶占先機?而微軟能夠如何協助您成功領先群雄,贏在起跑點?本系列課程您絕對不能錯過!
    歡迎欣賞 Microsoft Azure 物聯網合作夥伴媒合交流會 以及 物聯網新應用 - 貫通物聯網每一哩路 更加瞭解物聯網!

     

  • 實戰【通用 Windows 平台 (UWP)】新潮應用
    由微軟技術傳教士陳晴 (Ching Chen) 主講。
    在過去我們針對如何開發屬於您自己的 Universal Windows Platform (UWP) 應用程式,製作了許多基礎教材讓大家學習,從 XAML、Visual Studio 2015、自適應程式碼到如何上架 Windows 市集等。
    那到底 Windows 10 新功能 (像是 Ink, Continuum 等) 要如何結合到您的應用程式,讓您的應用程式可以變得酷炫有型、更多元、更多變化呢?本系列課程為您帶來最新潮的火力展示與實作,讓您也可以輕鬆把最新的 Windows 10 功能都帶入您的應用程式裡。

     

  • 關鍵密碼【Office Apps】破解守則

    由微軟技術傳教士蔡孟儒 (Raymond Tsai) 主講。
    您知道全球有 12 億用戶在使用 Office App 平台嗎?Office Apps 又稱 Apps for Office,其具有市集的概念,而 Office Store 也允許第三方開發者發布、銷售 Office 相關應用。這麼新的技術與應用,要怎麼邁出第一步呢?本系列課程將完整介紹 Office App 服務應用與如何實作。
    註:Office Apps (Apps for Office) 和 Office Web Apps 是完全不同的概念喔!Office Web Apps 是指網頁版的 Office 服務,透過瀏覽器開啟可編輯 Office 文件。
    您也可以透過董大偉老師的 Office Apps 開發實戰 課程了解更多細節。

 

遊戲規則:

1. 累積答題數即可開啟各項好禮的大門,積越多、送越多!目前已經突破 1200 題,加油集氣一起衝破2000去東京玩吧!
2. FB 分享加碼抽 - GoPro 送給你!
只要分享MSDN 粉絲團 文章,就有機會獲得極限運動攝影機~
 
 
  
 msdn 部落格祝大家聖誕節快樂

Visual Studio 2015 工作執行器 (Task Runners) 簡介

$
0
0

trx

      網頁開發人員經常會執行許多工作 (tasks),從結合 JavaScript 檔案、執

  行 LESS 檔案,甚至到執行客製化批次或 PowerShell 腳本。

     Visual Studio 2015 將透過工作執行器總管 (Task Runners Explorer) 工具

視窗來支援任何客製化的工作執行。內建支援兩種非常熱門的網頁工作執行器 - Grunt& Gulp

      工作執行器總管將顯示出可用的工作列表並執行它們,執行方式相當簡

,只需要點一下滑鼠右鍵。您也可以結合任何工作到指定是在組建 (Build)

除 (Clean)、專案開啟 (Project Open)。當然您也可以利用 command line 來呼叫您的客製化工作,但透過 Visual Studio 您可以將您的工作更自動化。

以下是現在已可在 Visual Studio 使用的工作執行器供您參考。


NPM Scripts 工作執行器
npm

此工作執行器將添加對列在 package.json 腳本區塊中 npm scripts 的支援。這將讓您可以藉

由調整 package.json 來輕鬆執行任何可執行的檔案。

您可以透過這裡了解更多 npm scripts 及相關設定。

Download | Source code

 

 

Command 工作執行器
command

和 NPM Script Task Runner 一樣,Command 工作執行器可以執行任何可執行檔案,唯一的

不同是您不需要一個 package.json 這樣的檔案,另外擴充支援也包括了 PowerShell 和批次

commands。

對於建置過程中有客製化 .cmd or .ps1 檔案的專案而言可以說是相當方便。

Download | Source code

 

 

WebPack 工作執行器
webpack

Webpack 網站 上表示,Webpack 是模組結合器。最主要的目的是結合在瀏覽器上使用的

JavaScript 檔案,同時它也可以改變、結合或重包裝任何資源。

Webpack 現在日漸熱門,對於 React.js 開發者而言更是很有共鳴。

Download | Source code

 

 

Broccoli 工作執行器

broccoli

Broccoli是個對使用 ember.js JavaScript framework 的開發者而言非常熱門的工具,它可以

使用在任何網頁專案上。

從它們的網站上可以知道 - 這是一個快速又可靠的 pipeline,將支援定時重建與複雜的組件

定義,雖然它是在 Node 上運行且未知後端,但可媲美 Rails asset pipeline的範圍。

Download | Source code

 

 

Brunch 工作執行器
brunch

Brunch 是一個建置器 (Builder),而不是一般的工作執行器 (task runner),這樣一個特別的

工具將專注於從大量的開發檔案中產出小數量可部署的檔案。

Download | Source code

 

 

ASP.NET 5 工作執行器aspnet

將讓您可以在 project.json’s 腳本區塊 (像是 prepublish 和 postbuild ) 中輕鬆執行 scripts。

這讓在單一地點設定所有建置流程變的可行。

Download | Source code

 

以上所有的擴充說明了 Visual Studio 中的工作管理器總管是多麼的彈性。如果您有愛用的工作管理器但沒有在以上清單中,請隨時讓我們知道。

本文原始發布於 .NET Web Development and Tools Blog "Task runners in Visual Studio 2015

使用 Visual Studio Team Services (VSTS) 自動建置簽入 GitHub 的 Android 專案

$
0
0

Visual Studio Team Services(VSTS。原名:Visual Studio Online)是提供給開發人員或團隊協助開發工作的線上服務,它提供了像是專案管理版本控制自動建置自動測試部署發行管理等功能,並且支援各種程式語言、開發平台或是 IDE 工具等,如果是五人以下的團隊可以免費開始使用。(詳細功能與價格可參考這頁說明)

目標

這篇文章要完成的任務,是以 Android 專案為例子,並且使用 GitHub為版本控制的工具(當然也可以用 VSTS 作版本控制,也支援 Git),而主角 VSTS 則是用來根據設定來自動執行建置專案的工作,自動產生建置好的 apk 檔案以便後續的發行部署。

操作步驟

Android 專案

本文中的例子,是以 Android Studio所產生的專案結構為例子,這裡不必做任何特殊的設定或修改,就像一般一樣使用它來建立專案即可,而 VSTS 內建的 Android 建置範本是使用 gradle 腳本,所以如果關於建置工作的設定,可以修改 build.gradle檔案的內容即可。

目前在 VSTS 上的 Android 建置環境,JDK 的部份支援到 8,而 Android 建置工具支援到 API Level 22,並且還不支援Android Support Repository以及 Android Support Library,如果需要這些函式庫,可參考另一篇 [使用專屬建置伺服器](coming soon)一文。
本文的專案設定是 compilerSdkVersion: 19, buildToolsVersion: "19.1.0", minSdkVersion: 19, targetSdkVersion: 19,沒有使用 Android Support Repository 及 Android Support Library。

 將專案原始碼發佈到 GitHub 也可以是預設的 Android Studio 所產生的專案架構,像是這樣:

 

設定 VSTS 的建置規則

登入 VSTS 後,首先建立一個專案,因為這裡沒有特別提到專案管理以及版本控制的部份,所以您可以依據您的喜好設定。

建立好專案後,在專案頁面中切換至 BUILD的頁面:

在 BUILD 頁面中就要開始設定建置的腳本,按下建立新腳本的按鈕:

然後選擇 Empty 範本開始建置:

選擇 Empty 範本後按 Next進到下一步基本設定,這裡因為我們是以 GitHub 為例,所以 Repository type的部份就選擇 GitHubagent queue的部份就選擇 Hosted來使用 VSTS 的建置環境;而下方的 Continuous integration 勾選的話,每次把程式碼簽入 GitHub 時都會驅動建置的工作,若不勾選,可以之後再設定要手動建置或是定期建置。設定完成後,就按下 Create完成建立。

產生建置定義後,第一件事是先把 Repository 設定好(一開始會看到它呈現紅色驚歎號),首先要在 Connection欄位的右側按下 Manage來設定 GitHub 的帳號密碼,以讓 VSTS 的建置程式能夠連接到您的 GitHub 帳號。

在管理服務的頁面中,選擇新增一個 GitHub的 Service Endpoint:

接著,按下對話盒中的 Authorize按鈕,這時會跳出一個視窗(注意是否被瀏覽器擋掉)到您 GitHub 的帳號授權存取,完成授權後,為這個連線取一個名字,按下 OK按鈕就可以完成設定。

設定完成後,回到建置定義中的 Repository 頁面完成設定,這裡就選擇要連結 GitHub 上的 repository、要拿哪個分支來建置、還有是否每次都是 clean build 等等,最後按下上方的 Save 按鈕儲存,同時也會讓您修改這個建置定義的名稱。

Repository 設定完成後,回到 Build 頁面,我們要在這裡加入建置的工作,按下 Add build step...按鈕選擇工作。

VSTS 的建置工作很自由,您可以挑選許多工作串接起來,這裡我們可以先選擇 Android Build 的工作就可以了。

在建置定義中加入一個 Android Build的工作後,最簡單的設定就是把 Gradle Wrapper設定好,如果是使用 VSTS 的建置環境而不是自建的機器,就要選擇 gradlew.bat由它來驅動 gradle 的建置命令。其它的欄位可以先不特別設定,而設定完成一樣要按下工具列的 Save按鈕儲存設定。

設定的工作到此就完成了(最基本的建置),如果你稍早設定了每次簽入程式碼就執行建置的話,可以試著去 commit 一個新的版本來驅動,或是按下工具列上的 Queue build...按鈕來手動執行,按下後便會開始排程使用 VSTS 的建置環境,按照設定的建置工作逐一完成。

當建置開始執行後,您會看到一個 Console 顯示這些建置工作正在做的事,或是各種印出來的訊息,可以幫助您檢視建置的工作是否順利進行。在這個例子中,它就會先到設定的 repository 把程式碼抓回來,然後開始執行 gradlew.bat build的指令(依據之前的設定)來進行建置。

如果您看到 BUILD SUCCEED而 Console 中也沒有什麼錯誤訊息的話,恭喜,自動建置的設定已經能正常運作了!

 

啟動建置之後

前一步只是將自動建置的機制做完,那建置完之後的 apk 要如何取得呢?其實按照預設的 gradle 腳本,以及 Android Build 的建置工作,建置完成的 apk 檔會放在 app/build/outputs/apk/app-debug.apk這個路徑下,所以你可以再選擇一個建置工作接在 Android Build 的工作之後,看是要用什麼方式傳送到發佈的平台,還是結合其它的工作(例如簽署或是測試等等),這裡示範的是將建置好的 APK 檔案傳到 Azure 的 Blob 儲存體中。

在建置工作中加入一個新的工作:

然後設定要上傳的檔案,如前面所說,Source的欄位就要填入 app/build/outputs/apk/app-debug.apk;剩下就是設定 Azure 帳號,以及上傳到哪個 Azure Blob 儲存體的帳號,以及存放的容器及路徑。

設定完成後,當建置工作啟動時,就會先完成 Android Build 然後再進行 Azure File Copy 的工作。

結果

透過這樣的設定,開發 Android 專案時僅需專注在應用程式的開發,每次當程式碼簽入到 GitHub(或是其它的版本控制系統),就會自動觸發這一連串的自動工作,對於快速交付的需求或是任務上,將可以盡量減少出錯,並且利用自動化來加速整個工作的進行。

 

 

原始文章發佈於「開發者之魂」部落格

ASP.NET 5 完成階段性任務 -- 重新認識 ASP.NET Core 1.0 以及 .NET Core 1.0

$
0
0

這篇文章原始發佈於 Scott Hanselman 的部落格:
http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx 

命名向來就不是件容易的事。

There are only two hard things in Computer Science: cache invalidation and naming things. – Phil Karlton

在計算機科學的領域裡,有兩件最困難的事:「更新快取內容」以及「命名」。 - Phil Karlton (曾參與 SSL v3, X11, OpenGL 等專案)

如果只是紙上談兵地說:「它就應該被稱作: Foo,這樣多簡單!」是很容易的,但是命名這件事往往會牽動許多參與的人,ASP.NET 已經發展了約 15 個年頭,固然是一個很好的「品牌」,ASP.NET 4.6 是目前最新的正式版本,您也能在 http://get.asp.net 網站上取得相關的內容。

但如果我們只是因為 5 > 4.6 ,就繼續用「ASP.NET 5」去稱呼一個幾乎是砍掉重練重寫的 ASP.NET 開發框架,這顯然不是個好主意,這樣也好像在暗示說 ASP.NET 5 比 ASP.NET 4.6 更強大、更完美,甚至能取代它,但事實並不是這樣。

基於這樣的考量,我們決定重新命名。

重新認識 ASP.NET Core 1.0 以及 .NET Core 1.0

  • 原先稱作 ASP.NET 5 的部份改為 ASP.NET Core 1.0。
  • 原先稱作 .NET Core 5 的部份改為 .NET Core 1.0。
  • Entity Framework 7 改成 Entity Framework Core 1.0 或是簡稱 EF Core 1.0。

那為什麼要用 1.0 呢?因為它們的確是新東西啊!包括整個 .NET Core 的概念是全新的,.NET 命令列工具也很新,但是目前 .NET Core 並不像 .NET Framework 4.6 那麼完整,我們還在努力填補這兩者間的差距,包含 ASP.NET 4.6 以及 ASP.NET Core 1.0。

我要怎麼做選擇?

簡單地說,ASP.NET 4.6 是個成熟的平台,它通過經年累月的考驗,您現在就可以直接使用它;而 ASP.NET Core 1.0 雖然已經是以 1.0 版本釋出,包含了 Web API 及 MVC 這些框架,但是還沒有整合 SignalR 或 Web Pages 這些函式庫,同時,ASP.NET Core 也還不支援 Visual Basic.NET 及 F#,這些東西也許在將來某一天都會進入 ASP.NET Core,但起碼現在還沒發生。

我們並不期待開發人員認為 ASP.NET Core 1.0 已經做完了所有的事,這只是個新的開始,並且與 ASP.NET 4.6 各自發展,敬請期待我們在日後推出更多新的東西!

MSDN 論壇精選 ( 12/18 - 01/18)

$
0
0

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

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

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

日期主題
12月21日動態叫用 DLL,該如何得知該叫用涵數已結束
12月23日利用Azure 進行檔案發布
12月24日 有關 ReportViewer 問題
12月25日請問有辦法使用程式登入系統嗎 ?
12月31日關於 string 轉 string(,) 問題
1月2日請問使用 masterpage 有甚麼要注意的嗎 ?
1月2日richtextbox 的使用問題
1月5日VB 如何 Output 欄位就會自動顯示出我在 Input 所輸入的數字
1月5日VB 使用 ACCESS 連接資料庫後 若資料重複時
1月11日請問直接使用 sqldatasource  控制項時的 exception 要如何以程式指定例外訊息
1月12日Menu 功能表的選單,被 GridView 蓋住 ( IE11:NG ,IE10 :OK, Chrome:OK )
1月13日[ WPF ][ MVVM ] Binding ContentControl 去動態呼叫 Usercontrol 後,之參數綁定問題
1月13日有關 login 的問題,在網頁輸入的使用者密碼為明碼,如何轉換為資料庫內的加密密碼呢?
1月14日請問 ASP.NET WebForm 一開始判斷該瀏覽器是否支援 HTML5
1月16日Microsoft Azure Storage Explorer 上傳資料到 Storage Blob 時卻發生了停止上傳的中斷問題

【1/28 線上直播】mini Connect(); Keynote 主題演講 + 六部熱門影音課程皆已釋出!

$
0
0

影片投影片釋出 << mini Connect(); 2016  >>

        開發人員的角色正在急速轉變,正如同過去一年的微軟,一年前我們展示了一個全新的微軟,宣告開發平臺新願景:「支援所有開發者,在所有平臺上,開發所有類型應用」。這次 mini Connect(); Keynote 主題演講,由台灣微軟技術傳教士 上官林傑 說明微軟開發工具及服務轉型的下一步,並帶來 Connect(); 2015 Keynote 中 Scott Guthrie 所展示的 HealthClinic.biz demo,重現精采的 end-to-end demo 情境,其提供不同的 websites、mobile apps、wearable apps 和其他服務,而這些服務都運行在最新微軟及開源技術上。

Live 即時問答 + 6 部熱門影音課程

 初探 Visual Studio 2015 Update 1 全貌

        Visual Studio 2015 正式發佈後,改變以往 Visual Studio 開發工具只能在 Windows 平台開發 .NET 語言的挶限,積極與開源專案及第三方廠商合作,推出 Visual Studio Code,可以在 Mac、Linux 環境下使用程式碼編輯器且享有語法提示支援、程式碼版本管理以及功能套件的擴充,更發佈免費的 Visual StudioCommunity 社群版。而第一次的 Update 1 更新,加強對於 Apache Cordova 跨平台開發與 Windows 通用應用程式 (UWP)、C# interactive 與 Go To Implementation 開發協助、NuGet 與Bower 套件管理以及 Cloud Explorer 與 Application insights 雲端服務等功能提升,實質上提供對開發人員有助的改變。

 ASP.NET 5 & .NET Core 開發攻略 

        .NET Core 是微軟的新一代應用程式開發平台,重新定義 .NET,除了能夠跨平台之外,以往在部署 .NET Framework 時要部署一大包的執行期環境,在 .NET Core 裡,這個問題將不復存在,其將所屬類別庫的組件 DLL 封裝成 NuGet 套件,利用.NET CLI (Command Line Interface) 介面工具進行管理,應用程式部署時只需要還原所屬的套件即可,將套件輕量化也能讓應用程式運行在雲端環境與容器環境 (如 Docker) 時獲得更快的執行效能。ASP.NET Core 1.0 (原名為 ASP.NET 5) 是運行在 .NET Core 上的 Web 應用程式開發平台,不但擁有 .NET Core 的能力,還引入前端套件管理工具 (bower, Gulp, Grunt 等),同時修改 Hosting 的機制,讓 ASP.NET Core 1.0 的應用程式如同 node.js 與其他知名 Web 應用程式框架一樣是隔離行程的環境。”Core Family” (.NET Core+ASP.NET Core) 將重新定義微軟的開發技術,正式跨出 Windows 平台,未來的發展無可限量。

 Visual Studio Code 跨平台應用

        Visual Studio Code 是一套使用 Electron 以及 node.js 開發的程式編輯器,特色為輕��、簡單、易於操作使用。語法涵蓋 JavaScript、C#、C++、PHP、Java、HTML、R、CSS、SQL、Markdown、TypeScript、LESS、SASS、JSON、XML 和 Python,及許多通用檔案格式。支援智能感測 ( IntelliSense),自動偵測程式碼的問題並進一步除錯。目前 Visual Studio Code 支援 Mac、Linux、以及 Windows ,並且已在 GitHub 上釋出原始碼,本課程的內容將說明基本操作外以及如何透過 Visual Studio Code 進行 Git 版控的操作、程式碼編譯與除錯功能。

 零售業展場實境 - 人臉捕捉、定位與攤位指引

       (Azure IoT + Application Insights + Project Oxford)

       展示以零售商為例,面對 PCHome 、露天等數位化商城競爭,加強重視客戶體驗,除了良好的產品服務,個人化、貼心的消費經驗相當重要,案例中運用預先設定物聯網案例的解決方案 Azure IoT Suite + 開發人員可以快速套用 REST APIs 以及 SDKs 的  Project Oxford,讓消費者進入展場時藉由儀器的掃描捕捉人臉,掃描比對分析年紀與性別,推薦消費者該區域合適的商品。透過會員制度,結合 Application Insights 遙測蒐集不同階層的資料,透過 APP 使消費者進入不同展場時做出不同消費方案推送通知,本課程將整套技術分享給大家。

 YouBike 車況即時預測分析 

       (Azure Machine Learning + Open Data) 

        展示以 YouBike 為例,如何使用機器學習以及 Open Data 做實際運用。 台北市政府所提供的雲端即時開放資料服務,透過簡單、高延展性與高效能的 Azure DocumentDB ,在資料庫引擎內部直接原生支援 JSON 和 JavaScript ,提供雲端執行應用程式正確的解決方案。配合 Machine Learning 執行預測模型,從現有的資料學習,預測未來的行為、結果和趨勢。可以快速地建立預測模型。展示中透過時間、地點等條件,實際預測台北市 Ubike 的租借狀況,並將其背後的 ML 模型、API 服務完整展出,讓此技術更加貼近開發者需求。

  打造個人化智慧家庭 - 家庭成員人臉辨識 

        (Azure IoT + Azure SQL + Project Oxford )

        智慧家電越來越成熟以及普遍,穿戴式裝置日趨重視。家庭自動化第一步則是控制室內家電,利用 Visual Studio 搭配 Azure IoT Suite,以傳送超音波及電燈泡作為範例,傳送資料至雲端後台,透過客製化下達 Command 控制裝置。微軟提供 AllJoyn 的 Plug-in 支援,廠商安裝 System Bridge Template,使得裝置相容於 AllJoyn。前陣子火紅的 How old.net 運用的 Project Oxford 提供先進的驗算法與運用大量的聲音以及影像,利用 Face Samples 精準判斷人臉,開發最終目標為創造與貼近使用者體驗,軟體上的 Go to market 變得極其重視。

從車聯網範例學習使用 Azure 雲平台實現物聯網(IoT)精神:(1) 接收並儲存大量遙測資料

$
0
0

前言

Azure 雲平台提供了許多開發軟體、系統或服務的平台元件,而在最近熱門的資料分析、物聯網(IoT, Internet of Things)、機器學習等議題方面,Azure 也有許多針對這領域的需求提供相關的服務,這裡我們就以一個「車聯網」(Connected Car)的情境來說明如何運用 Azure 上的這些服務來建構一個資料分析或是物聯網的解決方案。

這裡可以下載或啟用本文所使用的範例。

情境

假設您是一個車輛管理公司,你旗下有許多車輛在路上運行,而你想要監控這些車輛的狀況(如:平均時速、機油狀況、引擎溫度等等),並且從這些監控的數據中分析及預測出車輛的健康狀況,及早為可能要進行的維修工作做好準備。

系統完整架構圖會像是這樣(點擊放大):

系列文章

這個範例將會分成三個部份來做介紹,分別是:

  1. 接收並儲存大量遙測資料
  2. 資料轉換及建立預測模型
  3. 建立資料視覺化圖表

接收資料

由於需要監控的車輛數量可能會很多,所以我們要能夠具有短時間接收大量資料的資料(高頻資料)接收能力,所以採用 Azure 事件中樞(Event Hubs)作為接收高頻資料的入口。簡單地說,Azure Event Hub 的功能就是一個訊息佇列(message queue),但是它特別為高頻資料所設計,藉著資料分區(partition)的設計讓資料可以並行傳入,也因為這僅僅是一個佇列,雖然有一定的保存時間,但若要將傳入的事件(訊息、資料)永久儲存下來,就需要把資料從 Event Hub取出再儲存到別處的部份,這個我們稍候再談。

在這個範例中,我們並不是真正去蒐集真實的車輛資料,而是用一個模擬程式模擬產生資料,這些資料就直接送到 Azure Event Hub,而送進 Azure Event Hub 裡可以是任何字串資料,不過為了後續資料處理的方便,在這個範例中是使用 JSON 格式的資料來傳送。


圖:模擬程式執行的畫面,可以看到它會產生許多模擬資料,並且是使用 JSON 資料格式。

資料傳入 Azure Event Hub 的方式也很簡單,只要使用 HTTP 的 Web 呼叫就可以將資料寫入 Azure Event Hubs。

關於 Azure Event Hubs 的相關參考資料如下:

取出資料

前一部份我們使用了 Azure Event Hubs 來解決高頻資料接收的問題,但不論是要拿這些資料產生報表、餵進機器學習建立預測模型、還是要永久儲存下來等等,我們終究要把資料從這個佇列中取出再送到不同的位置,這時就能使用 Azure 串流分析(Stream Analytics)的服務來完成這項任務。您可以在 Azure Stream Analytics 中設定一些查詢字串(類似 SQL 查詢語法),當您啟動 Azure Stream Analytics 的服務時,它會監控指定的 Event Hub 或 Blob 儲存體,並且將所有進入該 Event Hub 中的資料與設定的查詢字串進行比對,若符合查詢字串的條件,則會將這份資料送到指定的位置(甚至是寫回另一個 Event Hub)。這一連串的動作幾乎可以視為是即時完成。


圖: Azure Stream Analytics 會監控 Event Hub,然後根據查詢條件將資料送到指定的位置。

注意:Event Hub 的資料也可以自己寫程式取出,但若要使用 Azure Stream Analytics 來處理的話,目前 Azure Stream Analytics 支援的資料格式有:Avro, CSV, 與 JSON;而字串編碼則僅支援 UTF-8

而若要傳入 CSV 格式的資料時,必須多一列欄位名稱的資料,舉例來說,不要直接傳 Eric,33,Taiwan 這樣的資料,而是應該要傳入 Name,Age,Nationality\nEric,33,Taiwan 這樣的資料才對,否則後續取出的資料會不易操作。

在這個範例中,Azure Stream Analytics 主要會將取出的資料送到 Power BI 服務做視覺化的圖形報表(事實上是將資料儲存在 Azure Blob Storage 以及 SQL 資料庫,再由 Power BI 去這些地方將資料匯入),以及將資料寫入 Azure Blob Storage 中永久儲存下來,這些操作都會在設定的查詢語法中完成。

關於 Azure Stream Analytics 的相關參考資料有:

我們學會了什麼?

到目前的階段,我們瞭解到如何使用 Azure Event Hubs 來接收高頻資料,而使用 Azure Stream Analytics 將資料從 Event Hubs 中取出再轉存到其它儲存體,初步完成整套 Azure IoT 任務拼圖的前端部份。而透過這個範例也可以瞭解,在 Azure IoT 思維中,事件來源(event source)可以是任何形式,它可能是感測器,也可能是應用程式,但不論前端的「物」是什麼,只要有一個能夠連上 Internet 的裝置就可以將資料上傳至 Azure 來處理,同時上傳的方式也僅僅是透過 HTTP 呼叫 Azure Event Hubs 的 RESTful API 來傳遞資料如此簡單(當然,Azure Event Hubs 已經由官方提供了許多語言版本的 SDK,不一定都要使用這麼低階的方式呼叫)。

下一步,我們將瞭解如何對於這些大量的資料進行資料轉換,或是根據不同需求建立查詢表格,最後還能透過機器學習的方式建立預測模型,當然,這些動作都要能夠經得起大數據的考驗。

原始文章發佈於「開發者之魂」部落格

從車聯網範例學習使用 Azure 雲平台實現物聯網(IoT)精神:(2) 資料轉換及建立預測模型

$
0
0

前言

Azure 雲平台提供了許多開發軟體、系統或服務的平台元件,而在最近熱門的資料分析、物聯網(IoT, Internet of Things)、機器學習等議題方面,Azure 也有許多針對這領域的需求提供相關的服務,這裡我們就以一個「車聯網」(Connected Car)的情境來說明如何運用 Azure 上的這些服務來建構一個資料分析或是物聯網的解決方案。

這裡可以下載或啟用本文所使用的範例。

系列文章

這個範例將會分成三個部份來做介紹,分別是:

  1. 接收並儲存大量遙測資料
  2. 資料轉換及建立預測模型
  3. 建立資料視覺化圖表

這篇文章是第二個部份,範例情境請參考第一部份說明。

轉換資料格式

原始資料的樣貌

在第一部份中,我們已經接收資料,並且有一部份是儲存在 Azure Blob Storage中,我們可以運用 Microsoft Azure Storage Explorer這類工具來看一下資料是如何被存起來的,如果你打開這個範例所建立的 Steam Analytics 服務內的設定,你可以發現它將資料儲存在 connectedcar容器中,而前置詞為 rawcareventstream(如此一來,在 Azure Blob Storage 中就會像是資料夾形式組織檔案),所以我們可以在此找到一個 CSV 檔案,就是不斷接收進來的資料:


圖: Stream Analytics 將進入 Event Hub 的資料儲存在 Blob Storage 中。

所以我們可以看到資料都是以 CSV 的格式做儲存,下圖是以 Excel 開啟該 CSV 檔案後的結果。

雖然資料內容儲存下來了,但是這樣的資料格式不一定適用於每一種查詢分析、或是與別的資料關聯等等的操作,所以我們同時也需要能夠針對大數據來做資料轉換的工具,這時便能考慮使用 Azure HDInsight (Hadoop) 或是 Azure Data Factory的服務。在這個範例中,主要是以 Azure Data Factory為主,而其中也用到了 Azure HDInsight 的服務來進行運算。

資料轉換

上圖是 Azure Data Factory 的運作模式,在 Data Factory 裡面我們定義四種資源:

  1. 資料集 (data set): 原始資料或是轉換過的資料模型,它可能是資料庫或是檔案等,上述的 CSV 原始資料就是一個資料集。
  2. 活動 (activity): 這裡定義了轉換資料的所有操作,包括簡單的檔案複製,或是透過 Azure HDInsight (Hadoop) 做 Hive 查詢等等,Azure Data Factory 就是靠這裡定義的操作依據需求來轉換資料。
  3. 連結的服務 (linked service): 因為 Azure Data Factory 本身不做資料的儲存或是計算的工作,這些都要仰賴外部的服務來完成,所以為了讓定義的活動能夠順利執行,以及資料能從正確的位置讀取,這裡就要定義會使用到的服務。以此例來說,至少就要連結 Azure Blob Storage 以便資料集能抓取資料,以及 Azure HDInsight 來執行活動中定義的 Hive 查詢等。
  4. 管線 (pipeline): 在 Azure Data Factory 中您可以將管線視為一個完整的任務,而這個任務中可能就會包含一連串的「活動」,所以也可以在邏輯上看作是一個群組,當我們在 Azure Data Factory 上進行排程、監控等操作時,都是以管線為單位來做管理。

關於 Azure Data Factory 的觀念介紹可以參考這份文件

大致瞭解 Azure Data Factory 的用途之後,就能看懂這個範例是如何使用它的,首先是連結的服務,我們看到的設定有:

我們看到它定義了資料以及計算相關的服務,資料的部份有從 Stream Analytics 送進的資料,也有提供給 HDInsight 操作的資料區域,還有一個 SQL 資料庫;而計算方面則是用了 Azure HDInsight 以及 Azure Machine Learning 的服務。

而資料集的部份,定義了之後要做資料視覺化以及供 Machine Learning 建立預測模型的資料表結構:

以及要讓 Data Factory 執行資料轉換的管線:

還有管線中包括的活動,像下圖的例子就是一個 HIVE 查詢的活動,而這個活動就會送到連結的 Azure HDInsight 來進行運算

定義好了之後,你也可以把這些管線像是這樣串接起來:

這樣當然資料進入資料集時,整個管線就會把資料按照定義轉換完成。

關於 Azure Data Factory 的相關參考資料:

建立預測模型

在這個範例中,希望能先運用機器學習的技術,建立兩個預測模型:需要維護的異常預測、需要召回的異常預測,一旦有這兩個預測模型,接下來透過這些車輛回傳的資料,很快就能預測出哪些車輛需要維修或是召回。所以這個範例先用 Azure 機器學習(Azure Machine Learning, AzureML)服務建立了一個實驗,事先準備好一些車輛維修與召回的相關資料,在 Azure 機器學習服務中選好學習演算法,就可以讓這個服務啟動計算,完成模型的訓練。

訓練好的兩個模型(model),可以把它儲存起來,然後再建立另外一個實驗,把這兩個預測模型做成 Web Service 供其它服務串接。在這個例子中,就是把車輛相關的資料輸入(前面提到的資料轉換就有將資料準備好給 Azure ML 來使用的資料格式),接著就會預測這些車輛是否需要維修或是召回。

從這個例子可以看得出來,只要有資料、有想要解決的問題、選對演算法就可以做完機器學習的工作,而且這個服務平台也是能支援大數據的運算,學習演算法也是由微軟研究院多年的研究而成,可以減少很多實作演算法或是處理大數據的時間。

我們學會了什麼?

在這部份的文章中,我們瞭解如何將原始資料透過 Azure Data Factory結構化、自動化的方式進行資料轉換或是合併處理,整理後的資料就更方便用在報表、資料視覺化、或是套用機器學習等智慧操作,而 Azure 機器學習服務也提供了一個非常容易上手的平台,將你的資料轉化為具有智慧的預測模型。

下一部份,我們將介紹這些轉換過的資料如何以視覺化的圖表呈現,提供商業決策的分析參考。

原始文章發佈於「開發者之魂」部落格

為任何用途、所有開發人員打造的 Visual Studio 開發工具家族 (2016 年 1 月)

$
0
0

隨著軟體開發人員面對的應用程式平台愈來愈多,Microsoft 覺得要提供給開發人員更好用的開發工具增加開發效率、好用的雲端平台能快速部署應用程式、以及整合或相容更多非 Microsoft 的技術(含開源技術),這些年來 Visual Studio 家族不斷增加功能與彈性,希望能幫助任何的開發人員開發任何類型的應用程式

最近,我們舉行了一場 mini Connect();的一個線上研討會,向各位開發人員展示目前微軟的相關開發技術,不論您原本是不是使用微軟的開發技術或開發工具,都有機會找到可以使用的部份。而我在 Keynote 中大致地說明了一下現在 Visual Studio 家族的發展,目前錄影已經上線:

您可以完整觀賞這部影片來瞭解全貌,以下我也幫各位先標註幾個重點,歡迎您根據書籤來挑出有興趣的部份再深入瞭解。

原始文章發佈於「開發者之魂」部落格

Visual Studio Code 上也能開發 Apache Cordova 應用程式了!

$
0
0

數以千計的開發人員正在使用 Visual Studio’s Tools for Apache Cordova– 更親切的縮寫是 ’TOCO’ – 透過共享 JavaScript 程式庫建置 iOS、Android和 Windows裝置的跨平台應用程式。在 IDE 中,TACO提供安裝以及設定原生 SDK,預覽應用程式、模擬器與裝置偵錯甚至達成 透過 VSTS持續整合/持續部署

今天,我們很高興的宣布新的方式讓您建置、偵錯以及預覽 Cordova 應用程式透過你最喜愛的輕量級編輯器(是您最喜愛的,對吧?) - VS Code 與 Cordova 工具擴充元件

使用這個擴充元件,您可以偵錯混合式 Apps、在指令面板中找到 Cordova專屬的指令,及使用 IntelliSense 瀏覽物件、函式以及參數。也能使用 Apache Cordova 的 Stock版本或者其他延伸框架包括 IonicOnsenPhoneGapSAP Fiori Mobile Client。由於它們都是使用相同的 Cordova 版本系統和核心運算,因此 TACO能夠兼容你選擇的 JavaScript 框架。

另外,您也可以使用 Visual Studio Code 編輯在 Visual Studio IDE 創建的專案。想像一下,你可以在 Windows 上的 Visual Studio 中使用 Ionic 模板創建 Cordova 專案,然後在 Mac 或者 Linux 機器上的 Visual Studio Code 繼續編輯,無縫接軌您在 Visual Studio IDE 中的作業。不論使用哪個平台的編輯器,你都能夠獲得完整的偵錯、IntelliSense 以及語言支援。這會是多麼酷的一件事!

Visual Studio Code + Cordova 工具現在支援偵錯在 Android 和 iOS的模擬器以及裝置。Windows 也將在不久後提供支援 (有任何問題歡迎 email或者 tweet給我們)。您還可以連接除錯器在一個運行中的裝置,此除錯器單純地使用應用程式 ID 來定位。

如何取得?

如果您尚未下載或者安裝 Visual Studio Code 請到 http://code.visualstudio.com。它小於 50 MB 在正常網路下不到2 分鐘即可安裝完成。如果您已經安裝完畢,請直接安裝 Cordova 工具外掛在您的編輯器中。執行指令面板 (Mac 上按Cmd+P、Windows 按 Ctrl+P),輸入 “ext install cordova”,點擊 Enter。

更棒的是…Open Source!

也許您會猜想此擴充元件是否也同樣是開源呢?是的,您現在可以進一步貢獻不斷改進它。一旦您執行上遇到任何的 issues 或者有新功能建議,都可以 新增 issue更期待您能做些改變並且給我們一個 pull request。 最後且同樣重要的是,我們同時改善了command line tools extensions for continuous integration,最佳化您的開發流程!

提供反饋

我們邀請您一同參與我們成長活躍的 Cordova 社群,一起使用 TACO建置驚豔的應用程式。如果您想搶先看 TACO 測試先行版,你可以加入內線計畫,在 Stack Overflow上發問。我們很期待您的消息!

 

本文原始發布於 Visual Studio Blog "Apache Cordova development lands on Visual Studio Code"


從車聯網範例學習使用 Azure 雲平台實現物聯網(IoT)精神:(3) 建立資料視覺化圖表

$
0
0

前言

Azure 雲平台提供了許多開發軟體、系統或服務的平台元件,而在最近熱門的資料分析、物聯網(IoT, Internet of Things)、機器學習等議題方面,Azure 也有許多針對這領域的需求提供相關的服務,這裡我們就以一個「車聯網」(Connected Car)的情境來說明如何運用 Azure 上的這些服務來建構一個資料分析或是物聯網的解決方案。

這裡可以下載或啟用本文所使用的範例。

系列文章

這個範例將會分成三個部份來做介紹,分別是:

  1. 接收並儲存大量遙測資料
  2. 資料轉換及建立預測模型
  3. 建立資料視覺化圖表

這篇文章是第三個部份,範例情境請參考第一部份說明。

目標

在我們已經建立好整個資料流的架構後,雖然我們已經能夠從這些資料中找到許多有用的資訊,但不是每個人都想直接看原始資料,所以如何將這些資料用視覺化的方式呈現就是很重要的事。

Power BI也是 Microsoft 所提供的一個雲端軟體服務(SaaS),只要您將資料準備好,Power BI 提供了許多視覺化、互動性高的圖形工具供您繪製不同的資訊,而且 Power BI 不僅提供 Web 的操作介面(不限平台皆可操作),也提供了各行動平台的 app參考),方便您用各種方式存取這些資訊,決策更快速。

從資料到圖表

資料集(Data Set)

Power BI 本身只是將資料以圖表方式呈現的工具,所以整張圖表的關鍵就在於資料內容,在 Power BI 中你可以設定從哪些服務、檔案或資料庫將資料匯入(也可以自己寫元件擴充資料來源),而且設定好連接之後,也可以自動排程(或手動)重新讀取資料,所以要製作圖表的第一個動作就是要把資料集準備好。


圖:可以從眾多的線上服務或是檔案、資料庫將資料匯入 Power BI 處理。

在這個範例中,你會下載一個桌面應用程式,它是用來彙整 Stream Analytics、Machine Learning 以及 SQL Database 裡的資料,然後透過 Power BI 的 API 將資料推送進 Power BI 中(按照說明執行的話,會在 Power BI 中產生一組名為 ConnectedCarsRealtim的資料集),透過這個方式的好處是,只要這個應用程式不斷把資料推送進這個資料集,透過這個資料集建立的報表或是儀表板都會即時更新

製作報表(Report)

有了資料集之後,你可以將資料集儲存為報表(Report),在報表之中,您就可以開始將資料集的資料做成各式的圖表,您可以使用右側的視覺效果選擇想要顯示的圖表,而欄位則表示對應資料集中的欄位,這裡就能根據需要把圖形畫出來。

而報表中也可以利用下方的工作表(sheet)切換不同的需求來擺放各種想要展示的圖表。

儀表板(Dashboard)

Power BI 中就是簡單的三層式架構:資料集、報表以及儀表板(dashboard),儀表板其實沒有什麼特殊的功能,就是你可以規劃一個像是「首頁」這樣的區域,把報表中特別要關注的圖表釘選在儀表板上而已,像上述目標的那張圖示就是一種儀表板的佈局,每一個 widget 都會隨著資料集內的資料更新後一併更新顯示,而點擊下去就會移到對應的報表中。

Power BI 的參考資料

如果你想要瞭解 Power BI 的詳細內容,以及使用它、甚至是利用它的平台來進行開發,可以參考下列文件:

我們學會了什麼?

現在走過一遍範例,相信您應該對於如何蒐集資料、儲存或處理資料、並且將資料視覺化有了初步的認識,相信有了這樣的基礎知識,您會更加瞭解 Microsoft Azure 在 IoT 物聯網的領域中所扮演的角色,如果您想參考更多的範例,也可以試試看 Azure IoT Suite裡的範例與情境。

如果您想瞭解更多關於 Azure IoT 的相關介紹,以下推薦您可以參考的影片:

有任何問題,也歡迎加入 Azure Taiwan User Group與我們一起討論!
原始文章發佈於「開發者之魂」部落格

輕鬆幫你的應用程式加入人工智慧: 使用 Project Oxford

$
0
0

Project Oxford是微軟推出的一套針對視覺、聲音及文字相關辨識的 Web Services,所以不論你是撰寫什麼樣的應用程式,都可以透過 web request 的方式呼叫 Project Oxford 提供 RESTful APIs 來認識你取得的資料。

在 Project Oxford 的首頁上列出了目前所有的提供的 APIs,這些 API 的背後都是基於微軟的人工智慧、機器學習等的智慧平台所建構出來(例如:Azure Machine Learning),但是使用這些 APIs 你不必擁有太多人工智慧的知識或技能,只要會呼叫 RESTful API 還有解析 JSON 格式的資料就可以了。舉例來說,如果你想要判斷一張人臉照片裡這個人的表情是代表什麼情緒,那就可以參考其中的 Emotion APIs來操作。

使用 Project Oxford 判斷情緒的範例

取得 API Key

呼叫 Project Oxford 的服務都需要 API Key,只要在 Project Oxford 的首頁用 Microsoft 帳號登入後,就可以取得這些 API 免費使用的額度(因為目前這些 API 還在預覽階段,所以還沒有付費購買),每一個 Project Oxford 的 API 都有各自的 API Key。

所以之後要呼叫 API 時要選對 API Key 來進行呼叫。

呼叫 Emotion API 判斷情緒

有了 API Key 之後,就可以準備來呼叫 Emotion API 來偵測照片中人臉的情緒,使用的方式也是參考 Emotion APIs 的 API 參考文件,把照片傳入 API,Emotion API 會根據背後的智慧模型計算出這張臉的情緒,回傳的資料也是 JSON 格式的資料像是這樣:

[
  {
    "faceRectangle": {
      "left": 68,
      "top": 97,
      "width": 64,
      "height": 97
    },
    "scores": {
      "anger": 0.00300731952,
      "contempt": 5.14648448E-08,
      "disgust": 9.180124E-06,
      "fear": 0.0001912825,
      "happiness": 0.9875571,
      "neutral": 0.0009861537,
      "sadness": 1.889955E-05,
      "surprise": 0.008229999
    }
  }
]

回傳的資料主要是一個陣列,因為一張照片可能有不只一張臉,每一張臉就會是一個 JSON 物件,faceRectangle抓到的是臉部的位置,而 scores則是這張臉譜的每一種情緒的比重,你可以全部列出來,或是只挑出最顯著的幾種情緒來進行判斷或顯示。

參考資料

原始文章發佈於「開發者之魂」部落格

從現代化診所的例子看微軟的開發及雲端技術: (1) ASP.NET Core 跨平台的 Web 開發及運行技術

$
0
0

前言

Microsoft Connect(); //2015的開發技術大會上,為了解說微軟的各平台的開發技術(包含 Web、Desktop、Mobile、Cloud、DevOps 等),製作了一個具體而微(其實也是不小的專案) --HealthClinic.biz來串接各種微軟開發技術,由於這個範例已經全面開源並公開在 GitHub 上,所以任何人都能從這個範例的原始碼中瞭解及學習微軟最新的開發技術。

 

系統架構

整個 HealthClinic.biz 的設計架構如圖所示:

整個系統後端由 ASP.NET Core 技術處理 Web 以及資料庫的操作,並且部署至 Microsoft Azure 雲端平台;而各個 client 端應用程式搭配不同的使用情境,但都是呼叫系統後端提供的 API 來存取資料。

目錄

這系列會分成 5 個部份來介紹這個範例所展示出來的開發技術

  1. ASP.NET Core 跨平台的 Web 開發及運行技術
  2. 從 Node 應用程式看 TypeScript 以及 Visual Studio 與現代開發工具的整合
  3. 使用 .NET 技術開發原生應用程式:傳統桌面應用程式、Universal Windows Apps
  4. 跨平台開發 Android 以及 iOS 應用程式:使用 Xamarin 或 Apache Cordova 技術
  5. 資料處理應用程式

HealthClinic.biz 的 Web

在這個範例中,Web 的用途有兩個:「首頁(Landing page)」與「診所管理人員操作」(上述架構圖左上角的部份),所以重點是在後台管理人員操作的部份。如果你是使用 Visual Studio 2015 來開啟範例,你可以直接開啟 01_Demos_ASPNET5.sln來開啟所有相關的專案,包括(src/ 目錄下):MyHealth.Web, MyHealth.Model, MyHealth.Data, MyHealth.API, MyHealth.Office365,從專案名稱上大致上就可以猜到它的用途:

  • MyHealth.Web: Web 專案的主體,如果要部署或執行測試就從這個專案下手。
  • MyHealth.Model: 定義這個 Web 專案中有哪些資料模型,例如定義了病患(patient)的資料模型,然後裡面定義病患的資料欄位等。
  • MyHealth.Data: 定義程式介面,透過操作上述資料模型來完成某些工作。例如:定義一個可以列出 N 筆病患的函式等等。
  • MyHealth.API: 定義 API 介面,供後台程式呼叫完成操作,呼叫 MyHealth.Data 定義的函式,不過提供的是供外部呼叫的 REST 介面。
  • MyHealth.Office365: 處理與 Office 365 服務整合的程式。

以下我們就以 Web 的前後端來介紹如何閱讀範例。

Web 後端:ASP.NET Core

Web 主要是以 ASP.NET Core(原名:ASP.NET 5)這個開發框架來開發,因為 ASP.NET Core 是基於 .NET Core這個跨平台的 .NET 執行環境所開發,這同時也意味著這個 Web 不僅能在 Windows/IIS 平台上運作,也能在非 Windows 非 IIS 的平台上運作,所以當然你也能將它部署到 Linux、Mac OSX 或是 Docker 等,或是在這些平台上開發測試,所以在這個範例中,除了在 Windows 下使用 Visual Studio 之外,您也能在 Mac OSX 下使用喜愛的編輯器(我們也建議您可以使用跨平台的程式開發編輯器: Visual Studio Code)來開發測試 MyHealth.Web 專案。

Web 後端主要就是展示如何用 ASP.NET Core (以及 ASP.NET 相關套件)開發 Web 端應用程式,而用 Entity Framework Core (原本的 Entity Framework 7 更名為 Entity Framework Core 1.0)來處理資料庫的操作,所以如果您正開始學習 ASP.NET Core 以及 Entity Framework Core,可以從這些程式碼中看到不少操作範例。

Web 前端: 使用現代化前端開發套件

MyHealth.Web 的 Web 後台是用 AngularJS所開發的一個單頁應用程式(SPA, Single Page Application),你可以在 MyHealth.Web 專案中的 content/app 目錄中看到後台使用 TypeScript(*.ts)檔案搭配 AngularJS 來開發,這個範例使用大量的現代化前端開發套件,除了應用程式使用 TypeScript 及 Angular 之外,整個專案用到的許多工具用到了 npm做套件管理、也使用了 Bower做前端套件函式庫的套件管理、使用 Gulp來定義許多處理前端的工作、而且全站的樣式表也都是以 SASS開發再編譯成 CSS 的,所以這個範例也是非常適合用來學習這些新穎的前端技術,更可以體會到 Visual Studio 在整合這些前端技術上花費了多少心力。


圖: 使用 Gulp 定義的工作,Visual Studio 中的工作執行器總管都可以辨識並操作它們

一方面也由於是用這些主流的前端開發套件,所以專案拿到 Mac OSX 下進行開發也不用做任何特殊的設定或是找尋替代方案。

部署 Web 應用程式

如果你打算把所有的 HealthClinic.biz 的程式都建置起來,因為所有的 clients 都會到這個 Web 程式來存取資料,所以勢必要把這個 Web 應用程式部署在網路上以便存取,當然最簡單的就是將這個應用程式直接部署到 Azure Web 應用程式服務上,而資料庫的部份,也只需要使用 Azure SQL 資料庫服務建立一個資料庫就好了。在部署時,您不必修改專案中設定檔的資料庫連接字串,只需要在應用程式的部署環境中加入一個 DefaultConnection的環境變數,然後代入資料庫的連接字串,這個 Web 應用程式就會自己去讀環境變數中的 DefaultConnection的值而連上資料庫了。

 

除了 Azure Web 應用程式服務之外,你也可以參考這篇文章將它部署到 Linux 伺服器上,或是利用專案目錄下的 Dockerfile 將它製作成一個 docker image,以便在你的 docker 環境中部署,Visual Studio 也可以安裝這個小工具,就能直接在 Visual Studio 中打包成 Docker 的 image,甚至是發佈出去。

參考資料

原始文章發佈於「開發者之魂」部落格

從現代化診所的例子看微軟的開發及雲端技術: (2) 從 Node 應用程式看 TypeScript 以及 Visual Studio 與現代開發工具的整合

$
0
0

此為系列文章,系統架構以及應用簡介請參考第一部份

系統架構

整個 HealthClinic.biz的設計架構如圖所示:

整個系統後端由 ASP.NET Core 技術處理 Web 以及資料庫的操作,並且部署至 Microsoft Azure 雲端平台;而各個 client 端應用程式搭配不同的使用情境,但都是呼叫系統後端提供的 API 來存取資料。

目錄

這系列會分成 5 個部份來介紹這個範例所展示出來的開發技術

  1. ASP.NET Core 跨平台的 Web 開發及運行技術
  2. 從 Node 應用程式看 TypeScript 以及 Visual Studio 與現代開發工具的整合
  3. 使用 .NET 技術開發原生應用程式:傳統桌面應用程式、Universal Windows Apps
  4. 跨平台開發 Android 以及 iOS 應用程式:使用 Xamarin 或 Apache Cordova 技術
  5. 資料處理應用程式

專案角色

這篇文章主要是介紹 HealthClinic 範例中使用 Node.js 技術所開發的網站後台,在系統架構圖的左上角可以看到是診所管理人員(Clinic Management)所使用。

單就網站的功能來說,這個專案的功能與第一部份介紹的 ASP.NET Core 專案的網站後台是相同的,只是這個專案全以 Node.js 技術來實作,也藉此展示 Visual Studio 與 Node.js 開發的整合,以及使用 TypeScript做為主要的開發語言,可以運用它許多特色來加強 JavaScript 在中大型專案上開發的表現。


圖: 以 Node.js 寫成的診所管理後台

Visual Studio 家族與 Node.js 開發的整合

Node.js Tools for Visual Studio (NTVS)

首先以 Visual Studio 來說,只要安裝 Node.js Tools for Visual Studio (NTVS 是一個開源專案,目前支援 VS2012, 2013 以及 2015) 這個套件,就能夠在 Visual Studio 中建立及開啟 Node.js 專案,而在這個範例中就能順利開啟 07_Demos_NodeClinics.sln專案,而 Visual Studio 會偵測專案中的 package.json 檔案來協助運用 npm 來管理套件,所以你可以在專案視窗中確認 package.json 裡定義的套件是否全部都正確地安裝好了。


圖: Node.js 專案中 npm 套件管理結構

事實上在 Visual Studio 2015 中,只要你在專案中加入了 package.json檔案(不限專案),Visual Studio 就會在專案結構中加入 npm 套件管理的部份,以前一部份的 ASP.NET Core 專案為例,它會自動去讀取專案中 package.json檔案的內容來產生結構化資訊整理這些套件,你也可以在方案總管中處理安裝或移除的操作,這些操作也會自動更新 package.json檔案內容。

 
圖: ASP.NET Core 專案中讀取 package.json 所產生的 npm 套件管理結構

除了套件管理、程式碼編輯之外,也可以直接在 Visual Studio 中啟動瀏覽器來測試這個 Web 專案,並且在 Visual Studio 中進行除錯的工作。


圖: 在 Visual Studio 中偵錯 Node.js 的應用程式

Visual Studio Code 天生支援 Node.js 開發

Visual Studio Code雖然是一個編輯器,但是它對於 Node.js/JavaScript 程式碼的編寫做了一些優化(像是語法提示等),所以在開發 node.js 專案也可以利用到這些好處,而且,您還能使用 Visual Studio Code 直接執行並除錯 node.js 的應用程式,想像一下雖然在非 Windows 的環境沒有 Visual Studio 這麼功能完整的 IDE,也可以在 Visual Studio Code 中享受到這些輔助開發的工具。


圖: 使用 Visual Studio Code 偵錯 node.js 應用程式

使用 TypeScript 開發

如果你仔細看 HealthClinic.Web.Clinics專案的內容,你會發現前端頁面的部份(原始碼在 public/app目錄下)主要是以 TypeScript所寫成,由於 TypeScript 是 JavaScript 的超集合(superset),所以只是在原本的 JavaScript 語法中加入一些更明確定義資料型態等等的語法,你還是可以按照原本寫 JavaScript 的方式來寫程式,而這個專案用 TypeScript 開發的前端頁面會在建置時轉成瀏覽器看得懂的 JavaScript 語法(可以定義要轉成 ES3, ES5 或 ES6 的語法)。在這個範例中例用 gulp 定義了一個工作 ts: 透過 gulp-typescript來進行程式碼轉譯,ts這個工作順利結束後便會在 public/app目錄下產生轉譯完的 JavaScript 檔案。


圖: 左邊是 TypeScript 的原始碼,右邊則是轉譯後的 JavaScript 程式

與前端工具結合

在 Visual Studio 2015 中,只要你透過 npm 套件安裝了 Grunt或是 Gulp後,Visual Studio 的工作執行器(Task Runner)就會解析專案中的 gruntfile.jsgulpfile.js檔案,然後建立這些建置工作的 UI 操作介面,像在 HealthClinic.Web.Clinics 專案中使用了 Gulp 作為工作執行指令,於是 Visual Studio 的工作執行器就把 gulpfile.js裡定義的工作拆解出來,你就可以在工作執行器總管中來執行它們。

關於工作執行器的介紹可以參考 MSDN 台灣部落格上的這篇文章

參考資料

原始文章發佈於「開發者之魂」部落格

從現代化診所的例子看微軟的開發及雲端技術: (3) 使用 .NET 技術開發原生應用程式:傳統桌面應用程式、Universal Windows Apps

$
0
0

此為系列文章,系統架構以及應用簡介請參考第一部份

系統架構

整個 HealthClinic.biz 的設計架構如圖所示:

整個系統後端由 ASP.NET Core 技術處理 Web 以及資料庫的操作,並且部署至 Microsoft Azure 雲端平台;而各個 client 端應用程式搭配不同的使用情境,但都是呼叫系統後端提供的 API 來存取資料。

目錄

這系列會分成 5 個部份來介紹這個範例所展示出來的開發技術

  1. ASP.NET Core 跨平台的 Web 開發及運行技術
  2. 從 Node 應用程式看 TypeScript 以及 Visual Studio 與現代開發工具的整合
  3. 使用 .NET 技術開發原生應用程式:傳統桌面應用程式、Universal Windows Apps
  4. 跨平台開發 Android 以及 iOS 應用程式:使用 Xamarin 或 Apache Cordova 技術
  5. 資料處理應用程式

專案角色

這篇文章介紹的專案包括架構圖右上角給診所掛號櫃臺使用的傳統桌面應用程式,以及右下角給病人使用的通用 Windows 應用程式(UWP app)。這兩個專案的共通點是使用 .NET/C# 的技術來開發這兩種不同的應用程式——傳統桌面應用程式是用 WPF的框架開發,而病人使用的應用程式是 Windows 10 以後的 UWP應用程式,雖然是不同的技術,共通的只是使用 .NET/C#,不過這個範例也示範了在這樣的情況下,如何製作共用的函式庫,可以同時讓 WPF 的應用程式以及 UWP 應用程式來使用(甚至下一篇要介紹的 Xamarin 也能共用)。


圖: 使用 WPF 開發的傳統桌面應用程式)


圖: 使用 UWP 開發的通用 Windows 應用程式

除了應用程式之外,從架構圖上也看到這兩種應用程式都是從同樣的資料服務來存取的,所以這裡我們也可以在範例中看到如何透過 Azure 行動應用程式服務製作資料服務 API 供應用程式存取。

資料存取服務

資料存取服務在範例中是 06_Demos_MobileApp.sln這個專案,它是使用 Azure 行動應用程式服務來做成 API 服務供應用程式存取,雖然資料是由第一部份所介紹的診所管理人員使用 Web 所產生的,不過這個專案藉由 Azure 行動應用程式存取同一份資料庫(使用環境變數設定,或是修改 Web.config檔案中的 MS_TableConnectionString常數),然後只負責生成存取資料的 Web API 服務讓用戶端的應用程式來呼叫。

除了資料存取的 API 呼叫之外,這個範例也用 Azure 通知中樞(Notification Hub)來做各大平台的推播通知(push notification)的功能,所以只要設定好 iOS/Android/Windows 推播通知平台的憑證或密鑰,就可以輕易地在應用程式中發送或接收推播通知。

在 HealthClinic 這個範��的設定中,醫生用的應用程式可以發送推播訊息到病人的應用程式中。

掛號櫃臺使用的傳統桌面應用程式

打開 02_Demos_NativeMicrosoftApps.sln專案,你會看到有三個專案:

  • MyHealth.Client.Core: 共通的 .NET 可攜式類別函式庫(portable class library),在這個範例中此專案負責資料存取的邏輯(也就是呼叫資料存取 API 服務的部份,不涉及應用程式 UI 的操作),而不論是用 WPF 還是 UWP 甚至是下一篇要介紹的 Xamarin 應用程式都可以將這個類別函式庫引入後使用。
  • MyHealth.Client.Desktop: 使用 WPF 框架所寫成的傳統桌面應用程式的專案。
  • MyHealth.Client.W10.UWP: 使用 UWP 寫成的應用程式,可以在 Windows 10 的桌機、平板或是手機上執行。

在建置 WPF 或 UWP 的應用程式之前,要先至 MyHealth.Client.Core 專案中修改 AppSettings.cs檔案,最主要要將第一部份介紹 ASP.NET 寫成的 Web 它的 URL 位址設定至 ServerlUrl變數,而上述的資料存取 API 服務的 URL 則是設定在 MobileAPIUrl的變數上。

這個給診所中掛號櫃檯人員操作的桌面應用程式,功能就是在「查詢病人的掛號記錄」、「檢視病人的資料」、以及「預約新的掛號」,這些操作都是呼叫上述部署在 Azure 行動應用程式服務上的資料存取 API 服務,範例程式基本上就是 XAML + WPF 的功能展現,從 MVVM 模式的架構、自訂 XAML 控制項等等,算是不錯的學習 WPF 及 XAML 的範例。


圖:應用程式中檢視病人資料的畫面

病人使用的通用 Windows 應用程式

在整個 HealthClinic 範例中,設計給病人的有 Windows、Android 以及 iOS 三大平台的應用程式,其中 Android 以及 iOS 的應用程式會在下一部份介紹,Windows 的部份則是以 UWP 通用 Windows 平台的方式所設計的,簡單地說,就是一個應用程式能同時在 Windows 10 的桌機、筆電、平板、手機等裝置上安裝使用,這就是 UWP 想要達到的目標。

這個應用程式的作用除了讓病人可以檢視自己的掛號記錄之外,主要的資料讀取或是操作也都是引入了共通的函式庫來呼叫使用,而在這個應用程式中,也同時示範了如何用 Microsoft Graph將資料與 Outlook.com 結合;若醫生有針對病人的照護有下醫囑或用藥方式都會在這個應用程式中呈現,甚至是提醒病人用藥時間,算是病患自主管理的應用程式,而程式中也加入了與 Microsoft Band 2的結合,讀取手環中記錄的心跳以及睡眠資料。最後,若醫生使用他的應用程式(下一個部份會介紹)發送訊息給使用這個應用程式的病人,也會收到推播通知。


圖: UWP 應用程式的首頁,顯示了用藥時間、方式、以及掛號記錄等資訊

也由於這是一個 UWP 應用程式,所以當然也可以直接安裝到 Windows 10 Mobile 的手機上執行。與 WPF 應用程式相同,這個 UWP 專案沒有使用太多特殊的第三方函式庫,也是很紮實的 UWP 應用程式範例,而且您也可以從這個範例中看到它的 UI 設計是如何做到適應式設計(adaptive UI)。


圖:因為這個應用程式在 UI 設計上有考量到 Adaptive UI,所以在桌面環境執行時,寬度較低的 UI 顯示與手機上的 UI 相同,功能也完全相同。

參考資料

原始文章發佈於「開發者之魂」部落格
Viewing all 136 articles
Browse latest View live


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