资源推荐:代码自动生成、Com开发、串行化反串行化、UI等太多了,该如何解决

资源推荐:代码自动生成、Com开发、串行化反串行化、UI等太多了
本帖最后由 zhou13816878600 于 2009-06-07 16:21:50 编辑
图片等,贴不出来,更详细内容请在此地址下载:http://99ef.com/我的技术概要.doc
本人目前刚到上海,赋闲在家,坐待识珠之慧眼,Email:63298118@qq.com 
Msn:justthisone@hotmail.com
MobilePhone:13761816466


                     也许我能给您带来不一样的开发体验
 [前言]
      以下要讲到的一系列技术,都是本人在去年的创业过程中,进行的基础技术研发所取得的成果,创业项目虽然失败了,但是技术却攒了下来,这里头结晶着我多年来的软件开发感悟,领域涉及到三层架构搭建、.NET FrameWork在COM下的简易实现、数据库编程、网络通信、UI设计、串行化、通用报表组件等等,成果不敢独享,特拿出来分享。这是我第一次整理它,历时一天,时间很仓促,恐有疏漏之处,请多指教。论述中,叙述性的文字内容较少,更多的是以图片和代码的方式展现。
      
      读完这些,您将会在以下方面有所收获:
1、关于开发成本的节约:
   独有的代码生成体系:配置好脚本后,可自动生成业务逻辑层、数据访问层(包括数据库)及部分界面表示层,约占系统研发的60-70%的代码量,节省60-70%的成本投入,对后期的升级和维护来说,节省的成本,就不好计算了。
2、COM+Html+JavaScript模式,招人不再很难:
   独特的COM+Html+JavaScript模式,让您的研发团队,专业程序员比例大大降低,推荐配置是1名VB(6Or .NET)程序员配2-3名网页设计师,即可完成开发。COM部分,由代码生成体系自动生成,界面表示层部分,由Html+JavaScript来完成,即您的界面,每个窗口内置一个WebBrowser控件,界面以网页(Html)的形式展现在用户面前,通过JavaScript来和COM进行交互,完成网络通信、数据访问、界面展现、用户交互等。
3、VB6下使用.NETFrameWork的简易实现:
   您将可以在VB6下使用.NETFrameWork在COM下的简易实现,可使用.Net下的常用数据类型,如ArrayList、HashTable、Stringbuilder等,可象.NET那样在VB6下进行代码写作,代码复制至.NET IDE下,大多是可以运行的。
另外,我们的代码生成体系,未来会支持生成.NET代码,也方便您的系统未来向.NET迁移。
坦率地说,现在找VB6程序员,是越来越难了,但是.NET程序员铺天盖地都是,就人才的选择来说,只要熟悉. NETFrameWork的人,都可以为我所用。
4、关于部署:绿色化+0配置
   实现纯绿色化,系统由EXE调用若干DLL完成,DLL,可以不注册,程序运行时动态加载,方便系统的升级维护。
界面表示层部分,大多由Html+JavaScript 完成,这些发生变动,也不需要重新编译和发布。
0配置会在该章节中有所描述。 
5、串行化。
   可提供2种方式的串行化,一种是实现了.NET下的IXmlSerializable接口,所有类实例可串行化至Xml,,类实例也可从Xml进行反串行化。二是类实例可串行化至Bytes字节流,方便互联网传输,也可以从Bytes字节流反串行化成类实例。
这个在VB6下的意义是很重大的,到底有多重大,如果您写过文件的结构化存储和网络通信方面的应用,就深有感触了,具体的使用,就不赘述了。
6、UI。
   如果您是从事触摸屏开发的,请一定要留意,不是的,也可稍加留意,将向您诠释一种全新而优雅的界面表达方式。
7、其他。
   网络通信、报表等,这是所有管理类软件都会碰到的问题。

[正文]      
一、关于代码生成体系
    VB6是一门没落的语言,曾经的辉煌已是昨日黄花,新的技术层出不穷,每一门语言新出伊始,都在炫耀自己在面向对象方面的成就,比如继承,比如多态,有了这些特性,如何地实现了代码复用,如何节省了代码,但是如果有一天,您都不需要写代码,大部分的代码都是生成的,继承、多态等等,又能算得了什么呢?我有独特的代码生成体系,配置脚本后,可直接生成业务逻辑层、数据访问层(包括数据库)及部分界面表示层,跟市场上的代码生成器不一样的地方,他们更像是一个工具,作为IDE的一个插件存在,一个个类模块或是存储过程单独生成,而我的代码生成器,除了是个工具外,它生成的是一个解决方案,直接生成的是Dll 工程的文件,大致如下:
    图片(请下载原文:http://99ef.com/我的技术概要.doc) 
    Classes文件夹下存有这个工程里的所有类,其下有 Common、Private、Public、Static四个文件夹,分别存的是通用类、私有类、公共类及静态类,DataBase文件夹存放的是数据库文件、Docs存放的是关于这个Dll的html格式的说明文档,Tasks存放的是一个任务列表文件,即脚本中定义的需要手动完成的代码部分,其他文件夹,就不再特殊说明了。在我的项目中,自动生成的代码,约占总代码量的70%之巨。您想象成本可以节省多少?

   以下举的例子是一个学生信息管理的简单例子,管理了每个学生和家长的信息。生成的类库叫DySchoolMgrLib,结构比较简单,仅仅有 Student、Father两个类,其他的类都是辅助类。不废话了,贴图。
   图片(请下载原文:http://99ef.com/我的技术概要.doc) 

   Student类成员列表,熟悉.NET FrameWork 的朋友是不是看到一些似曾相识的东西呢?Clone,GetHashCode,ToString,Equals等等,当然,还有Serialize等,Clone代表这个类实现了ICloneable接口,GetHashCode,ToString,Equals代表了这个类继承自Object, Serialize代表了这个类实现了IXmlSerializable接口。
   图片(请下载原文:http://99ef.com/我的技术概要.doc) 

   Student类的静态成员。比如,我们可以写这样的代码:
   
Call Student.Delete("001")   ‘//删除学号为 001的学生信息。

   此时,Student是不用初始化的, 熟悉.NET编程的人,是不是很眼熟呢?其实Delete就是Student类的静态成员。
我们来看看,在以下窗口中,显示学号为001的信息及其父亲的姓名,修改后,点 Ok 按钮保存至数据库。
   图片(请下载原文:http://99ef.com/我的技术概要.doc) 
   其代码如下:

   Option Explicit
   Private m_Frm          As DyADODB.dyForm      '//对当前窗口生成其DyForm