Dennis Burton's Develop Using .NET

Change is optional. Survival is not required.
Tags: community

Several years ago Jay Harris (a friend and co-worker) and I decided to start attending some of the local .NET user groups both to increase our skills and make some connections. Of course, we both came up with excuses every month as to why this was inconvenient. But, we eventually pushed each other into going. I need to say “Thank You” to Jay for continually pushing me to be better at what I do.

After a few months of going the Greater Lansing .NET user group and many conversations about what we worked on, Jeff McWherter started convincing me that I had something valuable to contribute. At first, I blew this off and sat happily listening to the presentations. Those of you that know Jeff know that he was not going to let this go. Jeff continued to encourage me to get into speaking. I need to say “Thank You” to Jeff for opening my mind to giving to the community instead of just taking. The impact this has had on me cannot be measured. Community involvement is what led me to a different job where I actually spend time with my family. It is really hard to overstate how important this is as a turning point for me.

A year or so later, I started working at SRT Solutions. SRT is a unique organization that not only encourages keeping with the latest technologies and sharing what you have learned with the broader development community, they also allocate time to accomplish this task. As an example, this year I taught at 4 Windows Azure Boot Camps. Two of these events were in cities that included a day of travel. Combine that with the preparation time and you have about two weeks of time that SRT has invested in allowing me to teach others about something I am passionate about. I need to say “Thank You” to Bill Wagner and Dianne Marsh for building the company that they wanted to work for. I can think of very few places that would have allowed for spending that much time on community, much less encouraged it.

This year the Microsoft developer evangelists from my region, Jennifer Marsman and Brian Prince, mentioned that they wanted to support me being recognized for all of my community related activities. Jennifer is always there to support events in our area. She has helped me put together two conferences, supports all of the user groups that I help out with, and has given me invaluable advice on many occasions. Brian put together the Windows Azure Boot Camps that gave me a platform to talk about what I love. I need to say “Thank You” to Jennifer and Brian for helping me broaden my community connections.

This morning I was greeted with an email that said:

Congratulations! We are pleased to present you with the 2011 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Windows Azure technical communities during the past year.

I need to say “Thank You” to Microsoft for allowing me the opportunity to participate in this program with a whole bunch of people that are way smarter than me. I look forward to the learning and connections that this will allow me over the next year.

Tags: community | speaking

This weekend I had the pleasure of presenting at Cloud Dev Day Detroit on the topic of migrating an existing application from on-premises to fully hosted on Windows Azure/SQL Azure. I presented an hour long session that had a significant amount of its content dedicated to demonstrating the process of migration. The heavy demo content was important to me as I did not want the audience to see another high level overview that day. I wanted to show real code!

This could go really bad

I decided to check out the internet connection early in the day to see how it would perform with a couple hundred of my closest geek friends checking twitter on their phones. It turns out the speed of the internet connection at the conference was exceptional. However, port 1433 was blocked. This is the port that is used to communicate with a SQL Server(including SQL Azure). A good portion of my demos were based around migrating from a local SQL Server instance to SQL Azure. You might think this was going to go very bad.

The good news

The day prior to the event when I was practicing for my demos (as every speaker should), I fired up Camtasia and recorded all of the demos I planned to give. I originally did this as a way for me to see how they played back and how the pace was for the talk. Having these recordings available for the conference saved my bacon! Not only did it save my bacon for items I was planning on doing live, but I was also able to show more than one deployment to the Windows Azure environment. With the editing tools in Camtasia, I was able to reduce 15-20 minute deployment process to just over a minute. I believe this made for a better experience for those attending this talk.

What do you think?

Does a recorded demo reduce the speaker’s street cred? Is a recorded demo better than the inevitable typos and demo demons that pop up during a presentation? How would you leverage this tool?

There are several Boot Camps that will be available in this area. Do you need some justification for yourself or your boss? Check out this feature list:

  • They are focused on the latest technology, so you can work on updating your skills.
  • They are hands-on. Bring your laptop with you to these events, work with your own environment, and keep the applications you were working on for reference in the future. I tend to remember new information much better with my hands on the keyboard than with my eyes forward to a presenter.
  • The cost cannot be beat. These events are free to get into, and they are local so travel expenses are minimal.

