# Monday, November 28, 2011
Monday, November 28, 2011 4:14:00 PM (GMT Standard Time, UTC+00:00)
# Tuesday, November 22, 2011

I have been President of the Great Lakes Area .NET User Group (GANG) for the past two years and Wednesday was the final meeting of 2011. At the beginning of 2011, the other officers and I sat down and defined some goals for the year. Here are those goals:

  • Cultivate Ownership In Group
  • Continue to Attract High-Quality Speakers
  • Support and Connect with other Area User Groups
  • Average 60 attendees per meeting
  • Increase supporting membership by 15%
  • Increase Monetary Sponsorship by 10%
  • Make it an event

I wrote about these goals early in the year and we displayed them at each 2011 GANG meeting. Today I'd like to review if and how we met each of these goals.

Cultivate Ownership In Group

This year, GANG had more volunteers helping out than ever before. In the future, I expect some of these volunteers will become officers of the group. In fact, Matt Ruma was elected the new Vice President this week.

Codeslingers - the monthly pair programming event that we started last year - has moved from a local coffee shop to The Epitec Group offices, giving them more space, more privacy, and more flexible hours.

Gerhard Weiss established the monthly DevLunch this year. Here members get together and socialize over a weekday lunch at the Troy TGIFriday.

The popularity of the post-user group social hour has also exploded. It's not uncommon for 30 people to come to Copper Canyon after a meeting.

Last year, we established Lightning Talks to give members experience at speaking and to share knowledge with the group. In 2011, the number of Lightning Talks more than doubled over last year.

The number of people with whom we are connecting has increased dramatically: In addition to the 625 people on our mailing list, our LinkedIn group membership has increased 84% and the number of our Twitter followers has increased 71% from a year ago.

Continue to Attract High-Quality Speakers

This is an area I'm particularly proud of because it's something GANG has always done very well, but we managed to take it to a new level in 2011. Below is a list of featured speakers at GANG in 2011.

Gary Short
Michael Eaton
Mike Amundsen
Charles Stacy Harris
Gus Issa
Jennifer Marsman
Brian Prince
Steve Bohlen
K Scott Allen
Richard Campbell
Leon Gersing
Josh Holmes,
Darrell Hawley
Bill Wagner
Richard Hale Shaw
Godfrey Nolan
Glenn Block

As you can see, there are many big names on this list. Speakers include Microsoft insiders, MVPs, Regional Directors, Book Authors, popular bloggers, and podcasters. We reached out beyond our geographic region this year and attracted speakers from 7 states (Michigan, Ohio, Kentucky, New York, Maryland, Massachusetts, and Washington) and 4 countries (US, Canada, Scotland, and Ireland). The presentations covered a wide range of topics from refactoring code, to the .NET Micro Framework to async features in the next version of C#.

Support and Connect with other Area User Groups

The first thing we did was to commit to attending other user groups. In 2011, GANG officers attended over 50 user group meetings this year, not included GANG meetings! I spoke at 12 different user group meetings in 2011.

This year, we came up with the idea of co-hosting meetings with other groups. The Greater Detroit Cloud Computing Group co-hosted the March GANG meeting, which featured Mike Amundsen speaking on RESTful Hypermedia. In January, we plan to co-host a meeting with the Ann Arbor .NET Developers Group.

This year, we offered our space and time to anyone looking to start a user group. We felt this would reduce the effort and risk involved in starting a group if it began as a Special Interest Group. The F# Special Interest Group and the .NET Micro Framework Special Interest Group both were hosted during our meetings in 2011. The F# Group has since moved to its own night and location.

Another way we collaborated with other user groups is by helping to organize user group tours for out-of-town presenters. Gary Short, Mike Amundsen, Richard Campbell, and Steve Bohlen all traveled to Michigan and spoke at more than one user group, including ours.

Average 60 attendees per meeting

In 2010, GANG averaged 54 attendees per meeting. We set a goal to modestly increase attendance this year. Our strategy included bringing in big-name speakers, promoting meetings via social media, and hosting a membership drive at which we gave away an Xbox 360 and Kinect.

Our strategy worked as we averaged over 82 attendees per meeting in 2011 - an increase of 52% from last year.

Increase supporting membership by 15%

We met and exceeded this goal, increasing supporting membership from 23 in November 2010 to 53 in November 2011. That's an increase of 130%!

Increase Monetary Sponsorship by 10%

