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




powered by Component Software GmbH

WebAPI Service mit SharePoint User Authentifizierung

Ziel ist es ein WebAPI Service zu erstellen welches Daten von SharePoint zurückliefern soll. Dieses Service wird von einer App konsumiert, daher ist eine OAuth Authentifizierung notwendig und der User soll seine von der SharePoint Umgebung gewohnten Credentials (Benutzername/Passwort) für die Authentifizierung nutzen. Aber der SharePoint-Server selbst darf nicht von außerhalb der Firmennetzes angesprochen werden. Projektsetup Wir starten zunächst mit einem simplen Web-Projekt wobei wir WebAPI auswählen und darauf achten keine Authentifizierung auszuwählen. Diese werden wir gleich manuell einfü... [Mehr]

HostURL in einem Listen-Formular in einer App ermitteln

Es ist möglich Edit, New und Display Formulare mit einer App erstellen und vom Hostweb aus aufzurufen. Die Vorgangsweise ist simpel, muss aber komplett im Sourcecode formuliert werden. Die einzige Herausforderung ist es, die URL zum HostWeb zu ermitteln. 1) ContentType im HostWeb anlegen 2) dem ContentType dieUrl zum NewForm hinterlegen: 1 AddNewFormToContentType(ct: SP.ContentType, formUrl: string): P.Promise<boolean> { 2 var deferred: P.Deferred<boolean> = P.defer<boolean>(); 3 ct.set_newFormUrl(formUrl); 4 ct.update(true); 5 SPC... [Mehr]

Promise – Versprechen für TypeScript

Wenn immer ich etwas mit SharePoint programmiere versuche ich es in TypeScript zu schreiben. Mir gefällt das Konzept von Klassen und Vererbung und das möchte ich auch in der JavaScript Welt nicht missen. Was jedoch bleibt ist die Asynchronität des Client Objekt Models. Die vielen Callback-Funktionen machen den Code doch recht unübersichtlich und das ist auch mit Klassen nicht gut zu lösen. Vor kurzem bin ich über das Promise Framework für Typescript gestoßen. Es ist leicht über NuGet zu installieren (https://www.nuget.org/packages/Promise.TypeScript/1.0.0-rc) Die Idee ist, dass eine Funktion... [Mehr]

EF: “There ist already an open DataReader associated with this Command…”

Manchmal erlebt man als Entwickler seine Überraschungen. Mein heutiges Learning: kleine Änderungen haben eine große Auswirkung. Aber der Reihe nach. Ich habe ein simples WebAPI Projekt das Daten aus einer Datenbank holt und intern aufbereitet, so dass eine geeignete Objektstruktur zurückgeliefert wird und ich in der JavaScript Anwendung nicht viel machen muss. Im Code wird eine LINQ Abfrage ausgeführt und für jedes Element der Ergebnismenge wird in einer Schleife eine weitere LINQ Abfrage durchgeführt. D.h. von der äußeren Abfrage ist der Datareader offen und innerhalb der Schleife kann kein ... [Mehr]

mit TypeScript strukturierten CSOM Code schreiben

TypeScript bietet Möglichkeiten um JavaScript Code in Klassen und Module strukturieren. Natürlich kann eine SharePoint Hosted App in SharePoint 2013 auch mit TypeScript erstellt werden (siehe Blog) Ich habe mir mal Gedanken gemacht, wie ich die üblichen CSOM Aufrufe in Klassen verpacken kann um das ganze etwas strukturierter im Code darzustellen. Ein üblicher CSOM Aufruf kann so aussehen: 1 var ctx: SP.ClientContext = SP.ClientContext.get_current(); 2 var user: SP.User = ctx.get_web().get_currentUser(); 3 ctx.load(user, 'Title'); 4 ctx.executeQueryAsync( 5 () => ... [Mehr]

App Part - Parameter

Serverseitige Webparts in SharePoint können konfiguriert werden. Gleiches möchte man euch bei App Parts erreichen. Jedoch werden SharePoint App Parts IFRAME in die Webseite eingebettet. Server Seitigen Code gibt es hier nicht. Allerdings können in der Elements-Datei des App Parts Properties definiert werden. Im ClientWebPart Knoten der XML Datei ist folgender Eintrag möglich: <Properties>       <Property Name="Konfiguration1"                 Type="string"      &... [Mehr]

Newsfeed Posting per Code

Newsfeed Postings können in SharePoint auch mittels Client Object Model durchgeführt werden. Dafür muss die dll “Microsoft.SharePoint.Client.UserProfiles” aus dem ISAPI Verzeichnis referenziert werden. Das Posting selbst muss mit einem ClientContext für den SP User durchgeführt werden. Ein Versuch mit einem App ClientContext schlägt fehl. Da in meinem BSP mit Office365 gearbeitet wird, müssen Credentials für SharePoint Online verwendet werden. (zeile 8 bis 11) Ein Post wird mit der Methode CreatePost (Zeile 19) einer Instanz des SocialFeedManagers (Zeile 13) erstellt. Der erste Parameter ist d... [Mehr]

Timer Jobs für Office365–SharePoint WebSites

Timer Jobs werden in SharePoint onPremise regelmäßig für wiederkehrenden Aktivitäten eingesetzt. Ein TimerJob muss als Farm-Solution programmiert werden. Und hier stößt man bei Office365 an Grenzen. Eine Farmsolution ist nicht möglich. Um TimerJobs aber auch unter Office365 zu nutzen, muss auf die Webaufträge einer Azure-WebSite ausgewichen werden. Ein Webauftrag ist nichts anderes als eine Konsolen -Anwendung die über das Azure-Portal ausgeführt wird. Dies kann auch zeitgesteuert erfolgen. Wenn nun diese Konsolen -Anwendung auf SharePoint zugreifen kann, ist der Timer Job auch schon wieder fe... [Mehr]

Custom Code Activity für SharePoint 2013 Workflow

Der Workflow Manager bringt schon einige Activities mit. Jedoch ist es manchmal wünschenswert eigene Activities mit C# Code zu erstellen und nicht alles nur im Designer “zusammen zu klicken” Im großen Überblick sind die notwendigen Steps einfach. 1) Die Activity ist eine von “CodeActivity” abgeleitete Klassen. Die Methode “Execute” wird vom Workflow aufgerufen. 2) das Assembly mit der Klasse muss auf der Maschine mit dem Workflowmanager deployed werden. So schnell der Teil 1 erledigt ist, so mühsam ist Teil 2, weil hierfür kein Template bereitgestellt wird. Zunächst legen wir ein neues Visu... [Mehr]

SmartUnitTests in Visual Studio 2015 – PEX is back

Schon mit Visual Studio konnte man Pex & Moles als AddOn installieren und verwenden (siehe: http://blog.ppedv.de/post/2011/01/12/Einfache-Stubs-fur-FileSystem-Aufrufe-beim-Unit-Testing-mit-Moles.aspx) Dieses, ursprünglich von MS Research entwickelte, Projekt bestand aus zwei Teilen. Moles ist ein Mocking Framework. Dieses hat unter dem Namen “Fakes-Framework” nun Einzug in Visual Studio 2012 gehalten (http://blog.ppedv.de/post/2012/07/22/Unit-Test-fur-SharePoint-Development-Fakes-Framework.aspx) Allerdings hat bis vor kurzem der zweite Teil gefehlt. PEX schaffte es nicht ins VS 2012 oder V... [Mehr]

Copyright © 2024 Martin Groblschegg - Impressum