2007 年 04 月 的封存

CodeGear開發者日投影片和Delphi 2007 For Win32範例錄像

我提供了CodeGear開發者日PowerPoint投影片以及兩個Delphi 2007 For Win32範例錄像檔供有需要的朋友下載。其中的Delphi 2007 For Win32範例錄像檔是使用Camtasia 3錄製的,下載之後使用Winrar解開在IE中即可觀看。

Delphi2007-FastRTL.Rar是展示Delphi 2007使用FastCode之後的執行效率改善,而Delphi2007-Ajax.Rar則是展示如何使用Delphi 2007開發Win32Ajax應用程式。

這三個檔案可以在本部落格下方的Delphi項目中找到,Have Fun!

 p.s. 如果您無法下載,很可能是我還在上傳之中,網路很慢,請稍後再試試。

廣告

17 則迴響

Delphi MDA/DDA程序設計一書已到台灣

Delphi MDA/DDA程序設計一書的簡體版在上星期5已到了台灣,由於台灣有許多朋友希望能購買這本書,我也有許多好友向我要這本書,因此我手中第1批的書量應該是無法滿足所有對於這本書的需求,我只能依照給我EMail朋友的順序來提供這一本書.
 
然而由於我明天又將飛北京一個星期,因此我只能在從北京回來之後再處理這一本書,在此先向所有發EMail給我的台灣朋友說明一下,謝謝.

26 則迴響

TEcoForumServices 類別

 
有位大陸的讀者寫信跟我說他在Delphi MDA/DDA程序設計一書的CD中找不到TEcoForumServices 類別的原始碼,雖然我記得我已經把整本書下的Source打包到CD中了,而且TEcoForumServices 是一個很簡易的類別.Anyway,如果有人也需要這個類別的原始碼,下面就是它完整的列表.
 
unit EcoForumWrapperServices;
interface
uses System.Web, ECOForumWebAppDemo1EcoSpace, PECOForumUnit,
     Borland.Eco.Handles, Borland.Eco.ObjectRepresentation,
     System.Web.Security, Borland.Eco.Services;
type
  TEcoForumServices = class
  private
    { Private Declarations }
  public
    class function CreateMemeber(mySpace :  Borland.Eco.Handles.EcoSpace) : ForumMember;
    class function getForumSite(objl : IObjectList) : ForumSite;
    class function MemberLogin(mySpace :  Borland.Eco.Handles.EcoSpace; const UserId : string; const sPassword : string) : ForumMember;
  end;
implementation
{ TEcoForumServices }
class function TEcoForumServices.CreateMemeber(mySpace :  Borland.Eco.Handles.EcoSpace): ForumMember;
begin
  Result := ForumMember.Create(mySpace);
end;
class function TEcoForumServices.getForumSite(objl: IObjectList): ForumSite;
var
  obj : System.Object;
begin
  Result := HttpContext.Current.Session[‘ForumSite’] as ForumSite;
  if (Result = nil) then
  begin
    obj := objl[0].AsObject;
    Result := obj as ForumSite;
    HttpContext.Current.Session[‘ForumSite’] := Result;
  end;
end;
class function TEcoForumServices.MemberLogin(mySpace :  Borland.Eco.Handles.EcoSpace;
  const UserId, sPassword: string): ForumMember;
const
  selectUser = ‘ForumMember.allInstances->select( M | (M.Name = “{0}")  and  (M.Password = “{1}") )->First’;
var
  enPW : string;
  userOCL : string;
  OCLResult : IElement;
  oclService : IOclService;
begin
  enPW := FormsAuthentication.HashPasswordForStoringInConfigFile(sPassword,’md5′);
  oclService := mySpace.GetEcoService(typeof(IOclService)) as IOclService;
  userOCL := System.String.Format(selectUser,UserId,enPW);
  OCLResult := oclService.Evaluate(userOCL);
  Result := nil;
  if (OCLResult.GetAsCollection.Count <> 0) then
    Result := OCLResult.GetAsCollection.Item[0].AsObject as ForumMember;
  HttpContext.Current.Session[‘ForumMember’] := Result;
end;
end.

1 則迴響

生日快樂,師大附中!

啊,經由我太太告訴我今天是附中60週年慶我才猛然想起自己已經從附中畢業了這麼多年,雖然因為有事在身而無法回到附中校園一起慶祝,但卻無法阻止我的思緒瞬間回到了多年前在附中讀書的回憶,一下子高中那些死黨的面容一一的浮現在我的腦中,嘴角也不禁露出了年輕時代才會出現的輕佻的笑容。

在附中生活是我整個人生求學的階段中最快樂的3年,只有在附中唸書時我才會每天迫不及待的想要上學,因為那段日子每天在學校都快樂不已。每天從我家到附中門口就會開始上演令人捧腹的生活樂趣,因為我會看到許多人為了遮掩腳下的白襪子而做出各種奇怪而好笑的動作,有些人為了逃避教官檢查頭髮,刻意壓扁的帽子,或是改過的卡其褲而在校門口和教官進行各種鬥法,每天有趣的附中生活就是這麼開始的。

