Matthew's profileSimplifying ComplicationBlogListsNetwork Tools Help
September 04

Visual Studio ASP.NET Development Server - “Internet Explorer cannot display the webpage”

I like to work at home, and my set up at home is almost at good as work, but due to less distractions it can be better. When I created a TFS workspace for my home computer (was Vista, now Windows 7), I got the latest source, built it, and all was good… almost. It did not run. We are building an ASP.NET application and when running under the ASP.NET Development Server (WebDev.WebServer.exe) I would get sent to this error page, which told me nothing useful about why it was failing.

Internet Explorer cannot display the webpage

This was irritating, but didn’t really bother me because I could work around it quite quickly. I opened the Web properties of the ASP.NET Web Application project (right click the project, select Properties and then the Web tab on the left) and set it to run from the Local IIS (Internet Information Services) Web server. The only issue this had was I must run Visual Studio as an Administrator since I have User Account Control (UAC) enabled, and I don’t get Edit and Continue.

Local IIS Web Server configuration 

Today however, this won’t do. Today I want to create a new workspace on my home machine to work on multiple unrelated things at the same time. Multiple workspaces is a great productivity boost, from reproducing issues locally in an unchanged environment, to running units tests or other long running processes and working on something else while they are chugging away. I do not want to create multiple virtual directories in IIS, although I could. One of the things I like about the environments I have set up, is that they allow virtually no configuration on any PC you want to use, as long as you have Visual Studio with Team Explorer, you are ready to develop. And our rich wiki requires OneNote and that is all. Both enable also enable working offline and starting new developers or changing PCs is very easy. I thought it might be related to UAC or the firewall, but after a quick look around and I found ASP.NET Developer server not working which lead to IE won't connect to asp.net server which had the solution. Opening up Notepad as Administrator (since I have UAC on) loading the C:\Windows\System32\drivers\etc\hosts file and commenting out the line ::1 localhost, restart only the browser instance that failed and all is working.

Notepad the hosts file opened

Now Visual Studio does not need to run as Administrator, I do not need to configure IIS, I can have Edit and Continue and multiple workspaces all running completely independently.

Visual Studio Development Server settings 

July 30

Automate, else Enforce otherwise Path of Least Resistance

These are my Three Principles of Pragmatic Process Establishment. From my experience, these are the only ways to successfully implement a process, no matter how much value it may add, or how simple it may be to follow. If these principles are not followed, neither will the process that has been put in place when it comes to the crunch.

Automate

Automation is the most desired and beneficial option. The benefits are obvious. If a process is automated the value-add from that process is gained, without extra effort from the team. For example, the simple process that developers should run the unit tests. The value is obvious. Errors are found earlier and higher quality code results. However, although this is a simple instruction to follow, running unit tests has blockers for many developers. Firstly, they take a long time to run. Secondly, not all are relevant to you. Thirdly, they may have environmental requirements you cannot or do not want to setup. This simple process also has a simple automation solution: have a continuous integration build server that runs all the tests for the developers on each check-in. All the benefits gained, and everyone will perform the process.

Another example is having developers log their time spent working against work items. Having developers do this is controversial (individual developers should never be measured, only the team as a whole), but the value is the schedule becomes very realistic and accurate based on actual burn-down rates. Time tracking is however, time consuming and error-prone. Developers tend to forget to record the time started, time finished and minus interruptions against each work item. The numbers are then fudged voiding all the value of the process. The automation solution utilized has been to use TFS Working On. The tool allows developers to very easily track their time, without wasting their time. The data is providing us with accurate reporting while dog-fooding our BI product.

Automated processes also have the benefit of accurate repeatability. If an installation package is fully created each build, the risk involved in following a multiple step process is gone. A typical Standard Operating Procedure (SOP) is usually a long manual process that is error prone, especially when under time pressure and reduces confidence in the end result, compared to an automated solution. Of course the negatives of this process implementation solution is that not everything can be automated, it may not work for all required cases or require ongoing maintenance, or may take a long time to implement.

Enforce

When Automation does not fit enforcement is usually the next best. The reason a process even needs enforcement is that it will most likely not be the easiest thing to do. There is much value in doing it, but not necessarily by the person doing it, or not at that time. The enforcement itself must be a physical enforcement, not a SOP document stating "thou shalt follow". By physical I mean generally technical. A document cannot be uploaded to SharePoint until it has certain properties set. Physical is like ballot papers must be folded, so they don't fit in the slot on the box, until they are folded.

