技术积累

明日复明日,明日何其多,我生待明日,万事成蹉跎。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2005年7月3日

摘要: "受管"的概念在.Net环境下被广泛使用,但是不同地方的含义有点差别: 受管代码: .Net环境提供了许多核心的运行时服务, 比如异常处理和安全策略. 为了能使用这些服务, 必须要给运行时环境提供一些信息, 这种代码就是受管代码. 所有的C#, VB.NET, JScript.NET缺省都是受管的. 注意VS7 C++不是受管的! 但是编译器能够使用命令行选项(/com+)产... 阅读全文

posted @ 2005-07-03 21:42 追风逐云.NET 阅读(575) 评论(0) 推荐(0)

摘要: assembly, 这里把它翻译为配件, 以示和组件(Component)加以区别. 如果您觉得不合适, 请指正! 一个配件有时候是指一个EXE或者DLL文件, 实际上是一个应用程序(就是指带有主程序入口点的模块)或者一个库文件. 但是配件实际上可以是由一个或者多个文件组成(dlls, exes, html等等), 代表一组资源, 以及类型的定义和实现的集合. 一个配件也可以包含对其它配... 阅读全文

posted @ 2005-07-03 21:41 追风逐云.NET 阅读(736) 评论(0) 推荐(0)

摘要: 所有的.Net编译器在产生模块(Modules)的目标代码时都会产生有关类型的元数据(metadata), 这种元数据被捆绑在模块目标代码上(多个模块组成assemblies, 一个assembly是.Net下安全控制的基本单位,也是类型对象识别的基本单位), 这种元数据可以通过.Net环境下的reflection对象访问. System.Reflection名字空间下包含了可以访问这种数据的多... 阅读全文

posted @ 2005-07-03 21:40 追风逐云.NET 阅读(522) 评论(0) 推荐(0)

摘要: 一旦得到类对象,上表中所列的方法就能被叫来调用reflaction.第一个例子将检查在CSharpReflectionSamples.Reflect类中的得到方法的信息。第一块代码用来定义类中的每个方法的名字,第二块代码将阐述得到方法信息。向下面所展示的,我们将用一个数组来保存用GetMethod()方法返回的方法信息。MethodInfo类包含信息为方法的名字,不管是否是虚拟的,它都是可见的,... 阅读全文

posted @ 2005-07-03 21:37 追风逐云.NET 阅读(330) 评论(0) 推荐(0)

摘要: 在我的文章《C#基于接口的编程》中,我谈论了使用抽象的接口作为编程范例的各种优点。分离接口和执行过程,现在肯定不是新的思想,实际上它是com编程的核心。也许基于接口的在显著的特征是多态性和即时检查(RTTI).RTTI允许客户端程序在运行时访问对象。例如,如果一个对象执行IAthlete接口,一个客户端程序能够查找然后绑定这个接口用于调用和定位另一个接口。 查询接口是强大的,是com+的基础。... 阅读全文

posted @ 2005-07-03 21:36 追风逐云.NET 阅读(340) 评论(0) 推荐(0)

摘要: 在上一篇文章中我介绍了微软.NET框架中的回调方法:委派(delegates)。解释了在声明一个委派后编译器是如何产生一个从System.MulticastDelegate派生的类,以及这个类是如何创建两个私有指针域(_target 和 _methodPtr),并用它们来指明回调方法应该操纵哪个对象。我还在上一篇文章中引入了第三个指针域——_prev,这个指针被用来维护委派链的链表。在本篇文章中,... 阅读全文

posted @ 2005-07-03 21:32 追风逐云.NET 阅读(359) 评论(0) 推荐(0)

摘要: 回调函数 回调函数的确是至今为止最有用的编程机制之一。C运行时的qsort函数利用回调函数对数组元素进行排序。在Windows中,回调函数更是窗口过程,钩子过程,异步过程调用,以及目前Microsoft .NET框架所必需的,在整个回调过程中自始至终地使用回调方法。人们可以注册回调方法以获得加载/卸载通知,未处理异常通知,数据库/窗口状态修改通知,文件系统修改通知,菜单项选择,完成的异步操作... 阅读全文

