李維、周愛民暢談Borland ECO

ECO是Borland/CodeGear基於模型驅動架構的,第一個在.NET平臺上實現出來的、強大的模型驅動架構框架。ECO允許開發人員使用模型驅動開發的軟件工程方法,結合BDS的Together進行各種.NET應用系統的開發,讓開發人員真正體驗到結合ECO和BDS所具有的不可思議的、高效的開發能力。

 

周愛民:ECO只能用於.NET嗎?可不可以用於開發普通的WIN32程序?
李維: 是, 目前的ECO III是能run於.NET上, 在Win32平臺上和ECO相近的是Bold. ECO Team未來可能會推出Win64的版本


周愛民:想了解一下ECO與UML有什麼聯繫嗎,模型開發與原來的事件驅動開發主要有什麼區別?
李維 : ECO使用UML來設計企業模型. 原來的事件驅動開發的可重覆使用率比起ECO來的低. 例如你使用事件驅動開發的C/S程式很難立刻變成Web 2.0的程式, 可是如果使用ECO設計你的企業模型, 那麼這個ECO企業模型可以重覆使用在C/S, Web, Web+Ajax中.


主持:想了解一下ECO與UML有什麼聯繫嗎,模型開發與原來的事件驅動開發主要有什麼區別?
周愛民:ECO與UML有非常緊密的關係。但一個是模型描述上的,一個是企業級的實現。具體來說,ECO是MDA/MDD的一個具體實現,而UML是一種建模語言。就象,Pascal是一個語言,Delphi/BDS/VCL等等是實現一樣。

 


主持:模型開發與原來的事件驅動開發主要有什麼區別?
周愛民 :這個話題,在我看來,一個不同在於設計者在開發流程中的作用。模型驅動開發時,設計人員在整個過程中都會產生影響。而事件驅動時,就沒有這個效果。不過,我非常想聽聽李維先生對此的感受。

 


周愛民:李維老師,能否談一下您那本ECO著作嗎?
李維 : 那本ECO我寫了10個多月,感覺很興奮也很驕傲,因為這是全世界第2本ECO的書,更是第1本中文ECO的書. 由於這一本書,ECO R&D Team也向我要一本,他們也開使注意大中華地區.我個人想這一本書代表我們中國人的技術不會輸給外國人.

 


周愛民:李維老師,能否談一下您那本ECO著作嗎?
李維 :最近我一直也在看Ruby的東西,其實我發現很有趣的是Ruby之所以這麼讓我感覺親近是因為我在Ruby中也看到了很多和ECO非常類似的概念和技術, ActiveRecord : ECO.

 

周愛民:想問一下ECO如何和TDD來結合?
李維 : 好問題. ECO R&D在開發ECO本身時也使用TDD. 我也建議ECO R&D在未來在ECO中加入融合ECO和TDD的功能. 如果有了這個功能就太好了,這代表我們可以在高階階段就測試我們的企業模型,達到”設計階段就測試”的境界.

 

周愛民:李老師,ECO對開發人員來說,學習的門坎高嗎?
李維: 有一點高,你需要會Delphi/C# + UML + OCL,但是一旦你習慣之後你會發現你已經愛上他了. 其實現在許多其他的工具也一樣要求很多啊.例如Ruby也是要你會Ruby + Rails + 類似ECO的概念.只是ECO提供了視覺化設計介面,而RoR是用code.

 

周愛民:否談一下微軟的VS開發與ECO開發的區別和優勢
李維 :啊,VS就是IDE + .NET Framework. ECO是MDA/DDA. ECO的優勢是一旦你的企業模型設計完成之後可以被WinForm, ASP.NET, Web Service使用. 而VS是要你寫3次.

 

周愛民:ECO架構開發是不是也是一種MVC架構的DELPHI應用呢?
李維 : ECO是使用MDA/DDA的開發框架,MVC目前大都使用在Web中,ECO不只可以做Web,它可以開發各種企業框架. 如果ECO再加上MVC,就會成為最強大的.NET Web框架,

 