This goal is difficult to measure because many sponsors pay for things without writing a check to GANNG. However, we received about $10,000 cash from corporate sponsors in 2011, an increase of far more than 10%. We are especially grateful to ComponentOne, New World Systems, TypeMock, The Epitec Group, Telerik, RedGate, and Plex Online, all of whom donated at our Platinum level.

Thanks to these donations (and those of our supporting members), GANG was able to upgrade the dinner served at every single meeting. Whether it was Chinese food, fried chicken, shawarma, barbecue, or a burrito bar, we didn't serve pizza at a single meeting this year.

Despite increasing the budget significantly, our end-of-year cash reserves were about double the level of a year ago.

In addition to cash, sponsors such as Telerik, DevExpress, ComponenentOne, and JetBrains paid the travel expenses of speakers, so they could afford to come speak at GANG. Most of these expense reimbursements were not included in the $10,000 mentioned above.

We also continued to receive books, software, and other prizes that we gave away at each meeting.

Make it an event

Last year, I heard someone describe GANG meetings as more of an event than a user group meeting. I took that to heart and we explicitly made this a 2011 goal.

It all started by bringing in some big-name speakers, such as Richard Campbell, K Scott Allen, Glenn Block and Gary Short.

It culminated with our October meeting - an all-day event featuring 6 presentations by those who built GANG.

We designated several special meetings: A membership drive; and a food drive. The food drive was so successful that we are probably going to hold one every year.

We also included some fun things for our members, such as creating music videos to show during meetings and trivia contests to give away some of the swag.

We have one or more volunteers at each meeting designated as greeters, making sure members feel welcome and get a name badge.

Finally, we recorded most of the 2011 presentation and made them available on our web site.

Declaring Success

Overall, 2011 was a very successful year for GANG. We exceeded all our goals for the year and feedback from attendees was overwhelmingly positive. I often hear people pointing to GANG as a success story in growing a user group. I’m very proud of what my fellow officers and I were able to accomplish this year. I love that so many people got so much out of GANG; I love that people keep coming back; I love that they tell their friends and co-workers about GANG; and I love that other user groups draw on us for ideas and inspiration.

I'm looking forward to more success in 2012.

Tuesday, November 22, 2011 12:35:21 PM (GMT Standard Time, UTC+00:00)
# Monday, November 21, 2011
Monday, November 21, 2011 4:25:00 PM (GMT Standard Time, UTC+00:00)
# Friday, November 18, 2011

Some days, weeks, and months are busier than others. This past 21 days have been hectic. Here’s a quick recap:

On Saturday October 29, I spoke at the Ann Arbor Day of .NET. the following day, I flew to Las Vegas to attend DevConnections, where I mostly absorbed knowledge from smart people, but also facilitated an open spaces discussion on managing user groups. I returned home from DevConnections Friday November 4 and spoke the next morning at 1DevDayDetroit. Thursday November 10, I presented at the Southeast Michigan SQL Server User Group. The next week was even busier: I spoke at the Northwest Ohio .NET User Group Tuesday and at the Detroit Area FoxPro User Group Thursday; and I hosted Glenn Block while he was in town to speak at the Great Lakes Area .NET User Group (which I hosted) and a presentation at Domino’s Pizza Headquarters (which I arranged).

So there it is: In 21 days, I presented at 3 users groups and 3 conferences; hosted an out-of-town speaker; ran a user group meeting; arranged a Lunch and Learn for a vendor; facilitated an open space session; and attended a 4-day conference. This, in addition to my day job. And my family. And my sleep.

Although I love participating in the community, I generally try to pace myself better than this. The dangers of overextending are I may do a mediocre or poor job on some or all of these commitments; I may neglect my day job as I spend excessive time and energy on my community commitments; my health may suffer due to lack of sleep; I may be come overwhelmed and start thrashing because I don’t know which of the many open tasks I should start. Obviously, these are all bad things that can result from a good thing (community involvement). But if one successfully pulls off a hectic stretch of 3 weeks, the feeling of relief and accomplishment is considerable. That’s where I am now. But I could sure use a nap.

Friday, November 18, 2011 5:23:28 PM (GMT Standard Time, UTC+00:00)
# Monday, November 14, 2011
Monday, November 14, 2011 4:26:00 PM (GMT Standard Time, UTC+00:00)
# Friday, November 11, 2011

