SharePoint学习札记[1] — WSS与MOSS的关系
Windows SharePoint Services 是一個用來創建能夠實現信息共享和文檔協作的Web站點的引擎,從而有助于提高個人和團隊的生產力。它是Microsoft Windows Server? 2003中所提供的信息工作者體系結構的重要組成部分, 為Microsoft Office System和其他的桌面應用程序提供了附加的功能,并能夠作為應用程序開發的平臺。
????? SharePoint 站點將文件存儲提升到一個新的高度,從存儲文件到共享信息。這些站點可以為團隊協作提供社區,使得用戶能夠在文檔、任務、聯系人、事件以及其他信息上開展協作。它們允許團隊和站點管理者更輕松地管理站點內容和活動。這樣的環境旨在實現輕松和靈活的部署、管理以及應用程序開發。
????? Windows SharePoint Services 是一種通用方法,各種規模的組織和業務單位都可以使用它來提高業務流程的效率和團隊的工作效率。通過使用有助于用戶跨組織和跨地區邊界保持連接的協作工具,Windows SharePoint Services 使用戶能夠訪問他們所需的信息。
????? 建立在 Microsoft Windows Server 2003 之上的 Windows SharePoint Services 還提供了一個基礎平臺,用于構建基于 Web 的業務應用程序,可以輕松地調整和縮放這些程序以滿足不斷變化和日益增長的業務需求。通過使用可靠的管理控件來管理存儲和 Web 基礎架構,IT 部門可以采用一種節省成本的方式實現和管理高性能協作環境。由于采用大家所熟悉的基于 Web 的界面,并且與日常工具(包括 2007 Microsoft Office system)緊密集成,因此 Windows SharePoint Server 易于使用,并且可以快速進行部署。
????? Microsoft Office SharePoint Service 2007是微軟最新的企業協作應用和開發平臺。簡稱MOSS,MOSS基于Window SharePoint Service 3.0 (簡稱WSS)開發。MOSS是收費的,WSS是免費的,只要擁有了Window Server2003的許可,就可以免費安裝WSS。
???? WSS擁有站點,列表,文檔庫,文檔管理,WebPart,集群部署,站點內搜索,基于WF的工作流等功能。MOSS擴展實現了增強的文檔管理,企業搜索,擴展了工作流,引入了Web內容管理,Form Service,Excel Service,個人站點等。
??????以下若沒有特別強調,所有內容都適合WSS和MOSS的(所有適合WSS的內容也一定適合MOSS,反之則不然)。
l?????????WSS對IIS的擴展
????? WSS基于標準的Asp.Net2.0開發,這是WSS開發中要始終記住的一點.?要精通WSS開發,一定要精通Asp.Net。??????每次新建一個WSS站點,IIS中會同樣新建一個網站,我們稱這個網站是被WSS擴展后的網站。那么擴展后發生了什么呢?
??????首先,IIS站點的所有文件的處理都被影射為需要Asp.Net運行引擎處理,而標準的IIS站點只有Asp.Net本身的文件(如aspx,asmx等)才需要運行引擎處理的,其他文件由IIS直接輸出到客戶端。
??????查看一下站點下的web.config文件,我們看到有這么一項配置:
<httpHandlers>
????? <removeverb="GET,HEAD,POST"path="*"?/>
????? <addverb="GET,HEAD,POST"path="*"type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"?/>
????? <addverb="OPTIONS,PROPFIND,PUT,LOCK,UNLOCK,MOVE,COPY,GETLIB,PROPPATCH,MKCOL,DELETE,(GETSOURCE),(HEADSOURCE),(POSTSOURCE)"path="*"type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"?/>
????? <addverb="*"path="Reserved.ReportViewerWebControl.axd"type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"?/>
</httpHandlers>
????? HttpHandler是Asp.Net的一個擴展機制,通過實現一個HttpHandler,可以來直接針對較低層的Request,Response編程,WSS通過實現自己的HttpHandler實現對客戶端所有請求文件的處理,并且通過擴展Http請求(擴展OPTIONS,PROPFIND,LOCK,UNLOCK,MOVE,COPY等動作)實現文檔的在線編輯(在線編輯的實現原理可參考這篇文章:http://www.cnblogs.com/jianyi0115/archive/2007/07/15/818566.html)。
??? 注意httpModules節點下的這項配置:
???? <addname="SPRequest"type="Microsoft.SharePoint.ApplicationRuntime.SPRequestModule, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"?/>??
????? HttpModule也是Asp.Net的擴展機制,通過實現一個HttpModule,可以切入Http請求的某個階段做出相應的處理,如身份校驗,初始化一些通用模塊等。
????? WSS通過實現SPRequestModule,切入Http請求,進行一些需要的處理。最重要的是,WSS通過SPRequestModule引入了SPVirtualPathProvider。SPRequestModule的OnInit方法中有這個關鍵的一句:
????? SPVirtualPathProvider provider2 = new SPVirtualPathProvider();
????? HostingEnvironment.RegisterVirtualPathProvider(provider2);
????? VirtualPathProvider也是Asp.Net的擴展機制,通過實現VirtualPathProvider可以控制Asp.Net頁面的提供機制,默認的VirtualPathProvider的實現直接訪問服務器硬盤上的文件。WSS通過SPVirtualPathProvider實現了自己的頁面Provider機制—WSS站點的頁面是由文件系統和數據庫聯合存儲的。
??? 新建一個WSS站點后,它的所有的文件都是放在硬盤上,我們通過SharePoint Designer打開一個WSS站點,可以看到完整的目錄結構,這些文件實際上全部都影射到文件系統上的某個文件,這個功能叫做ghost。當我們通過SPD修改了某個文件之后,WSS會把這個修改的文件保存到數據庫,這個文件跟原始的文件系統上的文件就脫離關聯了,這叫做unghost.通過ghost,WSS做到了是不同的站點可以共享相同的文件,通過unghost,WSS又實現了一個站點對頁面的修改不會影響到其他站點.
l?????????WSS的一些概念
1)Farm --?服務器場
?????服務器場是WSS最大的一個概念,整個WSS的所有服務器,包括前端服務器,數據服務器,組成了服務器場,一個服務器場有一個配置數據庫,多個內容數據庫,多個應用程序.
2)Application --?應用程序
??? 應用程序對應IIS的一個站點,它是一個安全和程序文件的獨立主體。即一個應用程序可以有自己的用戶身份認證機制,有自己獨立的一套運行程序文件,一個應用程序會映射到硬盤上的一個獨立的目錄,一般為"C:"Inetpub"wwwroot"wss"VirtualDirectories"里面的某個目錄.一個應用程序下可以有多個站點集.
3)Site Collection --?站點集
????站點集是一個虛擬的單元,在內容,用戶和權限上是獨立的.?一個站點集可以有多個子站點.
4)Web--站點
????站點內容和權限的組織單元.一個站點可以有多個子站點,多個列表,文檔庫,多個頁面.站點可以有獨立的權限.站點可以有子站點,站點和子站點組成樹型關系.子站點的權限默認集成于父站點.
5)List-列表和文檔庫
????列表可以理解成一個數據庫表,用來存儲一些業務數據。一個列表有很多字段。WSS3.0的列表可以存放多個內容類型。6)ConentType--內容類型
????內容類型可以理解成數據實體,如用戶,聯系人,日程數據等。一個內容類型包含很多字段。
7)Field-字段
?????可以理解成數據庫的字段,Field是WSS整個架構的最底層元素。???????
?l?????????WSS的對象模型
? ???? WSS開發很大一部分工作是需要調用各種WSS中的對象來實現的.常用的對象都放在Microsoft .SharePoint這個dll中.我們通常的開發都要從站點集對象開始.
Using(SPSite site = new SPSte(“”))
{
…
}??
?????SPSite和SPWeb對象都是需要釋放資源的,如果我們自己構造這兩個對象,一定要在代碼執行完畢時調用Dispose方法,來釋放資源.
?????如果我們的代碼處于WSS的運行環境之下,即代碼直接運行在WSS的頁面上,那么我們可以直接從WSS的上下文中獲取到相關對象.
SPSIte site = SPContext.Current.Site;
SPWeb web = SPContext.Current.Web;?
SPUser user = SPContext.Current.Web.CurrentUser;?
????上下文對象提供了更好的性能(不需要重復創建對象),并且直接跟當前用戶的身份掛鉤.上下文對象由運行環境進行資源管理,不需要我們用代碼來Dispose.
總結
以上是生活随笔為你收集整理的SharePoint学习札记[1] — WSS与MOSS的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 界面原型设计工具Balsamiq、墨刀、
- 下一篇: 首款支持150W的骁龙8+旗舰 一加10