All posts tagged 'asp.net mvc' | The Will Will Web

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: 作業無效。已經關閉連接。】的錯誤。

... 繼續閱讀 ...

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 升級現有 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 的過程也很有可能會遇到一些莫名的錯誤,須了解背後原理才能得知問題發生的原因。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (16):在網站專案下運作

之前有很多人問我 ASP.NET MVC 到底可不可以在 Visual Studio 的網站專案(WebSite Project)模式下運作,也就是在 ASP.NET 動態編譯的架構下運行 ASP.NET MVC,事實上是沒問題且非常容易的,唯一的缺點就是會失去 Visual Studio 開發工具的有效支援,例如 Add Controller 或 Add View 等等的工作可能會變的沒辦法自動化等等。

... 繼續閱讀 ...

利用 WebClient 類別模擬 HTTP POST 表單送出的注意事項

我們都知道 WebClient 類別是個簡單易用的東西,不只可以用作 HTTP 用途,連 FTP 都能用,想偷懶時很快就能寫出一些網路資料上傳、下載的程式,像我在寫一些測試程式時經常會使用 WebClient 類別,但大多情況都用來「下載網頁」居多,少有模擬表單上傳資料的情況,但利用 WebClient 類別在「傳送表單資料」時要小心使用,否則遠端接不到資料又很難除錯時哪就麻煩了。

... 繼續閱讀 ...