之前有同学翻译了使用BuildProvider生成DAL的文章,又在网上搜索了一下,感觉这是个很有意思的功能,最近在做点东西用到这个,的确让我省了不少的事情。
其实Build Provider所做的工作是把一个文件的内容来控制生成IL代码,其实从本质上来说是一个IL代码生成器,置于你用CS,或者VB,那就是自己喜好的问题了,那么从另一个意义上来说,如果我们实现了一个语言到C#或者VB的转换,从理论上来说我们可以在ASP.NET中使用所有的语言,甚至包括我们自己发明的语言,这真的是一种很有意思的功能,不过很疑惑的是微软为什么不在Winform实现这个特征,不过现在ASP.NET的应用更加广泛,所以倒也无妨。最近做了个东西,是因为对Subsonic再开发的时候必须实时连接数据库感觉比较麻烦(很多时候再没有数据库的地方想改上几句就老报错,很烦),所以做了个解析SQL语句的类准备直接解析创建表和表间关系和主键、索引的SQL脚本来生成DAL(这些可以从SQLServer导出,点点鼠标很方便的),在做的过程中发现其实我就是把一些代码生成器的工作放在了Build Provider中,历史又再次倒流了。
Any Way,这个功能确实很有意思,希望能看到更多基于他的应用,欢迎多多讨论