posted @ 2005-07-03 21:31 追风逐云.NET 阅读(287) 评论(0) 推荐(0)

摘要: 以下我们将举一个使用channel的例子。在这个例子中,我们将可以看到使用HTTP channel把两个应用 连接在一起是如此的简单。以下的服务器应用提供了一个服务,可将一个字符串的字母顺序反转。 Server.cs using System; using System.IO; using System.Runtime.Remoting; using S... 阅读全文

posted @ 2005-07-03 21:28 追风逐云.NET 阅读(295) 评论(0) 推荐(0)

摘要: 微软的.NET Remoting提供了一种允许对象通过应用程序域与另一对象进行交互的框架。本文将通过两个具体的代码例子介绍它的特性,通过.NET Remoting,两个应用间的通信将变得非常简单,使用上也相当灵活。 最近几年来,在计算机世界中,关于“向外扩展”(scale-out)与“向上扩展”(scale-up)的讨论不断,并且有向scale-out转化的趋势。在以前,当计算... 阅读全文

posted @ 2005-07-03 21:27 追风逐云.NET 阅读(357) 评论(0) 推荐(0)

摘要: 摘要:本文提供了 Microsoft .NET Remoting 框架的技术概述,其中包括了使用 TCP 通道或 HTTP 通道的示例。 目录 简介 远程对象 代理对象 通道 激活 对象的租用生存期 总结 附录 A:使用 TCP 通道进行远程处理的示例 附录 B:使用 HTTP 通道进行远程处理的示例 简介 Microsoft® .NET... 阅读全文

posted @ 2005-07-03 21:26 追风逐云.NET 阅读(250) 评论(0) 推荐(0)

摘要: 摘要:本文介绍 Microsoft .NET Romoting 框架的基本原理。除了介绍组成 .NET Romoting 框架的主要组件外,还介绍 .NET Remoting 与分布式对象通信的几种方案。 目录 简介 .NET Remoting 对象 集成 .NET Remoting 对象 .NET Remoting 元数据和配置文件 .NET Remoting... 阅读全文

posted @ 2005-07-03 21:24 追风逐云.NET 阅读(408) 评论(0) 推荐(0)

摘要: 在应用程序的设计中,数据库的访问是非常重要的,我们通常需要将对数据库的访问集中起来,以保证良好的封装性和可维护性。在.Net中,数据库的访问,对于微软自家的SqlServer和其他数据库(支持OleDb),采用不同的访问方法,这些类分别分布于System.Data.SqlClient和System.Data.OleDb名称空间中。微软后来又推出了专门用于访问Oracle数据库的类库。我们希望在编写... 阅读全文

posted @ 2005-07-03 21:17 追风逐云.NET 阅读(366) 评论(0) 推荐(0)

摘要: 分布式应用程序设计:ASP.NET Web 服务和 .NET Remoting ASP.NET Web 服务支持 XML 架构类型系统,提供一种简单的编程模型,使用范围广,可以跨平台使用。.NET Remoting 支持运行时类型的系统,提供较复杂的编程模型,使用范围较窄。这种本质上的差别是决定使用哪种技术的主要因素。但是,还要考虑很多其他设计因素,包括传输协议、主机进程、安全性、性能、状态... 阅读全文

posted @ 2005-07-03 21:16 追风逐云.NET 阅读(316) 评论(0) 推荐(0)

摘要: 适用于: Microsoft® ASP.NET Web 服务 Microsoft® .NET Framework Microsoft® .NET Remoting 摘要:了解 Microsoft .NET Remoting 基础结构和 Microsoft ASP.NET Web 服务如何进行跨进程通信,了解这两种技术的工作原理以及如何为您的应用程序选择合适的技术。... 阅读全文

posted @ 2005-07-03 21:14 追风逐云.NET 阅读(476) 评论(0) 推荐(0)

摘要: 摘要: DataSet是数据集在内存中的表示方法,数据集可以有主从关系的数据表,在ACCESS中这种关系表现的很直观,本文讨论在同一网页上直观地显示有主从关系的相应数据的程序设计和程序。 -------------------------------------------------------------------------------- 目录 方法 Tab... 阅读全文

