SharePoint 2013 - Import do Visual Studio

Požadavek

Potřebuji dostat nově založené fieldy, contenty typy a listy do wsp balíčku.

Řešení

Lze to provést pomocí Visual Studia, kde si založím projekt typu "SharePoint 2013 - Import Solution Package" a naimportuji vybrané položky.

Postup

1) Uložit web jako šablonu. Postup je zde

Problémy, které se mi vyskytly
  • Chybí odkaz "Save Site as Template"
    Řešení je zde
  • Při vytváření šablony nastal problém se seznamem "NintexWorkflowHistory" a tvorba skončila chybou.
    Problém býl způsoben počtem položek v seznamu.
    Řešením bylo snížení (smazáni) počtu položek a opětovné spustěná akce

2) Šablonu mám vyexportovanou a nyní potřebuji provést import do Visual Studia. Postup, jak to udělat, je zde.

Odkazy

Knihy zdarma

SharePoint - nasazení EventReceiveru do SubWebu

Zadání

Potřebuji nasadit EventReceiver na konkrétní vlastní list v podwebu.

Postup

1) Založím novou Features akci Add Faeture
Vytvoří se např. následující kód.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListTemplateId="100">
    <Receiver>
      <Name>MujListReceiverItemAdded</Name>
      <Type>ItemAdded</Type>
      <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
      <Class>MojeDLL.MujListReceiver</Class>
      <SequenceNumber>10000</SequenceNumber>
    </Receiver>
  </Receivers>
</Elements>

Po nasazení WSP balíčku se při aktivaci ER nastavaví na všechny vlastní listy.

2) Potřebuji ER nastavit na konkrétní list.

Provedu úprava souboru Element.XML

<Receivers ListUrl="Lists/MujList">

3) Konkrétní list není rootu webu, ale v podwebu

Při nasazování to hlásí chybu, že Feature nelze aktivovat, protože list není k dispozici.

4) Řešením je úprava konfigurace

Projekt > Vlastnosti > Site URL > http://mujweb/ zmenit na  http://mujweb/subweb

Features > MojeFeatura > Vlastnosti > Activate On Default = false

Odkazy

http://notuserfriendly.wordpress.com/2013/11/28/add-an-event-receiver-to-a-specific-list-instance/

SharePoint podpora přímo do Microsoftu

Řešení problémů a rady přímo z Microsoftu.
Top Support Solutions for Microsoft SharePoint Server

WebParts I.

.NET AND SHAREPOINT METEO COMPONENTS

Předpověd počasí
[FREE, SharePoint 2003, 2007]
http://meteo.codeplex.com/

Advanced WebParts

http://webparts.codeplex.com/

AJAX SharePoint List Rotator WebPart

http://www.sharepointsecurity.com/sharepoint/sharepoint-development/ajax-sharepoint-list-rotator-webpart/

Basic SharePoint List search / filter WebPart

http://splistfilter.codeplex.com/

Free Server Name WebPart Which WFE Is Servicing a SharePoint Request

http://www.sharepointsecurity.com/sharepoint/sharepoint-development/free-server-name-webpart-which-wfe-is-servicing-a-sharepoint-request/

RSS Reader Web Part

http://rssreaderwebpart.codeplex.com/

SharePoint 2010 EUPC beta

http://sourceforge.net/projects/sharepoint2010e/

SharePoint 2010 Google Maps V3 WebPart

http://spgooglemappart.codeplex.com/

Sharepoint Upload Document Web part

http://spupload.codeplex.com/

SharePoint Weather Web Part

http://weatherwebpart.codeplex.com/

SimpleSecurity SharePoint WebPart for Easing SharePoint Security

http://www.sharepointsecurity.com/sharepoint/sharepoint-security/simplesecurity-sharepoint-webpart-for-easing-sharepoint-security/

SPTU - SharePoint Tools and Utilities

http://sptu.codeplex.com/

Timer Web Part

http://timerwebpart.codeplex.com/

Secure SharePoint Silverlight Web Part - Silverlight Security & Auditing

http://securesilverlight.codeplex.com/

World Time

http://www.pentalogic.net/sharepoint-products/world-time

Změna nastavení práv na položku v knihovně

Nejdříve načtu položku, kterou chci nastavovat. Např. následujícím způsobem.

SPListItem item = web.Lists["MojeKnihovna"].GetItemById(1);
SPFile nFile = item.File;


Zruším dědění práv.

nFile.Item.BreakRoleInheritance(true);


Smažu stávající práva.

SPRoleAssignmentCollection SPRoleAssColn = nFile.Item.RoleAssignments;
for (int i = SPRoleAssColn.Count - 1; i >= 0; i--)
{
  SPRoleAssColn.Remove(i);
}