周愛民:李老師,我們幾次見面,一直都沒機會討論ECO的問題。其實呢,我一直很想問一個問題,就是ECO服務器的部署能力,也就是說,他到底適合怎樣的企業應用環境。能夠滿足哪些部署的需求。他到底適合怎樣的企業應用環境。能夠滿足哪些部署的需求
李維:ECO適合一般的企業軟件應用,不適合做低階開發.在Web上非常適合,ERP/CRM/MIS等國外都很多應用.

周愛民 : 那麼就是說,我不能指望用ECO來寫一個HOOK,或者寫一個~~EN~~象驅動程序這樣的東西了。 但我的另一個問題是,如果我有一個互聯網門戶級的應用,例如CSDN Blogs,那麼用ECO是否也能滿足部署需求呢?
李維 : 在Ruby中也看到了很多和ECO非常類似的概念和技術, ActiveRecord : ECO.
是, Ruby使用ActiveRecord做ORMapping, ECO本身也包含ORMappng. 隨便翻開一本Ruby的書,你都會看到書上說明使用ActiveRecord的例子,Ruby的書通常都用Code來代表,例如class之間1..N的關係. 這在ECO中可以在類圖中代表, 而且ECO可以表達的不只是OrMapping, 更可以表達企業規則.ECO提供了比ActiveRecord更豐富/更強大的表達力.

 

周愛民:但我的另一個問題是,如果我有一個互聯網門戶級的應用,例如CSDN Blogs,那麼用ECO是否也能滿足部署需求呢?
李維 : 完全沒問題. Blog相對比較簡單,ECO可以支援更為複雜的Developer Portal, 例如CSDN整個系統.
周愛民 : 太好了。我實在太期待這種功能了。事實上,這意味着ECO具有門戶整合能力,而不僅僅是企業級的應用開發能力。


周愛民 :ECO開發對於數據庫的訪問性能如何,會不會有比較大的影響?
李維:ECO有利用各種緩存機制和數據池機制,來緩解數據庫存取壓力。這一點很智能,也能其它企業應用容器或平臺的策略一致。

 

周愛民 :太好了。我實在太期待這種功能了。事實上,這意味着ECO具有門戶整合能力,而不僅僅是企業級的應用開發能力。
李維: No, 我的意思是說ECO可以完整的設計CSDN整個系統,而不是指ECO提供Portal的能力. 我的意思是說我看CSDN似乎是用ASP/ASP.NET寫的.它包含了許多子系統,因此一定有許多地方有許多重覆類似的code, 如果使用ECO, 那麼這些重覆的code會被大幅降低,整個系統的開發速度會加快.

 

周愛民 : 不過,我對EcoSpace一直感到費解。您能最簡單的解說一下它嗎?比如說,爲什麼要有EcoSpace?以及,它更“象”是一個什麼東東? ECO的數據訪問與持久是不是也是應用ADO.NET技術?
李維:可以使用ADO.NET,也可以使用BDP,在下一版更可以使用DBX4.

 


周愛民:ECO開發對於數據庫的訪問性能如何,會不會有比較大的影響?
李維: 不一定會有影響,未來的ECO允許使用Stored Proc,在效率方面也加強了許多. 事實上這已經不成為問題了,看Java/JPI, Ruby/ActiveRecord的受歡迎程度,ORMapping已經被大多數人接受並且體會到使用ORMapping/企業模型的好處.

 


周愛民 :有個問題。ECO是for BDS的,是不是說他也可以提供給其它的語言或開發環境使用。例如JBuilder或BCB,或者第三方的例如VS?CodeGear有這方面的計劃否?
李維 : 是的,這是相當重要的.而且更重要的一點是,如果你的ECO企業模型設計的沒有bug,那麼你大可以放心的重覆使用在各種應用中, WinForm, ASP.NET, Web Service, mobile. 這代表你的軟件的質量更好.

 


