分享一个大型进销存供应链项目(多层架构分布式WCF多服务器部署微软企业库架构)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享一个大型进销存供应链项目(多层架构分布式WCF多服务器部署微软企业库架构)相关的知识,希望对你有一定的参考价值。

  分享一个大型进销存供应链项目(多层架构、分布式WCF多服务器部署、微软企业库架构)

  这是一个比较大型的项目,准备开源了。支持N家门店同时操作。远程WCF+企业库5.0实现。

 这块应该算是库存模块中的核心模块了,因为该块的业务逻辑比较多,比较繁琐,大致讲讲业务逻辑吧,大致的逻辑为:出库单/出库单-->填写订单-->出库/入库-->修改库存信息,按照这个顺序来完成入库出库,顺序不能颠倒,同时还要实现订单的删除,修改,在修改库存信息时由于表和表之间有很多的外键关系,所以要同时删除多张表中含有删除信息的内容,实现联级删除,由于这里考虑到要保证结果的一致性,所以用事务来实现。再看看界面,为了保证用户按照这个逻辑顺序操作,首先我添加了一对单选框(出库单,入库单),当单选框都没有选中时,保存订单按钮、出库、入库按钮都是不可用状态,当用户选择了订单类型之后,保存订单按钮转为可用状态,需要用户填写订单信息,填写好对应信息之后保存订单,保存成功之后列表框中出现刚生产的订单,同时订单号是自动来生成的,入库单是“S_I”开头,出库单是"S_O"开头,后面五位数字为随机生成,这样生成的订单号易于区别,也避免了订单号的重复,然后根据用户选择的订单类型,对应的按钮转为可用(出库单-->出库按钮) ,这样就保证了用户始终是按照这个顺序来操作,同时订单列表框下有删除订单按钮,点击可以删除选中按钮。

 

直接上项目图:共三个项目,

数据实体层,主要用于获取数据。

报表层,用了水晶报表。

业务处理层。用于单独部署一台服务器,用于处理业务逻辑用。

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

在创建具体产品实例的时候我们还用到了缓存机制,每次使用产品功能的时候都回去实例化一个具体的产品返回,所以多次使用同一产品的时候就做了很多无谓的实例化,所以我加了一层缓存,用来将产品的实例缓存起来,下次再需要该产品时直接从缓存中读取就可以了,提高了性能。

我这里用的是Runtime.Cache.Get()来获取存,Runtime.Cache.Insert()来添加缓存。

当然还有一种方法是用HttpContext.Current.Cache.Get()来取,HttpContext.Current.Cache.Insert()来添加缓存。

至于这两者的区别,要涉及到asp.net生命周期和其他方面的一些内容了,这里就不解析了.....

 

SqlDAL中的内容和Oracle类似,也是建立了一个工厂创建具体产品,同样继承并实现了IDAL中定义的方法,这里也不罗列了......

 

 

技术分享

技术分享

 

大型的进销存供应链系统源码。WCF架构,微软企业库架构。

想讨论的可以加我 QQ  309159808

email:  [email protected]

分布式有两个大的项目,一个是 实体数据层: EntityFlow,一个是业务处理层 WorkFlow。可以分开部署到多服务器上。实现全球操作。前台采用的是类型SAP系统的WINFORM。如果需要改成WEB。可以直接更改前台即可。后台基本不用动。

 

以上是关于分享一个大型进销存供应链项目(多层架构分布式WCF多服务器部署微软企业库架构)的主要内容,如果未能解决你的问题,请参考以下文章

基于WCF构建企业级大型分布式SOA架构(初级篇)视频课程

雷林鹏分享:EJB概述

雷林鹏分享:EJB概述

分享基于EF+WCF的通用三层架构及解析

肖sir___scm进销存管理系统__项目整理

大型网站架构系列:缓存在分布式系统中的应用