C# Software Architect


Building solutions using design patterns, microservices, devops en AI
Opleiding ICT en informatiemanagement 120639

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.

Programma

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:

  • Creational patterns
    • Factory
    • Singleton
  • Structural patterns
    • Adapter
    • Proxy
    • Facade
    • Decorator
  • Behavioral patterns
    • Visitor
    • Observer
  • User-Interface patterns
    • Model-View-Patterns
    • Reactive programming with ReactiveUI

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:

  • Asynchrone communicatie met Message Queues

Tijdens de cursus bouwen de cursisten een toepassing gebruik makend van RabbitMQ

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

Tijdens de cursus bouwen de cursisten een toepassing gebruik makend van Azure Service Bus

  • Microservices Architecture

Tijdens de cursus bouwen de cursisten een microservice gebruik makend van een Docker containers

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 Achitect 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
  • Introductie SCRUM en eXtreme Programming als concrete toepassing van Agile development
  • Hoe past de programmeermethodologie in de algemene project management methodologie?

Opgelet: Deze opleiding wordt georganiseerd door onze partner Skilliant. Het erkenningsnummer voor Skilliant is DV.O214464.

Lesdata

Datum Startuur Einduur
vrijdag 07/10/2022 09:00 12:00
vrijdag 07/10/2022 13:00 16:00
vrijdag 14/10/2022 09:00 12:00
vrijdag 14/10/2022 13:00 16:00
vrijdag 21/10/2022 09:00 12:00
vrijdag 21/10/2022 13:00 16:00
vrijdag 28/10/2022 09:00 12:00
vrijdag 28/10/2022 13:00 16:00
vrijdag 18/11/2022 09:00 12:00
vrijdag 18/11/2022 13:00 16:00
vrijdag 25/11/2022 09:00 12:00
vrijdag 25/11/2022 13:00 16:00
vrijdag 02/12/2022 09:00 12:00
vrijdag 02/12/2022 13:00 16:00

Data onder voorbehoud van eventuele wijzigingen.

Locatie

  • Campus Gent NETWORKS TWO
  • Raymonde de Larochelaan 13
  • 9051 Gent
Bekijk op Google Maps

Contact

  • T: 078 35 39 30
  • Tine@escala.be
2012-639-5-OmschrijvingDocent-1.png

Xavier Spileers

Heeft een bachelor in Accounting en een bachelor in Computer Sciences. Na bijna tien jaar te hebben doorgebracht als ontwikkelaar en projectleider besloot hij in 2007 zijn eigen bedrijf TRI-S te starten. Via dit bedrijf ontwikkelt hij zijn eigen toepassingen (voornamelijk gericht naar de financiële en boekhoudkundige sector) en levert hij consultancy diensten. Sinds 2016 is hij ook CTO en partner bij TFS, een softwarebedrijf actief in de juridische/financiële sector.

Xavier is .NET (C#) developer sinds 2003 en heeft zich ondertussen geruime tijd gespecialiseerd in het ontwikkelen van ASP.NET MVC en Angular toepassingen.

Daarnaast is hij een Microsoft Certified Professional Developer (MCPD), een Microsoft Certified Trainer (MCT) en heeft hij een PRINCE2 Foundation certificering.

Escala helpt u graag in uw continu streven naar verbetering en professionalisering.
Via in-house opleidingen, advies en begeleiding biedt Escala de nodige ondersteuning.