C# Essentials (VS 2013) Training

Answers to Popular Questions:

 
Yes, this class can be tailored to meet your specific training needs.
Yes, we provide C# consulting services.
Yes, group discounts are provided.

Course Description

 
This two-day intensive course is designed for the experienced programmer to help you quickly come up to speed on the C# language. It is current to Visual Studio 2012 and .NET 4.5. Important newer features such as dynamic data type, named and optional arguments, the use of variance in generic interfaces, and asynchronous programming keywords are covered in a final chapter. An appendix covers the fundamentals of Language Integrated Query (LINQ). This course concisely covers the essentials of programming using Microsoft�¢??s C# programming language. It starts with a brief chapter, �¢??.NET: What You Need to Know,�¢?? which gets you up and running in the .NET environment with a minimum of fuss. The next two chapters cover C# language essentials and object-oriented programming in C#. The next chapter discusses how C# relates to the .NET Framework. The following chapter covers delegates and events. The course includes a succinct introduction to creating GUI programs using Windows Forms. The course concludes with a chapter covering the newer features in C#. Appendices provide a tutorial on Visual Studio 2012, an overview of LINQ and a discussion of Visual Studio 2012 with Visual Studio 2010 solutions. The course is practical, with many example programs and a progressively developed case study. The goal is to quickly bring you up to speed in writing C# programs. The student will receive a comprehensive set of materials, including course notes and all the programming examples.
Course Length: 2 Days
Course Tuition: $790 (US)

Prerequisites

Programming in a high-level language is required and some background in object-oriented programming is recommended.

Course Outline

 

.NET: What You Need to Know
Getting Started
.NET: What Is Really Happening
.NET Programming in a Nutshell
Viewing the Assembly
Viewing Intermediate Language
Understanding .NET
Visual Studio 2012
Creating a Console Application
Adding a C# File
Using the Visual Studio Text Editor
IntelliSense
Build and Run the Project
Pausing the Output
Visual C# and GUI Programs
.NET Documentation

C# Overview for the Sophisticated Programmer
Hello, World
Compiling, Running (Command Line)
Program Structure
Namespaces
Variables
Input in C#
More about Classes
InputWrapper Class
Input Wrapper Implementation
Compiling Multiple Files
Control Structures
switch
C# Operators
Precedence Table
Types in C#
Simple Types
Types in System Namespace
Integer Data Types
Floating Point Data Types
Implicit Conversions
Explicit Conversions
Boolean Data Type
struct
Uninitialized Variables
Enumeration Types
Nullable Types
Reference Types
Class Types
object
string
Copying Strings
StringBuilder Class
Classes and Structs
Static and Instance Methods
Method Parameters
No “Freestanding” Functions in C
Classes with All Static Methods
Parameter Passing
Parameter Terminology
Value Parameters
Reference Parameters
Output Parameters
Structure Parameters
Class Parameters
Method Overloading
Variable Length Parameter Lists
Arrays
One-Dimensional Arrays
System.Array
Jagged Arrays
Rectangular Arrays
foreach for Arrays
Boxing and Unboxing
Implicitly Typed Variables
Output in C#
Formatting
Exceptions
Checked Integer Arithmetic
Throwing New Exceptions
finally
System.Exception
Lab 2

Object-Oriented Programming in C#
C# Object-Oriented Features
Encapsulation and Accessors
Asymmetric Accessor Accessibility
Using a Property
Indexers
Visual Studio Console Projects
Files in Skeleton Solution
Source Files
Account Class
Constructors
Static Members
Static in Main
Static Constructor
Constant and Readonly Fields
Auto-Implemented Properties
Inheritance in C#
New Version of Base Class
Features of the New Base Class
Derived Class
Overriding a Virtual Function
Abstract Classes
Keyword: abstract
Derived Class
Sealed Classes
Access Control and Assemblies
Internal Accessibility
Class Libraries
Lab 3

