1. 程式人生 > >新浪微博PC客戶端(DotNet WinForm C# 版,C#呼叫新浪微博API程式碼,原始碼下載)—— 初探 (第二部分內建連結)

新浪微博PC客戶端(DotNet WinForm C# 版,C#呼叫新浪微博API程式碼,原始碼下載)—— 初探 (第二部分內建連結)

最近興趣使然嘗試了一下使用DotNet技術實現新浪微博PC客戶端,幾天時間,目前實現登入、微博列表、釋出純文字微博功能,新浪API呼叫基本沒什麼難度,在微博列表形式處理上著實讓我煩躁了一陣子,Windows Form使用不多,這次開發也感覺有些捉襟見肘。
 
環境:
作業系統:Windows 7 Ultimate
整合開發環境:Visual Studio 2010 Ultimate
.NET Framework:3.5
 
先看一下截圖:
1、登入介面
 
2、 登入
 
3、第一次執行主介面載入
 
4、主頁面
 
5、翻頁
 
 6、如果博文中有圖,點選小圖可以檢視大圖
 
新浪微博API返回的資料型別有兩種:XML和JSON。在登入時,我直接用DataSet讀的XML資料儲存到一個靜態使用者資訊類中;而部落格列表資料我讀取的是JSON格式的資料,並將JSON格式的資料反序列化為泛型物件(類)集合,這裡的類是巢狀類。
 
然後繪製列表,顯示資料的控制元件全部是動態新增的,這裡最煩的是位置,可能也是這個原因導致每頁20條資料載入比較慢(介面預設一頁返回20條),最快也要2秒,經常要4-6秒,後面提供下載,大家可以試試。另外,影響速度的原因可能還有:1)網速;2)輸出圖片,有的是直接輸出大圖,在回覆的源微博中如果有圖片,總是獲取不到縮圖,只好依次判斷小圖、中圖、大圖,先有哪個輸出哪個。 用Label顯示文字行間距沒法調,只好做了個自定義控制元件,主要是根據字型大小了增大行距。
 
介面雖然使用面板(ssk),比Window Form原始的介面好看的多,但是比起Adobe的那個AIR還是有差距,或許可以嘗試使用WPF。
 
後續要實現的功能(還沒全部看API,有的功能不一定提供API):
1)轉發、收藏、回覆
2)發帖可以使用表情、可以上傳圖片
3)關注、粉絲列表
4)檢視自己微博、他人微博列表
5)個人的一些配置資訊
6)主介面左邊想放新浪微博登入後,個人首頁右邊的內容
... ...
工作量還挺大:(的。
 
目前經過處理,程式執行後佔用的記憶體在4M-25M這樣的一個範圍 ,如果不處理會一直攀升,100M、200M、... ... 。
在翻頁時,載入顯示瞬時CPU佔用率能夠達到30%左右,一般比較低,5%以下。
滾屏時,CPU佔用率一般18%以下,都是瞬時的。
大家看到的資料非同步載入使用了多執行緒,主要是使用了BackgroundWorker。
 
除了上面的問題,在滾屏時,滾動的內容有點閃,還沒找到好的解決辦法。
 
歡迎有興趣的人一起討論,提寶貴意見。有經驗的人做個指導:)。
 
最後附上讀取新浪微博API的部分程式碼:

 

感謝部落格園的這篇文章,參考價值很大:http://www.cnblogs.com/cmt/archive/2010/05/13/1733904.html 

注:AppKey以內建,是我申請的,每IP每使用者一小時內限呼叫350次API。

PS:別拿來幹壞事... ...

附一條博文完整的XML資料:

status是博主發表的博文,retweeted_status是博主回覆或轉發了哪條博文,新浪API有欄位說明。