Azure Boot Camp

Windows Azure Boot Camp is a two day deep dive class to get you up to speed on developing for Windows Azure. The class includes a trainer with deep real world experience with Azure, as well as a series of labs so you can practice what you just learned. You can obtain a free 30-day pass for Azure at these events. Don’t forget, if you are a MSDN subscriber, your subscription comes with Azure benefits for 8 months!

Windows Dev Boot Camp

For the WIN: Windows Development Boot Camp is a one-day deep dive class on client development. The event covers developing for Windows 7, Internet Explorer 9, and Silverlight 4 out of browser. The class includes a trainer with deep real world experience presenting content, as well as a series of labs so you can write some code and practice what you just learned. Web and cloud may be all the rage, but many developers are still doing hardcore client development. If you are among them, this Boot Camp is for you!

Get Connected – Stay Informed

This is just a taste of what the development community has to offer in this area. This year’s regional conference season is just getting started, so stay tuned in to your local user group for more information on upcoming events and regularly scheduled presentations packed with great technical content.

Tags: community | patterns | tdd | testing
I will be presenting items from the PatternsInTesting series as well as some additional content in the Test Driven is Driving me Insane talk at the Great Lakes .net User Group on 3/18/2009 and at the Northwest Ohio .net User Group on 4/21/2009. This has been a really fun talk so far and I have enjoyed the conversation it generates. Stop by if you can make it.

Tags: community | patterns | tdd | testing

I will be presenting items from the PatternsInTesting series at the Greater Lansing .net User Group Flint meeting. I was compelled to put this blog series and presentation together to address the pain many organization experience when trying to include automated testing into their development process. The content is based on the insight and lessons learned that I have picked up by experiencing the same transition in multiple organizations. Participants in this presentation will walk away with tools for writing more effective tests and how to better identify issues in tests.

Tags: community
The keynotes from PDC are always packed with information on the direction of tools from Redmond over the next couple years. If you are not going, you may be thinking, "I will download the videos when they are available." This year there is a better option. Join us at the SRT offices in Ann Arbor. After the keynotes, and realistically during, talk with developers in the local community for an even better understanding of the impact of these announcements. Microsoft will be sponsoring lunch for this event.

Remote Viewing & Discussion of the Ray Ozzie Keynotes
Monday, October 27, 11:30a-2:00p - Register
Tuesday, October 28, 11:30a-2:00p - Register
SRT Solutions
206 S. Fifth Avenue, Suite 200
Ann Arbor, Michigan 48104



Tags: community

I would like to thank Micheal Eaton for kicking off this meme. I have enjoyed many hours reading the responses. But, now I feel guilty for not having put up my response sooner.

How old were you when you started programming?
At 9 years old, my parents bought me the Intellivision computer. I spent many hours re-typing sample code and tweaking it.  This was the same timeframe as the VIC-20. I had a friend with one of these. We would trade the sample programs and have to modify them to work on a different system. This was probably more PEEKing and POKEing than a kid should have been doing.

How did you get started in programming?
The hook for me was a downhill skiing game on the commodore. Somehow, I managed to find the collision detection portion of the code. After a bit of modification, no one could touch my record time. hehe. Of course, I put the collisions back in once my time was set. Exposure to that level of ego gratification at that young age was just dangerous.

What was your first language?
BASIC

What was the first real program you wrote?
As an intern, I wrote a set of shell scripts that set up a clean AT&T System V Rel 3.2 System with all of the hardware that was attached. This included serial port extenders, terminals, and printers as well as other hardware. I was much like plug and play for Unix in '91. It shaved about 90% of the setup time on one of these systems. A few months later an AIX version was created. That was the first time I realized that even people I looked up to could be interested in my unusual approach to an existing problem.

What languages have you used since you started programming?
I'll only mention ones that have been used professionally. bsh,csh,CADOL (oh boy don't ask), C, 8086 asm, C++, VB, Java, C#, Ruby, and PowerShell.

