2004年07月29日
在前面的文章中,我们对于所有通过SockBase发送的消息都是直接通过嵌入式的字符串来完成的.比如”login”,”logout”,这样带来的一个问题就是如果不小心,写错一个字,在编译期是不能检查出来的.而且由于是直接内嵌在代码中的,和逻辑代码混在一起,不便于增加/修改消息.所以我们提出了使用自定义的消息命令类.阅读全文>
发表于 @ 2004年07月29日 21:19:00|评论(loading...)|编辑
在上一篇文章>中,我们消息映射表是通过简单的Hashtable表来建立的.这样做,功能相对太简单,而且不便于扩展.而且Hashtable中的一些特性是我们不必要使用的.所以在这里,我们直接使用自定义的消息映射类(集合类CommandHandlerList和消息命令/处理函数类CommandHandler.)来建立消息映射表.阅读全文>
发表于 @ 2004年07月29日 21:11:00|评论(loading...)|编辑
System.Net 命名空间为当前网络上使用的多种协议提供了简单的编程接口,如果需要底层控制更多的编程而言,开发人员就需要使用System.Net.Sockets 命名空间了。System.Net.Sockets为需要严密控制网络访问的开发人员提供了 Windows Sockets (Winsock) 接口的托管实现。 但是Sockets编程既烦杂,又毫无可扩展性,需要开发人员自己控制消息的接受和发送以及处理,这些与业务逻辑有关的工作在编程之时就需要写入代码,一旦需求发生变化,又得改写Sockets的接受消息列表和处理。同时对于命令字符串的构造都需要底层的程序员去控制,不仅容易出错,而且不易改变。面对复杂多变的业务逻辑,这样的架构毫无可重用而言,同时给程序员提出了很高的要求,很大程度的工作量放在了做底层的重复性的劳动上。因此,为了提供一种易于扩展的Sockets编程架构,使得开发人员将注意力放在业务逻辑上,我们提出了设计可扩展的SockBase思路,同时实现了这个架构,经验表明,不仅解决了上述存在的问题,而且取得了非常好的效果。阅读全文>
发表于 @ 2004年07月29日 21:04:00|评论(loading...)|编辑
前面的两篇中,我们实现了XmlConfigReader和XmlConfigWriter的基本功能.由于XmlConfigReader的实现方式是每请求一次,就去解析配置文件一次,性能很低下.同时,为了更方便使用,我们增加一个ConfigurationSettings类,用来调用XmlConfigReader和XmlConfigWriter,使之用起来和System.Configuration中的类使用方式一样.
阅读全文>
发表于 @ 2004年07月29日 21:02:00|评论(loading...)|编辑
在进行程序开发过程中,经常要将一些程序设置/使用的信息储存起来.由于这些信息和程序的设置/使用相关,与程序有相当的独立性,所以不可能硬编码到程序中.在这个时候我们选择使用基于Xml的配置文件进行存储.Microsoft的.NET Framework提供了一系列的基于.Config文件的读取的类,如System.Configuration 命名空间提供的AppSettings等类.但是此命名空间提供的类只能对配置文件进行读取,不能进行设置.所以在这里,我们实现自己的一个基于Xml的配置文件的类XmlConfigReader/XmlConfigWriter.阅读全文>
发表于 @ 2004年07月29日 21:00:00|评论(loading...)|编辑
在进行程序开发过程中,经常要将一些程序设置/使用的信息储存起来.由于这些信息和程序的设置/使用相关,与程序有相当的独立性,所以不可能硬编码到程序中.在这个时候我们选择使用基于Xml的配置文件进行存储.Microsoft的.NET Framework提供了一系列的基于.Config文件的读取的类,如System.Configuration 命名空间提供的AppSettings等类.但是此命名空间提供的类只能对配置文件进行读取,不能进行设置.所以在这里,我们实现自己的一个基于Xml的配置文件的类XmlConfigReader/XmlConfigWriter.
阅读全文>
发表于 @ 2004年07月29日 20:59:00|评论(loading...)|编辑
基于Sockets的网络编程中,由于Sockets的通讯机制是往返的消息发送机制,因此使得单个任务而多个步骤(每个步骤也可以称作一个小的任务)的完成必定依赖于或者取决于前导的任务,因此编程处理的异步性就体现出来。而使得这些相互连贯的或者有联系的任务得以按照预定的定义流程去执行,很重要的一个关键问题就是如何去同步。采用何种同步的机制,实质上是采用什么样的技术路线去协调多个任务,当然任何一种机制实现同步并非适用于任何的场合,关键还是看需求。本文将在给出多任务同步的一些基本概念以及场景、问题,然后提出采用线程同步和委托的方式实现同步,并做出探讨,指出其存在问题和适用之处。阅读全文>
发表于 @ 2004年07月29日 20:57:00|评论(loading...)|编辑
本文是在概述GDI+的基础上,简单的介绍如何绘制数据图表,并在此基础上将其做成一个用户控件。便于读者及用户的使用。阅读全文>
发表于 @ 2004年07月29日 20:47:00|评论(loading...)|编辑
异常的处理是为了保证程序尽量在不可预知的意外情况正常运行,同时异常的处理也是比较繁琐的过程。在网络编程中,不可预知的情况更多,使得开发者在编程时需要编写大量的异常处理代码,本文介绍了C#中一种简单的异常处理方法,减少了开发者的麻烦。本文假设读者对C#的网络编程和委托比较熟悉。
阅读全文>
发表于 @ 2004年07月29日 20:44:00|评论(loading...)|编辑