周愛民: ECO是for BDS的,是不是說他也可以提供給其它的語言或開發環境使用。例如JBuilder或BCB,或者第三方的例如VS?CodeGear有這方面的計劃否?
李維 : 當CodeGear推出C++Builder For .NET時當然就可以使用ECO. BDS中的Delphi/C#都可以使用ECO, 這代表VS只要有design interface就也可以使用ECO. 畢竟ECO是使用C#寫的. WinForm, ASP.NET, Web Service, mobile. 這代表你的軟件的質量更好.

 

周愛民:那請問ECO的下一個版本大概什麼時候可以出來呢?
李維 : 現在的ECO是BDS 2006中的ECO III,ECO IV會在BDS下一版Highlander中出現. ECO IV可同時支援.NET Framework和VCL.NET.


周愛民 : 先生剛纔說“WinForm, ASP.NET, Web Service, mobile. 這代表你的軟件的質量更好.”。 這應該不依賴.net的平臺移植能力吧?我的印象中,ECO的模型應該是平臺無關(PIM)的,對嗎?

 

周愛民 :如果一個團隊需要驅動MDD,應該有什麼樣的前置條件呢?從哪裏開始?——比如每人買一本《DELPHI MDA/DDA程序設計--使用ECO》? ^.^
李維 : 呵呵,no, 每人去找周愛民. 如果想使用MDA/DDA我想一個Team必須有決心,就跟使用SCRUM一樣,因為ECO不光是一個框架,ECO更是一種開發方式和思想. 不過令人高興的是現在很多工具都有類似ECO的地方,只是程度上的不同.例如Ruby/ActiveRecord. 如果你會了ECO,那麼當你去看Java/JPI, Ruby/ActiveRecord會覺得非常的簡單和親切, 就好像你早就都知道那些東西一樣.

 

周愛民 :我的印象中,ECO的模型應該是平臺無關(PIM)的,對嗎?
李維: ECO在類圖中設計的成果是PIM, 但是一旦你開始產生Code時它就自動轉換成PSM了. 因此ECO的程式是.NET平臺的PSM.

 

周愛民 : BDS中的ECO模型有版本管理嗎?與DELPHI的歷史管理集成在一起,還是需要其它的版本管理? 我已經不習慣沒有版本管理的環境了。因爲我們的開發人員總會出錯,總會忘事,也總會把幾天來的成果推翻,從早先的另一個——ECO對象模型——再次做起。這太重要了。
李維 : ECO本身就有versioning機制, 當然你可以直接使用BDS中的StarTeam對ECO的source進行版本管理.

 

周愛民: 談談先生的書吧。《DELPHI MDA/DDA程序設計--使用ECO》寫完之後,有沒有不盡興之處? 我發現裏面寫得很全,MDA/MDD開發過程中的各種技術都有涉及,我是挺推薦大家看的。但是對於ECO 4好象少了些前瞻。不知先生可否透露點什麼?
李維 : Delphi For PHP已經出貨了,中文版要慢一點.因為Delphi For PHP是在日文OS中測試,他們沒注意到中文OS的問題,因此他們正在解決中文OS的問題. Delphi For Ruby? 我不知道會不會有(可能性不大).但是CodeGear對Ruby非常感興趣,有可能做一個Ruby的IDE

 

周愛民:談談先生的書吧。《DELPHI MDA/DDA程序設計--使用ECO》寫完之後,有沒有不盡興之處?
李維 : 有,我想寫更多ECO+Ajax的內容,可惜沒時間. 不過我這一陣子會寫一些ECO+Ajax的文章.


周愛民:是對於ECO 4好象少了些前瞻。不知先生可否透露點什麼?
李維 :呵呵, 去年底我寫完這一本書時並沒有ECO IV的消息.到了今年纔有. ECO IV主要的特點是支援VCL.NET,和效率更為快速的執行表現.

 

周愛民 : 但是對於ECO 4好象少了些前瞻。不知先生可否透露點什麼?
李維 :此外ECO IV也大幅強化了延展性的功能.

 

周愛民 : OH...Togther在後續的版本中有什麼新消息或強勁的表現嗎?
李維:Together的Design Interface會執的更快.Together For Java會加入動態模型執行模擬的強大功能.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章