SharePoint 2010 -- 經常使用技巧及方法總結

SharePoint 2010 -- 經常使用技巧及方法總結javascript

一、代碼調試肯定進程 cd c:\windows\system32\inetsrv appcmd list wp pause 注:保存成批處理文件,查看進程.bat,用的時候雙擊便可css

二、相似列表新建打開方式的彈出腳本 <script type="text/javascript"> function OpenFrameDialog() { var options =SP.UI.$create_DialogOptions(); options.url="http://www.baidu.com"; options.height=160; options.dialogReturnValueCallback=Function.createDelegate(null,CloseDialogCallback); SP.UI.ModalDialog.showModalDialog(options); } function CloseDialogCallback(result,target) { if(result===SP.UI.DialogResult.OK) {   javascript:setTimeout('javascript:return true;',8000);   messageId=SP.UI.Notify.addNotification("<img src='_layouts/images/loading.gif'/>Creating list<b>"+target+"</b>...");  } if(result ===SP.UI.DialogResult.cancel) {   SP.UI.Notify.addNotification("Operation was cancelled...",false,"",null) } } </script> <a href="Javascript:OpenFrameDialog();">Open dialog</a> 注:在Moss頁面上運行便可html

三、網站的備份還原命令 PowerShell的命令: 備份:backup-SPSite http://localhost:10086 -Path C:\100861.bak 還原:Restore-SPSite http://localhost:10087 -Path C:\10086.bak -Force -DatabaseServer sharepoint2010 -DatabaseNamejava

wss_content_10087Test Stsadm的命令: 備份:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>stsadm -o backup -url http://localhost -web

filename c:/80.bak 還原:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>stsadm -o restore -url http://localhost -數據庫

filename c:/80.bak -overwrite 管理中心->備份和還原 注:管理中心的備份功能,能夠經過PowerShell和Stsadm的命令進行還原,而管理中心的還原功能,須要打到sp1補丁。編程

四、SharePoint 2010的對象模型編程 建議使用.Net 3.5的引用,若是使用.Net 4.0,編譯後會沒法使用Microsoft.SharePoint的類庫,Perfessional 2010 Development這本書中記windows

錄是SharePoint不支持.Net 4.0。瀏覽器

五、瀏覽器自動兼容到IE7 <meta http-equiv="X-UA-Compatible" content="IE=7" />緩存

六、代碼修改2010站點風格爲2007 SPSite site = new SPSite(站點集路徑); SPWeb web = site.OpenWeb(要設置的站點路徑); web.UIVersion = 3; //改成2007風格 web.Update();

七、顯示出來錯誤,不顯示友好界面(2007裏修改前兩項,2010修改三項) 修改web.config,找到以下三個節點,並修改爲以下值: <SafeMode CallStack="true" /> <customErrors mode="Off" /> <compilation debug="true" /> 這樣,詳細的錯誤信息就會顯示出來

八、最大權限才能看到"網站操做" <SharePoint:SPSecurityTrimmedControl AuthenticationRestrictions="AuthenticatedUsersOnly" Permissions="FullMask"

runat="server" ID="yincangwangzhancaozuo"> <span class="siteActionMenu"> <PublishingSiteAction:SiteActionMenu runat="server"/> </span> </SharePoint:SPSecurityTrimmedControl>

九、修改上傳附件大小設置 stsadm -o setproperty -propertyname max-template-document-size -propertyvalue 524288000(500M這是最大了。)

十、列表導入和導出 stsadm -o exportlist -siteurl http://site1/ -listname ABCList -filename d:\abclist.cmp (導出列表到一個文件) stsadm -o importlist -siteurl http://site2/ -filename d:\abclist.cmp 注:把一個文件導入到SharePoint網站裏,恢復成一個列表

十一、開啓部件視圖的匿名功能 stsadm -o deactivatefeature -url http://localhost:8084 -filename ViewFormPagesLockDown\feature.xml 注:不少場景下,網站開啓匿名了,可是依然須要登陸,主要有些視圖沒有開啓匿名,須要這個命令。運行一遍,關掉匿名,再開便可。

十二、釋放SharePoint補丁的命令 d:\moss\officeserver2007sp1-kb936984-x86-fullfile-zh-cn.exe /extract:d:\moss\Updates

