本人从事软件行业也有几年了,从开始的一直反复的用SQL SCRIPT到后来用ADO.NET,再到后来写了一些DbInstnace接口,到后来自己写ORM,可以直接通过对象持久化,才算是跟面向对象搭上了边。
由于多数据是业务系统,我认为还是采用CS架构较好,但这样的程序必须具备自动更新的机制。总结一下,需要具备如下特质:
一、程序支持在站点下下载,最简安装,需要安装的组件尽量最少,并支持在线安装。
二、程序支持自动版本检测和自动更新,系统启动时自动检测版本自动更新,在服务器有更新时,可以发消息给客户端,通知客户端执行自动更新程序,甚至需要保存数据后强制重新启动程序;
三、程序有自己的一套应用控件,而非直接使用系统提供的控件,这样,有需求变化时可以直接改动,全局自动更新;
四、程序支持多语言;
五、程序的多语言数据信息在服务器中存储,并且可以根据不同用户,从服务器下载语言元素,为了减轻服务器的读取压力,系统在启动登录后根据用户ID一次性下载所有的语言元素(系统登录部分的语言元素存在本地;
六、系统启动时一次性把主数据信息读取至本地内存,如用户数据、客户数据、供应商数据、物料数据等,但当此类数据有更新时,需要通知客户端增量修改;
七、系统界面元素在服务器端,窗体根据界面元素自动动态生成;
八、系统的任何界面元素都接受服务器端管理,因此系统更新可以得到最及时的应用;
九、由于第八点的原因,所有的元素都可以定制,并可以通过系统信息展示给开发人员,更利于应用,更利于界面调试;
十、所有的数据表都受服务器端管理,可以以超级管理员的身份登录系统,创建或维护数据表;
十一、根据一个或多个数据表可以创建一个窗体(应用),界面布局可以通过数据记录;
十二、每一个控件的验证逻辑可以单独设置,并且应用的处理逻辑可以支持C#脚本语言。
十三、所有业务应用对象化,可以根据数据表自动生成实体化对象和控制对象的基类,基类可以实现对实体类的增、删、改、查;
十四、对于验证逻辑的脚本,可以通过系统生成DLL文件来提高程序的运行性能。
十五、 … …