SlideShare ist ein Scribd-Unternehmen logo
€ Kostenfrei nutzbar
€ Kostenfrei mit Premiumfeatures
€ Kostenpflichtig
Persönlicher Favorit
Erfassung und Aufbereitung von
Anforderungen auf Basis einer dynamischen
Story Map.
+ Sehr einfach zu bedienen.
+ Bietet Übersicht über alle Anforderungen.
+ Export nach Excel, Html und TFS.
o 100€ pro Nutzer
o Benötigt Einarbeitung
- Lässt einige grundlegende
Komfortfunktionen vermissen (Undo/Redo)
€
Zeichnen von UI Mockups mit Hilfe von
Powerpoint.
+ Sehr einfach zu bedienen.
+ Kann auch ohne Visual Studio genutzt werden.
+ Bietet zahlreiche Steuerelemente.
+ Ergebnisse können mit TFS Workitems verknüpft
werden
o Kein Export in andere Formate (Html, Xaml)
- Aufwändig bei größeren Dialogen
- Darstellung echter Interaktion sehr mühselig
€
€
Verschiedene Ansichten zur Planung und
Verwaltung von Arbeitspaketen.
+ Übersichtliche, rollenspezifische Sichten.
+ Automatische Burndowncharts und Forecasts.
+ Epics, Stories, Tasks, Bugs und Testfälle leicht
verfügbar.
+ Featurebranches können direkt aus Stories
heraus erstellt werden.
+ Viele Schnittstellen zu anderen Diensten.
o Nur in Kombination mit anderen TFS Features
verfügbar.
o Benötigt Einarbeitung.
o Nicht offlinefähig.
€
Verschiedene Ansichten zur Planung und
Verwaltung von Arbeitspaketen.
+ Einfach und übersichtlich.
+ Alle wichtigen Features kostenlos.
+ Frei konfigurierbare Spalten mit Spaltenlimits.
+ Zusatzfeatures wie Taskalterung, Checklisten,
Kopieren von Inhalten, Tasks per Email anlegen.
+ Arbeit sehr gut mit anderen Diensten
zusammen.
o Nicht offlinefähig
- Hierarchien von Aufgaben können nur
aufwändig abgebildet werden.
€
Taskboard des Issuetrackings von Github.
+ Einfach und übersichtlich.
+ Alle wichtigen Features kostenlos.
+ Frei konfigurierbare Spalten mit Spaltenlimits.
+ Änderungen werden automatisch in Githubs
Issuetracking übernommen.
o Nicht offlinefähig
- Hierarchien von Aufgaben können nur
aufwändig abgebildet werden.
€
Taskboard für touchfähige Großbildschirme zur
Echtzeitsynchronisation verteilter Scrum Teams.
+ Einfach und übersichtlich.
+ Anbindung von TFS und Jira
o Wird durch die Saxonia Systems AG mit Ihren
Teams bereitgestellt.
o Nicht offlinefähig.
- Kann nicht ohne TFS oder Jira arbeiten.
€
Contionouse Integration umgebung des TFS / VSTS.
+ Vergleichsweise einfach und übersichtlich.
+ Alle wichtigen Features kostenlos.
+ Gute Übersicht über die Ergebnisse und den
Verlauf.
+ Bietet viele Erweiterungsmöglichkeiten über
Plugins.
o Anpassungen am Projekttemplate können die
Konfiguration verkomplizieren.
- In de kostenlosen Variante kommt es gelegentlich
zu Verzögerungen bei aufwändigen Builds.
- Einsatz für nicht Microsofttechnologien noch
nicht ganz ausgereift.
€
CI Umgebung für .Net Projekte.
+ Sehr einfach und übersichtlich.
+ Für Opensource kostenlos.
+ Gute Übersicht über die Ergebnisse und den
Verlauf.
+ Gute Zusammenarbeit mit Github.
o Geringe Anpassungmöglichkeiten.
- Ausführung und Dokumentation
automatisierter Tests eher rudimentär.
€
Beliebtester Hostingdienst für Opensource
Projekte auf Basis von Git.
+ Sehr große Community.
+ Für Opensource kostenlos.
+ Wird von vielen Diensten unterstützt.
o Private Repositories kostenpflichtig.
- UI ist bedingt nutzerfreundlich.
€
Sehr weit verbreitete GUI für Git
+ Plattformunabhängig
+ Gute Abbildung der gängigen Arbeitsabläufe.
+ kostenlos
o Wird bei größeren oder vielen Projekten träge.
- Anzeige der Dateihistorie und des Mergings
sind verbesserungsfähig.
€
Vergleichsweise neue GUI für Git die versucht
andere Wege der Darstellung zu gehen.
+ Plattformunabhängig
+ Gute Abbildung der gängigen Arbeitsabläufe.
+ Auch komplexe Aufgaben können über die UI
gelöst werden.
+ kostenlos.
+ Gute Darstellung der Dateihistorie und
Versionsvergleiche.
o Wird bei größeren oder vielen Projekten träge.
o Benötigt etwas Einarbeitungszeit.
€
Alternative Windows Console.
+ Bietet eine Vielzahl an Komfortfunktionen
(Farbe, Copy&Paste, Tabbing, …)
+ Kann mehrere Fenster zeitgleich verwalten.
+ Durch Plugins aus dem VS heraus verwendbar.
+ Kostenlos.
o Gleicher Befehlssatz wie der Windows
Commandprompt.
- Keine Erweiterten Befehle oder Scripting.
€
Framework zur Erstellung modularer Applikationen
auf Basis diverser Xaml UI Technologien. Eignet sich
besonders für komplexe Großanwendungen.
+ Bootstrapping der Anwendung.
+ Regionhandling & Navigation.
+ ViewModel Locator.
+ Integration von DI Frameworks.
+ Modulehandling / Plugins.
+ Infrastruktur für Behaviours.
+ DelegateCommands.
+ Messagebus aka EventAggregator.
+ Verschiedene Basisklassen für ViewModels.
o Bei Kleinstanwendungen eher schwergewichtig.
€
Framework zur Erstellung modularer Applikationen
auf Basis diverser Xaml UI Technologien.
Eignet sich besonders für kleinere Anwendungen.
+ RelayCommands.
+ Messagebus aka EventAggregator.
+ Verschiedene Basisklassen für ViewModels.
+ Design Time Data
o Die Applikationsinfrastruktur für Navigation und
Bootstrapping ist nicht Teil des Frameworks.
€
IoC Container der sehr gut in Kombination mit Prism
zusammen arbeitet.
+ Es gibt nur einen Typen bei dem Typen registriert
und aufgelöst werden.
+ Diverse Möglichkeiten um Einfluss auf die Lebenszeit von
Instanzen zu nehmen.
+ XML Konfiguration möglich.
+ Automatische Registrierung bestimmter Typen
einer Assembly möglich.
+ Einsatz aspektorientierter Programmierung
möglich.
o Es gibt weitaus schnellere IoC Container.
o AOP wird zur Laufzeit vorgenommen und ist
dadurch vergleichsweise langsam.
- Wird aktuell nicht sehr aktiv gepflegt.
€
Umfangreicher IoC Container der sehr gut mit
anderen Frameworks kombiniert werden kann.
+ Vergleichsweise schnelle Auflösung von Typen.
+ Sehr umfangreiche Möglichkeiten um Einfluss auf
die Lebenszeit von Instanzen zu nehmen.
+ Automatische Registrierung bestimmter Typen
einer Assembly möglich.
+ Für diverse .Net Plattformen verfügbar.
+ Konfiguration per XML und Json möglich.
+ Eigene Modulinfrastruktur.
+ Hervorragende Dokumentation und Pflege.
o Etwas aufwändig mit Prism zu verwenden.
o Registrierung und Auflösung von Typen geschieht
über unterschiedliche Klassen.
€
public IQueryable<Place> GetPlaces(int categoryId)
{
var places = this.dataBase.CategoryPlace
.Where(x => x.CategoryId == categoryId);
return this.dataBase.Place.Where(x => places
.Any(p => p.PlaceId == x.Id));
}
public Language GetLanguage(int languageId)
{
return this.dataBase.Language.Find(languageId);
}
Sehr umfangreicher objektrelationaler Mapper für
diverse .Net Plattformen.
+ Sehr einfach und intuitiv zu nutzen.
+ Gute Konfigurationsmöglichkeiten.
+ Sowohl für kleine als auch große Projekte geeignet.
+ Sehr aktive Community.
o Einsatz mit Nicht Microsoft Datenbanken
gelegentlich schwierig.
o Einfachheit täuscht darüber hinweg wie schnell
man Performanceschwachstellen entwickeln kann.
- Verwirrende Releasestrategie der
unterschiedlichen Versionen.
€
Werkzeug zum automatischen Mappen von Daten aus einem Datenmodell in ein anderes.
+ Spart viel Zeit bei repetitiven Aufgaben.
+ Bei Namensgleichheit der Properties müssen diese nicht konfiguriert werden.
+ Intelligenter Umgang mit unterschiedlichen Datentypen.
- Verschiedenste Möglichkeiten der Konfiguration im Internet beschrieben die nicht mehr alle gültig sind.
- Fehlergründe für Mapping gelegentlich schwer zu finden.
var config = new MapperConfiguration(cfg => cfg.CreateMap<Order, OrderDto>());
var mapper = new Mapper(config);
OrderDto dto = mapper.Map<OrderDto>(order);
€
Erweiterung des AutoMappers um Aufwände von wiederkehrender Aufgaben in Kombination mit Entity
Framework zu verringern.
+ Vereinfacht wiederkehrende Aufgaben im Zusammenahng mit Entity Framework 6 noch weiter.
- Nur EF6 wird unterstützt.
var config = new MapperConfiguration(cfg => cfg.CreateMap<Order, OrderDto>());
IEnumerable<OrderDto> dtos = context.Orders.ProjectToList<OrderDto>(config);
€
Tests sind integraler Bestandteile der Aufgabenverwaltung
und werden über ein Webfrontend verwaltet. Automatisierte
Tests können, ohne großen Aufwand, direkt in der Cloud
ausgeführt werden.
+ Tests und Features können direkt verknüpft werden.
+ Eindeutige Nachverfolg- / Nachvollziehbarkeit.
+ Anbindung an Tools wie Excel.
o keine Offlinefähigkeit
- Halbautomatische Tests wie mit dem Test Manager sind
nicht möglich.
- Übersichtlichkeit kann bei vielen Tests verloren gehen.
€
Werkzeug mit dem automatisierte Tests kontinuierlich
während der Programmierung ausgeführt werden.
+ Sehr schnelle Feedbackzyklen.
+ Volle Integration ins Visual Studio.
+ Sehr klare Darstellung der Testabdeckung und möglicher
Fehlerstellen.
+ Out-of-the-box Unterstützung für MS Test, NUnit, XUnit.net
+ Umfangreiche Konfigurationsmöglichkeiten.
o Nicht für Integrationstests geeignet.
o Funktionale UI
- Zugriffe auf das Dateisystem aus Tests heraus führen
häufig zu Fehlern.
€
Plugin für Visual Studio um XAML Code automatisch zu
formatieren.
+ Sehr einfach und leichtgewichtig.
+ Xaml Dateien sind besser lesbar.
o Reformatierung des Codes kann zu Problemen bei
Code-Reviews führen.
- Sehr große Dateien (>10k Zeilen) können das VS zum
Absturz bringen.
€
[TestClass]
public class PersonValidationTests
{
[TestMethod]
public void Error_text_shall_be_provided()
{
var sut = new Person();
Assert.IsNotNull(sut["FirstName"]);
Assert.IsNotNull(sut["LastName"]);
Assert.IsNotNull(sut["BirthDate"]);
}
}
Testautomatisierungsframework des Visual Studios.
+ Gut geeignet für UI und Integrationstests
+ Tests können ohne Zusatzaufwand im TFS Build
ausgeführt werden.
+ Code Coverage kann leicht erfasst werden.
o Interne Struktur von MS Test lässt nahezu keine
Erweiterungen zu.
- Funktionalität unterscheidet sich von Plattform zu
Plattform.
- Lässt diverse Standardfeatures moderner XUnit
Frameworks vermissen (parametrisierte Tests,
Auswertung von Exceptions, Propertybased Tests).
€
[TestFixture]
public class PersonValidationTests
{
[Test]
public void Error_text_shall_be_provided()
{
var sut = new Person();
Assert.That(sut["FirstName"], Is.Not.Null);
Assert.That(sut["LastName"], Is.Not.Null);
Assert.That(sut["BirthDate"], Is.Not.Null);
}
}
Sehr leistungsfähiges XUnit Testing Framework.
+ Gut geeignet für Unit und Integrationstests.
+ Wird von vielen gängigen Tools unterstützt.
+ Bietet die meisten Feautres der gängigen
XUnit Frameworks.
+ Ist sehr gut erweiterbar
+ Kann für alle gängigen .Net Plattformen eingesetzt
werden.
o Es wird ein Adapter benötigt um Tests in TFS und
VS ausführen zu können (per NuGet installierbar)
€
public class WhenPersonSelectionIsShown : Specifies<PersonSelectionViewModel>
{
public override void Given()
{
this.AvailablePersons = new List<Person>(){new Person()};
var repository = this.GetInstance<IRepository>();
A.CallTo(() => repository.GetPersons()).Returns(this.AvailablePersons);
}
public override void When()
{
this.SUT.OnShow();
}
[Test]
public void ThenAllAvailablePersonsAreShown()
{
Assert.AreEqual(this.AvailablePersons.Count(), this.SUT.Persons.Count());
}
public IEnumerable<Person> AvailablePersons { get; set; }
}
Leichtgewichtige Erweiterung von NUnit und MS Test
um Tests in BDD Stil zu verfassen.
+ Bietet Automocking.
+ Sehr umfangreich und leicht erweiterbar.
+ Erlaubt lesbarere Tests.
+ Ist gut erweiterbar
+ Leichtgewichtig.
o bietet vergleichsweise wenige Features moderner
BDD Frameworks.
€
Im Visual Studio integriertes Werkzeug zum
automatisierten Testen von Applikationen auf UI-Ebene.
+ Sehr schnell einsatzfähig.
+ Bietet eine einfache Möglichkeit der UI Automation.
o um wirklich umfassend eingesetzt werden zu können
braucht es viel mehr Übung als Anfangs offensichtlich.
o es empfiehlt sich die UI Map als Ausgangspunkt für
eigenen Code zu verwenden.
- UI-Maps werden schnell unübersichtlich.
- Das Tool „vergisst“ gelegentlich Steuerelemente.
- Parameterübergabe an Methoden ungewöhnlich.
- Refaktoring von UI-Maps ist sehr aufwändig.
€
BDD-Framework mit dem Anforderungen und Tests
verschmolzen werden können.
+ Anforderungen werden klarsprachlich definiert und
sind der Ausgangspunkt für automatisierte Tests.
+ Editor der Featurefiles verfügt über Autover-
vollständigung und Code Highlightning.
+ Kann mit diversen Testingframeworks genutzt werden.
+ Macht die UI Maps der Coded UI Tests einfacher
nutzbar.
o Das gesamte Team muss an der Pflege und Erstellung
der Dateien beteiligt werden.
- Kopplung von Text und Test nur im Visual Studio
verfügbar.
€
Sehr einfaches und leicht verständliches Mocking
Framework welches einen umfassenden Einsatz von
Interfaces verlangt.
+ Sehr einfach nutz und erlernbar.
+ Tests mit FakeItEasy sind sehr gut lesbar.
+ Sehr aktive Community.
+ Weitreichend von anderen Frameworks unterstützt.
+ Sehr gute Dokumentation.
- Kann keine konkreten Typen mocken.
- Kann keine statischen Typen mocken.
€
[TestMethod]
public void Selected_person_shall_be_removed_from_database()
{
using(ShimsContext.Create())
{
bool wasCalled = false;
ShimPersonRepository.AllInstances.Delete =
x => { wasCalled = true; };
var sut = new PersonManagementViewModel();
sut.SelectedPerson = new Person();
sut.DeleteCommand.Execute(null);
}
Assert.IsTrue(wasCalled, "Was not called!");
}
Mockingfeature des Visual Studios mit dem auch
konkrete Implementierungen ersetzt werden können.
+ Kann konkrete Typen mocken.
+ Kann statische Typen mocken.
o Braucht ein Dupplikat der zu mockenden Assembly.
- Tests sind vergleichsweise schwer lesbar.
- Mocking ist sehr langsam wenn Shims verwendet
werden.
€
public class Person
{
public string Name { get; set; }
public string LastName { get; set; }
}
public class HelloFiller
{
public void FillPerson()
{
var pFiller = new Filler<Person>();
pFiller.Setup()
.OnProperty(p => p.Name).Use("John")
.OnProperty(p => p.LastName).Use(new
RealNames(NameStyle.LastName));
var filledPerson = pFiller.Create();
}
}
Framework zur automatisierten Generierung von Daten.
+ Sehr einfach verständlich.
+ Sehr umfangreich.
+ Bietet Implementierungen für viele Standardfälle.
+ Gute Plugin-Infrastruktur um selbst Erweiterungen
vorzunehmen.
+ Gute Dokumentation
+ Aktive Community
o Aufwändige Konfiguration führen zu repetitivem Code.
- Keine direkte Integration in Testingframeworks.
Bietet verschiedenste Möglichkeiten um Quellcode zu analysieren, refaktorisieren und zu verbessern.
€
View ViewModel Model
DataBinding
BindableBase
Validateable
BindableBase
View
ViewModel Model
DataBinding
„Entity
ViewModel“

