『壹』 三層架構詳細介紹
1、JDK (Java Development Kit)Java開發工具集
從初學者角度來看,採用JDK開發Java程序能夠很快理解程序中各部分代碼之間的關系,
有利於理解Java面向對象的設計思想。JDK的另一個顯著特點是隨著Java (J2EE、J2SE
以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java
應用開發非常困難,不能進行復雜的Java軟體開發,也不利於團體協同開發。
2、Java Workshop
3、NetBeans 與Sun Java Studio 5
NetBeans是開放源碼的Java集成開發環境(IDE),適用於各種客戶機和Web應用。
Sun Java Studio是Sun公司最新發布的商用全功能Java IDE,支持Solaris、Linux和Win
dows平台,適於創建和部署2層Java Web應用和n層J2EE應用的企業開發人員使用。
NetBeans是業界第一款支持創新型Java開發的開放源碼IDE。開發人員可以利用業界
強大的開發工具來構建桌面、Web或移動應用。同時,通過NetBeans和開放的API的模塊
化結構,第三方能夠非常輕松地擴展或集成NetBeans平台。
NetBeans3.5.1主要針對一般Java軟體的開發者,而Java One Studio5則主要針對企
業做網路服務等應用的開發者。Sun不久還將推出Project Rave,其目標是幫助企業的開
發者進行軟體開發。NetBeans 3.5.1版本與其他開發工具相比,最大區別在於不僅能夠
開發各種台式機上的應用,而且可以用來開發網路服務方面的應用,可以開發基於J2ME
的移動設備上的應用等。在NetBeans 3.5.1基礎上,Sun開發出了Java
One Studio5,為用戶提供了一個更加先進的企業編程環境。在新的Java
One Studio5里有一個應用框架,開發者可以利用這些模塊快速開發自己在網路服務方面
的各種應用程序。
4、Borland 的JBuilder
Jbuilder進入了Java集成開發環境的王國,它滿足很多方面的應用,尤其是對於服
務器方以及EJB開發者們來說。下面簡單介紹一下Jbuilder的特點:
1)Jbuilder支持最新的Java技術,包括Applets、JSP/Servlets、JavaBean以及EJB
(Enterprise JavaBeans)的應用。
2)用戶可以自動地生成基於後端資料庫表的EJB Java類,Jbuilder同時還簡化了EJ
B的自動部署功能.此外它還支持CORBA,相應的向導程序有助於用戶全面地管理IDL(分布
應用程序所必需的介面定義語言Interface Definition Language)和控制遠程對象。
3)Jbuilder支持各種應用伺服器。Jbuilder與Inprise Application Server緊密集
成,同時支持WebLogic Server,支持EJB 1.1和EJB 2.0,可以快速開發J2EE的電子商務
應用。
4)Jbuilder能用Servlet和JSP開發和調試動態Web 應用。
5)利用Jbuilder可創建(沒有專有代碼和標記)純Java2應用。由於Jbuilder是用純J
ava語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的Java標准。
6)Jbuilder擁有專業化的圖形調試介面,支持遠程調試和多線程調試,調試器支持
各種JDK版本,包括J2ME/J2SE/J2EE。
JBuilder環境開發程序方便,它是純的Java 開發環境,適合企業的J2EE開發;缺點
是往往一開始人們難於把握整個程序各部分之間的關系,對機器的硬體要求較高,比較
吃內存,這時運行速度顯得較慢。
5、Oracle 的JDeveloper
Oracle9i JDeveloper(定為9.0版,最新為10g)為構建具有J2EE功能,XML和Web
services的復雜的,多層的Java應用程序提供了一個完全集成的開發環境。它為運用Ora
cle9i資料庫和應用伺服器的開發人員提供特殊的功能和增強性能,除此以外,它也有資
格成為用於多種用途Java開發的一個強大的工具。
Oracle9i JDeveloper的主要特點如下:
① 具有UML(Unified Modeling Language,一體化建模語言)建模功能。可以將業
務對象及e-business應用模型化。
② 配備有高速Java調試器(Debuger)、內置Profiling工具、提高代碼質量的工具
「CodeCoach」等。
③ 支持SOAP(Simple Object Access Protocol)「簡單對象訪問協議」、UDDI(U
niversal Description, Discovery and Integration)「統一描述、發現和集成協議」
、WSDL(Web Services Description Language)「WEB服務描述語言」等Web服務標准。
JDeveloper 不僅僅是很好的 Java 編程工具,而且是 Oracle Web 服務的延伸,支
持 Apache SOAP,以及 9iAS ,可擴充的環境和 XML 和 WSDL 語言緊密相關。Oracle9i
Jdeveloper完全利用Java編寫,能夠與以前的Oracle伺服器軟體以及其他廠商支持J2EE
的應用伺服器產品相兼容,而且在設計時著重針對Oracle9i,能夠無縫化跨平台之間的
應用開發,提供了業界第一個完整的、集成了J2EE和XML的開發環境,允許開發者快速開
發可以通過Web、無線設備及語音界面訪問的Web服務和交易應用,以往只能通過將傳統J
ava編程技巧與最新模塊化方式結合到一個單一集成的開發環境中之後才能完成J2EE應用
開發生命周期管理的事實,從根本上得到改變。缺點就是對於初學者來說,較復雜,也
比較難。
6、IBM的Visual Age for Java
Visual Age for Java是一個非常成熟的開發工具,它的特性以於IT開發者和業余的
Java編程人員來說都是非常用有用的。它提供對可視化編程的廣泛支持,支持利用CICS
連接遺傳大型機應用,支持EJB的開發應用,支持與Websphere的集成開發,方便的bean
創建和良好的快速應用開發(RAD)支持和無文件式的文件處理。
IBM為建設Web站點所推出的WebSphere Studio Advanced Edition及其包含的Visual
Age for Java Professional Edition軟體已全面轉向以Java為中心,這樣,Java開發人
員對WebSphere全套工具的感覺或許會好了許多。Studio所提供的工具有:Web站點管理
、快速開發 JDBC頁向導程序、HTML編輯器和HTML語法檢查等。這確實是個不錯的HTML站
點頁面編輯環境。Studio和VisualAge集成度很高,菜單中提供了在兩種軟體包之間快速
移動代碼的選項。這就讓使用Studio的Web頁面設計人員和使用VisualAge的Java程序員
可以相互交換文件、協同工作。
Visual Age for Java支持團隊開發,內置的代碼庫可以自動地根據用戶做出改動而
修改程序代碼,這樣就可以很方便地將目前代碼和早期版本做出比較。與Visual Age緊
密結合的Websphere Studio本身並不提供源代碼和版本管理的支持,它只是包含了一個
內置文件鎖定系統,當編輯項目的時候可以防止其他人對這些文件的錯誤修改,軟體還支
持諸如Microsoft Visual SourceSafe這樣的第三方源代碼控制系統。Visual Age for
Java完全面向對象的程序設計思想使得開發程序非常快速、高效。你可以不編寫任何代
碼就可以設計出一個典型的應用程序框架。Visual Age for Java作為IBM電子商務解決
方案其中產品之一,可以無縫地與其他IBM產品,如WebSphere、DB2融合, 迅速完成從設
計、開發到部署應用的整個過程。
Visual Age for Java獨特的管理文件方式使其集成外部工具非常困難,你無法讓Vis
ual Age for Java與其他工具一起聯合開發應用。
7、BEA 的 WebLogic Workshop
BEA WebLogic Workshop是一個統一、簡化、可擴展的開發環境,使所有的開發人員
都能在 BEA WebLogic Enterprise Platform之上構建基於標準的企業級應用,從而提高
了開發部門的生產力水平,加快了價值的實現。
WebLogic Workshop除了提供便捷的Web服務之外,它能夠用於創建更多種類的應用
。作為整個BEA WebLogic Platform的開發環境。不管是創建門戶應用、編寫工作流、還
是創建Web應用,Workshop 8.1都可以幫助開發人員更快更好地完成。
WebLogic Workshop的主要特點如下:
① 使 J2EE 開發切實可行,提高開發效率
BEA WebLogic Workshop 使開發人員遠離 J2EE 內在的復雜性,集中精力專注業務
邏輯,無須操心單調乏味的基礎結構代碼。這種創新意味著,已被企業驗證的 J2EE 的
強大功能,最終被大多數不熟悉 Java 和 J2EE 的應用開發人員所掌握,從而使 IT 部
門的工作效率提高一個數量級。
可視化設計器以及直觀的概念,如事件、屬性和控制項等,實現了基於事件的開發。W
orkshop 簡化的程序設計模型,使開發人員不必掌握復雜的 J2EE API 和面向對象的程
序設計原理。所有開發人員,包括 J2EE 專家和具有可視化和過程化語言技能的應用開
發人員在內,都可以共同工作在 BEA WebLogic Enterprise Platform 之上。Workshop
的可視化開發環境,創建帶有代碼注釋的標准 Java 文件,用來說明由運行時框架實施
的企業級需求。J2EE 和其他高級開發人員,藉助功能強大的代碼編輯功能,可以訪問
Java 源代碼,從而彌補了可視化設計器的不足。
② 構建企業級應用
通過在可伸縮、安全可靠的企業級架構上實施各種應用,BEA WebLogic
Workshop 大大降低了開發風險。而且,所有應用的創建都使用標準的 J2EE 組件,既保
護了您的技術投資,又保持了最大的靈活性。
BEA WebLogic Workshop 運行框架,是統一整個架構的匯聚層,使單一、簡化的程序設
計模型擴展到所有的 BEA WebLogic Enterprise Platform 應用類型。通過解釋設計時
創建的注釋代碼,運行時框架可以實現必要的 J2EE 組件,並且提取出與 J2EE 應用開
發有關的所有底層細節。
③ 降低 IT 復雜性
BEA WebLogic Workshop 提供各種 Java 控制項,使得與 IT 資源的連接更輕而易舉
。另外,在構建任何 BEA WebLogic Platform 的應用中,Java 控制項不僅可擴展而且完
全相同。這種強大、有效的方法能夠:降低 IT 技術的復雜性,優化信息的可用性,推
動包含"最佳業務方案"的可重用服務的開發,使開發人員能以更低的成本、更短的時間
實現更大的產出。
利用 BEA WebLogic Workshop,任何開發人員都能以最大的生產效率,構建各種
Web 服務、Web 應用、門戶和集成項目。BEA WebLogic Workshop是BEA的產品戰略核心
,它幫助客戶接觸和利用面向服務架構(SOA)的強大功能。BEA Weblogic Workshop
8.1極大簡化了當前實際企業集成環境中企業級應用和服務的構建,並成為全面支持關鍵
企業級應用(如非同步、真正松耦合和粗粒度消息傳送等)的自然選擇。它的缺點就是過於
復雜,對於初學者來說,理解起來較為困難。
8、WebGain 的Visual Cafe for Java
Visual Cafe 是只能在Symantec公司的Java虛擬機、Netscape公司的Java虛擬機和M
icrosoft虛擬機上工作的調試器。這對於開發者來講是一個重要的特性,因為用戶開發的
Java代碼中的許多軟體bug就可能中會在某種特定的虛擬機上起作用。
在修改後進行編譯基繼續進行調試時,Visual Cafe會自動將文件存檔,使用Visual
Cafe創建的原生應用具有許多特點。除了明顯的速度提高之外,Symantec使類庫的二進制
方式比正常的JDK小Visual Cafe為所指定的關系自動生成或更新必要的Java代碼。利用V
isual Cafe,用戶可以從一個標准對象資料庫中集合完整的Java應用程序和Applet,而
不必再編寫源代碼。Visual Cafe還提供了一個擴充的源代碼開發工具集。
Visual Cafe綜合了Java軟體的可視化源程序開發工具,它允許開發人員在可視化視
圖和源視圖之間進行有效地轉換。在可視化視圖中進行的修改立即反映在源代碼中。對
源代碼的改變自動更新可視化視圖。
Visual Cafe具有許多源文件方面的特性,如全局檢索和替換。絕大多數Java開發工
具的文獻的問題在於簡單地挨個介紹開發工具的每部分組件,但用戶在開應用時還需要
一個面向任務的手冊,利用這個手冊你可以不必知道工具每一部分的特定功能就可以開
始創建自己的應用。Visual Cafe提供了非常全面的用戶指南,它對最開始的安裝到創建
第一個Java應用和Applet都提供了全面的幫助,Visual Cafe將自動生成所指明關系的必
要Java代碼。Visual Cafe可以在Windows 95和Windows NT平台下運行,Symantec公司為
Java開發工作提供一個在Macintosh操作系統下可以運行的RAD工具。Visual Cafe編譯器
速度很快,在國際化支持方面比較突出;缺點就是對於初學者來說,較復雜,也比較難
。
9、Macromedia的JRUN
Macromedia公司的JRun是一個具有最廣闊適用性的Java引擎,用於開發及實施由Jav
a Servlets和JavaServer Pages編寫的伺服器端Java應用。JRun是第一個完全支持JSP
1.0 規格書的商業化產品,全球有超過80,000名開發人員使用JRun在他們已有的Web服務
器上添加伺服器端Java的功能。其中Web伺服器包括了Microsoft IIS,Netscape
Enterprise Server,Apache等。
JRun是開發實施伺服器端Java的先進引擎。如果我們希望在我們的Web應用中添加服
務器端Java功能,那麼JRun將成為我們的正確選擇。
JRun目前有3個版本,它是第一個支持Java Server Pages(JSP)規格書1.0的商業化
產品。JSP是一種強大的伺服器端技術,它是用於創建復雜Web應用的一整套快速應用開
發系統。JRun可以使我們開始開發並測試Java應用。它最多接受5個並發的連接並且包括
全部Java Servlet API,支持JavaServer Pages(JSP),支持所有主要的Web
servers和計算機平台。 JRun Pro能夠在生產環境下承受大訪問量的負載,幫助我們實
施應用、服務或Web站點(包括內聯網)。JRun Pro 支持無限量並發式連接運行多個Jav
a虛擬機,包括多個並發的Java虛擬機(JVM)。提供一個遠程管理applet以及一個遠程
可再分布式的管理applet。JRun Pro Unlimited包括了所有JRun Pro的功能,除次以外
,還可以運行無限量的,並發的JVM。
JRun依靠其內置的JRun Web Server可以單獨運行。使用伺服器端Java,用戶可以開
發出復雜的商業應用系統。最重要的一點是,由於servlets的平台獨立性,以及更加簡
單的開發、更快速的實施、更經濟的維護成本,它是CGI(Common Gateway
Interface)或Perl scripts的極佳的替代產品。缺點就是對於初學者來說,較復雜,也
比較難。
10、JCreator
JCreator 是一個Java程序開發工具,也是一個Java集成開發環境(IDE)。無論你
是要開發Java應用程序或者網頁上的Applet元件都難不倒它。在功能上與Sun公司所公布
的JDK等文字模式開發工具相較之下來得容易,還允許使用者自訂義操作窗口界面及無限
Undo/Redo等功能。
JCreator為用戶提供了相當強大的功能,例如項目管理功能,項目模板功能,可個
性化設置語法高亮屬性、行數、類瀏覽器、標簽文檔、多功能編繹器,向導功能以及完
全可自定義的用戶界面。通過JCreator,我們不用激活主文檔而直接編繹或運行我們的J
AVA程序。
JCreator能自動找到包含主函數的文件或包含Applet的Html文件,然後它會運行適
當的工具。在JCreator中,我們可以通過一個批處理同時編繹多個項目。JCreator的設
計接近Windows界面風格,用戶對它的界面比較熟悉。其最大特點是與我們機器中所裝的
JDK完美結合,是其它任何一款IDE所不能比擬的。它是一種初學者很容易上手的java開
發工具,缺點是只能進行簡單的程序開發,不能進行企業J2EE的開發應用。
11、Microsoft VJ++
Visual J++ 是Microsoft 公司推出的可視化的Java 語言集成開發環境(IDE),為Ja
va 編程人員提供了一個新的開發環境,是一個相當出色的開發工具。無論集成性、編譯
速度、調試功能、還是易學易用性,都體現了Microsoft 的一慣風格。Visual J++ 具有
下面的特點:
1)Visual J++ 把Java 虛擬機(JVM)作為獨立的操作系統組件放入Windows,使之從
瀏覽器中獨立出來。
2)Microsoft 的應用基本類庫(AFC,Application Foundation Class Library)對SU
N 公司的JDK 作了擴展,使應用基本類庫更加適合在Windows 下使用。
3) Visual J++ 的調試器支持動態調試,包括單步執行、設置斷點、觀察變數數值
等。
4) Visual J++ 提供了一些程序向導(Wizards)和生成器(Builders),它們可以方
便地幫助用戶快速地生成Java 程序,幫助你在自己的工程中創建和修改文件。
5) Visual J++ 界面友好,其代碼編輯器具有智能感知、聯機編譯等功能,使程序
編寫十分方便。Visual J++ 中建立了Java 的WFC,這一新的應用程序框架能夠直接訪問
Windows 應用程序介面(API),使你能夠用Java 語言編寫完全意義上的Windows 應用程
序。
6)Visual J++ 中表單設計器的快速應用開發特性使用WFC 創建基於表單的應用程
序變得輕松、簡單。通過WFC 可以方便地使用ActiveX 數據對象(ADO,ActiveX Data
Objects)來檢索數據和執行簡單數據的綁定。通過在表單設計器中使用ActiveX 數據對
象,可以快速地在表單中訪問和顯示數據。
Visual J++能結合微軟的一貫的編程風格,很方便進行Java 的應用開發,但它的移
植性較差,不是純的Java 開發環境。
12、Eclipse
Eclipse是一種可擴展的開放源代碼IDE。2001年11月,IBM公司捐出價值4,000萬美
元的源代碼組建了Eclipse聯盟,並由該聯盟負責這種工具的後續開發。集成開發環境(I
DE)經常將其應用范圍限定在「開發、構建和調試」的周期之中。為了幫助集成開發環境
(IDE)克服目前的局限性,業界廠商合作創建了Eclipse平台。Eclipse允許在同一IDE中
集成來自不同供應商的工具,並實現了工具之間的互操作性,從而顯著改變了項目工作
流程,使開發者可以專注在實際的嵌入式目標上。
Eclipse框架的這種靈活性來源於其擴展點。它們是在XML中定義的已知介面,並充
當插件的耦合點。擴展點的范圍包括從用在常規表述過濾器中的簡單字元串,到一個Jav
a類的描述。任何Eclipse插件定義的擴展點都能夠被其它插件使用,反之,任何Eclipse
插件也可以遵從其它插件定義的擴展點。除了解由擴展點定義的介面外,插件不知道它
們通過擴展點提供的服務將如何被使用。
利用Eclipse,我們可以將高級設計(也許是採用UML)與低級開發工具(如應用調試器
等)結合在一起。如果這些互相補充的獨立工具採用Eclipse擴展點彼此連接,那麼當我
們用調試器逐一檢查應用時,UML對話框可以突出顯示我們正在關注的器件。事實上,由
於Eclipse並不了解開發語言,所以無論Java語言調試器、C/C++調試器還是匯編調試器
都是有效的,並可以在相同的框架內同時瞄準不同的進程或節點。
Eclipse的最大特點是它能接受由Java開發者自己編寫的開放源代碼插件,這類似於
微軟公司的Visual Studio和Sun微系統公司的NetBeans平台。Eclipse為工具開發商提供
了更好的靈活性,使他們能更好地控制自己的軟體技術。Eclipse聯盟已經宣布將在2004
年中期發布其3.0版軟體。這是一款非常受歡迎的java開發工具,這國內的用戶越來越多
,實際上實用它java開發人員是最多的。缺點就是較復雜,對初學者來說,理解起來比
較困難。
13、Ant
Another Neat Tool(Ant)是一種基於Java的build工具。理論上來說,它有些類似於
(Unix)C中的make ,但沒有make的缺陷。因為Ant的原作者在多種(硬體)平台上開發軟
件時,無法忍受這些工具的限制和不便。類似於make的工具本質上是基於shell(語言)
的:他們計算依賴關系,然後執行命令(這些命令與你在命令行敲的命令沒太大區別)
。這就意味著你可以很容易地通過使用OS特有的或編寫新的(命令)程序擴展該工具;
然而,這也意味著你將自己限制在了特定的OS,或特定的OS類型上,如Unix。Ant就不同
了。與基於shell命令的擴展模式不同,Ant用Java的類來擴展。(用戶)不必編寫shell
命令,配置文件是基於XML的,通過調用target樹,就可執行各種task。每個task由實現
了一個實現了特定Task介面的對象來運行。
Ant支持一些可選task,一個可選task一般需要額外的庫才能工作。可選task與Ant
的內置task分開,單獨打包。這個可選包可以從你下載Ant的同一個地方下載。ANT本身
就是這樣一個流程腳本引擎,用於自動化調用程序完成項目的編譯,打包,測試等。除
了基於JAVA是平台無關的外,腳本的格式是基於XML的,比make腳本來說還要好維護一些
。Ant是Apache提供給Java開發人員的構建工具,它可以在Windows OS和Unix OS下運行
,它不僅開放源碼並且還是一個非常好用的工具。Ant是Apache Jakarta中一個很好用的
Java開發工具,Ant配置文件採用XML文檔編寫,所以Java程序員對其語法相當熟悉,Ant
是專用於Java項目平台,能夠用純Java來開發,它能夠運行於Java安裝的平台,即體現
了它的跨平台功能。它的缺點顯示執行結果只能是DOS字元界面,不能進行復雜的java程
序開發。
14、IntelliJ
Intellij IDEA是一款綜合的Java 編程環境,被許多開發人員和行業專家譽為市場
上最好的IDE。它提供了一系列最實用的的工具組合:智能編碼輔助和自動控制,支持J2
EE,Ant,JUnit和CVS集成,非平行的編碼檢查和創新的GUI設計器。IDEA把Java開發人
員從一些耗時的常規工作中解放出來,顯著地提高了開發效率。具有運行更快速,生成
更好的代碼;持續的重新設計和日常編碼變得更加簡易,與其它工具的完美集成;很高
的性價比等特點。在4.0版本中支持Generics,BEA WebLogic集成,改良的CVS集成以及G
UI設計器。
IntelliJ IDEA能盡可能地促進程序員的編程速度。它包括了很多輔助的功能,並且
與Java結合得相當好。不同的工具窗口圍繞在主編程窗口周圍,當滑鼠點到時即可打開
,無用時也可輕松關閉,使用戶得到了最大化的有效屏幕范圍。以技術為導向的IDEA集
成了調試器,支持本地和遠程的調試,即使我們需要修改一些設置上的東西使我們的工
作順利進展。另外,它還提供了通常的監視,分步調試以及手動設置斷點功能,在這種
斷點模式下,我們可以自動地在斷點之外設置現場訪問,甚至可以瀏覽不同的變數的值
。IDE支持多重的JVM設置,幾個編譯程序和Ant建造系統,並且,它使得設置多重的自定
義的類途徑變得簡單。
IntelliJ Idea是一個相對較新的Java IDE。它是Java開發環境中最為有用的一個。
高度優化的IntelleJ Idea使普通任務變得相當容易,Idea支持很多整合功能,更重要的
使它們設計的好容易使用。Idea支持XML中的代碼實現,Idea同時還會校正XML,Idea支
持JSP的結構。作用於普通Java代碼的眾多功能同樣適用於JSP(比如整合功能),同時
支持JSP調試;支持EJB,盡管它不包括對個別應用伺服器的特殊支持。Idea支持Ant建立
工具,不僅是運行目標它還支持編譯與運行程序前後運行目標,另外也支持綁定鍵盤快
捷鍵。在編輯一個Ant建立XML文件時,Idea還對組成Ant工程的XML部分提供支持。Intel
liJ IDEA 被稱為是最好的JAVA IDE開發平台,這套軟體就是以其聰明的即時分析和方便
的 refactoring 功能深獲大家所喜愛。缺點是較復雜,對初學者來說,理解起來比較困
難。
小結
現在常用的Java項目開發環境有:JBuilder、VisualAge for Java、Forte for
Java, Visual Cafe、Eclipse、NetBeans IDE、JCreator +J2SDK、jdk+記事本、EditPl
us+ J2SDK等等。一般開發J2EE項目時都需要安裝各公司的應用伺服器(中間件)和相應
的開發工具,在使用這些開發工具之前,我們最好能熟知這些軟體的優點和缺點,以便
根據實際情況選擇應用。編程工具只是工具,為了方便人們工作而開發的,各有特點,
因此,選工具主要的依據自己將要從事的領域是什麼,而不是盲目的認為那種工具好,
那種工具不好。最後希望大家都能找到自己合適的java 開發工具
『貳』 怎麼使用三層架構
學ASP.NET都知道它的最經典的架構是三層架構,也是目前應用得最廣泛的一種架構。以前說起三層架構大家都知道MVC架構,這是html開發中用得比較多的,現在AJAX主要就是用這種架構。大家ASP.NET的三層是指數據訪問層,業務邏輯層和表示層,而且都知道數據訪問層是用來訪問數據的,業務邏輯層是用來處理一些系統的業務邏輯的,表示層就是把內容呈現出來給用戶,與用戶進行交互的。劃分三層的好處就是每一層都是獨立的,修改其中一層一般不會影響其他層的代碼,這樣就大大的方便了日後的維護和升級。它最大的缺點是架構和編碼都比較復雜,而且對性能的提高沒有任何幫助,反而還可能會降低執行效率。
有時候真的覺得「三層」編起來挺麻煩的,在ASP.NET 2.0里,訪問數據和顯示出來只要拖兩個控制項就可以了(AccessDataSource/SQLDatasource和GridView),幾分鍾一個頁面就出來了,而且還具備了修改中,刪除,分頁,排序等功能。而用三層架構就麻煩多了,先要寫數據訪問層的代碼,接著寫業務邏輯層的代碼(要調用數據層的方法),最後才是表示層,也就是頁面的設計,還有調用業務邏輯層的代碼讀取數據。(注意:表示層是絕對不會訪問數據層的內容,只能通過業務層。業務層在這里是連接它們的橋梁。所以說業務層是最重要的一層)既然這樣為什麼還要用三層呢?前面提到的一層架構的一個很大的問題就是前台和後台代碼沒有很好的分開,不利於分工,第二,不利於日後的維護和升級。如果是個人主頁或者是一些一個人完成的小系統用一層還是挺方面的。如果是一些比較大的系統,特別是企業級的應用,就非用三層甚至n層不可了。一般三層就很夠了,再劃分更多隻會增加設計和編碼的難度。
那到底怎麼去分層呢?怎麼樣分層就符合三層架構原則呢?這是很多剛入門的人經常問的問題。我翻了很多本案例書,可惜很多都是一層或者是兩層架構的,絕少三層的。後來研究了petshop4.0和下了一些國外的資料來看才開始對如何分層有點了解。我總結了一下主要有以下三種分層方式:
一:數據層不包含任何代碼,只有資料庫,還有相關的存儲過程。
這種模式下,數據層看起來就變得很簡單了。只包含你建立的資料庫,和一些存儲過程(注意是存儲過程)。其實這些存儲過程的建立也是相當復雜的(我以後會專門寫一篇這方面的文章),因為它們可以完成除數據訪問外的其他一些很強大的功能,如分頁,實現搜索演算法等。數據訪問的邏輯就都放在業務層,當然業務層還包含其他一些邏輯代碼。我們來看一個示例,假設資料庫里有一個表BOOKS(書),建立一個存儲過程GetAllBooks,用來讀取書的信息,這樣在業務層里編一個方法GetBookS()和一個公用資料庫訪問類,GetBooks()就通過資料庫訪問類打開連接,執行在存儲過程,返回數據(返回類型可以是DataTable,DataSet,DataReader或者實體類)。業務層單獨編譯成一個或者幾個DLL文件。接著就是表示層了,表示層通過調用GetBookS()返回數據綁定在相關的控制項里。務層的方法都是在表示層調用。一般來說book.aspx和book.aspx.cs都是表示層的內容。所有前台的設計,相關控制項,數據緩存都是屬於表示層。
二:數據層還包含所有公共數據訪問代碼。
這種模式和前一種差別不大,主要是把數據訪問代碼六到數據層。這樣可以很方面實現對多資料庫的支持。業務邏輯層直接調用數據層的相關訪問數據的代碼,完全不必了解底層是什麼資料庫。其他和前一種沒什麼分別。
三:所有數據讀取都放在數據層。
這種模式下像前面所述的GetBooks()方法都是放在數據層,在業務層再定義一個GetBookS()方法以供表示層調用。這種模式下業務層不但不必了解底層是什麼資料庫,而且連資料庫的結構都不必了解了。這可以說是最標準的三層架構了,在Microsoft的PetShop 4.0里就是用這種模式。
我是從「上海全鼎軟體學院」畢業的————————