close

On-Premises

AllgemeinCloudDevelopment, CodingHow-To, Tutorial, SzenarioHybridMicrosoft 365On-PremisesScripting, PowerShellSharePoint 2013SharePoint 2016SharePoint Online

SharePoint 2013 DEV: Javascript – ein Must-Have!

Bekannt ist, dass Javascript eine Scriptsprache und keine Programmiersprache ist. Zumindest für Entwickler. Trotzdem stehen genau diese oft vor der Anforderung, dass genausoviel von Solutions in Javascript wie von Solutions in anderen vollständigen Programmiersprachen gefordert wird. Nur wie soll eine prozedurale Scriptsprache dabei mithalten können?

In vielen Punkten gibt es keine Möglichkeit dafür, an anderer Stelle mittlerweile sehr wohl. In letzter Zeit sind sehr viele Libraries entstanden, die mit vielen Schwierigkeiten, die sich in Javascript stellen, leicht umgehen können. Im Falle von Databinding sind Knockout oder AngularJS wahre Problemlöser. Bei 2D-Geometry hilft Svg, bei 3D ThreeJS.

Trotz aller Neuerungen kämpft man aber leider immer noch mit Unterschieden unter den verschiedenen Browsern. Eine einheitliche Standardisierung könnte hier vieles vereinfachen, allerdings ist so etwas noch ferne Zukunftsmusik, falls es überhaupt eintritt. Deshalb ist es unter Umständen vernünftiger auf Technologie zu setzen, die auf Basis von Plugins arbeitet.

In diesem Fall muss sich der Hersteller des Plugins um die Unterschiede in den Browsern kümmern, während sich der Entwickler auf die Umsetzung seiner Solution konzentrieren kann. Eines der bekanntesten Beispiele dafür ist Unity. Diese Engine läuft sowohl in allen größeren Browsern als auch auf Applikationsebene und allen mobilen Devices. Eine durchaus abzuwägende Alternative, besonders weil Unity auch C# unterstützt.

Happy Coding!

Published: 08.09.2014 08:42

Source: New feed

mehr lesen
AllgemeinKonfiguration, DeploymentOn-PremisesSharePoint 2013

SharePoint 2013 August 2014 CU veröffentlicht

Nachdem Microsoft ja mit Juli angekündigt hatte Cumulative Updates für SharePoint nun monatlich zu veröffentlichen steht nun seit 13.August das nächste CU zum Download zur Verfügung.

Leider ist es diesmal so dass es keine kompletten Packages zum Download gibt sonder nur die Fixes für die einzelnen Komponenten. Da das CU damit nicht alle vorhergehenden Updates mit einschließt muss somit die Farm zumindest auf Patch-Stand CU Juli 2014 sein damit die neuen Updates eingespielt werden können. Argumentiert wird das mit der Größe der Gesamtupdates !? Wichtig ist auch noch zu erwähnen dass das CU damit auch nicht das SP1 mit Implementiert, dieses sollte vor dem Update auch implementiert werden.

Hier die Liste mit den Knowledge Base Artikeln für das August 2014 CU:

  • KB 2883081 – SharePoint Foundation 2013 August 2014 CU
  • KB 2883086, KB 2883085, KB 2883078, KB 2880559, KB 2760213 – SharePoint Server 2013 August 2014 CU
  • KB 2883083 – SharePoint Server 2013 with Project Server August 2014 CU
  • KB 2883093 – Office WebApps Server 2013 August 2014 CU

Hier geht’s zum MSDN Beitrag dazu.

Ein Hinweis noch, weil wir dazu auch immer wieder gefragt werden: Auch für den SharePoint Server muss das SharePoint Foundation Update installiert werden. Das Gleiche gilt auch für Project Server, hier muss das Foundation und das Server Update zuvor installiert werden.

LG
Markus

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

Published: 18.08.2014 06:31

Source: New feed

mehr lesen
AllgemeinCloudFormularmanagementHow-To, Tutorial, SzenarioHybridMicrosoft 365Office ClientOn-PremisesSharePoint 2013SharePoint 2016SharePoint Online

Lösung: Fehler im Interner Explorer 11 beim Öffnen von InfoPath Forms

Nachdem immer mehr unserer Kunden den IE11 einsetzen bekommen wir mehr Anfragen zu folgendem Szenario:

