動易SiteFactory新特性體驗之旅——基于ASP.NET2.0開發
動易CMS 2007新特性體驗之一:使用ASP.NET 2.0作為開發及運行環境
動易CMS 2007沒有使用ASP.NET 1.1而直接使用ASP.NET 2.0做為開發及運行環境,是因為2.0較之1.1無論在穩定性、安全性、性能以及功能上都有很明顯的改進,并且目前大部分的空間商已經支持.Net 2.0。動易CMS 2007基于ASP.NET2.0開發,繼承了ASP.NET 2.0的各種優點和特性,為網站的發展奠定了前沿的技術基礎。
那么,究竟什么是ASP.NET呢?ASP.NET又有些什么樣的優點和特性值得我們從已經非常成熟的ASP平臺轉入到ASP.NET平臺呢?
下面就讓我一一為大家講述。這些內容都是從網上找的,我只是整理了一下。已經了解的就不用看了。呵呵。不過如果你認真把這篇長長的文章看完,肯定會對ASP.NET有了一個較清晰的認識了。
一、什么是ASP.NET?
提到ASP.NET,就不得不首先搞清楚什么是ASP。ASP的全稱是Active Server Pages,即活動服務器頁面,為什么稱之為活動服務器頁面,這是因為以前的互聯網全部是由靜態的HTML頁面組成,如果需要更新你的網站內容,你不得不制作大量的HTML頁面。有了ASP以后,我們就能夠根據不同的用戶,在不同的時間向用戶顯示不同的內容。網站的內容更新也不再是一個乏味的重復過程,它開始變得簡單而有趣。也因此在國內掀起了一股學習ASP的熱潮。
但是由于ASP程序和網頁的HTML混合在一起,這就使得程序看上去相當的雜亂。在現在的網站設計過程中,通常是由程序開發人員做后臺的程序開發,前面有專業的美工設計頁面,這樣,在相互配合的過程中就會產生各種各樣的問題。同時,ASP頁面是有腳本語言解釋執行的,使得其速度受到影響。受到腳本語言自身條件的限制,我們在編寫ASP程序的時候不得不調用COM組件來完成一些功能。由于以上種種限制,微軟推出了ASP.NET。
ASP.NET不僅僅只是ASP 3的一個簡單升級,它更為我們提供了一個全新而強大的服務器控件結構。從外觀上看,ASP.NET和ASP是相近的,但是從本質上是完全不同的。ASP.NET幾乎全是基于組件和模塊化,每一個頁,對象,和HTML元素都是一個運行的組件對象。在開發語言上,ASP.NET拋棄了VBSCRIPT和JSCRIPT,而使用.NET Framework所支持的VB.NET,C#.NET等語言做為其開發語言,這些語言生成的網頁在后臺被轉換成了類并編譯成了一個DLL。由于ASP.NET是編譯執行的,所以它比ASP擁有了更高的效率。
ASP.NET 是一個統一的 Web 開發平臺,它提供開發人員創建企業級 Web 應用程序所需的服務。盡管 ASP.NET 的語法基本上與 ASP 兼容,但是它還提供了一個新的編程模型和基礎結構以提高應用程序的安全性、縮放性和穩定性。通過逐漸向現有的 ASP 應用程序增加 ASP.NET 功能,我們可以自由地使其增大。ASP.NET 是一個編譯的、基于 .NET 的環境;我們可以用任何 .NET 兼容的語言(包括 Microsoft Visual Basic.NET,Microsoft Visual C# 和 Microsoft JScript .NET)創作應用程序。另外,整個 Microsoft .NET Framework 可用于任何 ASP.NET 應用程序。開發人員可以很容易地從這些技術受益,這些技術包括管理的公共語言運行庫環境、類型安全、繼承等。
關于ASP.NET有許多新的特性,主要有以下幾點:
1、ASP.NET是預編譯的而不是解釋的。對于ASP.NET頁面即ASPX頁面是這樣的:第一次執行ASPX頁面時,頁面將首先被編譯成一種稱為IL(Intermediate Language)的偽代碼(pseudo-code),然后在執行時將IL代碼編譯成機器代碼,并且被載入到.NET運行程序的全局程序集緩存GAC中,這樣就為其他的托管應用程序的使用做好了準備,只有在程序的代碼發生了改變或者WEB服務器重新啟動時,ASPX頁面才需要重新編譯,這樣ASPX頁面除了第一次請求ASPX頁面時響應速度比較慢外,以后請求都比較快。
2、ASP.NET是基于控件驅動的。在ASP.NET中可以使用大多數的控件都不需要ASPX中嵌入很多的代碼,實際上只需要簡單地給控件加入幾個屬性,便可以輕松地實現服務器的功能,這此控件都被封裝好了,開發人員只需要簡單的代碼就可以使用控件了.
3、ASP.NET是真正的面向對象的語言,這是ASP.NET真正的最明顯的優點,ASPX頁面本身就是可重用的對象,只需要引用WEB應用程序的名字空間,其它的.NET應用程序就可以重用ASPX的頁面。
二、ASP.NET的優點如下:
1)可管理性: ASP.NET 使用基于文本的、分級的配置系統,簡化了將設置應用于服務器環境和 Web 應用程序的工作。因為配置信息是存儲為純文本的,因此可以在沒有本地管理工具的幫助下應用新的設置。配置文件的任何變化都可以自動檢測到并應用于應用程序。
2)安全: ASP.NET 為 Web 應用程序提供了默認的授權和身份驗證方案。開發人員可以根據應用程序的需要很容易地添加、刪除或替換這些方案。
3)易于部署: 通過簡單地將必要的文件復制到服務器上,ASP.NET 應用程序即可以部署到該服務器上。不需要重新啟動服務器,甚至在部署或替換運行的已編譯代碼時也不需要重新啟動。
4)增強的性能: ASP.NET 是運行在服務器上的已編譯代碼。與傳統的 Active Server Pages (ASP) 不同,ASP.NET 能利用早期綁定、實時 (JIT) 編譯、本機優化和全新的緩存服務來提高性能。
5)靈活的輸出緩存: 根據應用程序的需要,ASP.NET 可以緩存頁數據、頁的一部分或整個頁。緩存的項目可以依賴于緩存中的文件或其他項目,或者可以根據過期策略進行刷新。
6)國際化: ASP.NET 在內部使用 Unicode 以表示請求和響應數據。可以為每臺計算機、每個目錄和每頁配置國際化設置。
7)移動設備支持: ASP.NET 支持任何設備上的任何瀏覽器。開發人員使用與用于傳統的桌面瀏覽器相同的編程技術來處理新的移動設備。
8)擴展性和可用性: ASP.NET 被設計成可擴展的、具有特別專有的功能來提高群集的、多處理器環境的性能。此外,Internet 信息服務 (IIS) 和 ASP.NET 運行時密切監視和管理進程,以便在一個進程出現異常時,可在該位置創建新的進程使應用程序繼續處理請求。
9)跟蹤和調試: ASP.NET 提供了跟蹤服務,該服務可在應用程序級別和頁面級別調試過程中啟用。可以選擇查看頁面的信息,或者使用應用程序級別的跟蹤查看工具查看信息。在開發和應用程序處于生產狀態時,ASP.NET 支持使用 .NET Framework 調試工具進行本地和遠程調試。當應用程序處于生產狀態時,跟蹤語句能夠留在產品代碼中而不會影響性能。
10)與 .NET Framework 集成: 因為 ASP.NET 是 .NET Framework 的一部分,整個平臺的功能和靈活性對 Web 應用程序都是可用的。也可從 Web 上流暢地訪問 .NET 類庫以及消息和數據訪問解決方案。ASP.NET 是獨立于語言之外的,所以開發人員能選擇最適于應用程序的語言。另外,公共語言運行庫的互用性還保存了基于 COM 開發的現有投資。
11)與現有 ASP 應用程序的兼容性: ASP 和 ASP.NET 可并行運行在 IIS Web 服務器上而互不沖突;不會發生因安裝 ASP.NET 而導致現有 ASP 應用程序崩潰的可能。ASP.NET 僅處理具有 .aspx 文件擴展名的文件。具有 .asp 文件擴展名的文件繼續由 ASP 引擎來處理。然而,應該注意的是會話狀態和應用程序狀態并不在 ASP 和 ASP.NET 頁面之間共享。
三、ASP.NET與IIS、ASP 之間的比較
ASP.NET 應用程序與 Internet 信息服務 (IIS) 之間的關系如下:IIS 通過 aspnet_isapi.dll(ASP.NET 的進程模型)對可發布的 ASP.NET 文件的所有請求提供服務。IIS 不會處理服務器端的代碼;而 ASP.NET 引擎則會處理服務器端代碼,然后將輸出返回給 IIS(如果可能,或另一個 Web 服務器)。
ASP.NET 并非僅僅是下一代的ASP,它為創建利用 Internet 的網絡應用程序提供了全新的編程模型。ASP.NET與ASP比較的特點如下:
1、改進的性能和可伸縮性
1)編譯后執行:ASP.NET 比傳統 ASP 的運行速度更快,同時保留了 ASP"只需點擊保存"的更新模型。無需顯式的編譯步驟。ASP.NET 自動檢測變化,根據需要動態編譯文件,并且保存編譯結果以便后續的請求再次使用。動態編譯保證了用戶的應用程序總是最新的,并且編譯后執行的操作會使其運行速度更快。對于多數從傳統的 ASP 遷移到 ASP.NET 的應用程序,其處理的頁數增長了 3 至 5 倍。
2)大容量輸出緩存:ASP.NET 輸出緩存極大地改進了應用程序的性能和可伸縮性。當在頁面中啟用輸出緩存時,ASP.NET 就會執行一次該頁并將結果在發送至用戶之前保存在內存中。當其他用戶請求同一頁面時,ASP.NET 使用內存中的緩存結果向用戶提供服務,而不是重新執行該頁面。輸出緩存是可配置的,并且可以用來緩存單個區域或整個頁面。
3)Web 場會話狀態:ASP.NET 會話狀態允許我們在 Web 場中的所有計算機之間共享會話數據。現在,用戶可以通過多個請求訪問 Web 場中不同的服務器,并且仍然具有完全訪問會話數據的權限。
2、增強的可靠性
內存泄漏、死鎖和故障保護:ASP.NET 自動檢測錯誤(例如,死鎖和內存泄漏)并進行恢復以確保我們的應用程序始終可用。例如,當檢測到內存泄漏時,ASP.NET 將自動啟動新的 ASP.NET 工作進程副本,并將所有的新請求定向到該進程。當舊進程完成掛起請求的處理后,會經過適當的處置并釋放泄漏的內存。
3、部署簡單
1)"非接觸式"應用程序部署:使用 ASP.NET,我們可以通過將其復制到服務器來進行整個應用程序的部署。配置設置將存儲在應用程序的 XML 文件中。
2)動態更新運行的應用程序:ASP.NET 允許我們不必重新啟動 Web 服務器而更新已編譯的組件。與傳統的 COM 組件(這些組件需要在部署更新后手動重新啟動 Web 服務器)不同,ASP.NET 自動檢測更改并使用新的代碼啟動。
3)遷移路徑簡單:ASP.NET 可以和傳統的 ASP 應用程序一起在 Microsoft Windows 2000、Windows XP、以及 Windows Server 2003 家族成員的 IIS 上運行。我們可以一次遷移一個應用程序,甚至是單獨的頁面。ASP.NET 甚至允許我們繼續使用現有的傳統 COM 商務組件。
4、新的應用程序模型
1)XML Web 服務:XML Web 服務允許應用程序通過 Internet 進行通信和共享數據,而不管操作系統和編程語言如何。ASP.NET 使得公開和調用 XML 網絡服務變得簡單。
2)移動 Web 設備支持:ASP.NET 移動控件允許我們處理超過 80 臺使用 ASP.NET 的移動 Web 設備。我們只需一次性寫入應用程序,移動控件就能自動生成請求設備的頁面。
5、開發人員的效率
1)簡單的編程模型:具有服務器控件(這些控件允許我們使用比傳統 ASP 更少的代碼來構建效果極佳的頁面)的 ASP.NET 使得動態構建真實的 Web 應用程序變得更加容易。
2)靈活的語言選項:ASP.NET 不僅支持 Microsoft Visual Basic Scripting Edition (VBScript) 和 Microsoft JScript,而且支持 25 種以上的 .NET 語言,包括對 Visual Basic .NET、Microsoft C# 和 JScript .NET 的內置支持。
3)豐富的類框架:.NET Framework 類庫提供了 4500 多種類,這些類封裝了大量的功能,諸如 XML、數據訪問、文件上載、正則表達式、圖像生成、性能監視和日志記錄、事務、消息隊列和 SMTP 郵件。
簡單的說,ASP.NET優點有:
1、代碼和內容分離使代碼更清晰
2、提高可部署性、可伸縮性、安全性以及可靠性
3、為不同的瀏覽器和設備提供更好的支持
而ASP缺點是:
1、ASP只能使用腳本語言屬于解釋性語言,主要是javascript或VBScript。而解釋性語言缺乏強類型和編譯環境。這些將不可避免地導致性能和伸縮性問題。
2、ASP代碼雜亂、功能有限,瀏覽器兼容以及瀏覽設備的兼容性差,而ASP.NET能夠很好的解決。
四、以前的 Web 開發模型相比,ASP.NET 提供了數個重要的優點:
增強的性能。ASP.NET 是在服務器上運行的編譯好的公共語言運行庫代碼。與被解釋的前輩不同,ASP.NET 可利用早期綁定、實時編譯、本機優化和盒外緩存服務。這相當于在編寫代碼行之前便顯著提高了性能。
世界級的工具支持。ASP.NET 框架補充了 Visual Studio 集成開發環境中的大量工具箱和設計器。WYSIWYG 編輯、拖放服務器控件和自動部署只是這個強大的工具所提供功能中的少數幾種。
威力和靈活性。由于 ASP.NET 基于公共語言運行庫,因此 Web 應用程序開發人員可以利用整個平臺的威力和靈活性。.NET 框架類庫、消息處理和數據訪問解決方案都可從 Web 無縫訪問。ASP.NET 也與語言無關,所以可以選擇最適合應用程序的語言,或跨多種語言分割應用程序。另外,公共語言運行庫的交互性保證在遷移到 ASP.NET 時保留基于 COM 的開發中的現有投資。
簡易性。ASP.NET 使執行常見任務變得容易,從簡單的窗體提交和客戶端身份驗證到部署和站點配置。例如,ASP.NET 頁框架使您可以生成將應用程序邏輯與表示代碼清楚分開的用戶界面,和在類似 Visual Basic 的簡單窗體處理模型中處理事件。另外,公共語言運行庫利用托管代碼服務(如自動引用計數和垃圾回收)簡化了開發。
可管理性。ASP.NET 采用基于文本的分層配置系統,簡化了將設置應用于服務器環境和 Web 應用程序。由于配置信息是以純文本形式存儲的,因此可以在沒有本地管理工具幫助的情況下應用新設置。此"零本地管理"哲學也擴展到了 ASP.NET 框架應用程序的部署。只需將必要的文件復制到服務器,即可將 ASP.NET 框架應用程序部署到服務器。不需要重新啟動服務器,即使是在部署或替換運行的編譯代碼時。
可縮放性和可用性。ASP.NET 在設計時考慮了可縮放性,增加了專門用于在聚集環境和多處理器環境中提高性能的功能。另外,進程受到 ASP.NET 運行庫的密切監視和管理,以便當進程行為不正常(泄漏、死鎖)時,可就地創建新進程,以幫助保持應用程序始終可用于處理請求。
自定義性和擴展性。ASP.NET 隨附了一個設計周到的結構,它使開發人員可以在適當的級別"插入"代碼。實際上,可以用自己編寫的自定義組件擴展或替換 ASP.NET 運行庫的任何子組件。實現自定義身份驗證或狀態服務一直沒有變得更容易。
安全性。借助內置的 Windows 身份驗證和基于每個應用程序的配置,可以保證應用程序是安全的。
五、ASP.NET做商業網站的優點和缺點
優點:ASP.NET做起來快,因為微軟給我們封裝了很多控件,以及很多現成的模式。
缺點:PHP語言可以在Linux、FreeBSD、OpenBSD、Solaris Unix運行,這些操作系統可以使用免費版、不存在盜版問題。 ASP/ASP.NET語言僅可以在Windows操作系統運行。而有些服務器使用的Windows操作系統都是盜版的、盜版、侵權等不安全因素隨時會出現
六、如何安裝 ASP.NET
在 Windows Server 2003 家族、Windows 2000 (Professional、Server 和 Advanced Server)以及 Windows XP Professional 上的客戶端和服務器應用程序都支持 ASP.NET。
運行 Microsoft Windows Server 2003 家族成員的服務器可以配置為應用程序服務器,并將 ASP.NET 作為在配置應用程序服務器角色時可以啟用的選項。要向產品服務器部署 ASP.NET Web 應用程序,在分發應用程序之前,必須確保在產品服務器中啟用了 ASP.NET 和 IIS 角色。
1、使用"配置您的服務器"向導在運行 Windows Server 2003 的服務器中安裝 ASP.NET
1)從"開始"菜單中,單擊"管理您的服務器";在"管理您的服務器"窗口中,單擊"添加或刪除角色"。
2)在"配置您的服務器向導"中,單擊"下一步",并在"服務器角色"對話框中,選中"應用程序服務器 (IIS、ASP.NET)",然后單擊"下一步"。
3)在"應用程序服務器選項"對話框中,選中"啟用 ASP.NET"復選框,單擊"下一步",然后再單擊"下一步"。
4)如有必要,請將 Windows Server 2003 安裝 CD 插入 CD-ROM 驅動器,然后單擊"下一步"。
5)當安裝完成時,單擊"完成"。
2、在運行 Windows Server 2003 的服務器中使用"添加或刪除程序"安裝 ASP.NET
1)從"開始"菜單中,指向"控制面板",然后單擊"添加或刪除程序"。
2)在"添加或刪除程序"對話框中,單擊"添加/刪除 Windows 組件"。
3)在"Windows 組件"向導中的"組件"中,選中"應用程序服務器"復選框,然后單擊"下一步"。
4)當在"Windows 組件"向導中完成對 Windows Server 2003 的配置時,單擊"完成"。
3、在運行 Windows Server 2003 的服務器中的 IIS 管理器中啟用 ASP.NET
1)從"開始"菜單中,單擊"運行"。
2)在"運行"對話框中的"打開"框中,鍵入 inetmgr,然后單擊"確定"。
3)在 IIS 管理器中,展開本地計算機,然后單擊"Web 服務擴展"。
4)在右側窗格中,右鍵單擊"ASP.NET"然后單擊"允許"。ASP.NET 的狀態變為"允許"。
七、ASP.NET Web 應用程序的布局
ASP.NET 應用程序被定義為可從 Web 服務器上的虛擬目錄及其子目錄中調用的所有文件和可執行碼。其中可以包含網頁(.html 文件)、Web 表單頁面(.aspx 文件)、Web 表單用戶控件(.ascx 文件)、XML Web 服務(.asmx 文件)、HTTP 處理程序、HTTP 模塊和其他文件(如圖像和配置文件)。現在使用的所有與 Microsoft .NET Framework 版本相關的腳本映射也都是 ASP.NET 應用程序的一部分。ASP.NET 應用程序必須位于 IIS 虛擬目錄(也稱為應用程序根目錄)中。ASP.NET 應用程序可包含已編譯的程序集(通常是包含業務邏輯的 DLL 文件)、用于存儲預編譯代碼的已知目錄(目錄名總是 \Bin)、存儲在基于文本的、易讀的 Web.config 文件中的配置設置、頁、服務器控件,以及 XML Web 服務。
服務器中任何不與其他應用程序共享的預編譯代碼必須存儲在應用程序的 \Bin 目錄中。它是應用程序的本地程序集緩存。Web.config 文件在基于 XML 的文本文件中存儲應用程序級的配置文件。這意味著可以使用任意標準的文本編輯器或 XML 分析器來創建它們,而且它們是可讀的。如果不在應用程序根目錄中包含 Web.config 文件,則配置設置由 Machine.config 文件中整個服務器的配置文件來確定。安裝 .NET Framework 時,會安裝 Machine.config 文件的某個版本。
下圖顯示了 ASP.NET 應用程序文件系統布局的示例。
本圖中的應用程序包括 \Bin 目錄中的兩個 DLL 文件、一個 Default.aspx 頁,一個名為 Menu.ascx 的用戶控件、一個名為 MyWebService.asmx 的 XML Web 服務以及一個 Global.asax 文件。另外,該應用程序是使用下列三個配置文件配置的:系統根目錄中計算機級別的 Machine.config 文件、C:\Inetpub\ 目錄中站點級別的 Web.config 文件和應用程序根目錄中應用程序級別的 Web.config 文件。當站點的 Web.config 文件覆蓋 Machine.config 文件中的設置時,在應用程序根目錄中存儲的配置設置將覆蓋站點的 Web.config 文件和 Machine.config 文件中的設置。
八、ASP.NET 2.0的新特性
數據訪問
1、數據源控件
2、新的數據綁定控件
3、數據控件參數對象
4、改進了數據綁定的語法
5、本地文件化的SQL數據庫
驗證控件
1、驗證群
2、聚焦錯誤控件
3、適應不同的文化
4、驗證空數據
風格主題和皮膚
用模板設計頁面
建立分層站點導航
1、導航生成器
2、導航控件
增強安全
1、成員和角色管理
2、登錄控件
自定義站點
存儲用戶檔案
緩存
國際化站點
1、自動檢測瀏覽器語言
2、本地化資源
應用程序狀態
1、可擴展回話機制
2、控件狀態
3、加密視圖狀態
監視站點
1、集成跟蹤
2、事件處理
3、自定義跟蹤信息
新的控件
1、導航
2、向導
3、數據源
4、增強的數據表格
其他特性
1、增加非ASP.NET文件的安全
2、客戶端CALL BACK機制
3、跨頁提交
4、站點維護標示
5、更加簡化的Code Behind機制
6、動態編譯類
用戶登錄
還沒有賬號?
立即注冊