Duration: 5 Days
In this Advanced .NET Programming Capstone Series you will learn to work with intermediate and advanced features in the .NET framework. The first part of the class provides in-depth coverage on a number of intermediate and advanced tools and techniques in .NET, including reflection, delegates and events, threads, and a deeper look at ADO.NET and XML support. It uses examples in a number of execution contexts, including the Web (ASP.NET) and Windows Forms. The second part of the class provides an in-depth look at a number of advanced technologies in .NET, with a focus on features of the .NET framework that emphasize multi-tier and distributed architectures.
What You Will Learn
- Work with advanced OO concepts such as Aggregation, Namespaces, and Reflection
- Delegates and Events
- .NET's support for multi-threading and thread synchronization
- Advanced ADO.NET and XML support
- Create and consume components, and work with COM components
- Work with the Messaging and Remoting architectures
- .NET support for transaction management
- Classes to support advanced networking
- Advanced security and deployment in .NET
- Deploy applications using .Net and VS.NET
Audience
Prerequistes
Prior programming experience in at least one object-oriented language such as a .NET language (e.g., C#, VB.NET), Java, C++, or SmallTalk, or significant programming experience in a modern language such as MS Visual Basic.
Course Outline
1. Reflection
- Understanding Reflection
- Using the Type Class
- Invoking Members and Instantiating Objects
2. Delegates
- What are Delegates?
- Defining, Instantiating, and Invoking Delegates
- Example: Using Delegates and Multicast Delegates
3. Events
- Understanding Events
- Common Existing Events
- Creating Event Handlers to Respond To Events
- Defining Your Own Events
- Example: Defining and Raising Events
4. Introduction to Multi-Threaded Programming in the .NET Framework
- What are Threads?
- The .NET Thread Class
- Controlling a Thread
- Storing Thread References and GetHashCode()
- The Form's Invoke Method
- Example: Looking At a Thread
- Timer Threads
5. Thread Synchronization
- The Challenge of Multi-Threaded Programming
- Thread Synchronization
- Method Synchronization
- Synchronizing Collection Objects
- Lock/SyncLock Keywords and the Monitor Class
- Synchronizing with the ReaderWriterLock
- Synchronization Using Events
6. Intermediate OO: Aggregation, Namespaces, and Advanced Scope
- What is Aggregation?
- Example: A Generator Modeled In Software
- Namespaces
- Advanced Access and Scope
- Example: Our Generator in an Assembly
7. Refresher: ADO.NET Introduction
- What is ADO.NET?
- An Overview of Relational Database Concepts
- What is an RDBMS?
- The ADO.NET Object Model
- Getting the Data Out
- The IDataReader Interface
- Introducing the Database Used for the Course
- Example: Selecting Records Using a DataReader
8. Refresher: ADO.NET DataSets and the Disconnected Model
- What is a DataSet?
- Accessing Data Through a DataSet's Tables and Rows
- Example: Selecting Records from a Database using a DataSet
9. ADO.NET Commands and Stored Procedures
- What is the Command class?
- Executing a Stored Procedure or Query
- Passing Input Parameters to a Stored Procedure or Query
10. ADO.NET Inserts, Updates, and Deletes
11. Introducing XML
- What is XML?
- XML Logical Structure
- XML Physical Structure
- XML Design Patterns
- Applications of XML (and related technologies)
12. Parsing XML in .NET with the Xml Namespace
- Overview of Classes for Parsing XML
- Parsing XML With XmlReader Classes
- Parsing XML With the XmlDocument Class
13. Advanced: Modifying and Saving XML Using the XmlDocument
- A Refresher on the XML DOM and the .NET XmlDocument
- Modifying an XmlDocument
- Example: Storing Window Positions in an XML Preferences File
14. Producing XML from Database Data via ADO.NET
- Example: Generate and View XML from a DataSet
15. Reading XML Data into a DataSet
16. Importing XML into the Database
- XML -> DataSet -> Database
17. Introduction to Serialization in .NET
- What is Serialization?
- Different Serialization Techniques
- Automatic Serialization with the Formatter
- Controlling What Gets Serialized
- Handling Multiple Versions, Forward and Backward
- Manual Serialization with ISerializable
18. Serializing To XML
- What is XML Serialization?
- Advantages and Disadvantages to XML Serialization
- Serialization of Complex and Derived Types
- Shaping the XML
- Example: An Adult MovieViewer, with a Collection
- XML Schema Definition Tool (xsd.exe)
19. Introducing Components
- Why Are Components Useful?
- Using Assemblies to Package and Deploy Components
20. COM Interoperability With .NET
- Refresher on OLE Automation
- COM Interop
- Example: Automating Excel
21. Overview of the .NET Framework - A Refresher
- .NET Framework Base Class Library (BCL)
- Common Language Runtime (CLR)
- Common Type System
- Common Language Specification
- Namespaces
- Assemblies
- Application Domains
22. The .NET Distributed Architecture
- The Progression of Application Design
- Remote Processing
- The World Wide Web
- The .NET Solution
- Roles in Distributed .NET Development
23. Setting Up Course Exercise Solutions
24. Messaging
- Messaging Architecture
- Messaging Network Setup
- Creating and Referencing Message Queues
- Sending Messages
- Receiving Messages
- Message Queue Security
- Sending and Receiving Complex Objects
- Example: Message Queue Inspector
25. Remoting
- Remoting Architecture
- Instantiating Using Activator Methods: GetObject() and CreateInstance()
- Communicating From the Remote Object Using Events
- Asynchronous Calls
26. Transactions
- What are Transactions?
- How does .NET provide support for transactions?
- Manual Transactions
- Automatic Transactions
27. Networking in .NET: WebClient, WebRequest, and WebResponse
- System.NET Namespace
- The WebClient Class
- HTTP Derivations of WebRequest and WebResponse
- TCP and Socket Classes
28. .NET Security
- Why do we need security?
- Code Access Security
- Cryptographic Security
- Web Service Security
- ASP.NET Web Forms User Authentication and Authorization
29. Deployment
- Overview of Deployment in .NET
- VS.NET Build Configurations
- Copying a Web Application
- Creating a Web Setup Project
30. Deployment Settings Using Conditional Compilation With Compile-Time Constants
- Compile-Time Compilation Constants
- Use Build Configurations In Your Projects
- Suggested Build Configuration Model
- Example: Using Bulid Configuration Settings to Show and Hide Controls
31. Refresher: Parsing XML in .NET with the Xml Namespace
- Overview of Classes for Parsing XML
- Parsing XML With XmlReader Classes
- Parsing XML With the XmlDocument Class
32. Modifying and Saving XML Using the XmlDocument
- A Refresher on the XML DOM and the .NET XmlDocument
- Modifying an XmlDocument
- Example: Storing Window Positions in an XML Preferences File
Course Labs