IISExpress download (IIS Express 7.5)
If you are looking to download IIS Express, go here.
Jeffrey Palermo, Microsoft MVP, Author, Speaker, Clear Measure Chief Architect, Azure DevOps Expert
If you are looking to download IIS Express, go here.
This post is for all those signed up to attend Party with Palermo tonight at the MVP Summit in Bellevue, WA. If you haven’t already RSVP’d, you can do so on the website up until to arrive at the sign-in table.
Red Robin at Bellevue Square at 7PM http://bit.ly/ewEWAS
Because many of you have been to a Party with Palermo before, I wanted to give the rundown because this event is a bit different from previous ones.
Finally, I would really like to thank my sponsors. Without support with funding, Party with Palermo would be an unfunded meet-up without so much as a banner or a single free beer.
Corporate Sponsors:
Individual Sponsors:
Tim Rayburn, Sebastian Holst, Robin Shahan, Peter Kellner, Bonnie Berent, Jeffrey Hadfield, Deborah Kurata, Philip Japikse Bill Wolff, Rob Keiser, Brad Wilson, Andrew Nurse, James Bender, Joe Healy, Glen Gordon, Kevin Wolf, Betsy Weber, Joacim Andersson, Jonathan Wanagel, Tobin Titus, Nikita Polyakov, Bradley Foley, Steve Andrews
Since 2008, Headspring has refined and expanded its technical training offerings. In January of 2008, I sat down and racked my brain for how we could share the knowledge we had acquired building custom business software. The Agile Boot Camp is what I came up with. I designed and taught that course throughout that year.
It continues to be an intense, developer-focused 3-day training course which immersed the developer into the Extreme Programming practices, patterns, architecture, and the Software Configuration Management that is essential on a high-performing agile team. Leaving the fluffy process training to the Scrum folks, this course continues to immerse .Net developers into an environment where they can move quickly and deliver software fast!
In 2009, we expanded the offering with an ASP.NET MVC Boot Camp to provide a UI-focused developer course for web application developers. With several ASP.NET MVC book authors on staff, we are able to provide in-depth guidance on how to use the new ASP.NET MVC framework, not just how the API’s function.
With all of our training offerings, we apply our Headspring worldview, which is rooted in the 12 Agile principles and fine-tuned by the 15 Extreme Programming principles. Automated developer testing is pervasive, and streamlined build & deployment automation make software changes easy.
Mostly recently, we have begun our Software Craftsman Series, which is aimed at those who have a hard time taking 3 days from the demands of day-to-day work. At only 1.5 hours per week, we tackle essential topics to software development. In our opinion, these topics should be mandatory for all .Net developers. Though it is possible to learn some of this through books and personal research, we efficiently package it into 12 weeks of 1.5-hour sessions. This gives you time to digest and apply each topic throughout the week until the next class.
We have future plans to offer courses for:
We love getting feedback about our training products. We routinely ask current clients what they’d like to see next, and we would love to have your ideas about what would make these products attractive to _you_.
Take a look at all of our training offerings here: http://www.headspring.com/services/developer-training/
As a side note, Headspring is not a training company. We build custom business software for small & mid-sized companies. We also teach our client’s software developers how to do it and do it well. We have learned so much from the many projects we have completed, and training is a terrific outlet for sharing that knowledge. We train in our spare time, so we don’t have courses every week. Remember, we’re busy building software.
At MvcConf this Tuesday (2/8/2011), I will be hosting a Q&A session where YOU drive the content. This is a 100% virtual conference.
http://www.mvcconf.com/sessions/#palermo
Jeffrey Palermo
@jeffreypalermo
Most conferences are full of presentations with a little bit of Q&A at the end. This session is 100% Q&A, and YOU drive the content. I’ll take a few questions people have posed through twitter and my blog, but during the session, I will answer questions as you submit them. My hope is to provide real-world contextual advice by accessing ASP.NET experience since 2002 and ASP.NET MVC experience since October, 2007 and my research in ASP.NET MVC in Action.
Please comment on this post to pose a question I can answer during this session. I will also be taking questions via twitter.
RSVP now for Party with Palermo in Bellevue, WA. Sign up via http://partywithpalermo.eventbrite.com/.
Funds are more limited this year, so if you can help out with an individual sponsorship or rope your company into it, that would be great. Just purchase a sponsor ticket. We will stretch the funds to the limit at Red Robin and see how far they go! Be sure to enter an email address you actually check when registering because I will send out updates at the date comes closer.
PARTY WITH PALERMO

Don’t forget to sign up for the Party with Palermo newsletter!
Sponsors:


