Training - Beratung - Projektarbeiten

www.David-Tielke.de

Vortrag “Softwarekomponenten” bei der UG Soest/Lippstadt

Gestern war ich als Sprecher bei der neu gegründeten UG Soest/Lippstadt unterwegs, wo ich in 2,5 Stunden eine Kurzfassung meines Workshops “Architekturen mit Softwarekomponenten” als Vortrag präsentieren durfte. Die Insgesamt ca. 30 Teilnehmer hörten in dieser Zeit einiges zu Problemen vieler Anwendungen, Grundlagen wie SRP, ISP, IoC & Co sowie eine ausführliche Erläuterung von Mehrschichtenarchitekturen und wie diese effizienter mit Softwarekomponenten umgesetzt werden können. Alle Materialien dieses Vortrages stelle ich nun hier zur Verfügung.

Die neue UG Soest/Lippstadt ist deutschlandweit die erste UG die versucht zwei Städte gemeinsam zu verbinden und so finden die Treffen an jedem ersten Donnerstag im Monat statt. Der Ort wechselt dabei monatlich zwischen Soest  (Aagon GmbH) und Lippstadt (Ferber-Software GmbH) und ist, zumindest gestern in Lippstadt, dank zentraler Lage in der nähe des Bahnhofs, ideal zu erreichen. Wie jede andere neu gegründete UG ist auch die UG Soest/Lippstadt noch auf der Suche nach neuen Mitgliedern, wer also in diesem Bereich wohnhaft ist oder gar arbeitet, sollte sich das Ganze auf jeden Fall einmal anschauen.

Links
Folien & Projekte
UG Soest / Lippstadt

Ein internal Interface in C# implementieren ohne public Methoden

Ab und zu kommt man in die Situation, dass man ein Interface in C# sowohl für public-Zwecke (Verwendung außerhalb eines Projekts) und auch für internal-Zwecke (Verwendung in dem jeweiligen Projekt) verwendet. Dabei gibt es das Problem, dass in C# keine Zugriffsmodifizierer für Interfacemethoden zulässig sind. Wie man das Ziel trotzdem erreicht, zeigt das Listing 1.

    public interface IPublic
    {
        void Foo();
    }

    internal interface IInternal : IPublic
    {
        void Bar();
    }

    class Something : IInternal
    {
        public void Foo()
        {
            throw new NotImplementedException();
        }

        void IInternal.Bar()
        {
            throw new NotImplementedException();
        }
    }

Listing 1: Das implementieren eines internal und eines public Interfaces

Der Trick daran ist es, die Funktionalität in ein Public Interface (hier IPublic) und ein Internal Interface (hier IInternal) aufzuteilen. Da IInternal von IPublic abgeleitet ist, bietet die interne Schnittstelle alle angebotenen Methoden an und die öffentliche Schnittstelle nur die öffentlich zugänglichen. Aber warum dann nicht in ein Interface? Ganz einfach, in einem Interface kann nur der Zugriffsmodifizierer für das gesamte Interface angegeben werden, nicht für einzelne Methoden oder Eigenschaften.

Weiter ist zu beachten das wenn ein Interface implizit implementiert wird, müssen dadurch alle implementierten Methoden public sein, egal welchen Zugriffsmodifizierer das Interface hat. Daher wird die Methode Bar() aus dem Interface IInternal explizit implementiert, womit wir das gewünschte Verhalten erzielt wird.

Mobile Developer Conference 2012 in Hamburg

Am 13.2 und 14.2 fand, wie jedes Jahr, die Mobile Developer Conference 2012 statt. An zwei Tagen wurden in jeweils drei Tracks aktuelle T20120213_MDevCon_Tielke_0010hemen rund um iOS, Android, Windows Phone 7 und natürlich auch Trends präsentiert und mit den Teilnehmern diskutiert. Die sehr gut besuchte Konferenz fand im Radisson Blue auf dem Hamburger Messegelände statt und bot, mit großen und gut ausgestatteten Konferenzräumen die idealen Rahmenbedingungen für eine großartige Konferenz. Zum ersten Mal war auch ich mit einem Vortrag dabei. Da die Entwicklung von mobilen Anwendungen auf immer mehr Plattformen publiziert werden muss und es dabei wichtig ist, die Kosten in einem erträglichen Rahmen zu halten und eine gut erweiterbare und wartbare Software zu schaffen, wählte ich als Thema “Unite the Worlds – .NET als Backend”. In dem 60-minütigen Vortrag ging es neben der Frage “Warum überhaupt ein einheitliches Backend bei mobilen Anwendungen?” vor allem um die konkrete Umsetzung und warum Microsoft .NET dafür eine ideale Plattform ist. Der komplett gefüllte Raum bot eine super Atmosphäre und spannende Fragen und Diskussionen mit den Teilnehmern und hat wirklich enorm viel Spaß gemacht. Nach dem Vortrag entstand eine rege Diskussion mit den Teilnehmern in der Lounge, bei der sich viele als überrascht zeigten, wie einfach ein Backend mit .NET zu realisieren ist und wie viele Probleme damit vermieden werden können.

Zusätzlich führte der Chefredakteur Markus Stäuble mit mir ein Interview zu meiner Markteinschätzung von Windows Phone 7:

Ich möchte mich auf diesem Wege noch einmal bei allen Teilnehmern für die rege Teilnahme und das Feedback bedanken und hoffe mit meinem Vortrag den ein oder anderen entscheidenden Impuls für Ihre mobilen Projekte gegeben zu haben. Natürlich möchte ich mich auch bei der Neuen Mediengesellschaft Ulm für die Einladung zu dieser Konferenz bedanken und hoffe beim nächsten Mal wieder dabei sein zu können.

Links:
Mobile Developer Conference 2012
Fotos auf Facebook