.NET Quickstart

 

Duration: 4 days

Difficulty: Advanced

Dates: 13th – 16th November 2017

Time: 9:30a.m. – 5:00p.m.

Venue: Maryborough Hotel, Douglas, Cork

Member fee: 700 Euro

Non-member fee: 1000 Euro

 

For registration of interest or to book a place on this course email Annette Coburn on skillnet@itcork.ie

 

Description

 

This is a fast paced conversion course which will enable Java developers to begin creating applications using the C# language and .NET platform. The delivery does not repeat any shared concepts but instead builds on them to enable delegates to make progress as quickly as possible.

 

By the end of the delivery delegates will be able to program using all the features of C#, write complex LINQ queries and create both Web Applications and RESTful Services using ASP .NET. Additionally they will be able to deploy this code as microservices using ASP .NET Core and be aware of how deployment can be further simplified using Docker. The delivery will finish with an optional session on WPF for delegates who will be writing native clients.

Prerequisites

 

Delegates must be proficient Java 8 programmers with experience in writing Web Applications and RESTful services using frameworks like Spring MVC and Play

 

List of Topics

Fundamental Concepts of .NET

  • Compiling to Intermediate Language (IL)
  • The Common Language Runtime (CLR)
  • Comparing the CLR and the Java VM
  • The Common Type System (CTS)
  • Assemblies and Application Domains
  • Running the C# compiler manually
  • Examining assemblies using ILDASM
  • Deploying assemblies to the GAC

Creating and Compiling Applications

  • Installing and running Visual Studio (VS)
  • Creating new solutions and projects in VS
  • Building console and GUI based applications
  • Building and referencing class libraries
  • Building ASP based Web Apps and Web Services

Procedural Coding and Built In Objects

  • Basic types and their CTS mappings
  • Understanding the object class
  • Using Strings and StringBuilders
  • Converting between basic types
  • Boxing and unboxing basic types
  • Constructs for iteration and selection
  • Working with the three types of array

Object Oriented Development Part One

  • Introducing class declarations in modern C#
  • Comparing access modifiers and naming schemes in Java and C#
  • Declaring fields using the static, readonly, constant and volatile modifiers
  • Using properties instead of Java accessor (getter and setter) methods
  • Allowing clients to use array notation by implementing an indexer method
  • Understanding destructor methods, finalization and garbage collection
  • Allowing parameters to be modified via the ref and out keywords

Object Oriented Development Part Two

  • Polymorphism with virtual and override
  • Opting out of polymorphism using new
  • Safe downcasting using is and as
  • Abstract base classes and Interfaces
  • Releasing resources via IDisposable
  • Exception management in C#

Event Handling, Delegates and Lambdas

  • Using delegates to hold function addresses
  • Working with anonymous delegates and lambdas
  • Functional programming techniques using lambdas
  • Adding events to your own classes

Generic Programming in C#

  • Introduction to Generic Programming
  • How generics works within the CLR
  • Using the generic collection classes
  • Declaring your own generic types
  • Applying constraints to type parameters
  • Examining generic types via reflection
  • Co-variance and contra-variance

Basic Language Integrated Query (LINQ)

  • The basic syntax of a LINQ query
  • Available implementations of LINQ
  • The IEnumerable and IQueryable interfaces
  • Choosing between the fluent and method syntax
  • Running queries against collections of objects
  • Filtering, transforming and ordering data in LINQ
  • Returning results via anon types, tables and bags

Advanced Uses of LINQ

  • The relationship between LINQ and functional idioms (such as ‘flatMap’)
  • How LINQ is used in Entity Framework to generate SQL
  • Manually creating and manipulating LINQ expression trees
  • How PLINQ simplifies the task of running operations in parallel
  • Running LINQ Queries in parallel using PLINQ to Objects

The Latest C# Syntax

  • Asynchronous programming with Async and Await
  • Obtaining and using caller and element information
  • Using local functions for method specific helpers
  • Improved auto-properties and expression bodied functions
  • Importing static members from other types
  • The null-conditional and null-coalescing operators
  • Simplified string processing with interpolation
  • Improved tuple support with ValueTuple
  • Deconstructing types to extract multiple values

Building Web Apps and Services in ASP .NET Core

  • Creating C# microservices with ASP .NET Core and Kestrel
  • Routing and middleware in ASP .NET Core based applications
  • Creating fully featured RESTful Services using ASP .NET MVC
  • Building Web Applications using the Razor View Engine
  • Integrating and using a Dependency Injection container
  • Managing debugging, logging and the creation of metrics

Combining .NET and Docker

  • Introduction to Containers and Docker
  • Docker Images, Containers and Repositories
  • The Docker build and compose commands
  • .NET Core Images and Visual Studio Integration

Writing GUI’s with Windows Presentation Foundation (Optional)

  • The evolution of WPF from MFC and Windows Forms
  • How XAML enables declarative coding in WPF and beyond
  • Creating a WPF GUI with and without using XAML
  • The application object, windows and content
  • The WPF class hierarchy for UI components
  • Adding and grouping conventional GUI widgets
  • Positioning components using layout strategies
  • Understanding bubbling and tunneling events
  • Different options for adding event handlers
  • Working with Resources, Styles and Templates
  • Specifying data bindings declaratively in XAML
  • Advanced options when working with data binding

 

For registration of interest or to book a place on the course email Annette Coburn on skillnet@itcork.ie