ECO III序曲

如同許多人一直詢問的ECO資料和書籍的問題,其實Borland已經有許多的ECO文章和資料可供參考。不過我想也許是因為語言的問題造成了一些朋友無法瞭解這些資料,因此我趁著空餘的時間先以中文寫了部份的文章解釋從如何開發ECO應用程式開始說明,我先把寫好部份的內容公布出來看看大家的意見,如果覺得不錯請告訴我,我會找時間繼續寫下去,如果大家覺得沒用,那我就可以休息下工了。

我準備了2PDF檔案,Chap01PDF是繁體版,Chap01SC.PDF是簡體版,您可以根據您的需求下載不同的版本。

http://liwei.csdn.net/down/Chap01SC.PDF

http://liwei.csdn.net/down/Chap01.PDF

(如果無法下載就代表檔案還在上傳, 嗯傳送率very very very slow, 傳的我都睡著了, 也請各位等等, 回頭再來試試吧!)

由於這是我使用很短暫的時間寫出來的,我必須說我沒有時間校對內容和錯別字,因此如果您閱讀了後找到了一些錯誤,也請告訴我好讓我可以更正,在這裡就先謝過各位了。

最近許多人都抱怨我不照顧我個人的論壇,可是我跑去在個人論壇花時間的話又有人抱怨我很久不寫Blog。啊,我也是一天只有24個小時,我也需要上班啊,每天只要一人問我一個問題就可以把我完全淹沒了,所以請各位多多包涵吧。

