This course covers is a deep exploration of .NET 4.0 and beyond and is intended for developers
familiar with C# and .NET and with Windows development.
Guerilla .NET is not your average training class. It is a deeply immersive experience filled with
a tried and true mix of hard core technology and a fun atmosphere. Below is the schedule of
events. The course runs from 9am to 9pm and many evening events kick off after class. Guerilla .NET
is not just about learning the technology. It's about living it and spending a fun-filled week
with others who do the same.
|
Main Topic |
Alternate Topic |
|
| Day 1 |
|
|
|
What's New in the CLR & C# 4.0 |
|
|
Silverlight 4.0 |
|
|
PFx: Tasks - a Unified Threading API |
|
|
PFx: Parallelism |
Mono - The other .NET |
|
| Day 2 |
|
|
|
PFx: Sync and Data Structures |
|
|
WCF 4.0 |
|
|
WCF REST |
|
|
| WPF 4.0 |
|
| [after class] |
Movie Night + Video Games + LAN Party + ... |
|
|
| Day 3 |
|
|
|
Entity Framework 4.0 |
|
|
NoSQL + MongoDB + LINQ |
|
|
ASP.NET MVC Introduction |
|
|
Advanced ASP.NET MVC |
Workflow 4.0 + Workflow Svcs |
| [after class] |
Movie Night + Video Games + LAN Party + ... |
|
|
| Day 4 |
|
|
|
Advanced WPF: Design and Data-binding |
|
|
Visual Studio 2010 |
|
|
Open Session
(work on challenges or try what you've learned on your project) |
|
|
Multi-touch (WPF, Silverlight, and iPhone / iPad) |
|
|
Coding Challenge Contest
(show off your coding skills and win prizes) |
|
| [after class] |
Night out for drinks and conversations |
|
|
| Day 5 |
|
|
|
Introduction to JQuery |
|
|
N-Tier Systems with Entity Framework |
|
|
WCF Data Services |
|
The topics covered include:
What's New in the CLR 4.0
The .NET 4.0 release introduces the first significant changes to the core .NET runtime since 2.0 was released in 2005. Two of the core services the runtime provides: security and garbage collection have new features providing a more manageable and efficient runtime model. In addition running software targeting different versions of the runtime in the same process is no longer likely to break older code as from version 4.0, you can have more than one copy of the runtime loaded in memory. This module walks you through these significant changes and how they affect your applications.
C# 4.0
As with most releases of .NET, the accompanying version of C# has seen important new features. The big headlining feature is the introduction of dynamic typing via the dynamic keyword. This enables a much smoother integration with dynamically typed languages such as JavaScript and Ruby as well as cleaner COM interop. But being able to resolve methods and properties at runtime also introduces new ways of parsing data with natural APIs. This module will look at the new dynamic aspects of C#4 and will also cover other new features of the language such as generic variance, optional and named parameters.
Silverlight 4.0
In this module, you will learn about a new Microsoft's latest UI technology called Silverlight. Originally intended to build cross-platform Rich Internet Applications (similar to Flash) , Silverlight has grown such that it can now be used for building line of business applications that, as well as being web deployed, can be run like desktop applications.
PFx: Task: a Unified Threading API
When the Parallel Framework Extensions (PFx) were first announced it looked as though it was going to target a narrow set of requirements around parallelizing processor intensive code. However, over time the scope of the library has grown significantly such that it will become the main model for building asynchronous code. The pivotal type enabling this transition is the Task class. This is a functionally very rich type allowing the creation of both short and long lived asynchronous work, Tasks can have dependencies on one another and support cancellation. In this, the first of the PFx modules we look specifically how this class gives us a unified framework for building multithreaded code.
PFx: Parallel
The initial goal of PFx was to simplify the parallelization of processor intensive tasks and this remains a key feature. This part of its functionality is focused on the Parallel class and it's For and ForEach members. In this module we look at the simplified model but also highlight that parallelizing algorithms is never as simple as it might first seem we show you some of the pitfalls that you should be aware of when trying to parallelize functionality using the Parallel class.
PFx: Synchronization Primitives and Concurrent Data Structures
Ever since its inception .NET has had support for a number of synchronization primitives (such as Interlocked, Monitor and Mutex). However, on their own these primitives do not provide support for more complex synchronization situations and so people have had to use them as building blocks to build things like efficient Semaphores. PFx finally brings to the library a set of richer primitives such as lazy initialization, a lightweight semaphore and a countdown event. But more than this, it also introduces a set of high performance concurrent data structures that allow you to use them without you having to provide your own synchronization logic around them. This module looks at this new set of tools in your synchronization toolbox.
Mono - The other .NET
In this brief introductory session on Mono, the open source, cross-platform version of .NET, we'll explore the options for building applications that run on Linux, Mac OS X, iPhone and iPad systems using MonoDevelop, MonoMac, MonoTouch, and Moonlight.
Windows Communication Foundation Architecture
The shift from object oriented development to component oriented development made it possible to build more loosely coupled and flexible systems where individual components evolved independently without impacting the overall system. The Windows Communication Foundation continues those practices by providing a model which is based on interfaces and contracts. This talk will introduce you to the WCF model and how to utilize it to build service-oriented and distributed applications.
Building WCF REST Services
WCF 3.5 adds the ability to create what are known as REST-ful services that embrace the principles of the Web, increasing the reach of your WCF services to non-SOAP clients, such as web browsers and Silverlight applications, which use POX (Plain Old XML) or JSON (JavaScript Object Notation) formats. You'll also learn how to create RSS and ATOM feeds using the new syndication API.
Introduction to WPF: Architecture, XAML, Layout, Styles, Resources
WPF is the GUI technology of the future. We examine how WPF works and the various ways to take advantage of it within your applications. You will learn how to program WPF in C#, and become familiar with the various class libraries that make up the framework. You will also get to know Extensible Application Markup Language (XAML) and combine it with procedural code to build compelling client applications that can be deployed to the desktop or run in a browser. Building real-world user interfaces often involves complex layout and arrangement of visual elements. WPF offers several layout panels which automate the positioning of child elements, saving you a great deal of time and effort. You'll learn how to configure layout panels in XAML for stacking, wrapping and docking controls and to fine-tune their position and spacing. You'll also learn how to leverage styles and resources to create consistent user interfaces.
Introduction to Entity Framework 4.0
While LINQ to SQL is restricted for use with SQL Server 2000 or later, the Entity Framework can be used with other relational databases, and it includes a powerful mapping engine to help insulate your application from changes to the database schema. This topic includes an examination of the Entity Framework architecture and how to retrieve data using high-speed data readers. We'll survey the many new features available in version 4.0 of the Entity Framework, such as support for POCOs (Plain Old CLR Objects), customizable code-generation templates, deferred loading of related entities and options for change-tracking.
The NoSQL Movement, LINQ, and MongoDB
Learn how to leverage MongoDB to build .NET applications using LINQ as the data access language. This session will introduce the ideas around the so-called NoSQL movement. We will examine one of the up and coming open source databases called MongoDB. From there we will build out a .NET application using LINQ and MongoDB in a series of interactive demos using Visual Studio 2010 and C#. We will also be covering the NoRM LINQ to MongoDB library in our demos.
ASP.NET MVC Introduction
This release of .NET sees the inclusion in the core framework of the ASP.NET MVC framework. Platforms such as Ruby on Rails have shows that Model/View/Controller (MVC) is a highly productive and very testable pattern for building web applications. In this module we look at the basic anatomy of an MVC application, looking at models, views and controllers. We also show how data binding fits into this world and how the MVC infrastructure maps requests on to controllers using the Routing infrastructure.
ASP.NET MVC: Beyond the Basics
Having introduced the core concepts of the MVC framework we look now at integrating AJAX functionality into your MVC applications, how you can build REST based services on the framework and how you build reusable components, similar to custom controls that fit with the MVC model.
Workflow 4.0
Windows Workflow Foundation (WF) is a library for enabling the scripting of a set of processing steps in a declarative way. It also supports long-running execution of these steps with an automated persistence engine. For version 4.0, WF has been rewritten to provide a more flexible and robust infrastructure for building your applications and services. The performance has been significantly increased and the development and deployment options enhanced. In this module we introduce you to the new workflow infrastructure and tools and show you how to build power applications on the workflow platform.
Workflow 4.0 Services
One of the main goals of the new version of workflow was to establish a platform for building WCF services in a declarative way. This also allows a rich and transparent model for taking existing services and composing their functionality to produce composite services. This module shows you the new messaging activities, how they can be used to define service contracts and how long-running execution is enabled by a message correlation model that allows new messages to be routed to existing running workflows.
Advanced WPF: Data Binding and Design
.NET 3.0 introduces a new facility for managing connections between components and data. Through this mechanism, you can minimize the procedural code required for your applications. You will learn about the new data-binding system and how it works, and also examine how to bind to collections of objects and to control their appearance through data templates.
Visual Studio 2010
This module takes you through the features introduced in the new release of Visual Studio. This release brings big changes to many features. The code editor itself is now based on WPF which not only allows smooth zooming of the code without altering fonts but also new ways of templating the code to render differently in the code editor (for example comments within an embedded form in the editor). We also have new refactoring support to better aid test driven development, new modeling tools and improvements to the unit testing and debugging experiences.
Multi-touch (WPF, Silverlight, and iPhone / iPad)
This session will explore building touch-based applications using many of the modern frameworks including WPF, Silverlight and Apple's iPhone/iPad platform.
Introduction to jQuery
jQuery is a popular open source JavaScript library used to enhance AJAX style web pages and improve developer productivity. We will introduce the query and document manipulation capabilities of jQuery.
N-Tier Applications with Entity Framework 4.0
Entity Framework 4.0 ships with a T4 template (T4 is a code-generation mechanism built into Visual Studio) for generating "Self-Tracking Entities." These are POCO classes which reside on the client without any reference to the Entity Framework but which know how to track their own change state while remaining ignorant of any specific persistence technology. Here you'll learn how to build a service-oriented application based on sound architectural guidelines and best practices.
WCF Data Services:
WCF Data Services combines patterns and libraries that enable any data store to be exposed as a flexible data service. These data services integrate naturally with the Web and can be consumed by Web clients within a corporate network or across the Internet. In this module you'll learn to expose data to web clients as a REST-ful resource, addressable with URIs that clients can interact with using standard HTTP verbs, such as GET and POST.