2013年9月28日 星期六

Visual Studio 2013 開發 ASP.NET MVC 於執行偵錯模式時的小改變

Visual Studio 2013 有不少的改變,除了很多大功能的增進與改善之外,有許多小地方的改變也蠻貼心的,讓我們在開發時可以更為順暢,這篇文章只是記錄一下這個小改變。


2013年9月27日 星期五

ASP.NET MVC 防範 CSRF 攻擊 - 在 AJAX 裡使用 AntiForgeryToken 的處理

在 ASP.NET MVC 裡要防範 CSRF 攻擊可以在檢視頁面上加入使用 AntiFrogeryToken,並且在後端所對應的 Action 方法加上 ValidateAntiForgeryToken Attribute,這樣就可以防止 CSRF 的攻擊,相關的資訊我之前有寫過依篇文章來說明「ASP.NET MVC - ValidateAntiForgeryToken 與 自定 HandleError 處理顯示客製的錯誤訊息頁」。

但如果網站的前端與後端互動大多都是經由 AJAX 方式的話,似乎就無法加上 AntiForgeryToken 來防護 CSRF 的攻擊,有些朋友是認為因為 Javascript 操作是不能跨網域的,所以就不用刻意對 AJAX 的操作加入 AntiForgeryToken 防範 CSRF,但我則是認為還是有必要去做這一層的防範,外在的攻擊手法是我們無法可以預測的,我們對於網站還是有必要去做到一些根本的防護,至少是多一層保障。

而這一篇則是跟大家說明如何在 AJAX 的操作裡使用 AntiForgeryToken。

 


2013年9月23日 星期一

ASP.NET MVC 建立可重複使用的縣市鄉鎮市區連動下拉選單 (Reuseable Cascade DropDownList)

這個部落格裡,光是連動下拉選單為主題的文章我就寫了好幾篇,如下:

jQuery 對下拉選單 DropDownList 的操作 - 2:連動下拉選單

jQuery 練習題:三層式連動下拉選單(無後端整合)

ASP.NET MVC 3 - 基本三層連動式下拉選單應用

jQuery 練習題:ASP.NET MVC 連動下拉選單與 jQuery UI Autocomplete ComboBox

連動下拉選單 - 使用 jQuery EasyUI ComboBox

其實連動下拉選單的功能並不難做,當頁面上需要有連動下拉選單功能時,都需要再去動手做,從頁面、Javascript 程式以及後端程式,一次兩次的需求的話是還好,不會太麻煩,但是有很多頁面都需要做連動下拉選單的時候,就會覺得很麻煩了,最常見的就是「縣市鄉鎮市區連動下拉選單」,尤其是當有一堆表單或是同一個頁面上有很多個別欄位都需要縣市與鄉鎮市區資料的時候。

所以這邊就使用 ASP.NET MVC 的 Partial View 把縣市鄉鎮市區連動下拉選單的做成可以重複使用,而且可以應付同一個頁面有多組資料都需要縣市、鄉鎮市區連動下拉選單的需求。

P.S. 此功能是顯示台灣的縣市與鄉鎮市區資料。

 


2013年9月21日 星期六

twMVC @ Microsoft TechDays Taiwan 2013 - (09.24 ~ 09.26)

每年的九月就是期待著一年一度的 Microsoft TechDays 盛會,在去年的時候 twMVC 也有參與,twMVC 與 Study4.TW 在此盛會中有個攤位讓大家能夠認識我們,而今年同樣也是承蒙台灣微軟的贊助,讓 twMVC 在今年仍然可以在此盛會中與大家見面,此次的 Microsoft TechDays 合作社群除了 twMVC 與 Study4.TW 之外,也加入了 SQL PASS 台灣,

image

去年社群攤位的位置是位在比較少人會經過的地方,而今年就不一樣了,合作社群攤位將會與 Microsoft MVP 攤位擺在一起,結合 MVP 與社群的力量,讓大家可以在這裡除了找社群之外也可以向在各領域擁有豐富經驗的台灣微軟 MVP 諮詢與交流。

 


