<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    技術架構評估

    技術架構評估

    --主要對Java、Dotnet等技術進行綜合評估
    weide

    2005 年 12 月17 日

    在本文中我們將根據一個業務需求對當前流行的幾種技術架構進行評估。

    這篇文章的目的不是為了評價各種技術架構在單項指標上的優劣,僅僅根據我們描述的業務需求做出選擇。同時,強烈希望大家發表自己的意見和建議,幫助我們做出這種選擇。




    業務場景描述

    這是一個經典的業務場景,其核心問題是:作為一家行業軟件提供商,要形成自己的企業應用框架[6],并在該企業應用框架上搭建行業的整體解決方案。

    現狀:經過多年的積累,我們形成了一個系列的行業軟件產品,從幾個方面分別描述如下:

    • 滿足的業務需求: 服務于企業質量管理這一行業,同時為滿足不同的業務需求,產生了相應的多款產品
    • 使用的數據庫: SQL AnyWhere、SQLServer、Oracle
    • 開發語言(工具): PB、VC、Delphi、Dotnet(C#)、Java(JSP)
    • 發布形式: 核心業務仍以C/S為主,最新的項目根據企業需求也用Dotnet/Java實現了少量B/S應用。最終的產品線將會是B/S、C/S共存,包括單機版、網絡版;標準版、定制版本的產品系列。
    • 經營模式: 定制開發與標準版軟件升級并行,在標準版的基礎上進行定制,同時把適用于多數企業的新功能合并到標準版中來。
    • 用戶數許可規模:當前的數量級為N*10,可預期的上升空間為幾百到幾千。所以對應用服務器、并發等性能要求不算太大。

    目標:
      將這些不同語言開發的,擁有不同發布形式,但卻服務于同一行業的單個軟件,統一到一致的技術架構下,并增加B/S發布模式的支持。最終形成B/S與C/S相結合的產品系列,形成行業的整體解決方案。
      舉例描述:首先用Java(或C#)搭建企業應用框架,該框架包含認證/權限/組織角色管理、文件管理等通用性的功能。然后在該框架的基礎上把現存 C/S版的--PB實現的財務管理系統,Delphi實現的庫存管理系統,VC實現的局域網即時通訊系統的業務功能模塊全部用Java或(C#)重寫,并 增加B/S版本的實現。
      統一到一致的企業應用框架下,形成統一、規范的開發方式,使得我們不用再去維護多個技術團隊;通過一致的企業應用框架,建立積累機制,逐步形成并完善整個系統的業務功能。

    評價方法
    根據上述業務場景的目標,我們根據如下幾個因素進行評價,同時希望得到大家的意見和建議,最終將在這些數據的基礎上形成一個綜合性的評估結論。

    社區文化
    開發語言流行程度
    技術體系和思維方式
    成本
    學習曲線




    社區文化

    Python和Ruby從技術角度也能夠滿足我們的要求,但由于在國內太“小眾”,缺乏相應的技術支持和客戶基礎,現階段不被考慮。Java和dotnet目前都擁有活躍和為數眾多的開發社區,我們能夠獲得足夠的交流空間和技術支持。

    Ruby
    知道Ruby是因為Ruby on Rails,一個相對較新的 Web 應用程序框架,構建在 Ruby 語言之上。它被宣傳為現有企業框架的一個替代,而它的目標,簡而言之,就是讓生活,至少是 Web 開發方面的生活,變得更輕松。
    但是,對于Ruby實在生疏的厲害,雖然知道也有相關的GUI庫,但如果拿它來做一個系列產品,可能人手都找不夠。基本沒有交集,資源不列舉了。


    Python

    http://python.cn,CPUG是中國第一個正式成立的Python用戶的民間組織,在廣大Python愛好者的推動下為宣傳和發展Python而成立的。
    http://www.czug.org,CZUG.org是一個 面向Zope/Plone用戶、開發/設計人員及服務提供商的社區。
    啄木鳥社區,是一個開放協作組織,關注Python語言的各種應用

    Dotnet
    Dotnet最大的社區是MSDN Home?MSDN中文網站擁有無數的中文Dotnet技術資源,這也是國內相比Java的一大資源優勢。
    Dotnet社區,其中最受關注的是多是關于控件以及和技術關系不是太大而在非技術上很有爭議的隨筆.在java社區已經普及的面向對象以及模式的概念,在.net社區鮮有提及. 在cnblogs的情況稍微好些. 不過通常局限在運用面向對象和模式來解決一些示例性的小問題.這樣層次似乎太低了,這離企業級的應用差的還比較遠。[4]
    博客園,專著于.net技術的blog社區
    MSDN Home
    MSDN中文網站
    http://www.codeproject.com
    http://www.gotdotnet.com

    Java
      Java由于時間的積累,項目的積累,社區資源多多。很多在實踐第一線的開發人員、架構師活躍在各個社區之中。由于社區文化的不同,Java社區有N 多技術先行者,并樂于把自己的開發經驗分享給整個社區。而Dotnet由于時間尚短,在這方面相對較差。
      Java開源產品多,面臨的選擇多,各開源項目文檔充分程度各異,且文檔又多以英文為主:( 好在國內的Java牛人自發組織了文檔的翻譯[5],并樂于分享自己的學習體驗,這種方式對于技術的提高又有很大的幫助。

    英文
    TheServerSide.com http://www.theserverside.com/tss
    http://java.sun.com
    http://www.javaworld.com

    中文
    BlogJava http://www.tkk7.com/
    Java視線論壇 http://forum.javaeye.com/index.php
    Matrix http://www.matrix.org.cn
    J道-專業的Java解決之道 http://www.jdon.com/
    Java愛好者http://www.javafan.net/index.jsp
    BEA dev2dev 在線 http://dev2dev.bea.com.cn/
    IBM developerWorks 中國 http://www-128.ibm.com/developerworks/cn/java/index.html
    http://www.javaresearch.org Java相關技術綜合服務網站
    http://www.javaworld.com.tw/jute/index.html


    開發語言活躍程度

    我們將引入兩個排行榜,來評估開發語言的活躍程度和受歡迎程度。

    TIOBE程序語言使用排行榜
    下面列出2005年11月排行榜,最新排行請參考官方網站[1]。

    近日來,在TIOBE程序員社區中公布了其2005年11月的程序語言排行榜。這得注意的是PHP即將超過C++成為了排行榜的老三!而Java作為開源先鋒首當其沖的成為了龍頭老大,并且仍然保持著很好的增長勢頭。 這個排行榜每月更新一次,其排名順序按照世界范圍內的技術工程師、講師、第三方廠商的調查依據,并查詢了目前流行的搜索引擎:Google,MSN, Yahoo,結合前兩者的數據計算后得出的。根據TIOBE的觀點,此排行榜是被程序員們用來檢查自己的程序技能是否過時,或者作為建立新的軟件系統時進行參考之依據,并非意味著哪種語言是最好的。

    圖 1. 2005年11月TIOBE發布:世界前20位語言排行榜



    圖示說明:
  • (Position):此列表明當前語言與去年位置的變化。
  • Ratings:在查詢搜索引擎計算排名順序時使用了 '+" programming" -tv -channel'公式,對上12個月內Google,MSN,Yahoo!和Google新聞組的數據進行查詢。注意此公式應用于標準的Google web點擊率、標準的MSN web點擊率、標準的Yahoo!web點擊率和標準的Google新聞組點擊率。這里的“標準”意味著一次對前50位語言web點擊率總和的查詢是均勻分布的,即保證了排名的相對公正性和科學性。
  • (Ratings): 此列表明當前語言在上12個月內的排名變化。
  • Status:帶有“A”的程序語言被認為是主流語言。帶有“A-”和“A--”表示程序語言位于“A”和“B”之間。從支持能力的觀點看,盡量在工業的、任務危機的軟件系統中使用帶有“A”的主流程 序語言。如果某種語言在上3個月內具有超過0.7%的增長率,則此語言將獲得“A”狀態。上兩個月內具有超過0.7%的增長率的程序語言相應的將獲得“A--”和“A-”狀態。

    圖 2. 2005年11月TIOBE發布:世界前10位語言在前五年內長期發展趨勢圖


  • sourcefage開源項目所用語言排行榜
    SourceForge.net,全球最大的開放源代碼開發網站。對各個開發語言的開源項目統計,最新信息請訪問官方網站[2]。
    以下列出2005.11.25數據,Java超過C++成為Sourceforge第一語言
    1. Java (16738 projects)
    2. C++ (16731 projects)
    3. C (15934 projects)
    4. PHP (12175 projects)
    5. Perl (6209 projects)
    6. Python (4542 projects)
    7. C# (2892 projects)
    8. JavaScript (2779 projects)
    9. Visual Basic (2192 projects)
    10. Delphi/Kylix (1926 projects)
    11. Unix Shell (1845 projects)
    12. Assembly (1608 projects)
    13. PL/SQL (1145 projects)



    技術體系與思維方式

    在同樣滿足技術期望目標的情況下,Java和dotnet的體系結構越來越近似,因此對于Java和dotnet架構的比較沒有太大意義。

    二 者最大的區別是社區文化:Java是由各大公司一塊兒制定規范,開源產品多,發展迅速,同時開源產品有些過多了;dotnet基本由微軟控制,底層技術不 開放,但是對第三方軟件開發商而言,也很友好,因此現在已經有眾多的軟件公司提供dotnet下的組件--這一點很類似于Delphi。Java由幾大 IT公司共同制定和維護其規范,有著可選的若干方案;Dotnet由于微軟的強勢地位,只能是一支獨秀的局面。其它公司采用 Dotnet開發產品,若微軟也要插一腿,則其它公司很難競爭得過,最終難免衰敗(Borland?)。比如金蝶最早準備用.net,現在改Java了 (?)

    給 個形象的比喻:走入Dotnet的世界,MS既是Dotnet世界的王,Dotnet世界規則的制訂者,它就像太陽照亮了廣闊的空間,大家除了仰望,誰能 與其爭輝?Java世界,則是一個誰都能閃爍光芒的地方,能量小的是螢火中,能量大的就是恒星啊(IBM?BEA?)。

    轉貼兩篇C# vs. Java:相反的思維方式 (譯文):
    Conflicting mindsets of C# vs. Java,Malcolm Davis,September 12, 2004

    我最近受邀對 C#/.NET 和 Java/J2EE 做一個對比。一開始,我比較了它們的功能特性、產品、技術,然后我發現 C# 和 Java 的戰場并不在這些表面特征方面,而是思維方式層面的競爭。

    坐在辦公電腦前,開發者腦袋中按兩種相反的思維方式看問題:
    1.接受桌面上已有的工具并以此為標準。
    2.經常的搜索能夠提高工作效率的機會。

    接受主義與探尋主義是兩個社區的主要思維方式差異。什么是對開發者有益的,接受主義者放棄了對工具的控制,接受經理和賣主的選擇。探尋主義者搜索、尋找正好對他們工作有用的工具。兩種思維方式都有其正面因素和反面因素。

    工具的探尋(包括 IDE,組件,工具等)是正常的、預想的、首選的行為。作為開發者,應該尋找適當的途徑,比如新的程序、自動生成重復的代碼以及組件重用等途徑,提高工作效率。可是,這對于一個 IT 公司來說,可能是一個不好的兆頭。很多的 IT 公司限制隨意安裝新的軟件,很多公司限制對外部網站訪問,有的還限制對新聞組和 blog 站點的訪問。(當然,很難想象有些 IT 公司甚至不允許訪問 weblogs.java.net。)這些 IT 公司有很多適當的理由,比如對病毒、木馬軟件傳播的擔憂,以及由于缺少許可證而導致的法律問題,很多程序員并不清楚也并不關心引進新軟件可能帶來的這些后果。

    四年前,我向一家 IT 公司引進了 Ant,Tomcat 和 JUnit,這些工具簡化并加快了 web 編程、測試以及制造的過程,極大的提高了公司的生產效率。現在幾乎每一個 Java 開發者都已經掌握了這些技術。

    NAnt 和 NUnit 是僅有的一些開源的、對 Java 工具集的 .NET 移植。然而,Microsoft 并不是采納這些已有方案、加以改進、并將它們集成到生產線中,而是自己重新創建了類似的產品 Visual Studio Team System。停下來想象一下,會不會有哪家 Java IDE 會聲稱“我們將不會支持 JUnit 或者 Ant,我們將推出我們自己的產品。”這簡直是不可想象的!你現在知道 Java 和 .NET 之間的思維差異了吧:一個采納社區已有的成熟工具,另一個則重新創造一套集成的方案。因為商業 IT 公司偏愛集成的解決方案,Microsoft Team System 給人感覺不錯。可是,Team System 只是一個落后時代大約 5 年的產品。

    商業世界的人們已經開始使用 Jakarta 項目上發布的 Ant 和 Tomcat。思維方式凸現了商業運作和 IT 開發的主要差異。如果商業軟件能夠遵守和 IT 開發相同的規則,它們將壓縮競爭對手的空間,同時失去他們最好的開發人員。

    由于 IT 公司需要以應用程序提供商(Application Service Provider, ASP)的等形式采用外部資源,Java 以及 Open Source 將成為 IT 的主流。Microsoft 的做法最終會傷害他們。ASP 的商業模式,將帶領我們進入一個商業軟件開發的新時代。Industrial strength development techniques, cutting edge technology, 以及經常性的探尋提高生產效率的機會,將成為標準,我們將看到“小魚吃大魚”的一幕,我們將看到 Java 吃掉 .NET 的午餐。




    Conflicting mindsets of C# vs. Java: Part II,Aaron Hohnson,September 21, 2004

    大家都看到了 Malcolm Davis 剛剛發表的那篇“C# vs. Java:相反的思維方式”了吧?你也注意到:sourceforge 上 Lucene.NET 的主持者關閉了項目,帶著他們的玩具回家去了吧?我接著 Malcolm 的話題,說說這兩件事之間的關系。

    大體而言,.NET 社區的參與者總是在談論 Microsoft 推出的最新的、最強大的東西:MapPoint Location Server,SQL Server,Longhorn,ASP.NET 2.0,Visual Studio,所有來自雷德蒙(Redmond,微軟總部所在地)的產品。相反的,Java 社區的程序員在那里談論 JBoss,Hibernate,Struts,Eclipse,這些東西沒有一個來自硅谷。

    Malcom 的文章說,.NET 開發者接受 Microsoft 提供的工具和服務,我想這在很大程度上是對的。.NET 開發者很少花時間,開發持續層方案(persistence layers),web 應用程序框架(web application frameworks)或者緩存解決方案(caching solutions),因為 Microsoft 已經為這些問題提供了 Microsoft 解決方案。但是僅僅是因為 Microsoft 提供了這些工具嗎?那為什么 JSF,JDO,NetBeans 不能成為 Java 技術 Blog 站點的主流聲音呢?拿 ASP.NET 和 JSF 作一個細致的比較,它們并沒有太多的不同,但 ASP.NET 和 Visual Studio 一起被廣泛應用,而 JSF 卻很少人用并且飽受嘲弄。我認為 Malcom 是對的,的確是思維方式的差異早就了這一切。

    回過頭來看看 Lucene.NET 的那群人吧:他們為什么關閉了開源的項目,他們為什么不再繼續為這個很優秀的想法貢獻他們的時間和精力呢?或許 .NET 社區對他們工作的反響,讓他們無法繼續維持下去了吧!使用 google 在 weblogs.asp.net 上搜索“lucene”只得到了 17 項結果,而在 jroller.com 得到了 2570 項結果。Lucene 已經存在很長時間了,但 Lucene.NET 的那群人們把東西包起來另起門戶,其中一個原因可能就是:幾乎沒有人關注他們的工作:大家都在忙著研究 SQL Server 的全文檢索,這才是 Microsoft 提供的解決方案(當然,需要為每個處理器花費成千的美元購買許可)。在 Java 世界,Lucene,Struts,Tomcat 之所以繁榮,也是因為為一個大的開源項目工作,給開發者帶來了足夠的威望。而當你投身于一個開源項目,卻很少人注意時,沮喪的你也許也要尋找另外的動力。在 Lucene.NET 這個事例中,money 是他們的動力,所以他們關閉了項目,轉而販賣他們的個人版本和商業版本。他們或許能得到雙倍的美元吧,但我打賭一年以內,不會有多少人談論 seachblackbox.com 的。

    那么我的觀點是什么呢?是說 .NET 開發者很貪婪,不關心社區嗎?不是這樣的。我認為,這兩個社區有不同的司機:.NET 開發者盯著 Microsoft,關心 Microsoft 提供的解決方案,如果他們在車窗外看到了好東西并拿來使用,Microsoft 可能會最終進入這個領域,并發布產品或者提出解決方案,這樣,以前的工作就完全被否定了。Microsoft 是 .NET 社區的司機。Java 開發者們看了看 Sun 推出的產品和語言規范,扭頭去開發他們自己的工具、框架、應用程序。Sun 推出的東西,Java 社區的開發者只有他們確實喜歡才會去使用。Struts 的門庭若市,與 JSF 的門庭冷落,印證了這一點。在 Java 社區,開發者自己是司機。




    Eclipse聯盟與桌面GUI

    目 前由IBM牽頭,圍繞著Eclipse項目已經發展成為了一個龐大的Eclipse聯盟,有150多家軟件公司參與到Eclipse項目中,其中包括 Borland、Rational Software、Red Hat、Sybase、SAS等。 作為一款企業信息化產品,服務端和客戶端的技術應盡可能的保持一致,這樣能夠最大的限度的資源共用。Eclipse聯盟的建立使得我們對于Java的桌面 GUI有著充分的信心。

    Eclipse的插件機制、擴展機制、自動升級、幫助系統等平臺性的功能,使得我們擁有了一個現成的平臺性軟件,很多基礎性工作可以不再重復去做。

    桌面GUI一向是MS的強項,在性能與界面美觀方面占據優勢,但沒有現成可用足以媲美Eclipse的框架。


    成本

    開發成本
    另外一個非常重要的問題在于,用Java做為我們的軟件架構,開源社區為我們提供了免費(或低價)的應用服務器,項目管理工具,開發工具,數據庫系統。這 些足以滿足我們的業務需求,而沒有任何版權問題,而版權是我們軟件產品經營中早晚要面對的問題。我們需要付出的代價就是了解并掌握這些開源的產品;若采用 微軟的技術架構,則從開發工具、應用服務器、數據庫服務器、工作流等整套系統全部正版的話,有著高昂的成本。

    用戶實施成本
    用戶既可以在現有Windows系統上安裝,也可以安裝在Linux系統上,伸縮性良好。同時,可以支持開源的數據庫,降低用戶的實施成本。Java由于有著良好的移植性,和為數眾多的應用服務器產品,可以滿足各種客戶的需求。



    跨平臺

    Java當然比之Dotnet要好很多。只是對于C/S應用而言,運行在國內幾乎90%以上的Windows系統中,跨平臺貌似沒有任何意義。若干年后,如果Linux或其它系統在企業應用中被普及的時候,可能Dotnet也能夠很好的跨平臺了。

    學習曲線

    Dotnet入門容易,有著從服務器到開發工具的一站式解決方案;Java的入門曲線則相對較高,N多的技術、開源框架要掌握、要選擇,服務器、開發工具的順利使用要做很多的配置工作。
    對于企業級開發而言,其關鍵在于滿足業務要求,合理的設計方案和架構,設計模式等,這些無論對于Java或Dotnet都是非常重要的。使用Java來學的話,由于整個社區對于架構、設計模式的普及,提升會比dotnet快。



    趣味觀點


    以色列軟件工程師Tamir Khason 揭示出了一個驚人的理論:有大胡子——有旺運;沒胡子——只有干瞪眼![8]

    圖 3. C#之父Anders Hejlsberg



    圖 4. Java之父James Gosling




    結束語

    注意了,注意了!走過路過,千萬不要錯過下面的信息啊!

    感謝大家把這篇文章一直看到最后^_^
    既然已經看到最后,我誠摯地邀請您再伸出援助之手:請在這篇文章的最后給出您的寶貴意見,格式如下:

    我建議采用的平臺是:(Java/Dotnet/其它)
    我的理由是:...
    我的補充意見:...


    參考資料


    [1] TIOBE程序語言使用排行榜
    [2] sourcefage開源項目所用語言排行榜
    [3] C# vs. Java:相反的思維方式(譯文)
    [4] 質疑國內.Net社區
    [5] 滿江紅.開源
    [6] 理解企業應用框架,原載于《程序員》
    [7] 整理一下技術路線,robbin
    [8] 有胡子與沒胡子的區別
    [9] 微軟是如何輸掉API之戰,

    關于作者

    最近正在進行本文所描述的技術架構評估,對于Java和Dotnet有些舉棋不定。熱切希望得到大家的寶貴建議,再次感謝!


    posted on 2005-12-19 21:52 weide 閱讀(23250) 評論(29)  編輯  收藏

    評論

    # re: 技術架構評估 2005-12-19 23:31 非魚

    Glad to see your awesome work. :)

    Personaly, I think your article put too much energy on technical matter. But actually far from what you want. Maybe you should focus on Enterprise Application Integration than technology choice.

    From now, I can't see which tech is more suitable to your situation. Please check your problem and your purpose. I don't think they are corresponding to each other.

    Legacy apps mostly did not use component technology, thus you must think about to integrate them on persistence level. while you want them to be used continuiously, you should think of collecting information to build a publishing system, unless you are ready to replace them, do not focus on concrete technology/platform by now.  回復  更多評論   

    # re: 技術架構評估 2005-12-19 23:32 臨海觀潮

    單純比較語言的優劣意義不大,針對特定的問題都能夠找到合適的解決辦法,這個解決問題取決于開發人員應用語言的能力而不是語言的本身。
    從風險驅動的角度考慮,個人感覺選擇架構需要首先要考慮的是公司自身開發人員的的專長和公司的外部合作伙伴關系,比如和微軟有非常好的合作關系應該首選.net,這樣可以獲得長期的價值保證。團隊的開發能力也是重要的方面,如果都熟悉.net的話選擇.net項目成功的可能性高。
    如果單從技術性角度考慮還是考慮未來系統的應用領域,大型的應用系統J2EE的成功經驗多,相對風險小,此外相關的平臺選擇性比較多,使得最終產品/平臺可以給用戶提供多種價格選擇。如果有跨平臺的要求應該優先考慮J2EE。  回復  更多評論   

    # re: 技術架構評估 2005-12-19 23:36 xzer

    好吧,說兩句

    我建議采用的平臺是:java
    我的理由是:當你面臨眾多選擇的時候,那既是痛苦,也是歡樂,當你被ms綁架的時候,只有痛苦。
    我的補充意見:雖然大家對hibernate評價很高,我也對它評價很高,但我仍然覺得它的配置過于煩瑣了,ruby on rails的約定大于配置的思想是很值得學習的,為什么沒有人做一個hibernate on rails呢。。。  回復  更多評論   

    # re: 技術架構評估 2005-12-19 23:44 非魚

    @臨海觀潮

    Excellent perspective. I thought about it but forgot to wrote them down. Many cases, when you finished a system, you may find that marketing was more important than what you thought before. Since it do act an important role while developing, you should think about it, at least ask someone to do that.  回復  更多評論   

    # re: 技術架構評估 2005-12-20 00:16 weide

    @非魚

    我想是“解決企業信息化中的信息孤島,形成統一的整體解決方案”這句話,使你認為我應該focus on Enterprise Application Integration than technology choice

    實際上,我這句話并不是通常所言“信息集成”,和EAI關系也不大。我說的信息孤島,是指我們現在幾個產品之間,互相獨立,各自有自己的組織機構和權限管理,開發語言又各不相同,這帶來的問題是:我們需要用不同的開發工具(開發語言)維護多套產品中的組織機構和權限管理,多次重復勞動;且代碼模塊不能很方便的被新的系統所重用。

    現在要做的工作是,把PB寫的產品A使用Java(或C#)重寫,把用Delphi寫的產品B也使用Java重寫,把VC寫的產品C同樣也使用Java重寫,同時把各個產品共用的模塊,比如組織機構、權限管理等,只要維護一份代碼就OK了。為企業實現定制功能的時候,由于全部功能模塊都是由同一語言實現的,所以可以靈活組裝成滿足企業多個要求的“整體解決方案”。

    Do I make sense?  回復  更多評論   

    # re: 技術架構評估 2005-12-20 00:44 非魚

    @weide

    Oh, Either you misleaded me or I miunderstanded you.

    Forget it. I think the platform choice mainly depends on the system scale. Of couse you should think about other issues. As I know (from friends), there's no successful Enterprise Level system (I mean very large scale) on .net platform. Try to identify your system scales:

    1. Is it a information collecting/organizing/OLAP system?
    2. Are you preparing to use Workflow in the coming system?
    3. Do you have any complex business process?
    4. Is it a real distributed system?
    5. Are the customers mature with IT, could they make full/less use of IT technology to help themselves?

    First of all, you should try to manage system change, then complexity. Also find out what design level you are in may help you to do better.

    Besides, environment influence may not be ignored and should be pay more attention to.  回復  更多評論   

    # re: 技術架構評估 2005-12-20 01:30 weide

    @非魚

    Sorry,是我誤導了你,修改了Blog中關于業務場景描述的部分。

    其中核心問題:作為一家行業軟件提供商,要形成自己的企業應用框架[6],并在該企業應用框架上搭建行業的整體解決方案。也就是把各個系統中共性的、普遍性的問題提取出來,形成“企業應用框架”。其它的業務功能,用同一開發平臺重新實現為業務功能模塊。最后通過企業應用框架和業務功能模塊,組裝成產品系列。

    關于你上面提到的幾個問題,由于現在我們服務的主要客戶是中小企業,所以關于工作流等,考慮使用免費的方案;數據挖掘,以前沒用,近期也沒有打算...  回復  更多評論   

    # re: 技術架構評估 2005-12-20 12:07 Programmer's Life

    根據weide最近的這個回復:
    "其中核心問題:作為一家行業軟件提供商,要形成自己的企業應用框架[6],并在該企業應用框架上搭建行業的整體解決方案。也就是把各個系統中共性的、普遍性的問題提取出來,形成“企業應用框架”。其它的業務功能,用同一開發平臺重新實現為業務功能模塊。最后通過企業應用框架和業務功能模塊,組裝成產品系列。"

    那我推薦你采用java
    理由:要形成自己的企業應用框架,那么必須自己能夠根據框架的需求做出特定的框架,這個在.net上的實現難度遠遠大于java,而且.net的更新勢必影響到整體框架的建設,而在java中則不是如此。
    Java界的開源產品確實眾多,但以思想角度考慮則大多相同,只是在框架級別上各自有自己特性的地方,相對.net而言,有得選擇就比沒得選擇好。
    以中小型企業項目這個角度去講的話,我覺得采用哪種技術都無所謂,但想要形成一個自己公司的統一框架的話,java的優勢無疑可以得到極大的發揮,但前提條件是有投入此框架研發的決心,如果沒有的話,.net仍是首選,畢竟.net相當于已經提供了一套框架。
    另外一個角度就是從服務器端操作系統的競爭去闡述,這個角度去看仍然認為unix占有絕對的優勢,從這樣的角度的話無疑選擇java對于企業會更為有利。  回復  更多評論   

    # re: 技術架構評估 2005-12-20 13:27 idior

    可以看出樓主在這篇文章上花了不少功夫,文章也確實不錯。

    首先我先回避文章最后提到的問題,來評價一下文章的內容


    ---
    博客園,專著于.net技術的blog社區
    MSDN Home
    MSDN中文網站



    中文
    BlogJava http://www.tkk7.com/
    Java視線論壇 http://forum.javaeye.com/index.php
    Matrix http://www.matrix.org.cn
    J道-專業的Java解決之道 http://www.jdon.com/
    Java愛好者http://www.javafan.net/index.jsp
    BEA dev2dev 在線 http://dev2dev.bea.com.cn/
    IBM developerWorks 中國 http://www-128.ibm.com/developerworks/cn/java/index.html
    http://www.javaresearch.org Java相關技術綜合服務網站
    http://www.javaworld.com.tw/jute/index.html
    ----

    從以上的數據來看,.net社區在國內是多么的弱小。

    ---
    學習曲線

    Dotnet入門容易,有著從服務器到開發工具的一站式解決方案;Java的入門曲線則相對較高,N多的技術、開源框架要掌握、要選擇,服務器、開發工具的順利使用要做很多的配置工作。
    對于企業級開發而言,其關鍵在于滿足業務要求,合理的設計方案和架構,設計模式等,這些無論對于Java或Dotnet都是非常重要的。使用Java來學的話,由于整個社區對于架構、設計模式的普及,提升會比dotnet快。
    ---
    再配合這段話, 更加催發我得出一個建議:
    如果你有很好的基礎(聰明,經過了系統的學習) 那么我建議你從java開始你的程序設計之路。(assembly,c++暫且不談), 那樣你會成長得很快。



    從ms對待nunit, nant的態度來看, 如果你想在developer的市場上和ms競爭, 那么或許結局會很慘, 無數的歷史證明了這一點, 在.net平臺下可能不久將上演的一場 JetBrains vs MS 好戲。

    但是如果你開發的是特定領域的應用(中國軟件公司通常做的是這個), 似乎不會和ms發生競爭,而且他還會對你提供幫助。所以這種遭ms打壓的問題,對于大部分中國公司來說應該是不存在的。



    ---
    舉例描述:首先用Java(或C#)搭建企業應用框架,該框架包含認證/權限/組織角色管理、文件管理等通用性的功能。然后在該框架的基礎上把現存C/S版的--PB實現的財務管理系統,Delphi實現的庫存管理系統,VC實現的局域網即時通訊系統的業務功能模塊全部用Java或(C#)重寫,并增加B/S版本的實現。
    ---
    This is nearly impossible for us! 其實這里摟主提出了一個對遺留系統的整合,對企業內部應用和企業外部應用整合的想法。 有這種想法也不足為奇, 這也是最近SOA火熱的原因, 不管在java還是在.net社區(國外) SOA都是最近很熱的一項技術。

    最近剛好看到IBM的征文:
    http://domino.research.ibm.com/library/cyberdig.nsf/1e4115aea78b6e7c85256b360066f0d4/0fd9b681aadeffa1852570cf005fdc06?OpenDocument



    Now focus on the last question:

    我建議采用的平臺是:(Java/Dotnet/其它)
    java .net 讓他們做各自擅長的領域,讓開發team選擇自己熟悉的語言。

    我的理由是:...
    集成,整合 不能靠統一一個框架來實現, 這樣你最多解決了企業內部的問題,而且重新實現原有的系統也是投資者所不能接受的。

    應該讓SOA在其中發揮更大的作用。

    我的補充意見:...
    如果你有很好的基礎(聰明,經過了系統的學習) 那么我建議你從java(而不是.net)開始你的程序設計之路。(assembly,c++暫且不談), 那樣你會成長得很快。








      回復  更多評論   

    # re: 技術架構評估 2005-12-20 13:33 idior

    另外對于樓主想讓我轉發本文到cnblogs上的意見, 我倒是想讓大家看到這篇文章,不過cnblogs首頁不提倡轉貼,所以有3個方法:
    1. 在我的下篇隨筆中給出本文的連接(最近可能會寫一篇有關soa的隨筆)
    2. 樓主到cnblogs注冊 一個賬號,然后發布該文
    3. 讓dudu轉一下 :)

    BTW: 個人比較頭疼這種背景,字又很小 看得眼花了 :S  回復  更多評論   

    # re: 技術架構評估 2005-12-20 14:02 大維

    把開發工具升高到這么高的高度的,也只有程序員了
    從用戶的角度,考慮的是價格和開發周期
    誰在乎你用什么  回復  更多評論   

    # re: 技術架構評估 2005-12-21 09:33 Ninputer

    .NET社區力量不夠,我就要盡我的力量提高它,完善它
    .NET創新不夠,我就更努力地提高,更多創新,讓更多新思想從.NET社區產生,讓JAVA社區來學習
    .NET有這樣那樣的缺陷,我們的職責就是努力改變這樣的現狀。

    .NET不行我們的目標就是讓他行!不是轉投JAVA。為什么?所有JAVA能舉出的好處都是別人努力和創新的結果,只是選擇和學習沒有成功的可能。不可能復制成功  回復  更多評論   

    # re: 技術架構評估 2005-12-21 12:13 Fantasysoft

    存在即是真理,評估優劣似乎意義已不大。各種各樣的技術都有它所適合的應用場景,否則它會被歷史淘汰的。

    我更期待不同的技術能夠相互學習,相互借鑒,畢竟尊重對手是很重要的。  回復  更多評論   

    # re: 技術架構評估 2005-12-21 20:13 errorter

    如果是中小型的 Web 應用,Rails 是一個很好的方案;重新學習沒有你想的那么可怕  回復  更多評論   

    # re: 技術架構評估 2005-12-21 23:25 weide

    @Fantasysoft

    “各種各樣的技術都有它所適合的應用場景”,說得好!
    本文雖然也描述了一個業務場景,只是之后的評估并沒有直接針對這個場景的關鍵決定因素來展開--僅僅是對幾個因素的宏觀對比,這幾個對比的結果,僅僅讓我親Java而遠Dotnet。  回復  更多評論   

    # re: 技術架構評估 2005-12-22 00:30 weide

    今天化了一天的時間開評論會;邀請了其中一人是以前的同事,現在在微軟中國。他有著對微軟的強烈認同感、榮譽感,對dotnet的技術體系也非常熟,一整套分析方法分析下來,大家填寫評估表的時候基本都選擇了Dotnet...

    到場的Java開發者,缺少架構師級的能力,所以被比下去了;另外讓我感到困惑的是:似乎使用Java同時做B/S版和C/S程序的公司并不太多?大多使用Java更多聚焦在Web模式的開發上,做Web開發使用的技術又不盡相同,即使選擇了Java,還得在一堆Web框架里進行選擇...

    請大家繼續大力支持!(看完了,給出寶貴意見啊~~)

    公司在北京,有能力有時間的朋友想提供技術支持的話,歡迎與我聯系 !  回復  更多評論   

    # re: 技術架構評估 2005-12-22 00:49 非魚

    @weide

    If the application is not to be an Enterprise Level one, .net would not be a bad choice. Even so I want to state that .net is a "robber's boat" besides technology aspect. ^_^  回復  更多評論   

    # re: 技術架構評估 2005-12-22 00:56 weide

    ◎非魚

    Enterprise Level的界定就是你上次描述的四條?

    1. Is it a information collecting/organizing/OLAP system?
    2. Are you preparing to use Workflow in the coming system?
    3. Do you have any complex business process?
    4. Is it a real distributed system?

    或者說Java比之Dotnet在Enterpise Level方面到底強在哪里?  回復  更多評論   

    # re: 技術架構評估 2005-12-22 01:07 weide

    @非魚

    好半天才鑿摸過勁兒來,"robber's boat",強盜的船,原來就是俗語的“上了賊船”啊,貼切

    英語也有這種說法?  回復  更多評論   

    # re: 技術架構評估 2005-12-22 10:00 非魚

    @weide

    The 4 rules help you to identify a system's scale. Normaly a very large scale system can be called Enterprise Level. Many Enterprise Level systems consist of more than one organization and probably span a large physical area.

    PS: robber boat is my words.  回復  更多評論   

    # re: 技術架構評估 2005-12-22 10:49 idior,

    到場的Java開發者,缺少架構師級的能力.

    難道就因為這個你們放棄java?!
    何況那個了解.net架構師還不是你們公司的。

    .net下所有的分布式技術都是分散的。
    remoting, es, msmq, ws都是各干各的,完全沒有一個統一的模型,至少要等indigo出來才會有所好轉。  回復  更多評論   

    # re: 技術架構評估 2005-12-22 12:51 非魚

    @weide

    看了你的網站。感覺你們發布了很多應用程序,這樣看來似乎SOA比較適合,你們以后可以向ASP(Application Service Provider)發展。  回復  更多評論   

    # re: 技術架構評估 2005-12-24 15:06 jiniboy

    我們可以仔細想一想,其實我們更多的人還是生活在少數幾個人的影子里。我們都知道這樣的話,人民是歷史的創造者,可真正描述起歷史來還不是說某某人的時代,某某人的朝代。這也說明,微軟式的專斷,是自然的事情。java和dotnet的分別正是民主和集中的體現,你能說哪一種是優良的嗎。  回復  更多評論   

    # re: 技術架構評估 2005-12-25 00:38 weide

    @errorter
    我們還有C/S應用的部分,也用Ruby,未知的陷阱太多了

    @idior
    把評價因素改了,長遠的技術選擇要兼顧,更重要的眼前,呵呵
    對于我們的項目而言,有兩個因素:
    1.找到一個半成品(開源框架),解決企業應用中的一些共性問題,加快進度
    2.解決B/S與C/S下的圖形繪制問題,目前Java和Dotnet下都在做這方面的工作。且圖形的交互能力,比如拖動圖片上的元素,暫不考慮

    當然到最后發現,真正決定因素:
    1.領導/開發團隊喜歡什么
    2.開發團隊熟悉什么
    3.哪種技術能讓開發團隊先熟悉起來  回復  更多評論   

    # re: 技術架構評估 2005-12-31 20:49 hawk_e2e

    路過。
    我是這樣考慮的,希望有所幫助:
    1.先別談用JAVA還是C#。
    2.樓主要先確定系統的當前目標(系統的市場優勢和適用范圍)和以后目標。
    3.在這些目標下系統的架構如何,如何演化。
    4.系統總有若干個關鍵的技術問題,無論用什么框架都需要論證可行性。
    5.用JAVA和C#,只要主體上合適就行了。主要看技術支持力度。

    另:不知道系統規模如何,6個月是否夠?可否考慮穩妥的方法:先把目前各個部分的核心模塊封裝成組件。在新架構下進行整合。以后再重寫呢?  回復  更多評論   

    # re: 技術架構評估 2005-12-31 20:53 hawk_e2e

    難以整合或整合不了的才重寫  回復  更多評論   

    # re: 技術架構評估 2006-03-08 20:09 blueski

    我冒昧轉摘了此文,http://www.sawin.cn/doc/SD/Architect/blueski411.htm
    多謝!  回復  更多評論   

    # re: 技術架構評估 2006-04-29 19:12 pc

    有意思  回復  更多評論   

    # re: 技術架構評估 2006-05-10 01:25 dvd

    我也正為此事苦惱之中
    對別人說上一句"這個問題要看你的項目而定"
    爾在自己定的時候就很難, 特別是我對2都還算喜歡
    了解的水平也都還差不多的時候.
    .. .. 無解之中  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2005年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    公告

    需要做一些改變了

    常用鏈接

    留言簿(2)

    我參與的團隊

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 好大好硬好爽免费视频| 国产精品免费高清在线观看| 亚洲成人精品久久| 免费黄网在线观看| 特级无码毛片免费视频尤物| 亚洲最新中文字幕| 久久亚洲国产精品成人AV秋霞| 成人亚洲国产精品久久| 亚洲av成人一区二区三区在线播放| 2019亚洲午夜无码天堂| 国产一卡2卡3卡4卡无卡免费视频 国产一卡二卡3卡四卡免费 | 亚洲电影免费在线观看| 波多野结衣视频在线免费观看| 波多野结衣在线免费视频| 可以免费看黄的网站| 精品无码国产污污污免费| 成人人观看的免费毛片| 亚洲无线码一区二区三区| 亚洲人成网站影音先锋播放| 久久亚洲日韩精品一区二区三区| 亚洲欧洲日韩不卡| 1区1区3区4区产品亚洲| 亚洲一区二区三区无码影院| 91麻豆精品国产自产在线观看亚洲| 亚洲国产第一站精品蜜芽| 亚洲AV成人精品日韩一区| 亚洲精品乱码久久久久久V| 国产成人亚洲精品电影| 高清一区二区三区免费视频| 国产精品免费久久| 亚洲国产精品lv| 无人在线观看完整免费版视频| 亚洲av中文无码字幕色不卡 | 亚洲欧美国产欧美色欲| 美女露100%胸无遮挡免费观看| 亚洲国产精品成人AV无码久久综合影院| 一级做α爱过程免费视频| 亚洲AV无码国产精品麻豆天美| 污污污视频在线免费观看| 亚洲最大免费视频网| 无码国产亚洲日韩国精品视频一区二区三区|