In the development world check-in policies are one of the best examples of enforcement. Here you can define your coding standards, code reviewer, check-in comments and work item association for example. Having these particular policies helps maintain higher code quality and readability, easier searching of history, and better reporting. The danger of enforcement is going too far and having people overwhelmed with the number of hoops they have to jump through to get things done, making them feel inefficient and ineffective. Each process enforced must be reviewed occasionally to ensure it is still adding value, and if found to be less value than that of the time it costs, it should be dropped immediately.

Path of least resistance

When a process cannot be automated or enforced it must be the easiest way to get the task done. If not, it will require someone to be the Sergeant to enforce the process which itself is time consuming, error allowing, inconsistent and demoralizing. Essentially a path of least resistance process is very simple and value is seen clearly. It could however be artificially made the path of least resistance by making the other paths more difficult or less effective.

Using a wiki for team collaboration and information is a good thing and seems like a simple enough process to follow. However, most wikis require custom syntax for mark-up and uploading images is a pain. What I have seen happen is email is just used instead, since it allows simple rich text editing, inline images and the information is directly sent out to everyone right away. This is almost an acceptable process over the wiki, but distracting email threads tend to occur, important emails are overlooked and new employees cannot access the information. What we have implemented instead is Microsoft OneNote for our wiki. OneNote is a rich client application that automatically synchronizes all the content locally, is searchable including text in images, can show a list of recent changes if you want to follow what is happening and all sections show who modified it and when (still needs proper versioning though). It has become the easiest way to share information among the team, and is a great resource for new employees.

General Tips

Begin a new process with as little as possible. Do not start a new form with a large amount of mandatory fields. Grow them as the required. The process will have fewer blockers, less red tape with little perceived value, and get more user buy in.

Do not over analyze. Analysis Paralysis is state I now know I use to get stuck in. Do something. Keep it light, nimble and able to be adapted quickly as it matures.

Re-evaluate occasionally. Make sure you are getting value out of what the process is requiring people to do. If the cost is high and value is low, either look at how the cost can be reduced through automation or trim some of the fat of the process that is yielding low returns. If people are having trouble with the process, don't blame the people. Focus on smoothing out the bumps that are causing them to fall of the path.

Do not provide much documentation of the process. The process needs to be simple to follow and self documenting, i.e. each step points to the next. Documentation tends to be TAGRI and will either stop a process being nimble or quickly become out of date with the process. The best option for documentation if it is required is to have it automatically generated.

A good process will perform under pressure. Do not abandon it to save a penny now, because it should save you hundreds later.

July 04

Opera please compete, not complain

I really like Opera. When I need to do some browsing, I open Opera. It’s full featured yet not cluttered. Mouse gestures and the render speed make it very fast and efficient to do browse many things at once. However, the gap I find it has in speed and ease of use is closing. I still use Internet Explorer. It is set as my default browser. Opening links from emails or whatever, IE is just far more convenient. It feels lighter for the smaller tasks. And now with IE 8 on Windows 7, pinned web pages and frequently visited have an even lower barrier of entry.

image 

I wanted to know, before I install the beta, does Opera 10 make proper use of Windows 7 Jump Lists. How nice would it be if your Speed Dial was in your Jump List? I don’t know whether it is or not, but my problem is when I searched for it I don’t find what I want, and I find myself reading again the garbage about the Opera CEO complaining that Opera isn’t installed by default on Windows but IE is and users should have none, or all browsers installed for choice. What annoys me about this is that it is the OEMs Opera should be pushing to install their stuff. Prebuilt PCs come with plenty of crapware, it would be a pleasant change if some of it was good. Also, they do not complain about Apple including Safari in OS X, or Ubuntu including Firefox, and do not push them to install Opera. The Google Chrome guys made the point with this video that the end user really does not even know what a browser is (I tried this one on my wife, who I have using Opera, and my Mum, both gave the same kind of answer as the people on the video. I found it fascinating, try it on your friends.). So claiming that the end users are the ones that want more choice seems difficult. Multiple browsers installed as a suggest best solution, is by far not the best solution. The end user only cares if it is simple and works. More choices for most users is just more confusing.

I am probably being too hash on Opera. More competition is certainly good. Firefox’s popularity gave Microsoft a kick to finally get moving again with updating IE from the dated version 6. Personally I don't understand why Opera is not more popular. The guys at Opera are doing awesome work. Simple features like mouse gestures, speed dial, custom searches and Opera Link make using it quicker and simpler than others. Opera 10 has some nice features like inline spell checker and auto update. I'm unsure how Opera Unite will go. The video show the purpose of Opera Unite is really cool. The feature that I find potentially useful at the moment is the file sharing, for access to my home PC from work, but there are other ways to do that. So as with any platform it will succeed if it is embraced by developers with some killer apps. Until then best of luck to Opera.