When downloading open-source projects, tutorials and other code, there is an initial reaction:
Obviously, the reader would appreciate the first experience. Here is one tip on how to turn a bad navigation experience into a good one. This is not the only factor, but it is one I have experienced.
This code is very simple in its own right, and it doesn’t take long to fully digest this class, but there are some improvements that can be made, and this file came from a very useful tutorial.
Let’s start with a simple class for a GuestBook app:
1: // ----------------------------------------------------------------------------------
2: // Title, something, something, something
3: //
4: // Copyright (c) Some Company. LICENSE TITLE
5: //
6: // THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
7: // EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
8: // OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
9: // ----------------------------------------------------------------------------------
10: // The example companies, organizations, products, domain names,
11: // e-mail addresses, logos, people, places, and events depicted
12: // herein are fictitious. No association with any real company,
13: // organization, product, domain name, email address, logo, person,
14: // places, or events is intended or should be inferred.
15: // ----------------------------------------------------------------------------------
16:
17: using System;
18: using System.Collections.Generic;
19: using System.Linq;
20: using System.Text;
21:
22: namespace GuestBook_Data
23: {
24: public class GuestBookEntry
25: : Microsoft.WindowsAzure.StorageClient.TableServiceEntity
26: {
27: public GuestBookEntry()
28: {
29: PartitionKey = DateTime.UtcNow.ToString("MMddyyyy");
30:
31: // Row key allows sorting, so we make sure the rows come back in time order.
32: RowKey = string.Format("{0:10}_{1}", DateTime.MaxValue.Ticks - DateTime.Now.Ticks, Guid.NewGuid());
33: }
34:
35: public string Message { get; set; }
36: public string GuestName { get; set; }
37: public string PhotoUrl { get; set; }
38: public string ThumbnailUrl { get; set; }
39: }
40: }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
I’ll outline some issues with this code file besides my partial violation of the license.
I will refactor this class and present what I believe to be a more easily digestible version. Here goes:
1: using System;
2:
3: namespace GuestBook_Data
4: {
5: public class GuestBookEntry
6: : Microsoft.WindowsAzure.StorageClient.TableServiceEntity
7: {
8: public string Message { get; set; }
9: public string GuestName { get; set; }
10: public string PhotoUrl { get; set; }
11: public string ThumbnailUrl { get; set; }
12:
13: public GuestBookEntry()
14: {
15: PartitionKey = DateTime.UtcNow.ToString("MMddyyyy");
16:
17: // Row key allows sorting, so we make sure the rows come back in time order.
18: RowKey = string.Format("{0:10}_{1}", DateTime.MaxValue.Ticks - DateTime.Now.Ticks, Guid.NewGuid());
19: }
20: }
21: }
22:
23: // ----------------------------------------------------------------------------------
24: // Title, something, something, something
25: //
26: // Copyright (c) Some Company. LICENSE TITLE
27: //
28: // THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
29: // EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
30: // OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
31: // ----------------------------------------------------------------------------------
32: // The example companies, organizations, products, domain names,
33: // e-mail addresses, logos, people, places, and events depicted
34: // herein are fictitious. No association with any real company,
35: // organization, product, domain name, email address, logo, person,
36: // places, or events is intended or should be inferred.
37: // ----------------------------------------------------------------------------------
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Here are the improvements:
This has been a quick tip. Hopefully you will benefit from this. I haven’t always thought about factors like this in software, but readability is very important. Code will be read MANY more times than it is written or modified.
If you get the following error:
Check to be sure that the expression being written to your page isn’t null. If it is null, ASP.NET doesn’t know what method to call.
On Feb 27, 2011, I will host another Party with Palermo. The location is TBD, but from 7PM-10PM, come on out and hang with other developer MVPs in a relaxed setting. Details are in the works, and the registration page will be coming online this month.
Get the word out to your friends now and make sure your flight schedule gets you to Bellevue so you can make it to the Sunday night party by 7PM.
Help me get the word out by retweeting this tweet.
In mid-2008, we began hitting web accessibility in a meaningful way. One of our projects was a law enforcement systems for some local government entities, and the requirement was there. We have used tools such as the WAVE toolbar for Firefox as well as developed our own tool for testing accessibility compliance for ASP.NET called NAAK: .Net Accessibility Analysis Kit. It’s free and open source. Go use it.
The US Department of Justice is planning some regulations around web accessibility, and it is quickly becoming a real requirement for web development. Individual programmers ought to be educated in this, but it is more important for company executives to know this is going on.
Please go read about it here.
This is a brief post about the core cloud services we use. Along with developing systems that run on cloud platforms, we make heavy use of them ourselves in the basic infrastructure of our company. Here is a quick list of the ones we depend on every day.
I will start by describing our current solutions to each of these needs. We are a professional services company. We help small & mid-sized companies compete by building custom software and automation solutions. By understanding the business model of our clients, we are able to help them executive their business strategy better. We are 100% owned and operated in Austin, TX, but we do have some clients in other parts of Texas. By working in the industry, we have developed expertise in many areas, and that knowledge and experience flows into our training program. Our consultants have laptops (Dell Precision dual-8x cores, 8GB RAM), and we are set up so that any of them can work for anywhere. We still perform all of our work from our custom offices at 4807 Spicewood Springs Rd in Austin, TX where the open environment fosters collaboration across projects and event across clients.
Since all but a handful in our company have computer & technical backgrounds, we have little need for a helpdesk. Our office network infrastructure consists of fast connectivity to the Internet and solid wireless access points. While we do have one server in the office for historical reasons, it is soon to move to the cloud. Because of this, we do not employ the use of Active Directory, Novell or any other domain/groupware. Each computer is a stand-alone computer. You could call it “workgroup mode”, but it is no different than just plugging in a computer and using it. This has kept our workstation overhead extremely low. All our important infrastructure is in the cloud.
The first cloud service I’ll cover is for email and calendaring.
We use Google Apps Premier Edition. It provides us the following services:
The email interface is Gmail, but a few elect to connect via Microsoft Outlook. Calendar is integrated, and we can schedule times and conference rooms according to everyone’s schedule. As of this week, we also have integrated Google Voice into the mix so that everyone has a public phone number instead of just and extension. For instance, you can call me directly through Google Voice just by using this little app.
https://clients4.google.com/voice/embed/webCallButton
We use a hosted SIP phone system through a local provider, PrismNet. These folks do the hard work of connecting the phone system to AT&T’s backbone here and getting the actual phone lines. They also maintain the phone system’s software upgrades, patches and operation. The only artifact in our offices are GrandStream GXP2000 desktop handsets. We can install and use any SIP soft phone we like, and we are also able to run SIP clients on iPhone and Android phones. Because it’s a phone system in the cloud, the mere act of taking a phone to another location and plugging it in makes the phone number/extension active. Our office network uses a Cisco Power of Ethernet switch, so the desk phones are powered through the CAT5 network cable, as are our wireless access points in the dropped ceiling.
All of our dev/test servers are at Rackspace Cloud. We run JetBrains TeamCity as our main build server software. It has flexible build agents, so the dashboard and main server is accessible from any location, but the build agents can be anywhere. We have a build agent at Rackspace Cloud as well, but we also power up any spare developer workstations we have, install the TeamCity build agent software, and instantly, we have more computing capacity to run builds for client projects. TeamCity also has Amazon EC2 integration, but we have not hooked that up yet.
Through Rackspace Cloud’s management dashboard, we can provision a server, and that server is up and running in under 10 minutes. Through daily backups, we always have a full image of that server for the last day. Each server is really VMware, and to create a new server, we can choose to create it from a backup image of another, so cloning servers is a breeze, and we only have to install server software once. Even starting from scratch, the operating system comes pre-installed, of course.
We, like many people, use salesforce.com. It allows us to keep track of our sales pipeline and opportunity workflow. It helps with contact information for prospects and a host of other things. We like it, and we are in the process of integrating it with Google Apps for shared contacts and automatic sales email logging.
My company writes software for the cloud, but it also runs on the cloud. With all the hype about cloud computing, it’s easy to discount the whole notion because of how it has been glamorized. For us, it’s not glamorous. It’s just how we do business. It makes our infrastructure reliable. It lowers our operating costs. It allows an employee to be productive if working from home because of a mild illness (we are extra sensitive to colds being passed around in the office because then it makes it home to children). Finally, it makes us portable. We moved office spaces at the end of July, 2010. We moved on a Friday afternoon, set up furniture on Sunday. Monday at 10am, all of our infrastructure was up and running because the only necessary thing was the Internet connection and monitor/keyboard setup. Phones worked automatically just by giving them an internet connection. It was a very low-cost move because of it. That is not a small consideration given that we will have to move again given the rate at which we are growing. Any infrastructure that must be physically installed will be costly to move in an office relocation.
To end, my goal was to merely share what we are doing so that others may benefit. I’d by happy to answer your questions through the comments. If anyone else has some commentary on cloud services you are employing, please chime in.