廣告
  1. #1 by Unknown on 2006 年 04 月 28 日 - 15:16:28

    李老师辛苦了,期待下一篇,第一章的demo数据库在哪里能下到?

  2. #2 by 思坦 on 2006 年 04 月 28 日 - 15:39:07

    李技術長您好,看了您的文章,實在是很好的享受且清楚明瞭,很期待您的新作出版;下載PDF說明近100K,也相當快速。
    1.在1-23圖的 step1 與step2 剛好是順序相反了,可能是排版的問題造成,因為若先拖拉資料庫中的BdpConnection1 再拖拉PersistenceMapperBdp1 時,則後者的connection 屬性要自行指派於它,但若先拉BdpConnection1 時接著拉PersistenceMapperBdp1 ,就將自動指派。
     
    2.建議:ASP.NET AUTO FORM(AN-AF) 或WIN AUTO FORM(W-AF) 若能自行去美工或排版,將是非常完全的一件事,只是AUTO FORM(AF) 現今是無法去人為修改的,那麼AF 將流為測試的功能而已,因為客戶無法接受如AF的格式來作業。因此建議DEVCO的ECO 團隊可以讓AF可以展開來客製化它,在封裝起來。我想這ECO會更讓人接受在客製化技術的巿場中。
    PS:客製化的應用系統才是發展工具的價值存在。AF能客製化相當重要,這也是目前許多老技術員無法接受的事實AF不能修改,就難以實現AF的訴求了。
     
     

    >以OCL核心為驅動控制ECO,
     >這是什麼意思? 可以多解試一下嗎?
    ANS:
    是指:因為OCL/ACTION(OCL/ACTION,OA)是如同SQL 的重要性,因此若要使用ECO 框架,就必需捨棄了SQL語言,因此呢?
    O/A是相當重要地,所以它是驅動ECO框架的重要表示式,因此您可能要多對OA做基本的說明及使用關係,以便能讓我們在操作OA像SQL般的達到目的,另外是:OA 的使用實施點,如介紹一個範例利用OA來限制或執行模型或應用程式介面(調用OCL)的方法及表達可行時機,否則將造成OA無法順暢的驅動ECO來達到客製化的應用程序目的(老實說當時在K OCL的標準規格書時,的確下一番功夫與時間,才能了解OCL的用例時機)。
     
    感謝您,這文章真的寫的非常地好,我們一定支持到底。
    尤其面向對向的C#/DELPHI版中,說明許多OO的許多好的思維。
     
    再次感謝您。

  3. #3 by 思坦 on 2006 年 04 月 28 日 - 15:41:15

    >李技術長您好,看了您的文章,實在是很好的享受且清楚明瞭,很期待您的新作出版;下載PDF說明近100K,也相當快速。
    1.在1-23圖的 step1 與step2 剛好是順序相反了,可能是排版的問題造成,因為若先拖拉資料庫中的BdpConnection1 再拖拉PersistenceMapperBdp1 時,則後者的connection 屬性要自行指派於它,但若先拉BdpConnection1 時接著拉PersistenceMapperBdp1 ,就將自動指派
     
    UPDATE:

    >李技術長您好,看了您的文章,實在是很好的享受且清楚明瞭,很期待您的新作出版;下載PDF說明近100K,也相當快速。
    1.在1-23圖的 step1 與step2 剛好是順序相反了,可能是排版的問題造成,因為若先拖拉資料庫中的BdpConnection1 再拖拉PersistenceMapperBdp1 時,則後者PersistenceMapperBdp1 的connection 屬性要自行指派於它,但若先拉PersistenceMapperBdp1 時接著拉資料庫中的BdpConnection1 ,就將自動指派CONNECTION屬性.
    感謝!

  4. #4 by ?佳 on 2006 年 04 月 28 日 - 17:40:36

    "在第二種模式中ECO允許舊系統仍然能夠運行但是又可以使用MDA/DAA開發新的系統" 
    這是可用來說服我主管買BDS2006導入MDA的重要理由,期待後續的文章與書本的上市!!
     
    目前自己在實驗時就遇上了困難:
    雖然用[Wrap Existing Database With Eco]建出原有資料庫的model(OldMappingProvider.xml),
    但是model處理後存回NewMappingProvider.xml時,
    原table的主鍵卻由新增的ECO_ID取代,使得舊系統無法再用資料庫了,
    請問有可能不變動原有table的欄位嗎? (原資料庫只能允許建新table)

  5. #5 by Unknown on 2006 年 04 月 29 日 - 02:18:27

    感謝李維大師,讀君一文,勝讀十年書,真是過癮好看,比金庸小說還
    更好看,而且好用,比看mission impossible還緊張刺激,感謝,期待您的
    part 2

  6. #6 by h on 2006 年 04 月 29 日 - 02:31:05

    李大師的文章就是"聖經", 加油啊! 多安排點時間寫東西吧!

  7. #7 by Yu on 2006 年 04 月 29 日 - 05:50:05

    强烈支持:)

  8. #8 by Unknown on 2006 年 04 月 29 日 - 10:19:39

    李老师终于开始写ECO III了,我对ECO完全是个门外汉,看了李老师的试读后解开了很多疑惑,期待下文。

  9. #9 by bjzhq on 2006 年 04 月 30 日 - 00:38:34

    看李大师的文章, 感觉大师如数家珍般的把理论与实践一一道来.
    期待大师的 ECO 书籍早日出版.
    另:大师的简体中文写得非常棒.

  10. #10 by bjzhq on 2006 年 04 月 30 日 - 03:50:09

    按照大师的文档实作了一下, 感觉 ECOIII 非常强大,希望大师快快出书,尽快测试 ECO, 尽快应用到项目中.
    谢谢!

  11. #11 by on 2006 年 04 月 30 日 - 04:05:54

    大师级人物啊

  12. #12 by lzf1010 on 2006 年 04 月 30 日 - 04:19:22

    感觉BDS2006d的内存泄漏比较严重,今天上午使用delphi for win32部门编辑代码,启动delphi后,内存占用350M,到中午时已经接近800M了,期间只编译调试过几次,基本上是在输入代码。我觉得是code insight导致的内存泄漏。PS:我已经安装了update2

  13. #13 by 思坦 on 2006 年 05 月 01 日 - 15:36:40

    雖然在文宣中看到,未來ECO4可以用S/P ,但若可以直接繼續使用SQL語法而非只是CALL S/P,然而就延伸地使用ECO習慣性開發,只是現今OCL使用機率不如SQL高,所以轉換上,依然隔閡存在。
    畢竟SQL 還是對於ORM是直接明瞭的開發方式。PS:OCL用在ERP大專案要實作仍待驗證???。
    所以請問李技術長,可否請ECO發展團隊,讓ECO未來也支援SQL語法,像ADO般容易快捷而非只是S/P的支援???。
    PS:雖然OCL有一定的認知與了解,但還是輸給了SQL的直覺性開發,
    LINQ 就是以SQL 為根本的ORM,不是嗎?? 感謝解答!
     

  14. #14 by 伯舍 on 2006 年 05 月 02 日 - 02:17:54

    李大師,趁著剛出爐熱騰騰,拜讀你的大作
     
    我在PECOForum[diagram]頁,把ForumSite的Copyright屬性拖曳到Category,然後用Undo,Copyright無法跑回到ForumSite.(BDS2006 bug?)
     

  15. #15 by on 2006 年 05 月 02 日 - 05:53:17

    >1.在1-23圖的 step1 與step2 剛好是順序相反了,可能是排版的問題造成,因為若先拖拉資料庫中的BdpConnection1 再拖拉PersistenceMapperBdp1 時,則後者的connection 屬性要自行指派於它,但若先拉BdpConnection1 時接著拉PersistenceMapperBdp1 ,就將自動指派
     
    My fault, 已改正, 謝謝指教.
     

  16. #16 by on 2006 年 05 月 02 日 - 06:01:59

    >雖然OCL有一定的認知與了解,但還是輸給了SQL的直覺性開發,
     
    我想那是因為比較才使用OCL的原因,OCL不會比SQL少直覺,反而更符合物件導向的想法.
     
    >LINQ 就是以SQL 為根本的ORM,不是嗎?? 感謝解答!
     
    LINQ和ECO的概念不同,LINQ可能會讓許多人喜歡,但是在Program中直接使用LINQ/SQL, 不是又把Code和database schema綁死在一起了嗎? ECO藉由分隔business logic code和underlying schema, 能夠讓你的code更抽象,更不易受到impact, 在設計上來說是比較好的想法, 當然喜歡LINK或是ECO就看每個人不同的選擇了.

  17. #17 by 伯志 on 2006 年 05 月 02 日 - 07:29:03

    期待李老师的ECOIII书籍

  18. #18 by 思坦 on 2006 年 05 月 02 日 - 15:44:39

    >My fault, 已改正, 謝謝指教.
    您客氣了.
     
    >LINQ和ECO的概念不同,LINQ可能會讓許多人喜歡,但是在Program中直接使用LINQ/SQL, 不是又把Code和database schema綁死在一起了嗎? ECO藉由分隔business logic code和underlying schema, 能夠讓你的code更抽象,更不易受到impact
     
    的確,不過說真的,應用ECO寫程式真的很痛快來形容它,的確很快,而且都是物件的環境思考問題,做ORM也快多了。而且保持一致性且延展性高。在過帳的應用問題上,如不花時間去適應完全的物件方法,這苦頭就有得吃了。
    老實說,現在ECO資料我搜集也近2G了,實在是辛苦,期望您的書未來可以出版,加強我們的觀念及方法,尤其[面向對象C#版]就提供了BORLAND 產品的應用技術及OO的可行觀念。

  19. #19 by on 2006 年 05 月 03 日 - 04:35:05

    >目前自己在實驗時就遇上了困難:
    雖然用[Wrap Existing Database With Eco]建出原有資料庫的model(OldMappingProvider.xml),
    但是model處理後存回NewMappingProvider.xml時,
    原table的主鍵卻由新增的ECO_ID取代,使得舊系統無法再用資料庫了,
    請問有可能不變動原有table的欄位嗎? (原資料庫只能允許建新table)
     
     
    我用了MS的Northwind和Interbase的Employee.gdb都可以在不影響原有的資料庫之下使用ECO的逆向工程處理資料 , 也沒看到ECO在原有的database中建立它自己的ECO Tables, 你可以再說明仔細一下你的情形嗎?

  20. #20 by 思坦 on 2006 年 05 月 04 日 - 04:49:57

    >我用了MS的Northwind和Interbase的Employee.gdb都可以在不影響原有的資料庫之下使用ECO的逆向工程處理資料 , 也沒看到ECO在原有的database中建立它自己的ECO Tables, 你可以再說明仔細一下你的情形嗎?
     
    其實他的本意是指:如引用原來的[Northwind]資料庫時,想再去該Northwind的ORM 中追加建立新類別(CLASS) 來達到繼承擴充或關聯屬於原來[Northwind]中的其中一類別CLASS(TABLE)。
    換言之-NorthwindcORDER of   Northwind 要與新增加的新class關聯或繼承達到延伸擴充。而在做產生schema 時,就會出錯了。(我是應用另一種方式逹到擴充原來的資料庫中的其中一個class,目前我認為這是唯一可行的吧!)
     

  21. #21 by 思坦 on 2006 年 05 月 04 日 - 07:28:26

    請問李技術長:
    在未來的ECO版本中,可能讓AUTO FROM 可以被展開地修改嗎?
    如:ASP.NET 的 AUTO-FROM 或 WINDOWS-AUTO FORM 。
    因為AUTO-FROM 不能被展開客製修改,將是AUTO FROM不能發揮的重點。 如今版本中是不能被客製化去修改或美工排版。
    非常感謝您解答這疑問。

  22. #22 by seepop on 2006 年 05 月 05 日 - 09:33:37

    如能在 ECO4 中直接用中文撰写程序那是最好的了

  23. #23 by Unknown on 2006 年 05 月 08 日 - 08:10:44

    照著做,唯有資料庫用SQL Server北風,產生問題,請大家提供一些意見,感激不盡
    Schema Generation| Borland.Eco.Exceptions.EcoException:
     Unable to find a persistence mapper for "AutoInc",
    please update your SqlDatabaseConfig.PersistenceMappers   at Borland.Eco.Persistence.ORMapping.DefaultORMappingBuilder.BuildMappingForAttribute(ClassDefinition classDef, IAttribute a, AliasDefinition alias)   at Borland.Eco.Persistence.ORMapping.DefaultORMappingBuilder.BuildFeatureMappingsForClass(IClass c, ClassDefinition def, AliasDefinition alias)   at Borland.Eco.Persistence.ORMapping.DefaultORMappingBuilder.BuildMappingForClassPass2(ClassDefinition res, IClass c)   at Borland.Eco.Persistence.ORMapping.DefaultORMappingBuilder.Initialize(IEcoTypeSystem typeSystem, IDatabase db, SqlDatabaseConfig config, Boolean addMissingTypes)   at Borland.Eco.Persistence.PersistenceMapperDb.CreateDataBaseSchema(ITypeSystemService typeSystemService, IConfigureCleanPS configureCleanPS)   at Borland.Eco.Persistence.Design.GenerateDBTool.Execute(ExecuteArgs executeArgs)

  24. #24 by 思坦 on 2006 年 05 月 08 日 - 14:01:15

    >照著做,唯有資料庫用SQL Server北風,產生問題
     
    非也,任何的資料庫,去引時期,後若要擴充或繼承時,變更了其結構都將造成問題,這問題是不能在原有的(old)置入或導入ECO結構所致,唯有新CLASS 不會有問題。

  25. #25 by 丁丁 on 2006 年 06 月 02 日 - 01:02:58

    刚刚了解ECO,希望李老师可以接着写。嘿嘿。。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s

%d 位部落客按了讚: