Call Us: +32 2 466 00 16
Email: info@u2u.be
Follow Us:

Microsoft Teams Foundation Server and .NET Design Patterns

5 days
ueuroc2
5 days

Upcoming Sessions

Date: currently not scheduled

Format: Classroom

Price: 0€

Subscribe to waiting list

Date: currently not scheduled

Format: Classroom

Price: 0€

Subscribe to waiting list

Interested in a private company training? Request it here.

Day 1 - 3: Microsoft DevOps

Azure DevOps Services and TFS

What is Azure DevOps and TFS? Who is it for? What is the big picture?

  • TFS: The big picture
  • Features
  • Architecture
  • The Extensions Marketplace
  • LAB: Register for an Azure DevOps Account

Team Projects

TFS is the collaboration hub for everyone in the development team, including project managers, testers, architects, developers and end-users. Here we will create a team project and configure it.

  • Development Processes: Agile vs. Waterfall
  • Team Projects and Process Templates
  • LAB: Creating and configuring your team project

Storing Developer Assets with Git

Sources are probably the most important part in any software project and we need a way to keep track of all sources and all changes. Azure Repos gives you the choice between TFVS and Git for storing your source history, branching, merging and everything else required.

  • Version Control concepts
  • Distributed Source Control with Git
  • Creating a local repository
  • Cloning a remote repository
  • Staging files
  • Committing files
  • Adding branches to your workflow
  • Branching Strategies
  • Merge vs. Rebase
  • Synchronizing with a remote repository
  • Performing manual code reviews with Pull Requests
  • LAB: Working with Git

Continuous Integration and Deployment with Pipelines

To build quality software, and to limit nasty integration problems at the end of the project, doing a daily build is long regarded as a best practice. Azure DevOps makes building daily very easy through the build system. You'll learn how to manage the build, do desktop builds, and how you can setup Team Build to work in a continuous integration environment. You'll then learn how to customize the build process to perform all your build steps including running unit tests, creating custom build actions, generating setup programs and deploying to staging servers.

  • What are pipelines?
  • Doing Continuous integration
  • What are jobs, tasks?
  • Automated review of Coding Guidelines and Code Analysis with FxCop
  • LAB: Setting up a build definition

Continuous Deployment with Pipelines

With continuous deployment you can release your product every moment of the day, allowing the stateholders to give feedback as fast as possible.

  • Release management and continuous deployment
  • Release definitions
  • What are Agents?
  • Setting up a build agent in your enterprise network
  • LAB: Continous Deployment with a release definition

Day 4 - 5: Design Patterns

Introduction to Patterns

One might not believe it, but design patterns do not find their origin in software architecture. Patterns were first described in the 1970s by a real "Bricks and Stones" architect. A pattern is defined as a re-usable solution to a common type of problem, without ever repeating the actual way the solution is implemented. This means that patterns are an ideal learning tool and also ideal for communicating design ideas. Of course there are also anti-patterns, things often used, but actually better avoided.

  • What is a Pattern?
  • One might not believe it, but design patterns do not find their origin in software architecture. Patterns were first described in the 1970s by a real "Bricks and Stones" architect. A pattern is defined as a re-usable solution to a common type of problem, without ever repeating the actual way the solution is implemented. This means that patterns are an ideal learning tool and also ideal for communicating design ideas. Of course there are also anti-patterns, things often used, but actually better avoided.

    • Design & Build .NET Applications
    • What is a Pattern?
    • The Gang of Four: Erich Gamma, Ralph Johnson, Richard Helm and John Vlissides.
    • Different kinds of design patterns: creational, structural and behavioral patterns.tion that is suitable to the situation.

      • Singleton - a.k.a. The Pluto Pattern and how the .NET runtime can help at implementing it
      • Factory MSome anti-patterns such as Loosy-Goosy.

      Creational patternsactory to create families of objects

    • LAB: Implementing an Abstract Factory

    Behavioral patterns

    Once your objects are created, they start interacting. When you're not careful, these interactions can quickly start leading into code that is tightly coupled. Behavioral design patterns help identifying common communication patterns between objects and realize these patterns. By correctly applying these patterns, you can increase flexibility in carrying out the interaction between objects.

    • Template Method - defer exact parts of an algorithm to inheriting classes, delegates, ...
    • LAB: Building a Template Method for a board game
    • Strategy - template method without the annoying inheritance
    • LAB: Implementing a Builder as a Strategy
    • State - defer state dependending logic to state classes, state machines, using the Stateless library
    • LAB: Implementing a VCR with the State patterns
    • Observer - notifying whoever is interested in what you have to say, event vs. delegate
    • Mediator - providing two-way communication between objects unaware of one another, correcly implementing INotifyPropertyChanged
    • LAB: Avoiding the String-based programming anti-pattern

    Some Structural patterns

    Created objects do not tend to stand on their own. No, they start encapsulating other objects trying to create structure in, what otherwise would be a chaotic software environment. Structural patterns help at identifying and setting up relationships between objects.

    • Adapter - plugging in different objects into your code that do not fit
    • Decorator - altering the behavior of an object without the caller realising it
    • LAB: Changing IComparable<T> with a Decorator

    Clean Architecture

    Architecting Modern Web Applications

    So what is a modern web application? One that uses Angular and TypeScript? With the speed that modern web application developement evolves, there is the chance that your web site uses 'old' technology by the time it is done. But sound architecture never goes stale. As a wise man once said: 'If you think good architecture is expensive, try bad architecure'.

    • "Clean" Architecture: put the business and application model at the center
    • Understanding the Core, Infrastructure and Presentation layer
    • Testing everything with Clean Architecture

This course consists of two distinct parts. You will learn about using Azure DevOps to manage the application development lifecycle. This training will show you the role of the project manager and developer in this process and how DevOps can improve the efficiency and code quality of your team. You will perform project management, source control, continous integration and deployment with Azure DevOps. So how can you become a better developer? One of the best ways is by learning design patterns. Design Patterns provide reusable solutions to solve common software design problems. In this training we identify software design problems and see how to address these using the best suited Design Pattern.

This course is intended for programmers who are familiar with C# and have a experience with .NET.

Contact Us
  • Address:
    U2U nv/sa
    Z.1. Researchpark 110
    1731 Zellik (Brussels)
    BELGIUM
  • Phone: +32 2 466 00 16
  • Email: info@u2u.be
  • Monday - Friday: 9:00 - 17:00
    Saturday - Sunday: Closed
Say Hi
© 2022 U2U All rights reserved.