Problem
在asp.net web form或者asp.net mvc在从开发环境发布到测试、生产环境时,其数据库环境、动态配置会有很大差别,特别是数据库链接字符串。我们需要每次发布都去修改web.config吗?
以数据库连接为例,本地开发时的连接字符串为:
<connectionStrings>
<add name=”AvastinDP” connectionString=”Data Source=.\SQLEXPRESS;Initial Catalog=AvastinDP;Integrated Security=True” providerName=”System.Data.SqlClient” />
</connectionStrings>
测试服务器的数据库连接为:
<connectionStrings>
<add name=”AvastinDP” connectionString=”Data Source=devdbtest03\SQLEXPRESS;Initial Catalog=AvastinDP;Persist Security Info=True;User ID=[username];Password=[password]” providerName=”System.Data.SqlClient” />
</connectionStrings>
生产环境的数据库连接为:
<connectionStrings>
<add name=”AvastinDP” connectionString=”Data Source=dbserversh001\SQL2008R2;Initial Catalog=AvastinDP;Persist Security Info=True;User ID=[username];;Password=[password]” providerName=”System.Data.SqlClient” />
</connectionStrings>
Solution
在Visual Studio 2010的项目中,展开Web.Config我们会发现,还有Web.Debug.Config和Web.Release.Config,通过在其中添加相应的配置信息,可以在发布时,替换相应的Web.Config中的信息。
Discussion
在Web.Debug.Config中,有如下字符串
<!–
…… Read More

我们遇到的一些问题
开发过程中如何管理数据库的变更?
1. 开发过程中,当开发人员A因开发需要,对数据库做了一次变更(比如,增加了N个字段),这时候开发人员B拿到代码就抓瞎了。以前我们解决办法有:
1). 将数据库初始状态作为基线版本,每位程序员将每次变更保存为带版本号SQL文本,以跟踪每次变更。但程序员对于SQL脚本的掌握程度不一,导致脚本质量差别巨大,并且很容易遗漏一些内容(比如,主外键关系);
2).… Read More

很多程序员在写代码的时候往往都不注意代码的可读性,让别人在阅读代码时花费更多的时间。其实,只要程序员在写代码的时候,注意为代码加注释,并以合理的格式为代码加注释,这样就方便别人查看代码,也方便自己以后查看了。下面分享十个加注释的技巧:
1. 逐层注释
为每个代码块添加注释,并在每一层使用统一的注释方法和风格。例如:
针对每个类:包括摘要信息、作者信息、以及最近修改日期等;
针对每个方法:包括用途、功能、参数和返回值等。
在团队工作中,采用标准化的注释尤为重要。当然,使用注释规范和工具(例如C#里的XML,Java里的Javadoc)可以更好的推动注释工作完成得更好。
2.… Read More

之前做了一个B/S的项目,现在客户需要刻录光盘发放出去进行本地浏览。
当年,团队选择.Net,就是想将桌面应用和B/S的应用层资源进行整合,省去人力和技术上的一些麻烦。通过良好的分层设计,通过数据访问层共享,在很多项目中省去了数据和大部分业务逻辑的事情,当然,像我们这样的小型业务,程序员可以B/S和桌面应用串门,.Net比其他语言都有优势。
但这次不同,首先,UI、业务流程都不希望调整,所以这个项目基本上就不希望有修改。
当时使用的SQL Server + .Net MVC2.0 + LinqToSQL,基于.Net Framework 3.5进行开发的。现在摆在我们面前的有三条路。
1.… Read More

我承认,这帖有标题党之嫌。但还是得记录。
其实吧,ec2 就是给你一台vps,并且有root权限。
apache, mysql的安装就不说了,开始ruby吧,amz给的ruby是1.8.7,足够了。
1.… Read More

今天遇到一个问题:
resources sessions do
get :logout, :path => “/logout”
end
在3.0中,rake routes会解析为:
/sessions/:session_id/logout(.:format)
在3.0.0.rc中,会解析为:
/logout
刚升级到3.0.1,routes与3.0.0一致
所以,像rc那样不区分resources和resouce的写法行不通了。阿门
3.0以后增加了
resources member和resources collection两个scope… Read More
VMware Workstation 7.1 and FireDaemon v2.2
家里的台式机一直跑一个XP,大部分时间控制权不在我手上。但总觉得浪费了那4G内存和1.5T的磁盘。控制权是抢不回来了,所以用VMWare 7装了2个虚拟机玩着…但每次都得远程进去,打开VMWare、Start…麻烦!!!
从06年到现在,一直用VMWare Workstation & VMPlayer,没觉得哪里不好。去年开始,用了VirtualBox和Hyper-V后,觉得Hyper-V的一个重要优势就是自动静默随服务启动,可惜,这台机器的CPU(E7400)不支持Intel VT(Intel列表里E7400只有个别批次支持),所以Hyper-V是不想了。VMServer直接接管硬件,也不行,如果保证不了XP的运行,是要命的。
一直在找以服务启动VMWare的方案,Google里面”vmware autostart as windows service”、”vmware run as windows service”这样的关键词都被搜烂了,比较多的是使用微软的Instsrv.exe命令行创建服务,这个方法可行,但比较麻烦。后来找到了本文介绍的玩法的鼻祖级手册:http://forums.firedaemon.com/vmware-workstation-windows-service-t78.html?s=90e22cfa455ca5c35dccbc0539fbbd5a&(可能以前没注意,居然把它给忽略了,现在才找到)。
主要步骤如下:
1.… Read More

1.安装插件(依赖于ImageMagick)
rails plugin install git://github.com/thoughtbot/paperclip.git
2. 创建migrate
rails g paperclip company logo
系统会自动创建如下代码
class AddAttachmentLogoToCompany < ActiveRecord::Migration
def self.up
…
end
def self.down
…
end
end
3. 修改model(company)
class Company < ActiveRecord::Base
has_attached_file :logo, :styles => { :normal => “150×60″ }
end
4.… Read More

今天收到一份PDF,使用Adobe Reader或者Foxit Reader打开均正常。
复制文字,在文本编辑器中粘贴,英文字母、标点符号乱码,或者显示莫名其妙的文字。比如:两个空格贴出来后,居然把我们一同事的名字整出来了“摇摇”。
面对这玩意儿,我头开始摇。最后网上找到PDF2Word没搞定,使用Foxit Editor没用。咋整呢?
复制出来后对标点?太痛苦了,64页,要命啊。一份文件还好,要有个几十份,不用干别的事情了。
问题出在PDF的内嵌字体,比较怪异,Windows里面没有。后来,找了N久字体没能解决,记录在此,希望某一天能够找到不用痛苦的到处找字体或对标点的解决方法。… Read More

一直用Redhat/CentOS,突然换成Ubuntu,不太适应,SSH总是很慢。Google/Baidu 找到解决方案如下:
把
sudo vim /etc/ssh/ssh_config
修改其中的
GSSAPIAuthentication no
和谐了
还有人是这样干的
把下面两行注释掉:
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no… Read More