废话不要,他们都该删。
很多人、包括直到前不久离职的我,都在进行着 基于数据库且数据库优先 的简单应用开发。所幸的是大家都使用着相同的实现模式:Entity -(IDal、Dal)- Bll。
于是,我要写一套 CodeSmith 模板,让有缘人看到、使用 或 修改。
•实施
包括这套,一共编写了三套 CodeSmith 模板;
第一套实现了基本的可用功能,第二套添加了自认为有亮点的功能,这次重构并删除了那些自认为有亮点的功能;
所以也留下了一些心结:
1.枚举类型的字段。虽然可让代码强类型、可读性强,但使用字段注释和类型转换也可弥补。
2.视图中的唯一键。这个关系到分页性能,不过如果最多只返回 Top 500 之类的则也没啥差别。
3.TransactionScope。SqlServer 2000 时需要启动 MsDtc 服务且影响性能,不过 SqlServer 2005 以上就不需要了。
•结果
下载 并使用 CodeSmith 运行 Main.cst。
•说明
如果使用 CodeSmith 5.0,则在 CodeSmith 的 Template Explorer 的工具栏中点击第一个按钮(Create Template Folder Shortcut)指向 DatabaseBasedCodeGenerator 文件夹。
打开 Main.cst,编译后在 Properties 设定必填属性就可运行 Main.cst 了,运行后会生成完整的解决方案。
是否能编译则还要看你的数据库元素的命名是否重复。
生成的主要是数据访问的实现:
其中 Filter 和 Condition 是为了让查询条件强类型而引入的。
Condition 弥补了 Filter 中条件只能与的缺陷。
所以,Condition 蕴含的 Sql 是依靠数据库元数据生成的,因为使用 CodeSmith,所以参考了其 SchemaExplorer 命名空间中类的命名:
如有更多问题,请 联系我。
31 个解决方案
#1
感谢分享。因为主要是软件推广而不是技术分享,就不给推荐了。帮你转移到非技术区。
#2
感谢分享
#3
好的。
#4
早知道发在 水园 了,这里简直是小黑屋啊
#5
感谢分享
#6
饿,那个。。 JAVA的路过。。
#7
不 明 觉 历
#8
没看懂 但是感觉好厉害的样子!!!
#9
难道用 CodeSmith 的人不多,都 T4 了?
#10
感谢分享~~~~~~~~~
#11
接分,加星,凑字数
#12
#13
#14
谢谢推荐
#15
#16
#17
不客气
#18
不清楚 感觉满厉害的
#19
早晚各一顶。
#20
太厉害了,一共编写了三套 CodeSmith 模板
#21
三次,不断地重构嘛。
#22
现在依旧用codesmith的路过...
#23
mark........
#24
#25
codesmith 不仅可以基于数据库,自定义schema带来的扩展性也是挺强的,不过还是 t4 集成性好
#26
#27
#28
Codesmith感脚用的不想用了
我曾经还写过codesmith的脚本,要不也拿出来分享?
我曾经还写过codesmith的脚本,要不也拿出来分享?
#29
那自然是好。
#30
虽然不知道这个干嘛的,帮顶
#31
#1
感谢分享。因为主要是软件推广而不是技术分享,就不给推荐了。帮你转移到非技术区。
#2
感谢分享
#3
好的。
#4
早知道发在 水园 了,这里简直是小黑屋啊
#5
感谢分享
#6
饿,那个。。 JAVA的路过。。
#7
不 明 觉 历
#8
没看懂 但是感觉好厉害的样子!!!
#9
难道用 CodeSmith 的人不多,都 T4 了?
#10
感谢分享~~~~~~~~~
#11
接分,加星,凑字数
#12
#13
#14
谢谢推荐
#15
#16
#17
谢谢推荐
不客气
#18
不清楚 感觉满厉害的
#19
早晚各一顶。
#20
太厉害了,一共编写了三套 CodeSmith 模板
#21
三次,不断地重构嘛。
#22
现在依旧用codesmith的路过...
#23
mark........
#24
#25
codesmith 不仅可以基于数据库,自定义schema带来的扩展性也是挺强的,不过还是 t4 集成性好
#26
#27
#28
Codesmith感脚用的不想用了
我曾经还写过codesmith的脚本,要不也拿出来分享?
我曾经还写过codesmith的脚本,要不也拿出来分享?
#29
那自然是好。
#30
虽然不知道这个干嘛的,帮顶