Optimal .NET Development (Course Code: 918)

Course Schedule:

Location Days Course dates Duration Cost (ex GST) Availability Enrol Here
City Mon - Fri 04 - 08 Aug 2008 5 days 2700.00 Open Corporate Group / Individual
City Mon - Fri 08 - 12 Sep 2008 5 days 2700.00 Open Corporate Group / Individual
City Mon - Fri 13 - 17 Oct 2008 5 days 2700.00 Open Corporate Group / Individual
City Mon - Fri 10 - 14 Nov 2008 5 days 2700.00 Open Corporate Group / Individual

Overview:

This course is designed primarily around the Microsoft Application Architecture “Patterns and Practices” series released in 2004.

The impetus behind the design is best described by S Somasegar, Corporate Vice President, Developer Division Microsoft Corporation, in the Introduction to the 1000+ page MS Press book “Improving .NET Application Performance & Scalability” 2004.

"IT professionals are under increasing pressure not only to execute design and development initiatives that meet functional specifications, but also to release fast, responsive, and scaleable applications. In response to the needs of architects and developers striving to meet these expectations as they build on the .NET platform, we have developed the Improving .NET Application Performance & Scalability guide. This guide reflects an evolutionary way of thinking about the software development cycle. Fundamental to the guide’s design is afresh commitment to determining performance objectives as part of the early stages in the design and architecture of the application. Building these parameters into the design from the beginning prevents you from having to spend unnecessary time and resources addressing performance and scalability deficits later in the life cycle…"

Monash Professional has incorporated the most commonly used features from the Microsoft Patterns and Practices, in addition to presenting three third party “best of breed” developer tools that work together with Microsoft Visual Studio .NET 2005 to offer a comprehensive five day learning experience.

Participants are provided with a partially built enterprise solution comprising four separate applications; invoicing, warehousing, accounting, and delivery. These applications utilise web and windows forms, remoting, XML Data Handling, Windows Services, Web Services, Microsoft Message Queuing and ADO.NET with Microsoft SQL SERVER, as well as a range of “engineering for reliability and performance” features such as event logging and performance counters.

Learning Method:

This course is Instructor led in a PC equipped classroom.
Each design feature is treated in detail, both in terms of theory and optimal usage, and then as a practical hands-on exercise which serves to build on the existing bare bones Enterprise Solution described above.

Who will benefit from this course?

C # Programmers, Software Architects

Pre-requisites:

Before attending this couse you should have a solid grasp of Microsoft .Net programming, preferably 3 years experience in either VB.Net, C# or Java

What can you expect to gain from this course?

You will be exposed to detailed treatment of critical programming elements, and have ample opportunity to test and demonstrate the techniques and skills taught.

Course Content:

Module 1:Intro To Ms Architecture, Enterprise Architecture
  • The three pillars of high performance, high reliability software engineering design
  • The MS Enterprise Libraries in detail-why they exist and where they fit
Module 2:Performance Optimisation Techniques
  • The CLR: optimising IL – looping structures, sorts, hashtables
  • Exercise 1: Using REFLECTOR
Module 3:The UI Application Block
  • Exercise 2: Building the INVOICING application
Module 4:Security
  • Authorisation, code based, role based
  • Exercise 3: Code based security – strong naming, gacutil
  • Exercise 4 : Role based security for Windows and Web forms
Module 5:Introduction To The Service Layer
  • Task objects
  • Datasets: typed v’s untyped
  • Serialisation of datasets and objects
  • Exercise 5: Building the WAREHOUSING application
  • Exercise 6: Working with objects-deserialising into binary & xml, handling collections
Module 6:Introducing Service Oriented Architecture
  • Motivation, reducing piracy
  • Microsoft Message Queuing: synchronous and asynchronous setup
  • Exercise 7: MSMQ configuration
  • Exercise 8: Building a publisher in the INVOICING application
  • Exercise 9: Building a listener in the ACCOUNTING application
Module 7:Optimising The Data Access Layer
  • Optimising the Data Access Layer application block
  • Achieving design goals in the ubiquitous data layer
  • Code generation using Codesmith
  • Exercise 10: Using Codesmith to enhance the DELIVERY application
  • Employing the ADO.Net Data Reader
Module 8:Performance Optimisation Techniques
  • The Data Access Layer: improved access to data sources
  • Code generation: stateless
  • ORM mapping objects to table entities: stateful
  • Exercise 11: Need for speed in ADO.NET
Module 9:Remoting
  • TCP, SOAP, WSDL, SOAP SUDS AND IIS hosted
  • Message sinks
  • Exercise 12: Building the DELIVERY application as Windows Service
  • Exercise 13: Building the DELIVERY application to be hosted by IIS
  • Using the SOAPSUDS tool to generate proxy code
Module 10:Performance Optimisation Techniques
  • Resource management: managing managed and unmanaged resources
  • Using the Dispose pattern
  • Demonstration of worst case scenario non-destroyed OCX’s
Module 11:Deployment
  • Strong naming, publishing policy
  • The manifest: using ILDASM to read manifest details and exert fine control
  • Smart Client Single touch deployment and auto updating
  • Probing
Module 12:Utilising The Updater Block
  • Using the Updater Application Block
  • Exercise 14: Creating and altering the publishing policy
  • Exercise 15: Using the Updater
Module 13:Transactions
  • Using the Distributed Transaction Coordinator with ADO.NET
  • Commits, Rollbacks control in code to achieve atomic operations
  • Exercise 16: Adding transaction control to the DELIVERY application
Module 14:The Threading Model
  • Proper use of threads
  • Thread synchronisation, locking
  • Mutexs
  • Thread Pooling
  • Exercise 17: Managing threads-different behaviour with locking
Module 15:Event Handling
  • Expanding method functionality versus raising events – optimal design approaches
  • Using delegates for neater code and maximum flexibility
  • Exercise 18:adding email, text logging to INVOICE application
Module 16:Event Handling
  • Benefits gained by including WMI providers
  • Demonstration Log4NET tool
  • Exercise 19: Incorporating Windows event logging into INVOICING application
  • Exercise 20: Using Log4NET: the File Appender, Event log, SMTP and ADO.NET
Module 17:Performance Optimisation Techniques
  • Measuring, testing & tuning
  • Using Redgate ANT; analysing results
  • Exercise 21: Writing Performance Counters and Objects for the DELIVERY application
  • Exercise 22: Applying Redgate ANT to the INVOICING application
Module 18:Caching
  • Theory, design goals
  • Exercise 23: Writing a data caching block for the WAREHOUSE & INVOICING applications
Module 19:Designing Applications To Operate Offline
  • The Microsoft Offline Application Block