Microsoft .NET is a programming technology that greatly simplifies application development, both for traditional, proprietary applications and for web-based applications and services. The original .NET was a complete restructuring of Microsoft’s whole system infrastructure and represented a major learning challenge for programmers developing applications on Microsoft platforms. Part of .NET included a major new object-oriented programming language, C#. But learning the new programming language is only part of the challenge. The much greater challenge is learning the .NET Framework and its many capabilities.

A major restructuring of the .NET platform, .NET Core is cross-platform, open source, and modular designed for creating modern web applications and services, libraries and console applications. It is available on Windows, OS X and Linux. .NET now is a family of frameworks, including both the classical .NET available on Windows and the new .NET Core package-based frameworks that are cross-platform.

This two-day course is designed to provide a sound introduction to.NET Core for programmers who already know the C# language. It is current to .NET Core 1.0.1 and Visual Studio 2015. The course focuses on core portions of the .NET Framework that are common across many application areas. It starts with an introduction to the architecture and key concepts of .NET. The course then discusses class libraries, packages, metapackages and frameworks.  The following chapters discuss important topics in the .NET programming model, including delegates and events, I/O and serialization, memory management, processes and threads. The course concludes with a chapter on threading, which includes an introduction to the Task Parallel Library (TPL).

The course is hands-on, with many programming examples. The goal is to equip you with the foundations of this important new technology from Microsoft. The student will receive a comprehensive set of materials, including course notes and all the programming examples.

Course Duration: 2 Days
Prerequisites:

The student should be an experienced application developer or architect with a working knowledge of C#.

Hardware and Software Requirements:

Required software is Visual Studio 2015 Update 3 and VS 2015 Tooling Preview 2, which includes .NET Core 1.0.1. The free Visual Studio Community 2015 may be used. The operating system should be Windows 7sp1 or more recent. See the appropriate course Setup Guide for details.

A good minimal hardware profile for this course would have a 1.8 GHz or equivalent CPU, 2 GB of RAM, and at least 10 GB of free disk space for tools installation and courseware.

Required software is Visual Studio 2015 Update 3 and VS 2015 Tooling Preview 2, which includes .NET Core 1.0.1. The free Visual Studio Community 2015 may be used. The operating system should be Windows 7sp1 or more recent. See the appropriate course Setup Guide for details.

A good minimal hardware profile for this course would have a 1.8 GHz or equivalent CPU, 2 GB of RAM, and at least 10 GB of free disk space for tools installation and courseware.

Course Objectives:
  • Gain a thorough understanding of the philosophy and architecture of .NET Core
  • Understand packages, metapackages and frameworks
  • Acquire a working knowledge of the .NET programming model
  • Implement multi-threading effectively in .NET applications
  • Gain a thorough understanding of the philosophy and architecture of .NET Core
  • Understand packages, metapackages and frameworks
  • Acquire a working knowledge of the .NET programming model
  • Implement multi-threading effectively in .NET applications
Course Outline:
  • .NET Fundamentals
    • What is Microsoft .NET?
    • Common Language Runtime
    • Framework Class Library
    • Language Interoperability
    • Managed Code
    • .NET Core and Cross-Platform Development
  • Class Libraries
    • Components in .NET
    • Class Libraries Using Visual Studio
    • Using References
  • Packages and Frameworks
    • NuGet Packages and Gallery
    • Metapackages and Frameworks
    • Packages in .NET Core
    • Porting from Classical .NET to .NET Core
    • Visual Studio Package Manager
    • Installing Packages
    • Creating Packages
  • I/O and Serialization
    • Directories
    • Files and Streams
    • XML Serialization
  • Delegates and Events
    • Delegates
    • Random Number Generation
    • Anonymous Methods
    • Lambda Expressions
    • Events
  • .NET Programming Model
    • Garbage Collection
    • Finalize and Dispose
    • Processes
    • Command-Line Arguments
    • Threads
    • .NET Threading
    • Threading Fundamentals
    • ThreadPool
    • Foreground and Background Threads
    • Synchronization
    • Task Parallel Library
  • .NET Fundamentals
    • What is Microsoft .NET?
    • Common Language Runtime
    • Framework Class Library
    • Language Interoperability
    • Managed Code
    • .NET Core and Cross-Platform Development
  • Class Libraries
    • Components in .NET
    • Class Libraries Using Visual Studio
    • Using References
  • Packages and Frameworks
    • NuGet Packages and Gallery
    • Metapackages and Frameworks
    • Packages in .NET Core
    • Porting from Classical .NET to .NET Core
    • Visual Studio Package Manager
    • Installing Packages
    • Creating Packages
  • I/O and Serialization
    • Directories
    • Files and Streams
    • XML Serialization
  • Delegates and Events
    • Delegates
    • Random Number Generation
    • Anonymous Methods
    • Lambda Expressions
    • Events
  • .NET Programming Model
    • Garbage Collection
    • Finalize and Dispose
    • Processes
    • Command-Line Arguments
    • Threads
    • .NET Threading
    • Threading Fundamentals
    • ThreadPool
    • Foreground and Background Threads
    • Synchronization
    • Task Parallel Library