Interested In On-Site Training
If your team is in need of a private on-site training please do not hesitate to contact me directly to discuss creating a course that is customized to your specific needs. Courses can encompass a wide array of tools, technologies and practices that are finely tuned to ramp up the skill of your development staff quickly. They can also be courses that range from an introduction to developers new to .net, to advanced level training for seasoned .Net developers. Rates are dependent on your particular requirements.
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.
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
- 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
ASP .NET
- Leveraging Front Controller Architectures for a cleaner separation of concerns
Object Oriented (OO) Practices & Principles
- Dependency Inversion
- Single Responsibility
- Open Closed
- Hollywood
- Tell Don’t Ask
- Encapsulation
- Polymorphism
- Favouring composition over inheritance
- Thinking compositionally
- Coding to contracts
Design Patterns
- Layered Architecture
- Data Transfer Object
- Supervising Controller
- Passive View
- Notification
- Static Gateway
- 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
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
- Behaviour Driven Development
- Layered Architecture
- Object Oriented Programming
- Design Patterns
- Unit Testing
- Interaction vs. State Based Testing
- Dependency Injection
- Domain Driven Design
Course Requirements
Students are required to bring their own laptop capable of running:
- Microsoft Windows XP/Windows 7
- Microsoft Visual Studio 2008 Standard/Professional Edition
- Visual Studio 2008 Service Pack 1
- git
- 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 (no breakfast provided on the first day of class)
- 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 5.0 License
- $70.00 Amazon Book Credit
Warning!
This is a very intense week. Your mind will not have very much in the way of downtime. Course days will be 12 hours in length!
Aside from being a technical course, one of my important goals is to have people leave feeling more energized and empowered both about their personal and professional lives. To start/recommence dreaming big, and to work on acheiving their goals in small, patient, and manageable steps.
If you feel you might be interested in participating in what I promise to be an exciting week, then check out the upcoming course calendar
Are you ready to Develop With Passion?
Why build a boot camp for developers?
Getting ready for the course
