An Introduction to C#
What is .NET?
What is the CLR?
The FCL
Primitive Types
Namespaces
Statements and Expressions
Operators
Classes and Objects
Constructors
Reference Types
Object Oriented Programming
Inheritance
Access Modifiers
Abstract Classes
Virtual Members
Static Classes
Sealed Classes
Partial Classes
C# – Types
Reference Types
Value Types
The struct
Testing Reference Types
Testing Value Types
Passing Parameters
Strings
Boxing
The enum
Defining Types
Interfaces
Arrays
Assemblies
C# – Events, Properties, and Methods
Methods
Method Overloading
Fields
Properties
Events
Events – Delegates
Events – Subscribing
Events – Publishing
Indexers
Operator Overloading
Conversion Operators
C# – Flow Control and Exceptions
Branching
Switching
Looping
Using foreach
Jumping
Returning and Yielding
Throwing Exceptions
Built-in Exceptions
Handling Exceptions
Chaining Catch Blocks
Finally
Re-throwing Exceptions
Custom Exceptions
C# and the CLR
Garbage Collection
Threads
Async
Parallel
Reflection
Attributes
Custom Attributes
COM Interop
PInvoke
C# and Generics
Why Generics?
Building Collections Without Generics
Generic Collections
Generic Parameters
Generic Constraints
Generic Methods
The default Keyword
Generic Interfaces
Generic Delegates
Variance
C# and LINQ
Extension Methods
Extensions and Lambdas
Lambdas and Funcs
Funcs and Expressions
C# and the DLR
Why Dynamic?
Using Dynamic Types
Excel Automation
The DLR
ExpandoObject
DynamicObject
Calling Ruby
Object Oriented Programming with C#
Primitive Procedural Preoccupations
The Big Encapsulation
Little Abstractions
The Inheritance Check
A Clean Interface
Directional Dependencies
Functional Programming with C#
Prime Abstraction
A Higher Calling
Lazy Code
Timing and Retries
Partial Application and Currying
Asynch and Parallel
Multithreding
Exploring the .NET Framework
File I/O
Resource management with try/finally/using
Using XML serialization
Introducing assembly resolution
Deploying dependent assembly probing
Using a config file to control probing
ArrayList
Hashtable
SortedList
Stack and Queue
Windows Form
Introduction to Windows Form
Form Controls
User Define Controls
ADO.NET
Connected Architecture
Disconnected Architecture
Working with Transaction
Windows Presentation Foundation(WPF)
Windows Application using WPF
Data Binding
Data Template
Styles
Commands
ASP.NET
Web Application using ASP.NET
ASP.NET Architecture
Control-based Programming
User Interface Elements
Deployment
Web Sites, Applications, and Virtual Directories in IIS
ASP.NET Diagnostics and Health Monitoring
ASP.NET Working With Data
Data Binding
State Management
Validation
Caching
ASP.NET 4.5 Security
IIS 6 & IIS7 URL Authorization
Forms authentication
Role-based authorization
Trimming site maps with roles
Config file encryption
ASP.NET Membership
Resources and Internationalization
ASP.NET 4.5 Advanced Topics
HTTP Pipeline
Custom Controls
Web Parts
Web Services
ASP.NET AJAX
ASP.NET Ajax Introduction
ASP.NET Ajax Server Controls
ASP.NET Ajax Server Data
ASP.NET Ajax Client-side Library
ASP.NET Ajax Control Toolkit
ASP.NET MVC
Web Application using MVC Pattern
Razor View
Controller
Model
Entity Framework
Introducing the Entity Framework
Code First Approach
Windows Communication Foundation(WCF)
WCF Configuration
Hosting WCF Services in Windows Services
Hosting WCF Services in IIS
Building RESTful services with WCF
Windows Workflow Foundation(WF)
Introducing Windows Workflow Foundation
Programming workflows in WF
Writing custom activities in WF