一下內容僅為初步想法,請大家共同考慮需求,想到什么寫什么,以后再考慮實現問題,如同我們對付客戶一樣,先答應再說!
1.blog發布工具,支持最m.tkk7.com的初步維護,根據Blog公布的API定義具體功能;
2.考慮租用服務器,將大家交流的數據傳到服務器上,如教程,DEMO,視頻,聊天記錄等等;
3.考慮開發一個簡單的IM工具(實現一定有難度);
4.附帶個人日程管理,做簡單本地日記,或者網站收藏夾;
5.構建一個代碼收集器(Eclipse插件),可以供我們分門別類的增加代碼,如果發現有可以使用的,就直接拖拽或者拷貝到JDT中使用;
暫時只能想到這些了。大家繼續補充!
DB4O?
新出的OODBMS~取諧音DB for O 。一個優秀的OODBMS解決方案,它出現的定位就是為了開發嵌入式和小型應用,同HSQLDB的定位相仿。不過DB4O的的優點則是,本身是OODBMS,那么對它的操作自然就是基于OO的,同Hiberante一樣,但是Hiberante是ORM解決方案,而DB4O則是原生OODBMS方案。看看下面的例子
一個同Hibernate相同的POJO,沒有任何方法,也沒有跟DB4O有任何耦合。
1
package name.lgn.db4o.test.model;
2
3
public class Person
{
4
5
private String firstName;
6
7
private String lastName;
8
9
private int age;
10
11
public Person(String firstName, String lastName, int age)
{
12
this.firstName = firstName;
13
this.lastName = lastName;
14
this.age = age;
15
}
16
17
public String getFirstName()
{
18
return firstName;
19
}
20
21
public void setFirstName(String value)
{
22
firstName = value;
23
}
24
25
public String getLastName()
{
26
return lastName;
27
}
28
29
public void setLastName(String value)
{
30
lastName = value;
31
}
32
33
public int getAge()
{
34
return age;
35
}
36
37
public void setAge(int value)
{
38
age = value;
39
}
40
41
}
42
在看,DB4O的解決方案:
1
package name.lgn.db4o.test;
2
3
import name.lgn.db4o.test.model.Person;
4
5
import org.junit.Test;
6
7
import com.db4o.Db4o;
8
import com.db4o.ObjectContainer;
9
import com.db4o.ObjectSet;
10
11
public class TestDB4O
{
12
13
@Test
14
public void testDB()
{
15
ObjectContainer db = null;
16
try
{
17
db = Db4o.openFile("persons.data");
18
19
Person brian = new Person("Brian", "Goetz", 39);
20
Person jason = new Person("Jason", "Hunter", 35);
21
Person clinton = new Person("Brian", "Sletten", 38);
22
Person david = new Person("David", "Geary", 55);
23
Person glenn = new Person("Glenn", "Vanderberg", 40);
24
Person neal = new Person("Neal", "Ford", 39);
25
26
db.set(brian);
27
db.set(jason);
28
db.set(clinton);
29
db.set(david);
30
db.set(glenn);
31
db.set(neal);
32
33
db.commit();
34
35
// Find all the Brians
36
ObjectSet brians = db.get(new Person("Brian", null, 0));
37
while (brians.hasNext())
38
System.out.println(brians.next());
39
40
} catch (Exception e)
{
41
e.printStackTrace();
42
} finally
{
43
if (db != null)
44
db.close();
45
}
46
47
}
48
}
49
存入數據用db.set(...);取出數據用db.get(...),是不是非常親切和簡單?
對于不需要使用大型DB,但又需要存儲數據的時候不需要再用hibernate+hsqldb了,只需要使用DB4O,就全帶了,又有簡單的數據庫操作,又有數據的存儲,還有數據完整性的保證,簡單方便,何樂不為呢?RCP開源項目著名的RSSOWL在2.0中也已經把原有的hiberante+hsqldb替換為DB4O的解決方案了。
雖然OODBMS的路還有很長,而且就現在看,和RDBMS還有很長的距離,但是從DB4O上,我們還是看到了希望。在DB4O的眼中Hibernate,jdo等等都是暫時的解決方案,對于OODBMS來說ORM本來就是不存在的東西,ORM僅僅是為了解決RDBMS到OO的映射,而OODBMS本來就是原生的,免去了中間層,免去了煩惱。
下載 db4o:這是一種用于 Java 的開源對象數據庫。
摘要: 正在規劃一個Eclipse上看RSS的Plugin 閱讀全文
1.在Plugin.xml中配置Editor時,需要配置除id,name,class這些必備項外,還需要配置icon這個屬性,必須要給一個Editor一個圖標,不知道是不是BUG。經過測試,發現在不配置icon的時候,也不配置class時,RCP平臺可以根據ID找到這個Editor,但是如果class配置的話,就不能使用ID找到Editor了,總是在報未知的ID這個異常。
2.使用TableViewer時,TableColumn的寬即setWeight屬性必須設置,如果不仔細看文檔的話,一天TableViewer都不會顯示出來。
上次的一篇文章問到為什么TreeViewer沒有刷新,結果沒有人回答。求人不求己。
自己解答一下這個問題吧,是因為領域對象出了錯,所以TreeViewer沒有刷新,因為在取得子節點的時候,出現了空針的情況,Dialog沒有不關閉,也是因為在刷新節點的時候遇到了領域對象的空針,TreeViewer的刷新方法已經出現異常了,所以Dialog停止執行了。JFace對異常的處理好像就是這么簡單,當遇到異常的時候,很少會拋出異常。
以后在寫RCP的時候一定要注意異常的問題,不要因為沒有看到異常信息,就認為沒有異常了,RCP只是不知道應該不異常記錄在哪里而已。
正式開始RCP項目的開發了,又興奮又激動,突然一下不知道該干什么了!嘿嘿,太激動了~
下午在開發中發現一個小問題,org.eclipse.swt.widgets.Text的 setText方法竟然不接受null值!我沒有測試在SWT下是否報異常。反正是RCP項目中如果Dialog有Text而且你給setText了一個null,那么這個Dialog是不會顯示的,而且沒有任何異常可以報出來!Debug一下,不仔細看根本就看不到它是出現異常了!
大家以后注意啊!