Course Content:
Lesson 1 - Review of C# Syntax
• Overview of Writing Applications using C#
• Datatypes, Operators, and Expressions
• C# Programming Language Constructs
• Lab : Developing the Class Enrolment Application
Lesson 2 - Creating Methods, Handling Exceptions, and Monitoring Applications
• Creating and Invoking Methods
• Creating Overloaded Methods and Using Optional and Output Parameters
• Handling Exceptions
• Monitoring Applications
• Lab : Extending the Class Enrolment Application Functionality
Lesson 3 - Developing the Code for a Graphical Application
• Implementing Structs and Enums
• Organizing Data into Collections
• Handling Events
• Lab : Writing the Code for the Grades Prototype Application
Lesson 4 - Creating Classes and Implementing Type-safe Collections
• Creating Classes
• Defining and Implementing Interfaces
• Implementing Type-safe Collections
• Lab : Adding Data Validation and Type-safety to the Grades Application
Lesson 5 - Creating a Class Hierarchy by Using Inheritance
• Creating Class Hierarchies
• Extending .NET Framework Classes
• Creating Generic Types
• Lab : Refactoring Common Functionality into the User Class
Lesson 6 - Reading and Writing Local Data
• Reading and Writing Files
• Serializing and Deserializing Data
• Performing I/O Using Streams
• Lab : Generating the Grades Report
Lesson 7 - Accessing a Database
• Creating and Using Entity Data Models
• Querying Data by Using LINQ
• Updating Data by Using LINQ
• Lab : Retrieving and Modifying Grade Data
Lesson 8 - Accessing Remote Data
• Accessing Data Across the Web
• Accessing Data in the Cloud
• Lab : Retrieving and Modifying Grade Data in the Cloud
Lesson 9 - Designing the User Interface for a Graphical Application
• Using XAML to Design a User Interface
• Binding Controls to Data
• Styling a User Interface
• Lab : Customizing Student Photographs and Styling the Application
Lesson 10 - Improving Application Performance and Responsiveness
• Implementing Multitasking by using Tasks and Lambda Expressions
• Performing Operations Asynchronously
• Synchronizing Concurrent Access to Data
• Lab : Improving the Responsiveness and Performance of the Application
Lesson 11 - Integrating with Unmanaged Code
• Creating and Using Dynamic Objects
• Managing the Lifetime of Objects and Controlling Unmanaged Resources
• Lab : Upgrading the Grades Report
Lesson 12 - Creating Reusable Types and Assemblies
• Examining Object Metadata
• Creating and Using Custom Attributes
• Generating Managed Code
• Versioning, Signing and Deploying Assemblies
• Lab : Specifying the Data to Include in the Grades Report
Lesson 13 - Encrypting and Decrypting Data
• Implementing Symmetric Encryption
• Implementing Asymmetric Encryption
• Lab : Encrypting and Decrypting Grades Reports