在微軟得天獨厚的優勢下,Borland如何脫穎而出?
Borland與C#的淵源
整合開發環境

今年1月Borland成為首家獲得微軟授權.NET SDK的廠商,並在7月9日正式推出C#Builder,是微軟之外第一個提供.NET開發工具的產品。

為突顯C#Builder與Visual Studio .NET的差異,Borland在C#Builder強化了資料庫存取的功能,並以Janeva技術提供J2EE與.NET整合的解決方案。C#Builder的IDE(Integrated Development Environment;整合開發環境)目前已與Borland的Caliber、StarTeam、Optimizeit及部分Together等ALM(Application Lifecycle Management;應用程式生命周期)產品整合,期望打開企業級的.NET市場,預計9月底推出的Architect版本,更包含依據OMG(Object Management Group)組織的MDA(Model-Driven Architecture)規格實作的ECO(Enterprise Core Object)技術,可大幅提升開發人員的生產力。

Borland之所以率先研發C#的開發工具,事實上其來有自。一方面由於.NET Framework是以C#開發完成,所以C#是.NET平臺上最原生的語言;另一方面C#的創始者之一Anders Hejlsberg與Borland的淵源頗深,是微軟從Borland重金挖角的人才,曾設計過著名的Turbo Pascal編譯器,並領導開發Delphi程式語言,被譽為Borland最偉大的工程師,人稱「Delphi之父」,也因此在C#中看到一些Delphi的影子也不足為奇。

雖然名為「C#Builder」,其實除可開發C#應用程式之外,還支援VB.NET應用程式的開發,只是VB.NET的整合開發環境尚未支援Code Complete等功能。Borland未來將進一步整合C#Builder、Delphi及C++Builder等.NET版本的產品,成為與Visual Studio .NET類似的多語言.NET整合開發環境。

由於應用程式的專案檔與整合開發環境的組態有關,雖然C#Builder可開啟Visual Studio .NET的專案,但無法匯出成為Visual Studio .NET可讀取的專案檔。C#Builder從.NET Framework 1.1開始支援,因此既有以.NET Framework 1.0開發的應用程式,必須升級至.NET Framework 1.1才可匯入C#Builder。

專案開發的各階段對開發環境的需求不盡相同,C#Builder的整合開發環境提供三種不同的風格,允許開發人員選擇適合的介面或自訂客製化的開發環境。與Visual Studio .NET相同的是,C#Builder的編輯器也提供Code Folding的功能,以類似檔案總管展收資料夾的手法可展收程式碼,這是Borland第一個使用Code Folding的開發工具。Code Complete功能即撰寫程式碼時,按「.」可自動帶出元件相關的參數、方法及屬性,可增加開發的效率。Code Snippet類似Delphi及JBuilder的Code Template功能,開發人員只要事先於Code Snippet設定常用的程式碼,往後以滑鼠拖拉的方式,即在編譯器中加入可重複使用的內容。

C#Builder除了包含Visual Studio .NET開發工具提供的WinForm、WebForm、Web Services、ASP.NET及ADO.NET等功能之外,BDP.NET(Borland Data Provider for .NET)更提供優於ADO.NET的資料庫存取功能,目前ADO.NET針對SQL Server及Oracle之外的資料庫,仍必須藉由OLE DB才能與.NET應用程式串連,然而每多一層介面都會損耗效率。C#Builder則內建Oracle 9.1.2、DB2 7.2/8.x、MSSQL 2000/MSDE(Microsoft Data Engine)、Interbase 6.5/7.x及MS Access的.NET原生驅動程式,未來將陸續提供Informix、Sybase、MySQL、PostgreSQL等資料庫原生驅動程式,供C#Builder的用戶免費下載使用。

BDP.NET的另一項優勢,也是Delphi的用戶對BDP最為印象深刻的功能,即是提供開發階段檢視資料的能力,開發人員在設計階段中,即可直接讀取一般資料格式,甚至是影像、聲音及多媒體等BLOB(Binary Large Object)型態的資料,而Visual Studio .NET目前為止僅能在執行階段才能讀取資料。Janeva實現J2EE與.NET整合的理想

Web Services無疑是目前最廣泛使用且穿透力最強的跨平臺技術,但仍存在難以克服的缺點,例如除非透過額外的轉換工具,否則必須修改既有應用程式以支援Web Services。其次,Web Services雖然簡單,卻可能不支援安全性、事務處理及複雜的資料類型,且Web Services純文字的特性,造成效能上極大的限制。Borland希望可更平順地整合.NET、CORBA及J2EE應用程式,因此研發了Janeva技術。

C#Builder 提供的 Janeva技術,是Borland 在.NET環境中針對OMG組織CORBA 2.5(Common Object Request Broker Architecture)規格實作的產品。目前Janeva僅實作CORBA用戶端的部分,可讓 .NET 用戶端呼叫伺服器的 J2EE與CORBA元件,未來將進一步實作CORBA的伺服器端規格,讓 Java 與其他程式語言用戶端也可平順地串連 .NET 所提供的服務。

由於Janeva技術遵循開放標準,因此亦可搭配Visual Studio .NET 使用,只是Visual Studio .NET必須透過命令提示列,C#Builder則透過精靈化的步驟即可產生.NET可呼叫使用的Library。

目前Javeva支援的J2EE應用伺服器只有Borland Enterprise Server,不過Borland與著名的J2EE入口網站TheServerSide合作測試,已使用Janeva搭配BEA WebLogic 7.0,並將於8月正式推出支援BEA WebLogic 7.0的版本,後續在今年第三季也將推出支援BEA WebLogic 8.0及IBM WebSphere 5.0的版本。ECO是何方神聖?

