Essential C# is ".NET 101" for developers moving to .NET. Explore core C# features like classes, inheritance, namespaces, and events. Discuss fundamental concepts such as the Common Language Runtime (CLR), garbage collection, and deployment. Survey library functionality like building a simple Windows Forms GUI and retrieving data from SQL Server. In this course, you spend half your time on the C# language and half on the .NET platform.You'll get answers to these questions:
How do I make good design decisions (e.g., interface vs. abstract class, or property vs. field)?
How much overhead do CLR services like runtime compilation and garbage collection add?
How do I decompose my application into a main .exe and supporting .dlls and deploy the application?
What types are available in the .NET Framework class library
Come and learn how to use C# to build .NET applications.DevelopMentor's Essential courses provide five days of instructor-led training for the experienced developer. Gain deep understanding of your development platform. Acquire skills you need to be productive today. Build a solid foundation for more advanced topics.
fw136 moEssential C#: getting started with C# and the .NET Framework (FW136)
We begin with a brief overview of the languages, libraries, servers,
services, and tools that make up the Microsoft .NET platform.
The .NET Execution Model
This module examines the .NET software development model: C# source
code, compiler, intermediate language, .exe/.dll files, and the Common
Language Runtime execution engine.
Here we see how to build and run the simplest type of .NET executable:
a console application. Console applications are common for development
tools such as compilers and linkers. They also work well for utilities
like ftp, ipconfig, etc.
Here we create and use a dynamic-link library. Libraries let you split
an application into pieces that you build and version separately. They
help eliminate repeated code since multiple executables can share a
This section covers the core C# features that will be used by almost
every program: application entry point, simple types, variables, basic
input and output, operators, arrays, control constructs, comments, etc.
A class is a key object-oriented programming concept and the primary
unit of coding in C#. This section introduces classes with coverage of
instance fields and methods, access control, and object creation.
Initialization of variables is important for program correctness. C#
provides excellent support for initialization through well-defined
default values, variable initializers, and instance constructors.
The static keyword is used with fields, methods, and types. Static
fields are used to implement shared resources. Static methods are
useful as utilities where the full power of an instance method is not
required. Static types are convenient containers for static fields and
methods. Here we discuss how to declare and use static types and
members. We cover the three initialization options for static fields
(default values, static variable initializers, and static constructor).
Reference types are implemented as reference/object pairs. An object is
created using the "new" operator and is subsequently accessed through a
reference. Here we discuss a number of issues surrounding references:
assignment, parameter passing, aggregation, array, null, and garbage
Properties model the characteristics or traits of a type. They make the
client code clean and simple while allowing class designers to maintain
encapsulation and execute validation code.
Inheritance provides a powerful tool for object-oriented programmers to
model their application domain. Here we discuss the syntax and the
meaning of inheritance. We look at access levels, method hiding, method
chaining, and construction.
This section covers many issues that arise in the presence of
inheritance: type compatibility, type conversion, method binding,
method overriding, and abstract methods. We discuss how to use dynamic
binding to achieve polymorphic behavior.
An interface defines a contract that types can agree to support. Here
we discuss the details of defining and implementing interfaces,
including how to write generic code against an interface and how to use
inheritance with interfaces.
C# has a unified type system: all types inherit from the library class
Object. This section discusses the details of the Object class
including a survey of the methods provided, when and how to override
those methods, and how to use an Object reference as a generic handle.
This module describes the C# error notification mechanism of
exceptions. We show how to generate an exception, how to handle an
exception, control flow when an exception is thrown, services offered
by the exception classes in the .NET Framework class library, and how
to implement a custom exception type.
Namespace provides the ability to group logically related types and to
separate types with the same name into different scopes. In this
section, we present how to create a namespace, how to access a type
defined inside a namespace, and how to apply the using keyword to
obtain convenient shorthand access to namespace members.
Most .NET types use events to report state change. For example, GUI
controls like buttons, trees, lists, etc. use events to report user
actions such as button click, list selection, etc. The
FileSystemWatcher class reports directory activity through the Changed,
Created, and Deleted events. In this section, we show how to use C# to
subscribe to and unsubscribe from .NET events.
Windows Forms provides support for building traditional forms-based
applications that run locally on the client machine. This module
explains the basics of Windows Forms application development with a
survey of common controls and a detailed look at event handling.
Generic code is better than specific code - it works for many cases so
we avoid writing the cases individually. C# gives us several ways to
write generic code: polymorphism, reflection, and generics. Each
technique has its place. Generics are for code that is independent of
type; that is, code that does not need to know the data type it is
working with. The classic examples are collections such as hash tables,
trees, and linked lists where the code to build the structure is
independent of the type stored inside. C# generics let us write types
and methods that are parameterized by type - the type is a parameter
supplied by the client. This module shows how to define generic types
ADO.NET - Introduction
This module looks at the ADO.NET data access model. It shows how to use
SqlConnection to connect to SQL Server, SqlCommand to execute queries,
and SqlDataReader to process a result set.
The C# type system is divided into two categories: reference types and
value types. Reference types are implemented as reference/object pairs
while value types store their data directly. Here we discuss the
details of value types: creation, initialization, efficiency, memory
usage, assignment, comparison, and conversion to/from Object. We also
examine the implementation of the simple types such as int, float,
char, etc. Finally, we discuss how to code a custom value type using
Defining and using constants is important for program correctness and
readability. In this section we describe the various options provided
by C# to code constants: const fields, readonly fields, and enumeration
Here we examine the capabilities of two important classes supplied in
the .NET Framework class library: String and StringBuilder. Together,
the two classes provide efficient support for the most common types of
An assembly is the basic unit of versioning, security, and deployment
for the CLR. Here we discuss how to create an assembly, how to build
applications that consist of multiple assemblies, and how to deploy
FW136 Essential C#: getting started with C# and the .NET Framework
The hardware and software needed to successfully deliver this
course is listed below. PC configurations, including processor, RAM, and hard
drive, are recommended minimums. Courses can be run on lower performing
machine, but with slower performance. Please call for confirmation if your PC
configuration is significantly less than what is recommended.
In addition to PC equipment, each instructor will require projection equipment
that is capable of projecting the instructor's monitor onto a screen clearly
visible by all students participating.
Pentium or Core Duo Processor or better (>= 1.8 GHz recommended) At least 1GB RAM (2GB recommended) 1GB free disk space after operating system and tools installed 17 color monitor (smaller OK if using laptops) Network connectivity (optional) Internet connection (optional)
Pentium or Core Duo Processor or better (>= 1.8 GHz recommended) At least 1GB RAM (2GB recommended) 1GB free disk space after operating system and tools installed 17 color monitor (smaller OK if using laptops) Network connectivity (optional) Internet connection (optional) XGA Projector with a minimum resolution of 1024 x 768 for displaying PowerPoint slides Whiteboard, chalk board, or flip chart - large whiteboard preferred
Windows Vista Business/Ultimate (Windows XP Professional or Windows Server 2003 acceptable) Visual Studio 2008 .NET Framework Version 2.0 Software Development Kit SQL Server 2005 (SQL Express acceptable) MSDN Library Adobe Reader 7.0 or greater Northwind and pubs Sample Databases for SQL Server 2000 (filename: SQL2000SampleDb.msi)
Windows Vista Business/Ultimate (Windows XP Professional or Windows Server 2003 acceptable) Visual Studio 2008 .NET Framework Version 2.0 Software Development Kit SQL Server 2005 (SQL Express acceptable) MSDN Library Microsoft Office 2007 (Office 2003 acceptable) Adobe Reader 7.0 or greater Northwind and pubs Sample Databases for SQL Server 2000 (filename: SQL2000SampleDb.msi)
Want to gain in-depth knowledge of the core C# language
Need a fast introduction to the .NET platform architecture
Would like an overview of how to navigate the .NET Framework class library
Essential C# is for developers who:
Have a working knowledge of at least one other highlevel language. The difficulty level is ideal for programmers coming from languages like VB6, Pascal, or C. Those from a mainframe or scripting background will find the course very challengingyou should study an introductory programming text before attending. If you have some C++ or Java experience, some material will be familiar, but the course will still be beneficial. More experienced C++ or Java programmers should move directly to Essential .NET.
Course price includeds course materials provided on an eco friendly USB memory stick. Use of a PC for lab exercises.