2013年9月15日 星期日

當 ASP.NET MVC 的 DropDownList 遇到了 ViewData or ViewBag

這個部落格有關 DropDownList 的文章有 10 篇,而主要在講解 DropDownList HtmlHelper 有以下兩篇:

ASP.NET MVC 3 - DropDownList 的基本設定方式

ASP.NET MVC 3 - DropDownListFor 的設定方式

另外進階一點的有:

ASP.NET MVC 3 - 基本三層連動式下拉選單應用

不過還是時常會遇到有人在問 ASP.NET MVC DropDownList 怎麼設定以及卡關的問題,而這些問題中就屬有關 ViewData or ViewBag 的最多,甚至於有很多遇到問題的人會視為 Bug 或是列為絕對不能用的作法。其實這都是沒有詳細去追查原因的擅自定論,如果花點時間去追查一下 ASP.NET MVC 的原始碼就會知道原因,而且也會知道怎麼去正確的設定 DropDownList。

 


2013年9月12日 星期四

使用 Unity.MVC4 (Enterprsie Library Unity 2.1) 的進階註冊類別方式

之前曾經有位大家說過使用 Unity bootstrapper for ASP.NET MVC 的進階註冊類別方式:
Unity bootstrapper for ASP.NET MVC 進階註冊類別方式

但因為是使用 Unity 3 的關係才能夠使用那樣的方式,而且還必須是建置在 .NET Framework 4.5 的 ASP.NET MVC 專案才能夠使用,而使用非官方的 Unity + ASP.NET MVC 整合套件「Unity.MVC4」就沒辦法啦!

這一篇將會為各位說明如何在使用 Unity 2.1 的情況下也能做到自動註冊類別的方法。

 


2013年9月11日 星期三

使用 ASP.NET MVC 4 Bootstrap Layout Template (VS2012)

使用 Bootstrap 有一段時間也已經實際用在好幾個專案,在之前剛結束的「twMVC - Workshop #1」裡帶著學員實作的專案也是使用 Bootstrap,Bootstrap 不久前也已經推進到了 3.0 版本,而 VS2013 裡所建立的 ASP.NET 專案(新版 ASP.NET)不管是 WebForm 還是 MVC 都已經將專案範本使用 Bootstrap 了,雖然目前在 VS2013 RC 所建立的 ASP.NET 網站範本所使用的 Bootstrap  為 2.3.1 版,不過在 VS2013 的正式發佈版本會在專案範本裡使用 Bootstrap 3.0。

而在 VS2012 開發網站時,如果要在網站裡加入 Bootstrap,除非我們所拿到的網站 prototype 是已經加入了 Bootstrap,不然就是需要我們動手去做,而網路上大多都是介紹如何在一個已經建立好的網站專案裡透過 NuGet 加入 Bootstrap,這樣的方式也是可以,但如果一開始建立好的網站範本就如同開發 ASP.NET MVC 5 那樣,已經套用好 Bootstrap 的 Project Template,這樣子就會方便了。

接下來就跟大家簡單說明使用「ASP.NET MVC 4 Bootstrap Layout Template (VS2012)」。

 


2013年9月10日 星期二

Visual Studio 2013 RC 相關資訊整理

今天(2013/09/10)發佈了 Visual Studio 2013 RC,不管是 MSDN、TechNet 訂閱用戶或是非訂閱用戶都可以在微軟的 Visual Studio 產品專頁下載 VS2013 RC,而許多部落格以及網站都陸續發表了 VS2013 RC 的相關文章,因為資訊相當多,所以這邊就做了整理,給有興趣了解的朋友可以在這裡看到這些資訊。

RC,Release Candidate,「指可能成為最終產品的候選版本,如果未出現問題則可釋出成為正式版本。」
RTM,Release To Manufacturing,「發放給生產商。某些電腦程式以「RTM」作為軟體版本代號 …… 以 Windows 7 為例:RTM 版與零售版的版本號是一樣的。另外一種 RTM 的稱呼是 RTW(Release To Web),表示正式版本的軟體發布到 Web 網站上供客戶免費下載,這個名詞在 ASP.NET 元件以及 Silverlight 的發布上很常見。」

