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

此為系列文章,系統架構以及應用簡介請參考第一部份。 系統架構 整個 HealthClinic.biz 的設計架構如圖所示: 整個系統後端由 ASP.NET Core 技術處理 Web 以及資料庫的操作,並且部署至 Microsoft Azure 雲端平台;而各個 client 端應用程式搭配不同的使用情境,但都是呼叫系統後端提供的 API 來存取資料。 目錄 這系列會分成 5 個部份來介紹這個範例所展示出來的開發技術 ASP.NET Core 跨平台的 Web 開發及運行技術 從 Node 應用程式看 TypeScript 以及 Visual Studio 與現代開發工具的整合 使用 .NET 技術開發原生應用程式:傳統桌面應用程式、Universal Windows Apps 跨平台開發 Android 以及 iOS 應用程式:使用 Xamarin 或 Apache Cordova 技術 資料處理應用程式 專案角色 這篇文章介紹的專案包括架構圖右上角給診所掛號櫃臺使用的傳統桌面應用程式,以及右下角給病人使用的通用 Windows 應用程式(UWP app)。這兩個專案的共通點是使用 .NET/C#…


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

隨著軟體開發人員面對的應用程式平台愈來愈多,Microsoft 覺得要提供給開發人員更好用的開發工具增加開發效率、好用的雲端平台能快速部署應用程式、以及整合或相容更多非 Microsoft 的技術(含開源技術),這些年來 Visual Studio 家族不斷增加功能與彈性,希望能幫助任何的開發人員開發任何類型的應用程式。 最近,我們舉行了一場 mini Connect(); 的一個線上研討會,向各位開發人員展示目前微軟的相關開發技術,不論您原本是不是使用微軟的開發技術或開發工具,都有機會找到可以使用的部份。而我在 Keynote 中大致地說明了一下現在 Visual Studio 家族的發展,目前錄影已經上線: 您可以完整觀賞這部影片來瞭解全貌,以下我也幫各位先標註幾個重點,歡迎您根據書籤來挑出有興趣的部份再深入瞭解。 .NET Core 開源且跨平台 [8 分 25 秒] 介紹開源、且可以運行在任何作業系統上的 .NET Core,並且展示 ASP.NET Core 1.0 (原名:ASP.NET 5)。關於 .NET Core 可以參考 https://dotnet.github.io/。 [13 分 24 秒] 使用 docker 工具打包 ASP.NET Core 1.0 的網站。相關工具可以參考 https://aka.ms/vslovesdocker。 [15 分 20 秒] 使用 dotnet 命令列工具在…


.NET Core CLR 釋出原始碼

在去年年底(2014/11)時,Connect() 2014 研討會上宣佈了 .NET Core 開源的計劃,我也在之前的文章提過這個計劃,當時釋出了 .NET Core 的核心函式庫的原始碼,而今天 .NET team 再釋出 .NET Core CLR 的原始碼,讓整個 .NET Core 開源計劃又再往前進了一大步。 .NET Core 的展望 在原本 .NET 的世界裡,聽到開發人員說:「我這個程式是基於 .NET Framework 4.0 所寫成的。」這句話隱含了這個程式用到了 .NET Framework 4.0 相關的函式庫,所以這個程式必須在 .NET Framework 4.0 的 CLR 上才能執行或是被引用。而這套 .NET Framework 發展至今包山包海,不僅用在桌面應用程式的開發,也在伺服器上的應用程式(如:ASP.NET 等)被廣泛使用,但是發展得太龐大就會衍生出其它的問題,舉例來說,.NET team 要推出在瀏覽器上做一個 client app 的環境,.NET Framework 顯然太龐大了,於是當時就弄出了一個精簡 .NET Framework 的東西叫作 Silverlight,它讓 .NET…


.NET 開源三部曲(三):如何迎接新的 .NET 時代

