coldfusion的定義6 X6 m$ \" y4 f) b; _/ r9 Q- u0 h
w1 [1 C. j/ a' z0 dColdFusion可以從兩方面來定義,它既是一種應用服務器也是一種編程語言。很多開發人員常常把它們當成一件事,他們用ColdFusion語言(CFML - ColdFusion Markup Language)來編寫應有程序,並把編寫的應用程序運行在ColdFusion服務器上。 但是用ColdFusion語言編寫的應用程序可以運行在其它支持CFML的應用服務器上,如J2EE應用服務器,這樣一來就給那些高端的應用服務器提供了另一種簡潔高效的開發語言。不管您選擇使用ColdFusion應用服務器還是選擇使用其它的應用服務器,CFML語言都為您提供了一個快速開發功能強大的應用程序的有效方案。
) N3 j" r" m( B/ L( a. N( ^
2 z/ _% y$ i% _coldfusion的歷史+ S) _+ \! C G5 q1 j
' o9 X' O8 W% I! _6 g
ColdFusion開始於1995年,是歷史最悠久的最為成熟的互聯網應有服務器。. O. v! ?3 J! S- r+ j/ j4 l
8 a1 b1 ? m5 T( x p9 c4 X! |
有多少企業或組織使用Coldfusion& b6 }5 C; G" w5 Q j
! W6 {0 a6 E4 ^+ [+ E. |" `( O8 X
在全世界範圍內有超過1萬個組織,12萬台以上的服務器在運行ColdFusion.
# _$ G2 ]4 U, n7 g- t. ]$ E2 G+ p! W4 H- Q2 v( R, L8 ~% }, ]0 e+ O
How much design?# g& g6 I9 X h; Z3 y `
1 K0 [8 c0 f3 h6 x( D& Q$ B0 e
保守估計,大概有35萬。但實際上的數字遠遠大於35萬,一台運行ColdFusion的服務器上可以運行的多個ColdFusion程序,因此在一台服務器上進行開發的程序員也會有很多。, o; K# i8 I1 y7 ^) q0 T
: j) m$ B! B# t# u: h( I6 H7 A6 h/ ?和其它應用服務器相比,ColdFusion有多少成功?( Q$ o0 O( t, X' W* h* |, G' ` a
7 M; T0 H. o u5 r+ O! U2 ~1 K
應該說是非常成功的,ColdFusion是商業(需購買)應用服務器中的佼佼者,在使用量上僅次於ASP。在財富100當中有超過75%的企業在使用ColdFusion.
* J- a8 t9 W; {& a. {/ s9 n. l" T [/ _
- j$ R9 _" C, J% J
) z. a7 r2 Z* b/ fColdFusion可以編寫那些類型的應用程序呢?
8 z0 V$ e: i9 ~8 T" D7 W w8 p+ b$ Z4 n; ?& s( i- j) U" ?
ColdFusion可以用來編寫各種各樣的應用程序,包括動態互聯網網站,電子商務網站或門戶網站,但最主要的還是大量的企業內部互聯網應用程序和數據庫相關的應用程序。這一點始終是也將一直會是ColdFusion的強項。
p7 T; z2 I/ e- a- q# x R& O
+ G$ n) w4 R y- o" I5 J. x( V為什麼我能看到的用ColdFusion開發的站點並不是很多?* W) F R) J/ W5 y' v
" o! c+ m1 Q [- A- x
其實用ColdFusion開發的站點是非常多的。但是由於大多數基於ColdFusion的應用程序都是企業內部互聯網應用程序給以及和敏感數據庫相關的應用程序,並不是對外公開的。所以看上去用ColdFusion的並不是很多。如果您想瞭解一下那些重要的企業在使用ColdFusion請訪問如下地址: 為什麼那些公司會花錢購買ColdFusion,而不使用『免費』的ASP或PHP?說其它的一些應用服務器是免費的其實有點言過其實。的確,一些應用服務器可以被免費下載,但所提供的只是一些基本的核心的功能。在ColdFusion中提供了大量非常重要的功能和服務,如圖表生成,全文搜索以及其它一些有用的模塊如文件上傳的處理和電子郵件的處理,而在ASP或PHP中這些模塊都是要另外購買的。 最近的一項估算表明,如果要在ASP中加上ColdFusion專業版所提供的所有功能,總成本會到達3萬美元。與此同時售價低於1千美元的ColdFusion專業版卻集成了這些功能。而這還不包括由於使用了ColdFusion而減少的學習以及開發所需的週期和成本。
F" G. s( a1 J2 C/ ~8 GColdFusion是不是屬於專有技術,使用專有技術是不是很難得到保障?
% A7 |4 i0 a3 F7 F) h) @6 D- ]- f3 @3 r3 A
不,ColdFusion不是專有技術。事實上,有不少其它產品(通過其它廠商)也是用CFML(或部分)來實現的。另外,ColdFusion充分利用了大量公開的技術標準,從數據庫的集成(JDBC ,ODBC)到用XML來實現配置文件到使用J2EE作為ColdFusion的底層核心。什麼是CFML?CFML的全稱是ColdFusion Markup Language,是一種特別適於用來編寫互聯網應用程序的語言。CFML看上去和傳統的編程語言並不太一樣,更接近HTML,因此和HTML一樣非常的易學易用。CFML可以在ColdFusion應用程序服務器上運行,也可以在其它一些應用程序服務器運行。 ' j& E3 @" |" O7 r5 i) c
1 B. a& R$ k. x經常看到有人在說CFML並不是一種真正的編程語言,它到底是不是呢? % a. a; q6 Q7 }! ^
% c$ c! q+ ^/ r
如果你能用CFML來編寫程序,那它當然就是一種編程語言。至於為什麼會有這種疑問,原因之一是CFML看上去和傳統的編程語言不太一樣(基於標籤而非基於腳本)。這裡有幾點我們需要記住: 1)CFML是模仿HTML而設計的,主要是因為HTML易學易用,並且這也是HTML是互聯網成功的原因之一。 2)CFML完全符合傳統編程所需的基本要求(如流程控制,條件判斷等),通過<CFSCRIPT> 和MX中新的SSAS(Server-side ActionScript)也可以實現腳本編程。 3)CFML是一種功能強大的編程語言,包括了100多個標籤和200多個函數,能夠滿足常用的編程需求以及一些不常用的需求如:和LDAP交互,處理XML,支持COM和CORBA,圖表生成和全文搜索等。 4)比較有諷刺意味的是,在過去的5年裡,CFML由於是基於標籤的語言,所以常被說為不是一種真正的編程語言,但現在在ASP.NET中也能看到這種風格,在JSP中實際上也是在Java代碼中嵌入了標籤,更別提XML,完全是基於標籤的。由此可見,CFML走的這條路是對的。
4 y8 c/ J/ O1 H
- \) _+ }( @5 N$ H5 w* ?6 S$ F3 O什麼是.CFM 和.CFC? ) X& Y4 w; h2 d3 O: X
( M6 U' U8 v, x* Y( \' |CFML代碼常被保存為以.CFM 或.CFC 為擴展名的文件中。.CFM 是ColdFusion的標準擴展名,它可以是普通的文本文件,由其它文件所調用的文件或是自定義標籤文件。.CFC 是ColdFusion的組件文件(可以被重複調用的ColdFusion對像)
7 J5 `( q) G5 D k) o6 U$ s0 `: c
* d/ l9 U+ ^+ Z, p; Z8 [ColdFusion是不是只是用來實現低端或入門級解決方案的?
1 i, k+ `2 R7 D: q( B: U$ K5 _4 T K- ?; B
當然不是。ColdFusion只是一種玩具,能用這種玩具做什麼完全取決於你的能力。對於一些初學者來說,Coldfusion是一種簡單的技術,用ColdFusion來開發一些簡單的產品和入門級解決方案也的確非常容易。但這並不是說ColdFusion就只是用來實現低端或入門級解決方案的。不像其它的一些學起來非常容易的技術只能用來實現簡單有限的功能,ColdFusion可以用來開發功能異常強大的解決方案。除了一些低端,入門級的解決方案,還有大量高端,至關重要的解決方案都是用ColdFusion來開發的。
0 h) l, K; N' ~& E1 ]* t' a
, `/ }3 U i. ?/ Y9 i* E0 ?ColdFusion是不是會讓開發者養成不正規的編程習慣。# x x# B* h) ]% R
' ^9 n& }, \; R. |3 J0 j) x( j當然不,ColdFusion提供了所有必須的要素用以編寫伸縮性強,結構性好,易於管理和維護的代碼。ColdFusion並不強制你使用某種開發習慣或邏輯方法,ColdFusion最初的設計初衷就是要讓開發者能通過一個簡單的語言來高效的實現所需的功能。當然有很多開發者往往是在有一個清楚的想法之前就開始動手寫代碼了,然後在一點一點的完善他的想法。實際上也並不是所有的程序的開發都需要嚴格遵守並採用MVC設計模式。當然ColdFusion完全支持MVC設計模式(通過ColdFusion組件)並且也因該盡可能的使用。換句話說,ColdFusion不會讓你養成不正規的編程習慣並在以後的開發過程中感覺力不從心,不管你處於那種開發水平,ColdFusion總是能滿足你的要求並且幫你一點一點的進步。 . q- j7 K2 E" r2 V
' e1 W. ]' V8 U" q我沒有任何編程經驗,ColdFusion是不是也適合我?
2 a5 @! ], u& S4 \: `, y6 A, h+ }- F& U2 j& Q
絕對適合,當然你最好有HTML和SQL的基礎知識,而且如果沒有的話,用Dreamweaver MX也能完成一些開發。不像其它的一些編程語言,需要通過幾周或幾個月的學習,在學習ColdFusion幾個小時以後你就能完成簡單的開發了。# j/ x1 Y- d$ w/ D9 w( ]* ^
3 C6 _: Z! H# `7 U% s我是一個有經驗的 C 或/和 Java程序員,我有沒有必要使用ColdFusion呢?# v" A( I5 S/ I+ h% [" r
) C+ W2 n7 p, Z Y$ v0 q$ jC 和 Java 是功能非常強大的低級編程語言,非常適合編寫需極強處理能力的後台進程。但卻非常不適合用它們來生成HTML給瀏覽器或處理HTML中的表單。在這方面它們沒有什麼優勢。事實上一個比較好的方案是把ColdFusion和他們結合在一起。讓ColdFusion來處理表現層,而用C 或 Java 來處理後台。
$ r6 M E5 {2 [' a! o/ e8 z$ l* @4 c, x: ~! T
我是一名Flash開發人員,需不需要用到ColdFusion?
6 N, z' Z' m- i, `7 L2 y d: Y& ~0 c, d/ Z* \
作為一名Flash開發人員,你一定了解開發能給用戶帶來豐富使用體驗,極具交互性的互聯網應用程序的重要性。Flash常被用來製作動畫,簡介,廣告和一些特殊效果等等,但Flash還能用來實現更多的應用。Flash非常適合用來充當基於互聯網應用程序的前台界面,而ColdFusion正好非常適合用來幫Flash處理後台任務。從Macromedia推出FlashMX和ColdFusionMX來,兩者之間的結合應用就變得非常簡單和高效 - Flash作為客戶而ColdFusion作為服務器。
, V& o+ t( z$ G. J& h) y: d( _5 j+ P+ Y- |! Z
我們公司的技術選型是定位在J2EE平台上的,是不是就不能用ColdFusion了呢?
5 }5 d) |- K8 i
- N& j/ @# r, k正好相反,你們公司選擇的是一個非常有戰略意義的方案來建立你們的信息平台,這種方案可以讓你用到一些功能強大的技術,也是現在越來越被看好的方案。J2EE(Java平台)提供了一個能建立穩定,健壯極具伸縮性的應用程序的結構體系。但是它卻需要更高的成本(不僅僅是軟件本身的成本)J2EE平台的開發是非常複雜的,超過了大多數公司的技術人員的能力。而且就是對那些經驗豐富的Java程序員來說,也不是所有的東西都需要用Java來實現。而ColdFusion MX可以運行在J2EE平台的頂端,利用J2EE所帶來的強大結構和原有的投資,同時使得不懂Java的人也能利用它。或換句話來說,通過這種方式,ColdFusion MX 能讓不懂Java的人利用Java的強大處理能力同時有能完成更多的應用開發。所以選擇J2EE的並不意味放棄ColdFusion,對你來說反而是一種明智的選擇 - 你已經花了大量的成本,再多加一點ColdFusion的成本,你就能使你的信息平台實現更多的功能 ColdFusionMX的底層是基於Java技術的,1 L- e* h! d5 j! i6 k9 U3 O
! d/ I7 X2 d' ~8 q那現在或將來在微軟的Windows平台上會有什麼問題嗎?
5 Q7 n0 X- }+ E+ D5 r' q% e3 ?( N: i- e7 j
大多數的ColdFusion都是安裝在微軟的Windows平台上的,並使用一些微軟的後台產品(如SQL服務器)。所以無論如何對微軟的Windows平台的支持都是不會被放棄的,而且隨著ColdFusion MX對.NET的結合,這種支持會越來越被重視。同時,ColdFusion還能在大量非微軟平台上運行,如:Linux, Solaris, 和 HP-UX。 也能使用各種各樣的數據庫,如:Oracle, DB2 和 mySQL - 所以ColdFusion是業界最靈活的產品。對任何一項技術來說,活躍的用戶討論群都是成功的關鍵之一,ColdFusion有沒有類似的用戶社區?ColdFusion用戶一直以來都是非常具有社區性的,而且ColdFusion的成長和發展方向很大程度上也都是由ColdFusion用戶群來決定的。有數不清的討論組,論壇,出版物和用戶組和活動(包括有Macromedia組織的活動和非Macromedia組織的活動)。
" x/ {8 j3 U+ w& G3 \( w1 c- S0 W7 u
Macromedia會不會專心致力於ColdFusion的發展?9 e7 {6 ^9 C3 T! c$ T' V
( c" g. ?' F; m) n0 C7 x0 p一定會的。實際上,最新版本的ColdFusion(第一個完全由Macromedia開發的版本)是一個ColdFusion史上最大的開發小組所完成的,投入了大量的人力和物力。這一點就表明了Macromedia對ColdFusion和ColdFusion用戶的承諾。 |
|