SOLID (object-oriented design)#

to read more here on the wikipedia

for example you have the idea to rewrite the interface of a piece of software given to you as an interop.dll, what’s first ?

you decompile MSIL to get a piece of software in your favour language c#.

you pick up the main interface definition, where you know it’s important for the new implementation of the piece of software behind this interop.

but you found out, this interface has not only standard object definitions, it depends on other interface definition,.. in the end of the day you have more than two handful of interfaces they all circular depended from each other.. not mention the code injected from the interop com builder..

this sounds for you as a breach of I in SOLID, and you dig deeper into the system and found most of the circular ref comes from the breach of L

very frustrating to realise that's not possible to re-implement the wheel in a modern fashion Sad smile

but one hope is there, step up on the db behind the piece of software..

Wednesday, 01 February 2017 21:22:00 (W. Europe Standard Time, UTC+01:00) #     | 



is for me down, no login to all services on O365 is possible Sad smile and yes this blog box is AZURE driven, but with own auth.. [UPDATE] a check with Outlook was given the light to me, my pwd was timed out, and I was redirected to the right site for renewing..

such a s.. should not going on a next Sunday morning, why not on Monday?

Sunday, 03 January 2016 06:58:41 (W. Europe Standard Time, UTC+01:00) #     | 


Migration Hint for SP FTC to CSOM#

using's on the header of your files:

  • change the using Microsoft.SharePoint to using Microsoft.SharePoint.Client
  • and add down under this a second one using SP = Microsoft.SharePoint.Client

now you are able to replace all your SharePoint objects from SPxyz to with the help of find and replace for the known standard SP objects; this was the easiest part from all the changes we must doWinking smile

.net | ms | Office365 | Sharepoint
Tuesday, 01 December 2015 07:04:12 (W. Europe Standard Time, UTC+01:00) #     | 


Christmas wish#

i have only one wish in this years end, I should this write down to the users voice list at MS, but..

I’m thinking it would be a lot more better to have on SharePoint 16 the ability to define a external event receiver to write directly in to a defined Azure Service Bus by namespace, but..

on the other side of the coin the existing configuration is very handy..

.net | ms | Office365 | PnP | Sharepoint
Tuesday, 24 November 2015 20:25:54 (W. Europe Standard Time, UTC+01:00) #     | 


Transaction in Business Apps with SharePoint#

With SharePoint on premise we have on the Full Trust Solution Farm stack all possibilities to build real long live stable business applications, for example we are able to proof that our distributed transactions are all-time come to one end.

In the new Client Side Object Model or on the communication with the REST web service we haven't a transactional flow on the first view, but the Azure Service Bus messaging have transactional features. A code example:

My hope would be, that with the next version of SP v16 and there the new special service for third party, we get a deeper idea, how we are able to hold also the SP list item changes transactional, and my wish would be, that we are able to use this service also on AZURE. 

Friday, 07 August 2015 20:27:00 (W. Europe Daylight Time, UTC+02:00) #     | 


SharePoint Saturday Munich#

Hi Torsten,
this is the second update for SharePoint Saturday Munich on 10th of October 2015!
Did you find the first round of speakers already awesome?
Then please have a look at who we are announcing this week!
Without further ado, the second five speakers are:

  • Jeremy Thake, USA, Technical Product Manager for Office Dev @ Microsoft
    Building slick Office add-ins to impress your boss
  • Paolo Pialorsi, Italy, MVP, MCSM, MCT
    Overview of Hybrid Scenarios with Office 365 and SharePoint
  • Erwin van Hunen, Sweden, MVP, MCSM, MCT
    Getting started with the Office 365 Developer Patterns and Practices Provisioning Engine
  • Bill Ayers, United Kingdom, MCSM, MCT
    Lean-Agile SharePoint and Office 365 Development
  • Mikael Svenson, Norway, Office365 MVP
    Search Queries Explained – A Deep Dive into Query Rules, Query Variables and Search Orchestration
This adds to the already awesome lineup of Andrew Connell, Spencer Harbar, Wictor Wilén, Waldek Mastykarz and Jasper Oosterveld.
Let me tell you, our lineup is the who-is-who of SharePoint and Office365 and you don't want want to miss the chance to meet all of them the first time ever that they are speaking in Germany!
Just as a reminder, this event will be FREE (including free beer!) for all delegates made possible by our generous sponsors, currently: 