1三、Iframe去掉背景 在嵌入的Iframe中加入allowtransparency="true" scrolling="no"

1四、顏色漸變的css濾鏡 <div id="popupWin_content" onMouseDown="event.cancelBubble=true;" style="overflow:hidden; text-align:center;                  filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,                  StartColorStr='#FFE0E9F8', EndColorStr='#FFFFFFFF');position:absolute;  width:878px; top:0px; height:500px;"

onmouseout="style.textDecoration='none';">嵌入的iframe</div>

1五、字號、磅數、像素對應關係 中文字號VS英文字號(磅)VS像素值的對應關係(96Dpi狀況下): 八號=5磅(5pt) ==(5/72)*96=6.67 =6px 七號=5.5磅 ==(5.5/72)*96=7.3 =7px 小六=6.5磅 ==(6.5/72)*96=8.67 =8px 六號=7.5磅 ==(7.5/72)*96=10px 小五=9磅 ==(9/72)*96=12px 五號=10.5磅 ==(10.5/72)*96=14px 小四=12磅 ==(12/72)*96=16px 四號=14磅 ==(14/72)*96=18.67 =18px 小三=15磅 ==(15/72)*96=20px 三號=16磅 ==(16/72)*96=21.3 =21px 小二=18磅 ==(18/72)*96=24px 二號=22磅 ==(22/72)*96=29.3 =29px 小一=24磅 ==(24/72)*96=32px 一號=26磅 ==(26/72)*96=34.67 =34px 小初=36磅 ==(36/72)*96=48px 初號=42磅 ==(42/72)*96=56px

 

取得列表中的Item的數量:

Int  count =  SPContext.Current.List.Items.Count;

 

這句是取得Item的數目,不得不取得列表中的全部的Item的metadata,這樣咱們程序運行的速度就會相對慢一些,若是列表中的數據量不大,那不會有明顯的影響,若是列表中的數據量很大,那在效率上會有很大的影響。

 

Int  count =  SPContext.Current.List.ItemCount;//建議使用這個來取得列表中的item數量。

 

 

 

  1. 顯示列表中的item

 

SPList  list = SPContext.Current.List;

 

For(int i=0;i<50;i++)

 

{

 

   SPListItem listItem = list.Items[i];

 

}

 

這樣每次都會請求SPListItemCollection集合的新的對象,而使item集合對象沒有被緩存。所以不斷的從數據庫請求全部的數據項,對性能上形成很大的影響。

 

建議的方法是:

 

SPListItemCollection  item = SPContext.Current.List.Items;

 

For(int i=0;i<50;i++)

 

{

 

   SPListItem item = items[i];

 

}

 

  1. 取得item對象

 

SPListItem item = SPContext.Current.List.Items[0];

 

這句主要是從list中先取得對象的全部的Item的Metadata,而後再從這些Item的集合中取獲得index是0的Item

 

建議使用下面語句進行取得Item對象:

 

SPListItem item = SPContext.Current.List.GetItemById(0);

 

兩句SDK執行的區別就是咱們使用SQL語句進行查詢的時候,第一沒有設置where子句的條件,而第二句則是設置了where子句的條件,在數據量很大的狀況下,這樣第二句執行的速度會遠遠大於第一句執行的速度。

 

  1. 更新大量的SharePoint 列表數據項

 

For(int itemIndex=0;itemIndex<100;itemIndex++)

 

{

 

   SPListItem newItem = items.Add();

 

   newItem.Update();

 

}

 

實際上item的Add 或是Update方法是調用了一個存儲過程,來完成這個操做的。

 

若是須要大量的數據更行的使用建議使用SPWeb的ProcessBatchData方法進行更新。具體實例以下:

 

SPContext.Current.Web.ProcessBatchData(queryString);

 

 

 

  1. 取得SharePoint的列表對象

 

SPList list = SPContext.Current.Web.Lists[title];

 

這句取得列表對象先從站點中取得全部的List的Metadata和title進行比較,找到符合條件的list以後返回。

 

建議使用下面的方法取得列表對象:

 

SPList list = SPContext.Current.Web.GetList(listUrl);或

 

SPList list = SPContext.Current.Web.GetListByUrl(listUrl);

 

  1. SharePoint中經常使用的自定義Feature的Location和GroupId

 

