C# Programming for none C# Developers

his course designed to introduce developers who are or not familiar with Object Oriented languages to the C# language. Designed by software developers for software developers, this course aims to bring to the software developer a pragmatic view of the language. The student will not only learn how to program in C#, but also best practices, how to use the class libraries and software patterns the C# way. This course focuses on the fundamentals of software engineering with a C# perspective.


Course code:CSHARP-5
Duration:5 days
List Price:£1995
Pre-requisites:A basic programming background and some experience with Object Oriented concepts would be beneficial.
Delegates will learn:How to write; basic C# applications, define well formed classes, stable code bases, effective string manipulation routines, dynamic class loading applications, multi-threaded applications, and basic sockets applications. Students will also learn some basic debugging and optimisation techniques, effective resource management, core C# libraries and how to construct their own frameworks. At the end of this course a student would be well qualified to sit the C# programmer exam.
Customization:This course is suitable for customization to meet your needs


Topics Covered

C# architectureIn this introduction to the language we look at the history and architecture of the language.
Platform independenceA brief look at Virtual Machine concepts and platform neutrality
Frontline securityWe look at the different levels of security available to C# developers, built-in, programmatic and config file based.
C# program structureThe basic structure of a C# program and application are examined.
Datatypes and fundamentalsCore language data types such as int, short and double are introduced.
Declarations and access controlCore language features for declaring data types and variables and specifying access modifiers.
Flow control and exceptionsA complete list of C# keywords (for, while etc.) as well as working with exceptions.
Working with objectsAn examination of a C# object’s life cycle; loading, linking and verification. What is a C# class, how is a class initialised, constructors, the initialisation of field members, and basic garbage collection theory.
Working with interfacesWhat is an interface and how is it different to a class? Moving away from inheritance to interfaces only.
Class loadersDynamic linking and resolution, class loader theory, and writing class loaders.
IO and StreamsDifference between byte streams and character streams, working with source/sinks, streams and processors.
C# threadingThreading vs multi-tasking theory, the Thread class, interrupting and stopping threads, thread safety through synchronization, worker thread pattern.
C# networkingSockets theory, server and client sockets, working with sockets in multi-threaded applications, and sockets and exceptions.
C# stringsStrings, tuning String manipulation, comparisons and internationalisation.
Unmanaged codeInteroperating the C# language with other languages, and system level programming.
Optimising C# applicationsProfiling, CDK features, object creation and deletion, exceptions, casting, variables and threading issues. Strategies for altering user perception on timing issues etc.