敦群學院-SharePoint精英計畫-系統開發-Day 2

4,305 views

Published on

Published in: Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,305
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

敦群學院-SharePoint精英計畫-系統開發-Day 2

  1. 1. SharePoint 菁英計畫 系統開發實戰營 敦群數位科技股份有限公司 游家德 Jade Yu Welcome 歡迎參與
  2. 2. 課程規劃 <ul><li>第一天 </li></ul><ul><ul><li>MOSS2007 架構與一般企業客製化功能簡介 </li></ul></ul><ul><ul><li>SharePoint Designer 2007 </li></ul></ul><ul><ul><li>Master Page 修改與設定 </li></ul></ul><ul><ul><li>介面選單修改 </li></ul></ul><ul><li>第二天 </li></ul><ul><ul><li>SharePoint API 操作與應用 </li></ul></ul><ul><ul><li>網站集合功能 / 網站功能介紹與實作 </li></ul></ul><ul><li>第三天 </li></ul><ul><ul><li>網頁組件開發與部署 </li></ul></ul><ul><ul><li>Event Handler 開發與部署 </li></ul></ul><ul><ul><li>Search API 與 Web Service </li></ul></ul><ul><li>第四天 </li></ul><ul><ul><li>Excel Service 應用 </li></ul></ul><ul><ul><li>InfoPath Form Service 應用 </li></ul></ul><ul><ul><li>Open Questions </li></ul></ul>
  3. 3. SharePoint API 操作與應用
  4. 4. 課程主題 <ul><li>相關開發環境設定 </li></ul><ul><li>開發情境與需求 </li></ul><ul><li>WSS 3.0 物件模型 (Object Model) 的操作 </li></ul><ul><li>管理相關物件模型 </li></ul><ul><li>WSS Web Service </li></ul>
  5. 5. 開發環境 <ul><li>Visual Studio.Net 2005 </li></ul><ul><li>SharePoint Designer 2007 </li></ul><ul><li>Office SharePoint Server 2007 SDK </li></ul><ul><ul><li>Excel Service / InfoPath Form Service </li></ul></ul><ul><li>Window SharePoint Service SDK </li></ul><ul><li>http://msdn2.microsoft.com/en-us/office/aa905503.aspx </li></ul>
  6. 6. 支援 .Net 2.0 運行的 SharePoint 平台 <ul><li>WSS2.0 + Wss2.0 Service Pack 2 </li></ul><ul><li>Window SharePoint Service 3.0 </li></ul><ul><li>Microsoft Office SharePoint Server 2007 </li></ul>
  7. 7. SPD2007 的用途 <ul><li>撰寫免程式碼的工作流程 </li></ul><ul><li>修改 CSS 檔案 </li></ul><ul><li>修改 *.aspx 檔案 </li></ul><ul><li>加入客製化 HTML 或 JavaScript </li></ul><ul><li>客製化網頁組件的外觀 </li></ul><ul><li>撰寫 XSLT 調整資料檢視的外觀 </li></ul><ul><li>更多無須程式碼的客製 </li></ul>
  8. 8. 使用 Visual Studio 的客製化 <ul><li>撰寫事件處理常式 </li></ul><ul><li>撰寫客製化工作流程 </li></ul><ul><li>建立客製化網頁組件 </li></ul><ul><li>建立客製化網路服務 Web Service </li></ul><ul><li>存取 SharePoint 內容 </li></ul><ul><li>撰寫 DBC Schema </li></ul><ul><li>還有… </li></ul>
  9. 9. 開發上的衝擊與評估
  10. 10. WSS3.0 物件模型的操作
  11. 11. 物件架構 C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.SharePoint.dll http://moss:1234/_vti_bin/*.asmx
  12. 13. WSS3.0 的開發 Step1 <ul><li>加入 WSS3.0 參考 </li></ul><ul><ul><li>於專案中加入 C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.SharePoint.dll </li></ul></ul><ul><li>於程式碼中引用相關類別 </li></ul><ul><ul><li>using Microsoft.SharePoint; </li></ul></ul><ul><ul><li>using Microsoft.SharePoint.WebControls; </li></ul></ul>
  13. 14. 取得 SPSite 物件的方式 <ul><li>Web Page 中 </li></ul><ul><ul><li>SPSite oSite = SPControl.GetContextSite(System.Web.HttpContext.Current); </li></ul></ul><ul><li>Window Application 中 </li></ul><ul><ul><li>SPSite oSite=new SPSite(“http://moss”); </li></ul></ul>
  14. 15. SPSite 的重要屬性 <ul><li>oSite.AllWebs : 取得所有的網站清單 </li></ul><ul><li>oSite.AllWebs[“/Depts/IT”] : 取得特定 url 下的清單 </li></ul>
  15. 16. DEMO 存取 SPSite 物件
  16. 17. SPWebCollection 與 SPWeb <ul><li>SPWebCollection : 網站集合中所有網站組成的清單 </li></ul><ul><li>SPWeb : 個別網站 </li></ul><ul><li>SPWebCollection oWebs=oSite.AllWebs; </li></ul><ul><li>SPWeb oWeb = oWebs[“/Depts/IT”]; </li></ul>
  17. 18. SPWeb 的重要屬性 <ul><li>oWeb.Lists : 取得所有的清單列表 </li></ul><ul><li>oWeb.AllowUnsafeUpdate() : 允許透過 API 進行 Post 的修改 </li></ul><ul><li>oWeb.CurrentUser : 取得目前登入使用者 </li></ul><ul><li>oWeb.Users : 取得本網站授權使用者 </li></ul>
  18. 19. DEMO 存取 SPWebCollection / SPWeb 物件
  19. 20. SPListCollection / SPList 物件 <ul><li>SPListCollection : 所有清單組成的列表 </li></ul><ul><li>SPList : 個別清單物件 </li></ul><ul><li>SPListCollection oLists=oWeb.Lists; </li></ul><ul><li>SPList oList = oLists[“ 最新消息” ]; </li></ul>
  20. 21. SPList 的重要屬性 <ul><li>SPList.Fields : 取得該欄位的所有欄位名稱 </li></ul><ul><li>SPList.Items : 取得該清單中所有的資料 </li></ul><ul><li>SPList.GetItemByID : 根據傳入的 ID 取得特定清單項目 </li></ul><ul><li>SPList.GetItems : 根據查詢條件取得符合條件之清單 </li></ul><ul><li>SPList.DefaultViewUrl </li></ul><ul><li>SPListCollection.GetDataTable : 將 SPListCollection 轉成 DataTable </li></ul>
  21. 22. DEMO 存取 SPListCollection/ SPList 物件
  22. 23. SPListItemCollection / SPListItem <ul><li>SPListItemCollection : 清單項目的集合 </li></ul><ul><li>SPListItem : 特定清單項目 </li></ul><ul><ul><li>SPListItemCollection oListItems = oList.Items; </li></ul></ul><ul><ul><li>SPListItem oListItem= oListItems[1]; </li></ul></ul>
  23. 24. SPListItem 的重要屬性 <ul><li>oListItem[“ 欄位名稱” ] : 取得特定欄位值 </li></ul><ul><li>oListItem.Attachments : 取得特定清單項目的附件集合 ( 文件庫除外 ) -> SPAttchmentCollection </li></ul><ul><li>oListItem.File : 取得文件庫的文件資訊 ( 針對文件庫相關清單 ) -> SPFile </li></ul>
  24. 25. DEMO 存取 SPListItem 物件
  25. 26. 關於 Update <ul><li>修改 SPSite / SPWeb / SPList 等基本屬性 , 如名稱 , 及其他相關可修改之資訊 </li></ul><ul><li>新增 / 修改 / 刪除 清單項目 (SPListItem) </li></ul>
  26. 27. Update 時的注意事項 <ul><li>SPWeb 須將 AllowUnSafeUpdate 設為 True </li></ul><ul><li>SharePoint 採 Batch Update 的方式 , 須執行 Update 動作已確認將更新後送回 SQL Server </li></ul>
  27. 28. 修改清單標題 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li></ul><ul><li>oWeb.AllowUnsafeUpdate=True; </li></ul><ul><li>SPList oList=oWeb.List[“ 最新消息” ]; </li></ul><ul><li>oList.Title=“ 公司快訊” ; </li></ul><ul><li>oList.Update(); </li></ul>
  28. 29. 新增清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li></ul><ul><li>oWeb.AllowUnsafeUpdate=True; </li></ul><ul><li>SPList oList=oWeb.List[“ 最新消息” ]; </li></ul><ul><li>SPListItem oItem = oList.Items.Add(); </li></ul><ul><li>oItem[“ 標題” ]=“ 這是新的訊息” </li></ul><ul><li>oItem.Update(); </li></ul>
  29. 30. 修改清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li></ul><ul><li>oWeb.AllowUnsafeUpdate=True; </li></ul><ul><li>SPList oList=oWeb.List[“ 最新消息” ]; </li></ul><ul><li>SPListItem oItem = oList.Items[0]; </li></ul><ul><li>oItem[“ 標題” ]=“ 這是新的訊息” </li></ul><ul><li>oItem.Update(); </li></ul>
  30. 31. 刪除清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li></ul><ul><li>oWeb.AllowUnsafeUpdate=True; </li></ul><ul><li>SPList oList=oWeb.List[“ 最新消息” ]; </li></ul><ul><li>SPListItem oItem = oList.Items[0] </li></ul><ul><li>oItem.Delete(); </li></ul><ul><li>oList.Update(); </li></ul>
  31. 32. DEMO SharePoint 的 Update 機制
  32. 33. SharePoint 中的結構搜尋
  33. 34. SharePoint 結構化查詢 <ul><li>CAML: Collaboration Application Mark-up Language </li></ul><ul><ul><li>一種以 XML 為基礎的查詢語言 </li></ul></ul><ul><ul><li><Query> </li></ul></ul><ul><ul><li><Where> </li></ul></ul><ul><ul><li><Or> </li></ul></ul><ul><ul><li><Lt> </li></ul></ul><ul><ul><li><FieldRef Name=&quot;Stock&quot;/> <Value Type=&quot;Number&quot;>15</Value> </li></ul></ul><ul><ul><li></Lt> </li></ul></ul><ul><ul><li><Gt> </li></ul></ul><ul><ul><li><FieldRef Name=&quot;Price&quot;/> </li></ul></ul><ul><ul><li><Value Type=&quot;Currency&quot;>20.00</Value> </li></ul></ul><ul><ul><li></Gt> </li></ul></ul><ul><ul><li></Or> </li></ul></ul><ul><ul><li></Where> </li></ul></ul><ul><ul><li><OrderBy> </li></ul></ul><ul><ul><li><FieldRef Name=&quot;Title&quot;/> </li></ul></ul><ul><ul><li></OrderBy> </li></ul></ul><ul><ul><li></Query> </li></ul></ul>
  34. 35. CAML 的使用 <ul><li>應用於 3 rd Party 工具 </li></ul>
  35. 36. CAML 的使用 <ul><li>應用於 SPQuery 以及 SPList.GetItems </li></ul><ul><ul><li>SPQuery oQuery = new SPQuery(); </li></ul></ul><ul><ul><li>oQuery.Query=“…..CAML TAGS….”; </li></ul></ul><ul><ul><li>SPListItemCollection oLis = oList.GetItems(oQuery); </li></ul></ul>
  36. 37. Security / Users 設定
  37. 38. ListItem Level 的權限設定 -1 <ul><li>SPRoleDefinition RoleDefinition = Web.RoleDefinitions.GetByType(SPRoleTyp e.Administrator);      </li></ul><ul><li>        </li></ul><ul><li>SPList List = Web.Lists[&quot;<list name>&quot;]; SPListItem ListItem = List.Items[1]; </li></ul><ul><li>    SPRoleAssignment RoleAssignment = new SPRoleAssignment(“domainusera&quot;,” usera @ example.com ”, “User A&quot;, &quot;Here are some notes.“) </li></ul><ul><li>            </li></ul>
  38. 39. ListItem Level 的權限設定 -2 <ul><li>RoleAssignment.RoleDefinitionBindings.Add(RoleDefinition); </li></ul><ul><li>            </li></ul><ul><li>            if(!ListItem.HasUniqueRoleAssignments)             {                         ListItem.BreakRoleInheritance(true);             }            </li></ul><ul><li>            ListItem.RoleAssignments.Add(RoleAssignment);         ListItem.Update(); </li></ul><ul><li>        </li></ul>
  39. 40. 管理相關物件模型
  40. 41. 管理相關物件模型
  41. 42. WSS3.0 WebService
  42. 43. WSS3.0 Web Service 的變動與加強 <ul><li>新增的 Web Service </li></ul><ul><ul><li>SiteData Web Service </li></ul></ul><ul><ul><li>Versions Web Service </li></ul></ul><ul><ul><li>Forms Web Service </li></ul></ul><ul><li>修改加強的 Web Service </li></ul><ul><ul><li>Lists Web Service </li></ul></ul><ul><ul><li>Webs Web Service </li></ul></ul>
  43. 44. WSS Web Service 的位置
  44. 45. 網站功能 (Feature) 的開發
  45. 46. Feature 的展示
  46. 47. Features Framework <ul><li>Feature Header XML File </li></ul><ul><ul><li>C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURES<FeatureName>Feature.xml </li></ul></ul><ul><li>Feature Detail XML File </li></ul><ul><ul><li>C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURES<FeatureName> </li></ul></ul>
  47. 48. Header XML 的檔案內容 <ul><li>Feature.xml </li></ul><ul><ul><li><Feature </li></ul></ul><ul><ul><li>Id=&quot;CDCA958F-D752-492f-8202-DDCAC0FFF34B&quot; </li></ul></ul><ul><ul><li>Title=&quot; 我的審核清單 &quot; </li></ul></ul><ul><ul><li>Description=&quot;&quot; </li></ul></ul><ul><ul><li>Scope=&quot;Site&quot; </li></ul></ul><ul><ul><li>Hidden=&quot;FALSE&quot; </li></ul></ul><ul><ul><li>xmlns=&quot;http://schemas.microsoft.com/sharepoint/&quot;> </li></ul></ul><ul><ul><li><ElementManifests> </li></ul></ul><ul><ul><li><ElementManifest Location=&quot;SiteActions.xml&quot;/> </li></ul></ul><ul><ul><li></ElementManifests> </li></ul></ul><ul><ul><li></Feature> </li></ul></ul>
  48. 49. Detail XML 的檔案內容 (ElementManifest File) <ul><li>Feature.xml </li></ul><ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> </li></ul></ul><ul><ul><li><Elements xmlns=&quot;http://schemas.microsoft.com/sharepoint/&quot; > </li></ul></ul><ul><ul><li><CustomAction </li></ul></ul><ul><ul><li>Id=&quot;44B28608-616E-45f1-90D4-7E2860C279A3&quot; </li></ul></ul><ul><ul><li>GroupId=&quot;SiteActions&quot; </li></ul></ul><ul><ul><li>Location=&quot;Microsoft.SharePoint.StandardMenu&quot; </li></ul></ul><ul><ul><li>Sequence=&quot;100&quot; </li></ul></ul><ul><ul><li>Title=&quot; 我的審批助理 &quot;> </li></ul></ul><ul><ul><li><UrlAction Url=&quot;/_layouts/WistronApprovalList.aspx&quot; /> </li></ul></ul><ul><ul><li></CustomAction> </li></ul></ul><ul><ul><li></Elements> </li></ul></ul>
  49. 50. Feature 的安裝 <ul><li>C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINStsadm.exe –o installfeature –name <featureName> -force </li></ul>
  50. 51. DEMO Feature 的設計與安裝

×