自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

XCodeFactory2.0完全手册(上)

如果想要很好的使用一件兵器,你必须了解它的秉性、它的优势劣势,掌握它的精神,从而扬长避短。使用XCodeFactory也是一样,要想它成为你的得力助手,你需要花一点时间来了解它。我可以向你保证,它一定不会让你失望的!Hibernate/NHibernate虽然功能强大,但是使用困难度却比XCodeFactory大N倍。XCodeFactory使用简单,而且生成的数据层代码也很容易使用,但这并不...

2005-07-30 00:03:00 69

XCodeFactory2.0正式推出!!!

XCodeFactory2.0的功能增强主要表现在以下几个方面:(1)对SqlServer数据库和Access数据库的完整支持。(2)对Blob的完整支持。(3)添加对自动编号主键字段的支持。 2.0以前的版本生成的数据层代码没有支持自动编号的主键,如果一个主键是自动编号的,我们需要在访问类的源文件中更改Insert语句--即删除对主键的赋值。(4)插入一个自动编号主键的对象时,返回该对象...

2005-07-29 14:28:00 49

Asp.net实用技巧(1)

1.在新窗口中打开页面 我们经常需要在点击某个Button的时候打开一个新的页面,而且由于应用的需要,我们又不能使用超级连接或者LinkButton来代替这个Button,于是我们只有在Button的Click事件中进行新页面的打开工作。我将这个工作封装成一个API,如下:1OpenWindowInNewPage#regionOpenWindowInNewPage2//在新窗口中打开页面3pu...

2005-07-27 18:03:00 71

