一个MIS系统,可能包含多个模块,应改怎样规划?
1、建立解决方案,把主窗口、login及定义全局变量的类放在这个项目中
2、新建项目(模块),添加到解决方案。把程序按模块功能划分,把各个模块的窗口等分别放在这些项目中。
请问:
1、这样组织一个c#的程序集对吗?也就是形成exe(启动项目)+多个DLL(其它功能模块)的架构,还是应该按照应用层(界面的调用等),最低层(数据库的操作等),中间层(功能的实现等)这样来划分模块?
2、新建项目时,是选“windows窗体应用程序”还是选“类库”?
3、能否做到界面和业务逻辑无关?方便以后灵活地生产windows程序或web程序?

解决方案 »

  1.   

    我只知道使用三层结构-_-
    实体类可以定义为一个程序集;
    每一个功能模块可以定义为一个程序集,功能细分的尺度只能自己把握;
    数据层就不说了,现成的例子太多了;
    记住为界面提供facade,这个估计也要用一个程序集;
    界面本身是一个程序集。
      

  2.   

    首先要看你的这个系统属于什么规模,业务逻辑复杂度如何.
    //1、这样组织一个c#的程序集对吗?也就是形成exe(启动项目)+多个DLL(其它功能模块)的架构,还是应该按照应用层(界面的调用等),最低层(数据库的操作等),中间层(功能的实现等)这样来划分模块? 这样组织没问题.如果业务逻辑较复杂,可以再给每个功能模块分层,包括把一些共用的对象,创建公共的模块.//2、新建项目时,是选“windows窗体应用程序”还是选“类库”? 
    包含登录窗体及主窗体的项目建成“windows窗体应用程序”,其他的建成"类库".
    //3、能否做到界面和业务逻辑无关?方便以后灵活地生产windows程序或web程序?
    可以啊,你就把业务逻辑和界面放在不动的项目中.比较提倡用分层结构,在编码\管理\重用方面都有好处.
      

  3.   

    首先从你的业务有多大,不知道你知不知道HIS系统. 这个项目算是个大的系统,在整个上海市软件行业最多也就做个伪三层的工程...建议你的系统用掉Dll的形式来完成,把一些相对接近的业务逻辑放在一个工程中生成dll形式来让主工程来调用,以后要维护只需要维护这个dll.这样不但你开发速度要快,同时不完全脱离所谓的三层\四层等.
      

  4.   

    如果你要灵活地生产windows程序或web程序,那你就需要把业务逻辑层和UI层分开,扩展时只需要加入Web的UI项目即可。
      

  5.   

    这个你可以新建一个空白解决方案,然后往里面添加新建项目,你可以根据不同的层次做出不同的项目,最后设置一个主窗体就可以了!我做WINFORM一般都是这样做的!
      

  6.   

    这种方法需要注意的一点就是在引用的时候要搞清楚自己到底要引用的是哪个项目即生成的DLL文件!
      

  7.   

    3、能否做到界面和业务逻辑无关?方便以后灵活地生产windows程序或web程序?
    这个比较难了.说实话,界面与业务逻辑分离当然好了.可是要以代码量为牺牲前提不过MIS系统的业务逻辑并不太复杂,你会发现几乎很多的工作量会在界面展示上
      

  8.   

    建议新建一个MIS项目(工程),以后需要什么就在项目中添加新建项目:
    1.如果是公共属性很强的东西或者常用的方法(如:文件的操作,数据库操作,时间日期和字符串的操作...),可以新建一个类库,建立完备之后,生成dll,可以在很多时候派上用场。
    2.如果mis的是按功能划分的,也可以考虑把他们各个模块做成DLL,不过通用性不是很强,设计也不会很方便。
    3.抽取方法是很重要的,这样可以减少开发时间和出错率。