Pgh.NET: Dissecting – A Look at a Real World .NET MVC Implementation

Tuesday, December 8 | 5:30 – 7:30 p.m.
This event is free, please RSVP.

Join us for our next PGHDOTNET meeting on December 8, 2009, at 5:30 p.m. at the Microsoft Offices on the North Shore. Steve Andrews will present on Dissecting A Look at a Real World .NET MVC Implementation.

The ASP.NET MVC Framework provides a powerful Model View Controller (MVC) approach to building web applications, and provides separation of concerns, increased testability, control over HTML output, and intuitive URLs. We will start by looking at building a model framework with LINQ to SQL, including validation and model binding. Then, we'll explore a custom generics-based repository and services implementation. Finally, we'll tie it all together with a look at Views and jQuery.

Sponsored by:

Microsoft Donates the ASP.NET Ajax Library Project to the CodePlex Foundation

November 18, 2009. CodePlex Foundation Announces Creation of First Gallery, Acceptance of First Project
ASP.NET Open Source Gallery, ASP.NET Ajax Library Project first proofs of Foundation model

The CodePlex Foundation today announced the creation of the first Foundation project gallery, the ASP.NET Open Source Gallery, and the acceptance of the first project into that gallery, the ASP.NET Ajax Library project. The gallery and project were evaluated for acceptance using the Foundation's Project Acceptance and Operation Guidelines, first published October 21, 2009. The gallery and project are supported by Microsoft, the Foundation's founding sponsor.

"Bringing the first project gallery and project into the CodePlex Foundation shows significant progress against our 100 day goals," said Sam Ramji, Interim President, CodePlex Foundation. "The ASP.NET Ajax Library project is important for its great value to both the open source and commercial software worlds, and the Foundation is the best forum in which to shepherd its future development."

Gallery and Projects

The ASP.NET Ajax Library consolidates ASP.NET Ajax and the Ajax Control Toolkit into a single open source project. The Ajax Control Toolkit and Ajax Libraries, components of many web development strategies, make it easy for developers to use the Ajax programming model in their websites and web applications.

The ASP.NET Ajax Library project will be released under a BSD license and can be used with many technologies, including, but not limited to ASP.NET, PHP and Ruby on Rails. Future development of the project will be done within the ASP.NET Open Source Gallery under the aegis of the CodePlex Foundation.

The CodePlex Foundation Gallery Model

The CodePlex Foundation in October announced an innovative gallery sponsorship model that uses museums as a design pattern. The organizational structure divides the Foundation into galleries – collections of thematically related projects – which benefit from a common set of services provided by the Foundation.

Galleries may be sponsored by a third-party organization, e.g. a commercial software company, or run by the Foundation. Galleries will rely on Foundation staff and volunteers to provide a set of support services, including administration, security, best practices and marketing.

About the CodePlex Foundation

The CodePlex Foundation is a not-for-profit foundation created as a forum in which open source communities and the software development community can come together with the shared goal of increasing participation in open source community projects. For more information about the CodePlex Foundation contact

Google Apps Email and Droid Phones

My dad bought a Motorola Droid, and has a custom domain email account hosted by Google Apps.  In order to activate the Droid, you must have a GMail account (much the same as you need an iTunes account to activate an iPhone).  Even though Google Apps email is hosted by GMail, a Google Apps email account can not be used to activate an Android phone—you will still need a GMail account.  The Verizon rep had to create a dummy account for my dad just to get the phone turned on.

I did send an email to Verizon’s tech support, and here was the reply:

An email hosted by Google apps for domain would not be able to take the place of a gmail account.

So there you have it, straight from Verizon (kudos to VZW tech support for the less than 18 hour answer via both email and a voice mail).  After your Android phone is activated, you can use the Mail program (or preferably K9 Mail) to use your Google Apps email.  IMAP seems to be the recommended method, since Android is mentioned specifically in the IMAP setup, but POP3 would apparently work, too.

Here are setup instructions for the two protocols.



New Stuff in Silverlight 3

At the recent MSDN Mid-Atlantic Roadshow, Dani Diaz had a great talk on building connected Silverlight Apps.

Sample apps are found at

Performance improvements in Silverlight 3

A binary message encoder has been added that converts text into a smaller binary format.  This is seen in the XBox Live Friends sample app.


Since Silverlight runs in the browser, it it limited by what the browser stack allows to pass through.  Only data with a return code of 200 OK is displayed in the browser.  Other errors are displayed with a generic message, making troubleshooting difficult.  A new FaultException has been added, which allows you to wrap the error message in a valid return XML.  By enabling the ClientHttpStack, you can display debugging messages when there are issues.

Securing Services

In SL3, WS-Security credentials can be passed in the message header.  Make sure to use HTTPS and don’t enable cross-domain logins.

Duplex Services

New extensions have been added for "push” data, where the server can send data to the client without a request from the client.  lso, an AJAX library has been released for these same duplex services.

New ClientHTTP Stack

An updated WCF REST toolkit for searching public APIs.  One feature of the toolkit adds a menu item where POCO can be created directly from XML in the clipboard (this used to involve several steps and a command line utility).  The POCO can be used to directly databind to controls.  The toolkit is found at

Installing PHP on Windows 7/IIS 7 with Windows Platform Installer

Download the Web Platform Installer from  Must do this when connected to the Internet, since the installers download the latest components from the web.  You also need to install PHP before you install the PHP-based applications, too.

After you download the small installer, run it, and you’ll see an Open File warning.  Click Run to continue, and the installation will begin.



At this point, you’ll receive a UAC warning.  Allow the WPI to install itself.


It was at this point I received an error on my first try (see below).  Upon retrying the installation, it worked.

Once the WPI is installed, it will update itself with the latest packages and components.  You’ll receive another UAC, and then you’ll see this window, where you can add components or apps.


To install PHP, select the Web Platform tab, then under “Frameworks and Runtimes” click Customize, then choose PHP from the list.


Click Install, and review the list of components that will be installed.


Click I Accept, and installation will begin.


After a few minutes, you’ll have PHP installed on your system.


Configuring Expression Web 3 for PHP

The PHP components are installed in c:\program files\php.  If you use Expression Web 3, you can configure PHP under Tools >> Application Options >> General, then browsing to the php-cgi.exe.


Testing the PHP Installation

To test your PHP installation, open the IIS Management Console and create a new application.  Inside of this application, add a file named test.php and with the following code in it:

Print "Hello, World!";

Load this file in your web browser, and if you see the message, you’re set to go!


Installation Error

The first time I ran through the installation, I received the following error:

The Web Platform Installer  could not start.  Please report the following error on the Web Platform Installer forum.

I checked out the Application Log, and that was no help:

Product: Microsoft Web Platform Installer 2.0 RC — Installation failed.

Before I went to the IIS forum, I tried to recreate the issue by running the installer again, and this time it worked.  So if you get this error, wait a moment and try it again.