在回憶附中生活時,當然也忘不了我自己在附中時曾經經歷的事情。例如我永遠忘不了我高一第1天到附中上課時走在當時著名的尤加利樹大道下時喃喃自語的問自己我真的考上附中了嗎,因為連我自己都不相信我能夠從一間默默無聞的鄉下初中考上師大附中。我也忘不了當電影『第1滴血』上演時,我和十幾個死黨在上課的下午從教室中一一的溜走,並且在操場上被教官追著從附中後操場爬牆跑出去西門町看『第1滴血』。忘不了每逢考試時死黨們相互合作和監考老師鬥智的情形。忘不了一位徐姓同學在被附中退學的前一天帶著整書包的鞭炮到教官室去放鞭炮。忘不了我們班那個嚴厲又帥得不得了的教官,他也總是在我們闖禍後想盡辦法保護我們。忘不了星期三小週末下午和死黨到處閒逛的日子。忘不了全年級大打水球戰的日子。忘不了學風自由的附中在盡可能保護學生的情形下允許附中學生做一些年少輕狂的事情。更忘不了高三要考大學之際每班附中學生仍然不忘快樂的附中生活,把每一個高三附中班發揮想像力打扮成不同風格的教室,當時雖然教官不停的拆掉我們的佈置,但是那一班拆完,另外一班又重新裝潢了起來,讓教官疲於奔命,最後只好接受這樣的結果。

好快好快就過完了3年附中生活,但這麼快的3年卻永遠讓我忘不了,附中濃郁的同學,死黨之情是後來在台大讀書時最懷念的感覺。

我永遠以身為附中騎士為榮,也永遠不會忘記我是附中487班的學生,生日快樂,師大附中!

6 則迴響

SOA 和 MDA : 為一個傳統的企業IT系統進行工程重整

今天一早看到了一篇文章『SOA with MDA : Re-Engineering A Legacy Enterprise IT System』覺得相當的有趣,因為它同時談到了兩個最流行的IT技術SOAMDA,而更吸引我的則是基於職業的敏感,我從這個主題中嗅到了應用MDA的內容,因此立刻連結到它的URL詳細的閱讀了這篇文章,各位也可以在下面的URL找到:

http://soa.sys-con.com/read/346397.htm

這篇文章中有趣的地方很多,作者在其中敘述了一段很重要的結論:

Following the principles of MDA, all systems are fully documented with models. As a consequence of this change in the process architects and analysts could drive development. Productivity has increased by a factor of three. Programming errors are minimized. Applications are flexible for code adaptation to standards. Reusability is very high. Through the use of models and code generation from the models, development is automated, effectively reducing the number of experienced programmers needed. The concept and design of the architecture, framework, and MDA techniques are presented below.

其中主要的意思是指使用了MDA之後生產力提高了3倍,開發的錯誤也減少了許多,重要的是藉由模型轉換,許多開發工作都可以自動化。

我在閱讀這篇文章中的時候腦中是想著ECO,因為這篇文章許多重要的觀念和技術都可以使用ECO輕易的做出來,這篇文章的筆者提到了他們花了許多的時間才完成整個系統工程重整的工作,而且MDA部份是使用COBOL+Java+UML完成的。我想如果是使用ECO+Web用戶端的話,需要的時間可能只要一半。

作者在文章中敘述了他們的系統架構,以及如何使用SOA/MDA。在文章中『Meta-Information Generation via Models』段落中作者使用的技巧很明顯的就是『模型轉換』的技術,在MDA技術中稱為QVT。這可以使用ECO非常簡單的完成,此外ECO支援OCL,這意謂這篇文章的作者如果使用ECO,那麼他可以更好的為系統進行工程重整,因為他可以在UML敘述的模型中使用OCL,如此一來就不會被他痛苦的COBOL所束縛,也不會在用戶端只能使用Java

另外在文章中的『Application Module Development Using Models』段落中作者也敘述了如何使用模型和CASE工具來定義傳統系統之間,以及傳統系統和SOA之間企業邏輯流程呼叫的發展技術,這真的很酷,讀者也可以學習下來。但同樣的,如果使用ECO的話將會更方便,更強大,因為這個段落敘述的工作可以使用ECO的動態模型『狀態圖』輕易的完成,一旦開發人員使用ECO的『狀態圖』定義了企業物件呼叫流程,ECO便會自動產生程式碼,而且開發人員更可以在『狀態圖』中使用行動語言(Action Language)來定義動態呼叫流程,而無需使用特定的程式語言,例如COBOL或是JavaECO的做法更高階和抽象,更可以隔離特定平台的引生而起的問題。

如果您瞭解ECO,那麼當您看到愈來愈多的系統使用MDA或是類似的技術時,您將會覺得這些技術對您就像手掌正反面一樣,您早已瞭若指掌了。

最近我也一直在看Ruby/Rails的東西,許多朋友問我對Ruby/Rails的感覺如何? 當然我除了和大多數學習/使用Ruby/Rails的朋友擁有類似的感覺之外,在我心中卻有另外一種告不得人的偷笑快感,為什麼? 因為Rails中有許多的東西ECO也有,因此我在閱讀時的速度非常的快速,因為許多Rails中的技術我早已在學習ECO之後變得『瞭若指掌』了。

下次有機會我會寫寫ECOAjax的文章,以及ECORuby/Rails的文章,我們下次見了。

11 則迴響