Home
Jul
16
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.


Jul
14
Eine SharePoint 2013 App mit NAPA

In einem meiner letzten Blog Beiträge hatte ich angekündigt eine App mit NAPA zu erstellen.

NAPA ist bereits eine App, die es ermöglicht einfache SharePoint 2013 Apps oder Office 2013 Apps zu erstellen. Wenn man NAPA nutzen möchte, muss man dies in einer Developer Site Collection tun. Außerdem sollte man die NAPA App anschließend im SharePoint Store suchen und in der Site Collection hinzufügen.

 

SharePoint 2013 Bloglog, SharePoint Store NAPA App

Nachdem man NAPA hinzugefügt hat (Add und Trust), kann man diese auch aufrufen. NAPA zeigt anschließend folgenden Dialog.

Hinweis: Sollte der Benutzer mit dem die NAPA App geöffnet wird, ein Sonderzeichen wie z.B. ein | oder Klammern-Symbol im Displaynamen haben, dann liefert Office365 einen HTTP 500 Internal Server Error zurück. Es soll ja Benutzer geben, deren Organisationskonto einen Aufbau wie “Benutzernamen | Abteilungsnamen” haben. Wenn das der Fall ist, dann sollte man sich ein Benutzerkonto anlegen, das ohne diese Zeichen auskommt.

SharePoint 2013 Bloglog, NAPA Add New Project

Klickt man anschließend auf “Add New Project” kann man sich entscheiden, wofür man eine App entwickeln möchte. In unserem Fall wird es eine App für SharePoint sein.

SharePoint 2013 Bloglog, NAPA App for SharePoint

Hier kann man noch den Projekt Namen vergeben, in meinem Fall möchte ich eine App für eine einfache Zeiterfassung erstellen. Anschließend wird der Quellcode der Default.aspx Page angezeigt.

SharePoint 2013 Bloglog, SharePoint NAPA Default_aspx App

Klickt man in der Tool-Leiste (links im Bild) auf den “Play” Button, dann wird diese App innerhalb der SiteCollection auch deployed und kann verwendet werden.

SharePoint 2013 Bloglog, App Page Title

Natürlich ist diese App völlig unbrauchbar, allerdings hat sie bereits sämtlich Bestandteile, die auch bei komplexen Apps vorhanden sein müssen, damit sie auf SharePoint 2013/Office 365 deployed werden kann. Die App selbst läuft als SharePoint-hosted App und kann somit nur Logik abbilden, die in JavaScript programmiert werden kann. Dazu gehören natürlich auch Web-Service Aufrufe, die mittels JavaScript implementiert werden. Zusätzlich zur Startseite Default.aspx der App wird seitens NAPA noch ein wichtiger Bestandteil angelegt um ein App Part zu realisieren. Der Solution Tree im Folder “Pages” beinhaltet auch die Seite ClientWebPart.aspx.

SharePoint 2013 Bloglog, SharePoint NAPA ClientWebPart_aspx

Ein Client Webpart ist eigentlich ein App Part, das auf Seiten wie ein gewöhnliches Webpart positioniert werden kann. Der Unterschied zu einem Standard Webpart liegt darin, dass die gesamte Logik clientseitig abläuft, somit ist es ein Client Webpart (=App Part).

Wichtig ist dabei, der Code in der 1. Zeile:

<WebPartPages:AllowFraming runat="server" />

Damit ist sichergestellt, dass diese Page in einem iFrame verwendet werden kann, was absolut notwendig ist, um ein App Part auf einer Seite hinzufügen zu können. Das automatisch generierte App Part sieht dann auf einer Testpage in der Site Collection wie folgt aus.

SharePoint 2013 Bloglog, SharePoint NAPA Default AppPart

Die Entwicklungsumgebung selbst hilft beim Entwickeln mit Syntax-Highlighting und IntelliSense, aber ein Ersatz für Visual Studio ist es nicht. Daher gibt es einen Button in der Tools Leiste, mit dem das gesamte Projekt, das ursprünglich in der Developer Site Collection angelegt wurde, lokal in Visual Studio geöffnet werden kann.

Online in der NAPA App können lediglich CSS, ASPX und JS Dateien angelegt und bearbeitet werden. Des Weiteren können Bilder, die für die App relevant sind hochgeladen werden. Leider ist es aber nicht möglich z.B. Listdefinitionen oder Listinstanzen hinzuzufügen. Daher ist es unumgänglich den Weg Richtung Visual Studio zu gehen. Im nächsten Blogbeitrag zeig ich dann wie wir diese App erweitern.


Jul
04
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 dynamsiche 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.

Kategorien:  DevelopmentSPQuery

Jul
03
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

Die Power User Certification habe ich bereits abgeschlossen und arbeite gerade an der Administrator Certification. Diese beiden Zertifikate sind für (Überraschung!) potentielle Power User sehr zu empfehlen, wobei die Administrator Certification schon mehr in die Tiefe geht. Zweiteres würde ich daher ausschließliche für Key User oder tatsächlich Administratoren empfehlen.

