《应用框架的设计与实现 .NET 平台》 - 学习笔记

《应用框架的设计与实现 .NET 平台》算法

========== ========== ==========
[做者] (美) Xin Chen
[译者] (中) 温昱 靳向阳
[出版] 电子工业出版社
[版次] 2005年07月 第1版
[印次] 2005年07月 第1次 印刷
[订价] 39.80元
========== ========== ==========编程

【第01章】 【应用框架介绍】 设计模式

(P004) 缓存

使用应用框架有五大优势 : 模块化 (modularity) 、可重用性 (reusability) 、可扩展性 (extensibility) 、简单性 (simplicity) 和可维护性 (maintainability) 。框架

(P005) 异步

应用框架是精心设计的组件的聚集之处,其中不乏 “久经考验” 的优秀的软件设计方案。模块化

【第02章】 【应用框架解析】 工具

(P019) 加密

通用点、扩展点和设计模式是用于开发框架的技术,黑盒、白盒和灰盒是开发框架的方法。spa

(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 类时,就被加密或解密。

相关文章
相关标签/搜索