Freitag, 23. März 2012

Verwaltete Metadaten nicht nutzbar. Taxonomy Feature kann nicht aktiviert werden.

Erstellt man eine SiteCollection mit dem "Leere Website" Template kann man verwaltete Metadaten zunächst nicht nutzen, da das Taxonomy Feature nicht aktiviert ist. Schaut man in die Site Features Verwaltung, ist das Feature nicht aufgelistet, kann jedoch über die Powershell aktiviert werden.

Enable-SPFeature -id 73EF14B1-13A9-416b-A9B5-ECECA2B0604C -URL http://mySiteCollection

Jetzt kann wie gewünscht die Spalte "Verwaltete Metadaten" verwendet werden.

Sonntag, 11. März 2012

101 SharePoint Code Samples

Jeden Tag ist man als SharePoint Entwickler wiederkehrenden Aufgaben gegenübergestellt. Einige solcher Aufgaben wurden in 101 Code Samples zusammengefasst.

http://code.msdn.microsoft.com/SharePoint-2010-101-Code-da251182

Samstag, 10. März 2012

Fehlermeldung: Sie müssen einen Wert für dieses Pflichtfeld angeben

Diese Fehlermeldung kommt auf, wenn man beim Branding in der .master einen placeHolder mit visible=false ausblendet. Auskommentieren von placeHoldern verursacht den gleichen Fehler.
Um das problem zu umgehen kann man placeHolder mit style="display:none" ausblenden.

Freitag, 2. März 2012

LINQ Abfragen beschleunigen

1. DataContext auf das nötigste beschränken

Legt euren DataContext nicht auf die komplette Datenbank. Behandelt Ihn je nach gebraucht. Man kann trotzdem noch den gleichen Datenbankvebrindungs String benutzen.

2.  Object Tracking abschalten

Wenn es nicht genutzt wird: abschalten!

using (NorthwindDataContext context = new NorthwindDataContext())
{
  context.ObjectTrackingEnabled = false;
}

3. CompiledQuery benutzen

Wandelt eure Querys in Compiled Querys um. Beim ersten aufruf werden diese compiled und man kann Sie in einer static Variable weiter nutzen.

Func<MyDatabaseDataContext, IEnumerable<MyTable>> func =
CompiledQuery.Compile<MyDatabaseDataContext, IEnumerable<MyTable>>
   ((MyDatabaseDataContext context) => context.MyTables.
      Where<MyTable>(x => x.MyProperty > someValue));

4. DataLoadOptions benutzen

DataLoadOptions options = new DataLoadOptions();
  options.AssociateWith<Mytable>( x => x.MyPropery.Where<MyProperty>(y => !y.Available));
  context.LoadOptions = options;

5. Nur das Laden, was benötigt wird

context.Products
           .Take<Product>(pageSize)
           .Skip<Product>(startingPageIndex * pageSize)
           .ToList<Product>();