from Wiki - 軟體版本週期

 


2013年9月9日 星期一

Unity bootstrapper for ASP.NET MVC 進階註冊類別方式

在「ASP.NET MVC 使用 Autofac」這篇文章裡介紹了另一套 IoC Container 「autofac」於 ASP.NET MVC 的使用方式,而且 autofac 以及一些 IoC Container 都有提供進階的註冊類別方式,可以讓我們在註冊類別的時候可以有比較方便的作法,例如:

image

而 Unity 3.0 也有提供類似這樣的註冊類別的方式,接下來就說明如何使用。

 


2013年9月7日 星期六

ASP.NET MVC 使用 Autofac

在這之前有關 IoC Container 已經為各位說明了 Enterprise Library Unity, Simple Injector 這兩種,其中 Enterprise Library 是介紹了第三方所製作的 ASP.NET MVC 與 Unity 整合套件「Unity.MVC」,以及 Enterprise Library 於 6.0 版 Release 時所推出的「Unity bootstrapper for ASP.NET MVC」,除了前面所說的兩種 IoC Container 之外,其實還有很多 IoC Container 也是有許多開發者在使用,各種 IoC Container 都有其優缺點,但也沒有辦法說那一種IoC Container 比較好或比較壞,只有適合不適合的 IoC Container,因為專案與開發者或團隊的因素佔絕大部分。

Autofac 是我第一個接觸的 IoC Container,也應該是比較多人知道或是使用的 IoC Container,Autofac 使用上有很多的優點,再加上官網以及網路上的相關文章、討論也相當多,所以就變成很多人第一個學習或是專案優先採用的 IoC Container,這篇內容一樣是拿「分層架構」的範例程式來做說明,IoC Container 改使用 Autofac,不過 IoC 的概念與內容再其他文章裡有講過,所以就不會講太多理論的內容,直接切入實作。

 


2013年9月3日 星期二

小工具介紹:IIS Express GUI 與 IIS Express Manager

從 VS2010 開始,開發網站時就多了 IISExpress 這個程式開發伺服器,使開發網站時於偵錯模式下的運作可與 IIS 一般,更能貼近真實的執行環境,而到了之後的 VS2013 將只有 IISExpress 作為開發伺服器,因為原本的 ASP.NET 開發伺服器(ASP.NET Development Server)是以 IIS 6.0 架構去執行,所以將會在 VS2013 裡消失。

IISExpress 有如一個小型的 IIS,但是並沒有一個圖形操控介面工具存在,所以想要瀏覽一個開發中的網站時,除非有開啟 Visula Studio 或是以指令碼去啟動 IISExpress 並且執行要瀏覽的網站後才能夠瀏覽,並不是很方便。

不過昨天發現到有一個小工具,有提供一個相當簡單的 GUI 介面,可以讓我們用相當方便的方式開啟或關閉電腦中在 IISExpress 裡有建立虛擬目錄的網站,而且不管是 IISExpress 7.5  或 8.0 都可以使用喔!

 


2013年9月2日 星期一

ASP.NET MVC 與 Elmah.MVC 2.1.1 以及使用 Windows Azure SQL Database 的Schema 修改

將近一年的時間沒有寫關於 Elmah 或 Elmah.MVC 的文章,因為這工具的安裝與使用並不是太過於複雜,所以之前的文章內容都已經含蓋了大部分的功能,而最近透過 NuGet 為專案加入 Elmah.MVC 時發現到版本推進到了 2.1.1,觀察安裝後的內容後有發現到了一些改變,畢竟自從去年 11 月所更新的 2.0.2 之後,一直到今年的七月才又再一次的更新到 2.1.0,這一篇就來看看有做了什麼樣的改變。

 


提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。