Technorati Tags: ,,
March 13

XPS Unknown by Microsoft Support

Recently I had to contact Microsoft support. I stated my issue and gave a copy of my print out relating to the issue, as an XPS. This is convenient to do, as after installing .NET 3.0 Framework, which gives you XPS support, the option to print to XPS is available. The reply I got back however, was

“The file you had sent to us was not in a file type I could bring up. I would advise you to send it back to us in a different format so we can easily view the file."

This knocked me to the floor! How could Microsoft support not open an XPS! Firstly, as stated on fileinfo.net:

“XPS files can be opened with Microsoft's XPS Viewer, included with Windows Vista”

So why is Microsoft support not using Vista? Secondly, when opening an unknown file type, Windows default file type unknown dialog would point them to the the page http://shell.windows.com/fileassoc/0409/xml/redir.asp?EXT=xps, which clearly states what it is and what they need to do.

Windows File Assocation

So I sent an email to the XPS team about my issue, and got very polite replying saying thanks for the interest and feedback, and they are following up the issue with the teams involved. Let’s hope they do. XPS from a .NET developers perspective is just brilliant. Even if the format is not as featured or whatever as PDFs, the ease of creation due to the XAML declaration is just too easy to ignore. Not to mention the Adobe Reader (currently version 9.1 and 41.1MB!) is way too bloated (use Foxit Reader, version 3.0, 3.26MB).

The issue holding XPS up is that is it not in wide enough support yet. I have sent them to family and friends and get the same type of reply from them, as I did from Microsoft support. Hopefully with more applications using .NET 3.0 and Windows Vista & 7 adoption on the increase, this will be resolved soon. Then, as a developer, I can say goodbye to painful PDF creation.

To make sure you have got all you need for XPS, be sure to install the Microsoft XPS Essentials Pack (7.2MB – 9.0MB, after .NET 3.0 Framework, which you should have anyway!). Although you get viewing and creating abilities with just .NET 3.0, the pack also gives you an IFilter for Windows Vista\Desktop Search and IPreviewHandler for Windows Vista Explorer previews, and Outlook 2007 previewer:

XPS Preview

On a positive note, Microsoft support was very good. Very fast responses and when I sent the print out as a PDF my issue was very quickly resolved.

Aside: Same issue with internal adoption of Microsoft’s standards. The Inside Windows Live Messenger blog, has flash at the front, instead of Silverlight. I would have thought, since Messenger 9 has sprinkles of WPF, Silverlight would be a no brainer.

Inside Windows Live Messenger

Technorati Tags: ,,

February 03

TFS Working On – Version 1.1 Released

Today I have set the TFS Working On beta to release for version 1.1. The code has not changed since the end of November 2008 and I have been using it full time along with 9 more developers at my work. This has provided us with excellent data in TFS, that we are now actively reporting our schedule on. There are many more features that I wanted to get in, but since this release has had such a long testing time, with no significant issues, I thought it worthwhile to cut the release. I can now get on with the new features, without the risk of destabilizing this build. Download the release and try it out. If you find any issues or have any feature requests, please log them. I do also prioritize on votes, so be sure to vote on features you want to see in. Below are the usage instructions:

TFS Working On is a simple system tray utility that makes it easier to record your time spent on TFS Work Items.

TFS Working On

Simply specify your server and project, then search for your Work Item and you are tracking your time.

TFS Working On - Set Connection

TFS Working On - Search for Work Items

The icon turns green to notify you that you are tracking your time.

TFS Working On - Started working on...

This will record your time in the history of the work item whenever you stop working on the item. To stop working on, double click the icon or select stop from the menu, and the work item is updated and the icon turns red.

TFS Working On - Stop

TFS Working On - Stopped working on...

TFS Working On - History

TFS Working On - Schedule

You can also specify your estimates against a work item so that you can record how you are going.

TFS Working On - Estimates

TFS Working On - Estimates

Access to the work item is available.

TFS Working On - Work Item

With some very simple configuration the estimates can be mapped to the TFS Work Item fields, per work item type, per project. This can be performed by one member of the team, most likely the one responsible for setting up the project, and then stored on the network share for all team members to reference.

TFS Working On - Configuration

TFS Working On - Configuration Mappings

Features can be configured here also. Hovering over the help icon will give you details of the settings.

TFS Working On - Configuration Options

Auto Time Out will automatically stop working on when the computer is idle for the set time, and resume when activity begins again.

Nag will remind you when you are not working on anything.

TFS Working On - Nag

 

Simplifying Complication

Keep looking, there is a simpler solution.

Matthew Rowan

Occupation
Location
Books every developer should have access to