C# and the .NET Framework
Components and OO in C#
Interfaces in C#
Interface Inheritance
Programming with Interfaces
Implementing Interfaces
Using an Interface
Dynamic Use of Interfaces
is Operator
as Operator
Resolving Ambiguity
Explicit Interface Implementation
System.Object
Collections
ArrayList
ArrayList Methods
IEnumerable and IEnumerator
Using Enumerators
Collections of User-Defined Objects
Account Class
AccountList Class
Copy Semantics in C#
Deep Copy and ICloneable
Lab 4
Writing Generic Code
Using a Class of object
Generic Types
Generic Syntax in C#
Generic Client Code
System.Collections.Generic
Lab 4B
Object Initializers
Collection Initializers
Anonymous Types
Attributes

Delegates and Events
Callbacks and Delegates
Usage of Delegates
Declaring a Delegate
Defining a Method
Creating a Delegate Object
Calling a Delegate
Random Number Generation
A Random Array
Anonymous Methods
Combining Delegate Objects
Account.cs
DelegateAccount.cs
Lambda Expressions
Named Method
Anonymous Method
Events
Events in C# and .NET
Client Side Event Code
Lab 5

Introduction to Windows Forms
Creating a Windows Forms App
Partial Classes
Windows Forms Event Handling
Add Events for a Control
Events Documentation
Closing a Form
ListBox Control
Lab 6

New Features in C# 4.0 and C# 5.0
dynamic Type
dynamic versus object
Behavior of object
Behavior of dynamic
Named Arguments
Optional Arguments
Book Class
Using Optional Arguments
Variance in Generic Interfaces
Variance with IComparer
Interfaces with Variance Support
Asynchronous Programs in C# 5.0
Task and Task
Aysnc Methods
Synchronous Call
Async Call
Threading

Appendix A – Using Visual Studio 2012
A Visual Studio Solution
Toolbars
Customizing a Toolbar
Creating a Console Application
Adding a C# File
Using the Visual Studio Text Editor
Build and Run the Bytes Project
Running the Bytes Project
Executable File Location
Managing Configurations
Creating a New Configuration
Setting Configuration Build Settings
Debugging
Breakpoints
Watch Variables
Debug Toolbar
Stepping with the Debugger
Call Stack and Call Hierarchy
Adding a Reference
Project Dependencies
Startup Project
Hidden Files

Appendix B – Language Integrated Query (LINQ)
Language-Integrated Query (LINQ)
Using IEnumerable
Basic LINQ Query Operators
Obtaining a Data Source
Filtering
Ordering
Aggregation
Obtaining Lists and Arrays
Deferred Execution

Appendix C – Visual Studio 2010 and Visual Studio 2012
VS 2010 Solutions with VS 2012
.NET Framework Versions
.NET Version Issues

Appendix D – Learning Resources

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

C# Uses & Stats

C# is Used For:
Windows Applications Business Enterprise Applications Software Development Web Applications
Difficulty
Popularity
Year Created
2000
Pros
In Demand: 
C# along with Java is one of the top languages in demand for employers. 
 
.Net Library:
C# is integrated with the .Net Library thereby providing access to a vast archive of functionality and support. 
 
Team Friendly:
Multiple developers can easily work together on a project. 
 
Compiled Language:
The code that is stored on a public-facing server is in binary form. In other words, if your server gets hacked, the hacker doesn't automatically have access to your source code. 
 
Transferable:
C# roots are derived from C which means that the structure is transferable to other languages like Java, Objective C, PHP and C++. 
Cons

Steep Learning Curve:
For beginners, C# is not the easiest program to start with. 

Windows Application Exclusively:
Any .NET application needs a Windows platform to execute which means that companies using Linux servers would need Windows hosting to run a .Net application. 
 
Lack of Support for Older .NET:
Many enterprise organizations keep older operating systems because of the many problems that an upgrade can bring to the platform. Microsoft stops supporting older .NET frameworks after a few operating systems upgrades. 
C# Job Market
Average Salary
102000
Job Count
32916
Top Job Locations

New York City 
Mountain View
San Francisco 

Complimentary Skills to have along with C#

Since the .NET development ecosystem spans a wide array of capabilities and tools, it is difficult for .NET developers to know which .NET development skills and training to pursue in order to increase their marketability — and earning potential.  For that reason, learning supplemental languages such as Java, JavaScript, Python, C/C++, and others is expected in today’s competitive skill-set driven playing field.

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.