Time of Update: 2018-12-05
前面的筆記做了關於Ninject(MVC三類工具裡面第一類IoC容器),本次的筆記是關於VS裡面提供的Unit Testing工具的使用以及Moq(類比工具)。1.Visual Studio內建的單元測試工具除了使用微軟內建的單元測試工具,我們還可以選擇NUnit--非常流行的一款測試載入器。接下來我們建立一個項目ProductApp,你也可以使用NUnit,猛擊這裡擷取。它的使用跟VS內建的非常類似。首先我們建立用來的測試的類和介面,如下所示:public class Product {
Time of Update: 2018-12-05
本次的筆記分為三個部分:Ninject(依賴注入容器,前面有介紹的,如果你第一次路過這裡,可以先看下我前面的筆記),NUnit(單元測試工具),Moq(用來類比在單元測試中的介面實現).今天我做的筆記是關於第一部分:Ninject.如果你對依賴注入(DI)沒有任何的瞭解,你可以看看我前面的筆記或者在網上搜尋相關的資料進行瞭解。下面通過一個執行個體來介紹Ninject的使用,首先我們需要猛擊這裡下載相關的DLL。我們仍然用到的前面的Product,實現技術所有Product的總價值。下面通過幾個步
Time of Update: 2018-12-05
眾所周知,每個asp.net頁面都是一個HttpHandler,並且它也是一個控制項。我們來看來它的本身定義。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public class Page : TemplateControl,IHttpHandler {} 當IIS處理http的請求時,都會根據請求的副檔名來判斷,找到對應的ISAPI,
Time of Update: 2018-12-05
繼續完成上次提到的第二部分的筆記:Razor視圖引擎1.Razor是什麼:Razor是MVC3裡面提供的一個新的視圖引擎。ASP.NET視圖引擎通過尋找包含服務端指令的特殊元素用來處理web頁,正如我們早期所注意到的那樣,標準的ASPX視圖引擎依賴<%和%>元素,這對於我們來說是非常熟悉的。通過Razor,MVC的Team
Time of Update: 2018-12-05
一,建立松耦合的組件1."分解關注點"是MVC模式裡面一個非常重要的特性。我們想要在應用程式裡面建立的組件儘可能的獨立,這樣我們就能管理比較少的依賴關係。理想情況下,每個組件都是孤立的,不知道其他組件的存在,處理應用程式的其他領域僅僅通過抽象介面,這就是所謂的松耦合,它讓我們的應用程式更加容易測試和修改。通過一個簡單的例子可以協助我們理解,假如我們想寫一個發郵件的組件,暫且就把這個組件命名為MyEmailSender,接著我們實現一個介面,這個介面定義了所有需要發送郵件的功能,也暫且將這個介面命
Time of Update: 2018-12-05
主題:應用領域驅動開發(Applying Domain-Driven Development)Domain Model是MVC程式的"心臟",其他的一切,包括Controllers和Views僅僅是用來跟Domain Model互動的一種方式,ASP.NET MVC並沒有限制使用在Domain Model上面的技術,我們可以自由的選擇跟.net framework互動的技術,並且這樣的選擇是非常多的。不僅如此,ASP.NET MVC為我們提供了基礎的架構和約定來協助Domain
Time of Update: 2018-12-05
接著昨天的筆記:為第一次的Demo添加動態輸出(Dynamic Output)整個應用程式平台的關鍵點就是構建動態輸出,在MVC中,構建資料是controller的工作,將資料作為HTML的呈現是View的工作,很明顯這裡有一個將資料從Controller傳遞到View的過程。其中的一種方式就是通過ViewBag,ViewBag是Controller基類的一個成員,它是一個動態對象,我們可以給它賦予任意的屬性值,並在View中呈現。修改Index Action如下: public
Time of Update: 2018-12-05
序論:asp.net mvc出現已經有兩三年的時間了(2009開始1.0版本),但是這麼方面的中文學習資料仍然非常少,特別是asp.net mvc3,幾乎就沒有中文的學習書籍。在英文的書籍中有兩本是非常經典的mvc3教程:《Professional ASP.NET MVC 3》--作者:Jon Galloway , Phil Haack, Brad Wilson , K. Scott Allen和《Pro ASP.NET MVC 3 Framework》--作者:Steven
Time of Update: 2018-12-05
1,什麼是nginx簡介Nginx ("engine x") 是一個高效能的 HTTP 和 反向 Proxy 伺服器,也是一個 IMAP/POP3/SMTP Proxy 伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 網站開發的,它已經在該網站運行超過兩年半了。Igor 將原始碼以類BSD許可證的形式發布。儘管還是測試版,但是,Nginx 已經因為它的穩定性、豐富的功能集、樣本設定檔和低系統資源的消耗而聞名了。更多的請見官方wiki:http://
Time of Update: 2018-12-05
轉自:http://www.cnblogs.com/ms0017/archive/2011/08/17/Microsoft-NET-Mono-MySQL-MVC-Linux-Large-WebSite.html在上篇文章裡(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列舉了國內外用ASP.NET開發的大型網站有哪些。
Time of Update: 2018-12-05
資料來源控制項代表若干已命名的資料檢視,每個視圖能管理一個資料集合。該資料與資料來源控制項關聯,通過SQL式的操作(Select、Insert、Delete和Count)進行管理,能夠實現排序與分頁。資料來源控制項有兩種--表格式資料來源和層次型資料來源。下表對資料來源控制項做了簡要說明: 注意,SqlDataSource類並不只針對SQL Server,它還可以串連到任何能夠管理關聯性型資料的ADO.NET提供者。層次型資料來源控制項參見下表: 注意,資料來源控制項不會被顯示在頁面上,
Time of Update: 2018-12-05
ASP.NET並沒有包含對擴充程式的具體實現。然而,它定義了供所有自訂擴充程式和ACT中所有擴充程式使用的基類ExtenderControl。我們可通過該類建立自己的擴充程式。但並不建議這樣做,因為利用ACT庫中的擴充程式更簡便易行。 下面的代碼給出了“焦點擴充程式”控制項的原始碼,這個簡單的擴充程式能為目標控制項添加高亮行為,以便在該控制項獲得焦點時更改其外觀:using AjaxControlToolkit;...namespace Core35{
Time of Update: 2018-12-05
從本質上講,Linq-to-SQL能夠將類與方法映射到資料來源對象上。LINQ概述 大多數應用程式以某種資料倉儲為中心。多年來,架構師在設計應用程式的過程中,一直通過對象對問題域進行建模。這些對象包括用於串連到資料訪問層的串連,來艱難地與資料庫進行互動,並通過物件模型建立關係模式。但這種方式對於簡單的應用程式顯得有些繁瑣。 LINQ的出現就是為瞭解決這些簡單應用程式的需求,為其提供一套功能強大且易用的工具,能在更高的概念層上對資料存放區進行操作。 .NET
Time of Update: 2018-12-05
一旦實體物件被載入到記憶體中,插入新訂單的工作就非常簡單,無非是建立Order類的執行個體並將其添加到客戶對象的Orders集合中。Linq-to-SQL會跟蹤資料內容中的更改,並在調用資料內容對象的SubmitChanges時將那些更改傳回資料庫。下例顯示了一個更改資料的過程:string id = "ALFKI";Customer c = dataContext.Customers.SingleOrDefault(c => c.CustomerID == id);if(c !=
Time of Update: 2018-12-05
HttpRequest對象包含了傳入Web請求的HTTP資料包中包含的所有資訊。HTTP標題、查詢字串、表單的輸入欄位、路徑和URL資訊的內容,被分別組織在不同的集合以及其他特殊對象中,能以編程方式便捷地訪問。當ASP.NET開始處理Web請求時,HttpRequest對象會被填充,並通過HttpContext的Request屬性暴露出來。HttpRequest類的屬性 HttpRequest類的屬性可被分為三類:請求類型、用戶端資料和串連有關請求的資訊 下表列出了有關請求資訊的屬性:
Time of Update: 2018-12-05
資料庫管理系統往往都提供二進位大對象的支援。當然,二進位對象欄位不一定非要儲存映像,它還可以儲存媒體檔案或長文字檔或其他二進位內容。 下面以從資料庫載入員工相片為例,展示一個HTTP處理常式的例子:public class DbImageHandler : IHttpHandler{public void ProcessRequest(HttpContext ctx) {//從查詢字串中擷取員工ID int id = -1;bool reaust =
Time of Update: 2018-12-05
對於工作階段狀態值的儲存,HttpSessionState類提供了一個基於字典的模型。只有同一會話上下文中的請求(即由同一個使用者發出的多個頁面請求)才可以訪問工作階段狀態。工作階段狀態的儲存和發布方式有很多,其中包括在Web Farm和Web Garden環境下的。但在預設情況下,工作階段狀態由ASP.NET背景工作執行緒持有。 工作階段狀態的可擴充模型提供了兩種方案: 1.
Time of Update: 2018-12-05
綜合各方面考慮,有3種工作階段狀態管理的自訂方案: 1. 保留預設的會話模組,但編寫自訂的狀態供應器來更改儲存介質。這樣,我們還有機會重寫一些用於在儲存與Session之間運載會話資料的輔助類。 2. 保留預設的會話模組,但替換會話ID產生器。 3.
Time of Update: 2018-12-05
System.Web.UI.Page類提供了ASP.NET應用程式從aspx檔案建立的所有對象的基本行為,該類派生自TemplateControl並實現了IHttpHandler介面。 TemplateControl是抽象類別,為ASP.NET頁面和使用者控制項提供了一組基本的功能。該類的上一層次為Control類,Control類定義了由ASP.NET伺服器端元素(頁面、控制項和使用者控制項)共用的屬性、方法和事件。 TemplateControl類實現了INamingContaine
Time of Update: 2018-12-05
使用者設定檔簡介 在最抽象的層面,使用者設定檔是一種由ASP.NET運行庫組織到動態產生類中的屬性集合。設定檔資料會按不同的使用者分別儲存。當程式運行頁面被顯示時,ASP.NET會動態建立設定檔對象,它包含開發人員定義在資料模型中的相應類型的屬性。該對象之後被添加到HttpContext對象中,可通過Profile屬性擷取。資料模型的定義 為使用ASP.NET設定檔,我們需要先確定所要使用的資料模型結構,然後將該資料模型通過設定檔附在頁面中。使用者設定檔的布局定義在web.config檔案中