來自.net的用戶最常見的問題是:“既然.Net已經(jīng)有了對socket的支持,為什么我還要使用Indy?”。這是一個(gè)非常值得一問的問題,而且有一個(gè)簡單卻有不是很顯而易見的答案。
更多的協(xié)議
Indy比起其他庫來實(shí)現(xiàn)了更多的協(xié)議。實(shí)現(xiàn)了多余120種協(xié)議和互聯(lián)網(wǎng)標(biāo)準(zhǔn)。要查看Indy與.Net框架實(shí)現(xiàn)了的協(xié)議的對比,參見feature matrix。
健壯性
每個(gè)Indy所支持的協(xié)議都是健壯的,對每個(gè)協(xié)議都具有完備的支持。例如,就SMTP來說支持幾乎你可以想到的諸如MIME,Base65,BinHex,QP,XXE以及UUE等等所有編碼類型。FTP內(nèi)建了幾乎所有已知文件列表格式的file parser。有了Indy,要給已存在的協(xié)議添加額外支持的需要是罕見的。
易于使用
因?yàn)樗慕涌陬愋妥裱氖亲枞P停琁ndy是非常易于使用的。再也沒有機(jī)遇事件的狀態(tài)機(jī)需要管理了。每件事情按照順序發(fā)生,就像訪問文件那樣。
Indy支持RAD
注意:這個(gè)特性目前還不能用于Visual Studio.net因?yàn)閂isual Studio需要比起Delphi來說多得多的工作來支持窗體設(shè)計(jì)器的集成。這個(gè)特性位于我們的to do列表之上,但是目前還不可用。在將來的發(fā)布版中期待它的出現(xiàn)吧!
Indy的類可以在運(yùn)行時(shí)很容易的構(gòu)建使用,而且許多用戶喜歡這樣來使用。然而,Indy組件可以被可視化的創(chuàng)建,托放到窗體和自定義類上。這種方法讓交互和配置屬性與事件變得非常容易。自定義的服務(wù)器甚至可以這樣通過可視化地構(gòu)建command handler的方法來建立。
Indy是免費(fèi)的
使用Indy或部署使用了Indy的程序是完全不需要任何費(fèi)用的。
Indy是開放源代碼的
Indy開發(fā)者是一大群專注且活躍的人們。Indy事實(shí)上包含好幾個(gè)開發(fā)團(tuán)隊(duì),但是主開發(fā)團(tuán)隊(duì)被稱作Indy Pit Crew。Indy Pit Crew中有許多網(wǎng)絡(luò)編程和協(xié)議方面的著名且在業(yè)內(nèi)廣受尊敬專家。
在用戶社群的幫助下,Indy Pit Crew不僅能夠快速的修正錯(cuò)誤,還能夠把Indy演進(jìn)為規(guī)模更大且更優(yōu)良的東西。
支持
與Indy是開放源代碼的同時(shí),使用Indy還能選擇商業(yè)的支持。Atozed Software同時(shí)提供商業(yè)的支持以及Indy方面的咨詢服務(wù)。通過它的Indy Experts Support PRogram,你可以獲得優(yōu)先的支持。只要事先購買點(diǎn)數(shù)(以30歐元購買40點(diǎn)起步),然后在每次使用時(shí)從你預(yù)付的點(diǎn)數(shù)中扣除。Indy Experts還是Indy Plus的一部分。
除了商業(yè)支持,Indy還有免費(fèi)的社群互助支持,得到來自活躍的用戶社群和Indy開發(fā)團(tuán)隊(duì)的幫助。
源代碼
Indy以附帶完整源代碼的形式發(fā)布。它不但用Delphi寫成,而且這份完整的源代碼還使得你可以使用Delphi或者DebugCLR(這包含在Visual Studio之中,而且可以用于調(diào)試Delphi代碼)來進(jìn)行調(diào)試。再也不用猜測內(nèi)部發(fā)生了什么,或者嘗試著琢磨為什么事情不如你所愿。完整的源代碼,完整的支持,完整的力量。
經(jīng)過驗(yàn)證的
Indy是經(jīng)過驗(yàn)證的——Indy已經(jīng)有10年歷史了而且在數(shù)以百萬計(jì)的由幾十幾百人開發(fā)的軟件的安裝拷貝中使用著。Indy在小型的商用程序中,福布斯的500強(qiáng)中,政府部門中以及更多的場合中使用。可能你已經(jīng)用過了包含Indy的程序,而你甚至都沒有意識(shí)到它的存在。
靈活性
Indy的每一層都是可插拔的,包括RFC的應(yīng)答,加密,身份驗(yàn)證,編碼等等。通過實(shí)現(xiàn)所需的功能然后簡單的把它注冊到Indy之中就能添加新的功能。
可移植性
Indy更好移植,既能在語言之間也能在平臺(tái)之間。語言:
C#
C++
Delphi
JScript
Visual Basic
平臺(tái):
linux
.Net Framework
Win32
Indy是單一源碼的;單一源碼的基礎(chǔ)被用來支持所有這些平臺(tái)和語言。
About the Author
Chad Z. Hower, a.k.a. "Kudzu" works for Atozed Software, and is the original author of both Internet Direct (Indy) and IntraWeb. Both Indy and IntraWeb have been licensed by Borland for inclusion in Delphi, Kylix and C++ Builder. Chad's background includes work in the employment, security, chemical, energy, trading, telecommunications, wireless, and insurance industries. Chad's area of specialty is TCP/IP networking and programming, inter-process communication, distributed computing, Internet protocols, and object-oriented programming. When not programming, he likes to cycle, kayak, hike, downhill ski, drive, and do just about anything outdoors. Chad, whose motto is "Programming is an art form that fights back", also posts free articles, programs, utilities and other oddities at Kudzu World. Chad is an ex-patriate who spends his summers in St. Petersburg, Russia, winters in Limassol, Cyprus, and travels extensively year round. Contact Kudzu.