Advanced .NET Framework Programming Using C# Hands-On Technology Transfer
Delivery Method
Seminar
Target Audience Computer Industry Professionals
Summary This hands-on course examines how to utilize advanced features the .NET Framework using the C# programming language in order to build sophisticated applications.
Description/Agenda
This hands-on course examines how to utilize advanced features the .NET Framework using the C# programming language in order to build sophisticated applications. It includes coverage of .NET 2.0 through .NET 3.5. The course begins by quickly examining object-oriented programming topics, including inheritance, partial classes and generics. Students also learn about many of the .NET interfaces and how they can take advantage of them. Students learn how to manage data using .NET's object-based and generic collections. The course also illustrates how to use LINQ to make queries of collections, objects, and DataSets.
Students learn how to use synchronous and asynchronous delegates to call methods and manage callbacks. Students also learn how to use the Thread and ThreadPool classes within multithreaded applications and explore some of the issues that threading introduces to application development.
The course examines how the .NET Framework uses reflection and how students can provide similar features within their applications. Students also learn about ADO.NET and how advanced features provide support for transaction management, connection pooling, and the management of disconnected DataSets.
Students learn about .NET's support for n-tiered application development, including private and shared assemblies, remoting and web services. Students also learn how managed code can interact with unmanaged code via features like PInvoke services and COM Interop. The course concludes by examining the security capabilities of the .NET programming model and how to adjust the .NET security policy.
Other topics include: how and why to override System.Object methods; boxing and unboxing issues; when to use the String vs. StringBuilder types; working with cultures; .NET support for regular expressions; working with XML; and creating and using custom attributes.
Comprehensive hands-on lab exercises using Visual Studio reinforce instructor lectures and build direct competence in the topics presented throughout the course. Prerequisites C# programming experience.
Object-Oriented Programming
- Defining and Using Classes
- Working with Partial Classes
- Understanding Object Lifetime
- Building Class Hierarchies
- Cross-Language Inheritance
- Defining Abstract Classes
- Building Sealed Classes
- Overriding System,Object Methods
- Defining and Implementing Interfaces
- Understanding .NET Interfaces
- Building Forms using Visual Inheritance
Working with Text
- Using Strings
- Using the StringBuilder
- Working with Cultures
- Working with Regular Expressions
Collections
- Understanding .NET Collections
- Ordered vs. Unordered Collections
- Working with Object-Based Classes
- Working with Generic Collections
Delegates
- Understanding Delegates
- Single-cast vs. Multi-cast Delegates
- Defining Delegate Types
- Using Synchronous and Asynchronous Delegates
- Understanding the Relationship between Delegates and Events
- Defining and Raising Custom Events
- Handling Custom Events
Working with Threads
- Understanding Threading
- Creating Threads
- Passing Data to Threads
- Returning Data from Threads
- Managing Threads
- Problems with Threads
- Synchronizing Threads
ADO.NET
- Understanding the ADO.NET Object Model
- Connected vs. Disconnected Access
- Using Connections and Commands
- Managing Connection Pooling
- Using a DataReader to Work with Cursors
- Calling Stored Procedures
- Working with Transactions
- Using the Provider Factory
- Untyped vs. Typed DataSets
- Using DataAdapters with DataSets
- Using TableAdapters with Typed DataSets
- Filtering Data with DataViews
- Binding Data to Controls
Using XML
- Understanding XML and XML Schemas
- Using XML with DataSets
- Using XmlReaders and XmlWriters
- Working with XmlDocuments
Assemblies
- Understanding .NET Assemblies
- Single-File vs. Multi-File Assemblies
- Private vs. Shared Assemblies
- Defining Strong Names
- Where is the Global Assembly Cache (GAC)?
- Building and Using Private Assemblies
- Building, Installing and Using Shared Assemblies
- Configuring Shared Assemblies
Remoting
- Understanding the .NET Remoting Model
- Creating Remotable Objects
- Using Well-known vs. Activated Objects
- Understanding Lease-based Lifetimes
- Creating Channels for Calling Remote Methods
- Building Remote Servers
- Interacting with Remote Objects
Web Services
- Overview of Web Services
- Creating a Web Service
- Using WSDL and Proxy Classes
- Making Synchronous Calls to a Web Service
- Making Asynchronous Calls to a Web Service
- Exposing Custom Types from Web Methods
.NET Interoperability Services
- Interactions between Managed and Unmanaged Code
- Marshalling Data
- Using Platform Invocation Service (PInvoke)
- Using COM Servers from .NET
- Calling .NET Servers from Unmanaged Code
Reflection and Attribute Programming
- Understanding Attributes
- Using .NET Attributes
- Designing Custom Attributes
- Using Custom Attributes
- Understanding Reflection
- Extracting Type Information
- Using Reflection at Runtime
Security
- Overview of .NET Security
- Working with Role-Based Security
- Working with Code Access Security
- Setting the Security Policy
- Using Cryptography
|