SharePoint基础之九- Site Page与Application Page
在一個WSS站點中的某些頁面, 比如說首頁(default.aspx), 支持用戶使用SharePoint Designer這樣的工具進行定制化(customization). 支持定制化的頁面叫做site pages. 雖然對于定制化提供支持的site page提供了很大程度上的靈活性, 可是它也有不利的一面. 為了支持頁面定制化而不相反地影響可伸縮性, WSS必須使用前面討論過的page ghosting. 但是頁面的定制化還是會可伸縮性有相當程度的影響.
?
想象某個具有一個運行著上千個站點的Web Application這樣的WSS環境吧. 如果每個站點的管理員都使用SharePoint Designer更改了站點的首頁, 那么會發生什么? 這些站點里的每一個頁面都會變成unghosted. 這就會通過強制前端服務器去分別地從內容數據庫中取回每一個頁面, 從而消極地影響可伸縮性. 每一個頁面都會不得不各自地經過解析然后加載到內存中.
?
再來考慮一個事實, 當一個站點頁面被定制化過了, 一個拷貝就一定會存在內容數據庫中. 這就帶來了一個安全問題. 想象有這樣一個情形, 一個惡意用戶被賦予了站點集的管理員權限, 他試圖通過在一個自定義版本的站點頁面中寫內聯代碼來進行攻擊. 這個安全問題被WSS的一個默認的策略搞定了, 這個策略是: 禁止site page中包含inline代碼. 這個默認策略還使得site page在非編譯模式下運行, 也就是說他們不會被編譯為DLL.
?
這里的關鍵點在于對于site page的定制化的支持帶來了性能問題和安全問題. 如同稍早時候注意到的, WSS架構提供了另一種類型的頁面, 叫做application page. application page的一個關鍵特性是: 它不支持定制化. 所以application page可以繞過與site page相關聯的性能問題和安全問題.
?
標準的站點配置頁面(settings.aspx)是一個application page的好例子. 它可以在任意的站點內被訪問, 而且他不支持定制化. Application Page, 比如說settings.aspx, 作為物理文件被部署在Web前端服務器的文件系統上, 部署在下面的路徑中:
c:\program files\common files\microsoft shared \web server extensions\12\TEMPLATE\LAYOUTS
?
注意, 每次WSS創建一個Web application, 物理路徑\LAYOUTS目錄就被映射到虛擬路徑_layouts上. 使用這種映射機制, 再加上一些額外的處理邏輯, WSS運行時可以使得任何一個application page在任何站點的上下文中, 被訪問到. 比如說, 假設現在有如下的三個不同的站點, 他們在WSS場環境中可以通過如下的三個URL訪問:
http://Litwareinc.com
http://Litwareinc.com/sites/Vendors
http://Litwareinc.com:1001/sites/Accounting
An application page, such as settings.aspx, can be accessed by adding its relative path within the _layouts directory to the end of a site’s URL. For example, you can access the Site Setting page by using any of the following three URLs:
一個application page, 比如說settings.aspx, 可以通過在站點URL后添加它在_layouts文件夾中的相對路徑來訪問. 比如說, 你可以通過如下的URL來訪問站點的Settings.aspx.
http://Litwareinc.com/_layouts/settings.aspx
http://Litwareinc.com/sites/Vendors/_layouts/settings.aspx
http://Litwareinc.com:1001/sites/Accounting/_layouts/settings.aspx
?
因為在場水平上, 一個Application Page就只有一個版本, 所以它可以被編譯成為一個單個的DLL, 然后每個web application僅一次地加載到內存中. 你永遠不需要擔心在不同站點上有不同版本的application page. 更進一步地, application page并不會受擁有定制化權限的用戶的攻擊. 所以WSS并不阻止他們中包含內聯代碼(in-line code).
?
Application page被WSS團隊廣泛地應用來支持用于創建和管理站點以及站點內部元素的許多功能. 下圖表現了\LAYOUTS物理文件夾的一個圖片. 你可以看到WSS3.0的標準安裝包括了許多不同的application page, 包括settings.aspx
如果隨便打開并且查看標準的WSS的一個application page, 你會看到它鏈接到一個在_layouts目錄下的母版頁, 叫做application.master. 后面的部分, 我們會介紹創建自定義的application page. 當你創建一個自己的application page的時候, 你可能想要跟從它們, 一樣也連接到application.master.
?
現在讓我們總結一下site page和application page的不同之處吧. site page支持頁面定制化. 比如說首頁, 還有跟列表和文檔庫關聯的其他頁面, 比如說AllItems.aspx, NewForm.aspx, 和EditForm.aspx. 事實上site page支持定制化提供了定制化, 但也會影響到性能和可伸縮性. site page不支持內聯代碼, 由于WSS強制執行了一個默認的安全策略.
?
Application Page不支持定制化, 這也提供給了他兩個優于site page的地方. 首先, 任何一個application page都會被編譯為一個單個的DLL文件, 所以他們的性能和可伸縮性都要比site page好. 第二, application頁面允許包含內聯代碼.
總結
以上是生活随笔為你收集整理的SharePoint基础之九- Site Page与Application Page的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MOSS中对列表的一些操作(创建,查询等
- 下一篇: PowerDesigner模型设计