Ein InfoPath Formular wird geöffnet und es erscheint die Meldung “Object doesn’t support property or method ‘addEventListener’. Klicken Sie auf Neu beginnen um eine neue Kopie des Formulars zu laden….

image

Grund für den Fehler ist der Protected Mode des Internet Explorers der hier das Öffnen des Formulars unterbindet.

Die Lösung dafür ist den Internet Explorer 11 in einen anderen Kompatibilitätsmodus zu schalten! Dazu im IE das Menü “Extras” öffnen (ALT Taste drücken wenn es nicht sichtbar ist) und dort auf “Einstellungen der Kompatibilitätsansicht” klicken.

image

Gib dann die URL der Website an für die die Kompatibilitätsansicht gelten soll (z.B. hatahet.eu) und klicke auf “Hinzufügen”.

image

Nach dem Schließen des Dialogs lade die Seite neu und versuche nochmals das InfoPath Formular zu öffnen. Nun sollte die Fehlermeldung nicht mehr erscheinen.

LG
Markus

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

Published: 04.08.2014 10:04

Source: New feed

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

SharePoint 2013 DEV: Apps, Apps, Apps

Sharepoint Apps sind die Zukunft. Nur leider ist die Zukunft in diesem Fall schlecht und oft auch fehlerhaft dokumentiert. Die einfachsten Implementierungen können so schnell viel Zeit kosten, weil Fehler an der falschen Stelle gesucht werden, geht man doch nicht davon aus, dass die Dokumentation in diversen Büchern und auf guten Developerseiten einfach falsch ist.

Ein gutes Beispiel dafür sind Rest-Services, die schnell und damit hervorragend zur App-Entwicklung eingesetzt werden können. Zu Beachten dabei ist, dass die Verwendung von “ajax” zum Aufruf selbiger nicht funktioniert. Warum? Weil jede App in ihrer eigenen Domäne läuft und deshalb jeder Zugriff Cross-Domain ist. Damit bleibt der “/_layouts/15/SP.RequestExecutor.js” als einzige Möglichkeit übrig, diesen Zugriff durchzuführen.

Die notwendige Url dafür gestaltet sich noch einmal so schwierig, denn bei vielen Anleitungen wird das notwendig setzen des “Targets” gar nicht erwähnt. Eine mögliche Url wäre:

appweburl + „/_api/SP.AppContextSite(@target)/web/getfolderbyserverrelativeurl(‚“ + listname + „‚)/files?@target='“ + hostweburl + „‚&$top=“ + 10+ „&$skip=“ + 10;

Und aufpassen, nicht vertippen, denn Compiler-Checks für einen String gibt es natürlich nicht.

Für viele andere Cross-Domain Aufrufe findet sich leider nicht so leicht ein möglicher Weg. Somit ist wieder einmal die Kreativität des Entwicklers gefragt, um solche Dinge zu umschiffen.

Happy Coding!

Published: 01.08.2014 08:51

Source: New feed

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

SharePoint 2013 DEV: List Url Filter, Migrations Highlights

In SharePoint 2010 kann eine Liste bequem per Url-Parameter gefiltert werden. Ob mit

FieldField1=MusterFieldName&FieldValue1=MusterValue
FieldName=MusterFieldName&FieldMultiValue=MusterValue1;MusterValue2

können schnell Filterergebnisse erzielt werden. Zusätzlich kann mit “FilterOp1” ein Operator gesetzt werden, um nicht nur Equal sondern auch “StartsWith”, “Contains” oder andere Filteroptionen umzusetzen.

In SharePoint 2013 funktioniert diese Filterung noch immer, allerdings nur solange bis man mehr Items in der Liste hat, als auf eine Seite passen. Dann nämlich kann geblättert werden und “FilterOp1” funktioniert nicht mehr.

Versuche, diese Option mit anderen Url-Filtern umzusetzen, scheitern. Also greift man auf Tricks wie das Anlegen von “Calculated Fields” zurück, um auf diese mit “Equal” zu filtern. Allerdings scheitert Url-Filterung bei “Calculated Fields” komplett.

Eine mögliche Lösung ist ein “List Event Receiver”. Dieser wird an die Liste gehängt und befüllt ein “Hidden Field” mit Werten, mit Hilfe derer auf “Equal” gefiltert werden kann. Ob das allerdings noch bequem ist, sei dahingestellt.

Published: 16.07.2014 10:57

Source: New feed

mehr lesen
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
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
1 6 7 8 9 10 15
Page 8 of 15