新建一个空白解决方法。然后:
“添加”-“新建项目”-“其他项目”-“公司级模版项目”-“C#生成块”-“数据访问”(数据层,下简称D层)
“添加”-“新建项目”-“其他项目”-“公司级模版项目”-“C#生成块”-“业务规则”(业务层,下简称C层)
“添加”-“新建项目”-“其他项目”-“公司级模版项目”-“C#生成块”-“Web操作界面”(界面层,下简称U层)
右键点“解决方法”-“项目依赖项”,设置U取决于D、C,C取决于D。
对U添加引用D、C,对C添加引用D。
到此为止,一个三层的架子建立起来了。我上面说的很具体很“傻瓜”,知道的人觉得我废话,其实我这一段时间很强烈的感觉到非常多的人其实对这个简单的过程完全不了解。虽然不反对建2个“空项目”和1个“Asp net Web程序运行项目”还可以作为3层的框架,而且相当多的人觉得其实这些“公司级模板项目”其实就是个空项目,这是一个误区。没错,公司级模板项目你从解决方法资源优化配置器里看它是个什么都没有的,但是你能用文本文档打开项目文件,看见不同了吧??有些东西在背后,你是看不到的,不过系统已经做好了。换句话说,假如你在C层里的某个类里“using System Data SqlClineit”,或者使用一个SqlConnection对象,编译时候不会出错,但是会在“任务列表”里生成一些“策略警告”,警告你在C层里不要放应该放在D层的东西(虽然就程序来说没错,但是易读性可维护性就打了折扣)而这种功能,空项目是无法給你的。
在新TraceLWord3中,应用了“公司级模板项目”。把原来的LWordTask.cs,并放置到一个单一的项目里,项目名称为:AccessTask。解决方法中又新建了一个名称为:InterService的项目,该项目中包含一个LWordService.cs程序文件,它便是“中间业务层”程序。为了不重复命名,TraceLWord3的网站被放置到了WebUI项目中。更完整的代码,可以在CodePackage/TraceLWord3目录中找到