What was your first professional gig?
I had an internship at Versyss. There I worked on the previously mentioned script, some minor enhancements and was general gopher. My first full-time gig was at EDS with GM as a client. I worked on Automotive Diagnostic software. This is still some of the coolest stuff I have done to date.

If you knew then what you know now, would you have started programming?
Absolutely. This in one of the few industries that you can really solve problems in just about any business space. If you are bored it is your own fault.

If there is one thing you learned along the way that you would tell new developers, what would it be?
Never, ever take the golden handcuffs. There is too much enjoyment in this industry to get stuck doing something you don't like because you can't leave. This really relates much more to how you handle your personal finances than what job you take. Do that right, and you have many more options available to do the things you want to do.

What's the most fun you've ever had ... programming?
There are really many to choose from. Almost all of them have been off project or black ops. There is something about solving a problem you are interested in using an approach that you enjoy. I find that things developed in this space end often end up having a lot of value.

Tags: community | powershell

At this months GLUGnet Flint meeting, I will be giving a presentation on PowerShell. What drove me to put this presentation together is all of the recent conversations I have had about PowerShell. It seems to be one of those topics that developers intend to look at but never really get to. This presentation starts from the ground up to several real world examples that have come up in my work environment. I sincerely hope that after this meeting those that have not used PowerShell yet will walk away with another tool in their arsenal.

Hope to see you there.

UPDATE: Adding files and ppt

glugnet.zip (89.02 KB)

Tags: CodeRush | community | programming | tdd

One of the things I really enjoy about the local developer groups is the sharing of ideas and usage patterns of common tools. At tonight's Ann Arbor .net Developers Group, the topic of CodeRush templates came up. I commonly use a set of templates centered around the Rhino Mocks framework As I was describing these templates Jay Wren claimed they should be posted. The irony in that is the first time I saw someone using CodeRush was in a presentation Jay was giving on IoC. As a result of that presentation, we are using Castle Windsor in our application and CodeRush as a productivity tool. 

Creating a Mock Instance

To use Rhino Mock to create a mock instance, you write something like:

MyType myType = (MyType)mocks.DynamicMock(typeof(MyType));

This is an exceptionally redundant exercise that just screams for a Template. The core part of the template takes a string from the Get string provider (named Type) for the type of the instance to create. It will also name the variable with the same name as the type with a slightly different format. Even though this variable name is a linked field, you can break the link by pressing Ctrl-Enter while the cursor is on the variable name. This is commonly required in when creating multiple mock instances in the same scope.

#MockInstance#: Base template not intended to be called directly

«Caret»«Link(«?Get(Type)»)»«BlockAnchor»«Link(«?Get(Type)»,FormatLocalName,PropertyNameFromLocal)»= («Link(«?Get(Type)»)»)mocks.DynamicMock(typeof(«Link(«?Get(Type)»)»));

mk: the type name is initialized to MyType

«?Set(Type,MyType)»«:#MockInstance#»

mk\: the type name is initialized from the Clipboard

«?Set(Type,«?Paste»)»«:#MockInstance#»

Setting up the Tests

The mock instance templates are not much use without having the MockRepository set up and test methods to call. These templates come in handy as well.

mtf: the test fixture

[TestFixture]
public class «Caret»My«BlockAnchor»Test
{
 private MockRepository mocks;

 [SetUp]
 public void Setup()
 {
  mocks = new MockRepository();
 }
 
 «Marker»
}


mt: the test

[Test]
public void «Caret»Test«BlockAnchor»()
{
 «Marker»
 mocks.ReplayAll();
}

Hopefully these templates will be found useful and maybe even kick off some ideas for new ones.

UPDATE: Yea, it would be easier if I added the export file.

CSharp_Custom.xml (12.45 KB)

Dennis Burton

View Dennis Burton's profile on LinkedIn
Follow me on twitter
Rate my presentations
Google Code repository

Community Events

Windows Azure Boot Camp Lansing GiveCamp