《應用框架的設計與實現 .NET 平臺》 - 學習筆記

来源:https://www.cnblogs.com/GATTACA2011/archive/2020/07/26/13382687.html
-Advertisement-
Play Games

《應用框架的設計與實現 .NET 平臺》 [作者] (美) Xin Chen[譯者] (中) 溫昱 靳向陽[出版] 電子工業出版社[版次] 2005年07月 第1版[印次] 2005年07月 第1次 印刷[定價] 39.80元 【第01章】 【應用框架介紹】 (P004) 使用應用框架有五大優點 : ...


《應用框架的設計與實現 .NET 平臺》

========== ========== ==========
[作者] (美) Xin Chen
[譯者] (中) 溫昱 靳向陽
[出版] 電子工業出版社
[版次] 2005年07月 第1版
[印次] 2005年07月 第1次 印刷
[定價] 39.80元
========== ========== ==========

【第01章】 【應用框架介紹】

(P004)

使用應用框架有五大優點 : 模塊化 (modularity) 、可重用性 (reusability) 、可擴展性 (extensibility) 、簡單性 (simplicity) 和可維護性 (maintainability) 。

(P005)

應用框架是精心設計的組件的彙集之處,其中不乏 “久經考驗” 的優秀的軟體設計方案。

【第02章】 【應用框架解析】

(P019)

通用點、擴展點和設計模式是用於開發框架的技術,黑盒、白盒和灰盒是開發框架的方法。

(P025)

在框架開發中,模板方法包含了業務領域知識,這些業務領域知識規定了不同方法應當如何協作;而抽象方法為模板方法調用的方法提供了客戶化實現的手段。

(P028)

為了通過可插入組件來支持擴展點,應用框架必須首先為擴展點定義介面。

(P029)

使用組合法支持擴展點,開發者需要創建可插入的應用組件,該組件的介面要和框架擴展點匹配。通過把應用組件和框架組件綁定在一起,開發者能夠將組件插入到擴展點。

【第03章】 【Simplified Application Framework 概覽】

(P040)

每個 .NET 應用都以 .NET 框架作為其分層結構的最底層。

(P043)

在 Windows 平臺上,啟動並持續運行一個應用的最常用手段之一,就是 Windows 服務。

【第05章】 【緩存服務】

(P087)

哈希表要求鍵是唯一的。如果你視圖使用哈希表中已存在的鍵增加一個對象,則將會拋出一個異常 (exception) 。哈希表中的鍵相當於數據表中的主關鍵字或惟一關鍵字。

(P089)

每個 XML 文檔只能有一個根元素,而每個元素可以有多個子元素 (child element) 。

一個元素可以有多個屬性,但是多個屬性的名字不可重覆。

【第06章】 【配置服務】

(P111)

在 .NET 中,配置文件中所有信息都要 “經” IConfigurationSectionHandler 介面讀出。

(P112)

配置數據分為兩組 : 段處理器 (section handler) 組和段 (section) 組。

(P113)

只定義 <configSections> 但沒有 <section> 是允許的,而不定義 <configsections> 只定義 <section> 是不允許的,這時試圖運行應用,會收到運行時錯誤 (run-time error) 。

(P115)

ASP.NET 應用配置文件的原則和非 ASP.NET 應用配置文件的原則 —— 如控制台應用程式,是完全一樣的。

【第07章】 【事件通知服務】

(P134)

被封裝在委托之內的關於 “方法” 的信息可以分為兩部分 : 方法簽名 (method signature) 和方法目標 (method target) 。方法簽名包括的信息有 : 方法參數的個數和類型,以及返回值 (return value) 類型。方法目標包括的信息有 : 方法名和方法所在對象。

(P135)

在程式中使用委托要做的第一件事是,定義一個委托類,明確說明它能夠處理的方法簽名。

委托類只有一個構造器,以 “方法目標 (method target)” 作為惟一參數。這其實是把該委托對象綁定到實際的目標。

以構造器中指定的方法目標必須和委托類中定義的方法簽名相匹配。

(P138)

當使用委托封裝方法調用時,必須從傳統的方法調用思想轉到面向對象思想上來。

(P139)

通過為委托技術增加非同步風格,可以改善應用。

(P140)

BeginInvoke 方法的返回對象也很重要,它返回 AsyncResult 對象,該對象封裝了委托方法結果的所有信息,以及方法調用的狀態。

(P141)

要獲得返回值,必須調用 EndInvoke 並以 BeginInvoke 返回的 AsyncResult 為參數。

EndInvoke 方法的返回值就是目標方法的返回值。

EndInvoke 方法總是返回 object 類型,所以需要對它進行強制類型轉換,把它變成目標方法原來的返回值類型。