位置

自定義操做組 ID

組說明

默認自定義操做 ID

DisplayFormToolbar

N/A

Location 對應於列表的顯示錶單工具欄。

ExportEventToolbarButton(日曆)

ExportContactToolbarButton(聯繫人)

EditControlBlock

N/A

對應於每項編輯控件塊 (ECB) 菜單。

 

EditFormToolbar

N/A

Location 對應於列表的編輯表單工具欄。

 

Microsoft.SharePoint.Administration.ApplicationCreated

連接

「已建立應用程序」頁。

CreateSite

HomePage

Microsoft.SharePoint.Administration.ApplicationManagement

ApplicationSecurity

管理中心的「應用程序管理」頁面上的「應用程序安全性」部分。

  • WebPartSecurity
  • SelfService
  • WebApplicationSecurity
  • ManagePolicy

ManageAuthenticationProviders

Microsoft.SharePoint.Administration.ApplicationManagement

ExternalService

  • 管理中心的「應用程序管理」頁面上的「外部服務鏈接」部分。
  • OfficialFile
  • HtmlViewer

DocConversion

Microsoft.SharePoint.Administration.ApplicationManagement

SiteManagement

  • 管理中心的「應用程序管理」頁面上的「SharePoint 網站管理」部分。
  • CreateSite
  • DeleteSite
  • SiteUse
  • QuotaDefinition
  • SiteQuota
  • SiteOwners

ListSiteCollections

Microsoft.SharePoint.Administration.ApplicationManagement

WebApplicationConfiguration

  • 管理中心的「應用程序管理」頁面上的「SharePoint Web 應用程序管理」部分。
  • Extend
  • Unextend
  • Delete
  • ManagedPaths
  • EmailSettings
  • GeneralSettings
  • ManageContentDatabases
  • ManageWebAppFeatures

ListWebApplications

Microsoft.SharePoint.Administration.ApplicationManagement

WorkflowManagement

管理中心的「應用程序管理」頁面上的「工做流管理」部分。

WorkflowManagement

Microsoft.SharePoint.Administration.Operations

BackupRestore

管理中心的「操做」頁面上的「備份和還原」部分。

  • Backup
  • BackupHistory
  • Restore

BackupStatus

Microsoft.SharePoint.Administration.Operations

DataConfiguration

管理中心的「操做」頁面上的「數據配置」部分。

  • DefaultDatabase

DataRetrieval

Microsoft.SharePoint.Administration.Operations

GlobalConfiguration

  • 管理中心的「操做」頁面上的「全局配置」部分。
  • RunningJobs
  • JobDefinitions
  • AlternateAccessMappings
  • ManageFarmFeatures

Solutions

Microsoft.SharePoint.Administration.Operations

LoggingAndReporting

管理中心的「操做」頁面上的「日誌記錄和報告」部分。

  • DiagnosticLogging

UsageAnalysis

Microsoft.SharePoint.Administration.Operations

Security

管理中心的「操做」頁面上的「安全性配置」部分。

  • ServiceAccount
  • Irm
  • Antivirus
  • BlockedFileTypes

AdministrationRoles

Microsoft.SharePoint.Administration.Operations

Topology

管理中心的「操做」頁面上的「拓撲結構和服務」部分。

  • FarmServers
  • TopologyServices
  • IncomingEmailServer
  • ApproveDGs

EmailConfiguration

Microsoft.SharePoint.Administration.Operations

Upgrade

管理中心的「操做」頁面。

  • SiteUpgradeStatus

FinalizeUpgrade

Microsoft.SharePoint.ContentTypeSettings

Fields

  • 網站集的「內容類型」頁面上的「列」部分。
  • AddField
  • ReorderFields
 

Microsoft.SharePoint.ContentTypeSettings

General

  • 網站集的「內容類型」頁面上的「設置」部分。
  • ChangeNameDescription
  • ChangeOptionalSettings
  • ChangeWorkflowSettings
  • RemoveContentType
 

Microsoft.SharePoint.ContentTypeTemplateSettings

Fields

  • 列表的「內容類型」頁面上的「列」部分。
  • AddField
  • ReorderFields
 

Microsoft.SharePoint.ContentTypeTemplateSettings

General