posted @ 2005-07-03 21:12 追风逐云.NET 阅读(421) 评论(0) 推荐(0)

摘要: 出自: http://msdn.microsoft.com/msdnmag/issues/05/01/ASPNETPerformance/default.aspx 翻译:chyich 四、 ASP。NET缓存API 在写应用程序之前,你要做的第一件事是让应用程序最大化的利用ASP.NET的缓存功能。 如果你的组件是要在Asp.net应用程序中运行,你只要把System.Web.d... 阅读全文

posted @ 2005-07-03 21:09 追风逐云.NET 阅读(354) 评论(0) 推荐(0)

摘要: 出自: http://msdn.microsoft.com/msdnmag/issues/05/01/ASPNETPerformance/default.aspx 翻译:chyich 翻译时间:2005-1-5 本文讨论: ? 提高asp.net应用程序性能的常说的神话 ? 有用的提高asp.net应用程序性能的技巧 ? Asp.net应用程序操作数据库的建议 ? As... 阅读全文

posted @ 2005-07-03 21:08 追风逐云.NET 阅读(295) 评论(0) 推荐(0)

摘要: 大家可能觉得上面的代码比较复杂,因为上面对于对打印要求比较高的应用,是十分有效的。如果只是单单对数据进行导出,还可以使用简单的格式,比如使用以下的代码: Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dt As Dat... 阅读全文

posted @ 2005-07-03 21:06 追风逐云.NET 阅读(334) 评论(0) 推荐(0)

摘要: 众所周知,WEB上的打印是比较困难的,常见的WEB上打印的方法大概有三种: 1、直接利用IE的打印功能。一般来说,这种方法可以做些扩展,而不是单单的调用javascript:print()这样简单,比如,可以使用如下代码: <OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 h... 阅读全文

posted @ 2005-07-03 21:05 追风逐云.NET 阅读(377) 评论(0) 推荐(0)

摘要: 单个写入程序/多个阅读程序在.Net类库中其实已经提供了实现,即System.Threading.ReaderWriterLock类。本文通过对常见的单个写入/多个阅读程序的分析来探索c#的多线程编程。 问题的提出 所谓单个写入程序/多个阅读程序的线程同步问题,是指任意数量的线程访问共享资源时,写入程序(线程)需要修改共享资源,而阅读程序(线程)需要读取数据。在这个同... 阅读全文

posted @ 2005-07-03 21:00 追风逐云.NET 阅读(1310) 评论(0) 推荐(0)

摘要: 1. 业务实体层的设计方案选择 1) 业务实体层的作用 一般的应用程序分层的结构如下: 可见,在分层的时候,我们会增加一个实体层,它的作用如下: ① 将显示数据和实际的存储区域隔离,保证了业务的独立性,提高了可重用性。 ② 在业务层和表现层之间传递数据。(如果没有实体层的话,我们需要把表的每个字段作为一个参数在它们之间传递,如果修改的话,将需要影响到程序的各个层) ③... 阅读全文

posted @ 2005-07-03 20:47 追风逐云.NET 阅读(431) 评论(0) 推荐(0)

摘要: 本月的“基本功能”专栏建立在本人上两期专栏的基础之上,在上两期“基本功能”专栏中,我讨论了与委托相关的概念和编程技巧。本文假定读者已经阅读了该专栏的上两期,并且理解委托在 Microsoft®.NET Framework 中所扮演的角色。如果您尚未阅读上两期专栏,请参阅 Implementing Callback Notifications Using Delegates 和 Implement... 阅读全文

posted @ 2005-07-03 20:35 追风逐云.NET 阅读(417) 评论(0) 推荐(0)

摘要: 一、发生的背景 在开发新项目中使用了新的语言开发 C# 和新的技术方案 WEB Service,但是在新项目中,一些旧的模块需要继续使用,一般是采用 C 或 C++ 或 Delphi 编写的,如何利用旧模块对于开发人员来说,有三种可用方法供选择:第一、将 C 或 C++ 函数用 C# 彻底改写一遍,这样整个项目代码比较统一,维护也方便一些。但是尽管微软以及某些书籍说,C# 和 C++ 如何... 阅读全文

