CodeSmith使用心得

Thumbnail

CodeSmith是一款著名的代码生成器,可以帮助开发者完成一些重复性的劳动,并且能够保证更高的代码质量。CodeSmith使用Template(*.cst )模板进行基础代码片段的定义,支持语言包括C#, Java, VB, PHP, ASP.NET, SQL等等。 一个简单的Sample CodeSmith使用的模板使用方式类似于aspx/jsp页面,也就是基础代码+脚本的方式,大致代码如下(官方的sample2)。 <%@ CodeTemplate Language="C#" TargetLanguage="Text" Description="This template demonstrates using properties in your template." %> <%@ Property Name="Person" Type="System.String" Description="This will show up at the bottom of the property grid when the property is selected." %> <%-- This template demonstrates using properties in your template. --%> This is some static content (just like the static HTML in a ASP page). <%= "Hello " + this.Person + "!" %> This is more static content. 这个结构熟悉吧,几行代码分别表示模板属性,参数,脚本(注释),脚本(输出),静态文本。 ...

2011-02-26 · alswl

没有银弹

最近为工作中和学习中遇到一些问题而发愁,夜不能寐,做梦都在寻求方法。 问题简单的来说,就是开发过程中遇到很多本觉得不该遇到的问题,比如数据关系在数据表的设计,比如说自动化测试无法接入,ORM接入设计,开发流程如何优化,Web标 准性问题等等。我罗列了大约30条会导致开发效率降低的因素,也一直在思考怎么解决他们,如果让我来设计他们,会用什么方式来提高效率,让系统更优美。 读完《人月神话》和《走出软件作坊》之后,似乎有了一些明悟。今天wiki到没有银弹这个话题,我意识到自己太过于追求一步到位了。 ...

2011-02-25 · alswl

使用DataConnectionDialog来获取连接字符串

Thumbnail

在系统开发中,数据库连接字符串经常被保存到.config/.ini等配置文件中,以提高系统的灵活性。上大学时候,为了实现灵活配置数据库的效果,用拼字符串的方 法来动态生成连接字符串,这种方法充满了Bad Smell。 昨天用CodeSmith时候,看到它的数据连接配置界面,如此的眼熟,如下图。 Google了一下,原来这家伙的名字叫做DataConnectionDialog,所属命名空间为Microsoft.VisualStudio.Data。 ...

2011-02-15 · alswl

在.net中使用GAC

Thumbnail

GAC GAC是什么?是用来干嘛的?GAC的全称叫做全局程序集缓存,通俗的理解就是存放各种.net平台下面需要使用的dll的地方。GAC的具体目录在windows/ assembly。 喜欢使用破解软件的朋友可能会经常使用替换DLL这招,这个DLL虽然和.net下面的DLL有所不同,但大致起的作用还是一样的:使用共同的动态链接库来提高库复用 ,减少文件体积。在.net平台之前,程序们都把可能用到的公共DLL存放到system32文件夹下。由于版本的不一致及其他原因(将控制信息存放到注册表),造成 了很有名的DLL Hell。 ...

2011-01-23 · alswl

正则表达式抓捕替换

问题情境 需要将RDL报表里的GetComment( Parameters!F0001.Value , Parameters!F0002.Value ,“total”, Parameters!Language.Value)函数修改为GetCommentForComment( Parameters!F0001.Value , Parameters!F0002.Value ,“total”, Parameters!Language.Value, “ReportConnection0107”)。 思路 使用正则表达式里面的分组进行抓获,再用1将中间固定的参数取出,组成新的字符串。 Vim实现 %s/GetComment(((sw+!w+.w+s,){2}s*“w+“s*,sw+!w+.w+s))/GetCommentForReport(1 , “ReportConnection0107”)/gc 解释:%为全局替换,s为替换。后面则是表达式,和正则表达式差不多,注意是*不需要转义,+ 和 .需要转义,最后的g代表当前行替换,c代表每次替换需要确认。 ...

2011-01-19 · alswl

男人袜1元体验活动