Earlier this year, I co-authored the book Real World .NET, C#, and Silverlight, along with 14 other Microsoft MVPs. Although the printed edition won’t be available for a few weeks, I came home last night to find a box containing 5 copies sitting on my front porch. I’m very excited to see my name listed as a book author for the first time. I wrote Chapter 1, which covers ASP.NET 4 and jQuery. Most of my chapter covers the use of ASP.NET MVC. The book is published by Wrox.


The other authors and the topic they covered are

Author Topic
Bill Evjen ASP.NET Performance
György Balássy Ethical Hacking of ASP.NET
Gill Cleeren How to Build a Real-World Silverlight 5 Application
Jeremy Likness Silverlight — The Silver Lining for Line-of-Business Applications
Daron Yöndem Tips and Tricks for Designers and Developers
Kevin Grossnicklaus MVVM Patterns in Silverlight 4
Alex Golesh Windows Phone "Mango" for Silverlight Developers
Christian Weyer Pragmatic Services Communication with WCF
Dominick Baier Securing WCF Services Using the Windows Identity Foundation (WIF)
Jeffrey Juday Applied .NET Task Parallel Library
Vishwas Lele The WF Programming Language
Christian Nagel Practical WPF Data Binding
Scott Millett Driving Development with User Stories and BDD
Caleb Jenkins Automated Unit Testing

The Kindle edition is available today from Amazon. The paperback edition can be pre-ordered today and will be available November 29.

Friday, November 11, 2011 7:29:24 PM (GMT Standard Time, UTC+00:00)
# Monday, November 7, 2011
Monday, November 7, 2011 4:24:00 PM (GMT Standard Time, UTC+00:00)
# Saturday, November 5, 2011

This morning, I returned from the DevConnections conference in Las Vegas. DevConnections is actually many conferences held simultaneously at the same venue. I signed up for the a pre-conference HTML5/CSS workshop and for the ASP.NET Connections conference, although I did take in some talks from the Visual Studio Connections track.

This was my first time at a large conference like this, unless you count the FoxPro DevCon conferences I attended 20 years ago. I learned a great deal and was able to connect with a lot of the thought leaders in the industry. I attended Keynotes, sessions, open space, vendor Expo, and the aforementioned workshop.

My trip was enhanced by speaking with some of the smartest people in the software industry. I had a chance to meet and talk with a number of people whose writings and other work had helped and influenced my work over the years, including Mark Minasi, Julie Lehrman, Scott Hunter, and Stephen Walther. I also got to know much better some people I had met in the past. I really enjoyed the time I spent with Suzanna Moran, Paul Litwin, and Joe Guadagno. Of course, I also reconnected with old friends like Jim Holmes, Brian Prince, Seth Juarez, and Kevin Griffin. I met and interacted with many others and I hope they are not offended that I didn’t list them here.


I’m still  trying to process everything I learned and I’ve already committed to deliver an HTML5 presentation at Sogeti. In the meantime, here are the notes I took at some of the sessions I attended:

HTML5 & CSS3 Bootcamp for ASP.NET Developers
Todd Anglin, Microsoft
I thought I had a pretty good idea what HTML5 was, but Todd Anglin dove deeper into areas that I barely understood. He packed a ton of information into this 6-hour workshop.
He covered a lot of the new semantic markup tags and attributes;

He spent quite a bit of time talking about JavaScript APIs to access the new features of HTML5. Then he covered CSS3, which eliminates the need for much code and complex CSS in order to achieve some stunning visual effects.

Keynote: Evolving To The Cloud
Steve Fox, Microsoft
Theme = Data, Services, UX
Steve jumped around a lot in this presentation.  He described in general terms the power of the cloud; then invited others on stage to demo these concepts.
Scale up: Task Parallel Library
Scale Out: Job Scheduling algorithm to distribute workload across multiple nodes
"The Internet of Things": Communication between .NET Micro Framework code deployed onto a small device with sensors, communicating with Azure, which can process and analyze that information.

New features in VS11
-new sharepoint item templeate (Silverlight web part; List)
-Auto publish to SharePoint
-Color picker
-HTML: Auto-update end tag when begin tag is changed
-Support for CSS3 styles

Office 365
-Admin portal to manage user security
-SharePoint online

Windows 8: A Reliable Windows, Equipped with Charm — or, Rather, Charms
Mark Minasi
Mark pretended to be a visitor from the future, reviewing the impact of Windows 8. (His most scary future revelation was that in April 2014, Microsoft extende support of Windows XP for the next 5 years).