Die Community Manager Certification würde ich nur dann als sinnvoll erachten, wenn eine konstante hands-on Möglichkeit innerhalb einer großen (ich würde sagen: >50 aktive User) Community gegeben ist die auch durch die Teilnehmerin betreut wird.

Zuletzt noch die Trainer bzw. Developer Certification die ich beide nicht im Detail kenne, die allerdings selbsterklärend für die jeweiligen Funktionen zugeschnitten sind.

Zur den Zertifizierungen die ich bereits erledigt habe muss ich sagen, dass der Inhalt gut aufbereitet und die Betreuung im begleitenden Yammer Network (inklusive eigener Gruppen für die jeweilige Certification) sehr gut ist. Es gibt immer Ansprechpartner und sowieso die Möglichkeit, das gelernte auszuprobieren. Allerdings: Ohne eigenes Hatahet Yammer Network, wo ich gleich live Dinge umsetzen kann, wäre es nur der halbe Spass ;)

--

Wir erinnern uns: Microsoft hat Yammer gekauft und arbeitet seitdem daran, das (mittlerweile nicht mehr ganz so) neue Produkt in ihr bestehendes Portfolio zu integrieren.
Eine sehr interessante Neuerung gibt es bei der Integration von Yammer in Office 365 – es gibt seit einigen Wochen eine neu freigeschaltene Funktion: Konversationen zu Dokumenten!
Sehr hilfreich, gut integriert - im nächsten Post dazu die ersten Erfahrungen.


Jun
05
Yammer?! Yammer!

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.

Viele Funktionen sind eventuell aus anderen sozialen Netzwerken bekannt (Inhalte “liken”, persönliche Nachrichten, Gruppen, etc.). Es gibt aber auch interessante Möglichkeiten, die Yammer sehr speziell machen – um ein Beispiel zu nennen: Notes!

Mit der Funktion “Notes” kann innerhalb jeder Gruppe gemeinsam an Inhalten gearbeitet werden. Ein klassisches Beispiel dafür sind Meeting-Mitschriften bzw. -Protokolle.
Ohne Yammer: Nach dem Meeting speichere ich das Protokoll in ein Word-Dokument. Dieses Dokument geht per E-Mail-Attachment an alle Teilnehmer.
Mit Yammer: Während das Meeting läuft, entsteht parallel schon das Protokoll. Nachdem das Meeting beendet ist, speichere ich die Notiz und schreibe eine Nachricht an alle Teilnehmer: “Das Protokoll ist online!” – alle werden darüber benachrichtigt, sehen das Ergebnis und der gesamte Inhalt ist durchsuchbar.

Großer Unterschied: der Austausch darüber findet direkt beim Protokoll statt – die Yammer Konversation ist für alle sichtbar und geht nicht verloren!

Und wie sieht Yammer aus?
Dazu wird es in kommenden Blogposts noch ausreichend Material geben - hier ein kleiner Vorgeschmack:

hatahet_yammerLinks im Bild ist die Übersicht über alle Gruppen, in denen ich Mitglied bin. Die Gruppe "Yammer Info & Hilfe" habe ich angelegt, um Fragen zu beantworten oder aktuelle Informationen zum Thema Yammer zu besprechen. Alle Interessierten sind Mitglieder der Gruppe geworden und haben dort zum Beispiel erfahren, dass ich seit neuestem "Yammer Certified Power User" bin!

 

 

 

 

Ja, es gibt auch Yammer Zertifizierungen - doch dazu ein anderes Mal mehr ;)


Mai
16
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

 

Hat man aber in der Ansicht die Spalte zum Editieren des Dokuments eingeblendet und klickt dort drauf erhält man den Hinweis nicht und es öffnet sich die Edit Form. Erst beim Speichern wird man darauf hingewiesen dass man das Dokument hätte auschecken sollen. Von der Usability her schwer bedenklich aber technisch ja grade noch OK ;) .

image

image

Hat man das Dokument jedoch schon ausgecheckt (siehe grünes Symbol beim Icon für den Dateityp) und klickt dann auf das Edit Icon erhält man die Aufforderung das Dokument doch bitte aus zu checken. Na wenn das mal kein Bug ist!

image

imageMeines Wissens nach gibt es dazu noch keinen Fix. Die Umgebung bei der das Problem aufgetreten ist hat Service Pack 1 bereits implementiert und wir konnten das Problem auf weiteren SharePoint 2013 Farmen nachstellen.

Zum Glück gibt es aber einen Workaround dafür! Und zwar den WebPart auf Serverseitiges rendern umstellen. Dazu einfach in die WebPart Einstellungen wechseln, unter “Miscellaneous” die Option “Server Render” auswählen und Speichern. Dann passt das Verhalten wieder!

Hoffe ich konnte euch mit dem Beitrag wertvolle Zeit für eine eventuelle Fehlersuche sparen wlEmoticon .

LG
Markus

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


Apr
23
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

Kunden mit Service Pack 1

Einfach das neue Paket herunterladen und über die bestehende Installation drüber installieren. Danach einfach den Configuration Wizard laufen lassen, oder mittels Powershell updaten.

