Microsoft .NET is an advance in programming technology that significantly simplifies application development, both for traditional and proprietary applications as well as for web-based services. This three-day course covers the essentials of the .NET Framework for programmers who already know the C# language and the fundamentals of Windows Forms. Class time will focus on core portions of the .NET Framework common across many application areas. If more in-depth coverage is desired for specific areas, separate courses are available. The goal of this course is simply to equip programmers with the skills and information needed to begin building significant applications using the .NET Framework. Please note, this course is customizable and current to .NET 4.5 and Visual Studio 2012.

Course Duration: 3 Days
Prerequisites:

Participants should be experienced application developers or architects with a working knowledge of C#, including building simple GUIs with Windows Forms.

Course Outline:
  • .NET Fundamentals
    • What Is Microsoft .NET?
    • Open Standards and Interoperability
    • Windows Development Problems
    • Common Language Runtime
    • Attribute-Based Programming
    • Metadata
    • Types
    • .NET Framework Class Library
    • Interface-Based Programming
    • Everything is an Object
    • Common Type System
    • ILDASM
    • .NET Framework SDK Tools
    • Language Interoperability
    • Managed Code
    • Assemblies
    • Assembly Deployment
    • JIT Compilation
    • ASP.NET and Web Services
    • The Role of XML
    • Performance
  • Class Libraries
    • Objects and Components
    • Limitation of COM Components
    • Components in .NET
    • Class Libraries at the Command Line
    • Monolithic versus Component
    • Class Libraries Using Visual Studio
    • References in Visual Studio
    • References at Compile Time and Run Time
    • Project Dependencies
    • Specifying Version Numbers
  • Assemblies, Deployment and Configuration
    • Assemblies
    • Customer Management System
    • ILDASM
    • Assembly Manifest
    • Assembly Dependency Metadata
    • Assembly Metadata
    • Versioning an Assembly
    • AssemblyVersion Attribute
    • Strong Names
    • Digital Signatures
    • Verification with Digital Signatures
    • Hash Codes
    • Digitally Signing an Assembly
    • Digital Signing Flowchart
    • Signing the Customer Assembly
    • Signed Assembly Metadata
    • Private Assembly Deployment
    • Assembly Cached
    • Deploying a Shared Assembly
    • Versioning Shared Components
    • How the CLR Locates Assemblies
    • Resolving an Assembly Reference
    • Version Policy in a Configuration File
    • Finding the Assembly
    • Application Settings
    • Application Settings Using Visual Studio
    • Application Configuration File
    • User Configuration File
  • Metadata and Reflection
    • Metadata
    • Reflection
    • System.Reflection.Assembly
    • System.Type
    • System.Reflection.MethodInfo
    • Dynamic Invocation
    • Late Binding
  • I/O and Serialization
    • Input and Output in .NET
    • Directories
    • Files and Streams
    • “Read” Command
    • Code for “Write” Command
    • Serialization
    • Attributes
  • .NET Programming Model
    • Garbage Collection
    • Finalize Method
    • C# Destructor Notation
    • Dispose
    • Finalize/Dispose Test Program
    • Garbage Collection Performance
    • Generations
    • Processes
    • Threads
    • Asynchronous Calls
    • Asynchronous Delegates
    • Using a CallBack Method
    • BackgroundWorker
    • Asynchronous Programs in C# 5.0
    • Task and Task
    • Async Methods
    • Synchronous Call
    • Async Call
    • Threading
    • Application Isolation
    • Application Domain
    • Application Domains and Assemblies
    • AppDomain
    • CreateDomain
    • App Domain Events
  • .NET Threading
    • Threads
    • Race Conditions
    • Thread Synchronization
    • Monitor
    • Using C# Lock Keyword
    • Synchronization of Collections
    • ThreadPool Class
    • Starting a ThreadPool Thread
    • Foreground and Background Threads
    • Synchronizing Threads
    • Task Parallel Library (TPL)
    • Starting Tasks
    • Waiting for Task Completion
    • Data Parallelism
  • .NET Security
    • Fundamental Problem of Security
    • Authentication
    • Authorization
    • The Internet and .NET Security
    • Code Access Security
    • Role-Based Security
    • .NET Security Concepts
    • Permissions
    • IPermission Interface
    • IPermission Demand Method
    • IPermission Inheritance Hierarchy
    • Stack Walking
    • Assert
    • Demand
    • Other CAS Methods
    • Security Policy Simplification
    • Simple Sandboxing API
    • Setting Up Permissions
    • Creating the Sandbox
    • Role-Based Security in .NET
    • Identity Objects
    • Principal Objects
    • Windows Principal Information
    • Custom Identity and Principal
    • BasicIdentity.cs
    • BasicSecurity.cs
    • Users.cs
    • Roles.cs
    • Sample Run
    • Principal Permission
  • Interoperating with COM and Win32
    • Interoperating Between Managed and Unmanaged Code
    • COM Interop and PInvoke
    • Calling COM Components from Managed Code
    • The TlbImp.exe Utility
    • TlbImp Syntax
    • Using TlbImp
    • Register the COM Server
    • 64-bit System Considerations
    • Run the COM Client
    • Implement the .NET Client Program
    • Import a Type Library Using Visual Studio
    • Platform Invocation Services (Pinvoke)
    • Marshalling Out Parameters
    • Translating Types
  • ADO.NET and LINQ
    • ADO.NET
    • ADO.NET Architecture
    • .NET Data Providers
    • ADO.NET Interfaces
    • .NET Namespaces
    • Connected Data Access
    • AcmePub Database
    • Creating a Connection
    • Using Server Explorer
    • Performing Queries
    • Connecting to a Database
    • Database Code
    • Connection String
    • Using Commands
    • Creating a Command Object
    • Using a Data Reader
    • Generic Collections
    • Executing Commands
    • Parameterized Queries
    • DataSet
    • DataSet Architecture
    • Why DataSet?
    • DataSet Components
    • DataAdapter
    • Data Access Class
    • Retrieving the Data
    • Filling a DataSet
    • Accessing a DataSet
    • Using a Standalone Data Table
    • Adding a New Row
    • Searching and Updating a Row
    • Deleting a Row
    • Row Versions
    • Row State
    • Iterating Through Data Rows
    • Command Builders
    • Updating a Database
    • Data Binding
    • DataGridView Control
    • Language Integrated Query (LINQ)
    • Bridging Objects and Data
    • Object Relational Designer
    • IntelliSense
    • Basic LINQ Query Operators
    • Obtaining a Data Source
    • Filtering
    • Ordering
    • Aggregation
    • Obtaining Lists and Arrays
    • Deferred Execution
    • Modifying a Data Source
    • Performing Inserts via LINQ to SQL
    • Performing Deletes via LINQ to SQL
    • Performing Updates via LINQ to SQL
  • Appendix A – .NET Remoting
    • Distributed Programming in .NET
    • Windows Communication Foundation
    • .NET Remoting Architecture
    • Remote Objects and Mobile Objects
    • Object Activation and Lifetime
    • Singleton and SingleCall
  • Appendix B –  Learning Resources