提高asp.net应用程序性能的一些技巧(转自http://blog.aspcool.com/chyich/archive/2005/07/05/2584.html)...

1.消除数据绑定控件的多重绑定 在绑定语句前加if (!Page.IsPostBck)语句,这样只有在第一次加载页面时,才进行绑定,页面回送时就不能再次绑定了. 在PreRender方法里绑定,PreRender事件发生在回送事件之后,在前面的事件(init,load,PostBackEvent)中处理完应该处理的事件后,在PreRender事件中绑定,这样能消除在多个回发事件中重复绑定控件,这个...

2005-07-26 22:28:00 65

WebConfirm控件(转自http://www.evget.com/view/article/viewArticle.asp?article=961)

/* * 在看这个控件代码之前,先要熟悉以下内容:* 0.ViewState机制和作用。* 1. 事件机制。* 2. 回发机制:在非窗体控件中保持客户端更改,ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconpersistingclient-sidechangesinnon-formcontrol.htm* 3. IP...

2005-07-26 22:27:00 102

ViewState 剖析(翻译兼笔记) (转自http://www.zahui.com/html/4/8435.htm)

原文链接:ViewState: All You Wanted to Know作者:Paul Wilson翻译:木野狐ViewState 不是什么?1. ViewState 不是用来恢复回发的控件的值。这个是通过匹配 form 中该控件的变量名而自动完成的。这个只对 Load 事件加载之前创建的控件有效。2. ViewState 不会自动重新创建任何通过代码动态创建的控件。3. 不是用来保存用户...

2005-07-26 22:25:00 66

直观而简单的解决方案--软件设计的永恒追求

人们都善于用直观简单的方式来理解事物,我也坚信,所有优秀的解决方案都是直观而简单的,我喜欢直观而简单的解决方案,也许在找到直观简单的解决方案之前,我们已经尝试了用很多复杂费解的方式来解决问题。如果你不能把我们程序的解决方案用通俗易懂的方式给隔壁卖青菜的阿伯解释清楚的话,说明,这个解决方案还不够好――还不够简单和直观。宇宙够复杂了吧,可是霍金却创作《时间简史》系列的科普读物,既然是科普,它的读者就是...

2005-07-25 09:43:00 83

2005.07.20日志

连续加了几天班,公司的项目终于告一段落,于是抽空将以前写的技术笔记(感悟)整理了一下,在blog上贴了出来,哪怕能对后来的朋友有一点点帮助,也就不枉此举了。 昨天申请了一个计数器用于记录我的blog的访问量,看来还是有些朋友在关注我的blog的,谢谢你们!我会坚持写下去,把我所理解的技术、观点、经验(如果有的话),拿出来和大家一起分享。遗憾的是,自己的文笔是在不怎么样(以后要在blog上多多锻...

2005-07-20 15:00:00 58

数据安全--加密与解密(一)

数据安全--加密与解密基础(一) 2004.11去年,MD5算法被一个中国女性破解,搞得人心惶惶,数字签名似乎都没有保障了?数据的安全性一直并且将日益重要 ,任何一个从事程序开发的人员都有必要了解数据安全的基本知识,因为一不小心你就会用到,比如,在配置文件中存放数据库的密码,难道你是以明文的形式存储的吗?千万不要这么做!在这个专题中将介绍数据安全的基础知识以及在C#中的运用。本文先简单...

2005-07-20 14:46:00 262

C#资源管理

C#资源管理(2004.10) 资源是在逻辑上由应用程序部署的任何非可执行数据。资源可以在应用程序中作为错误信息显示,或者作为用户界面的一部分显示。资源可以包含多种形式的数据,包括字符串、图像和持久的对象。通过在资源文件中存储您的数据,您无需重新编译整个应用程序即可更改数据。请注意,为了将持久对象写入资源文件,这些对象必须是可序列化的。资源的最主要用途:对区域性和多语言的支持。使用程序集链接器 ...

2005-07-20 14:28:00 130

多线程 C#解决方案小结

多线程 C#解决方案小结(2004.09) 与多线程相关的两个常见的需要解决的问题是:临界资源保护和线程间的同步依赖,每一种语言都提供了自己的一套设施(有的语言可能需要借助OS的API)来解决这两个问题,C#提供了更方便灵活的解决方案,首先C#可以允许我们在不同的级别上加锁,也就是说我们可以控制加锁的粒度。其次,C#提供了一套内置的线程安全的容器,方便我们的使用。一.不同级别(Level)上的...

2005-07-20 14:18:00 88

事务处理 基本要点

事务处理 基本知识点(2004.07)1. 事务:就是把多个不可分割的操作当作一个逻辑单元来执行。其特征为ACID 。2.实现(支持)ACID的机制是:加锁(I),日志机制(A、D),事务管理机制(A、C)。3.实现事务的三种方式(1)通过后台数据库的SQL语句来实现(因为没有返回值,所以无法知道事务是正确执行了还是回滚了)(2)通过ADO.NET组件实现。使用IDbTr...

2005-07-20 12:04:00 123

万能对象池【C#实现】

如果一种类型的对象需要经常被创建、销毁,为了提高性能,我们通常需要使用“池”技术,就如线程池、TCP连接池等一样。那么需要使用池技术的对象一般有哪些特征了?(1)创建过程耗时(2)不需要保存客户状态(3)对象体积较大(4)频繁创建/销毁 为了省事,我希望实现一个万能对象池组件,该对象池可以缓存任意类型的对象。下面给出对象池的接口:publicinterfaceIObjectPool...

2005-07-19 18:26:00 231

企业级服务器设计与实现经验之插件系统基础篇

最初之所以要采用插件的形式进行开发,主要是为了解决功能服务的“热插拔”问题,在决定采用“框架+插件”的方式进行设计后,我们就更进一步,打算将一个个可以分割开来的拥有完整功能的组件都做成插件的形式,并且使同类型的插件的接口兼容,这样在以后需要改变时就可以灵活的进行替换。比如,将通信部分做成通信插件、日志记录部分做成日志插件等等。首先,我们要弄清楚,什么是插件?我给出了一个定义,可能有失偏...

2005-07-17 15:32:00 72

XCodeFactory 1.3 出击!!!

在1.2以前的版本中没有考虑到对BLOB的优化,如果一个表中含有BLOB字段,IDBAccesser.GetObjects方法返回的对象中将会直接把Blob读到对应的字段中,这可以通过IDBAccesser的基接口IDBAccesserQuery看出来:publicinterfaceIDBAccesserQuery{bool ReviseAObject(stringwhere_str,objec...

2005-07-11 21:09:00 62

XcodeFactory 功能再度增强!

今天周末,加班做一个监控系统,涉及到了需要配置的部分,比如,需要配置TCP端口、完成端口的工作者线程个数、是否开启加密等配置信息。在XcodeFactory1.1以前的版本中有自动生成XML配置文件和对应的解析类的功能,很好。但是,我还是要自己写个UI界面来显示和修改XML配置文件中的内容,这就很乏味了,把几个控件在窗体上拖来拖去,排放整齐,加个“确定”按钮和“取消”按钮,然后写处理函数,真是无...

2005-07-09 16:58:00 68

面向对象与面向组件小议(一)

所有的软件技术和思想的出现都是为了解决所在的那个年代软件开发的复杂性,对象技术和组件技术也不例外。当然还有很多其它技术,像DBC(契约式编程)、AOP、MDA等,这些思想都在影响我们设计/实现程序的方式,但无可否认的是,当今最主流的编程技术是对象技术和组件技术。 面向对象技术已经成熟的发展将近20年了,关于这方面的经典书籍和论文也随处可见。为了解决更大的系统的复杂度,组件技术应运而生,在windo...

2005-07-08 22:42:00 72

XCodeFactory 1.1 发布 ***********

今天花了一天的时间将XCodeFactory系统的代码进行重构,并对功能进行了增强,删除了一些很少使用的功能,整个系统更加简洁易用。 相比于1.0 ,1.1版本主要添加了自动生成支持Ole数据库的数据访问类的功能。另外,提供了一个示例源码TeacherExample供大家参考,TeacherExample项目的中99%的代码都是由XCodeFactory1.1自动生成。如果需要XCodeFac...

2005-07-07 21:47:00 62

C++ 快速内存分配

C++ 快速内存分配 ――zhuweisky 2003.12.10我们知道,C++中当我们用new在堆中创建一个对象时,会发生两件事情。首先调用operator new分配一定大小的内存空间,然后在此空间上调用构造函数以形成对象。而operator new涉及到寻找合适内存的算法,往往,这个算法是比较费时间的,所以,如果我们的程序中需要不断的产生和释放某类型的对象,那么operator n...

2005-07-07 11:19:00 74

纯虚函数能为private吗?

纯虚函数能为private吗? --zhuweisky 2003.04.18我们把一个仅仅含有纯虚函数的类称为接口,我们也好像已经习惯了将这个接口中的所有纯虚函数全声明为public,而且按照这样的设计,一切都工作得不错。比如COM正是这样做的,它的接口中几乎不会存在private的纯虚函数。那么,让我们想一想,纯虚函数或者虚函数可以为private吗?如果这种方式是可行的,...

2005-07-07 09:44:00 95

C++内存对象大会战

C++内存对象大会战如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄漏,比如悬挂指针。笔者今天在这里并不是要讨论如何避免这些问题,而是想从另外一个角度来认识C++内...

2005-07-06 16:48:00 49

C++转向C#的疑惑:C#中类间通信方法初探

C#中没有自由函数也没有自由变量,所有的一切都必须封装在类中。在C++中,通过全局变量来进行函数间通信和类间通信是常用的方法,然而这在C#中却变成不可能任务,这的确让C++程序员苦恼。C#当然有它充分的理由不支持自由函数和自由变量,因为“自由”就暗示着冲突、不安全等等影响程序健壮性和可维护性的因素。当然有很多技术可以解决C#中的类间通信问题,本文就介绍其中的几种。一.问题域涉及的主要Cl...

2005-07-06 16:09:00 85

C++转向C# 的疑惑:事件的机制究竟是什么?

C++是如此的强大,以至于你可以用它做任何想做的事情,下至各种系统级开发,上至各种大型应用程序。但是我们经常听人说,“C++不是完全的面向对象语言”,且不论这一说法是否正确 ,然而有一个事实是很明显的,那就是 C++并没有直接提供对属性、事件等面向对象、面向组件编程常用特性的支持,虽然我们可以通过各种技术自己实现这些特性,但这无疑会大大降低开发速度。C#中提供了属性和事件,这是令人兴奋的!拥有...

2005-07-06 16:03:00 57

C++转向C# 的疑惑:析构函数及相关

从C++转向C#的程序员经常被C#中的析构函数、Dispose方法、Close方法和Finalize方法搞混,再一看到Finalize队列、Freachable队列就更不知所云了。是的,C++中没有这么多麻烦的东东,C++中只有一个析构函数,通常这个析构函数什么事都不做,但是如果你在析构函数所属类的构造函数或其它成员函数中申请或分配了资源而没有释放的话,那么一定要记得在析构函数中释放这些资源,...

2005-07-06 16:02:00 82

C++转向C#的疑惑:难道C#中没有拷贝构造函数 ?

不可否认,C++在过去十年乃至现在一直都是windows平台上的主流开发语言,而来势凶猛的.NET势必开辟一个崭新的局面,从目前的种种迹象来看,.NET是大势所趋,而C#作为.NET平台上的第一开发语言自然备受关注,于是有很多程序员纷纷转向C#,这其中当然不乏C++程序员。情况往往是这样,从一种语言过渡到另一种语言,哪怕是比较相似的语言,程序员也经常无意识地陷入原开发语言的思维定势,这样的...

2005-07-06 16:00:00 58

C++转向C#的疑惑系列文章转载

我以前是一个C++程序员,并且花了很多时间在C++的研究上。同时我又是一个Windows程序员,之前用C++作研发。2001年,.NET世界的清晰轮廓已冲出了windows开发的地平线,我知道一次革命来临了。呵呵,顺应这个时代的发展,我成了一个C#程序员。我得承认,我对C++尤其偏好,这源于C++的细腻和强大,还有它那不可预见的深度。我相信所有热爱C++的程序员,都对此有很深的感触。然而,对于C...

2005-07-06 15:41:00 71

企业级服务器设计与实现经验之系统框架(二)--功能/应用服务器主体框架...

前面两篇文章已经介绍了功能服务器FS与应用服务器AS拆开的原因和它们各自的职责。这篇文章我们主要来看看FS和AS的主体框架是怎样的。首先要说明,无论FS或AS,它们都是一个复杂的系统,特别是AS,它有许多的管理、记录功能,所以单凭这一篇文章是不可能将它们的每一个方面描述清楚的。相反,我在此文中仅仅给出它们的骨架结构,许多细节都将忽略,看过第一篇文章读者可以根据主题目录知道,这些细节会在后面的文章...

2005-07-06 15:12:00 95

可复用的自动升级系统C#实现(二)

上一篇文章解决了实现可复用的自动升级系统的思路,这篇文章将给出UpdateActionSystem.exe的参考实现及相关的牵涉主程序的代码。UpdateActionSystem.exe的主窗体UpdatingForm的主要成员如下: private UpdateConfigParser updateParser = null ;//用于解析版本配置文件UpdateConfig.xmlpri...

2005-07-06 12:00:00 59

可复用的自动升级系统实现(一)

相对于B/S结构来说,C/S模式的客户端的部署和升级是一个很大的麻烦。有很多企业用户就是因为这个原因而放弃使用C/S。然而当一个应用必须要使用C/S结构才能很好的实现其功能的时候,我们该如何解决客户端的部署与自动升级问题了?部署很简单,只要点击安装程序即可,难的在于每当有新版本发布时,能够实现自动升级。首先,我需要把自动升级的概念扩展一下。自动升级不仅仅是把当前版本的主程序EXE或其使用dl...

2005-07-06 11:39:00 121

C++多线程面向对象解决方案

相信很多人都读过《C++沉思录》这本经典著作,在我艰难地读完整本书后,留给我印象最深的只有一句话::“用类表示概念,用类解决问题”。关于多线程编程,如果不是特别需要,大多数开发人员都不会特意去触碰这个似乎神秘的领域。如果在某些场合能正确并灵活地运用,多线程带来的好处是不言而喻的。然而,任何事物都有两面性,如果程序中引入多线程,那么我们需要谨慎小心地处理许多与之相关的问题,其中最突出的就是:资源竞...

2005-07-05 12:04:00 102

如何使用XCodeFactory自动生成XML配置文件和对应的解析类?

如何使用XCodeFactory自动生成XML配置文件和对应的解析类?进入XCodeFactory=》“简单代码生成”菜单=》配置文件/操作类生成器。需要说明一下背景。通常我们的配置文件仅仅需要二级结构,如下示例:<?xml version="1.0" encoding="gb2312"?><GTPDef xmlns:xsi="http://www.w3.org/2001/...

2005-07-05 09:33:00 82

XCodeFactory下载地址:http://www.tomore.com/dispdocnew.php?id=29469

XCodeFactory下载地址:http://www.tomore.com/dispdocnew.php?id=29469所有使用gmail邮箱的朋友们,不知是怎么回事,我发给你们的XCodeFactory,都被退回,还有sohu的邮箱也存在此情况,不好意思。如果你们还需要的话,可到上述链接下载,或者换个email向我索取。...

2005-07-05 09:15:00 142

企业级服务器设计与实现经验之系统框架(一)

我们将DataServer拆分为功能服务器和应用服务器,基于如下几个方面的考虑:(1)能更简单的添加不同类型的应用。在这种拆分的状态下,如果需要增加一个新的应用,那么只需要增加一个新的应用服务器即可。比如,现有的应用服务器是以TCP的方式提供服务,如果我想增加一种以WebService方式来发布我们的服务,那么我只要增加一个WebService应用服务器,而不管是TCP应用服务器还是Web...

2005-07-04 17:54:00 62

企业级服务器设计与实现经验之开篇

这个题目听起来蛮吓人的,毕竟本人的经验值也不高,却大放厥词在这里谈“企业级”。原因有二,一是把这一年以来的开发DataServer服务器的工作做个总结;二是希望能抛砖引玉,希望这方面的研究和交流繁荣起来,毕竟,目前讲这方面实战经验的文章资料太少了。正式开题之前,绝对有必要先简单的介绍相关的背景。在写这篇文章的时候,我在航天量子数码科技有限公司(Aeromatex)产品部工作,全...

2005-07-03 22:00:00 119

二叉树绘制器BinaryTreeDrawer实现

我们可能需要将一个二叉树以图形化的方式显示出来,我实现了一个二叉树绘制器BinaryTreeDrawer,用于绘制前文实现的二叉树。先看看这个绘制器的外貌:public interface IBinaryTreeDrawer{void Initialize(DrawerParas paras) ;void ResetGraphic(Graphics g) ; //在设备发生变化或尺寸改变时需重...

2005-07-02 20:41:00 108

排序二叉树C#实现

很久以前写的,现在贴出来交流一下。先看排序二叉树的接口public interface ISorttedBinaryTree{void InsertElement(IComparable val) ;//如果树中有一个节点的值等于val的值,则val将被忽略void RemoveElement(IComparable val) ;bool ContainsElement(IComparabl...

2005-07-02 20:33:00 68

ISingletonDisplayer 单件模式显示器C#实现

很多情况下,我们需要一个Singleton窗体,比如,任务管理器就可以是windows应用系统中的一个Singleton,于是我们这样做:在窗体类的实现中添加一个静态指向单件的成员,提供一个静态的CreateInstance方法,当第一次调用此方法时创建单件。另外还要处理Closing事件,以使点击窗体右上角的“×”时,隐藏窗体。每次需要实现一个单件窗体时都要这么做,于是我决定写一个基类ISin...

2005-07-02 20:19:00 84

如何高效地使用XCodeFactory自动生成的数据层代码(二)

前面一篇文章介绍了一些基础了用法,我们在这篇文章中,作一深入的思考。在企业级的应用开发中,数据层有两个最常见的需求那就是数据库类型切换和缓存经常使用的数据。我在EnterpiseServerBase中给出了相应的组件对此进行直接的支持。只要将XCodeFactory生成的数据层代码和EnterpiseServerBase中的某些组件配合起来就可以轻松的做到以上两点。首先来说,数据库类型的切换...

2005-07-02 14:39:00 56

如何高效地使用XCodeFactory自动生成的数据层代码(一)

自从将XCodeFactory开放给大家以后,有不少朋友email来问如何使用或如何更好的使用自动生成的数据层代码的问题。在此分两期给出一个详细的答复,但愿XCodeFactory能很好地协助大家。 大家可以看到,所有自动生成的数据访问类,都继承自IDBAccesser接口,IDBAccesser接口规范了所有的数据访问操作。IDBAccesser定义于EnterpiseServerB...

2005-07-02 14:32:00 52

C# 完成端口组件实现

前面用C++实现了windows平台上的网络完成端口组件,那么到C#中如何做了?起初我打算通过PInvoke来调用win底层API来仿照C++实现,但问题很快就出来了--C#中的Unsafe指针无法稳定的指向一块缓冲区的首地址,也就是说当垃圾回收进行的时候,我们的unsafe指针的值可能已经无效了。用pin?我也想过,可是锁住所有的TCP接收缓冲区,会极大的降低运行时的效率。难道没有办法了吗?想想...

2005-07-01 16:31:00 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除