close

Thema

AllgemeinDevelopment, CodingHow-To, Tutorial, SzenarioOn-PremisesSharePoint 2013

Kleine feine API: SPQuery mit Camlex.Net

Ein Assembly, das es schon seit einigen Jahren gibt und das mir bei einem meiner letzten Projekte sehr geholfen hat, ist Camlex.Net.

Dabei handelt es sich, um die Möglichkeit SPQuery Abfragen auf Basis von “Expression Trees” zu erstellen. Somit ist es nicht notwendig CAML Abfragen manuell zu erstellen. Wie fehleranfällig bzw. wie unflexibel die dynamische Erweiterung von solchen Abfragen ist, weiß jeder, der es einmal versucht hat. Die Fehlermeldungen, die man im Fehlerfall erhält, wenn Abfragen falsch sind, geben auch selten Informationen über das tatsächliche Problem.

Um Camlex.Net verwenden zu können, braucht man lediglich die Camlex.Net.dll (oder für den Client-Zugriff die Camlex.Client.dll). Diese kann man auf Codeplex (http://camlex.codeplex.com/) herunterladen oder per Install-Package installieren. Wichtig dabei ist, wenn man es in einer SharePoint Lösung verwendet, muss diese DLL im Package inkludiert werden, falls sie nicht am Ziel SharePoint vorhanden ist. Zusätzlich muss man noch ein using System.Linq im Source Code hinzufügen und schon kann man mit Hilfe von LINQ komfortable Abfragen erstellen.

Eine einfache Abfrage

Stellen wir uns vor, wir suchen in einer Liste, die Büchertitel speichert, ein bestimmtes Buch mit dem Titel “Intrigen der Macht”. Diese Abfrage sieht mit Camlex.Net wie folgt aus.

var camlQuery = Camlex.Query()

.Where(item => (string)item[„Title“] == „Intrigen der Macht“);

Man erhält dadurch eine Instanz vom Type IQuery zurück, die eine Methode implementiert, um daraus ein SPQuery Objekt zu erzeugen.

camlQuery.ToSPQuery() liefert ein SPQuery Objekt zurück, das anschließend an die Methode SPLiist.GetItems(SPQuery) wie gewohnt übergeben werden kann.

Dieses einfache Beispiel zeigt, die Abfrage für konstante Werte.

Eine Abfrage mit dynamischen Werten

Nehmen wir aber an, man will einen dynamischen nicht konstanten Ausdruck, der über ein entsprechendes Interface übergeben wurde, abfragen. Das nachfolgende Beispiel ist die Umsetzung einer TextBox (TitleTextBox) in einer ApplicationPage und einem entsprechenden Code-Behind File.

Func<object> booktitle = () => TitleTextBox.Text;

var camlQuery = Camlex.Query()

.Where(item => (string)item[„Title“] == booktitle());

Dieses Beispiel entspricht nun schon eher einem echten Anwendungsfall, gehen wir aber noch einen Schritt weiter.

Eine dynamische Abfrage

Wenn man z.B. ein Suchformular hat, das es ermöglicht nach dem Titel und nach dem Autor zu suchen, wobei der Autor als optionaler Suchparameter mitgegeben werden kann, so muss man eine dynamische Abfrage erstellen. Dies würde dann mit Hilfe von Camlex.Net wie folgt umgesetzt werden:

Func<object> booktitle = () => TitleTextBox.Text;

Func<object> bookautor = () => AuthorTextBox.Text;

var expressions = new List<Expression<Func<SPListItem, bool>>>();

expressions.Add(item => (string)item[„Title“] == booktitle());

if (!string.IsNullOrEmpty(AuthorTextBox.Text))

expressions.Add(x => (string)item[„Author“] == bookauthor());

var camlQuery = Camlex.Query()

.WhereAll(expressions);

(Die Methode für OR wäre im obigen Beispiel .WhereAny(expressions).)

Somit hat man eine dynamische SPQuery, die nur den Autor in der Filterbedingung berücksichtigt, wenn dieser tatsächlich auch über das Suchformular eingegeben wird.

An dieser Stelle sei auch erwähnt, dass die Abfrage von verschiedenen Typen (Lookup, Int, DateTime, usw.), die Kombination von And und Or Operatoren, die Sortierung und die Gruppierung möglich sind.

Dem interessierten Leser empfehle ich folgende Links:

http://camlex.codeplex.com/ hier im Speziellen die Dokumentation und das Diskussionsforum.

http://camlex-online.org.

Published: 04.07.2014 15:16

Source: New feed

mehr lesen
AllgemeinCloudCollaboration, ProduktivitätHybridYammer

Yammer Zertifizierungen

Wir bereits geschrieben arbeiten wir seit einiger Zeit mit Yammer im produktiven Einsatz. Einige Gruppen haben sich schon gebildet, regelmäßig entstehen neue Konversationen – sehr praktisch um am Laufenden zu bleiben!

So wie bei allen Werkzeugen braucht es eine Zeit, bis alle flüssig damit arbeiten können – prinzipiell ist Yammer aber einfach gehalten und einfach zu lernen. Trotzdem zahlt es sich aus – vor allem weil ich das Produkt wirklich kennen lernen will – sich ein bisschen mehr damit zu beschäftigen und vielleicht sogar Zertifizierungen zu überlegen.

image

Es gibt mehrere Abstufungen bzw. Bereiche für die offizielle Zertifikate angeboten werden:

  • Yammer Power User Certification
  • Yammer Administrator Certification
  • Yammer Community Manager Certification
  • Yammer Trainer Certification
  • Yammer Developer Certification (mehr …)
mehr lesen
AllgemeinCloudCollaboration, ProduktivitätEnterprise SearchHow-To, Tutorial, SzenarioSocial Networking, CommunityYammer

Yammer?! Yammer! Was ist Yammer überhaupt?

Wir bei HATAHET haben Yammer seit einiger Zeit intern im Einsatz und wollen euch davon natürlich auch berichten! Was könnt ihr erwarten?

Was ist Yammer?
Die erste Frage ist immer: „Was ist Yammer überhaupt?“
Eine kurze Antwort darauf kann sein: Yammer ist ein sogenanntes „Enterprise Social Network“, dass die Zusammenarbeit über Konversationen massiv erleichtert und den dadurch generierten Inhalt durchsuchbar zur Verfügung stellt.

Hier eine andere, ebenfalls kurze Antwort in Form eines Videos:

Rijkswaterstaat: Yammer introduction from Tribewise on Vimeo.

Wofür kann ich Yammer in meinem Unternehmen einsetzen?
Die nächste Frage: “Und was können wir damit machen?”
Yammer kann vielfältig eingesetzt werden und die Produktivität im Unternehmen steigern. Ein paar Szenarien werde ich an dieser Stelle vorstellen. (mehr …)

mehr lesen
AllgemeinAutomation, Workflow, Self ServiceHow-To, Tutorial, SzenarioKonfiguration, DeploymentOn-PremisesSharePoint 2013

Lösung: Fehlerhaftes Check Out Verhalten in SharePoint 2013

Letztens ist uns nach einer SharePoint 2013 Implementierung ein sehr “eigenartiges” Verhalten beim Check In/Out in Document Libraries aufgefallen. Und zwar wenn das Check Out erforderlich ist um ein Dokument zu bearbeiten.

image

Wählt man ein Dokument zum Bearbeiten aus und klickt im Ribbon dann auf “Edit Properties” so erhält man, wie gewohnt, den Hinweis dass man das Dokument zuerst mal auschecken muss um es zu editieren. Soweit ja alles gewohnt und OK!

image

image (mehr …)

mehr lesen
AllgemeinKonfiguration, DeploymentOn-PremisesSharePoint 2013

Ankündigung: SharePoint 2013 SP1 Re-Release

Microsoft hat gestern eine aktualisierte Version des Service Pack 1 für SharePoint 2013 zur Verfügung gestellt. Diesmal hoffentlich ohne weitere Bugs.

Product KB
SharePoint Foundation http://support.microsoft.com/kb/2880551
SharePoint Server http://support.microsoft.com/kb/2880552
Project Server http://support.microsoft.com/kb/2880553
SharePoint Server Language Pack http://support.microsoft.com/kb/2880554
SharePoint Foundation Language Pack http://support.microsoft.com/kb/2880555
Office Web Apps Server http://support.microsoft.com/kb/2880558

(mehr …)

mehr lesen
AllgemeinDevelopment, CodingHow-To, Tutorial, SzenarioMigration, UpgradeOn-PremisesSharePoint 2013

SharePoint 2013 DEV: Solution Migration, Migrations Highlights

Eine Solution von SharePoint 2010 auf SharePoint 2013 zu migrieren ist bis auf die Details eine feine Sache. Man folgt einfach den folgend angeführten Punkten und muss sich dann nur mehr um die eben erwähnten Details kümmern. Diese können in der Schwierigkeit von sehr einfach bis unmöglich variieren, je nachdem wie umfassend sich der anprogrammierte Bereich in den Versionen verändert hat.

Solution Migration 2010 – 2013

1. Unload des Csproj-Files und öffnen mit Editor

2. XML Element TargetFrameworkVersion auf v4.5 ändern:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

3. TargetOfficeVersion direkt unter <Project><PropertyGroup>…<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>:

<TargetOfficeVersion>15.0</TargetOfficeVersion> (mehr …)

mehr lesen
AllgemeinKonfiguration, DeploymentOn-PremisesSharePoint 2013

Good to know: Download SharePoint 2013 Service Pack 1 zurückgezogen

Body:

Microsoft hat den Download für das SharePoint 2013 Service Pack 1 vorerst mit folgender Meldung gestoppt:

We have recently uncovered an issue with this Service Pack 1 package that may prevent customers who have Service Pack 1 from deploying future public or cumulative updates. As a precautionary measure, we have deactivated the download page until a new package is published. (KB2817429)

Falls Sie das Service Pack bereits heruntergeladen haben bitte nicht installieren! Sobald es hier Neuigkeiten gibt werden wir sie in diesem Blog veröffentlichen.

Laut Bill Bear ist das SharePoint 2013 inkl. SP1 ISO-Package, welches über MSDN zum Download bereit steht, nicht betroffen (siehe Blogbeitrag Todd Klindt).

LG
Markus Reisinger | markus@hatahet.eu | powered by www.sharepoint-must-haves.eu

Published: 04.04.2014 06:44

Source: New feed

mehr lesen
AllgemeinDevelopment, CodingOn-PremisesSharePoint 2013Tool, Bot, App, Add-In

SharePoint 2013 App Modell – Hosting Möglichkeiten

In meinem letzten Blogbeitrag hab ich bereits angedeutet, dass es verschieden Möglichkeiten gibt SharePoint 2013 Apps zu hosten. Diesmal möchte ich eine kurze Zusammenfassung der Hosting Möglichkeiten geben. Das SharePoint App Model bietet drei Optionen, die man beim Entwickeln einer neuen SharePoint App bereits wissen sollte, da man sich in Visual Studio bei der Erstellung eines neuen Projekts dafür entscheiden muss.

SharePoint 2013 Bloglog, Visual Studio New project (HATAHET)

Die drei Möglichkeiten sind:

  1. Provider-hosted Apps
  2. Autohosted Apps
  3. SharePoint-hosted Apps

Remote Web

Um das besser zu verstehen, muss ich an dieser Stelle den Begriff Remote Web kurz erklären.

Das Remote Web bezeichnet einen Webserver, der außerhalb der SharePoint 2013 Farm Funktionalitäten für die App zur Verfügung stellt. Es kann nicht nur eigene komplexe Funktionalitäten zur Verfügung stellen, um in einer App verwendet zu werden, sondern es kann selbst auch über das Client Side Object Modell (CSOM) den SharePoint 2013 “anprogrammieren”. Die App, d.h. die Sub-Site, die im SharePoint die App repräsentiert, verwendet in so einem Fall Webseiten des Remote Webs als Startseite. Dies wird im App-Manifest als RemoteAppUrl hinterlegt. “~remoteAppUrl” ist ein dynamischer Token, der beim Entwickeln eine Erleichterung darstellt, da man nicht ständig die URL des Remote-Webservers eingeben muss. (mehr …)

mehr lesen
AllgemeinDevelopment, CodingHow-To, Tutorial, SzenarioMigration, UpgradeOn-PremisesSharePoint 2013

SharePoint 2013 DEV: Workflow Manager 1.0, Migrations Highlights

Body:

Eines der neuen Features in SharePoint 2013 ist der eigenständig arbeitende Workflow-Manager. Erst einmal installiert, was durchaus aufgrund von Permission-Aspekten trickreich sein kann, eröffnet der Workflow-Manager neue Möglichkeiten um hilfreiche Workflows in einer SharePoint-Umgebung anzulegen.

image

Möchte man nun eine Custom-Workflow-Action von SharePoint2010 auf SharePoint2013 migrieren, kann man das tun, indem man die Abwärtskompatibilität nutzt. Diese funktioniert Out-of-the-Box und schafft keine neuen Herausforderungen. Ganz im Gegenteil zu einer vollständigen Migration auf SharePoint2013.

SharePoint Designer und der neue Workflow-Manager sind aktuell scheinbar nicht auf Entwicklungen in diesem Bereich ausgelegt. Gründe dafür sind, dass Dlls der entwickelten Assembly und eine AllowedTypes.xml händisch in zwei Ordner des Workflow-Managers kopiert werden müssen. Ein Deployment integiert in das Hinzufügen einer Solution in eine SharePoint-Umgebung gibt es derzeit nicht.

Zudem gestaltet sich das Entwickeln sehr mühsam. Bei jedem Entwicklungslauf muss der Cache des SharePoint-Designers geleert werden, der über drei Position im File-System verteilt ist. Die Custom-Workflow-Action muss komplett neu im VS-Projekt angelegt werden und manchmal muss sogar das entsprechende Feature neu erstellt werden. Erschwerend hinzukommt, dass Fehlermeldungen rar aufscheinen.

Fazit für das Migrieren und Entwickeln von Custom-Workflow-Actions ist das Umsatteln auf Web-Services. Der neue Workflow-Manager bietet nämlich die Möglichkeit, genau diese aufzurufen. Deshalb heißt es für uns Abschiednehmen von Custom-Workflow-Actions und die neue Möglichkeit der Web-Services im Workflow-Bereich Willkommen zu heißen.

lg Georg

Published: 05.03.2014 07:18

Source: New feed

mehr lesen
AllgemeinKonfiguration, DeploymentOn-PremisesSharePoint 2013

Ankündigung: SharePoint 2013 Service Pack 1 released

Letzte Woche hat Microsoft, wie angekündigt, das Service Pack 1 für SharePoint Server 2013 veröffentlicht. Wie immer enthält das Service Pack alle zuvor freigegebenen Cumulative Updates (seit Dezember 2013)

Positiv ist, dass man für die Installation des Service Packs das Public Update von März 2013 NICHT ! vorinstallieren muss. D.h. auf einer frischen RTM Installation kann man ab sofort gleich das Service Pack einspielen und muss nicht erst das PU installieren.

Als eine der wesentlichen Neuerungen, die mit dem Service Pack kommen, kann man wohl die Unterstützung für Windows Server 2012 R2 ansehen. Diese Betriebssystem
Version war ja bislang nicht für SharePoint 2013 supportet.

Bug Reports oder Regressionen sind derzeit noch keine bekannt.

Hier noch die Links zum KB Artikel bzw. direkt zum Download.

so long

Ernst  Zwinkerndes Smiley

Published: 03.03.2014 08:51

Source: New feed

mehr lesen
1 16 17 18 19 20 25
Page 18 of 25