Module 1: Introduction
Lessons •Overview of the .NET Framework •Overview of the .NET Type System •Visual Studio and .NET Framework Versions •.NET Backwards and Forwards Compatibility •Visual Studio Multi-Targeting Support •Future Roadmap After completing this module, students will be able to: •Choose the appropriate version of the .NET framework. •Use the Visual Studio multi-targeting support to compile applications for a specific version of the .NET framework.
Module 2: Memory Management
•Overview of Memory Management •Garbage Collection First Steps •GC Flavors •Generations •Interacting with the GC •Weak References •Finalization and the Dispose Pattern After completing this module, students will be able to: •Programmatically interact with and control the .NET garbage collector. •Design and implement applications which take advantage of advanced GC features. •Provide proper finalization support for unmanaged resources. •Use weak references to control memory allocation and reclamation.
Module 3: Streams and File I/O
•Streams as a Data Abstraction •File Streams •Stream Readers / Writers •The File and Directory Classes After completing this module, students will be able to: •Take advantage of the streams abstraction to develop data-source-agnostic applications. •Use file streams to write and read files on the lowest level of abstraction. •Interact with text files and binary files using specialized readers and writers. •Use the System.IO namespace classes to program file system objects (files and directories).
Module 4: Serialization
•Motivation for Serialization •Marking a Type for Serialization •BinaryFormatter •Controlling Serialization •Custom Serialization •Overview of XML Serialization •Overview of DataContract Serialization After completing this module, students will be able to: •Use .NET runtime serialization to serialize and deserialize data objects to various streams. •Choose the appropriate serialization mechanism for the task at hand. •Control serialization and customize it completely if necessary.
Module 5: Threading and Asynchronous Programming
•Taxonomy of Multi-Threading •The Asynchronous Programming Model (APM) •Thread Pool •Manual Threading •Synchronization •Overview of Parallel Extensions for .NET After completing this module, students will be able to: •Improve the responsiveness of UI applications by using the .NET Asynchronous Programming Model. •Queue work items to the .NET thread pool. •Create threads and interact with them using the Thread class. •Synchronize access to shared data in a variety of forms.
Module 6: Application Domains
After completing this module, students will be able to: •Isolate applications and parts of an application using Application Domains. •Transfer serializable and marshal-by-reference objects across the AppDomain boundary. •Create and unload AppDomains. •Execute arbitrary code within an AppDomain.
Module 7: Interoperability
After completing this module, students will be able to: •Choose the appropriate form of interoperability for the task at hand. •Interact with Win32 APIs and C-style DLLs. •Use COM objects from managed code. •Expose managed objects to COM clients. •Design and implementing complex interoperability solutions using C++/CLI and its marshaling framework.
Module 8: Advanced Topics
•Improving Startup Performance with NGEN •Advanced Delegates and Events •Advanced Generics •Object Cloning as Serialization •Assembly Loading Problems and Contexts After completing this module, students will be able to: •Improve application startup performance using NGEN. •Bind to events and delegates dynamically at runtime. •Understand how the implementation of generics improves .NET application performance. •Implement object cloning using serialization. •Diagnose complex assembly loading problems and understand assembly loading (binding) contexts.
Module 9: Overviews
•ADO.NET •System.Transactions •Windows Communication Foundation (WCF) •Windows Workflow Foundation (WF) •Language Integrated Query (LINQ) •Related Courses After completing this module, students will be able to: •Appreciate other application frameworks on top of the core CLR. •Determine the appropriate learning plan from related courses.
|