ASP.NET – 搭配 OmniSharp 和 Yeoman 隨處使用 ASP.NET 5

隨著開發團隊的工具選擇越來越多,架構也必須提供更多樣化的選擇。ASP.NET 5 已擁抱跨平台支援,包括透過開放原始碼工具 OmniSharp 與 Microsoft Azure 中 Docker 中的開發。在本文中,我們將告訴您如何在您選擇使用的平台上開始使用 ASP.NET 5 ,涵蓋所有需要使用 ASP.NET 5 的開發 Web 應用程式。 專案設定及執行可能很困難,現代 Web 應用程式的開發也有多種選擇,身為一位 Visual Studio 的使用者可能已使用過 IDE 內建的範本和工具,像是 Web Essentials 等協助踏出新專案的第一步,但不是使用 Windows 和 IDE 的例如 Visual Studio 的開發人員通常必須依賴像是 Yeoman 或 Node.js 來建構及建置 Web 應用程式的命令列工具,現在 ASP.NET 5 已經徹頭徹尾地改變,我們要讓所有開發人員有多種平台的選擇,可以不只針對您的 Windows 專案使用,還針對 Linux 與 OS X。以下是設定和建立專案從非 Windows 作業系統的觀點來使用 ASP.NET 5…


微軟開發部門 DevOps 經驗談 (四) – 從使用者經驗中學習

本文接續: 微軟開發部⾨ DevOps 經驗談 (一) – 從 Agile 邁向 DevOps 微軟開發部門 DevOps 經驗談 (二) – 從經驗中學習 微軟開發部門 DevOps 經驗談 (三) – 為 DevOps 量身打造的系統 今天要來談的是如何從使用者經驗中學習。 從使用者經驗中學習 我們盡可能讓所有開發的功能,都能提供良好的使用者體驗,就算這是件相當困難的事。舉例來說,我們花了很多功夫讓服務達到 99.9% 的服務可靠度 (SLA, Service-level agreement),但我們並不因此而滿足。 我們的目標並不僅僅只是 SLA,而是希望提供 100% 完全沒有缺點的服務。這也代表著我們必須要對發生機率是 0.001% 的例外狀況斤斤計較。由於異常狀況經常會隱藏在監控的數據之中,我們甚至為此改寫了三次計算 SLA 的演算法,來讓我們的監控標準更加的嚴謹。參考下圖一,在一開始,我們使用外部進入測試,來判斷服務是否正常運行,如圖表中的虛線所示,我們的第二個演算法是觀察所有使用者進行的操作指令中,失敗和執行緩慢的數量比例,來判斷是否有功能發生異常,你可以參考圖表中的失敗和緩慢指令數量。在服務成長之後,由於使用者數量過多,也可能會讓問題被隱藏在相對大的系統數字之中,目前我們的作法是計算每分鐘遇到問題的使用者數量相對於每分鐘所有使用者數量,作為判斷系統是否有異常的指標,如圖中黑色現所示。 圖一、呈現了計算SLA的三種演算法,外部進入測試沒有找到任何的異常,追蹤指令執行狀況呈現了有一小時發生執行緩慢的狀況,而在使用者異常相對比例中更反映了有三小時的執行緩慢情形發生。 如同你所看見的,在四個小時的週期中,第一條虛線顯示沒有異常,第二條線顯示大約有一小時的異常,而第三條線卻顯示了有三個小時服務的效能是十分糟糕的。其實我們沒有必要這麼嚴格的設定線上數據觀察的機制,但我們為了提供給使用者更好的服務品質,對每一個數據都會更嚴格的要求自己。 注重安全性 在我們服務的其中一個安全標準中,要求了我們必須確保服務能夠保護使用者隱私,確保資料安全,在提供穩定服務的同時維持安全品質。以前我們開發地端版本的軟體提供給客戶使用時,就曾經在軟體的安全性上下了不少苦工,甚至會假設如果服務被入侵時,要怎麼自動偵測或判斷服務的安全受到了威脅。 除此之外,我們使用擴展單元來部署服務的方式帶來了一些額外好處,SU0 除了作為我們服務的第一個部署單元之外,還可以透過它來進行安全演習,強化驗證並我們服務的安全性。我們會使用這個擴展單元來舉辦一些類似“遊戲日”的活動,例如在內部舉辦安全性比賽,看看服務是否能夠抵禦入侵,而使用 SU0 更大的好處是不會影響正在使用我們服務的使用者們! 不同的部署方式 在我們開發地端版本提供給客戶使用的軟體時,我們花了十分多的精力調整開發系統和流程,想辦法讓客戶使用軟體遇到異常的時間降低,換句話說,由於產品提供給客戶之後,萬一客戶在使用時發生任何的異常或問題,要處理的成本都會變得十分的高,所以我們必須要在提供給客戶前就盡可能的降低問題發生的機率,避免我們常常要發行修正更新給客戶來解決異常,也避免造成客戶對我們的軟體有不好的印象。 DevOps 以及服務的雲端化改變了我們的思維,我們要考慮如何盡可能降低修復問題和重新部署到線上服務的時間,這也讓我們有了不一樣的目標,同時必須還要考慮修復問題、發現問題、找到原因以及學習改善根本原因的時間。 我們還想到在設計時必須多為了彈性做考量。線上服務可能會因為周邊相關的系統中斷而導致異常,尤其是在使用量尖峰時段很容易發生,但既然是線上服務,就必須將使用上的影響降到最低,並搭配對應的重試機制,例如使用 Circuit Breaker…


