The Will Will Web

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

ASP.NET MVC 開發心得分享 (20):與原始碼共舞 ( .NET 4.0 )

由於我們有個專案已經升級至 .NET 4.0,而我希望在開發時期要將 ASP.NET MVC 2.0 RTM 原始碼連同原專案一起開發,其實在不更動 System.Web.Mvc 專案的目標 Framework 為 3.5 的情況下是可以正常運作的,不過若像我們遇到一些比較特殊的情況可能會希望連 System.Web.Mvc 專案的目標 Framework 一併升級到 .NET 4.0,雖然升級後可以正常編譯,但是卻會在執行時期發生錯誤,以至於根本無法進行除錯,這時就必須動點小手腳才能讓 ASP.NET MVC 網站成功執行。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (19):Action 要小心使用 using

今天在 Code Review 的時候抓到一支程式臭蟲,這個功能是某 ASP.NET MVC 專案中的一個匯出下載檔案功能,該功能的 Action 已經寫完很久了,之前測試都正常,但是最近卻突然爆發錯誤,經程式追查之下才發現原來是程式在執行之前就已經把資源給釋放掉了,導致 ASP.NET MVC 無法正確回應資料到用戶端,以致於發生【System.InvalidOperationException: 作業無效。已經關閉連接。】的錯誤。

... 繼續閱讀 ...

人生第一本書:ASP.NET MVC 2 開發實戰將於 8/16 上市

我的人生第一本書【ASP.NET MVC 2 開發實戰】終於要出版了,從去年四月到現在寫了一年多的時間,真的很不好意思讓各位久等了,剛剛得知悅知文化來的消息,目前已經確定本書在 8/16 就可以在全省書店買到,而且本週六或週日開始在天瓏書局還會開放 75 折的預購 喔,此次為獨家預購:Visual Studio 2010 新書預購第二波(2010-08-06),預購截止日到 8/16 (一),有興趣的人可以好好把握。 ^_^

... 繼續閱讀 ...

Visual Studio 2010 開啟 ASP.NET MVC 1.0 專案的注意事項

我們之前有個專案是用 ASP.NET MVC 1.0 開發,原本大家都是用 Visual Studio 2008 在開發,但上個月有位同事將專案升級至 Visual Studio 2010,升級的過程並沒有發生任何問題,不過他有把 ASP.NET MVC 組件還原成 1.0 的版本,過了一個月後終於在測試機身上爆發問題,我今天也是查了十幾分鐘才找到問題發生的主因。

... 繼續閱讀 ...

ASP.NET 4.0 安裝在 IIS6 最常遇到的四個問題

昨天同事將一個 ASP.NET 4.0 的網站安裝到客戶的 IIS6 主機上 (測試環境),結果過程非常不順利,他們曾經一度覺得客戶的主機不知道經過幾隻手蹂躪過了(因為有好多人在共用 Administrator 帳號)進而產生排斥安裝在客戶主機以及 “為什麼我們要用 ASP.NET 4” 的感覺,不過在一群人的努力之下最後還是克服了困難,我特別因此寫下筆記,相信這些問題有其他人也可能會遇到。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (18):非同步控制器開發

ASP.NET MVC 2.0 新增 非同步控制器 (AsyncController) 的開發方式,若是你的網站流量大但是大部分的運算資源是落在與 CPU 無關的運算上時,例如 SQL Server、讀取外部網路資源、呼叫外部 Web Service 等等,就很適合利用此功能來開發 ASP.NET MVC 應用程式,由於這是個比較進階且冷門的技術,所以我大致寫一些 IIS 處理非同步要求的原理與 ASP.NET MVC 非同步控制器的撰寫方式以及開發應注意的事項。

... 繼續閱讀 ...

關於 Visual Studio 2010 安裝、試用的兩三事 (含補安裝套件)

前陣子為了準備 Visual Studio 2010 上市發表會提前拿到繁體中文版的試用版,但只有 30 天的使用時間,所以在前幾天發生了使用期限到期的通知,而且安裝了新版一樣無法繼續使用。除此之外,由於我意外移除了 Microsoft ASP.NET MVC 2 - Visual Studio 2010 Tools - CHT 安裝,卻上網找不到安裝檔,也是費了好一番功夫才找到安裝套件。今天將我分享 2 個與「安裝」有關的技巧。

... 繼續閱讀 ...

分享幾個 Visual Studio 2010 專案升級後無法編譯的問題

若使用 Visual Studio 2010 升級現有 ASP.NET 2.0 / 3.5 的專案到 ASP.NET 4.0 在大部分的情況下應該都沒問題才是,就算你在開啟就專案時選擇「不升級」照理說也應該沒問題,但前陣子在測試的過程中還是遇到了幾個不管升級到 ASP.NET 4 還是保留在原本的 ASP.NET 3.5 都有遇到網站進行編譯的情況,以下是一些經驗分享。

... 繼續閱讀 ...

VS2010 上市發表會:Web 開發效率提昇 - ASP.NET 4.0

今天是 Visual Studio 2010 上市發表會 (台北場) 的日子,這段時間無不用盡心思研讀文件與撰寫簡報,為了就是能夠完美演繹我今天講的主題【 Web 開發效率提昇 - ASP.NET 4.0 】,這是我第一次講這麼多人的場次,感覺應該要緊張才對,神奇的是今天上台完全沒有緊張感,我覺得可能是準備充分的關係,昨晚又拉公司同事下來聽我預演到晚上 11:30 (萬分感謝),所以心理感覺很踏實,雖然最近嚴重睡眠不足,但這次學到一次寶貴的演說經驗,感覺蠻開心的。

... 繼續閱讀 ...

解決 OutputCacheLocation 指定為 ServerAndClient 的問題

Web 效能調校博大精深,眉眉角角的細節之多實在難以整理,我想大部分人也都跟我一樣,也是從一次又一次與茶包戰鬥中累積經驗,這次又遇到了一個有趣的問題。當我想將頁面設定輸出快取時,可能會希望同時快取在伺服器端(Server)與用戶端(Client),因此在設定 OutputCache 時有個 Location 屬性,我們會將其設定為 ServerAndClient 或 Any,但是你可否知道即便你這樣設定,一樣無法快取網頁內容於用戶端(Client),所以單單這樣設定並沒有達到我們真正想達到的目的 ( 同時在 Server 與 Client 快取網頁 )。

... 繼續閱讀 ...

解決 N-Tier 多層架構設計下 LINQ to SQL 效能不彰的問題

ASP.NET MVC 的開發原則有個 SoC (Separation of Concern) 的觀念,我們在開發較大型的 ASP.NET MVC 應用程式時會特別將資料存取層(Data Access Layer) 再細分為兩個層次,分別是 Repository Layer (資料倉儲層) 負責資料存取與欄位格式驗證,與 Service Layer (服務提供層) 負責資料篩選與商業邏輯驗證,但分層之後遇到了一個之前沒想過的問題,進而導致 LINQ to SQL 查詢效能不彰。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (17):OutputCache 帶來的問題

為了能讓網站運作時能夠得到最好執行效能,運用 OutputCache 機制絕對是不可或缺的技能之一,而在 ASP.NET MVC 套用 OutputCache 機制就是使用 OutputCacheAttribute Class 即可輕易做到輸出快取,不過在套用 OutputCache 的過程也很有可能會遇到一些莫名的錯誤,須了解背後原理才能得知問題發生的原因。

... 繼續閱讀 ...