After decades of Win32, those apps simply don't work. WinRT.
Windows Server 8
-Server 8 will give the ability to turn the GUI on or off.
-Server Manager is Powershell under the hood. Doesn't emit Powershell but does emit XML, so you can configure one server like another.
-2300 Powershell commandlets
-NIC Teaming. Works with cheap NICs.
-DNSSEC. Speedier configuration in Win8. Secure DNS or AD.
-DHCP knows about clustering.
-IPAM (IP Address Manager) keeps track of static addresses
-DirectAccess. Much faster setup configuration.
-DCPROMO replaced by Powershell commands
-Domain Controllers work better as VMs
-Active Directory Users and Computers (ADUC) retires.
-Dynamic Access Control steps up (claims-based auth)
--e.g., Only those users with title="Doctor" can access files tagged with "MRI".
--Can add 'and' and 'or' rules
-Active Directory will manage keys. No need for Key Managment Server (KMS)
-Disk deduping. Eliminate duplicate files, even across network.
-Less RAM required because Win8 dedupes RAM.
-CHCKDSK is less intrusive. Runs in background to find problem areas; Doesn't always require unmounting a drive to fix problems.
--Host can support 2TB of RAM
--Each VM can ahve 512GB of RAM

Windows 8
-Start menu => Start screen
-Minimum resolution=1024x768 (recommend 1366x768)
-Asynchronous commands
-Charms. Related to contracts. Allows apps to communicate with one another.
-Hyper-V on Windows 8 desktop
-Wi-Fi Direct. Connect 2 PCs.
-Windows To Go. Save Win8 on a USB drive & boot from it.
-Reset. Installs Windows. Leaves apps & data.
-Refresh. Resets everything to factory settings.

Delivering Breakthrough Insight with SQL Server 2012
Kamal Hathi, Microsoft

Power View
-BI Tool
-multiple axes (e.g., size of data points in scatter diagram)
-Use gestures to sort
-Image recognition to determin search / filter criteria
-Graph animates to show trend over time

Visual Studio
-New project
-Filter 2 billion rows in less than 1 second

Top 20 NuGet Packages that a Web Developer Should Know
Scott Hanselman
install-package <packagename>
ELMAH. "TIVO for ASP.NET errors"
HTML5Setup. Video, audio and font setup. Updates web.config
Entity Framework
Running your own nuget server
-Copy packages into a shared folder. Change Visual Studio settings to add that folder
install-package nuget.server
  Creates a service that acts as a nuget server

Bigger, Faster, Stronger: Optimizing ASP.NET 4 and 4.5 Applications
Mads Kristensen
gzip compression
<Cache ... cacheControlCustom="public" />
  Allows proxy servers to cache.
Image Optimizer. VS extension. Adds menu item; Tools | Optimize images.

WebMatrix 2: Love the Web Again
Scott Hunter
Starter site
Uncomment in web.config to enable Twitter, Facebook


New in WebMatrix 2
-Full support for HTML5
Validation.RequireFields("firstname", "lastname");
Validation.Add("age", Validator.Integer);

Developer Preview: Deep Inside the Microsoft Stack of Love
Scott Hanselman

Markup mode
-click on server controls to see dialog box
-HTML5 support. Intellisense and new attributes of controls that emit HTML5


C# Design Patterns
Seth Juarez

Decorator pattern
  Extend without extending
  i.e., Extend without subclassing
  Power of decorator pattern is that you  can chain decorators

Proxy pattern
   if (_foo == null) {_foo = new Foo();}

Bridge pattern
  Bridge vs Decorator:
   Bridge does not implement interface
    Cannot chain
    Bridge allows you to inject functionality

Entity Framework Validation
Julie Lehrman



Not called explicitl.
Called automatically on savechanges()
Can override

Keynote: The Future of Software: NUI: A New Genre of UX
Tim Huckaby

Mostly videos of cool things being done with .NET
Windows 8: Metro vs Desktop. 2 modes exist side-by-side but don't communicate.
Windows Build architecture diagram showed .NET as a tiny square. Misleading. .NET is a major player in Windows 8.
Virtual objects interacting with other virtual objects
Virtual objects interacting with real-world objects
Hardware allows you to manipulate software by thinking.

Functional Programming in C#
Oliver Sturm

Currying (Haskel Curry)
Convert a function w/ multiple params into a chain of 1-param functions. Each fn returns a fn.

Create a new function to combine 2 functions

Function Construction
Creating functions out of existing functions
e.g., composition

DevConnections 2011 Photos

Saturday, November 5, 2011 9:24:10 PM (GMT Standard Time, UTC+00:00)