Eigentlich sollte jeder .NET Entwickler JetBrains ReSharper kennen und verwenden. Eine Umfrage von Golo Roden im Rahmen des .NET Day Franken bestätigte dies sogar letzte Woche. (Zutreffend logischerweise nur für Anwesende seiner Session).
Ein nettes Feature des ReSharper’s sind die LiveTemplates, mit deren Hilfe kann man Shortcuts definieren, die dann später im Codeeditor verwendet werden können und ein definiertes Stück SourceCode an der gewünschten Stelle einfügen.
Gerade in der SharePoint Entwicklung ist es so, dass man bestimmte Ausdrücke immer wieder verwenden muss. Nahezu in jeder Solution findet man ähnliche Konstrukte wie
using(SPSite site = new SPSite(siteUrl))
{
using(SPWeb web = site.OpenWeb(webUrl))
{
// ...
}
}
Hier mal ein paar meiner LiveTemplates die ich im SharePoint Context verwende. Eventuell kann der ein oder andere diese ja gebrauchen
- spsite
- using von SPSite und SPWeb
- GetProp
- Property aus dem SPWeb PropertyBag auslesen
- gp
- übergeordnetes (Parent)SPListItem auslesen
- elevated
- Delegat zur Ausführung von Code mit administrativen Rechten
Hier jeweils der C# Output
spsite
String siteUrl = "siteUrl";
String webUrl = "webUrl";
using (Microsoft.SharePoint.SPSite site = new Microsoft.SharePoint.SPSite(siteUrl))
{
using (Microsoft.SharePoint.SPWeb web = site.OpenWeb(webUrl))
{
}
}
GetProp
String propertyContent = String.Empty;
Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite secureSite = new SPSite(siteUrl))
{
using (SPWeb web = secureSite.OpenWeb(webUrl))
{
if (web.Properties.ContainsKey(propertyName))
propertyContent = web.Properties[propertyName];
}
}
});
gp
Microsoft.SharePoint.SPListItem parentListItem = null;
try
{
int lastIndex = currentItem.Url.LastIndexOf('/');
String url = currentItem.Web.Url + "/" + currentItem.Url.Substring(0, lastIndex);
Microsoft.SharePoint.SPFolder folder = currentItem.Web.GetFolder(url);
parentListItem = folder.Item;
}
catch (Exception)
{
// No parent found...
// parentListItem will still be null
}
elevated
Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(delegate()
{
});
Download
Ich habe die ReSharper LiveTemplates als XML exportiert, hier könnt ihr diese downloaden.
Ich werde in Zukunft noch weitere LiveTemplates zu SharePoint hier publizieren, von daher lohnt es sich von Zeit zu Zeit mal vorbeizuschauen. :)