Contact
Training

Overview of the Nothin’ but .NET Developer Boot Camp

Nothin But .NET is a five day (intense) boot camp style course that will focus on applying .NET development best practices in the context of developing a working N-Tiered application. Registrants will learn about how to practically apply .NET as they apply it to the task of building a complete application from the UI layer all the way down to the mapping layer.

Warning!!!

If you are expecting to come to this course to learn about how to have Visual Studio .NET automatically generate an "application" for you, then this course is NOT for you.

This course is all about taking control of the .NET framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .NET do things the way you want it to, in a predictable and testable way.

command prompt

I will teach you development techniques and tools that will dramatically increase your day to day productivity as a software developer.

This course will focus on a code centric view of application development versus the typical databinding/designer magic covered by many typical .NET courses. You will walk away with a deep understanding of fundamental aspects of .NET and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

  • Expand the capabilities of developing with Visual Studio .NET - Enter ReSharper (a productivity add-in for Visual Studio .NET)
  • There’s more to development than code generators
  • Automated Builds
  • Generics ( they’re not just for collections )
  • Object Relational Mapping in .NET
  • Creating layered architectures
  • Driving out functionality and design through testing
  • Taking Control Of Databinding
  • Behaviour Driven Development & Mock Objects
  • Core Design Patterns Applied

Detailed Topic Coverage Breakdown

Language Enhancements

  • Generics
  • Anonymous Delegates
  • Iterators
  • LINQ

Collections

  • Taking advantage of the collection interfaces
  • Making use of the IDictionary<T> and IList<T> interfaces
  • Overcoming the limitations of the IList<T> interface
  • Sorting, searching, and manipulating collections using generic delegates
  • Overcoming limitations of searching with generic delegates
  • Creating custom comparers

Events

  • Delegates in depth
  • Creating classes that expose events
  • Safely publishing events
  • Multithreading with delegates

ADO .NET

  • Creating a Custom Object Relational mapping layer
  • Effective uses of TransactionScope to test the mapping layer
  • Eliminating the need for stored procedures
  • Effective techniques for querying data

ASP .NET

  • Master Pages
  • Passing Data Between Pages
  • Taking Control Of Databinding
  • Validation Techniques
  • Leveraging Front Controller Architecture for cleaner separation of concerns
  • Saying goodbye to WebForms
  • Model View Controller (MVC) vs Model View Presenter (MVP) vs Supervising Controller (SC)

Object Oriented (OO) Practices & Principles

  • Dependency Inversion
  • Single Responsibility
  • Open Closed
  • Hollywood
  • Tell Don’t Ask
  • Encapsulation
  • Polymorphism

Design Patterns

  • Layered Architecture
  • Data Transfer Object
  • Supervising Controller
  • Passive View
  • Notification
  • Static Gateway
  • Unit Of Work
  • Mapper
  • Gateway
  • Domain Model
  • Null Object
  • Proxy
  • Adapter
  • Abstract Factory
  • Event Aggregator
  • Service Layer
  • Facade
  • Visitor
  • Decorator
  • Composite
  • Front Controller

Testing

  • Using Automated Testing Frameworks
  • Dependency Based/Interaction Based
  • Behaviour Driven Development (BDD) as a design tool
  • Applying Behaviour Driven Development
  • Avoiding over specification problems with Interaction Based Testing
  • Test Partitioning
  • Different forms of testing (Integration, Acceptance, Unit)

Recommended Prerequisites

This is an intermediate to expert level course. In order to walk away with the most benefit from the course the following list outlines key prerequisites and the level of knowledge that people would be best served entering the course with.

  • Knowledge of the C# syntax (Strong)
  • Knowledge of the .NET event/delegate architecture (Moderate/Strong)
  • OO programming concepts (Moderate/Strong)
  • Domain Driven Design (Cursory)
  • Refactoring (Cursory)
  • Design Patterns (Cursory)
  • Automated Testing Frameworks (Cursory/Moderate)
  • Test Driven Development (Cursory)
  • Behaviour Driven Development (Cursory)
  • Utilizing Events and Delegates in .NET (Moderate/Strong)
  • Manipulation of core ADO .NET objects (Moderate/Strong)
  • Build Automation (Cursory)
Please be aware that the length of course days (based on prior iterations of the course) can fluctuate dramatically based on the level of student interaction. It is best to come ready expecting the course days to be no less than 10 hours.

Intended Outcomes

Upon completion of this course students should be equipped with a practical, applied understanding of the following concepts:

  • Interface Based Programming
  • Design By Contract
  • Behaviour Driven Development
  • Layered Architecture
  • Object Oriented Programming
  • Design Patterns
  • Unit Testing
  • Interaction vs. State Based Testing
  • Dependency Injection
  • Object Relational Mapping
  • Domain Driven Design
  • Build Automation

Course Requirements

Students are required to bring their own laptop capable of running:

  • Microsoft Windows XP Pro SP2 with IIS 5.1
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft Visual Studio 2008 Professional Edition
  • TortoiseSVN
  • JetBrains Resharper 3.x/4.0
  • TestDriven .NET

What is included with the price of the course?

  • Five 10+ hour days of coding madness
  • Breakfast, Lunch, and Supper
  • Screencasts of the entire week of coding, so that you can replay anything that we blast through too quickly
  • All code artifacts generated throughout the course of the week
  • ReSharper 4.0 License
  • $70.00 Amazon Book Credit
  • T-Shirt - "I survived Jean-Paul Boodhoo’s .NET Bootcamp!!"

Warning!

10 - 20 hours in length

This is a very intense week. Your mind will not have very much in the way of downtime. Days in past courses have gone anywhere from 10 – 20 hours in length!!

One side goal of the course is to leave people feeling a lot more empowered and energized to do their jobs!!

If you feel you might be interested in participating in what I promise to be and exciting week, then check out the upcoming course calendar

Develop with passion is not just my tagline, it is something that I personally believe in!!

© Copyright. JPBoodhoo.com Consulting Inc. All rights reserved. Disclaimer / Privacy / xhtml

Creative Commons License
Software Artistry by Jean-Paul S. Boodhoo is licensed under a Creative Commons Attribution-Share Alike 2.5 Canada License.
Based on a work at jpboodhoo.com.