Načtu typ role.

SPRoleDefinition role = nFile.Item.Web.Site.RootWeb.RoleDefinitions.GetByType(SPRoleType.Contributor);


Nastavím práva na skupinu.

SPGroup group = item.Web.SiteGroups[loginName];
SPRoleAssignment ra = new SPRoleAssignment((SPPrincipal)group);
ra.RoleDefinitionBindings.Add(role);
item.RoleAssignments.Add(ra);


Nastavím práva na osobu.

SPRoleAssignment ra = new SPRoleAssignment(loginName, null, null, null);
ra.RoleDefinitionBindings.Add(role);
item.RoleAssignments.Add(ra);

Seznam všech listů na webu pomocí PS

Pro výpis listů na webu lze použít následující PowerShell script.

param (
 [string]$url = "$(Read-Host 'url [e.g. http://moss]')"
)

function main() {
  [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
  Display-SPList -url $url
}

function Get-SPSite([string]$url) {
  New-Object Microsoft.SharePoint.SPSite($url)
}

function Get-SPWeb([string]$url) {
  $SPSite = Get-SPSite $url
  return $SPSite.OpenWeb()
  $SPSite.Dispose()
}

function Display-SPList([string]$url) {
  $OpenWeb = Get-SPWeb $url
  $OpenWeb.Lists | Select Title,ID
  $OpenWeb.Dispose()
}

main

Seznam - List Template

Seznam definicí, které jsou k dispozici jako možnost pro vytváření seznamů.

HodnotaTyp
100 Generic list
101 Document library
102 Survey
103 Links list
104 Announcements list
105 Contacts list
106 Events list
107 Tasks list
108 Discussion board
109 Picture library
110 Data sources
111 Site template gallery
112 UserInformation
113 Web Part gallery
114 List template gallery
115 XML Form library
116 Master Page Catalog
117 No Code Workflows
118 Workflow Process
119 Wiki Page Library
120 Custom grid for a list
130 Data Connection Library
140 Workflow History
150 Gantt Tasks
200 Meeting Series list
201 Meeting Agenda list
202 Meeting Attendees list
204 Meeting Decisions list
207 Meeting Objectives list
210 Meeting text box
211 Meeting Things To Bring list
212 Meeting Workspace Pages list
300 Portal Sites list
301 Posts (Blog)
302 Comments (Blog)
303 Categories (Blog)
1100 Issue tracking
1200 Admin Tasks
2002 Personal document library
2003 Private document library

Seznam jazykových kódů (LCID)

Microsoft používá jazukové kódy pro některé produkty. V tabulce je pár vybraných a ostatní jsou zde.

Jazyk - Země/RegionLCID HexLCID Dec
Chinese - People's Republic of China 0804 2052
Czech 0405 1029
English - United States 0409 1033
English - United Kingdom 0809 2057
French - France 040c 1036
German - Germany 0407 1031
Japanese 0411 1041
Polish 0415 1045
Portuguese - Portugal 0816 2070
Russian 0419 1049
Slovak 041b 1051
Spanish - Spain (Modern Sort) 0c0a 3082
Spanish - Spain (Traditional Sort) 040a 1034
Turkish 041f 1055
Ukrainian 0422 1058

Seznam fieldů v listu pomocí PS

Pro výpis fieldů v listu lze použít následující PowerShell script.

param (
  [string]$url = "$(Read-Host 'url [e.g. http://moss]')",
  [string]$List = "$(Read-Host 'List Name [e.g. Announcements]')"
)

function main() {
  [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
  Display-SPListField -url $url -List $List
}

function Get-SPSite([string]$url) {
  New-Object Microsoft.SharePoint.SPSite($url)
}

function Get-SPWeb([string]$url) {
  $SPSite = Get-SPSite $url
  return $SPSite.OpenWeb()
  $SPSite.Dispose()
}

function Display-SPListField([string]$url, [string]$List) {
  $OpenWeb = Get-SPWeb $url
  $OpenWeb.Lists[$List].Fields | Select Title,InternalName,Type
  $OpenWeb.Dispose()
}
main

O blogu

Tento blog je místem, kde sdílím své zkušenosti, části zdrojových kódů, odkazy apod. Zdroje jsou zaměřeny převážně na problematiku portálového řešení SharePoint a vývoj webů v prostředí Microsoft. Mým cílem není úplně obsahnout konkrétní řešení, ale pouze tu část, kterou potřebuji. Pokud se problematika obsáhlejší, jsou pod článkem odkazy na související informace.

O autorovi

Oldřich Zátopek
Zabývám se vývojem webových aplikací internet/intranet na Microsoft technologiích. Hlavní specializace je SharePoint. LinkedIn