MSDN 論壇精選 ( 9/17 – 10/13)

MSDN 論壇  是一個可以讓開發人員自由提出問題、尋找資訊的好地方,歡迎大家多多利用,與社群中的同好們一同分享 Microsoft 技術資訊。而我們會不定期整理論壇精選給大家,希望對您的學習有所幫助!以下為 2015 09/17 – 10/13  的論壇精選,大家在閱讀時有疑問也可以直接加入論壇中討論喔。現在只要到微軟社群之星學院問問題,就有機會月月抽好禮,參加請點這裡,我們更提供不收費線上課程 Channel 9 讓您尋求更多知識。 標題 日期 寫入記憶體出現記憶體保護的問題 2015/09/17 如何改變 @Html.TextBoxFor 的 Name 屬性以便傳回使用者相關問題 2015/09/20 使用 SQL 語法分割字串問題 2015/09/21 如何在 Crystal Report 中列印不同長度細目的資料    2015/09/22   如何將建立好的資料來源指定給 Crystal Report Viewer 的 Datasource 2015/09/25 將 Dataset 指定給 Crystal Report 的錯誤訊息 2015/09/29 Windows 應用程式的 Listview 問題 2015/09/30 SQL Server 2014 找不到 msdora…


Team Foundation Server 2015 正式發行

好消息!微軟正式發行了 Team Foundation Server 2015 的最終版本,Team Foundation Server 2015 是對任何開發團隊提供之地端的應用程式生命週期管理與開發維運整合解決方案,且包含對提升Team Foundation Server 深度與廣度能力的大量更新,Team Foundation Server 2015 使開發團隊更易於分享程式,追蹤工作與交付軟體。此篇文章您將看到: 開發維運整合與敏捷度 工作規劃 開發維運整合與測試 組建與發行 結論 開發維運整合與敏捷度 現今的開發團隊首要專注於敏捷開發,對思考如何建立一個敏捷的團隊與流程的開發團隊而言,擁抱開發維運整合方式,逐漸成為了主流 Team Foundation Server 2015 與 Visual Studio Online 提供了完整的開發維運整合服務,讓團隊能夠持續交付,持續監控與持續學習,便於最佳化團隊敏捷度,在 Team Foundation Server 2015 與雲端的 Visual Studio Online 服務之間,我們提供了全面的開發維運整合能力。 多年來, Team Foundation Server 已成為 .NET 開發團隊的絕佳工具,但近幾年,Team Foundation Server 與 Visual Studio Online…


軟體開發技術的學習大寶庫 – TechDays 2015 開發工具平台及技術課程

