一直用。NET做ERP/MIS类型的软件,学业不精,可以完成工作任务,业余时间也制作一些集成化的工具包,下面分享一下我认为的。NET领域里的底层技术。
1 通信技术(Remoting,WCF, ASMX)
通常的三层架构,数据库,数据访问层,界面层。通讯技术定义了三层组件之间的调用约定,以及方法。这样说起来有些抽象,举例为证。现在要制作一个进销存项目,基本的功能是进仓,出仓,转仓,查询功能要能查询到仓库进出日记帐,
库存余额。对于一笔物料为FLEX0901的进仓业务,用ORM的方式完成,伪代码如下
InventoryMovmentEntity
receipt=new InventoryMovmentEntity("REF1108080001","RECEIPT");
InventoryMovmentDetailEntity detail=receipt.InventoryMovmentDetails.AddNew();
detail.ItemNo="FLEX0901";
detail.MoveDate=DateTime.Now;
InventoryMovementDAL.Instance.Save(receipt);
◆ 对于库存报表,多个并发的InventoryMovementDAL会导致数据前后不统一。库存余额报表现在可以读到物料FLEX0901还有100个pc,一会当有进仓单入库200pc的FLEX0901时,如果不手动刷新数据,此时的报表仍然显示的物料FLEX0901的库存余额是100,而不是300. 这有时候是不可接受的结果。
可以做一个timer,定期刷新库存余额。这里的问题是,InventoryMovementDAL只有一个实例,无法自己告诉自己,已经有新的库存了,重新读取数据。这里需要一种并发机制,告诉InventoryMovementDAL实例,有新的数据加入到库存余额中,需要刷新报表。
◆ 有一些数据项,是全局的,对于整个系统都是唯一的,需要特殊处理。
比如ERP系统允许的并发用户,同时允许有10个用户连接进入系统,超过则无法处理;
ERP系统的一个用户把当前系统的默认货币从HK$改进了US$,其它的用户,要能知道这个改变,此时,不太可能让当前正在操作业务的用户退出,重新进入系统
2 反射,动态编译
反射是动态获取程序集的元数据的一种技术,这句话是做。NET程序员面试题目的一个的答案,你可选择记住它,就好比高中生物学里面讲到的细胞的结构的课程时,细胞由细胞膜,细胞质和细胞核组成。根据做程序的经验,Never ask why不是好习惯,即使是微软的API,有时候违反了调用约定,也会很抓狂。
在ERP/MIS系统中,应用反射的例子,实在是太多了。数据访问接口InventoryMovementDAL,借助于反射,来查找并调用它的实现类; 窗体也它的子窗体借助于反射来获取属性,传递值;ERP系统的整个框架,也是借助于反射搭建起来。
此文转载:中国IT实验室之软件月刊 更多精彩在:http://www.chinaitlab.com/mail/soft/201109/index.html
------解决方案--------------------
支持。
------解决方案--------------------
都是些基础知识,算不上底层。
------解决方案--------------------
------解决方案--------------------
总是好的,这样的总结。支持
------解决方案--------------------
围观围观
------解决方案--------------------
反射觉得非常有用 哈哈。。。。
------解决方案--------------------
页面加载过程,生命周期
------解决方案--------------------
支持。
------解决方案--------------------
呵呵,这绝对不是底层,相反这是高层
自己去看msdn把,你所谓的这块内容。微软msdn有专门的一个主题去讲述“.NET Framework 高级编程主题”
http://msdn.microsoft.com/zh-cn/library/29eafad8(v=vs.80).aspx
------解决方案--------------------
楼上那个连接不错。
------解决方案--------------------
凑热闹
------解决方案--------------------
火热的贴子,大家都想看...中国人嘛!
------解决方案--------------------
原来楼主是搞应用的,连底层是什么也解释不清