codesmith+ nettiers实践

捣鼓网站的时候,发现有大量重复性代码要写,比如 实体类,CRUD过程等,所以,我试着用代码自动化工具试试。

在使用CodeSmith之前,也试用过别的工具,比如动软,基本功能是可以达到,但是总体感觉不灵活。就是里面的内容不能调整。CodeSmith基于模板,我个人观点,这样的思想很好。调整模板,生成的代码随之调整。很方便。

CodeSmith的基本操作我就不介绍了,这方面资料还是很多的,关于nettiers的资料就有点少了,这里记录下,供参考,也是我的个人笔记。

找到Web.Sitemap.cst文件 修改其中的内容
	<siteMapNode url="~/Admin/<%=entityName%>.aspx" title="<%=GetFriendlyName(table)%>"  description="" />
才发现 netTiers有坑,生成的代码有问题,调试时操作没问题,部署之后,执行sql报错:

“/”应用程序中的服务器错误。

等待的操作过时。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ComponentModel.Win32Exception: 等待的操作过时。

源错误: 

执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪: 

[Win32Exception (0x80004005): 等待的操作过时。]

[SqlException (0x80131904): Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +2442126
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5736904
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +628
   System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +3731
   System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +58
   System.Data.SqlClient.SqlDataReader.get_MetaData() +89
找不到相关资料,只能硬着头皮试着解决了。

找到更好的自动代码生成工具:t4模板

这里是工具的介绍:https://msdn.microsoft.com/zh-cn/library/dd820620.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3

这里是别人的例子:http://www.cnblogs.com/EmptyFS/p/3759993.html 我按照这个例子 成功生成了项目。只不过一些细节性的地方需要自己修改。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值