2015 年的 TechDays 課程今年總共八大主題 104 堂技術課程,關於開發工具平台及技術的課程公佈如下,總共三大主題 27 堂技術課程,包含影片及簡報下載,歡迎分享並上線學習 【DEV】 現代化開發與軟體生命週期管理 【UWP】通用 Windows 平台 【ACP】 公有雲平台  【DEV】 現代化開發與軟體生命週期管理 現今軟體開發週期越來越快,因應客戶需求及市場反應以加速改版的挑戰越來越大,軟體生命週期管理是一個團隊邁向成熟的必經之道,另透過整合雲端平台打造現代化及持續部署的 ASP.NET 網站設計及網站服務的開發部署,都是不可忽視的趨勢。本課程主題將著重於協助企業驗證系統上線效能及可用性的「雲端壓力測試」,和應用程式「自動化佈署及過版」的重要性,而針對微軟創新的開放、開源策略的理念,到打造出現代化應用程式,也都會在本課程主題中提及。  課程代碼 課程名稱 課程介紹 DEV301   敏捷企業決勝關鍵:DevOps 開發維運一體化 李智樺    交付高品質與現代化的應用程式,需要有高效率的軟體生命週期機制與管理方法。在這個課程中,您將學習到如何運用 Microsoft ALM 開發維運平台,提昇讓專案團隊能量,並更容易的整合開發維運團隊,達到持續交付成品、反饋資料分析、有效提升團隊的產能,促使專案成功。 DEV302 實現 End to End 的雲端敏捷開發流程 董大偉 敏捷開發對實際專案有什麼幫助?從管理變更優先順序、增加產能、提升專案能見度、改善團隊士氣,到提升軟體品質,在在凸顯了敏捷開發的重要性。本課程透過實際應用,帶您了解如何透管簡單的敏捷軟體開發方法進行持續整合與佈署,來實踐 End to End 的雲端敏捷開發流程。 DEV303 開發運維一體化(DevOps)的敏捷九劍 胡德民/徐鈞安 真實世界中的軟體團隊開發,由於互聯網與移動應用的市場特性,正受到史無前例的挑戰:版本推進的時間單位從年縮短到周,對於需求變更的看法,已經從「如何管理」轉變成「如何適應」,隨著軟體發佈範圍的擴大以及與商業行銷的密切連結,對於安全性與品質的關注也提高前所未有的程度。由於交付時間縮短,佈署週期加快,隨之而來與運維團隊對接模式的問題,以及相互協作的過程並快速回應的機制,「開發運維一體化(DevOps)」成為敏捷深化之後的顯學。此外,團隊的快速擴張成為常態,如何落實團隊協作與工作紀律,更是讓許多研發與專案管理者束手無策。微軟全球研發團隊的敏捷轉型已經是知名的成功案例之一,從盒裝軟體發展邁向雲計算服務運維的過程中,微軟本身也掌握了寶貴的DevOps實踐經驗,這些來自於實戰的功能需求,具體都落實在 Visual Studio 2015 工具與伺服器中。許多革新性的功能,以Scrum的敏捷式反覆運算運算開發方法為基礎,能夠快速幫助您推進軟體發展過程,從敏捷專案規劃、統一進行版本管理、版本比較、進行各種測試與品質管制、自動化佈署與交付,推進到開發過程與運維階段的雙向管理,落實軟體發展的生命週期管理,提高團隊協作效率,實現開發運維一體化,深化專案管理透明性與可預測性。 DEV304 HTML +…


微軟正式宣布推出 PowerShell DSC for Linux Version 1.1 以及新的 Linux 資源

我們非常高興的正式宣布推出 PowerShell DSC for Linux version 1.1,您可以在這裡或到 GitHub-WPSDSCLinux 下載它。在這個新版本當中多了下列幾種應用情境: 支援 Azure Automation DSC Azure Automation DSC,建立在 PowerShell 期望狀態組態設定 (Desired State Configuration,DSC) 基礎之上,以便為你提供一種更簡單的組態配置管理經驗。Azure Automation DSC 採用跟目前 Azure Automation 同樣的 PowerShell 指令碼,以及同樣的 PowerShell DSC 管理層。同時,Azure Automation DSC 允許你在雲端環境中,編寫及管理 PowerShell DSC、匯入 DSC 資源以及產生 DSC 節點組態( MOF 文件)。這些 DSC 項目,將會存放在 Azure 自動化 DSC 提取伺服器 (DSC Pull Server) 當中,以便在雲端環境或企業內部的目標節點(例如,實體伺服器及 VM 虛擬主機)可以選取它們,並且自動化指定以符合它們的運作狀態,同時向 Azure 自動化回報期望組態的最新狀態。此外,在最新的 DSC Linux v1.1…


TACO: 由 Microsoft 開發的 Apache Cordova 開發工具

2013 年 5 月份時,Microsoft 宣佈了在 Visual Studio 上做了一個支援 Apache Cordova 的開發工具,經過一年多不斷地改良,這個工具不但直接內建在 Visual Studio 2015 的安裝功能清單中、微軟也開發了許多 Cordova plugin 來簡化應用程式連結 Microsoft 服務的開發,也做了結合在 Mac 上建置 / 在 Visual Studio 中偵錯的遠端工具,而最近也將這些開發成果,重新包裝並開源成一組跨平台的套件:TACO – Tools for Apache COrdova,可以透過 npm -g install taco-cli 的指令安裝。 TACO 這組套件主要是以 TypeScript 寫成,並且主要是命令列工具(完全相容於 Apache Cordova 官方的 Cordova CLI),用來產生 Cordova 專案(透過 cordova-cli)、設定及建置專案、以及執行測試建置好的應用程式,而在最新的 Visual Studio 整合的 Apache Cordova 開發工具中也直接整合…


