ECO 5 for Visual Studio 簡介(一)

這是筆者首次在部落格中撰寫ECO (Enterprise Core Object)的相關主題,筆者初次接觸大約是2005年左右內建於Delphi 2005的ECO 2.0,當時對於其MDA的驅動開發甚感興趣,以及它能夠繪製UML Class Diagram之後產生Persistent Layer物件以及產生後端實體的(ER-Model/DB Schema),那時這樣的開發的方式當時深深的吸引著我...

我想許多的開發人員都未聽過ECO,那麼什麼是ECO呢?ECO是 (Enterprise Core Object)的縮寫,中文稱做企業核心物件,筆者於2005年撰寫的Delphi 2005 .NET程式設計一書中有大致的介紹ECO如何來開發,當時ECO直接內建在Delphi 2005中或Borland C# Builder版之中,且當時的版本為2.0。現在已經發展到5.0版,且可以支援在Visual Studio中開發。

ECO與ORM相關技術的差別:

ECO最早內建於Delphi 8之中,當時為1.0版,從2.0才開始增加對於WinForm、WebForm關於應用程式開發的支援。提到ORM相關技術,其實ECO也算是其中的一種,不過當時的Borland公司所提出的ECO所強調的的是Rapid MDA,也是當時最引人注目的地方(MDA是Model Driven Architecture的縮寫,中文稱做模型驅動的開發模式),所謂的Rapid MDA可說它是一種能夠降低自行撰寫程式碼,減少到最低的程度,而且可說是可以全面性的增加開發與維護的效能,更重要的是說它是一個基於UML圖形化的介面下的基礎架構來描述的。透過ECO你可以輕易的設計你的商業邏輯層(Business Layer)與資料實體層(Persistence Layer),並且在ECO這個Framework下開發你可以很容易展示你的應用程式設計的架構,而且現在,ECO 5.0完全使用.NET Framework所開發。

如圖(一),類別圖自動產生程式碼框架:

image

在這一次的ECO 5.0版中大概提供了如下新增功能:

 

  • 一個全新的,完全與Visual Studio整合的開發環境。
  • 全新的程式碼產生器,支援C#、VB.NET、Delphi Prism。
  • 支援Database的反向工程,且支援的DB種類更多 。

•Interbase 2007 sp2 and later
•Oracle v8 and later
•MS SQL Server 2000/2005/2008 (包含SQL Express)
•MySQL v4 and later
•Firebird 1.5 and later
•NexusDB v2
•SQLite
•Sybase ASE

  • 開始支援ASP.MVC 的開發。
  • 支援在關聯式資料庫裡使用OCL語法。
  • 完全使用C#來開發。
  • 支援WPF應用程式的開發。
  • 新的ViewModel設計方式,確保UI的獨立性、重用性。
  • 此版本大幅的改進許多先前的效能問題與Bugs。

要安裝ECO 5.0可以到下面網址下載:

http://capableobjects.com/Downloads_Eco5.aspx

讀者或許覺得奇怪,映像中ECO應該是Borland的產品,後來隨著Borland公司內部的一些問題,ECO的開發團隊獨立出來成立另一家公司CapableObjects並全力發展ECO。

目前ECO 5.0仍只支援Visual Studio 2008,因此要測試ECO 5.0您必須安裝Visual Studio 2008與C#相關工具。安裝完成後隨即啟動ECO Tutorials ,此Tutorials總共(01 ~ 07章節) 筆者認為還算完整,從Why ECO開始、Create a business model,到建立一個屬於ECO Space的Persistent物件的企業級ASP.NET Web Application,都有很詳盡的介紹與說明。

圖(二)、ECO Tutorials

image

此時啟動Visual Studio 2008即可以在新增專案的各語言類型中找到 [ECO C#/VB Solution],如下圖(三)。

image

接著會出現如下對話框,目前的ECO可開發三種類型的應用程式:

  1. WinForm Application
  2. WebForm Application
  3. ECO Package in DLL

我們先來開發一個WebForm Application,先展示一下ECO的主要功能。由於應用程式中必須存取Persistent Layer物件,因此接著底下必須選擇Persistent Storage的連線方式,筆者使用SqlConnection方式,而因為Persistent Layer後端必然有一個Middle-Tier中介層,所以Server的部分是讓您選擇Middle-Tier Server類型。如下圖(四)。

image

如上圖中筆者要建立一個以SQL Server為後端資料庫,Middle-Tier為存放在IIS Remoting中,可惜的是目前還沒有支援WCF Service作為ECO的中介層。而在專案建立完成後,ECO for Visual Studio 一共會建立4個專案:(畫面見圖(五)方案總管)

  1. WebForm 專案
  2. ECO Space 專案
  3. ECO Model 專案
  4. Middle-Tier (中介層)專案

圖(五)、方案總管

image

WebForm專案不用多解釋,就是UI的設計,什麼是ECO Space 呢

一個ECO專案當中還會有一個EcoSpace,通常ECO當中使用的物件都會在一個EcoSpace裡頭,它是提供實體資料層與物件溝通的一種管道(中介),它的資料來源可以是先前所提過的資料庫,也可以是一個XML檔案,而且在EcoSpace中你可以使用OCL語法從EcoSpace中擷取Eco物件出來或操作Eco Package。

ECO Model專案的部分讓我們設計在ECO Space裡頭溝通的物件,以圖形化的方式設計。這時在ECO Model的專案裡,也就是EcoTestProject1.Model專案會有一個空的Class1,如下圖(六):

image

這時請直接切換至EcoTestProject1.EcoSpace 的EcoTestProject1EcoSpace.cs設計畫面,此時畫面應該只有一個PersistenceMapperClient1物件,如下圖(七)。

圖(七)、ECO Space設計畫面

image

PersistenceMapperClient1物的用途是讓我們可以存取遠端的Middle-Tier物件,交換ECO Space。但這還是不夠的,我們必須建立資料庫的實體連線,請拖曳一個persistenceMapperSqlServer物件至設計畫面中,如下圖(八)

image

並設定好資料連線,如下圖(九):

image

此時我們已完成初步的環境設定了。接著可以開始設計ECO Model,待續:D

 

相關連結

ECO CapableObject 官方網站

http://www.capableobjects.com/

官方下載連結 (目前最新版本為 5.0.0.4754)

http://www.capableobjects.com/Downloads_FreeVersion.aspx

Microsoft Gallery 下載點

http://visualstudiogallery.msdn.microsoft.com/0e5754ec-1eb3-41f9-9e8c-2a9daa4853f4/


 

簽名:

學習是一趟奇妙的旅程

這當中,有辛苦、有心酸、也有成果。有時也會有瓶頸。要能夠繼續勇往直前就必須保有一顆最熱誠的心。

軟體開發之路(FB 社團)https://www.facebook.com/groups/361804473860062/

Gelis 程式設計訓練營(粉絲團)https://www.facebook.com/gelis.dev.learning/


 

如果文章對您有用,幫我點一下讚,或是點一下『我要推薦,這會讓我更有動力的為各位讀者撰寫下一篇文章。

非常謝謝各位的支持與愛護,小弟在此位各位說聲謝謝!!! ^_^