Nog niet gekend

C# Software Architect

Building solutions using design patterns, microservices, devops en AI

  • KMO-portefeuille

Introductie

Tijdens deze 7-daagse opleiding komen de vele aspecten waarin een software architect actief is en de kennisdomeinen waarin deze moet onderlegd zijn, uitgebreid aan bod. Het is een diepgaande training om een bekwame en gewaardeerde software architect te worden die een leidende rol in een ontwikkelteam zal kunnen uitoefenen.

Omschrijving

De software architect is verantwoordelijk voor het ontwerpen van de high-level architectuur van toepassingen, waarbij elementen zoals onderhoudbaarheid, herbruikbaarheid, leesbaarheid van code, ... inherent deel moeten uitmaken van de oplossing.

In deze opleiding leert u hoe u concreet een nieuw softwareproject opstart, welke keuzes u moet maken en welke architecturen beschikbaar zijn. Na deze opleiding kan u van a tot z uw project beheren.

De opleiding bestaat uit 7 verschillende modules waarbij de toekomstige Software Architect zowel theoretisch als praktisch getraind wordt door een ervaren Senior Software Architect die vanuit zijn ervaring de kennis en best practices zal bijbrengen.

Voor wie is deze opleiding bestemd?

  • U heeft minstens 2 jaar projectervaring als software developer of technisch software analist en u heeft een sterke interesse in software architectuur.
  • U heeft de ambitie om door te groeien tot Software Architect.
  • U heeft de programmeerkennis en u wil leren hoe u een nieuw softwareproject moet aanpakken.

Voorkennis

  • U heeft minstens 2 jaar projectervaring als software developer of technisch software analist en u heeft een sterke interesse in software architectuur.
  • U heeft de ambitie om door te groeien tot Software Architect.
  • U heeft de programmeerkennis en u wil leren hoe u een nieuw softwareproject moet aanpakken.
  • Personal skills/competenties: analytisch denkvermogen, empathie, assertief, communicatief, aanleg voor formalisme, ...
  • Technical skills: minstens 2 jaar actieve programmeerervaring in OOP-taal zoals: VB.NET, of C#.NET, JAVA, C++, ...

Methodologie

Belangrijk om weten:

  • Om de opleiding te kunnen meevolgen is het noodzakelijk dat deelnemers een laptop meebrengen.
  • Visual Studio 2022 dient vóór de start van de opleiding geïnstalleerd te worden op de laptop door de deelnemer. Hiervoor kunt u eventueel de gratis Community Edition downloaden.

Hoe ziet het programma van deze opleiding eruit?

Module 1: High-level architecture and Object-Oriented Design

Het ontwerpen van business logica componenten in een object georiënteerd model is van groot belang in het ontwikkeltraject. Een correct ontwerp zorgt voor onderhoudbare code en bevordert re-usability van de geprogrammeerde libraries.

In deze module ligt de focus op zaken zoals:

  • Multi-tiered applications
  • Layered applications
  • SOLID principes
  • Low coupling & High cohesion

Module 2: Design Patterns

Het gebruik van Design Patterns in een software project leidt tot een beter onderhoudbare en flexibele codebase. Het goed inzetten van de juiste patronen vraagt gespecialiseerde kennis en inzichten.

In deze module komen de meeste gebruikte patronen aan bod:

  • Basic Patterns
    • Factory
    • Singleton
    • Adapter
    • Proxy
    • Facade
    • Decorator
    • Visitor
    • Observer
    • Repository
  • Advanced Patterns
    • Weak Event Pattern
    • Retry Pattern
    • Circuitbreaker Pattern
    • Event Sourcing Pattern
    • CQRS
  • User-Interface Patterns
    • Model-View-Patterns (MVC, MVP, MVVM)

Module 3: Services

Het opdelen van de toepassing in verschillende services zorgt voor een 'loosely coupled' implementatie model waarbij de componenten communiceren via service interfaces. Dit zorgt voor een hoge flexibiliteit en herbruikbaarheid van de code.

In Cloud scenario’s kan naar gelang de gekozen architectuur dit ook de kosten ten goede komen: intensieve services kan men meer resources toewijzen ten opzichte van services die minder actief zijn.

De volgende onderwerpen komen in dit hoofdstuk aan bod:

  • Services bouwen met gPRC
  • Asynchrone communicatie met Message Queues