列表的「內容類型」頁面上的「設置」部分。

  • ChangeNameDescriptionGroup
  • ChangeOptionalSettings
  • ChangeWorkflowSettings

RemoveContentType

Microsoft.SharePoint.Create

WebPages

「建立」頁面上的「網頁」部分。

 

Microsoft.SharePoint.GroupsPage

NewMenu

網站集的「人員和組」頁面上的「新建」菜單。

 

Microsoft.SharePoint.GroupsPage

SettingsMenu

網站集的「人員和組」頁面上的「設置」菜單。

 

Microsoft.SharePoint.ListEdit

Communications

列表或文檔庫的「自定義」頁面上的「通訊」部分。

 

Microsoft.SharePoint.ListEdit

GeneralSettings

列表的「自定義」頁面上的「常規設置」部分。

 

Microsoft.SharePoint.ListEdit

Permissions

列表或文檔庫的「自定義」頁面上的「權限和管理」部分。

 

Microsoft.SharePoint.ListEdit.DocumentLibrary

GeneralSettings

文檔庫的「自定義」頁面上的「常規設置」部分。

 

Microsoft.SharePoint.PeoplePage

ActionsMenu

網站集的「人員和組」頁面上的「操做」菜單。

 

Microsoft.SharePoint.PeoplePage

NewMenu

網站集的「人員和組」頁面上的「新建」菜單。

 

Microsoft.SharePoint.PeoplePage

SettingsMenu

網站集的「人員和組」頁面上的「設置」菜單。

 

Microsoft.SharePoint.SiteSettings

Customization

  • 「網站設置」頁面上的「外觀」部分。
  • ProjectSettings
  • NavOptions
  • Theme
  • TopNav
  • QuickLaunch
  • SaveAsTemplate
  • ReGhost
 

Microsoft.SharePoint.SiteSettings

Galleries

  • 「網站設置」頁面上的「庫」部分。
  • MasterPageCatalog
  • ManageCType
  • ManageField
  • SiteTemplates
  • ListTemplates
  • WebParts
  • Workflows
 

Microsoft.SharePoint.SiteSettings

SiteAdministration

  • 「網站設置」頁面上的「網站管理」部分。
  • RegionalSettings
  • LibrariesAndLists
  • WebUsage
  • UserAlerts
  • RSS
  • SrchVis
  • ManageSubWebs
  • ManageSiteFeatures
  • DeleteWeb
 

Microsoft.SharePoint.SiteSettings

SiteCollectionAdmin

  • 「網站設置」頁面上的「網站集管理」部分。
  • DeletedItems
  • SiteCollectionUsage
  • Storage
  • ManageSiteCollectionFeatures
  • Hierarchy
  • Portal
 

Microsoft.SharePoint.SiteSettings

UsersAndPermissions

  • 「網站設置」頁面上的「用戶和權限」部分。
  • PeopleAndGroups
  • SiteCollectionAdministrators
  • User
 

Microsoft.SharePoint.StandardMenu

ActionsMenu

列表和文檔庫視圖中的「操做」菜單。

 

Microsoft.SharePoint.StandardMenu

ActionsMenuForSurvey

用於調查的「網站操做」菜單。

 

Microsoft.SharePoint.StandardMenu

NewMenu

列表和文檔庫視圖中的「新建」菜單。

 

Microsoft.SharePoint.StandardMenu

SettingsMenu

列表和文檔庫視圖中的「設置」菜單。

 

Microsoft.SharePoint.StandardMenu

SettingsMenuForSurvey

用於調查的「網站設置」連接。

 

Microsoft.SharePoint.StandardMenu

SiteActions

「網站操做」菜單。

 

Microsoft.SharePoint.StandardMenu

UploadMenu

文檔庫視圖中的「上載」菜單。

 

Microsoft.SharePoint.User

ActionsMenu

網站的「權限」頁面上的「操做」菜單。

 

Microsoft.SharePoint.User

NewMenu

網站的「權限」頁面上的「新建」菜單。

 

Microsoft.SharePoint.User

SettingsMenu

網站的「權限」頁面上的「設置」菜單。

 

Microsoft.SharePoint.Workflows

LeftNavBarLinks

用於管理工做流的頁面上的左側導航區域。

 

NewFormToolbar

N/A

Location 對應於列表的新建表單工具欄。

 

