[ASP.NET MVC][Entity Framework] Entity Framework 的 TPH 會額外產生表格?

這是一個很有趣的問題,當初我在編寫 ASP.NET MVC 5 網站開發美學 CH4 (4.6.5) 的實作繼承時,使用的是已有 Database 和 Table Schema 的狀況,沒有注意到 Database Creation 時的狀況,這個問題是由讀者反應,我做了個實驗才發現這個問題,但解決方法也很簡單,在此留下記錄以供其他讀者查閱。

...繼續閱讀 »

[ASP.NET] ASP.NET 5 的 Dependency Injection

ASP.NET 5 正式將 Dependency Injection 的功能植入核心內,以提供開發人員與元件開發商更具彈性的 ASP.NET 5 基礎建設,MVC 6 內也利用了 Dependency Injection 的功能重新設計了 Controller 以及 View 的 Service Injection 能力,而未來 Dependency Injection 還有可能會更深入許多的 API,所以還不知道什麼是 Dependency Injection 的人,可要好好學它一下了。

...繼續閱讀 »

[Windows Azure] 使用 Linked Server 方式連接 Windows Azure SQL Database

本文介紹使用 Linked Server 存取 Azure SQL Database 的作法,但要特別聲明,微軟其實並不建議用這個方法,針對跨資料庫查詢,微軟提供了 Azure SQL Database Elastic Query 的功能,請參閱:https://azure.microsoft.com/zh-tw/documentation/articles/sql-database-elastic-query-overview/,而我也將會找時間編寫這個功能的介紹文章。
...繼續閱讀 »

[Windows Azure] 同質群組 (Affinity Group) 的使用

同質群組 (Affinity Group) 是 Windows Azure 上用來將自己的服務集中在一個地方的一種群組設定,在 Spring Release 之前,它只有設定讓所有服務都集中在相同的資料中心的能力,實用性真的不高,所以很少有人使用它,不過在 Spring Release 之後,同質群組已經和虛擬網路服務連結在一起了,也就是說,同質群組已經變成要配置 VM 到自己的虛擬網路內時必須設定的項目,而且不論是何種服務 (Website Role, Web Role, Worker Role, VM 等) 都適用,等於是給自己的網路加上了一個識別標籤一樣。

...繼續閱讀 »

[Book][Review] Microsoft Windows Azure Development Cookbook

在今年九月的時候,收到來自於國外一間出版公司 Packt Publishing 的電子郵件,邀請我為他們的書 Microsoft Windows Azure Development Cookbook 寫篇書評,當時我原本是因為語言的關係回絕,但他們回覆說允許我使用繁體中文來撰寫,所以我就答應了,但因為很來事情實在太多,應接不暇,所以才拖到現在寫,對他們是有些抱歉 ...

...繼續閱讀 »

[Windows Azure][IT鐵人賽系列] Day 19 – Remote Desktop Connection

Windows Azure Platform一開始的設計大多是以開發人員為中心,因為它是一個Cloud Platform,要先吸引開發人員的目光,才會讓它的應用變得更廣泛,但是雲端運算不是只有開發人員的任務,在應用程式發行之後,維運則是MIS與企業內的IT人員的工作,所以在1.3版開始,微軟慢慢的加入了與MIS維運有關的功能,其中一項就是Remote Desktop Connection(遠端桌面連線)。

...繼續閱讀 »

[Windows Azure][IT鐵人賽系列] Day 18 - Windows Azure Diagnostics Services

開發雲端應用程式的思維可不能像平常開發應用程式一樣,我們每天在開發應用程式時,都能運用除錯器來偵錯,或是調台近端的主機上傳測試用,或是公司自己有自動化測試的機制,然而當應用程式上了雲端環境後,這些習慣幾乎通通不能用了,原因很簡單,雲端應用程式執行的地方可能是離你幾千公里外的公有雲機房,我們不可能在機房內掛除錯器偵錯,就算要上傳也要幾經思量(要錢),但是我們又希望能夠記錄或測量應用程式的執行細節,這時我們能夠用的,就是Windows Azure Platform本身的診斷服務(Diagnostics Service)。

...繼續閱讀 »

[Windows Azure][IT鐵人賽系列] Day 17 - Storage Service (4): Drive Storage

Drive Storage是Windows Azure SDK特別為.NET的開發人員所準備的一個儲存格式,它只存在於Windows Azure SDK的組件和API中,它並沒有對外的REST APIs,除了使用Windows Azure SDK外,沒有別的方法可以使用,它本身是基於Page-BLOB為主的儲存服務,但將它模擬成一個獨立的磁碟機供應用程式使用...

...繼續閱讀 »

[Windows Azure][IT鐵人賽系列] Day 16 - Storage Service (3): Queue Storage

學過資料結構的人一定都聽過Stack和Queue吧,Stack是後進先出(LIFO),而Queue則是先進先出(FIFO)的資料結構,商用系統的實務開發上,Queue的應用範圍比Stack要大的多了,因為在實務上會用到先進先出的案例太多了,舉凡線上訂位(購買)、抽號碼牌、選位等等商用的需求都會要求先進先出的條件,故Queue的應用範圍會比Stack大的多,微軟當然也很清楚這一點,所以在Storage中也實作了一個專門處理Queue的服務,即為Queue Storage。