瞭解 Microsoft Edge 所稱 ”常青” 瀏覽器的意思

  最近釋出的 Windows Insider 預覽版本中(Build 10547),包含了數種新的功能給測試人員們測試使用,我們推薦各位測試人員點選這裡查看我們於 Microsoft Edge 的功能更新紀錄,在裡面可以知道有甚麼新的功能。如果您還未加入測試人員計畫,趕快點選這裡,讓您能獲得最新釋出的新功能! Microsoft Edge 設計時,就已定位是以常青瀏覽器 (Evergreen browser) 的形式開發與維護,這代表瀏覽器的更新為 Windows 服務的一部分。因此瀏覽器的版本編號變動相較過往的版本編號還要少,而是聚焦在一個主版本號上。雖說如此,我們知道在有些底層的版本編號對於某些特定的網頁服務情境來說仍然會是相當重要的。所以在本次的釋出更新內容中,我們把瀏覽器版本以及作業平台版本加入了一些詳細的表示方式,而可以在 User-Agent 字串以及 Microsoft Edge 的設定面板中看到詳細的版本編號。 EdgeHTML 版本編號以及 Edge UA Token        Microsoft Edge 以及 Edge HTML 渲染引擎第一次的預覽版本釋出時,我們要求開發者們不要再依賴瀏覽器 User-Agent 字串中 Token 的版本(如目前正式版的 ”Edge/12.10240” ),因為這個 Token 版本將會經常變動。這個 Token 代表著 EdgeHTML 版本為 12,在之後 Microsoft Edge 的預覽版本中可以在設定面板中看到。 目前預覽版本 Microsoft Edge 設定畫面中,可以看到 Microsoft…


微軟開發部門 DevOps 經驗談 (三) – 為 DevOps 量身打造的系統

本文接續: 微軟開發部⾨ DevOps 經驗談 (一) – 從 Agile 邁向 DevOps 微軟開發部門 DevOps 經驗談 (二) – 從經驗中學習 今天要來談的是如何為 DevOps 量身打造系統。 Visual Studio Online 是一個全球性的服務,必須提供 24x7x365 服務不中斷,也保證擁有 99% 的可靠度,甚至還有財務擔保。雖然這些 SLA 上的保證並不是我們產品的最終目標,但為了要讓我們的使用者更安心的使用我們的服務,我們必須至少要提供這樣的穩定性。Visual Studio Online 並不會因為需要維護而有任何的停機時間,也不會發生任何需要重新安裝設定的事情,所有的新功能都是透過更新的方式上線的,過程也是全自動化。這也代表我們服務架構必須要是低耦合性,明確定義服務與服務之間的邊界、溝通方式,以及準確的控制要更新程式碼的版本。為了能夠瞭解客戶的需求,Visual Studio Online 也是運行在 Azure 上,我們完全透過 Azure 所提供的功能來建立這項服務。 自動化部署 我們的開發部門中有一個叫做服務部署 (Service Delivery) 的小團隊,專門處理網站部署工作,以及維持我們服務穩定運行,這個團隊簡稱為 SD。在每個 Sprint 結束後的星期一,SD 會使用 Visual Studio Release Management 來進行部署 (參考圖 1)。通常我們會在上班時間進行新版本的發行,這是因為上線後我們必須要觀察線上運作是否正常,萬一有問題也能即時發現並修正。由於…


MSDN 論壇精選 ( 8/12 – 9/17)

  MSDN 論壇  是一個可以讓開發人員自由提出問題、尋找資訊的好地方,歡迎大家多多利用,與社群中的同好們一同分享 Microsoft 技術資訊。 而我們會不定期整理論壇精選給大家,希望對您的學習有所幫助!以下為 2015 08/12 – 09/17  的論壇精選,大家在閱讀時有疑問也可以直接加入論壇中討論喔。 現在只要到微軟社群之星學院問問題,就有機會每個月抽好禮唷,參加請點這裡。 我們更提供不收費線上課程 Channel 9 讓您尋求更多知識。 標題 日期 如何判斷單筆資料是否存在於資料庫 2015/08/12 如何在 Windows 10 系統環境下測試 USB CV  2015/08/12 Addobject  無法使用問題 2015/08/12 搜尋運算方程式取代原始假設結果問題 2015/08/17 如何用 C# 產生動態 button 對應動態 Textbox  2015/08/20 GridView 日期格式修改與自動帶入現在時間問題 2015/08/25 如何解決網站管理員的錯誤問題 2015/08/28 音效播放 AudioPlayMode.WaitToComplete 的問題 2015/08/30 將參數傳給 VB.NET 執行檔出現錯誤 2015/09/03 Windows 8.1 測項通過但 Windows 10…