ViewToolbar

N/A

Location 對應於列表視圖中的工具欄。

 

 

  1. 若是遇到字符串拼接,咱們一般使用StringBuilder,而不是直接使用字符串直接的連接

 

字符串直接的連接須要的內存量很大,效率很低。建議方法以下:

 

StringBuilder msgString =  new StringBuidler();

 

xmlString.Append(「message1」);

 

xmlString.Append(「message1」);

 

 

 

string message = msgString.ToString();

 

不建議使用的方法是:

 

String message = 「message1」+」message2」;

 

特別是在消息字符串很長的狀況下。程序運行的效率至關的低。

 

  1. SharePoint中有一些對象是非託管的對象,因此須要咱們手動進行釋放,防止內存泄漏。

 

例如:SPSite,SPWeb等等其餘一些對象。可是須要注意的是咱們若是使用全局的SPWeb,就不該該進行釋放,例如:SPContext.Current.Web就是一個全局的Web對象,當咱們使用這個對象的時候,咱們不該該把這個對象進行Dispose。

 

通常的釋放非託管對象的方法有兩種:

 

(1)     try ---catch---finally

 

SPSite site = null;

 

Try

 

{

 

     Site = new SPSite(「http://server:80」);

 

}

 

Catch(Exception er)

 

{

 

     //TODO:

 

}

 

Finally

 

{

 

     If(site != null)

 

{

 

        Site.Dispose();

 

}

 

}

 

(2)     using

 

using(SPSite site = new SPSite(「http://server:80」))

 

{

 

     //TODO

 

}

 

  1. 字符串的比較操做

 

在比較的時候咱們應該注意是否忽略大小寫,這個地方是很容易出現問題的地方。

 

String  name1 =  「A」;

 

String  name2 = 「a」;

 

 

 

Bool flag = name1.Equals(name2);// flag 是false

 

Bool flag = name1.Equals(name2, StringComparison.OrdinalIgnoreCase);//flag 是true

 

  1. 在SharePoint中咱們要設置folder的權限,首先咱們要打破原有的繼承的權限,可是這裏有一個問題須要注意一下:

 

若是使用folder.Item.BreakRoleInheritance(false)的時候會拋出一個異常,緣由是SharePoint API中原有這個問題。咱們解決這個問題一般使用folder. Item.BreakRoleInheritance(true);而後咱們在刪除掉他原有的權限。這樣操做以後再給這個folder賦予新的權限便可。

 

  1. 保持程度的可讀性

 

(1) 在程序中最好不要屢次使用return , 儘可能在程序結束或是咱們的邏輯完成的時候進行return例如:

 

If(testValue == 1)

 

{

 

Return 1;

 

}

 

Else if(testValue == 2)

 

{

 

   Return 2;

 

}

 

…….

 

建議使用以下方法:

 

Int returnValue =0;

 

If(testValue ==1)

 

{

 

   returnValue = 1;

 

}

 

Elseif(testValue ==2)

 

{

 

   returnValue = 2;

 

 

 

}

 

……

 

Return returnValue;

 

(2) 在程序中儘可能不要使用GoTo語句,使用GoTO語句使程序很是的不可讀,可能以後編寫程序的人才懂程序的意思,其餘人根本看不懂程序是完成什麼功能的,還有可能時間長了,編寫程序的人本身也不懂具體是什麼意思了,這樣會很是糟糕,不利於之後的擴展和維護。

 

 

 

  1. 判斷字符串是否爲空串,應該儘可能使用下面方法:

 

String message = 「123」;

 

Bool flag = string.IsNullOrEmpty(message);

 

咱們在初始化一個空字符串的時候,應該儘可能使用以下方法:

 

String str1 = string.Empty;

 

儘可能不要使用 string str2 = 「」;

 

由於這兩種內存分配的方式,是不一樣的,C#內部處理的機制也是不相同的。

 

  1. 注意C#中的拆箱和裝箱問題

 

在編程實踐中咱們若是使用List<T> lists = new List<T>();,可以解決的問題,最好不要使用ArrayList和Hashtable等集合,由於ArrayList、Hashtable這樣的集合會存在拆箱和裝箱問題,佔用程序很大的性能,若是數量過多會嚴重影響性能。

相關文章
相關標籤/搜索