VSLive! Las Vegas Contact Us
The Mirage | Oct 13-17, 2008

Core .NET


Core .NET includes subjects that don't neatly fit into the other categories. Topics include F#, REST, Lambdas, Delegates, and Generics.

VLW6Win & Web App Installers with WiX
Benjamin Day
Wednesday, October 15 – 9:30 a.m.
You’re working on the killer app.  It’s going to make enough money so you can retire by the end of next year.  Only thing is it’s not practical for you to go “xcopy” it onto each of your customer’s machines.  You need an installer. 

The “Setup And Deploy” projects in Visual Studio are – well, let’s face it – kind of lame.  But then there’s WiX – Windows Installer XML.  WiX allows you to build real, actual, robust installers (aka. MSI’s) for your applications.  (And you can make them a part of your regular TFS Team Builds, too!)

In this session, Ben will show you the basics of creating WiX installers using Votive for your Windows and Web apps including creating uninstall shortcuts, writing registry settings as part of your setup, using custom icons, version upgrade logic, and more.  He’ll also show you how you can manage your application’s installation pre-requisites using the Bootstrap Manifest Generator.

VLTH4F#: The Business Case
Aaron Erickson
Thursday, October 16 – 8:15 a.m.
In this session, Aaron Erickson explains why functional programming in general, and F# in particular, are becoming relevant for mainstream application development in the wake of the multi-core revolution in today's CPUs. This talk includes discussion on business cases for F# projects, how to get started using F#, and a primer over the key differences between functional programming using F# and imperative programming using more traditional object oriented languages.

VLTH8Implementing RESTful Services With Windows Communication Foundation 3.5
Rob Bagby
Thursday, October 16 – 9:45 a.m.
As Service Oriented Architectures continue to take hold and the Software + Services strategy gains momentum, early evidence indicates growth in the implementation of RESTful architectures. Windows Communication Foundation 3.5 introduced the ability to implement services RESTful in nature. We'll introduce the concept of REST and cover some common development scenarios. These scenarios include consuming REST(ish) services via AJAX Clients, developing read/write HI-REST services and consuming REST services via Silverlight 2.

VLTH12Functional Re-Factoring: Leveraging Lambda Expressions and Generic Delegates to Add Clarity and Grace to Your Code
Richard Hale Shaw
Thursday, October 16 – 1:45 p.m.
Refactoring is the art -- and science -- of making incremental, step-wise changes to an existing Application, Code Base, Library or Method such that the outer behavior doesn't change after Refactoring, but the inner details are modified for a variety of reasons. Often, the latter include: introducing abstractions for allow for more re-usability; removing unnecessary plumbing details; reducing complexity; or, increasing extensibility. A good refactoring is one where: a change is made, the code is re-compiled and re-tested, and afterwards behaves as it did before, but the internal details are now changed for the better. You can introduce refactorings to improve class design, improve adherence to an internal model, and to define layers and APIs. In this session, Richard will demonstrate a number general of refactorings, but focus in particular on the application of functional programming improvements, using .NET 2.0 Generic Delegates and C# 3.0/.NET 3.5 Extension Methods. Along the way, you'll see how to create a Database Provider Factory that rivals the one supplied in .NET 2.0, and which will eliminate 50% (or more) of the plumbing required to use DataConnection, DataCommand, DataReader and DataAdapter objects in ADO.NET.

VLTH16Applied Generics: Powerful Abstractions You Can Use for Major Re-Usability
Richard Hale Shaw
Thursday, October 16 – 3:15 p.m.
What's your Re-Usability Threshold? Are you comfortable copy/pasting code -- or writing the same code -- over and over -- or would you rather write the code once and re-use it forever? Do you really want to create 20 versions of the same method -- where the only differences are a single operation or data type -- or would you rather define it once and re-use it forever? Do you really enjoy implementing calls to Control.Invoke when a secondary thread updates a form -- or would you rather define an Invoke method once and re-use it forever? Do you really like to write all the code needed to store values in ASP.NET Session State -- or would you rather write a State mechanism once, and use it forever? If you answered yes to the first half of each question, this talk isn't for you. But if Re-Usability is a value to you, come and find out the many ways you can use Generics. With all the noise over Generics the last 2-3 years, you'd think that they're really only for implementing type-safe collections. But Generics can be applied to a wide variety of scenarios that have little -- or nothing -- to do with collections.

In this session, Richard will start with a number of practical applications: a re- usable Session State class, a re-usable Winforms invoker, and re-usable event-raising. Then we'll move to the issues of designing Generic methods, and functional programming techniques with Generic delegates. We'll look at Best Practices such as Generic Class Design, and how to create new abstractions of your own. By the time we're finished, you'll have a number of practical solutions at hand, and ideas on how to create new Generic abstractions of your own.

VLTH20Open Source Tools Every .NET Developer Should Use
Javier Lozano
Thursday, October 16 – 4:45 p.m.
Wouldn't it be nice to assemble business applications quickly without reinventing the wheel? In this session, we'll use open source tools such as the Castle Project, NHibernate, log4net, NUnit/RhinoMocks and CruiseControl.NET to facilitate the building of business applications.

If you have ever been curious of how these tools can work together or want to know how you can use them within your existing projects, this session is worth checking out!