posted @ 2005-07-03 20:32 追风逐云.NET 阅读(361) 评论(0) 推荐(0)

摘要: 把自己的资料刻录成很多光盘,发现连自己都很难找到需要的文件在哪张光盘上,因此我就根据需求,在Visual Studio.NET中写了一个列出目录下所有子目录和文件的程序,以方便我列出刻录的资料光盘上的所有文件信息。 本程序的主要算法是递归,主函数如下: //递归列出目录下的所有文件和子目录 public void ListFiles( FileSystemInfo ... 阅读全文

posted @ 2005-07-03 20:29 追风逐云.NET 阅读(758) 评论(0) 推荐(0)

摘要: 最近在研究一个可配置系统的框架,在代码中大量使用了反射的方法,虽然借鉴到其他的语言,如java中反射性能都比较差,但是想到c#既然是一种强类型的语言,对于AppDomain中的类的调用应该性能不会差很多。 今天在mvp站点上看到有人说反射的性能很差,要避免使用,就写了一个简单的例子测试了一下 测试类如下: namespace ReflectionTest.Test { pub... 阅读全文

posted @ 2005-07-03 20:27 追风逐云.NET 阅读(378) 评论(0) 推荐(0)

摘要: delegate经常被人用来与回调相比较,其实两者在某种程度上由很多共同点。不过delegate有很多更加强大的地方。 首先,delegate中可以注册任意多个回调,在一个delegate被调用的时候,已经注册的过程将会被逐个调用。 其次,delegate允许注册一个对象的方法,而不像C++中指可以使用静态方法或者全局方法作为函数指针,提供了更多的灵活性,同时也暗示我们,de... 阅读全文

posted @ 2005-07-03 20:22 追风逐云.NET 阅读(405) 评论(0) 推荐(0)

摘要: 在C#2.0中,匿名方法、IEnumerable接口和匿名方法的合作,使很多的编程任务变得非常的简单,而且写出来的程序非常的优美。 比如,我们可以写出如下的代码: List<Book> thelib = Library.getbooks(); List<Book> found = thelib.FindAll(delegate(Book curbook) {... 阅读全文

posted @ 2005-07-03 20:20 追风逐云.NET 阅读(334) 评论(0) 推荐(0)

摘要: [以nhibernate-PreAlpha-Build-2为准] 从图中可以看到,Session和SessionFactory是NHibernate的核心部分。 SessionFactory维护到持久机制(数据库)的连接并对它们进行管理,同时还保存着所有持久对象的映射信息。 SessionFactory由Configuration.BuildSessionFactor... 阅读全文

posted @ 2005-07-03 20:13 追风逐云.NET 阅读(361) 评论(0) 推荐(0)

摘要: 不可否认,应用软件的开发正在经历一次巨变――将最终增强开发人员的生产力并开启一道通向全新概念的应用程序的大门。 新型的开发模式正逐渐被推广,将分发软件演变成一种服务还有待于所有开发人员的共同努力,而互联网却将彻底改变应用程序的开发模式和配置方式。 传统上,软件开发人员通过集成本地系统服务的方式开发应用程序。这种模型使开发人员有权使用一整套丰富的开发资源,精确控制应用程序的性能。... 阅读全文

posted @ 2005-07-03 20:05 追风逐云.NET 阅读(300) 评论(0) 推荐(0)

摘要: 在分布式应用程序中,不可避免地会经常使用到事务控制。事务有一个开头和一个结尾,它们指定了事务的边界,事务在其边界之内可以跨越进程和计算机。事务边界内的所有资源都参与同一个事务。要维护事务边界内资源间的一致性,事务必须具备 ACID 属性,即原子性、一致性、隔离性和持续性。 本地事务和分布式事务 -------------------- 本地事务是其范围为单个可识别事务的数据资源的... 阅读全文

posted @ 2005-07-03 20:01 追风逐云.NET 阅读(429) 评论(0) 推荐(0)

