摘要:為什麼Borland創建VCL for .NET?什麼時候你該使用VCL for .NET而不是.NET系統本身的的Windows Forms框架?
Delphi 8 for .NET在Delphi社群中引起了極大的關注!人們在新聞組,聊天室,以及用戶們的小型聚會中頻繁地談論.NET基礎架構,談論它與我們都熟悉的Win32平台的關系。
其中一個熱點話題是Delphi8的VCL for .NET。大部分爭論似乎都集中在這個問題上:在這個宏大的規劃中,VCL for .NET的目的是什麼?它是一個短期的移植橋梁還是一個長期的應用框架。為什麼Borland要創建這些東西來和微軟的WinForms競爭?這是明智之舉還是缺乏謹慎?
安靜一下吧,沒有必要再為這個問題爭論不休了,真的。原因如下。
背景
微軟的.NET框架提供了一個硬件中立的執行環境和語言無關的類型系統。這很好,但是要產生基於Windows操作系統的客戶端應用程序還不夠。.NET還包括了Windows窗體("WinForms")應用框架來為WIN32操作系統創建圖形界面應用程序。熟悉在Delphi或C++Builder中的 Borland VCL應用程序架構的程序員們將會在.NET的WinForms框架中找到許多曾經相識的設計模式。這並不很奇怪:就像Anders Hejlsberg所說的那樣,“是好機制那為何不用呢”。
雖然VCL與WinForms之間有很多相似之處,但實質上要移植現有的Win32 VCL應用程序到WinForms上是非常困難的,也是很痛苦的。而且這將限制采納新的思路。相應的(軟件)工具的銷售也會帶來同樣的問題。
.NET是一個新的平台。在軟件行業中,甚至所有新的活動都基於.NET,相對於現存的和正在進行的Win32開發而言,.NET應用程序開發仍只是很小的一部分。我們早些時候關於客戶對於.NET平台興趣的調查,非常清楚地表明,許多Borland客戶對於.NET是一種不確定的興趣,他們承擔不起放棄在Win32平台上的所有投資的代價,而完全在新的.NET平台上從頭開始。今天仍然如此,而且這種情形還將持續多年。
在Delphi 8 for .NET中創建一個WinForms是輕而易舉的。現有的Delphi開發者們告訴我們:“這很好,但是我們能用它來為我們的VCL代碼做什麼呢?這些代碼都是以前創建的,我們的業務都依賴於這些代碼。”
為了讓我們的客戶更加滿意,並且讓.NET平台對於現有的Delphi開發者來說更加有吸引力,需要有一些東西來填補現存的Win32開發與新的.NET開發之間的鴻溝。它需要像.NET框架本身一樣是一個純粹的.NET,它還需要提供一個與現有Win32 VCL結構之間的高度兼容性。為了吸引現有的VCL開發者, Delphi for .NET需要的是一個在.NET平台上的實現的VCL。