标题:没头没尾--项目开发笔记
关键词:分布式开发 C# 项目分工
11月19号:下午,天气不冷肚子痛
从本质上来说…………,我其实也不清楚C#比JAVA有什么提升。宣传的材料上或网站上写的多好多好,从书店买的书看了看也没看好有什么特别的地方。都是一大堆的类继承来继承去的。管它的,先做出来东东再说。
接着上午的写吧。我想首先对C#的企业级分布式的模板简单的说一下。
下面的理解都是我已经忘记是看谁的例子的理解的了,也许是Microsoft的宠物店例子,也许是别人写的工程。说的不对的地方兄弟们可以指。
C#的企业级的模板上来就会生成下面七个工程:
1. DataAccessProjects
数据连接的部分。也就是我们公司讨论中号称的DO层。(Data Object)。我认为在这个层写程序的原则很简单,就是除了这里,其它的地方都不用直接去写SQL语句。或者直接调用存储过程的方法。实现上没有什么好说来,来来去去都是些System.Data中间的对象。
2. BusinessFacadeProjects
OK,这个层就比较的有意思了,我和兄弟部分的同仁一直都在讨论这一层与下面那个Rules层有什么区别。(不要笑话罗)。这里面还有些曲折。一开始我们用的是VS.net的英文版,然后我们就天天吵来吵去,比如我一开始就认为这个层是业务规则的封装,那么对于基础的数据操作就应该放在这里。比如基础信息的新增,修改,删除之类的。只有在删除时需要从其它的表来判断删除操作是不是可以做的时候。才会在Rules层生成一个类,来判断一下。或者是有什么事务要进行处理的时候才去用BO。反正一开始都糊涂J,后来有一天,我们搞到了中文版本后,突然发现这个FACADE叫业务外观层。那么就是说所有的业务都不能在这里面做。而是将所有的对DO的操作都封装在这个里面。FACADE层真正成为一个(业务外观)
3. BusinessRulesProjects
这一层是真正意义上的Business Object,也就是说,三层结构中对应的BO放在这个地方。
4. SystemFrameworksProjects
这一层放置的是系统对象,比较对安全处理的统一封装。(这部分在一开始的时候没有怎么用,后来在使用Web Service的时候把Application与Session的对应对象的统一处理放在这里,而不是放在Web Service层。)
5. WebServiceProjects
没说的,web service文件放置的地方。
6. WebUIProjects
ASP.NET文件放置的地方。
7. WinUIProjects
WinForm放置的地方。
这个是自动生成的企业分布式应用的结构。最初我们对这个东东的理解是非常差的,觉得一件这个简单的事情为什么要搞的这个复杂。在慢慢的开发过程中渐渐的体会一些好处。我先不说具体的好处。先把我从中体会出来的一些想法与大家分享:
l 为什么可以这样写程序
我想这个原因实在是太简单了,硬件的技术进步了。哈,硬件的进步让程序员可以不用从头来写程序。如果说以前写100句代码可以完成其它人写1000句代码的功能,大家会认为你是高手,可是现在你在跟C#的例子可以发现,一条判断语句的执行可能要经过十多级继承关系的调用。大家都是低手?程序员要写的代码是比较少了。可以程序员写的代码减少不意味真正代码执行比以前少了。(为了提交对数据库一张表的修改,我的程序调用了近十个类来实现。如果是以前,一定被人骂死。)
l 为什么要这样写程序
这个问题是一个很难回答的问题。但是最初的想法其实这种开发的方式是以效率降低换来开发的高效率。我不是很清楚网上说的可以用几个星期的时间来做出一个系统是怎么回事,不过的确是可以利用这种方式来很好的进行人员的分工,以及对开发过程的改造。这个说起来比较麻烦。回头再说:)
l 如果这种方式只是软件工程发展的一个阶段,那么下一个阶段会是什么?
Very Clear.下一个阶段一定是大批的程序员都失业。要不就改名字。叫什么架构师,分析师之类的。
l 那我应该怎么办?
不知道。好好干活吧(写到这里心情巨差,真不知道以后可以干什么。)
下一节写我们项目对企业级模板的一些改造。这些改造我想也是基于对新技术运用的一些思考之后做出的。。希望大家感兴趣。