K2, Metalogix, Alight Consulting, Nigel Frank,
Nintex, AvePoint, LightningTools, dox42, and Rencore.

Thank you!

The call for sponsors is still open as we have not yet reached our budget requirement for this free non-profit event.
If your company wants to be part of this unique opportunity to meet with the German SharePoint community, please reach out to us!


Please help us to spread the word and forward this mail to your friends and colleagues in the SharePoint community, blog about it, tweet and mention @spsmuc or #spsmucetc.
For everyone who gets this mail forwarded, please sign up to this mailing list directly to get informed right away when registration opens.
Thanks a lot for supporting us!
Best Regards,
Matthias Einig, SharePoint MVP
ms | Office365 | PnP | Sharepoint
Monday, 13 July 2015 22:28:37 (W. Europe Daylight Time, UTC+02:00) #     | 


Power BI#

am 24. Juli will MS den Power BI Dienst freigeben siehe hier

und da heißt es bis dahin auch die Visual Studio getriebenen Erweiterungsmöglichkeiten welche hier veröffentlicht wurden zu verstehen..

Saturday, 11 July 2015 08:49:53 (W. Europe Daylight Time, UTC+02:00) #     | 



Heute Recordsmanagement bzw. SharePoint && Archivsysteme

habe den Eindruck, dass das SP16 etwas zu blauäugig in seinen Veränderungen eingeschätzt wird, hoffentlich liege ich mit meiner Annahme falsch, dann freu ich mich ganz besonders doll!

Wednesday, 08 July 2015 22:24:41 (W. Europe Daylight Time, UTC+02:00) #     | 


Deep Dive into Apps for Office with Excel#

Heute will ich berichten, wie man dieses Microsoft hands on lab zum Rennen bekommt.

Ziel ist es, ein Office Add-In (App) für Excel zu bauen, welches beispielhaft einen Kreditrechner abbildet, dieser nun nicht wie bisher mit der Excel.Makro.Sprache im Excel eingebettet wird, sondern als App mit JavaScript und einem Sandkasten gehosteten Webserver arbeitet. Aus dem Sandkasten heraus ist es der Erweiterung nur möglich per HTML5 mit dem Host, in diesem Fall dem Excel zu kommunizieren.

Das Ergebnis sieht bei mir so aus:


Um dieses Ergebnis in erster Annäherung zu erreichen, ist das Abarbeiten der oben angezogenen verlinkten Anleitung zu empfehlen. Dort ist alles erläutert, und auch für einen Nichtprogrammierer zu bewältigen, weil es ja eigentlich nur um copy & paste gehtWinking smile

Hiermit kommt man recht zügig voran, je nachdem wie viel Zeit darauf verwendet wird, den zu kopierenden Text auch zu verstehen, und hat imho bestimmt bei jedem F5 ein neues Erfolgserlebnis.

Nur leider nach der letzten Änderung will das nicht mehr so richtig:


irgendwie ist hier die Variable binding mit NULL belegt und hat demzufolge keine anderen Eigenschaften zur Verfügung zu stellen. Es wurde also etwas vergessen nur was und wo? Beim Suchen fällt auf, dass die globale Variable officeDoc nirgendwo benutzt wird, also wird wohl officeDock und binding irgendwie miteinander mutable verbunden sein sollen.

Wir haben im Source ein Funktion, wo alle Initialisierungen ablaufen, nur hier wird mit beiden Variablen nicht hantiert, laut Vorlage.

Eine Suche in der Office API ergibt, dass das Office Objekt einen context enthält, welcher wiederum einen Verweis auf das document herstellt.

Also wird es wohl so gewesen sein: officeDoc = Office.context.document

damit ist officeDoc verwendet und das document hat außerdem einen Verweis auf seine Bindungen, also wird wohl hier dann folgendes gelten: bindings = officeDoc.bindings

Dies könnte auch zusammengefast werden zu: bindings = Office.context.document.bindings

Damit wäre officeDoc dann nur wieder nicht initialisiert, und eventuell wird es in einem weiteren Beispiel als globale Variable benötigt..?