【第08章】 【“Windows 服務” 服務】

(P166)

為了創建一個新線程,首先要創建一個 ThreadStart 委托。 ThreadStart 指明瞭線上程啟動後需要調用哪些程式代碼,也就是說,它把一個線程和一個具體的方法調用捆綁在一起。

ThreadStart 只能接受沒有輸入參數和沒有返回值的方法。

創建 ThreadStart 委托之後,必須將它與一個線程捆綁在一起。

要啟動一個線程,只需簡單地調用線程中的 Start 方法就可以了。

(P167)

Sleep 是一個靜態方法,可以讓當前線程休眠一定時間。線上程休眠期間,操作系統不會將 CPU 時間片分配給它。 Sleep 方法通常放在迴圈處理中,這樣可以讓線程周期性地工作。

(P168)

Thread.Sleep(-1) 是指這個線程將無限期地等待下去; Thread.Sleep(0) 則令該線程讓出一次執行機會給其他線程。用 Thread.Interrupt 方法可以 “喚醒” 一個休眠的線程。這個方法會使休眠的線程拋出 ThreadInterrupted 異常。

(P170)

用 .NET 創建一個 Windows 服務主要包括兩步 : 第一,創建一個從 System.ServiceProcess.ServiceBase 繼承的服務類;第二,為該服務類創建一個安裝項目。

(P173)

Windows 服務項目經過編譯後,系統生成一個 “.exe” 文件。

【第12章】 【加密服務】

(P254)

.NET 框架通過 System.Security.Cryptography 命名空間,為加密編程提供了一個綜合工具箱 (toolkit) 。 System.Security.Cryptography 包含四種不同的對稱加密演算法和兩種非對稱加密演算法的實現。

(P255)

.NET 加密功能採用基於流 (stream-based) 的方式實現,加密和解密數據都要使用 System.Security.Cryptography.CryptoStream 類。

當數據經過 CryptoStream 類時,就被加密或解密。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原型與原型鏈 所有函數都有一個特別的屬性: prototype : 顯式原型屬性 所有實例對象都有一個特別的屬性: __proto__ : 隱式原型屬性 顯式原型與隱式原型的關係 函數的prototype: 定義函數時被自動賦值, 值預設為, 即用為原型對象 實例對象的__proto__: 在創建實 ...
  • 1.瀏覽器內核及首碼 在CSS中新的屬性標準尚未明確的情況下,各瀏覽器廠商對新屬性的支持情況也不相同,這個階段會對屬性加廠商首碼進行區分。 根據不同的瀏覽器內核,CSS首碼有所不同,最基本的瀏覽器內核有四種,其他內核都是基於此四種進行再研發的。 ① Gecko內核,首碼為“-moz-”,火狐瀏覽器 ...
  • 接下來我們來看鏈表題 206. 反轉鏈表反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 解題:鏈表題需要我們設立更多的指針來保存我們當前操作的細節;1.我們需要定義3個指針 pre,cur ,next,pre為當前鏈表的前一個 ...
  • 我們今天繼續研究數組在演算法中的應用 167. 兩數之和 II - 輸入有序數組 給定一個已按照升序排列 的有序數組,找到兩個數使得它們相加之和等於目標數。 函數應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。 說明: 返回的下標值(index1 和 ...
  • 前端程式員怎麼才能學好演算法呢?目前演算法優秀的視頻集中在c++,java,python,本人通過幾個月專心看c++的視頻掌握了演算法的基本思路,都翻譯成前端代碼一一寫出來,從真題到思維全面提升演算法思維面對演算法面試,不畏懼 二分查找法O(logn)尋找數組中的最大/最小值O(N)歸併排序演算法 O(nlog ...
  • (一)兩種打包表單區別 |屬性 |特點 |應用 | | | | | |get |加到url,直接可見 |書簽,歷史瀏覽 | |post |間接可見,請求發送量多 |私密,訂購,評論,反饋 | (二)三種溯源區別 |屬性 |特點 |應用 | | | | | |url(uniform resource ...
  • 自媒體的發展越來越快,今日頭條旗下的西瓜視頻,火山和抖音在網路上的地位也在發生微妙的變化。包括快手和抖音,微視小視頻平臺的競爭和衝擊也是不容小覷。但是很多用戶還是執著於今日頭條搬運,不離不棄。今天老生常談,跟大家說說,如何利用批量去水印下載西瓜視頻的短視頻。工具不僅僅是支持西瓜的,快手的、抖音的、微 ...
  • 數據類型的分類和判斷 基本(值)類型 Number 任意數值 typeof String 任意字元串 typeof Boolean true/false typeof undefined undefined typeof/ null null 對象(引用)類型 Object typeof/insta ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...