...繼續閱讀 »

[Windows Azure][IT鐵人賽系列] Day 15 - Storage Service (2): Table Storage

Table Storage是一個模擬關聯式資料庫的結構化資料(structured data)存取服務,它就像是在雲端中的表格一樣,允許應用程式可以在Table儲存體中宣告並存取自己的資料結構。而在Table儲存體的內部,則是橫跨多個伺服器與磁碟儲存區的基礎架構,微軟的Windows Azure開發小組將核心內的所有作業都隱藏起來,只顯露出一個REST API供外部應用程式存取,而且都是透過相同的URL來呼叫,因此Table基本上並不是儲存在應用程式所在的VM,而是在Windows Azure Platform內部自動規範的儲存區域中。

...繼續閱讀 »

[Windows Azure][IT鐵人賽系列] Day 13 - Windows Azure Storage Services

作為應用程式以及其他類型線上服務的核心平台,Windows Azure Platform除了針對雲端運算的基礎建設、營運與管理部份特別設計並支援外,它也必須要具有應用程式以它為基礎開發服務的相關支援,以一個作業系統來說,除了硬體與運算資源的分配與控管外,對軟體最直接最基本的支援,非儲存功能莫屬。如果沒有儲存功能的話,作業系統只能執行運算,而不能利用近端的媒體來儲存資訊,因此作業系統必須要有儲存的能力,才能夠達到開放給應用程式發展的最低限度服務。

...繼續閱讀 »

[Windows Azure][IT鐵人賽系列] Day 11 - 部署到雲端前的準備工作

在完成Cloud Application的開發也完成本地的測試後,我們就可以將應用程式發行到雲端環境了,當然,使用者必須要先申請到Windows Azure Platform的帳戶,然後登入到Windows Azure Management Portal建立新的主機服務(Hosted Service),才可以進行上傳的工作。

...繼續閱讀 »

[Windows Phone] Windows Phone SDK 7.1 RTM

千呼萬喚始出來的 Windows Phone SDK for Mango (v7.1) 終於出來了,不僅只是它是 Windows Phone 7.5 Mango 手機的應用程式開發工具,它也是第一個發布繁體中文版的 Windows Phone SDK 工具,這代表著,它終於可以和中文版的 Visual Studio 2010 整合在一起,不用再像 7.0 時還分兩個開發工具了 (我知道有後門作法,但我指的是正規作法)。

...繼續閱讀 »

[Windows Azure] Windows Azure SDK v1.5 announced

在 9/13-16 舉行的 BUILD WINDOWS (其實就是以前的 PDC 啦) 研討會中,除了眾所矚目的 Windows 8 和 Visual Studio "11" 以外,雲端當然也不會缺席,微軟在 9/14 的 Keynote 2 中發表了 Windows Azure SDK v1.5,並隨著新的 Visual Studio Tools for Windows Azure v1.5 一起發表,這次的 Windows Azure SDK v1.5 中,除了以往功能的小部份增強外,還多了幾個有意思的功能。

...繼續閱讀 »

[SQL Server] 鎖定使用的藝術 (Part 1) - 鎖定控制類型

只要是寫到資料庫存取程式,而且程式又是多人運作 (這裡的多人是指 100 個人以上同時存取) 的環境時,很難不碰到並行處理 (Concurrency Process) 的問題,並行處理在資料庫系統中是一門很重要的學問,因為它一定會出現在商業運轉的環境,而且問題不只是資料庫,像是執行緒的處理也會遇到這樣的問題,所以在並行環境下資料庫都會有一些行動或處理方式,鎖定 (Lock) 就是其中一種。

...繼續閱讀 »

[如何學習寫程式] #9 - 寫程式的人,你不能不會 "資料結構" Part 1

資料結構 (data structure) 是資料的組成方式,資料可以是字串或是二進位資料 (binary data),組成方式則要看不同資料整理的需求,可以是分布在記憶體不同位置,然後用特定方法管理,或是以特別的格式排列組合,以達成有效率管理資料的方式,而一般程式設計人員接觸到最多的是資料結構,因為這會決定你在程式中處理資料的方式,簡單的資料當然可以用很簡單的結構來組織,但是如果在寫程式時不在乎資料結構的話,很容易發生寫出的程式效率低落的問題。

...繼續閱讀 »

[Code隨手寫] 樂透對獎程式兼新年恭賀

適逢虎年除夕,即將邁入兔年的前一刻,台彩宣布百萬中獎的100個號碼,但因為一張一張對真的會眼花,索性花了十來分鐘撰寫了一支小程式,由電腦去做這件事,雖然對的結果 ... 沒中 Orz,但其實寫下去也是蠻有趣的,但會不會再改成真的可以對獎的程式,那就看我想不想做了。順道藉此文恭祝大家新年開運旺旺來,心想事成,萬事如意。

...繼續閱讀 »