Navigation

Search

Categories

On this page

Nothin But .Net - What's The Deal?

Archive

Blogroll

 Agile Developer Venkat's Blog
 Ayende @ Blog
 B#
 Barry Gervin's Software Architecture Perspectives
 Boy Meets World
 Brad Abrams
 Canadian Developers
 Christopher Steen
 Claritude Software News
 Clemens Vasters: Enterprise Development and Alien Abductions
 Coding Horror
 Coding in an Igloo
 Dare Obasanjo aka Carnage4Life
 Darrell Norton's Blog [MVP]
 David Hayden [MVP C#]
 Don Box's Spoutlet
 Eric Gunnerson's C# Compendium
 EZWeb guy: Jeffrey Palermo [C# MVP]
 Fear and Loathing
 Generalities & Details: Adventures in the High-tech Underbelly
 Greg Young [MVP]
 Greg's Cool [Insert Clever Name] of the Day
 IanG on Tap
 Ingo Rammer's Weblog
 ISerializable - Roy Osherove's Blog
 James Kovacs' Weblog
 Jason Haley
 Jean-Luc David
 Jeremy D. Miller -- The Shade Tree Developer
 JetBrains .NET Tools Blog
 Jimmy Nilsson's weblog
 John Bristowe's Weblog
 John Papa [MVP C#]
 Jon Skeet's Coding Blog
 JonGalloway.ToString()
 Jump the Fence or Walk Around
 Lambda the Ultimate - Programming Languages Weblog
 Larkware News
 Lutz Roeder
 Marquee de Sells: Chris's insight outlet
 Martin Fowler's Bliki
 Mike Nichols - SonOfNun Technology
 MSDN Magazine - .NET Matters
 MSDN Magazine - All Articles
 OdeToCode Blogs
 Onion Blog
 Planet TW
 Raymond Lewallen [MVP]
 Rockford Lhotka
 RodMan's Corner
 Roger Johansson's blog
 Sahil Malik - blah.winsmarts.com
 Sam Gentile's Blog
 Scott Bellware [MVP]
 Scott Hanselman's Computer Zen
 ScottGu's Blog
 secretGeek
 Service Station, by Aaron Skonnard
 Signum sine tinnitu--by Guy Kawasaki
 Stephen Toub
 Steve Eichert's Blog
 Steven Rockarts
 The Blog Ride
 The Coding Hillbilly
 The Daily WTF
 TheServerSide.net: News
 Tim Gifford
 Vance Morrison's Weblog
 you've been HAACKED

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 337
This Year: 62
This Month: 13
This Week: 3
Comments: 882

 Monday, June 04, 2007
Monday, June 04, 2007 10:41:43 AM (Mountain Standard Time, UTC-07:00) ( Training )

Just completed another 5 amazing days of intense coding madness with the wonderful people at the Edmonton Catholic Schoolboard.

There is nothing better than leaving a course and knowing you have had both a professional and personal impact on the people that you have taught!

Someone once asked me, what’s with the name “Nothin But .Net?”. There is a bit of meaning to the name of the course. Aside from the following tools:

  • MBUnit
  • NAnt
  • TortoiseSVN and Subversion

All of the code that is developed over the course of the week is done on the Naked CLR. I am a big fan of open source frameworks and tools, as well as tools that I have to purchase to make myself more effective. I regularly use NHibernate and tools from the Castle stack to make myself more productive. The only reason I feel I am effective at using the tools is that I feel that I have an understanding of how the tools work and the problems they are trying to solve. I am a huge proponent of Building a Solid Core. It is the reason that over the course of the week I don’t introduce any tools to solve the ORM, IOC, or other problems. I love these tools, but I love for people to have the grounding from which to gravitate toward these tools. By the end of the week they are left with a set API’s that can be migrated without any change to client to tools like NHibernate,Castle Windsor, Log4Net etc; but more importantly understanding has been brought to the table.

Over the course of the week along with getting a solid understanding of some framework fundamentals, the goal is to deliver a working, small section of an enterprise application. I show up on the first day with a set of completed web pages (without any accompanying code-behind), after the first day of framework fundamentals covered; Day 2  introduces people to the concepts of domain driven design and interface based programming, all within the context of Test Driven Development. Over the remainder of the week we drive out the different layers of the application, with the main pieces being:

  • UI
  • Presentation
  • Thin Service Layer
  • Domain
  • ORM

By the end of the week people leave with a solid understanding an application of the following concepts, patterns, and practices:

  • Test Driven Development
    • State Based
    • Interaction Based
  • Automated Builds
  • Object Oriented Programming
  • Interface Based Programming
  • Dependency Inversion Principle
  • Dependency Injection
  • IOC
  • Logging as a debugging replacement
  • Domain Driven Design
  • Object Relational Mapping
  • Factory Pattern
  • Proxy Pattern
  • Decorator Pattern
  • Unit Of Work Pattern
  • Specification Pattern
  • Identity Map Pattern
  • Adapter Pattern
  • Query Object
  • Data Mapper Pattern
  • Lazy Load
  • Model View Presenter
  • Notification Pattern
  • …..

The last bullet point there is a placeholder for a bunch of other stuff that is covered. In five 9 - 14hr days, there is a lot of ground that can be covered. Having delivered the course 4–5 times this year so far, it is fun to see how different each of the code bases have been from course to course!! Students are also provided with upto 60hrs worth of screencast recordings that are captured over the course of the week. This has been a big hit as people know that they can go over the sessions again from the comfort of their own homes. They also get the complete repository dump from the class so they can rollback to day 1 and see where the code evolved from.

What is the end goal for me delivering this course? I want to demonstrate to people the practicality of all of these “buzzwords” in the realm of practical software development. Furthermore, I want to make sure that when attendees of my class inevitably start to use tools like NHibernate and the Castle stack, that they are able to use them with intelligence.

In my opinion, there is no value in learning tools without prefixing it with a solid understanding of the fundamentals. Having given this course several times this year, I glean great joy from seeing the lights go on and having people tell me that this course has changed the way they look at development.

That is my goal for heading out on the road with this course once a month, to help you potentially change the way you look and tackle development.

Are you interested in taking your development to the next level? I am typically only delivering the course once a month so I can continue with my regular consulting gig.

Contact me if you want me to help teach you and your team to start Developing With Passion!!