看完前面兩篇(1, 2),應該已經能慢慢瞭解,現在所謂的「.NET 開源」、「.NET Open Source」並不是完全把現有的 .NET Framework 整個打開(雖然這裡有個子集的參考版),而是引入開源的精神,並且設計一個新的 .NET Core,除了用於優化 App model(client-side) 以及 ASP.NET (server-side)應用程式,也以開源的模式進行——藉由開源及社群化來向全球的開發人員吸取回饋及創新,並且帶領正式產品的快速更迭,更安全更符合使用者(開發者)的需求。 面對這樣的一個大轉變,身為開發人員究竟應該怎麼迎接這個新的世代呢?這篇文章不多說廢話,直接幫大家整理懶人包: 下載使用 Visual Studio Community 版 在這次 Connect(); 大會上也宣佈了在 Visual Studio 的產品中推出免費的 Community 版本,現在已經可以免費下載安裝使用 Visual Studio Community 2013 了,只要你是個人開發者、學術研究或是為了開源專案開發都可以免費合法使用(見 Q&A),它的功能如同 Professional 版,可以用來完整開發桌面應用程式、Windows 市集應用程式、跨平台 app、ASP.NET 應用程式、雲端應用程式等等之外,也可以安裝各種擴充套件來強化功能(如安裝 Python Tools for Visual Studio 就變成強大的 Python IDE;或是 Node.js Tools for Visual Studio 變成 Node.js…


在 Mac/Linux 上執行 ASP.NET 5 (ASP.NET vNext, ASP.NET MVC 6)的網站應用程式

在 ASP.NET vNext 重新設計 ASP.NET 核心並且開源之後,要在非 Windows/IIS 的環境下執行 ASP.NET 的應用程式不再是不可能的事,這篇文章介紹如何在 Mac OSX 環境下執行 ASP.NET 5(或是 ASP.NET vNext、ASP.NET MVC 6)的網站或應用程式。 新的 ASP.NET 核心代號是 K,而一切的操作都是透過 K Version Manager(kvm) 完成,若是在 Mac OSX 下,可以透過 Homebrew 簡單快速安裝 KVM,當然你也可以直接從 https://github.com/aspnet/home 這裡取得,透過 Homebrew 安裝可以執行下面的指令: brew tap aspnet/kbrew install kvm 順利安裝完成後,視你的 shell 是 base、zsh 就在 ~/.bashrc、~/.zshrc 裡加上一行 source kvm.sh 才會有一個 kvm 的函式可以完成後面的操作。 先執行 kvm upgrade…


.NET 開源三部曲(一): .NET 基金會及 Roslyn 編譯器

Microsoft 在今年 11 月的 Connect(); 活動中,在多項新消息中包括開源了 .NET Framework 的核心(.NET 官方部落格的文章),於是引發了很多 Microsoft 擁抱開源、.NET 開源的討論,但其實這並不是 Microsoft 或 .NET 開始開源的第一天,不論是將開源專案融入 Microsoft 的產品之中(使用 jQuery、Bootstrap 等做為網站專案範本)、抑或是將 Microsoft 的技術開放源碼(e.g., IronPython, ASP.NET MVC 等)都已經行之有年,而比較正式的官方宣示,應該要算是今年稍早在 4 月的 //build/ 2014 開發者大會中,宣佈成立 .NET 基金會以及 .NET 編譯器(代號:Roslyn)平台的開源。 .NET 基金會 為什麼宣示開源要成立基金會?我們可以先看看其它開源專案、社群的作法,首先,很多人熟悉的泛 UNIX 系統(包含 Linux、BSD 等)中的 GNU 計劃的開源軟體,就是由自由軟體基金會(Free Software Foundation)來管理;而許多網際網路重要的開源軟體專案,如:Apache HTTP 伺服器、Apache Hadoop 分散式運算平台等,都是由 Apache 軟體基金會來管理維護;還有堅持網路為開放平台的 Mozilla 基金會也主持了許多漫遊網際網路的軟體專案,如:Firefox…


初探 Roslyn 編譯器平台 (2): 使用 Roslyn 提供的 Syntax API 以及 Compilations 物件類別

Roslyn 專案的簡介請閱讀前一篇。 安裝 Roslyn SDK (Preview) 在前一篇文章中我們介紹了在既有的 Visual Studio 2013(或是已經內建整合支援的 Visual Studio “14″)裡安裝 Roslyn End User (Preview) 的 Visual Studio 插件,讓一些分析程式碼的工作交給 Roslyn 來處理。而在這篇文章要介紹的是,如何使用 Roslyn 所提供的 APIs 來做到這些程式碼分析的工作。要使用這些 APIs,除了可以下載安裝 Roslyn SDK (Preview) 的 Visual Studio 插件,就可直接建立含有 Roslyn 相關套件的專案範本: 也可以在專案中,透過 NuGet 套件管理系統來安裝 Roslyn NuGet 套件: Install-Package Microsoft.CodeAnalysis -Pre 一樣可以安裝相關套件參考,並在程式中使用這些功能: Syntax API 編譯器要對程式碼進行編譯,當然要先確定使用者寫的程式的語法(syntax),除了判斷語法是否正確之外,也要瞭解它的結構——哪些是變數、保留字、字串或數值等等。在 Roslyn 中提供的 Syntax API 就提供了解析(parse)語法、建立語法樹狀結構(syntax…


初探 Roslyn 編譯器平台 (1): 從認識到使用

在 //Build/ 2014 開發者大會上,有 「C# 之父」之稱的 Anders Hejlsberg 在 Keynote 上公佈並且現場開源了 Roslyn 編譯器平台專案。在現在的開發技術中,編譯器的技術不是只是用來把開發者撰寫的程式碼變成平台可以執行的東西而已,它還可以分析程式碼的語法(syntax)、語意(semantics)等等,除了幫助使用者更瞭解他自己寫了些什麼之外,還可以應用在 IDE(如:Visual Studio)的開發輔助技術,像是語法提示的 IntelliSense、產生合適的程式碼、移至定義(Go to Definition)、尋找所有參考(Find all references)等等功能,當然還有與其它函式庫繫結、產生平台可執行程式碼等功能。所以一個編譯器的 pipeline 可能長成這樣: 而 Roslyn 這個專案最主要有兩個任務: 提供一個開源的 .NET 編譯器,可以讓人瞭解這個編譯器黑盒子做了什麼事情,甚至是除了 Visual Studio 之外的 C#/VB.net 編譯器或開發工具(如:Mono project)都可以整合使用。 作為一個可以讓開發人員以 API 形式呼叫編譯器內某功能的編譯器平台 所以有了 Roslyn 這個編譯器平台之後,做為開發人員,你就可以透過 APIs 的方式來使用編譯器 pipeline 中的任何一個功能,而 Roslyn 提供的 APIs 如下圖所示: 在開發中使用 Roslyn  如果您現在已經是使用 Visual Studio 2013 以及…


//Build/ 2014 第二天 Keynote 重點整理 (下)

這篇文章是接續上集的內容。 Microsoft Azure SQL Database Azure 儲存體中的 SQL Database 現在提供 500GB 的方案(Premium 等級),而且也有 99.95 的 SLA(結束 preview)。 另外,Azure 現在也提供可以回溯到任何時間點的 Database! 當你不小心弄壞了 SQL Database,隨時可以回溯之前的版本 也支援了地理複本的備援機制,當你設定了這樣的地理備援機制後,如果主要的資料中心發生異常,就會主動切換到備援的資料中心繼續提供服務。 Azure SQL Database 可以設定使用地理複本備援 主要的資料中心發生問題時,可以切換至備援的資料中心 關於 Azure Data 的部份在 //Build/ 2014 公佈的更新總結,其中也包括了像 HDInsights 新的支援。 Azure Data 的更新總結 Core .NET 接下來是由 Anders Hejlsberg 來介紹 .NET 平台的一些發展,首先是 .NET Compiler Platform “Roslyn" project,它提供了針對 C#…