29
Technik

Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

Technik

Page 2: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

Inhalt1. Arbeitsweise2. Unit Testing

a. Test-Driven-Development

3. Toolchain (TFS)a. Work Item Trackingb. DevOpsc. Code Quality

4. Frameworks5. Basistechnologien

Page 3: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

Arbeitsweise

Page 4: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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

Page 5: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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

Page 6: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

Unit Testing & Test-Driven-Development

Page 7: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

● 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

Page 8: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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.

Page 9: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

Toolchain

Page 10: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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

Page 11: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

TFS

Page 12: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite
Page 13: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite
Page 14: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite
Page 15: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite
Page 16: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite
Page 17: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite
Page 18: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

Frameworks und Techniken

Page 19: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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

Page 20: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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.

Page 21: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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!

Page 22: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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”

Page 23: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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

Page 24: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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

Page 25: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

Basis-Technologien

Page 26: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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

Page 27: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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

Page 28: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

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: [email protected]

Page 29: Technik - K&K Software AG · Inversion of Control … Je nach Projektanforderungen wird der Microsoft SQL Server oder SQLite eingesetzt. Grundsätzlich unterstützen wir eine breite

Sichern Sie sich ab:Jetzt mit der K&K Software AG und der Agilen Methode

hervorragende Produkte entwickeln.