2005 年 04 月 16 日
原文網址:http://www.cffaq.com
註1:原文發表距今已有一段時間,故數據上與現在應已不太相同。
註2:原文是翻譯英文的簡體中文,我將其轉成繁體後對文句有稍做修改,使其閱讀起來更加通順。
常見問題
1: ColdFusion的定義
ColdFusion可以從兩方面來定義,它既是一種應用伺服器也是一種程式語言。很多開發人員常常把它們當成一件事,他們用ColdFusion語言(CFML - ColdFusion Markup Language)來開發應用程式,並把開發的應用程式在ColdFusion伺服器上執行。 但是用ColdFusion語言開發的應用程式可以在其他支援CFML的應用伺服器上執行,如J2EE應用伺服器,這樣一來就給那些高級的應用伺服器提供了另一種簡潔高效的開發語言。不管您選擇使用ColdFusion應用伺服器還是選擇使用其他的應用伺服器,CFML語言都為您提供了一個快速開發功能強大的應用程式的有效方案。
2: ColdFusion的歷史有多久?
ColdFusion開始於1995年,是歷史最悠久的最為成熟的Internet應用伺服器。
3: 有多少企業組織或個人使用ColdFusion?
在全世界範圍內有超過1萬個組織,12萬台以上的伺服器在執行ColdFusion.
4: 有多少開發人員在使用ColdFusion?
保守估計,大概有35萬。但實際上的數字遠遠大於35萬,一台執行ColdFusion的伺服器上可以執行的多個ColdFusion程式,因此在一台伺服器上進行開發的程式師也會有很多。
5: 和其他應用伺服器相比,ColdFusion有多成功?
應該說是非常成功的,ColdFusion是商業(需購買)應用伺服器中的佼佼者,在使用量上僅次於ASP。在財富100當中有超過75%的企業在使用ColdFusion。
6: ColdFusion可以開發那些類型的應用程式呢?
ColdFusion可以用來開發各種各樣的應用程式,包括動態Internet網站,電子商務網站或入口網站,但最主要的還是大量的企業內部Intranat應用程式和資料庫相關的應用程式。這一點始終是也將一直會是ColdFusion的強項。
7: 為什麼我能看到的用ColdFusion開發的網站並不是很多?
其實用ColdFusion開發的網站是非常多的。但是由於大多數基於ColdFusion的應用程式都是企業內部Intranet應用程式給以及和敏感資料庫相關的應用程式,並不是對外公開的。所以看上去用ColdFusion的並不是很多。如果您想瞭解一下那些重要的企業在使用ColdFusion請參考如下位址:http://www.macromedia.com/
http://www.forta.com/cf/using/
8: 為什麼那些公司會花錢購買ColdFusion,而不使用‘免費’的ASP或PHP?
說其他的一些應用伺服器是免費的其實有點言過其實。的確,一些應用伺服器可以被免費下載,但所提供的只是一些基本的核心的功能。在ColdFusion中提供了大量非常重要的功能和服務,如產生圖表,全文檢索以及其他一些有用的模組,如檔案上傳的處理和電子郵件的處理,而在ASP或PHP中這些模組都是要另外購買的。 最近的一項估算指出,如果要在ASP中加上ColdFusion專業版所提供的所有功能,總成本會到達3萬美元。與此同時售價低於1千美元的ColdFusion專業版卻集成了這些功能。而這還不包括由於使用了ColdFusion而減少的學習以及開發所需的週期和成本。
9: CFML是不是屬於專利技術,使用專利技術是不是很難得到保障?
不,CFML不是專利技術。事實上,有不少其他產品(通過其他廠商)也是用CFML(或部分)來實現的。另外,ColdFusion充分利用了大量公開的技術標準,從資料庫的集成(JDBC ,ODBC)到用XML來實現配置檔到使用J2EE作為ColdFusion的底層核心。
10: 什麼是CFML?
CFML的全稱是ColdFusion Markup Language,是一種特別適於用來開發Internet應用程式的語言。CFML看上去和傳統的程式語言並不太一樣,更接近HTML,因此和HTML一樣非常的易學易用。CFML可以在ColdFusion應用程式伺服器上執行,也可以在其他一些應用程式伺服器執行。
11: 經常看到有人在說CFML並不是一種真正的程式語言,它到底是不是呢?
如果你能用CFML來開發程式,那它當然就是一種程式語言。至於為什麼會有這種疑問,原因之一是CFML看上去和傳統的程式語言不太一樣(基於標籤而非基於腳本)。這裏有幾點我們需要記住: 1)CFML是模仿HTML而設計的,主要是因為HTML易學易用,並且這也是HTML是Internet成功的原因之一。 2)CFML完全符合傳統編程所需的基本要求(如流程控制,條件判斷等),通過
12: 什麼是.CFM 和.CFC?
CFML代碼常被儲存在以.CFM 或.CFC 為副檔名的文件中。.CFM 是ColdFusion的標準副檔名,它可以是普通的文字檔案,由其他檔所使用的文件或是自定義標籤文件。.CFC 是ColdFusion的元件檔(可以被重複使用的ColdFusion物件)
13: ColdFusion是不是只是用來實現簡單應用或入門級解決方案的?
當然不是。ColdFusion只是一種工具,能用這種工具做什麼完全取決於你的能力。對於一些初學者來說,ColdFusion是一種簡單的技術,用ColdFusion來開發一些簡單應用和入門級解決方案也的確非常容易。但這並不是說ColdFusion就只是用來實現簡單應用或入門級解決方案的。不像其他的一些學起來非常容易的技術只能用來實現簡單有限的功能,ColdFusion可以用來開發功能異常強大的解決方案。除了一些簡單應用、入門級的解決方案,還有大量高級應用、至關重要的解決方案都是用ColdFusion來開發的。
14: ColdFusion是不是會讓開發者養成不正規的撰寫習慣。
當然不,ColdFusion提供了所有必須的要素用以開發伸縮性強,結構性好,易於管理和維護的程式碼。ColdFusion並不強制你使用某種開發習慣或邏輯方法,ColdFusion最初的設計初衷就是要讓開發者能通過一個簡單的語言來高效率實現所需的功能。當然有很多開發者往往是在有一個清楚的想法之前就開始動手寫代碼了,然後再一點一點的拼湊他的想法。實際上也並不是所有的程式的開發都需要嚴格遵守並採用MVC設計模式。當然ColdFusion完全支援MVC設計模式(通過ColdFusion元件)並且也應該盡可能地使用。換句話說,ColdFusion不會讓你養成不正規的撰寫習慣,或在以後的開發過程中感覺力不從心,不管你處於那種開發水準,ColdFusion總是能滿足你的要求並且幫你一點一點的進步。
15: 我沒有任何開發經驗,ColdFusion是不是也適合我?
絕對適合,當然你最好有HTML和SQL的基礎知識,而且如果沒有的話,用Dreamweaver MX也能完成一些開發。不像其他的一些程式語言,需要通過幾周或幾個月的學習,在學習ColdFusion幾個小時以後你就能完成簡單的開發了。
16: 我是一個有經驗的 C 或/和 Java程式師,我有沒有必要使用ColdFusion呢?
C 和 Java 是功能非常強大的低階程式語言,非常適合開發需極強處理能力的後台應用程式,但卻非常不適合用它們來產生HTML給瀏覽器,或處理HTML中的表單。在這方面它們沒有什麼優勢。事實上一個比較好的方案是把ColdFusion和它們結合在一起,讓ColdFusion來處理表現層,而用C 或 Java 來處理後台作業。
17: 我是一名Flash開發人員,需不需要用到ColdFusion?
作為一名Flash開發人員,你一定瞭解開發能給用戶帶來豐富使用體驗,極具互動性的Internet應用程式的重要性。Flash常被用來製作動畫、簡介、廣告和一些特殊效果等,但Flash還能用來實現更多的應用。Flash非常適合用來做為Web-Based Application(以網頁為基礎的應用程式)的前台介面,而ColdFusion正好非常適合用來幫Flash處理後台任務。從Macromedia推出FlashMX和ColdFusionMX來,兩者之間的結合應用就變得非常簡單和高效 - Flash作為客戶端而ColdFusion作為伺服器端。
18: 我們公司的技術是建立在J2EE平臺上的,是不是就不能用ColdFusion了呢?
正好相反,你們公司選擇的是一個非常有戰略意義的方案來建立你們的資訊平台,這種方案可以讓你用到一些功能強大的技術,也是現在越來越被看好的方案。J2EE(Java平台)提供了一個能建立穩定、高效率、極具伸縮性的架構,但是它卻需要更高的成本(不僅僅是軟體本身的成本)J2EE平臺的開發是非常複雜的,超過了大多數公司的技術人員的能力。而且就是對那些經驗豐富的Java程式師來說,也不是所有的東西都需要用Java來實現。而ColdFusion MX可以執行在J2EE平臺的頂端,利用J2EE所帶來的強大結構和原有的投資,同時使得不懂Java的人也能利用它。或換句話來說,通過這種方式,ColdFusion MX 能讓不懂Java的人利用Java的強大處理能力同時有能完成更多的應用開發。所以選擇J2EE的並不意味放棄ColdFusion,對你來說反而是一種明智的選擇 - 你已經花了大量的成本,再多加一點ColdFusion的成本,你就能使你的資訊平台實現更多的功能。
19: ColdFusionMX的底層是基於Java技術的,那現在或將來在微軟的Windows平台上會有什麼問題嗎?
大多數的ColdFusion都是安裝在微軟的Windows平臺上的,並使用一些微軟的伺服器產品(如SQL伺服器)。所以無論如何都不會放棄微軟Windows平台的,而且隨著ColdFusion MX對.NET的結合,這種支援會越來越被重視。同時,ColdFusion還能在大量非微軟平台上執行,如:Linux, Solaris, 和 HP-UX。 也能使用各種各樣的資料庫,如:Oracle, DB2 和 mySQL - 所以ColdFusion是業界最靈活的產品。
20: 對任何一項技術來說,活躍的用戶群組都是成功的關鍵之一,ColdFusion有沒有類似的用戶社區?
ColdFusion用戶一直以來都是非常具有團體性的,而且ColdFusion的成長和發展方向很大程度上也都是由ColdFusion用戶群組來決定的。有數不清的討論群組、論壇、出版物和用戶群組和活動(包括有Macromedia組織的活動和非Macromedia組織的活動)。
21: Macromedia會不會專心致力於ColdFusion的發展?
一定會的。實際上,最新版本的ColdFusion(第一個完全由Macromedia開發的版本)是一個ColdFusion史上最大的開發小組所完成的,投入了大量的人力和物力。這一點就表明了Macromedia對ColdFusion和ColdFusion用戶的承諾。

