软件背景: 
  商业连锁店管理 要求: 
1、要求系统是多层 
2、要求方便以后升级 
3、团队开发,开发组员每个人只能有自己所负责的哪部分代码(防止软件盗版) 
4、能适应对种数据库(ACCESS,SQLSERVER,ORLACE) 我先说说我的设想: 
1、所有与数据库交互的部分写成存储过程,前端程序调用 
2、采用抽象工厂模式,将与数据库部分写成通用数据库操作类 
3、防止软件盗版,基于组件形式(各个小组成员创建自己的工程,最后生成类库DLL),最后由一个人来完成“装配”工作 疑问: 
1、以上我的想法如何? 
2、通过什么方法能让软件升级,后期维护方便?  
3、我看了一些软件他们就是由多个DLL和一个EXE组成的,请问他们基于什么方式开发的? 
4、软件界面如何布局比较好? 
5、还有我没想到的,请开发过大型软件的朋友,赤教!!!先谢谢了 

解决方案 »

  1.   

    你的程序代码即使封装生成DLL文件,一样是可以被反编译出来的。具体用什么模式开发视具体情况而定了,团队开发,开发组员每个人只能有自己所负责的那部分代码———用工厂模式应该可以。与数据库交互部分写成存储过程可以提高web程序运行效率。其他我也不是很懂。
      

  2.   

    但似乎都不具体啊,能不能更详细,更完整点呢,
    我句的应该不能将dll反编译出来哟?
      

  3.   

    1、要求系统是多层
    一般都是3、4层,UI一层,业务逻辑一层,数据访问一层。如果需要,可以有一个Web services层(方便分开部署)。
    2、要求方便以后升级
    考虑用ClickOne来发布Client端的更新。
    3、团队开发,开发组员每个人只能有自己所负责的哪部分代码(防止软件盗版)
    除非你的需求已经很明确了,需求分析已经到了代码级别,否则个人开发的代码各有各的风格,各有各的接口,以后没法维护。放盗版的话,只有你来发布License就可以了,dll混淆一下。
    4、能适应对种数据库(ACCESS,SQLSERVER,ORLACE) 
    工厂模式+配置文件。
      

  4.   

    非常感谢你对我问题的关注,这里还有些不太明白,请作详细指导:
    1、如果需要,可以有一个Web services层(方便分开部署)。 为什么要用Web services层,有什好处,请举例说明如何用?2、考虑用ClickOne来发布Client端的更新。 请详细举例好吗,最好有demo
    3、发布License,如何发?
    欢迎讨论 QQ110855663
      

  5.   

    分工做dll即使混淆了,也不能完全防止开发人员盗版
    C/S软件防止盗版最好用加密狗
      

  6.   

    楼主,除非你有组件式开发的基础,或者你的项目有足够的经费和时间让你做这个研究
    否则不要随便在项目中引入这类开发方式我们以前做组件式开发是这样做的:
    组件与组件独立开发,如果组件之间有依赖,只允许依赖接口
    每个组件发布一个接口DLL文件,供其他组件调用
    使用统一的架构完成接口和实现之间的转化和缓存(其实就是castle的工厂和容器)
    最后发布的时候,把所有DLL丢到同一个目录下,配置文件一配就好了缺点:项目集成起来很累,出点问题要调试之类的都比其他方式麻烦
    优点:组件功能单一,便于维护和重用,可以实现组件热拔插
      

  7.   

     to  kingdomgps:
    我就是需要做成你所说的哪种效果,但是你说的有组件式开发的基础,我可以从什么地方获得基础呢,哈哈,见笑了
      

  8.   


    1)用Web Service可以做分开部署。
    你的应用部署在外网,Web Service部署在内网,Database也在内网,应用call web service,这样就比较安全,你的web service, DB server别人都访问不到。
    2)http://msdn.microsoft.com/zh-cn/library/142dbbz4(VS.80).aspx
    3)也就是一个加密算法,公私钥。
      

  9.   

    建议 楼主 看一看 petshop 里面几个关键点看明白了  你的思路就有了
      

  10.   

    to  lunasea0_0:
    以下的又如何搞呢
    团队开发,开发组员每个人只能有自己所负责的哪部分代码(防止软件盗版) 
    除非你的需求已经很明确了,需求分析已经到了代码级别,否则个人开发的代码各有各的风格,各有各的接口,以后没法维护。放盗版的话,只有你来发布License就可以了,dll混淆一下。
      

  11.   

    1、所有与数据库交互的部分写成存储过程,前端程序调用存储过程会是多数据库支持变得麻烦。Access支持存储过程麻烦,多数据库的存储过程迁移麻烦!