摘要: 定义或控制特性的使用 AttributeUsage类是另外一个预定义特性类,它帮助我们控制我们自己的定制特性的使用。它描述了一个定制特性如和被使用。 AttributeUsage有三个属性,我们可以把它放置在定制属性前面。第一个属性是: ValidOn 通过这个属性,我们能够定义定制特性应该在何种程序实体前放置。一个属性可以被放置的所有程序实体在... 阅读全文

posted @ 2005-07-03 19:58 追风逐云.NET 阅读(559) 评论(0) 推荐(0)

摘要: 绪论 特性(Attributes)是一种崭新的声明性信息。我们不仅可以通过特性来定义设计层面的信息(例如help file, URL for documentation)以及运行时(run-time)信息(例如使XML与class相联系),而且我们还可以利用特性建立自描述(self-describing)组件。在这篇教程中,我们将会看到如何建立和添加特性到各种程序实体以及如何在运行时环... 阅读全文

posted @ 2005-07-03 19:57 追风逐云.NET 阅读(399) 评论(0) 推荐(0)

摘要: ASP.NET中的Page Cache是个很有用的东东,只要简单的在页面上方加上一个OutputCache标签,就可以让页面在制定的Duration内直接把自动保存在缓存中的页面内容输出,而不需要让ASP.NET引擎再次执行页面代码,当然,节省这点执行时间并不是最主要的理由,主要理由是如果页面内容是从数据库中取出,那么就可以省去连接数据库、取数据的步骤,这个好处可大了。 PageCac... 阅读全文

posted @ 2005-07-03 19:51 追风逐云.NET 阅读(732) 评论(0) 推荐(0)

摘要: 目录 反射的概述 反射appDomain 的程序集 反射单个程序集 利用反射获取类型信息 设置反射类型的成员 通过反射创建类型的实例 反射类型的接口 反射的性能 反射的概述 反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模... 阅读全文

posted @ 2005-07-03 19:49 追风逐云.NET 阅读(519) 评论(0) 推荐(0)

摘要: 3 Hello World 4 类 4.3.1 对系统的词汇建模 需要做如下工作: 1)识别用户用于描述问题或解决问题的事物。 2)对于每个抽象,识别一个职责集。 3)提供为实现每个类的职责所需的属性和操作。 4.3.2 对系统中职责的分布建模 抽象出来的类要适中,不要过大过小。 需要如下工作: 1) 识别一组为了完成某些... 阅读全文

posted @ 2005-07-03 19:46 追风逐云.NET 阅读(400) 评论(0) 推荐(0)

摘要: 1.建模 1.1 为什么要建模 建立大厦和建立狗窝的区别是建设狗窝不需要设计。要生产合格的软件就要有一套关于体系结构、过程和工具的规范。 建模的定义:建模是对现实的简化。 建模的目标: 1)模型帮助我们按照实际情况或按照我们所需要的样式对系统进行可视化。 2)模型允许我们详细说明系统的结构和行为。 3)模型给出一个知道我们构造系统的模板。 ... 阅读全文

posted @ 2005-07-03 19:45 追风逐云.NET 阅读(464) 评论(0) 推荐(0)

摘要: 我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢? 将下列原则应用到你的软件工程中,你会获得立杆见影的成果。 1. 人远比技术重要 你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们那时侯将主要精力都集中在技术上。显然,构件(components),EJB(... 阅读全文

posted @ 2005-07-03 19:43 追风逐云.NET 阅读(354) 评论(0) 推荐(0)

摘要: [自序] 尽管Microsoft Visual Studio .NET 2005(过去好像叫Visual Studio .NET 2004)一再推迟其发布日期,但广大开发者对其的猜测以及各种媒体对其各方面的“曝光”也似乎已经充斥了网络。但与C#有关的文章似乎无外乎两个方面:VS.NET 2005 IDE特性、介绍C# 2.0中引入的“四大特性(泛型、匿名方法、迭代器和不完整类型)”。对ID... 阅读全文

posted @ 2005-07-03 19:23 追风逐云.NET 阅读(483) 评论(0) 推荐(0)