The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET MVC 開發心得分享 (24):擴充部分類別的建構子

在 ASP.NET MVC 使用 Entity Framework 資料庫先行開發模式 (Database-First Development) 的時候,因為所有 POCO (Plain Old CLR Object) 類別都會透過 *.tt 程式碼產生器範本自動建立,當我們想擴充資料模型時,勢必不會直接把驗證屬性直接寫在這些類別裡,而是在另一個部分類別檔案中,透過 MetadataType 屬性 (Attribute) 宣告一個 Metadata 類別 (又稱 Buddy Class)。另一方面,我們也會在資料模型的 POCO 類別的「建構子」方法中宣告屬性的預設值,但這時問題來了,如果我們在自動產生的資料模型類別中,已經宣告過「建構子」的話,那我們該如何在另一個部分類別檔案中再次「宣告」建構子呢?這就是這篇文章想要解決的難題。

... 繼續閱讀 ...

多奇數位創意 Outlook 行事曆使用技巧 (會議通知、會議告知)

身為資訊工作者,每天要應付大量資訊,手邊就算有強大的軟體支援,但若不會使用,或是觀念不夠完整,都將無法有效運用。而且,現今的工作,很少有僅自己一人獨立完成的,若要召開會議或會議告知,在使用 Outlook 的過程中都有些注意事項。今天我要來分享我這幾個月刻意整理起來的一些 Outlook 行事曆使用技巧,以及在公司裡經常耳提面命的小細節,大多都是與召開會議相關的小細節。

... 繼續閱讀 ...

使用 NuGet 更新套件時將 jQuery 升級到 2.0.2 應該如何降級

我們在 Visual Studio 2012 裡面會使用 NuGet 管理員管理那些常用的開發函式庫,例如 jQueryJson.NETEntityFrameworkELMAH、… 等等。各位可能也了解到,目前 jQuery 最新版為 2.0.2 版,這個最新版基本上僅支援 IE9 以上瀏覽器 ( IE8 以下不支援 ),因此大部分人應該都不會選擇安裝最新版的 jQuery,但是在使用 NuGet 安裝或更新套件的過程中,卻有可能不小心將 jQuery 套件自動升級到最新版,導致網站發生許多相容性的問題。今天這篇文章主要就是說明如何手動將 jQuery 降級到 1.x 的版本。註: 此方法適用於任何 NuGet 套件,所以若要指定降級版本,都可以參考這篇文章。

... 繼續閱讀 ...

AngularJS 的 ngSwitch 指令 (directive) 使用陷阱與範圍觀念

我們公司目前已經有兩、三個案子開始使用 AngularJS 進行開發,過程中自然會遇到一些陷阱,我們當然也知道,這些陷阱是因為觀念不完整所造成的,只要你認真看完看懂官網文件在講些甚麼,自然不會犯這種錯,但我也相信 99% 的開發人員不會把官網文件全部看完才開始撰寫程式。這次同事遇到的問題是在使用 ngSwitch 指令用以切換不同網頁內容時,會抓不到 Model 的問題,我們就來看看遇到這種問題應該如何解決。

... 繼續閱讀 ...

Visual Studio 2013 – ASP.NET 與 Web 功能快速預覽

TechEd North America 2013 正如火如荼的進行中,看了第一天的幾場,又再次陷入資訊爆炸的狀態。這次看見 Visual Studio 2013 推出了許多 ASP.NET 與 Web 相關功能預覽,覺得還蠻興奮的,特別摘錄 Microsoft ASP.NET, Web, and Cloud Tools Preview 影片中幾個亮點,讓大家快速掌握 VS2013 與 ASP.NET 的新功能。

... 繼續閱讀 ...

關於 AngularJS 表達式與 ngBind 指令 (directive) 的使用技巧

在開發 AngularJS 的時候,使用 Angular 表達式是一件很過癮的事,因為所有表達式的內容,都會因為 AngularJS 自動繫結的關係,所有 model 的變化,都會自動反映到頁面上 ( View )。不過,當 AngularJS 正在初始化的時候,由於尚未開始運作,且網頁又已經被載入到瀏覽器中,因此使用者很有可能會看到 Angular 表達式出現在頁面上,而這就不是一件有趣的事了!今天我要來講解幾個 Angular 表達式的使用技巧,以及使用 ngBind 指令 (directive) 的時機。

... 繼續閱讀 ...

在 Windows 8 將 NB 的無線網路變成可分享的 Wi-Fi 熱點

三年前我曾經寫過一篇【如何將 NB 的無線網路變成可分享 Wi-Fi 的 AP 模式 (Ad-Hoc)】的文章,這幾天因為到大陸出差,又需要再次利用筆記型電腦 (NB) 分享 Wi-Fi 熱點出來,以便讓我的手機使用飯店提供的網路,這才發現原本的文章已經無法適用於 Windows 8 作業系統了。所以趁機重新研究了一下新的設定方式,並整理成這篇文章。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (23):反向表列路由限制的語法

我曾經在【ASP.NET MVC 開發心得分享 (21):Routing 觀念與技巧】這篇文章中分享過幾個路由開發技巧,其中在【技巧 1:替 Routing 網址設立條件限制】的部分有示範如何透過簡單的 RegEx 規則運算式 (正則表達式) 來限制路由變數的內容規則。不過,通常你在網路上能查到的這些 路由限制 (Route Constraints) 範例,大多使用「正向表列」的方式進行比對,這的確在大部分開發情境下都是這樣用的,但在特定比較少見的開發情境下,你或許需要「反向表列」的方式來限定路由參數的比對規則,尤其是在 ASP.NET MVCASP.NET HttpHandler 混合執行的情況下,更容易遇到這樣的問題。

... 繼續閱讀 ...

搞懂 AngularJS 預設模組 select 標籤的 ngOptions 參數用法

今天晚上花了點時間,把 AngularJS 預設模組裡 select 標籤的 ngOptions 參數用法給徹底搞懂,這是我前幾天在公司展示 AngularJS 開發實戰時,一個稍微卡住的地方。今天利用 JSBin 自己弄出一個完整範例後終於大澈大悟。說實在的,AngularJS 這玩意要弄通他,對初學者來說好像還真的有點難度,今天聽同事跟我說,我前幾天再講解 AngularJS 的時候,只覺得我 DEMO 的很帥、程式寫的很快,但自己無法深刻理解,回家想兩天之後才跟我說:「保哥,我想通了,這玩意好棒喔!」XDD

... 繼續閱讀 ...