TGN

Developing Windows applications using C# and WPF


This 5 day course covers the C# language and its use for Windows desktop applications using the Windows Presentation Foundation (WPF). A basic knowledge of programming is assumed, though not any particular language. We offer alternative courses for web and Windows Forms applications, and several optional modules can be added to match your particular requirements.

The 5 day course costs £2950 in total for up to 6 students, plus VAT and the instructor's reasonable expenses. Each student beyond 6 would cost £25 for the additional course materials.

If you are interested in this course, please contact us by email at enquiries@tgn.co.uk or by phone on
+44 (0)1285 713297.

Introducing C# and .Net

Layout and white space. Blocks, braces and semicolons. Classes, methods and the use of '.'. The Main method. Basic input and output. Compiling and running programs.

Using Variables

Variable types and sizes. Integer versus floating point. Local variables and scope. Declaring and initializing variables. Operators. Pre and post increment operators. Strings and characters. Special characters and escape sequences. Verbatim literal strings.

Control Flow

if and else. The for loop. while and do while. The switch statement. Conditional expressions. Writing and calling methods. Passing arguments. Returning values. Method overloading.

Object Oriented Programming

Data types and nullable types. Value and reference types. Implicit types. Classes, objects and the use of 'new'. Encapsulation. The heap and the stack. Strings and StringBuilders. Collections, generics and concurrency. Arrays, jagged arrays and Indexers. Namespaces, 'using' and assemblies. Attributes.

Inheritance

Inheritance and the use of 'virtual' and 'override'. Benefits of inheritance. Hiding and the other use of 'new'. Abstract classes. Constructors and initialization. Casting, 'as' and 'is'.

Interfaces

The benefits of interfaces. Interfaces vs classes. Defining and implementing an interface. Common interfaces. Sorting and finding.

Exception Handling

How exception handling works. try…catch and throw. Handling multiple exception types. try…finally. Deriving exception classes.

Files, Streams and Networking

The. Net Stream architecture. Streams, Readers and Writers. Serialization and SOAP. The Socket and Tcp classes. Basic network communication. Clients and multithreaded servers.

Introduction to WPF

What WPF is for. XAML. WPF and Silverlight. The technologies. The tools. Patterns and Model-View-ViewModel.

Designing a user interface with XAML

What is XAML?. XAML details. Designing a window. Basic controls. Properties and attached properties. Panels and layouts. Code-behind and simple events.

Event handling

The event architecture. Event bubbling and routed events. Tunnelling and preview events. Commands.

Containers and layouts

Panels. Canvas and absolute positioning. Wrap and Stack Panels. Margins, sizes and alignment. DockPanel. Grid and UniformGrid. Splitting and scrolling. Controls as containers.

WPF controls

How WPF controls work. Drawing and presentation. Defining and using styles. Control templates. Triggers and the Visual State Manager. Custom controls. Adapting to themes.

Databases and ADO.Net

Connections, commands and readers. DataSets and adapters. Typed DataSets. DataSource controls. Data-aware controls and grids. Stored procedures and transactions. Designing and implementing multi-tier applications.

Data binding

Connecting controls. Binding to objects. Binding modes. Syntax alternatives. Using data contexts. Events and updating. Hierarchies and customization. Managing data sources.

Using Windows Forms

Using Windows Forms from WPF. Using WPF from Windows Forms. Compatibility considerations. Integrating existing application code.

Graphics and animation

Shapes and colours. Designing a visually interesting user interface. Creating graphics dynamically. Bitmaps and images. Storyboards and animation.

Introducing the 3rd dimension

Coordinate systems and geometry. The ubiquitous triangle. Cameras and lighting. Models, meshes and materials. Building shapes. Practical examples.

Silverlight

What Silverlight is (and what it isn't). Silverlight site architecture. XAML. Containers, shapes and controls. Designing the user experience. Storyboards and animation. Rendering and transforms. Interaction and code-behind. Images, effects and projections. Exposing Silverlight to JavaScript. Binding.

LINQ

How LINQ works. Implicitly-typed variables and Lambda expressions. The LINQ syntax. Using LINQ with collections, databases and XML. Parallel LINQ (PLINQ).

Advanced Language Features

Optional and named parameters. Delegates. Anonymous methods and lambda expressions. Memory management and the workings of the garbage collector. Calling legacy and unmanaged code. Using unsafe code. The Marshal and IntPtr types. Operator overloading and indexers.

The Dynamic Language Runtime

Supporting dynamic languages. The dynamic keyword. Comparing dynamic and object. ExpandoObject. DynamicObject. Office support.

Multitasking

Parallel execution. Parallel For and ForEach. Tasks, threads and the thread pool. Controlling and synchronizing tasks and threads. .Net 4 synchronization mechanisms. Monitors. Delegates and asynchronous method calls. Asynchronous methods in .Net. Using callbacks. Cross-thread calls and the user interface.

XML

Introducing XML. XmlTextReader. Using the Document Object Model (DOM) and XMLDocument. XMLDataDocuments. Creating XML using XmlWriter. LINQ and the 'X' classes.

Copyright © 1996 - 2010 The Graphics Network Ltd. Registered in England No. 2549085
All trademarks used on this site are respectfully acknowledged.
Microsoft is a registered trademark of Microsoft Corporation in the United States and other countries.