Thomas Schissler | MVP Visual Studio ALM, artiso...

31
Thomas Schissler | MVP Visual Studio ALM, artiso AG

Transcript of Thomas Schissler | MVP Visual Studio ALM, artiso...

Thomas Schissler | MVP Visual Studio ALM, artiso AG

Kurs-Übersicht

Moderne Softwareentwicklung

01 | ÜberblickWas macht moderne Software-Entwicklung aus?

05 | Erweiterbare ArchitekturKann gewachsene Architektur effizient sein?

02 | ProjektmanagementWie funktioniert modernes Projektmanagement

06 | Continous Delivery & Dev OpsAusliefern und betreiben

03 | Test-Management Wie funktioniert Testen im agilen Umfeld?

07 | Entwickler-ProduktivitätOptimales Arbeitsumfeld für Entwickler

04 | ProjektkommunikationEffizient kommunizieren – Klarheit schaffen

08 | Team PowerPotenziale effizienter Teams nutzen

05 | Erweiterbare Architektur

Kann gewachsene Architektur effizient sein?

Big Design Up Front

www.integrativebiology.ac.uk/softarch.html

Continous Delivery

Gewachsene Architektur

PBI

PBI

PBI

PBI

Ziele moderner Architektur

Wartbar ErweiterbarTestbarTestbar

Oberstes Ziel: Entkopplung

Trennung

-Daten

-Orchestrierung

-Logik

Sackgassen-

methoden

Komponenten-

orientierung

IoC

Interfaces

MVVM / MVCSingle

Responsibility

POCOs

Software-Architektur

{C#}

Solid Design Principleshttp://en.wikipedia.org/wiki/Solid_(object-oriented_design)

O

S

L

I

D

Single ResponsibilityThere should never be more than one reason for a class change.

Open/closed PrincipleA module should be open for extension but closed for modification.

Liskov Substitutability PrincipleSubclasses should be substitutable for their base classes.

Interface Segregation PrincipleMany client specific interfaces are better than on general purpose

interface.

Dependency Inversion PrincipleDepend upon Abstractions. Do not depend upon concretions

{C#}

Komponentenorientierte

Architektur{C#}

Data Contract

Operation Contract

Contracts Data Contract

Operation Contract

{C#}

Spaghetti-Code

Recognize

SplitLine

DB

ReadData

SplitDigit

Recognize Digit

Integrations-Test

Klassische Struktur

SplitLine

DB

ReadData

Recognize

Integrations-Test

SplitDigit

Recognize Digit Unit-Test

Integrations-Test

Integrations-Test

Integrations-Test

Sackgassen-Methoden

SplitLine

DB

ReadData

Recognize

Integrations-Test

SplitDigit Recognize Digit

Integrations-Test

Unit-Test Unit-Test Unit-Test

Warum Inversion of Control (IoC)?

Recognize instanziert eine konkrete Implementierung

Codeänderung an Recognize nötig wenn eine andere Implementierung genutzt werden soll

Recognize

TextFileReader

XMLReader

{C#}

Mit IoC

Recognize nutzt IReader

IReader wird durch IoC Container gem. Konfiguration instanziiert

Keine Änderungen am Code selber

Recognize

TextFileReader

XMLReaderIR

ead

er

IoC

Co

nta

ine

r

{C#}

Inversion of Control (IoC)

Constructor Injection

{C#}

Häufige Lösung - Greenfield

Refactoring – Renovierung des Codes

Greenfield – Wirklich?

Hoffnung

Greenfield – Wirklich?

Kunden-

Feedback

Greenfield – Wirklich?

Kapazität

Greenfield – Wirklich?

Greenfield ist nicht

alternativlos

Modelle im Agilen Kontext

Nutzen von

Modellen?

Modell-

getriebene

Entwicklung?

Beispiele

UML

.NET Classdesigner

Workflow Foundation

Architecture Discovery

Demo

Agile Architektur

Vorteile entkoppelter Architektur für Unit-Tests

Nutzung von IoC für Mocking

Architektur-Tools in Visual Studio– Layer-Diagramme

– Code Maps

– Code Clone Detection

– Sequence Diagramms

©2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.