BASTA 2016 Mainz

basta2016

Meine Eindrücke von der BASTA 2016 (19.09-22.09.2016):

Auch die diesjährige BASTA in Mainz (https://basta.net/) war wieder einmal mit vielen interessanten Vorträgen, Keynotes und Workshops gespickt und (wie jedes Jahr) super organisiert. Leider ist die Fa. Microsoft aber auch in diesem Jahr wieder dieser Konferenz bis auf einige Vorträge weitestgehend fern geblieben. Man hat es offenbar nicht nötig, dort die entsprechende Präsenz zu zeigen. Nichtsdestotrotz gab es viele Vorträge rund ums Thema “.Net”. Mit zu den wichtigsten Erkenntnissen gehört: Microsoft treibt das Thema ‘Open Source’ weiter voran. Das wurde auch direkt in der ersten Keynote mit der Vorstellung von Visual Studio Code durch Dirk Bäumer eindrucksvoll bestätigt. Für mich als .Net-Developer war es auch spannend zu erfahren, dass WPF scheinbar bereits wieder auf dem absteigenden Ast ist. Viele neue Feature in XAML werden zunächst nur für Universal Apps entwickelt. Ob diese überhaupt noch Eingang in WPF finden werden, ist zumindest fraglich.

Für mich waren die besten Speaker auf der diesjährigen BASTA

  • Rainer Stropek (software architects gmbh) mit den Themen “Surviving C#-Codereviews”  und “Neues in Visual Studio “15” für C#-Entwicklung
  • Christian Nagel (Thinktecture AG, CN innovation) mit den Themen “Vorteile von .Net Core und CLI” sowie “Adaptive Layouts mit XAML
  • und Neno Loje (TeamSystemPro) mit dem Workshop “Continous Integration, Build, Test, Deployment und Release mit dem Team Foundation Server 2015”.

Außerdem beeindruckt war ich von den Vorträgen von Barbara Fusinska zum Thema “Predicting the Future as a Service with Azure ML” und Manuel Meyer zum Thema “Concurrent WPF mit Akka.Net”. In beiden Vorträgen ging es um Themen, die meiner Meinung nach in entsprechenden Kundenprojekten jederzeit relevant werden können.

Etwas zum Nachdenken gab es dann in der Keynote von Michael Madary (Uni Mainz) zum Thema “The Ethics of Virtual Reality”. Hier wurden einige interessante Experimente zum Thema Virtual Reality präsentiert und Fragestellungen hinsichtlich diesbezüglicher ethischer Fragen diskutiert. Ich vermute, dass dieses Thema in Zukunft mit dem zunehmenden Einsatz von Virtual Reality in der Praxis immer wichtiger werden wird. Passend zum Thema “VR” wurde in einer kurzfristig einberufenen Zusatzveranstaltung auch eine Version der HoloLens präsentiert. Viele Besucher hatten dort auch die Gelegenheit die HoloLens einmal selber auszuprobieren. Der aktuelle Status der HoloLens wurde mit “Sieht gut aus” (was auch immer das bedeutet) angegeben.

Für den Spaßfaktor war auch gesorgt: Christian Weyer (Thinktecture AG) und Jörg Neumann (Acando GmbH) haben in einer lustigen Abendveranstaltung noch einmal die “sagenhaften” Möglichkeiten des Commodore C64 gezeigt. Man wurde in die wunderbare Welt der Programmierung (z.B. mit Peek/Poke und LDA bzw. STA) dieses Geräts zurückversetzt. Außerdem konnte man nochmal einige Spiele (wie z.B. “Summer Games”) bewundern. Auch Datasette, das “handliche” Diskettenlaufwerk und der zugehörige HighTech-Nadeldrucker wurden nochmal gezeigt. Bei mir ist insbesondere der Slogan “Einfach mal machen” hängen geblieben, den Jörg Neumann während dieser Veranstaltung immer wieder zu verwenden wusste.

Zusammenfassend kann man sagen, dass sich die 4 Tage wieder gelohnt haben und ich mit einer Menge neuer und alter (C64) Eindrücke nach Hause gefahren bin.

 

 

 

 

 

 

 

 

 

Team Explorer: Ability to add new sharepoint document nodes

Please vote: https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/15305433-team-explorer-ability-to-add-document-nodes-to-co

Perhaps somebody is able to DIY:

See:

https://binary-stuff.com/post/getting-start-with-a-team-explorer-plugin-for-vs-2013

Feedback appreciated!!!

 

SharePoint 2013: Inhaltsabfrage über mehrere benutzerdefinierte Listen

Dieser Post beschäftigt sich mit der Frage, wie man den Inhalt von verschiedenen benutzerdefinierten Liste abfragen und aggregieren kann. Dazu wird im folgenden ein Lösungsansatz mit Hilfe des Inhaltsabfrage-Webparts beschrieben. Damit das Inhaltsabfrage-Webpart in diesem Fall sinnvoll eingesetzt werden kann, müssen die Listen alle den gleichen Websiteinhaltstyp besitzen. Wie man dies alles konfigurieren kann, ist im folgenden beschrieben.

Websiteinhaltstyp erstellen

Erstellen eines Websitesinhaltstyps, der von allen Benutzerdefinierten Listen verwendet wird, die abgefragt werden sollen. Dazu unter Websiteinstellungen->Websiteinhaltstypen auswählen:

Websiteeinstellungen

Dann auf Erstellen klicken und neuen Inhaltstyp erstellen:

NeuerInhaltstyp

Benutzerdefinierte Listen erstellen

Dann können die Benutzerdefinierten Listen erstellt werden. Bei den Benutzerdefinierten Listen, die abgefragt werden sollen muss dann der Inhaltstyp geändert werden. Dazu muss zunächst in den Listeneinstellungen unter Erweiterte Einstellungen die „Verwaltung von Inhaltstypen“ zugelassen werden:

 

VerwaltungZulassen

Dann muss unter den Listeneinstellungen ein neuer Inhaltstyp („Aus vorhandenen Websiteinhaltstypen hinzufügen“) hinzugefügt werden:

ReihenfolgeAendern

Damit der ursprüngliche Inhaltstyp gelöscht werden kann muss man die Reihenfolge der Inhaltstypen ändern. Wenn der hinzugefügte Inhaltstyp auf Position 1 steht ist er automatisch auch der Standardinhaltstyp. Der alte Inhaltstyp kann dann gelöscht werden.

 Inhaltsabfrage-Webpart einfügen

Anschließend muss auf der Seite, auf der die Infos von mehreren Listen angezeigt werden sollen ein Inhaltsabfrage-Webpart hinzugefügt werden:

WebpartEinfuegen

Dann kann das Webpart bearbeitet werden. Dazu muss zunächst die Quelle ausgewählt werden(im Beispiel eine bestimmte Website). Anschließend wurde ausgewählt, dass Inhalte nur aus Benutzerdefinierten Listen angezeigt werden soll. Dann noch als weitere Einschränkung: Nur Listen mit dem vorher erstellten Inhaltstyp:

WebpartKonfigurieren

Wenn man möchte, kann man dann noch weitere Filter setzen (hier z.B.: nur Listeneinträge, die ich selber erstellt habe).

Dann mit OK bestätigen. Dann Site wieder einchecken und veröffentlichen. Dann sollte das Webpart nur noch die Items aus Listen mit dem entsprechenden Inhaltstypen anzeigen.

 

Formatieren der Ausgabe

Siehe: http://www.nothingbutsharepoint.com/2012/01/26/how-to-customize-sharepoint-list-content-display-using-content-query-web-part-aspx/ oder https://msdn.microsoft.com/en-us/library/office/bb850574(v=office.12).aspx

 

 

 

 

Update auf TFS 2015 RTM

TFS

Seit Donnerstag dem 06.08.2015 ist  das Final Release von Team Foundation 2015 (RTM) verfügbar. Hier mein Erfahrungsbericht über das Update von TFS 2015 RC nach RTM: Auf der Maschine, auf der bereits der Release Candidate installiert war, konnte einfach die RTM – Version installiert werden. Der RC musste definitiv nicht zuerst deinstalliert werden. Nach der Installation erkannte das Setup-Programm automatisch, dass es sich um eine Upgrade – Installation handelt und startete automatisch den entsprechenden Wizard. Der Wizard zeigte die bisherigen Einstellungen an, die ich einfach übernehmen konnte. Lediglich die Passworte für die Dienstkonten mussten neu eingeben werden. Nach ca. 30 bis 45 Minuten war der Spass bereits erledigt. Gegenüber der RC-Version haben sich noch leichte Änderungen ergeben. Ich habe insbesondere festgestellt, dass sich das Web-Frontend im Bereich Build leicht geändert hat. Der Tab Build.VNext ist verschwunden. Jetzt gibt es nur noch einen Build-Bereich in dem auch die alten (XAML) Definitionen gelistet sind. Weitere Infos findet man auf dem Blog von Brian Harry unter: http://blogs.msdn.com/b/bharry/archive/2015/08/06/team-foundation-server-2015-final-release.aspx

ListCollectionView

WPF_logo

In einem Kundenprojekt gab es die Anforderung die Daten aus einem DataGrid in der vom Anwender sortierten Reihenfolge zu drucken. Üblicherweise bindet man in einer WPF-Anwendung (MVVM) das DataGrid an die Instanz einer ObservableCollection. Eine gebundene ObservableCollection hat aber leider den Nachteil, dass sie vom Sortieren durch den Anwender (z.B. durch Click im Spaltenheader) nichts mitbekommt. D.h. die ursprüngliche Reihenfolge der Items in der ObservableCollection bleibt erhalten. Abhilfe schafft hier die Klasse ListCollectionView. Man erzeugt sich einfach eine neue Instanz einer ListCollectionView in dem man beim Konstruktor einfach die Instanz der ObservableCollection (oder einer Liste wie im Beispielprojekt) übergibt und bindet diese neue Instanz an das DataGrid. Wie man leicht mit einer Foreach-Schleife feststellen kann, entspricht die Reihenfolge der Items dann der Reihenfolge im DataGrid.

Hier ein Beispielprojekt mit freundlicher Unterstützung von Thomas Sobizack.

Weitere Infos z.B. unter http://weblogs.asp.net/monikadyrda/wpf-listcollectionview-for-sorting-filtering-and-grouping

 

Application Insights für Desktop Anwendungen (WPF + WinForms)

Windows Azure bietet mit Application Insights eine einfache Möglichkeit Telemetriedaten für Desktop-Anwendungen und Dienste zu sammeln. Diese Daten können unter anderem Aufschluss darüber geben, wie oft welche Funktionalität in der Anwendung verwendet wird, wie viele Benutzer zu welchen Zeiten die Anwendung verwenden, wie häufig die Anwendung abstürzt oder wie häufig Exceptions auftreten. Das Sammeln dieser Informationen kann z.B. zur Verbesserung der Anwendung beitragen, in dem z.B. häufig verwendete Funktionen schneller und einfacher für den Anwender zugängig gemacht werden. So könnten solche Funktionalitäten im Ribbon nach links oder im Kontextmenu nach oben wandern. Unter https://azure.microsoft.com/en-us/documentation/articles/app-insights-windows-Desktop/ findet man eine sehr gute Anleitung. Etwas verwirrend ist leider die Tatsache, dass der in der Anleitung benötigte ‘Instrumentation Key’ im Portal (zumindest in der deutschsprachigen Version) ‘Komponenten-ID’ heißt: AppInsigths1      

Zu Evaluierungszwecken habe ich ein kleines WPF-Testprojekt angelegt. Bitte in diesem Testprojekt, den Instrumentation-Key in der Datei ApplicationInsights.config anpassen. Bitte auch die installierten Nu-Get Pakete beachten. Ich habe das Paket ‘Desktop Apllication Insights’ hinzugefügt, welches aktuell nur in einer Vorabversion existiert. Die abhängigen Pakete werden dann automatisch hinzugefügt.

AppInsigths4

Die Testanwendung gibt z.B. einen simplen Einblick, wie oft welcher Button betätigt wurde:

AppInsigths3

AppInsigths2

Code Contracts

CodeContracts verwendet man zur Überprüfung von Parametern vor der eigentlichen Methodenausführung. Zunächst sollte das erforderliche Visual Studio AddIn (von Microsoft) installiert werden.  Nach der Installation erhält man unter den Projekteigenschaften eine neue Karteikarte Code Contracts:

CodeContracts1

Dort kann man sowohl das Static- als auch das Runtime-Checking aktivieren. Die statische Überprüfung wird unmittelbar nach dem Kompilieren ausgeführt und kann Probleme frühzeitig erkennen. Bei aktiviertem Runtime-Checking (z.B. im Debug -Modus) werden zur Laufzeit Exceptions geworfen, wenn gegen den Vertrag verstoßen wird. Ist die Runtime -Überprüfung ausgeschaltet (z.B. im Release-Modus), wird der Code ignoriert. Das führt natürlich zu einer verbesserten Performance. Im Code sieht das im einfachsten Fall so aus:

CodeContracts2

Bei aktivierter statischer Überprüfung werden dann folgende Fehler ausgegeben:

CodeContracts3

Weitere Infos unter:

http://www.codeproject.com/Articles/103779/Introducing-Code-Contracts

und

https://msdn.microsoft.com/de-de/library/system.diagnostics.contracts.contract%28v=vs.100%29.aspx

 

 

 

Electric Light Orchestra at Hyde Park 2014

Lynne

Tandy ELO

Nach 28 Jahren Abwesenheit von großen Bühnen hat Jeff Lynne zusammen mit seinem langjährigen musikalischen Wegbegleiter Richard Tandy im September 2014 einen spektakulären Live Auftritt im Londoner Hyde Park vor 50.000 Zuschauern hingelegt. Unterstützt wurden die beiden von der Take That – Band, sowie von 32 Streichern vom BBC Orchestra. Alle Tickets waren innerhalb weniger Minuten weg! Das Konzert wurde komplett auf BBC Four ausgestrahlt und kann glücklicherweise auch auf Youtube angesehen werden: https://www.youtube.com/watch?v=pecpeVYg7LM

Ich kann das Konzert jedem ELO Fan uneingeschränkt empfehlen. Für mich ist es musikalisch das beste Konzert, dass ich je gesehen habe. Es beginnt spektakulär mit “All Over the World” aus dem Album Xanadu, welches Jeff Lynne zum ersten Mal überhaupt live spielt. Es endet noch spektakulärer mit der besten “Roll Over Beethoven” – Version ever. Dazwischen werden Hits wie z.B. Evil Woman, Strange Magic, Turn To Stone, Don’t Bring me Down, Telephone Line oder Mr. Blue Sky gespielt. Die komplette Setlist findet man z.B. hier: http://www.setlist.fm/setlist/electric-light-orchestra/2014/hyde-park-london-england-13cfe5cd.html

Weiter Infos zum Konzert in diesem Interview: http://www.theguardian.com/culture/2014/oct/15/elo-jeff-lynne-hipsters-beards-electric-light-orchestra-hyde-park-beatles

Es gibt Gerüchte, dass es Ende 2015 eventuell sogar eine World Tour geben soll.