你的位置:首页 > 软件开发 > ASP.net > 没有技术说明文档的开源都是耍流氓:微软Roslyn编译即服务在CIIP中具体应用(上)

没有技术说明文档的开源都是耍流氓:微软Roslyn编译即服务在CIIP中具体应用(上)

发布时间:2016-08-25 10:00:11
前段时间我发布了 github开源:企业级应用快速开发框架CIIP WEB+WIN+移动端,很多园友们都表示支持并与我探讨相关技术问题,上篇中我也承诺会写相关的技术文章,本篇就来介绍一下建模模块中使用的动态编译技术。那些年我们用过的动态编译技术说是动态编译技术有些片面,因为在 ...

没有技术说明文档的开源都是耍流氓:微软Roslyn编译即服务在CIIP中具体应用(上)

前段时间我发布了 github开源:企业级应用快速开发框架CIIP WEB+WIN+移动端,很多园友们都表示支持并与我探讨相关技术问题,上篇中我也承诺会写相关的技术文章,本篇就来介绍一下建模模块中使用的动态编译技术。


那些年我们用过的动态编译技术

说是动态编译技术有些片面,因为在框架中,具体应用到的是建模模块,在CIIP中,使用的是xpo的orm,基于XAF开发,而在XAF中建模过程就是以codefirst(多数人喜爱的)方式写BusinessObject(BO、Entity)的过程。所以建模的过程多数工作就变成了组装出BusinessObject的过程了。

在CIIP中,尝试过下面列出的2,3,4的方式:

1.CodeDom,这个比较老了,TA看起来是Roslyn的语法树的子级,但看起来挺麻烦的,所以我没有用这个。

2.Reflection.Emit,使用.net提供的运行时以emit il的方式生成方法(Method),定义程序集、定义模块、定义类、定义接口等都比较容易,这个方式我从头到尾的应用过,在CIIP中,需要从头到尾的生成类,类有很多复杂情况,Reflection.Emit是处理不了的,比如说泛型的循环引用。

public class 单据基类<单据明细>{}public class 单据明细<单据基类>{}public class 订单:单据基类<订单明细>{}public class 订单明细:单据明细<订单>{}

原标题:没有技术说明文档的开源都是耍流氓:微软Roslyn编译即服务在CIIP中具体应用(上)

关键词:ip

ip
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。