Weitere ähnliche Inhalte

Ähnlich wie Werkzeugkasten

TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
Hendrik Lösch
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
Jürg Stuker
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
Thorsten Kamann
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
Ulrich Krause
 
EnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heuteEnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heute
Philipp Burgmer
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerSandro Sonntag
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cb
bofh42
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
Ulrich Krause
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
Ulrich Krause
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
Patrick Paechnatz
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007
jan_mindmatters
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsChristoph Adler
 
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickTaugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Philipp Burgmer
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
Ulrich Krause
 
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
goobi_org
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
Jens Binfet
 
Funktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit SodiumFunktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit Sodium
Torsten Fink
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
Aptly GmbH
 

Ähnlich wie Werkzeugkasten (20)

TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
EnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heuteEnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heute
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM Server
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cb
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
 
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickTaugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
 
GWT
GWTGWT
GWT
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
 
Funktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit SodiumFunktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit Sodium
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
 

Mehr von Hendrik Lösch

Why (most) softwareprojects fail silently
Why (most) softwareprojects fail silentlyWhy (most) softwareprojects fail silently
Why (most) softwareprojects fail silently
Hendrik Lösch
 
We (don't) need a software architect!?!
We (don't) need a software architect!?!We (don't) need a software architect!?!
We (don't) need a software architect!?!
Hendrik Lösch
 
Restrukturierung einer industriellen Großapplikation
Restrukturierung einer industriellen GroßapplikationRestrukturierung einer industriellen Großapplikation
Restrukturierung einer industriellen Großapplikation
Hendrik Lösch
 
Vom Monolith zum Modulith
Vom Monolith zum ModulithVom Monolith zum Modulith
Vom Monolith zum Modulith
Hendrik Lösch
 
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Der Software auf den Zahn gefühlt - Einstieg in die ArchitekturbewertungDer Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Hendrik Lösch
 
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
Hendrik Lösch
 
Software ist was du draus machst!
Software ist was du draus machst!Software ist was du draus machst!
Software ist was du draus machst!
Hendrik Lösch
 
Modular mit .NET
Modular mit .NETModular mit .NET
Modular mit .NET
Hendrik Lösch
 
.NET zu .NET Core
.NET zu .NET Core.NET zu .NET Core
.NET zu .NET Core
Hendrik Lösch
 
Workshop Vue js
Workshop Vue jsWorkshop Vue js
Workshop Vue js
Hendrik Lösch
 
Migrationsstrategien
MigrationsstrategienMigrationsstrategien
Migrationsstrategien
Hendrik Lösch
 
Einstieg in das Vueniverse
Einstieg in das VueniverseEinstieg in das Vueniverse
Einstieg in das Vueniverse
Hendrik Lösch
 
Survivalkit für Codehausmeister
Survivalkit für CodehausmeisterSurvivalkit für Codehausmeister
Survivalkit für Codehausmeister
Hendrik Lösch
 
Confessions of a Codehausmeister
Confessions of a CodehausmeisterConfessions of a Codehausmeister
Confessions of a Codehausmeister
Hendrik Lösch
 
Hey, wie geht es dir?
Hey, wie geht es dir?Hey, wie geht es dir?
Hey, wie geht es dir?
Hendrik Lösch
 
WPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF RundumschlagWPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF Rundumschlag
Hendrik Lösch
 
Clean mit visual studio
Clean mit visual studioClean mit visual studio
Clean mit visual studio
Hendrik Lösch
 
Advanced Refactoring Patterns
Advanced Refactoring PatternsAdvanced Refactoring Patterns
Advanced Refactoring Patterns
Hendrik Lösch
 
Codesmells
CodesmellsCodesmells
Codesmells
Hendrik Lösch
 
Advanced Refactoring Patterns - Dev Day 2018
Advanced Refactoring Patterns - Dev Day 2018Advanced Refactoring Patterns - Dev Day 2018
Advanced Refactoring Patterns - Dev Day 2018
Hendrik Lösch
 

Mehr von Hendrik Lösch (20)

Why (most) softwareprojects fail silently
Why (most) softwareprojects fail silentlyWhy (most) softwareprojects fail silently
Why (most) softwareprojects fail silently
 
We (don't) need a software architect!?!
We (don't) need a software architect!?!We (don't) need a software architect!?!
We (don't) need a software architect!?!
 
Restrukturierung einer industriellen Großapplikation
Restrukturierung einer industriellen GroßapplikationRestrukturierung einer industriellen Großapplikation
Restrukturierung einer industriellen Großapplikation
 
Vom Monolith zum Modulith
Vom Monolith zum ModulithVom Monolith zum Modulith
Vom Monolith zum Modulith
 
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Der Software auf den Zahn gefühlt - Einstieg in die ArchitekturbewertungDer Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
 
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
 
Software ist was du draus machst!
Software ist was du draus machst!Software ist was du draus machst!
Software ist was du draus machst!
 
Modular mit .NET
Modular mit .NETModular mit .NET
Modular mit .NET
 
.NET zu .NET Core
.NET zu .NET Core.NET zu .NET Core
.NET zu .NET Core
 
Workshop Vue js
Workshop Vue jsWorkshop Vue js
Workshop Vue js
 
Migrationsstrategien
MigrationsstrategienMigrationsstrategien
Migrationsstrategien
 
Einstieg in das Vueniverse
Einstieg in das VueniverseEinstieg in das Vueniverse
Einstieg in das Vueniverse
 
Survivalkit für Codehausmeister
Survivalkit für CodehausmeisterSurvivalkit für Codehausmeister
Survivalkit für Codehausmeister
 
Confessions of a Codehausmeister
Confessions of a CodehausmeisterConfessions of a Codehausmeister
Confessions of a Codehausmeister
 
Hey, wie geht es dir?
Hey, wie geht es dir?Hey, wie geht es dir?
Hey, wie geht es dir?
 
WPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF RundumschlagWPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF Rundumschlag
 
Clean mit visual studio
Clean mit visual studioClean mit visual studio
Clean mit visual studio
 
Advanced Refactoring Patterns
Advanced Refactoring PatternsAdvanced Refactoring Patterns
Advanced Refactoring Patterns
 
Codesmells
CodesmellsCodesmells
Codesmells
 
Advanced Refactoring Patterns - Dev Day 2018
Advanced Refactoring Patterns - Dev Day 2018Advanced Refactoring Patterns - Dev Day 2018
Advanced Refactoring Patterns - Dev Day 2018
 

Werkzeugkasten

  • 1.
  • 2.
  • 3.
  • 4. € Kostenfrei nutzbar € Kostenfrei mit Premiumfeatures € Kostenpflichtig Persönlicher Favorit
  • 5.
  • 6. Erfassung und Aufbereitung von Anforderungen auf Basis einer dynamischen Story Map. + Sehr einfach zu bedienen. + Bietet Übersicht über alle Anforderungen. + Export nach Excel, Html und TFS. o 100€ pro Nutzer o Benötigt Einarbeitung - Lässt einige grundlegende Komfortfunktionen vermissen (Undo/Redo) €
  • 7. Zeichnen von UI Mockups mit Hilfe von Powerpoint. + Sehr einfach zu bedienen. + Kann auch ohne Visual Studio genutzt werden. + Bietet zahlreiche Steuerelemente. + Ergebnisse können mit TFS Workitems verknüpft werden o Kein Export in andere Formate (Html, Xaml) - Aufwändig bei größeren Dialogen - Darstellung echter Interaktion sehr mühselig €
  • 8. € Verschiedene Ansichten zur Planung und Verwaltung von Arbeitspaketen. + Übersichtliche, rollenspezifische Sichten. + Automatische Burndowncharts und Forecasts. + Epics, Stories, Tasks, Bugs und Testfälle leicht verfügbar. + Featurebranches können direkt aus Stories heraus erstellt werden. + Viele Schnittstellen zu anderen Diensten. o Nur in Kombination mit anderen TFS Features verfügbar. o Benötigt Einarbeitung. o Nicht offlinefähig.
  • 9. € Verschiedene Ansichten zur Planung und Verwaltung von Arbeitspaketen. + Einfach und übersichtlich. + Alle wichtigen Features kostenlos. + Frei konfigurierbare Spalten mit Spaltenlimits. + Zusatzfeatures wie Taskalterung, Checklisten, Kopieren von Inhalten, Tasks per Email anlegen. + Arbeit sehr gut mit anderen Diensten zusammen. o Nicht offlinefähig - Hierarchien von Aufgaben können nur aufwändig abgebildet werden.
  • 10. € Taskboard des Issuetrackings von Github. + Einfach und übersichtlich. + Alle wichtigen Features kostenlos. + Frei konfigurierbare Spalten mit Spaltenlimits. + Änderungen werden automatisch in Githubs Issuetracking übernommen. o Nicht offlinefähig - Hierarchien von Aufgaben können nur aufwändig abgebildet werden.
  • 11. € Taskboard für touchfähige Großbildschirme zur Echtzeitsynchronisation verteilter Scrum Teams. + Einfach und übersichtlich. + Anbindung von TFS und Jira o Wird durch die Saxonia Systems AG mit Ihren Teams bereitgestellt. o Nicht offlinefähig. - Kann nicht ohne TFS oder Jira arbeiten.
  • 12.
  • 13. € Contionouse Integration umgebung des TFS / VSTS. + Vergleichsweise einfach und übersichtlich. + Alle wichtigen Features kostenlos. + Gute Übersicht über die Ergebnisse und den Verlauf. + Bietet viele Erweiterungsmöglichkeiten über Plugins. o Anpassungen am Projekttemplate können die Konfiguration verkomplizieren. - In de kostenlosen Variante kommt es gelegentlich zu Verzögerungen bei aufwändigen Builds. - Einsatz für nicht Microsofttechnologien noch nicht ganz ausgereift.
  • 14. € CI Umgebung für .Net Projekte. + Sehr einfach und übersichtlich. + Für Opensource kostenlos. + Gute Übersicht über die Ergebnisse und den Verlauf. + Gute Zusammenarbeit mit Github. o Geringe Anpassungmöglichkeiten. - Ausführung und Dokumentation automatisierter Tests eher rudimentär.
  • 15. € Beliebtester Hostingdienst für Opensource Projekte auf Basis von Git. + Sehr große Community. + Für Opensource kostenlos. + Wird von vielen Diensten unterstützt. o Private Repositories kostenpflichtig. - UI ist bedingt nutzerfreundlich.
  • 16. € Sehr weit verbreitete GUI für Git + Plattformunabhängig + Gute Abbildung der gängigen Arbeitsabläufe. + kostenlos o Wird bei größeren oder vielen Projekten träge. - Anzeige der Dateihistorie und des Mergings sind verbesserungsfähig.
  • 17. € Vergleichsweise neue GUI für Git die versucht andere Wege der Darstellung zu gehen. + Plattformunabhängig + Gute Abbildung der gängigen Arbeitsabläufe. + Auch komplexe Aufgaben können über die UI gelöst werden. + kostenlos. + Gute Darstellung der Dateihistorie und Versionsvergleiche. o Wird bei größeren oder vielen Projekten träge. o Benötigt etwas Einarbeitungszeit.
  • 18. € Alternative Windows Console. + Bietet eine Vielzahl an Komfortfunktionen (Farbe, Copy&Paste, Tabbing, …) + Kann mehrere Fenster zeitgleich verwalten. + Durch Plugins aus dem VS heraus verwendbar. + Kostenlos. o Gleicher Befehlssatz wie der Windows Commandprompt. - Keine Erweiterten Befehle oder Scripting.
  • 19.
  • 20. € Framework zur Erstellung modularer Applikationen auf Basis diverser Xaml UI Technologien. Eignet sich besonders für komplexe Großanwendungen. + Bootstrapping der Anwendung. + Regionhandling & Navigation. + ViewModel Locator. + Integration von DI Frameworks. + Modulehandling / Plugins. + Infrastruktur für Behaviours. + DelegateCommands. + Messagebus aka EventAggregator. + Verschiedene Basisklassen für ViewModels. o Bei Kleinstanwendungen eher schwergewichtig.
  • 21. € Framework zur Erstellung modularer Applikationen auf Basis diverser Xaml UI Technologien. Eignet sich besonders für kleinere Anwendungen. + RelayCommands. + Messagebus aka EventAggregator. + Verschiedene Basisklassen für ViewModels. + Design Time Data o Die Applikationsinfrastruktur für Navigation und Bootstrapping ist nicht Teil des Frameworks.
  • 22. € IoC Container der sehr gut in Kombination mit Prism zusammen arbeitet. + Es gibt nur einen Typen bei dem Typen registriert und aufgelöst werden. + Diverse Möglichkeiten um Einfluss auf die Lebenszeit von Instanzen zu nehmen. + XML Konfiguration möglich. + Automatische Registrierung bestimmter Typen einer Assembly möglich. + Einsatz aspektorientierter Programmierung möglich. o Es gibt weitaus schnellere IoC Container. o AOP wird zur Laufzeit vorgenommen und ist dadurch vergleichsweise langsam. - Wird aktuell nicht sehr aktiv gepflegt.
  • 23. € Umfangreicher IoC Container der sehr gut mit anderen Frameworks kombiniert werden kann. + Vergleichsweise schnelle Auflösung von Typen. + Sehr umfangreiche Möglichkeiten um Einfluss auf die Lebenszeit von Instanzen zu nehmen. + Automatische Registrierung bestimmter Typen einer Assembly möglich. + Für diverse .Net Plattformen verfügbar. + Konfiguration per XML und Json möglich. + Eigene Modulinfrastruktur. + Hervorragende Dokumentation und Pflege. o Etwas aufwändig mit Prism zu verwenden. o Registrierung und Auflösung von Typen geschieht über unterschiedliche Klassen.
  • 24.
  • 25. € public IQueryable<Place> GetPlaces(int categoryId) { var places = this.dataBase.CategoryPlace .Where(x => x.CategoryId == categoryId); return this.dataBase.Place.Where(x => places .Any(p => p.PlaceId == x.Id)); } public Language GetLanguage(int languageId) { return this.dataBase.Language.Find(languageId); } Sehr umfangreicher objektrelationaler Mapper für diverse .Net Plattformen. + Sehr einfach und intuitiv zu nutzen. + Gute Konfigurationsmöglichkeiten. + Sowohl für kleine als auch große Projekte geeignet. + Sehr aktive Community. o Einsatz mit Nicht Microsoft Datenbanken gelegentlich schwierig. o Einfachheit täuscht darüber hinweg wie schnell man Performanceschwachstellen entwickeln kann. - Verwirrende Releasestrategie der unterschiedlichen Versionen.
  • 26. € Werkzeug zum automatischen Mappen von Daten aus einem Datenmodell in ein anderes. + Spart viel Zeit bei repetitiven Aufgaben. + Bei Namensgleichheit der Properties müssen diese nicht konfiguriert werden. + Intelligenter Umgang mit unterschiedlichen Datentypen. - Verschiedenste Möglichkeiten der Konfiguration im Internet beschrieben die nicht mehr alle gültig sind. - Fehlergründe für Mapping gelegentlich schwer zu finden. var config = new MapperConfiguration(cfg => cfg.CreateMap<Order, OrderDto>()); var mapper = new Mapper(config); OrderDto dto = mapper.Map<OrderDto>(order);
  • 27. € Erweiterung des AutoMappers um Aufwände von wiederkehrender Aufgaben in Kombination mit Entity Framework zu verringern. + Vereinfacht wiederkehrende Aufgaben im Zusammenahng mit Entity Framework 6 noch weiter. - Nur EF6 wird unterstützt. var config = new MapperConfiguration(cfg => cfg.CreateMap<Order, OrderDto>()); IEnumerable<OrderDto> dtos = context.Orders.ProjectToList<OrderDto>(config);
  • 28.
  • 29. € Tests sind integraler Bestandteile der Aufgabenverwaltung und werden über ein Webfrontend verwaltet. Automatisierte Tests können, ohne großen Aufwand, direkt in der Cloud ausgeführt werden. + Tests und Features können direkt verknüpft werden. + Eindeutige Nachverfolg- / Nachvollziehbarkeit. + Anbindung an Tools wie Excel. o keine Offlinefähigkeit - Halbautomatische Tests wie mit dem Test Manager sind nicht möglich. - Übersichtlichkeit kann bei vielen Tests verloren gehen.
  • 30. € Werkzeug mit dem automatisierte Tests kontinuierlich während der Programmierung ausgeführt werden. + Sehr schnelle Feedbackzyklen. + Volle Integration ins Visual Studio. + Sehr klare Darstellung der Testabdeckung und möglicher Fehlerstellen. + Out-of-the-box Unterstützung für MS Test, NUnit, XUnit.net + Umfangreiche Konfigurationsmöglichkeiten. o Nicht für Integrationstests geeignet. o Funktionale UI - Zugriffe auf das Dateisystem aus Tests heraus führen häufig zu Fehlern.
  • 31. € Plugin für Visual Studio um XAML Code automatisch zu formatieren. + Sehr einfach und leichtgewichtig. + Xaml Dateien sind besser lesbar. o Reformatierung des Codes kann zu Problemen bei Code-Reviews führen. - Sehr große Dateien (>10k Zeilen) können das VS zum Absturz bringen.
  • 32. € [TestClass] public class PersonValidationTests { [TestMethod] public void Error_text_shall_be_provided() { var sut = new Person(); Assert.IsNotNull(sut["FirstName"]); Assert.IsNotNull(sut["LastName"]); Assert.IsNotNull(sut["BirthDate"]); } } Testautomatisierungsframework des Visual Studios. + Gut geeignet für UI und Integrationstests + Tests können ohne Zusatzaufwand im TFS Build ausgeführt werden. + Code Coverage kann leicht erfasst werden. o Interne Struktur von MS Test lässt nahezu keine Erweiterungen zu. - Funktionalität unterscheidet sich von Plattform zu Plattform. - Lässt diverse Standardfeatures moderner XUnit Frameworks vermissen (parametrisierte Tests, Auswertung von Exceptions, Propertybased Tests).
  • 33. € [TestFixture] public class PersonValidationTests { [Test] public void Error_text_shall_be_provided() { var sut = new Person(); Assert.That(sut["FirstName"], Is.Not.Null); Assert.That(sut["LastName"], Is.Not.Null); Assert.That(sut["BirthDate"], Is.Not.Null); } } Sehr leistungsfähiges XUnit Testing Framework. + Gut geeignet für Unit und Integrationstests. + Wird von vielen gängigen Tools unterstützt. + Bietet die meisten Feautres der gängigen XUnit Frameworks. + Ist sehr gut erweiterbar + Kann für alle gängigen .Net Plattformen eingesetzt werden. o Es wird ein Adapter benötigt um Tests in TFS und VS ausführen zu können (per NuGet installierbar)
  • 34. € public class WhenPersonSelectionIsShown : Specifies<PersonSelectionViewModel> { public override void Given() { this.AvailablePersons = new List<Person>(){new Person()}; var repository = this.GetInstance<IRepository>(); A.CallTo(() => repository.GetPersons()).Returns(this.AvailablePersons); } public override void When() { this.SUT.OnShow(); } [Test] public void ThenAllAvailablePersonsAreShown() { Assert.AreEqual(this.AvailablePersons.Count(), this.SUT.Persons.Count()); } public IEnumerable<Person> AvailablePersons { get; set; } } Leichtgewichtige Erweiterung von NUnit und MS Test um Tests in BDD Stil zu verfassen. + Bietet Automocking. + Sehr umfangreich und leicht erweiterbar. + Erlaubt lesbarere Tests. + Ist gut erweiterbar + Leichtgewichtig. o bietet vergleichsweise wenige Features moderner BDD Frameworks.
  • 35. € Im Visual Studio integriertes Werkzeug zum automatisierten Testen von Applikationen auf UI-Ebene. + Sehr schnell einsatzfähig. + Bietet eine einfache Möglichkeit der UI Automation. o um wirklich umfassend eingesetzt werden zu können braucht es viel mehr Übung als Anfangs offensichtlich. o es empfiehlt sich die UI Map als Ausgangspunkt für eigenen Code zu verwenden. - UI-Maps werden schnell unübersichtlich. - Das Tool „vergisst“ gelegentlich Steuerelemente. - Parameterübergabe an Methoden ungewöhnlich. - Refaktoring von UI-Maps ist sehr aufwändig.
  • 36. € BDD-Framework mit dem Anforderungen und Tests verschmolzen werden können. + Anforderungen werden klarsprachlich definiert und sind der Ausgangspunkt für automatisierte Tests. + Editor der Featurefiles verfügt über Autover- vollständigung und Code Highlightning. + Kann mit diversen Testingframeworks genutzt werden. + Macht die UI Maps der Coded UI Tests einfacher nutzbar. o Das gesamte Team muss an der Pflege und Erstellung der Dateien beteiligt werden. - Kopplung von Text und Test nur im Visual Studio verfügbar.
  • 37. € Sehr einfaches und leicht verständliches Mocking Framework welches einen umfassenden Einsatz von Interfaces verlangt. + Sehr einfach nutz und erlernbar. + Tests mit FakeItEasy sind sehr gut lesbar. + Sehr aktive Community. + Weitreichend von anderen Frameworks unterstützt. + Sehr gute Dokumentation. - Kann keine konkreten Typen mocken. - Kann keine statischen Typen mocken.
  • 38. € [TestMethod] public void Selected_person_shall_be_removed_from_database() { using(ShimsContext.Create()) { bool wasCalled = false; ShimPersonRepository.AllInstances.Delete = x => { wasCalled = true; }; var sut = new PersonManagementViewModel(); sut.SelectedPerson = new Person(); sut.DeleteCommand.Execute(null); } Assert.IsTrue(wasCalled, "Was not called!"); } Mockingfeature des Visual Studios mit dem auch konkrete Implementierungen ersetzt werden können. + Kann konkrete Typen mocken. + Kann statische Typen mocken. o Braucht ein Dupplikat der zu mockenden Assembly. - Tests sind vergleichsweise schwer lesbar. - Mocking ist sehr langsam wenn Shims verwendet werden.
  • 39. € public class Person { public string Name { get; set; } public string LastName { get; set; } } public class HelloFiller { public void FillPerson() { var pFiller = new Filler<Person>(); pFiller.Setup() .OnProperty(p => p.Name).Use("John") .OnProperty(p => p.LastName).Use(new RealNames(NameStyle.LastName)); var filledPerson = pFiller.Create(); } } Framework zur automatisierten Generierung von Daten. + Sehr einfach verständlich. + Sehr umfangreich. + Bietet Implementierungen für viele Standardfälle. + Gute Plugin-Infrastruktur um selbst Erweiterungen vorzunehmen. + Gute Dokumentation + Aktive Community o Aufwändige Konfiguration führen zu repetitivem Code. - Keine direkte Integration in Testingframeworks.
  • 40.
  • 41. Bietet verschiedenste Möglichkeiten um Quellcode zu analysieren, refaktorisieren und zu verbessern. €
  • 42.