Course Code: 1124

20483 Programming in C#

Class Dates:
1/31/2022
3/7/2022
Length:
5 Days
Cost:
$2495.00
Class Time:
Technology:
Developer
Delivery:
Virtual Instructor-Led Training, Instructor-Led Training

Overview

  • Course Overview
  • This training course teaches developers the programming skills that are required for developers to create Windows applications using the Visual C# language. During their five days in the classroom students review the basics of Visual C# program structure, language syntax, and implementation details, and then consolidate their knowledge throughout the week as they build an application that incorporates several features of the .NET Framework 4.7.
  • Audience
  • This course is intended for experienced developers who already have programming experience in C, C++, JavaScript, Objective-C, Microsoft Visual Basic, or Java and understand the concepts of object-oriented programming.

    This course is not designed for students who are new to programming; it is targeted at professional developers with at least one month of experience programming in an object-oriented environment.

Prerequisites

  • Developers attending this course should already have gained some limited experience using C# to complete basic programming tasks. More specifically, students should have hands-on experience using C# that demonstrates their understanding of the following:

    How to name, declare, initialize and assign values to variables within an application.
    How to use: arithmetic operators to perform arithmetic calculations involving one or more variables; relational operators to test the relationship between two variables or expressions; logical operators to combine expressions that contain relational operators.
    How to create the code syntax for simple programming statements using C# language keywords and recognize syntax errors using the Visual Studio IDE
    How to create a simple branching structure using an IF statement., looping structure using a For statement to iterate through a data array.
    How to use the Visual Studio IDE to locate simple logic errors.

Course Details

  • After completing this course, students will be able to:
  • Describe the core syntax and features of C#.
  • Create and call methods, catch and handle exceptions, and describe the monitoring requirements of large-scale applications.
  • Implement the basic structure and essential elements of a typical desktop application.
  • Create classes, define and implement interfaces, and create and use generic collections.
  • Use inheritance to create a class hierarchy, extend a .NET Framework class, and create generic classes and methods.
  • Read and write data by using file input/output and streams, and serialize and deserialize data in different formats.
  • Use the types in the System.Net namespace and WCF Data Services to access and query remote data.
  • Build a graphical user interface by using XAML.
  • Improve the throughput and response time of applications by using tasks and asynchronous operations.
  • Improve the throughput and response time of applications by using tasks and asynchronous operations.
  • Integrate unmanaged libraries and dynamic components into a C# application.
  • Examine the metadata of types by using reflection, create and use custom attributes, generate code at runtime, and manage assembly versions.
  • .
  • Encrypt and decrypt data by using symmetric and asymmetric encryption.
  • Module 1: Review of C# Syntax
  • Overview of Writing Applications using C#
  • Datatypes, Operators, and Expressions
  • Visual C# Programming Language Constructs
  • Lab : Developing the Class Enrolment Application
  • Implementing Edit Functionality for the Students List
  • Implementing Insert Functionality for the Students List
  • Implementing Delete Functionality for the Students List
  • Displaying the Student Age
  • Module 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
  • Refactoring the Enrolment Code
  • Validating Student Information
  • Saving Changes to the Class List
  • Module 3: Basic types and constructs of Visual C#
  • Implementing Structs and Enums
  • Organizing Data into Collections
  • Handling Events
  • Lab : Writing the Code for the Grades Prototype Application
  • Adding Navigation Logic to the Application
  • Creating Data Types to Store User and Grade Information
  • Displaying User and Grade Information
  • Module 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
  • Implementing the Teacher, Student, and Grade Types as Classes
  • Adding Data Validation to the Grade Class
  • Enabling Teachers to Modify Class and Grade Data
  • Module 5: Creating a Class Hierarchy by Using Inheritance
  • Creating Class Hierarchies
  • Extending .NET Framework Classes
  • Lab : Refactoring Common Functionality into the User Class
  • Refactoring Common Functionality into the User Class
  • Implementing Password Complexity by Using an Abstract Method
  • Creating the ClassFullException Custom Exception
  • Module 6: Reading and Writing Local Data
  • Reading and Writing Files
  • Serializing and Deserializing Data
  • Performing I/O Using Streams
  • Lab : Generating the Grades Report
  • Serializing the Data for the Grades Report as XML
  • Previewing the Grades Report
  • Persisting the Serialized Grades Data to a File
  • Module 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
  • Creating an Entity Model from the The School of Fine Arts Database
  • Updating Student and Grade Data Using the Entity Framework
  • Extending the Entity Model to Validate Data
  • Module 8: Accessing Remote Data
  • Accessing Data Across the Web
  • Accessing Data by Using OData Connected Services
  • Lab : Retrieving and Modifying Grade Data Remotely
  • Creating a WCF Data Service for the SchoolGrades Database
  • Integrating the Data Service into the Application
  • Retrieving Student Photographs Over the Web (if time permits)
  • Module 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
  • Customizing the Appearance of Student Photographs
  • Styling the Logon View
  • Animating the StudentPhoto Control (If Time Permits)
  • Module 10: Improving Application Performance and Responsiveness
  • Implementing Multitasking
  • Performing Operations Asynchronously
  • Synchronizing Concurrent Access to Data
  • Lab : Improving the Responsiveness and Performance of the Application
  • Ensuring that the User Interface Remains Responsive When Retrieving Data for Teachers
  • Providing Visual Feedback During Long-Running Operations
  • Module 11: Integrating with Unmanaged Code
  • Creating and Using Dynamic Objects
  • Managing the Lifetime of Objects and Controlling Unmanaged Resources
  • Lab : Upgrading the Grades Report
  • Generating the Grades Report by Using Microsoft Office Word
  • Controlling the Lifetime of Word Objects by Implementing the Dispose Pattern
  • Module 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
  • Creating the IncludeInReport Attribute
  • Generating the Report
  • Storing the Grades.Utilities Assembly Centrally
  • Module 13: Encrypting and Decrypting Data
  • Implementing Symmetric Encryption
  • Implementing Asymmetric Encryption
  • Lab : Encrypting and Decrypting Grades Reports
  • Encrypting the Grades Report
  • Decrypting the Grades Report