解决方案 »

  1.   

    这个不是设计模式能解决的问题,这是架构问题
    两个项目基于同样的底层,这没有任何问题,然后底层提供了共用的业务实现,但项目就一定要调用这种业务实现吗?Model
    DAL
    BAL
    XGAPPInte---一些对外的HTTP接口                   WebAPI
    XGAPPWEB--WEB项目                                        WebForm如果底层用到了配置节,那么这个配置节在两个项目的配置中都必须存在,或者也可以在UI部分将配置节往底层传递
      

  2.   

    如果你的业务层真正实现了业务,而不是像大多数人那样为了分层而分层,业务层只是充当DAL的中转,那么根本就不会出现你所谓的混乱,这时候你的项目就是中间重,两头轻,在这种情况下支撑多个项目完全是无压力的事情,简单的说,就是你的业务层如果能做到类似Service那样包含完整的业务,就可以了
      

  3.   

    你好starfd,项目已经做了一半了,改框架的可能性不大, 目前就是想实现独立出来HTTP接口的业务和WEB的业务,但是公共的业务还想复用
      

  4.   

    starfd,我没有使用WebAPI,因为我不会目前只是返回一些json格式的数据
      

  5.   

    BLL设计开发是相对对立的。BLL可以用于许多异构的系统,不仅仅你的完全不同的asp.net项目需要,你的桌面项目也需要BLL,甚至手机客户端也需要远程访问BLL服务。在公司里,如果有一个统一的业务服务平台(假设它有20个主要业务工程DLL,同时有60个不同客户端开发工具下的适配层工程),被几十个项目所引用,你不能要求平台拆的七零八落的。就好像你不能因为你的程序只用到上千个windows api中的10个,就要求微软单独为你开发一个windows。BLL开发,是要有懂得BLL长期发展的人来设计和开发的。如果你就只会做点前端小页面,不要学人家奢谈什么三层。在许多小公司中出现的“为了三层而三层”的劳民伤财的做法是不可取的。
      

  6.   

    BLL设计开发是相对对立的   -->   BLL设计开发与前端是相对独立的BLL设计开发,就要有“将来发布开放api平台”的思维,才能做好这方面的设计开发工作。那种学一下PetShop风格就弄一个所谓的DAL,然后号称是“有了BLL了”(其实就是简单的两句没有什么技术含量的代码去调用DAL代码“,那就是没有必要的事情。但是放到老板,他又不想让自己招聘的员工太低级,可是他自己又不能引导公司走上一个有着良好架构的道路,就容易重复十年都在那里奢谈三层开发、而实际上不过是用很低级的形式在模拟 EF 做的事情。
      

  7.   


    那么你就抛开前端,先占到一个新的视角。一个公司不管有多少套前端系统,应该只有一套核心的业务服务平台,然后为各种前端程序做一个能够访问BLL的适配层组件来访问,不应该重复设计开发核心业务逻辑处理代码。这套平台将来要发布成为统一的“开放api”给公司以外的人也能访问(个别地方可以通过权限来控制)。将来公司可以不做前端,把前端都外包给个人,而自己仅仅做好服务端。到那个时候,你就把握了主动权。前端都可以给别人去做了,而你把握的是核心的后台。
      

  8.   

    其实上面说的都是在教你怎么做,但学习是有曲线的,而业务应该如何封装除了开发技能之外,还需要对业务的了解,这些东西只能靠你自己,或者你找你们那边相对业务教熟练的人,一起把在APP和Web项目中的业务封装到BLL去
    补充下:这个改造的过程也是曲线的