Office.initialize = function (reason) {
        $(document).ready(function () {
            officeDoc = Office.context.document;
            bindings = officeDoc.bindings;

Soweit so gut mit diesem Beispiel, was mich weiter brennend interessiert, wie löse ich diese App von Visual Studio? Bisherige Excel Macro Erweiterungen wurden ja auch mit demm Document selber weitergegeben.. Bisher wird das Excel immer von VS gestartet und die App darin initialisiert. Starte ich das Excel aus dem Datei System wird mir im App IFrame ein Fehler angezeigt, der mir nicht weiterhilft.

Zur Lösung dieser Frage demnächst mehr..

.net | ms | Office365
Wednesday, 08 July 2015 12:25:07 (W. Europe Daylight Time, UTC+02:00) #     | 


Remote Event Receiver in Office365#

Auf GitHub PnP ist ein Beispiel eines Remote Event Receivers der neuen Art gehostet, dh. keine Farm Solution mit managed Code, wie aus alter Schule des SharePoint2007 Stack bekannt, sondern als Provider Hosted Add-In (App), aber natürlich auch wieder in managed Code C# gebaut.

Da das Beispiel im PnP aus dem Source nicht so ganz einfach zum Laufen zu bringen ist - im Debugger auf localhost wird zwar der AppInstalled und der AppUninstalled Event aufgerufen, leider aber kein ItemAdded - habe ich die WebApp im AZURE gehostet und die Tenant App hier zum Download bereitgestellt.

Wie in dem Bild zu sehen, wird beim Installieren der App der AppInstalled Event benutzt, um eine Liste mit Namen ‘Remote Event Receiver Jobs Test’ zu erzeugen, an die wiederum eine Remote Event gebunden wird, welcher nach dem Hinzufügen eines Eintrages in der Liste aufgerufen wird.

Der als managed code gehostete Event in der WebApp für ItemAdded beschreibt immer das Description Feld der Liste mit einem Timestamp. Soviel zum Bespiel.

Die Startseite der App macht darauf aufmerksam, dass dies ein Beispiel ist, und der Event Handler Patern generell in einem Provisionierungsprozess von Bedeutung sein kann.

In dem Video auf channel9 wird Schritt für Schritt gezeigt, warum wir hier in dem rechten Bildschirmausschnitt eine Liste mit Bildern sehenWinking smile 

Die App selber sollte, wenn ein Test als interessant erachtet wird, in einer SharePoint o365 Developer Site getestet werden. Ein Laden in den Tenant-weiten App Katalog macht keinen Sinn, ist aber durchaus möglich.

Das ganze Szenario ist genauso unter SharePoint 2013 zu benutzen, nur muss hier für die Provider hosted WebApp im Rechenzentrum der Host bereitgestellt werden, zudem müssen Zertifikate für den Host erzeugt und verteilt werden... 

Disclaimer! Der Author kann nicht dafür garantieren, dass die WebApp bis zum Sankt Nimmerleinstag vorhanden sein wird, noch wird ein Haftung für Auswirkungen der Benutzung der App übernommen. Es wird versichert, dass die App ein 1:1 Abbild der im PnP gehosteten Beispiel Lösung mit Namen ‘Core.EventReceivers’ ist. Ok eine Änderung gibt es, der Timestamp wird, wenn möglich, in der Zeitzone des Client Webs gesetzt.

Wednesday, 01 July 2015 16:26:55 (W. Europe Daylight Time, UTC+02:00) #     | 


Tiles (Kachel) Navigation App#


es gilt noch ein klein wenig Feinschliff zu verrichten, danach kann die AZURE hosted App in den Office Store veröffentlicht werden

  • die Farben im ‘Quadrat’ sind den MS Farben angenähert..
  • es wird wieder Werbung gemacht im Grünen Bereich Smile
  • nachdem die App auf der Site erstmals aufgerufen ist und ihre Listen und Webpart-Provisionierung verrichtet hat, kann diese entfernt werden
    • sie behindert somit nicht das Templating eines Site Prototypen
    • die App dient nur als Transportmittel
      • um ein Script Editor Web Part
      • Listen und JS in der Site auszurollen
    • das WP selber ist über die zugehörige Kachel-Liste oder aber bei entsprechender Berechtigung im Clientbrowser voll editierbar
      • Farbeauswahl
      • Größenbestimmung  z.B. ‘BIG’ Kachel (4x1)
      • Anordnung auf dem Bildschirm
      • Anzahl der Spalten
    • das WP hat ein Plug In System, über das jeder Kachel per JS weitergehende Funktionen zugeordnet werden können
.net | ms | Office365
Friday, 20 February 2015 19:09:00 (W. Europe Standard Time, UTC+01:00) #     | 


All content © 2018, Torsten Schuster
On this page
This site
<2018 April>
 Full Archives By Category
December, 2017 (1)
August, 2017 (1)
July, 2017 (2)
February, 2017 (1)
September, 2016 (1)
May, 2016 (1)
March, 2016 (3)
February, 2016 (3)
January, 2016 (4)
December, 2015 (3)
November, 2015 (4)
August, 2015 (4)
July, 2015 (6)
June, 2015 (2)
May, 2015 (1)
April, 2015 (1)
March, 2015 (1)
February, 2015 (2)
January, 2015 (3)
December, 2014 (2)
November, 2014 (3)
October, 2014 (9)
September, 2014 (10)
August, 2014 (15)
July, 2014 (21)
June, 2014 (19)
May, 2014 (16)
April, 2014 (20)
March, 2014 (10)
February, 2014 (3)
January, 2014 (5)
December, 2013 (2)
November, 2013 (5)
October, 2013 (3)
September, 2013 (2)
August, 2013 (1)
July, 2013 (2)
May, 2013 (5)
April, 2013 (1)
March, 2013 (2)
January, 2013 (1)
December, 2012 (1)
October, 2012 (2)
April, 2012 (1)
March, 2012 (1)
February, 2012 (2)
January, 2012 (3)
December, 2011 (5)
October, 2011 (1)
September, 2011 (1)
August, 2011 (4)
July, 2011 (2)
June, 2011 (1)
May, 2011 (4)
April, 2011 (4)
January, 2011 (2)
December, 2010 (2)
November, 2010 (2)
October, 2010 (2)
September, 2010 (10)
August, 2010 (3)
July, 2010 (1)
June, 2010 (1)
May, 2010 (7)
April, 2010 (5)
March, 2010 (4)
February, 2010 (4)
January, 2010 (3)
December, 2009 (3)
November, 2009 (2)
October, 2009 (4)
September, 2009 (5)
August, 2009 (5)
July, 2009 (2)
June, 2009 (3)
May, 2009 (4)
April, 2009 (2)
March, 2009 (3)
February, 2009 (2)
January, 2009 (1)
December, 2008 (1)
November, 2008 (4)
September, 2008 (5)
August, 2008 (5)
July, 2008 (3)
June, 2008 (3)
May, 2008 (3)
April, 2008 (3)
March, 2008 (4)
February, 2008 (3)
January, 2008 (6)
December, 2007 (5)
November, 2007 (5)
October, 2007 (8)
September, 2007 (6)
August, 2007 (5)
July, 2007 (4)
June, 2007 (6)
May, 2007 (1)
April, 2007 (5)
March, 2007 (2)
February, 2007 (3)
January, 2007 (4)
December, 2006 (3)
October, 2006 (3)
August, 2006 (1)
July, 2006 (4)
May, 2006 (2)
March, 2006 (4)
February, 2006 (3)
January, 2006 (1)
November, 2005 (1)
September, 2005 (4)
August, 2005 (8)
July, 2005 (10)
June, 2005 (7)
May, 2005 (5)
April, 2004 (6)
March, 2004 (2)
February, 2004 (4)
January, 2004 (14)
December, 2003 (3)
November, 2003 (8)
October, 2003 (9)
September, 2003 (9)
August, 2003 (10)
July, 2003 (3)
June, 2003 (7)
May, 2003 (4)
April, 2003 (4)
March, 2003 (5)
February, 2003 (11)
Blogroll OPML

Powered by: newtelligence dasBlog 2.3.12105.0

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2018, Torsten Schuster

Send mail to the author(s) E-mail