SharpDevelop + MySql
Vista + VS 2005 + Oracle 10g开发环境,内存使用1.5G,系统速度终于让人受不了了。
还没有用VS 2005调试,因为NUnit + log4net可以方便的测试和debug。
code generator做一个MySql生成脚本,建立MySql数据库,把开发环境换成SharpDevelop + MySql,内存使用700M左右,总算好多了。MySql内存4M不到,SharpDevelop内存50M以下,比起那个Oracle 10g、SQL 2005和VS 2005,没得说的。系统启动时Vista + Oracle的启动,导致登陆后10多分钟硬盘不停的狂读,也好多了,毕竟Vista还是没法干掉,太劳神了。
NUnit一跑,出现红灯,一个是连接字符串中需要用Initial Catalog指定默认的数据库,另外一个是MySql字符集没有配置成utf8,中文存入之后变成乱码。
不好的一些地方:
1. 智能感知/自动完成没有VS 2005方便;
2. SharpDevelop不能跟VSS邦定。
3. 如果使用某些字体,例如Tahoma,代码编辑器中光标老是定位不准,尤其是方法名等加粗显示的项目,使用Arial好一些;
4. 代码编辑、调试时不少功能不支持,例如VS中的全部收缩、展开,注释收缩起来,另外一些常用快捷键没有或者跟VS不一样,例如书签、F9、Ctl K+Ctl D、VS中F12变成Ctl+Enter等。
5. 工程比较大时,单步跟踪调试速度很慢。
6. 代码对齐方式有些问题。
总的来说还是很不错的了,跟当年写VB、Delphi,尤其是ASP比一下还是好多了。
另外一个非常好用的功能,是它跟NUnit完全整合,可以直接在工程中启动NUnit并调试,不象VS中使用NUnit总是比较别扭。
另外一点,在SharpDevelop中运行或者调试NUnit Test Case,如果有地方使用反射方式创建对象,但又不是使用强名称方式,则必须将相关的dll引用起来(如果业务组件没有引用,就在测试工程中添加一下),并且在引用属性上选择Copy到目标地址。
这是因为SharpDevelop启动NUnit console时,在C:\盘中设置了一个临时目录作为NUnit的工作目录,我们必须保证反射所引用的dll在这个目录下存在。典型的情况是安装MySql的Connector时,将MySql.Data.dll注册到了全局缓存GAC中,NHibernate用反射来创建但又不是使用的强名称,这样运行时刻将无法创建MySql相关对象。引用MySql.Data后如果不选择Copy到目标地址,也是无效的。
这么长时间没看SharpDevelop,发现竟然支持ASP.NET web project、web service、WPF了。不过aspx页面还是没有设计视图,只能手写html;它用的dll工程实现ASP.NET,不好调试。看来这还是出的比较仓促的做法。
还没有用VS 2005调试,因为NUnit + log4net可以方便的测试和debug。
code generator做一个MySql生成脚本,建立MySql数据库,把开发环境换成SharpDevelop + MySql,内存使用700M左右,总算好多了。MySql内存4M不到,SharpDevelop内存50M以下,比起那个Oracle 10g、SQL 2005和VS 2005,没得说的。系统启动时Vista + Oracle的启动,导致登陆后10多分钟硬盘不停的狂读,也好多了,毕竟Vista还是没法干掉,太劳神了。
NUnit一跑,出现红灯,一个是连接字符串中需要用Initial Catalog指定默认的数据库,另外一个是MySql字符集没有配置成utf8,中文存入之后变成乱码。
<property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.connection_string">
Password=cms;User ID=root;Data Source=localhost;Initial Catalog=CMS;Persist Security Info=True
</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="use_proxy_validator">True</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.connection_string">
Password=cms;User ID=root;Data Source=localhost;Initial Catalog=CMS;Persist Security Info=True
</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="use_proxy_validator">True</property>
不好的一些地方:
1. 智能感知/自动完成没有VS 2005方便;
2. SharpDevelop不能跟VSS邦定。
3. 如果使用某些字体,例如Tahoma,代码编辑器中光标老是定位不准,尤其是方法名等加粗显示的项目,使用Arial好一些;
4. 代码编辑、调试时不少功能不支持,例如VS中的全部收缩、展开,注释收缩起来,另外一些常用快捷键没有或者跟VS不一样,例如书签、F9、Ctl K+Ctl D、VS中F12变成Ctl+Enter等。
5. 工程比较大时,单步跟踪调试速度很慢。
6. 代码对齐方式有些问题。
总的来说还是很不错的了,跟当年写VB、Delphi,尤其是ASP比一下还是好多了。
另外一个非常好用的功能,是它跟NUnit完全整合,可以直接在工程中启动NUnit并调试,不象VS中使用NUnit总是比较别扭。
另外一点,在SharpDevelop中运行或者调试NUnit Test Case,如果有地方使用反射方式创建对象,但又不是使用强名称方式,则必须将相关的dll引用起来(如果业务组件没有引用,就在测试工程中添加一下),并且在引用属性上选择Copy到目标地址。
这是因为SharpDevelop启动NUnit console时,在C:\盘中设置了一个临时目录作为NUnit的工作目录,我们必须保证反射所引用的dll在这个目录下存在。典型的情况是安装MySql的Connector时,将MySql.Data.dll注册到了全局缓存GAC中,NHibernate用反射来创建但又不是使用的强名称,这样运行时刻将无法创建MySql相关对象。引用MySql.Data后如果不选择Copy到目标地址,也是无效的。
这么长时间没看SharpDevelop,发现竟然支持ASP.NET web project、web service、WPF了。不过aspx页面还是没有设计视图,只能手写html;它用的dll工程实现ASP.NET,不好调试。看来这还是出的比较仓促的做法。