Tijdens de cursus bouwen de cursisten een toepassing gebruikmakend van RabbitMQ

  • Service-Oriented Architecture (SOA)
  • Enterprise Service Bus

Tijdens de cursus bouwen de cursisten een toepassing gebruikmakend van Azure Service Bus

  • Microservices Architecture

Tijdens de cursus bouwen de cursisten een microservice gebruikmakend van een Docker containers

  • Serverless functions:

Tijdens opleiding bouwen de cursisten een serverless function gebruikmakend van Azure Functions

Module 4: Asynchronous programming

Op vandaag is het ondenkbaar enkel nog code te schrijven die sequentieel werkt: vele routines worden in parallel geschreven om beter gebruik te maken van de resources van de machines. Sommige programmeeromgevingen geven ook geen andere opties meer dan asynchroon te programmeren. Bijvoorbeeld: in .NET MAUI gebeuren alle requests voor het Filesystem asynchroon. In deze module leert u wat threads zijn, hoe ermee te werken en welke patterns hiervoor gebruikt kunnen worden.

Onderwerpen in deze module:

  • Thread and Threadpool
  • Thread synchronization (Monitor, Mutex and Semaphore)
  • Task Parallel Library
  • Async/Await

Module 5: Artificial Intelligence

In veel ondernemingen wordt de vraag gesteld: kan artificiële intelligentie ook hier op toegepast worden en hoe pakken we dit aan? De technologie is nu uit haar experimentele fase en is klaar om ook in uw bedrijf gebruikt te worden.

In deze module duiden we hoe AI kan geïntegreerd worden in uw oplossingen aan de hand van een aantal praktische toepassingen.

In deze module zien we hoe we:

  • vooraf getrainde modellen met Azure Cognitive Services kunnen gebruiken. Deze laten toe om bijv. beelden te herkennen, afwijkingen in gegevensreeksen te herkennen, etc.
  • specifieke bedrijfsprocessen  kunnen automatiseren met Chatbots of formulierherkenning aan de hand van de Azure Applied AI Services
  • Zelf AI modellen kunnen bouwen, trainen en uitvoeren met het Azure Machine Learning platform

Module 6: DevOps

Hoe een team omgaat met het ontwikkelen en testen van code en met de development principes beïnvloedt de kwaliteit en onderhoudbaarheid van de code. Dit past op zijn beurt in een groter geheel van activiteiten zoals planning, takenbeheer, beheer van broncode, deployment, enzovoort.

De Software Architect wordt betrokken in deze keuzes en is in veel organisaties hiervoor tevens de verantwoordelijke.

Onderwerpen in deze module:

  • DevOps, DevSecOps en Release Management
  • Unit Testing en Test Driven Design
  • Source control met Git
  • Branching & merging, branching strategies
  • Continuous Integration en Continuous Delivery

Module 7: Intro projectmanagement: Agile, SCRUM projecten

Afhankelijk van de grootte van de organisatie zal de Software Architect ofwel zelf ook de project manager zijn ofwel rechtstreeks met de project manager samenwerken. Daarom is het belangrijk de basisnoties van project management methodologieën te begrijpen en de verschillende fasen en rollen hiervan te kunnen identificeren.

Daarnaast zal de Software Architect ook het development team moeten aansturen en ondersteunen bij het ontwikkelen van de oplossing. Dit kan in goede banen geleid worden door het toepassen van een beproefde ontwikkelingsmethodologie zoals Scrum.

In deze module worden de volgende topics behandeld:

  • Introductie PRINCE2 project management methodologie: principes, fasen en rollen.
  • Het Agile manifesto en hoe Agile principes zich verhouden tot de Waterfall methodologie
  • Lean-softwareontwikkeling principes en NUPP-projectmanagement principes
  • Introductie SCRUM als concrete toepassing van Agile development
  • Hoe past de programmeermethodologie in de algemene project management methodologie?

Wilt u graag een opleiding aanpassen op maat van uw bedrijf?

Doe uw aanvraag voor een opleiding op maat via onderstaand formulier en we nemen zo snel mogelijk contact op.

Foto Nele Depecker

Nele Depecker

Projectcoördinator

Ik wens een incompany opleiding

Een vraag over deze opleiding?

Wij zijn er voor u! Contacteer ons en wij helpen u met veel enthousiasme verder.

Stel uw vraag