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,中文存入之後變成亂碼。<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>
不好的一些地方:
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,不好調試。看來這還是出的比較倉促的做法。