
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
客戶端是選擇Java Swing還是C# Winform?
在某大型項目中,客戶要求不能用瀏覽器作為客戶端(即不能用B/S模式),而要采用桌面客戶端的方式(服務端用SSH,客戶端通過Web Service訪問服務端應用,並且還要求能在客戶端與服務端網絡中斷的情況下離線進行部分業務操作,例如查詢)。這可給我們項目組提出了一個大問題:客戶端應用開發的技術選型。
公司有些員工強烈建議用Java Swing,認為有一些框架可以利用,例如spring RichClient(Swing),大家都對Spring比較熟悉,有親近感;甚至可以考慮使用 Eclipse RCP(SWT),因為有Eclipse在前面作為成功標桿。並且公司開發人員絕大多是Java程序員,可以隨時抽調精兵強將加入任務繁重的客戶端開發中,解決技術難題,甚至突擊編寫普通業務功能。而C#人員要重新招聘,增加了很多不確定因素。
但是采用Swing,缺點是界面比較難看,控件少得可憐,對客戶端資源的控制能力差,開發難度肯定高,並且公司內部也沒有積累(Java程序員都是做B/S應用的),並且在人力資源市場上,Swing方面但凡有點水平的開發人員工資都高得嚇人(在51Job上查了一下);但好處就是應用服務端與客戶端都是用的Java,兩邊的人手可以靈活配置(當然前題是開發人員對於SSH和Swing都要能上手,一是需要一段時間學習,二是人家技能多了,肯定會要求加工資待遇的)。
並且Spring RichClient已經很久沒有更新了,最新的版本是1.10,還是2009年6月發布的,在開發技術日新月益的今天,這種更新速度很叫人擔心呀!難不成Spring組織已經放棄了這個子項目?!
另又看了一下Eclipse RCP,最近的更新是2009年8月的,也是叫人心里沒有底呀!
而采用C# Winform,界面好看多了,界面控件也很豐富(MS自己的,第三方的都有很多),並且RAD開發平台是MS的絕對強項,客戶端運行速度也不錯,安裝升級很方便,人力資源市場上應用有不少儲備。但要在項目組是加入C#開發人員,對於合理組織人力資源有些不利。並且與服務端人員交流也肯定會存在問題。好在C#是Java之子,雙方有太多相似的地方,交流起來難度應當沒有想像得那樣堪比楚河漢界。
關於運行環境方面的問題,下載一個Jre,大約15M;而下載一個.net Framework大約40M。看上去.net的運行環境比Java大得多,但是要注意,從XP Sp3以后所有windows操作系統已經在安裝時集成了.net運行環境,也就是說,絕大部分用戶是不用下載.net運行環境並安裝的。
另外就是開發模式。在Java B/S應用開發中,一般是一個程序員從數據庫、SSH到ExtJs全程貫通。好處是效率高,壞處是人員分工不明確,接口定義很隨意。
在大型應用開發中,服務端與客戶端的開發人員還是要分組比較好。服務端應當定義良好的接口,並且使用完備的測試用例保證其正確性與可用性。而客戶端開發人員則着重於用戶界面的處理,然后根據服務端的接口文檔調用即可。
其實將服務端與客戶端完全隔離開來也有其不利因素,就是人員交流成本會有相當程度的提高,服務端要為客戶端定義明晰的接口方法,提供完備的接口文檔,以方便客戶端理解與調用,並且還要為自己的服務端寫測試用例,以確保接口功能實現正確性。
但其有利因素也讓人心動,就是提高了應用系統的模塊化程度,逼迫設計人員精心划分模塊、仔細設計接口,不象以前服務端(SSH)與客戶端(ExtJs)都是一個人在做開發,很多本應當明確定義的接口,開發人員都只是按自己的意願隨意設計修改。同時,集成第三方應用時,也不用專門費時費力再開發接口,只是將已經設計實現的接口包裝一下,加上權限等對第三方的限制條件即可。
我們公司作為一家以客戶為導向的應用系統服務型公司,在技術上不應做太多、太深入研究,跟着主流和客戶的要求走就沒有錯!現在服務端的主流是什么?Java(SSH)。客戶要求客戶端不用瀏覽器,要做成桌面應用,那現在桌面應用開發的主流是什么?C#WinForm(或者WPF)。桌面應用要求跨平台嗎?不用。現在對外發布遠程應用接口的主流是什么?Web Service,那我們服務端與客戶端的通訊方式就只有采用Web Service。
看上去采用Java的長處很明顯,短處也很明顯,帶來的風險也大。而C#一切都顯得很中庸,但相應的風險也小。我們還是取中庸之道吧!Java Server+C# Client。
另外,根據同事提出的不同意見,有以下幾點說明:
- 頂
- 0
- 踩
- 0
- 上一篇公司晚會演講稿
- 下一篇Web Service調用方式的煩腦
我的同類文章
- •智能客戶端:C/S與B/S的融合2012-11-19
- •在應用系統中集成文件上傳下載的技術解決方案2012-06-19
- •我的DS架構嘗試過程2007-01-26
- •關注Destktop Application Server Application2007-01-26
- •Web Service調用輕量級安全解決方案2012-06-19
- •關於MDA/BPM/SOA的隨想2008-06-30
- •我的JAVA開發架構設想2007-01-26
- 猜你在找
- 1樓 cszdm 2012-12-30 14:09發表 [回復]
-
- 剛好項目需要也遇到這個選擇問題~請問樓主最后選擇c#開發過程遇到過什么問題?是否可以分享一下一些開發經驗。因為項目只有我一個人開發,SSH服務端+C# 從來都沒有接觸過C#還真不知從何下手
核心技術類目
-
文章搜索
-
閱讀排行
- 電子表格使用的35種技巧(10091)
- 《攻殼機動隊》全收集(9622)
- 自然語言處理講義(8781)
- 不停止計划生育,中國還在等什么?(7164)
- 人工智能傳奇——關於AI起源與發展的故事 (6366)
- 漢族人的起源(5890)
- 人工智能的認識論問題(4992)
- 趙致真:我們的宇宙(4671)
- 攻殼機動隊2無罪:引文掉書袋(4420)
- Haraway賽博宣言:二十世紀晚期的科學、技術、社會女性主義 (4048)
-
評論排行
- 《攻殼機動隊》全收集(31)
- 人工智能傳奇——關於AI起源與發展的故事 (24)
- 漢族人的起源(19)
- 攻殼機動隊電視版 Stand_Alone_Complex 介紹(16)
- 不停止計划生育,中國還在等什么?(15)
- 對人工智能研究的遐想(14)
- 趙致真:我們的宇宙(12)
- 攻殼機動隊2:絢爛的冷酷的幻滅的(11)
- 中國最無恥的五所大學(10)
- 當年運10果斷下馬是中國民用飛機工業的福音(8)
-
推薦文章
-
最新評論
- 對人工智能研究的遐想
cleavcat: 是時候改變世界了……
- Web Service調用方式的煩腦
cszdm: 求lz給個demo!!我用webservice傳遞時候list總是出現問題~~lz采用什么方式實現
- 客戶端是選擇Java Swing還是C# Winform
cszdm: 剛好項目需要也遇到這個選擇問題~請問樓主最后選擇c#開發過程遇到過什么問題?是否可以分享一下一些開發...
- C++程序員常用工具大全
zhwheiying3: 我所需要的,給力
- C語言程序運行並將結果保存到文件中
a422100231: 恩,寫的好
- 中文信息處理
猿小衛:
- 中國的國防工業科技現狀令人擔憂
niujibin168: 每個人都會有自己的觀點,作者的話還是有幾分道理的,很好啊。。。
- 我的JAVA開發架構設想
TzSword: 謝謝博主 希望多寫點類似的文章
- 虛擬現實:媒體的終結者
xiaolinzi13838: 先看下面一個實例http://www.kbonline.net/vr/WebPlayer.html
- 欲為Java技術大牛所需的25個學習要點
葉傾城: Oh my Lady Gaga!!!成為java大牛真不容易!!!
