Course M401 Developing Microsoft .Net Based Communication and Control Applications for Interacting With and Controlling PIC based Embedded Systems
Duration: 5 Days
Intended Audience
This course is an intensive introduction to object oriented programming using C# and .Net for developers building PC applications that have to communicate with PIC based Embedded Systems Applications The course will be based on recent versions Visual Studio and .Net 4.x. The communications mechanisms used will include serial (RS232) communications, USB HID and CDC based applications, Wired Ethernet applications and WiFi applications. The course will also cover the design and realisation of GUI (Graphical User Interface) based applications as well as Console based applications. Windows Forms and WPF (Windows Presentation Foundation) techniques for implementing GUIs will be explored.
Synopsis - Course Objectives
By the end of the course student should know and understand
- The architecture and design of the .Net Framework
- The syntax and structure of the C# programming language
- Making use of inheritance, polymorphism, composition and aggregation in the design and implementation of C# applications
- Be able to create Windows Forms and WPF interfaces
- Know how to implement applications using RS232, USB and TCP/IP to interact with the embedded target platform.
- Various Microchip target platforms with pre-built applications will be used.
- The course can be tailored to focus on particular kinds of applications and particular communications systems
Course Outline
- Introduction to C# and .NET
- Development and evolution of C# and .NET
- Overview of Object Oriented concepts
- Overview of .NET Common Language Infrastructure (CLI), .NET Managed Code Philosophy, CIL (Common Intermediate Language) and metadata
- C# - Intensive Introducion
- Data types and control constructs
- Implicit vs. explicit variables
- Value types vs. reference types
- Unicode - Characters and Strings
- Methods - Defining them and calling them
- Specifying the Main method
- Mechanisms for passing arguments and returning values
- Scope and lifetime of variables
- Named methods vs. symbolic methods
- Exception handling
- Garabage collection and resource recovery
- Using .NET library classes
- Namespaces - purpose, usage and syntax
- I/O using the Console and stream classes
- Standard and Generic collection classes - an overview
- C# Classes
- Defining a Class
- Realising attributes with methods and properties
- Constructors and initialisation
- Method and constructor overloading
- Inheritance and Polymorphism
- Class instance - Object
- Allocating memory with new
- Passing initialisation values to constructors
- Value allocation vs. reference allocation
- Boxing and unboxing
- Accessing properties and invoking methods
- Class Relationships, Collections of Classes and Interfaces
- Aggregation and Composition
- References and how to manipulate them
- Physical equivalence vs. logical equivalence
- Deep copying vs. shallow copying
- Inheritance and Polymorphism
- Collection Library Classes
- Generics
- Interfaces
- Specifying an interface
- Implemeting an interface
- Interface Polymorphism
- Events and Delegates
- Synergy between collection classes, generics and interfaces
- Component Implementation
- Component oriented aspects of .NET
- Manifests and assemblies
- Deploying applications and components
- Understanding the .NET assembly metamodel
- Introduction to Enhanced Application Development
- Multitier application fundamentals
- Generating user interfaces
- Overview of Windows Forms
- File I/O and serialisation
- Overview of WPF and XAML
- Overview of WCF
- Programming Communications with a PIC Target Board
- Serial communication over RS232
- HID and CDC communication over USB
- Sockets based communication over TCP/IP