Borland的ECO實作OMG組織於2001年制定的MDA規格,MDA是以UML塑模為基礎,為填補UML圖與真實程式碼之間的空隙,所制定的軟體開發架構。UML圖屬於概念層次的設計架構,僅能產生程式框架,與真實的網路運用與資料庫存取仍有差距,因此實際運作邏輯的程式碼仍需開發人員自行撰寫。

為更貼近實際的程式碼,OMG組織制定MDA規格,搭配一組應用程式平臺,於UML圖標註應用邏輯,即可產生實作的Web Services、CORBA、Java及.NET程式碼,套用在不同的網路架構及作業系統,成為各行各業可使用的應用程式,Borland稱為Design-Driven Development(設計驅動開發方式),將可大幅地提升開發人員的生產力。

Delphi 7 Architect版本也有提供ECO的產品,C#Builder的ECO則是第一個在.NET平臺實作MDA的產品。9月底推出的Architect版才有提供ECO技術,由於目前尚未能夠實際體驗ECO的神奇與風貌,有興趣的開發人員只能拭目以待。

Borlnad的ECO與ALM兩者並不相同,ECO是軟體開發的架構,可產生實作的程式碼,ALM則是周邊搭配的輔助工具產品,協助企業開發及控管程式碼。C#Builder的IDE已與Borland的ALM產品整合,開發人員可直接在IDE以StarTeam管控程式碼版本,以Caliber滿足需求管理的目的,以Optimizeit調校應用程式效能,目前Togeter則整合Class Diagram的功能,開發人員以OverView視窗鳥瞰整個專案的架構,再以滑鼠點選需要詳細了解的區域。微軟與Borland是關係微妙的親密戰友

Visual Studio .NET 2002可開發行動裝置應用程式,2003版更進一步強化這個部分,提供真實底層的行動裝置模擬器。令人遺憾的是,C#Builder卻尚未提供支援開發行動裝置應用程式的功能,Borland表示將於明年第一季推出支援開發行動裝置應用程式的版本,所以建議用戶以Software Assurance(軟體保固)的方式購買C#Builder,未來將可免費升級到支援開發行動裝置的版本。

雖然Borland與微軟在開發工具方面小有競爭,但在.NET發展上其實彼此的相標一致,是相輔相成的合作夥伴。畢竟.NET推出將近兩年的時間,目前除了微軟本身的Visual Studio .NET之外,Borland的C#Builder是市場上唯一的商用開發工具產品。Sybase則宣稱將在2004年推出.NET平臺上的PowerBuilder版本,從市場對.NET冷淡的反應來看,與過去微軟一旦推出新的技術或規格,各家廠商均群起支援的情況大不相同。

臺灣最大的開發工具群族VB 6,微軟已進入維護階段,這些開發人員及原使用Win 32應用程式的廠商及企業未來將何去何從?將停留在既有的版本不再升級,或升級到VB.NET、C#,還是轉向Java陣營,其後續發展令人好奇。Borland的加入提供企業更多的選擇性,對.NET的發展應是正面的幫助。為什麼選擇C#

在多語言的.NET開發環境,C#有何獨到之處,值得企業揚棄VB.NET、C++.NET及J#,選擇投資全新的程式語言呢?事實上.NET Framework即是以C#開發而成,所以C#是.NET平臺上最原生的程式語言,相對執行效率較好,也是Visual Studio .NET中範例及說明最多的程式語言。此外,熟悉VB的開發人員見識過VB.NET後,不難發現VB.NET絕對不是VB的升級版本,而是全新的程式語言,那麼,與其學VB.NET,何不學功能更強大的C#。

C#的發音為C 「Sharp」,可說是類似C++及Java的程式語言,雖同為C的家族,但與傳統C++相較仍有些差異。C++是物件導向(Object Oriented)的程式語言,而C#與Java及其他.NET語言則均是元件導向(Component Oriented)的程式語言。物件導向與元件導向並不相同,物件導向是設計階段可重複使用的機制,開發人員必須於撰寫程式碼時宣告、產生物件並賦予屬性,並搭配特定程式庫(Library);元件導向則是二進元階段重複使用的機制。元件通常會有與部署相關的資訊,可輕易地抽離至其他應用程式重複使用,在IDE開發環境中,可以滑鼠拖拉設計畫面的按鈕(Button)、標籤(Label)、文字欄(Text Box)均是元件,可在設計階段設定並儲存屬性及外觀,使用者也可自行設計元件,例如設計按鈕的形狀。

相較於C++必須包含標頭檔(Header File)、引入檔(Include File),COM及CORBA程式需要定義IDL(Intrface Definition Language;介面定義語言)檔,微軟稱C#是一應俱全的程式設計,尤其在Web Services應用方面,開發人員根本感覺不到WSDL的存在,只要專注於程式設計即可。

由於C#與.NET的CLR(Common Language Runtime)緊密結合,也相對帶來一些好處,例如C#的新、舊版元件可同時存在,不再有DLL Hell的問題。此外,C#所有的型別,皆衍生自單一的基礎型別,一致的型別系統共享相同的基本功能。特別強調的是C#是型別安全(Type-Safety)的語言,保證變數只能以被指定的型別存取,以降低編譯時期難以查覺的潛在程式錯誤。

Java的JVM(Java Virtual Machine)與.NET的CLR均提供自動化的資源回收(Garbage Collection)記憶體管理功能,可避免開發人員任意配置物件,並增加程式執行的效能。

C#也享有自動記憶體管理的好處,不過雖然C#強調沒有指標(Pointer),但是開發人員若有特殊的需求,仍可透過標示為不安全的程式碼區塊,以指標直接存取記憶體,不過如此將無法保證程式碼的安全性。文⊙李延華

熱門新聞

Advertisement