Kunden ohne Service Pack 1

Das neue Service Pack Packet herunterladen und laut KB Artikel installieren.

MSDN ISO (Slipstreamed Installation)

Für die Slipstreamed Version wurde kein Update veröffentlicht, da diese nicht von dem Problem betroffen war.

 

Somit, Happy patching Zwinkerndes Smiley

 

so long

Ernst


Apr
07
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>

image

4. Optionale Änderung der Visual Studio Version:

<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>

5. Anpassen des Properties-Template:

Hinzufügen der Zeile [assembly: SecurityRules(SecurityRuleSet.Level1)] (wenn LinkDemand verwendet wird)

image

6. Änderung des SharePoint Product Version auf 15.0

8. Referenzen von 14.x.x.x auf 15.x.x.x (.aspx, .ascx, user interfaces, ...)

9. Folder von /_layouts/xxx auf /_layouts/15/xxx und andere Pfade (template, ...)

10. Referencen anpassen

11: Deprecated & obsolete code entfernen

Wie im letzten Post beschrieben sind die Workflows ein eher schwieriges Gebiet, während zum Beispiel Listen und Bibliotheken nahezu unverändert geblieben sind. Genaue Informationen dazu finden sich unter:

http://msdn.microsoft.com/en-us/library/office/jj162979(v=office.15).aspx


Apr
04
Download SharePoint 2013 Service Pack 1 zurückgezogen

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


Mär
28
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.

<StartPage>~remoteAppUrl/Pages/Default.aspx?{StandardTokens}</StartPage>

Anmerkung: Das App-Manifest werde ich auch in einem der nächsten Beiträge näher beleuchten.

Das CSOM ist eine Möglichkeit SharePoint 2013 client-seitig anzuprogrammieren, wenn es sich beim Remote Web um eine ASP.NET Site handelt. Da es aber auch das JavaScript Object Modell (JSOM) und die REST API in SharePoint 2013 gibt, wäre es auch möglich mit jeder beliebigen anderen Programmiersprache, z.B. PHP oder Java die Logik zu programmieren.

Provider-hosted und Autohosted

Provider-hosted bzw. Autohosted Apps sind Varianten des selben Typs, bei dem das Remote Web entweder von einem Provider (Provider-hosted) zur Verfügung oder das Remote Web in der Azure Cloud (Autohosted) zur Verfügung gestellt wird.

SharePoint-hosted

Die Variante 3, d.h. SharePoint-hosted Apps haben kein Remote Web im Sinne der obigen Definition. Hier läuft die Logik innerhalb der SharePoint App, d.h. innerhalb der Site ab.

Das App-Manifest hat in diesem Fall folgenden Eintrag:

<StartPage>~appWebUrl/Pages/Default.aspx?{StandardTokens}</StartPage>

“~appWebUrl” ist ebenfalls ein Token, der währen der Entwicklung wichtig ist, da zu diesem Zeitpunkt die eigentliche URL noch nicht bekannt ist. Beim Installieren der App, wird dieser Token dann mit der tatsächlichen URL des Servers ersetzt.

In diesem Fall steht uns ausschließlich das JSOM und die REST API für die Programmierung zur Verfügung. Wie ich das schon in meinem letzten Blogeintrag erwähnt habe, gibt es einen fundamentalen Unterschied zwischen Apps und den bekannt WSPs, es werden keine Assemblies am SharePoint installiert, daher stehen uns Developern “nur” JavaScript oder REST als API zur Verfügung.

Nachfolgende Grafik soll den Unterschied zwischen den Hosting Möglichkeiten nochmal anzeigen. App 1 entspricht hier einer Autohosted/Provider-hosted App und App 2 entspricht der SharePoint-hosted App, die einen eigenen Workflow und eigene SharePoint Listen mitbringt:

SharePoint 2013 Bloglog, Autohosted and SharePoint-hosted(HATAHET)

Wichtig ist also zu wissen, dass das App Modell unterschiedliche Möglichkeiten bietet programmiert und gehostet zu werden. Vor allem zeigt sich hier auch die Möglichkeit eigene Services für Apps zur Verfügung zu stellen, die entweder selbst von einem Webserver, über eine private oder die public cloud zur Verfügung gestellt werden.

Ausblick

Nächstes Mal zeige ich eine SharePoint-hosted App, die mit NAPA erstellt wird. NAPA selbst ist bereits eine SharePoint 2013 App, die es ermöglicht für SharePoint und Office 2013 Apps zu entwickeln. Die so entwickelte App kann dann nach Visual Studio (2012/2013) geholt und richtig “aufgemotzt” werden.

Anbei noch ein paar Links, die dem interessierten Leser mehr Details liefern:

http://msdn.microsoft.com/en-us/library/office/fp179930(v=office.15).aspx
http://msdn.microsoft.com/en-us/library/office/fp179925(v=office.15).aspx

Kategorien:  AppsSharePoint 2013App Model

1 - 10Next
 

 Tag Cloud

 
 

 Archiv

 
 

 Blogroll