从Louis Han那里看到一篇文章介绍了一个适合宅男的网站,想想我自己宅属性日益增加,就抄文推广一下。 -Update 20110113 收到男人袜客服的来信,说我文章"我们发现您的文章基本上是引用的网站内容,建议您用自己的文字来评价一下我们的网站或服务。",我郁闷了一下,回了一封信说我还没体 验到,怎么来评价。何况下面文章那些文字虽然是Louis Han整理发文,但源头其实来自男人袜网站的介绍内容。 怪就怪我偷懒了吧,男人袜建议我修改文章再发,算了拉不下这个脸 ...

2011-01-12 · alswl

最简陋的GAE代理

年前换了一次服务器,之后发现Lifestream的Errors飙升到1000+错误,检查一下,发现是获 取不了豆瓣的rss链接。正好这台主机支持SSH,连入之后CURL了一下豆瓣服务器,发现Time out。 紧接着发现中国内的所有域名都无法使用CURL获取,联系小张之后,得知该主机曾经被入侵过,于是屏蔽了中国大陆的ip段(囧~入侵和中国ip有毛关系) 遂想用GAE做个代理服务器,反正获取RSS也只要Get一下,代码没几句。把这项任务放入Toodledo之后,就一直没去弄,今天发现GAE Laucher升级了,就部署到自己GAE上了。 ...

2011-01-11 · alswl

LavaVPN推广链接

Thumbnail

以前一直使用SSH进行翻墙,后来在人人看到一位朋友推荐LavaVPN,就过去试用一下,效果的确不错。 LavaVPN支持各种系统,在Windows下面有专用的客户端接入程序,通过这个客户端可以实现选择性加速,而不需要全局加速。在Android和Linux上面 测试都可以。 官方的介绍如下: LAVAVPN网络加速器是专为各类网游玩家、软件发烧友、网络办公、影音冲浪网虫等个人用户提供网络加速服务的新型产品,能有效减少网络延时,使网络互访再无拥 挤的感觉,让您在任何情况下都能体验上网加速的快乐!多地服务器节点可以选择,一个账号即可使用全部节点,随时任意切换,软件自带服务器测速工具,自动选择最快的节点 。 ...

2010-12-23 · alswl

半年

去年10月份时候,进入了一家做信息化的上市公司,带着对未来的憧憬奔向了广州,半年中,历经数个小项目,发现其实是小作坊开发模式。虽说能学到一些编程之外的东西, 但毕竟不是系统的开发模式,今年5月回了学校就辞职了。 7月份时候,工作机会似乎已经趋向饱和,我急急忙忙拿了一份Offer,从事.net的企业信息化开发。虽然我志在Web 2.0方面的开发,但是权衡再三,还是到南京的研发中心。 新岗位是.net Web开发,我由Java开发人员转为.net开发人员。我对语言的选择本身不是很在意,甚至那时候认为语言其实是工具,思想和设计才是核心。我所 就职的部门负责产品之外的特殊需求专案开发,基于.net平台开发ERPII产品,包括工作流、CRM等等。 ...

2010-12-18 · alswl

C#+VBA操作Excel总结

Excel在日常办公中应用非常广泛,这次我接到一个案子,需要往Excel中写入数据并能够打印出固定格式,前前后后大概花了将近2星期才搞定,现在做一些分享。 一、关于操作Excel的几种方式 我们导出Excel,大抵是有两种方法,一种是在服务器端用一些类库或者COM组件直接生成Excel成品,其二是在后台只写入数据,而不写入具体格式,等用户下载完 Excel之后再在客户端上利用vba生成Excel成品。 1.1使用"自动化"功能-后台生成成品 微软把后台使用COM组件称之为"自动化",其实它本身是不建议这种用法,在257757 号文章(服务器端 Office自动化注意事项)也明文标出"Microsoft 目前建议不要从任何无人参与的、非交互式客户端应用程序或组件(包括 ASP、DCOM 和 NT Service)中进行 Microsoft Office 应用程序的"自动化",也不为此提供支持,因为 Office 在这种环境中运行时可能会出现不稳定的现象并且/或者会死锁。" ...

2010-12-14 · alswl