I’ll be delivering some courses at CODE Training in the next couple of months. Check out the ones you may be interested in and sign up!
I’ll be doing a full 2-day Ruby on Rails for .NET Developers, as well as some training on WPF, and advanced .NET topics for VFP developers. I hope to see some of you there!
Advanced .NET for VFP Developers (Oct 3 – 7)
I’ll be doing the “Power Developer” sessions:
Power Developer – Testing
Unit testing, Testing frameworks, Test Driven Development and Design and development considerations for testing.
Power Developer – SOLID Principles
In this session, we break down the 5 principles of SOLID coding in terms of the code we’ve looked at this week and find out how these 5 principles can make you a better coder.
Power Developer – Patterns and Practices
Inversion of Control, Containers, Composition and more Dependency injection, inversion of control containers and using them to improve the use of composition in our applications, as well as our testability story.
Power Developer – Presentation Patterns and Common Design Patterns
In addition to patterns like Model-View-ViewModel (MVVM) which we’ve already covered this week, we’ll look at how to recognize and implement other common patterns such as the factory, strategy, decorator, command, iterator, proxy and more, besides teaching Inversion of Control containers, as well as leveraging some C# features that facilitate the implementation of certain patterns.
WPF for Business Applications (Oct 10 – 12)
Introduction to WPF
This session introduces the general concepts behind WPF and shows various examples that highlight the benefit of WPF over other UI approaches available. This session also introduces XAML (the markup language that drives most WPF and Silverlight UIs) and other core concepts.
Writing and Deploying WPF Applications
This session shows how to build user interfaces “the right way”. This session starts with an introduction of various WPF UI Design tools (including Visual Studio and Expression Blend). The session then guides the attendee from a simplistic and conventional UI approach (as it is used by other UI environments, such as WinForms or HTML) to a more modern approach that takes advantage of the WPF paradigm.
WPF Layout and Controls
This session continues the exploration of creating WPF UIs by taking a closer look at concepts such as data binding, automatic layout, view models, templates, and much more.
Fundamentals and New Concepts
This session discusses various topics that have gone unexplained so far, including deployment options. This session also takes a look at topics such as 3D, graphics acceleration, graphics rendering (vector art), animations, a closer look at resource management, and much more.
WPF Business Applications – Parts 1 and 2
Introducing general concepts for building business apps in WPF. This session provides a very brief review of WPF concepts and paradigms. However, the majority of this session is spent on creating a solution setup that works for real-world WPF projects. This includes not just the setup of the UI aspects, but also other elements such as view models and access to middle tiers or services. The session creates a real-world setup designed to accomodate business scenarios which involve typical data scenarios (handling of data in view models and also data binding in the UI). User interaction is discussed in detail as well.
Prototyping, Designing and Testing Business Apps
Should we start developing from the database up, or from the user interface down? In this session we’ll tackle that question, and present an approach that works well when building business applications. We’ll go over prototyping, writing presentation logic from a TDD (Test-Driven Development) angle, waiting until the last responsible moment to implement a database, etc.
Ruby on Rails for .NET Developers (Nov 10 – 11)
Creating our first Ruby on Rails Application
Rails enables developer to hit the ground running and create applications fast, even without knowing a lot of Rails or Ruby. We start the training by building a small application and get a quick feel for what’s coming.
There are certain key aspects of Rails that developers need to know about, and this session covers most of them: Database Migrations, ActiveRecord, Routes, Models, Views, Controllers, etc.
After having experienced some Rails, it’s time to start understanding the language we use to build our applications, which is the same that the framework is built on: Ruby. Here we go over the language’s main constructs, as well as some of the features that enables some of the Rails magic.
Development Environment and setup
There isn’t a single ultimate setup for Rails development that everybody uses. There are certain common core things that need to be installed, and certain tools that are more popular than others. Here we learn how to get the minimal environment setup, and what a couple of the options available are.
Using Haml as the View Engine
The default view template system for Rails is Embedded Ruby (ERb). Other view engines can be used, though, and here we learn about one of them: Haml, which allows for cleaner views to be written.
Using a Document Database
Besides supporting relational databases, Rails also work well with document databases. Here we learn about one of them, Mongodb, and how to use it in a Rails application.
Rails has been built from the ground up with testability in mind. It’s easy to test the code you write, and it’s easy to write tests that use Rails elements. Here we learn how to write our first tests for a Rails application, using two of the most popular “gems”: RSpec and Cucumber.
Behavior Driven Development
BDD is a development technique that improves the understand of the software being built by everybody involved. It improves planning of features and rids the project of unpleasant surprises due to erroneous expectations. Here we learn more about this practice and how certain tools used in Rails development can help us along the way.
Putting it all together – Parts I and II
We’ve seen an application quickly built on Rails, and covered several core aspects, tools, and practices of Rails development. Here we bring all this knowledge together into building another application, applying everything we’ve learned so far, and introducing a couple more things, such as user authentication and authorization, deploying the application to the cloud, and more.