Martin's Blog - Developer Infos zu SharePoint, ASP.NET, BI und anderen Technologien




powered by Component Software GmbH

Fehlermeldung beim Veröffentlichen eines InfoPath Formulars in SharePoint

Beim Veröffentlichen von InfoPath Formularen kann es zu der Fehlermeldung “Das folgende Formular kann durch InfoPath nicht gespeichert werden….” Leider ist diese Fehlermeldung nicht hilfreich. Dieses Problem tritt meist dann auf, wenn InfoPath auf der Server Maschine verwendet wird. Arbeitet man remote und nicht direkt am SharePoint Server tritt dieses Problem nicht auf. Das Problem lässt sich leicht lösen. Es muss das Windows Feature “Desktop Experience” welches im Bereich “User Interfaces and Infrastructure” angesiedelt ist aktiviert sein. Und dieses Feature ist auf Server Betriebssystem ni... [Mehr]

SharePoint Context in einem API Controller verwenden

Eine Provider-hosted SharePoint App ist letztendlich eine normale Webanwendung, die mit WebForms oder MVC erstellt werden kann. Daher ist nur eine Frage der Zeit, bis der Wunsch entsteht einen WEB-API Controller zu schreiben und diesen in der App zu nutzen. Dieser Schritt ist noch simpel. Unlängst wollte ich aber in der Controller Funktion die aktuell angemeldeten User ermitteln. eigentlich sind es nur 3 Zeilen Code: var user = ctx.Web.CurrentUser;ctx.Load(user, u => u.LoginName);ctx.ExecuteQuery(); .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: con... [Mehr]

SharePoint-Apps ohne App-Catalog installieren

Sobald eine App fertig entwickelt wurde, kann diese in einen SharePoint Catalog hochgeladen werden und vom Anwender installiert werden. Evtl. möchte man aber Apps installieren sodaß die Anwender sie verwenden können. Die Anwender sollen aber nicht die App in andern Sites oder Webs installieren dürfen. Hierfür bietet die SharePoint-Powershell Commandlets um eine App zu deployen und zu installieren. Und das ganze auch für Webanwendungen, denen kein App-Catalog zugewiesen wurde. 1. Import-SPAppPackage als erstes muss das App-File hochgeladen werden. Dies wird mit dem Befehl “Import-SPAppPackage” ... [Mehr]

SharePoint 2013 Workflow–Lookup Activities

In SharePoint 2013 Workflows werden einige Activities angeboten, die die ListenId benötigen. Im jeweiligen Property Feld kann eine Liste ausgewählt werden. Der tatsächliche Eintrag im Prperty wird zu folgendem Sourcecode: System.Guid.Parse("{$ListId:Lists/urlaubstage;}") Der Platzhalter $ListId…. wird durch die tatsächliche ListenID ersetzt. So weit so gut. Nur leider funktioniert dies nur, wenn der Workflow als Sandboxed Solution ausgeliefert wird. In einer Farm Solution wird dieser Platzhalter nicht ersetzt. Wie zu erwarten ist, kann aus dem Text “{$ListId…..” kein Guid geparsed werden. Die... [Mehr]

SharePoint 2013–aber ohne Skydrive, Newsfeed und Sites

SharePoint 2013 bringt eine neue Topleiste mit, die den Anwender mit Links zu Newsfeed, Skydrive und Sites versorgt. Aber nicht in jeder Installation machen diese Links Sinn. Um sie zu entfernen ist entweder eine Änderung an der MasterPage oder ein JQuery Script notwendig. Eine dritte Möglichkeit ist das Bereitstellen eines DelegateControls. Ein Blick in die Masterpage zeigt die DelegateControls. (Die gezeigte Methode funktionier bei jedem DelegateControl. Nur die ControlId des zu überschreibenden Controls muss später in der Elementsdatei angepasst werden) 1: <div id="suiteLinksBox"&g... [Mehr]

High Trust (S2S Trust) SharePoint 2013 App auf Produktivserver ausrollen

Sobald die App fertig programmiert und natürlich getestet wurde, sollte sie auch am SharePoint Server allen Benutzern zur Verfügung gestellt werden. Solange eine Autohosted App verwendet wird, ist das Deployment simpel, da Visual Studio und Azure gut zusammen spielen. Möchte man jedoch die App innerhalb des Unternehmensnetzwerkes betreiben sind mehrere Schritte notwendig. Zunächst sollte der SharePoint Server für Apps konfiguriert werden. In einem früheren Blog habe ich die Vorgangsweise schon beschrieben. (Link) Die Developer Site Collection ist nicht notwendig und bis zum Anlegen des App Cat... [Mehr]

Item Berechtigung mittels Remote Event Receiver setzen

In SharePoint 2013 gibt es im Rahmen des neuen App-Modell auch das Konzept der Remote Event Receiver. Im Prinzip ein Event Receiver, der nicht mit Server API programmiert wird, sondern analog zu Apps Remote läuft und daher auch mittels Client Side Object Model zu programmieren ist. Das Visual Studio bietet in einem App Projekt die Möglichkeit einen “Remote Event Receiver” als Item hinzuzufügen. Im Web Projekt wird dann ein Service angelegt. Der Code ist simpel. Eine Klasse welches das Interface “IRemoteEventService” implementiert. Hier finden wir zwei Funktionen. ProcessEvent und  Process... [Mehr]

SharePoint Hosted App in TypeScript mit Visual Studio 2013

TypeScript nähert sich mittlerweile der Version 1.0 an. Im Moment gibt es in Visual Studio 2013 Support für TypeScript 0.9, wenn das AddIn von der TypeScript Seite installiert wird. Zumindest findet man in den Projektvorlagen bereits TypeScript unter “Other Languages”. Solange das AddIn nicht installiert findet man nur den Link zum Setup File. Sobald das TypeScript AddIn installiert ist, gibt es auch eine Vorlage für eine HTML Applikation. Wenn jedoch eine SharePoint Hosted App angelegt wird, gibt es keine Möglichkeit TypeScript als Sprache auszuwählen. Die Vorlagen für die App liegen unter C... [Mehr]

SharePoint Hosted App und der Zugriff auf WebApi

Begonnen hat es ganz einfach. Siehe (hier). Heute stand am Programm, den TypeScript Code in eine SharePoint hosted App zu transferieren. Wie ich TypeScript in Visual Studio 2013 innerhalb einer SharePoint Hosted App verwenden kann, beschreibe ich später. Jetzt geht es mal darum, den Json Call auf meine WepApi-Datenbankzugriffs-Schicht in SharePoint abzusetzen. Da wir einen anderen Host als den SharePoint App Host aufrufen, kommt es zu einem CrossDomain Call, der bekanntlich nicht erlaubt ist. Aber genau dafür bietet das SharePoint Client Object Model die Klasse SP.WebProxy. Also schnell den ... [Mehr]

Spaß mit “this” in TypeScript

Eigentlich war der Plan ganz simpel. Eine kleine SharePoint Hosted App, die in Typescript geschrieben wird und die Daten einer Datenbank mit WebAPI bzw. Json abfragt. Um den Entwicklungsaufwand gering zu halten verwende ich jquery und knockout. Aber wie so oft, liegt der Stolperstein nicht dort, wo man ihn erwarten würde. In der einfachen App soll eine TypeScript Klasse als ViewModel dienen. In der TypeScript Datei habe ich ein Interface für die Datenbankeinträge geschrieben. Es macht einfach mehr Spaß wenn die Objekte typisiert sind. Das ViewModel besteht aus einer Liste, äh sorry, in JavaScr... [Mehr]

Copyright © 2021 Martin Groblschegg - Impressum