View
8
Download
0
Category
Preview:
Citation preview
Technik
Inhalt1. Arbeitsweise2. Unit Testing
a. Test-Driven-Development
3. Toolchain (TFS)a. Work Item Trackingb. DevOpsc. Code Quality
4. Frameworks5. Basistechnologien
Arbeitsweise
Arbeitsweise - Team
● K&K “A-Team”: 5 Vollzeit-Entwickler, alle mit tiefer Spezialisierung auf C#, XAML (WPF) & T-SQL (Microsoft SQL Server)○ Bei Lastspitzen kann K&K “TeamX” hinzugezogen werden (ebenfalls 5 C#-Entwickler)○ K&K kann so bis zu 1500 Stunden Entwicklungsleistung pro Monat erbringen
● Wir können externe Entwickler unterbringen und ins Projekt einbinden● Es kann ein UI/UX-Experte zugezogen werden
Arbeitsweise - Best-Practice● Coding Conventions und Guidelines von Microsoft
○ Coding Conventions■ https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program
/coding-conventions○ Guidelines:
■ Framework Design Guidelineshttps://docs.microsoft.com/en-us/dotnet/standard/design-guidelines
■ User-Experience https://docs.microsoft.com/en-us/windows/desktop/uxguide/guidelines
○ Language Features (neu in Version 7.3)■ https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7-3
Unit Testing & Test-Driven-Development
● Um die Qualität des Codes zu sichern, muss annähernd jede Komponente auch ohne des “normalen Anwendungskontextes” lauffähig sein
● Muss von Anfang an implementiert werden, da sonst die Gefahr steigt, einzelne Komponenten nicht mehr getrennt von der restlichen Applikation ausführen und dadurch testen zu können
● Unit-Testing ist die Basis für ordentliche und dauerhafte Software-Qualität➢ Das gesamte Konzept ist Test-Driven-Development (siehe nächste Folie)➢ Test-Driven-Development (in der Reinform) ist Anfangs teurer und zahlt sich langfristig aus.
Selbst wenn kein 100%iges Test-Driven-Development gemacht werden kann, können viele Elemente dieses Konzeptes auch in “normale” Projekte übernommen werden.
Unit Testing
Unit Testing: Test-Driven-Development
● Die Stärke dieser Entwicklungsform ist die Fehlervermeidung und frühestmögliche Fehlererkennung.
● Unit-Tests sorgen für einen Fokus auf die Ziele der Software und ihrer Funktionalität.
● Akzeptanzkriterien und Abhängigkeiten werden Stück für Stück in den Unit-Tests festgehalten.
● Jede Erweiterung der Software wird vollautomatisch getestet. Schlägt ein Test fehl, erkennen wir das bevor die User-Story umgesetzt wurde.
Toolchain
Toolchain● Visual Studio (opt. Productivity Power Tools)● Sql Server Management Studio (SSMS)● Team Foundation Server (TFS)
○ transparente Dokumentations- und Kommunikationsgrundlage■ welche Akzeptanzkriterien erfüllt die umgesetzte User Story■ Codeänderungen zum erfüllen der Akzeptanzkriterien■ wer die User-Story umgesetzt hat
○ automatisierte Builds und Auslieferung■ wird von uns bereitgestellt■ jede Version kann zu jeder Zeit vom Build-Server kompiliert und heruntergeladen werden
○ ist über das Internet erreichbar
TFS
Frameworks und Techniken
Aktuelle Frameworks und Techniken
Einsatz von Best-Practice ⇒ wir erfinden das Rad nicht neu.
● PRISM Framework● Repository in Verbindung mit Unit-of-Work Design Pattern● Dependency Injection● Façade● Unit Testing● Entity Framework
PRISM
● PRISM ist eine leistungsstarke Open Source MVVM-Bibliothek● Definitionen
○ MVVM = lose Kopplung zwischen Model, View und ViewModel○ Model = Datenmodell (Zwischenschicht zur Repräsentation der Daten aus der Datenbank)○ View = Anzeige (grafische Benutzeroberfläche & visuelle Repräsentation des ViewModels)○ ViewModel = Zustand der Oberfläche (und Bindeglied zwischen Model und View)
● Nutzen○ Mithilfe von Design Patterns, die wichtigen Prinzipien des architektonischen Designs
verkörpern, wie z. B. “Seperation of Concerns” und “loose Coupling”, unterstützt PRISM den Entwickler bei der Entwicklung und Erstellung von Anwendungen mit lose gekoppelten Komponenten, die unabhängig voneinander entwickelt werden können, aber einfach und nahtlos in die gesamte Anwendung integriert werden können.
Repository in Verbindung mit Unit-of-Work Pattern
● Repository in Verbindung mit Unit-of-Work Pattern○ Definitionen
■ Repository ⇒ Repräsentation und Sammlung der Datenbankschema zur Business-Logik■ Unit-of-Work ⇒ Sammlung von Repositorys innerhalb einer Maske■ Pattern ⇒ Sammlung von Best-Practice-Regeln für wiederkehrende Problemstellungen
○ Nutzen:■ Daten werden zentral an einem Ort angelegt, bearbeitet und gelöscht■ Es muss kein Code doppelt geschrieben werden, da von überall auf diese Schicht
zugegriffen werden kann
● ⇒ wir schreiben zukunftsorientierten und wartbaren Code!
Dependency Injection● Ist eine Technik um feste Referenzen zu minimieren● Erhöht die Testbarkeit, da komplexe Codefragmente durch vereinfachte
Schnittstellenbeschreibungen verborgen werden können ⇒ Codezeilen werden nicht mehrfach getestet
● Die Bibliothek “Unity” wird als Dependency Injector verwendet● Zentralisiertes Abhängigkeitsmanagement, welches mit allgemeinen
Schnittstellenbeschreibungen das passende Codefragment (Service / Factory / Façade / …) “einfügt”
Façade● verbirgt komplexe Codefragmente hinter einer einfachen “Fassade”
○ verbirgt für Entwickler nicht relevanten Code ⇒ verbessert die Lesbarkeit des Codes ⇒ v. a. wichtig, wenn der Code von mehreren Entwicklern angefasst wird
Frameworks im Frontend● Xceed Toolkit
○ siehe Live-Explorer für Demo: https://github.com/xceedsoftware/wpftoolkit/releases○ AvalonDock
■ als Fenstermanagement für komplexe Anwendungen○ User-Controls
■ Enthält eine vielzahl von Komponenten zum bearbeiten, anlegen und löschen der Daten■ sind einfach erweiterbar
Basis-Technologien
Basistechnologien C# gemeinsame Backends● Architekturmuster “MVP”
○ Minimum Viable Product● Entwurfsmuster
○ Dependency Injection (Unity, …)○ Asynchrone Programmierung○ Inversion of Control○ …
● Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite Palette an DBMS.
● Unit Testing○ XUnit (.NET Core) oder NUnit (.NET
Framework)○ Moq
● Nuget Package Manager zur Bereitstellung eigens entwickelter Quellcode-Bibliotheken
● Verschlüsselung von Kommunikation zur Sicherstellung der Datenintegrität und -sicherheit
● Performante Anwendungen mit Multi-Threaded Programmierung
Basistechnologien C# ClientsDesktop-Client
● Windows Presentation Foundation (WPF)● Je nach Projektumfang wird MVVM Light
Toolkit oder PRISM genommen● Zur Generierung von Graphen und
Diagrammen wird OxyPlot eingesetzt● Zur Erweiterung der Benutzeroberfläche
wird das Xceed Toolkit verwendet● Als Fensterlayout-Manager ist AvalonDock
im Einsatz
Web-Client
● Backend○ Im Web wird das MVC Pattern abhängig
von der Plattform entweder mit ASP.NET MVC 6 oder ASP.NET Core MVC entwickelt.
● Frontend○ Aktuelle Webstandards○ Typescript○ Bootstrap 4○ Angular
Fragen? Bitte sprechen Sie uns an!
Wir freuen uns auf Ihren Anruf und Ihre Nachricht. Wir sind um Ihr Anliegen bemüht und stehen für detaillierte Fragen gerne und prompt zur Verfügung.
Ich bin Ihre Ansprechpartnerin:
Laura KöplLeitung Marketing und Vertrieb
Telefon: 09382 / 3102-241E-Mail: koepl@kk-software.de
Sichern Sie sich ab:Jetzt mit der K&K Software AG und der Agilen Methode
hervorragende Produkte entwickeln.
Recommended