17 Comments

imageThis summer has been one of the most productive I’ve ever had. Normally I spend summers balancing frozen margaritas in my hammock. That’s called Hammock Driven Development. You should try it.

Visual Studio 2013 Preview was released in June at the //build/ conference. I was there giving a talk about the brand new HTML editor, Browser Link and Web Essentials. Here’s the story of my road to //build/  and Visual Studio 2013.

Starting early

Mikhail, Todd and Alex, all developers on the web editors crew, started working on a new HTML editor for Visual Studio 2013 last summer before we shipped Visual Studio 2012. The codename for this new editor was Libra. My zodiac sign happens to be Libra, so I thought it was a fantastic name.

The HTML editor was based on WebMatrix’ HTML editor, which was much newer and all written in C#. The old HTML editor in Visual Studio was a mix between C++ and C#. It was old. From the nineties actually. It also had dependencies on FrontPage. Yes, FrontPage.

We went through all aspects of the editing experience to create the best HTML editor in the world. That meant scrutinizing every little detail till we got it just right. The formatter was the most challenging piece from a UX point of view. We spent months getting it perfect. I had no idea something so seemingly simple could be such a challenge.

The formatter was just one piece of the puzzle. Another big piece was the validator. Our test engineer, Van, had for a while wanted to learn Python. So when we needed a big pile of real-world HTML documents for testing, Van decided to teach himself Python, write a web crawler and download thousands of web pages to validate against. The guy is not normal.

Libra is a huge project and we’re not done yet. We’ll never be done – the HTML editor will continue to evolve.

Visual Studio Update 1

While work continued on Libra, we were preparing for the first update to Visual Studio 2012. This update became very important, because this was the first time we introduced new modern web languages to Visual Studio. It was a great day when we shipped both CoffeeScript,LESS and KnockoutJS Intellisense in Visual Studio Update 1.

For me, this marked the day when Visual Studio entered into the modern web arena full force. Not only that, we actually shipped both CoffeeScript and LESS several months earlier in Web Essentials. The cadence of which we were able to get valuable technology in the hands of web developers was unprecedented at Microsoft it seemed.

Two other very popular features from Web Essentials was also promoted into Visual Studio Update 1 – Paste JSON as Classes and Handlebars syntax highlighting. This was a good release.

Shortly after the release, Peter was able to join the Libra effort while Mikhail moved on to another team at Microsoft. We now had all the developers on the web editors crew working full time on Libra.

Up until this time, Libra was the only project we had started working on for Visual Studio 2013. But that was about to change.

The Eureka crew

Back in October 2012 I took over as program manager for the Eureka crew. Eureka was the codename for Page Inspector, which was a feature first introduced in Visual Studio 2012. I now had the responsibility for both the web editors and Page Inspector.

I’ve always found the technology behind Page Inspector fascinating, so this was pretty exciting to me. Long before I joined the Eureka crew, I had been trying to figure out how to move Page Inspector out of Visual Studio and into the browser, but was never able to nail the right user experience. I just knew it had to live in the browser somehow.

After an evening of Ballmer Peaking with Sayed, all the pieces started to fall into place – a true eureka moment in fact. The next day I sent a mail to my boss, wherein I pitched Artery – the codename for what was to become Browser Link.The email went out February 25th, 2013.

The Eureka crew couldn’t start working on it just then. We had to finish the work on Page Inspector for Visual Studio Update 2 first. It wasn’t until April before Dan and Joe started coding on the proof of concept. At this point, we didn’t even know if it was technically possible, let alone if we were even able to make it in time for Visual Studio 2013.

We did make it, but for the June release Browser Link was very far away from being feature complete. We basically shipped the proof of concept. As you can see from this video, we’ve come a long way since then. Browser Link is going to change everything.

Side Projects

During Christmas time last year, both Sayed and I were each building a website. He built one for his new MSBuild book and I built one for Web Essentials. We gave each other tips and tricks and decided to put them all online. In January 2012 we introduced the Web Developer Checklist. It got leaked before it was done and made the front page of Hacker News on a Sunday night. We had to hurry up and finish it right then.

In June we then released the Web Developer Checklist Chrome extension, which helps web developers test their websites for best practices. Many of the items on the checklist is currently being built into Web Essentials as Browser Link extensions, so now there’s full Visual Studio integration as well. It’s funny how things progress and evolve over time. From website, to Chrome extension, to Browser Link extension.

This happened at the same time I was working on a new blog engine for ASP.NET called MiniBlog. The idea was to see how simple I could write a modern blog engine with the latest technology. Exactly the same as when I started BlogEngine.NET many years ago. I used MiniBlog as part of the demo in my //build/ talk.

Leading up to //build/, I also started porting Web Essentials from Visual Studio 2012 to 2013 Preview. It was a bigger task than I thought, but it was done in time to release at //build/. It was even used in the keynote which I was very proud of.

Now both Web Essentials 2012 and 2013 are open source and have already taken community contributions. That’s fantastic and I’m very grateful for everyone who have pitched in so far. Thanks!

In July, Sayed and I finally started working on a project we had talked about doing for months. We wanted to make it easy for anyone to create and share Visual Studio item- and project templates. The project is called SideWaffle Template Pack and is an open source community extension for Visual Studio 2012 and 2013.


Now summer is over and Visual Studio 2013 RTM is almost ready to ship. I hope you’ll have as much fun using it as we had making it.

3 Comments

I’ve been pretty quiet about my latest extension for Visual Studio 2010 outside of Twitter, so I’m thinking it’s due time for a blog post about how and why Web Essentials came to be.

If you don’t know what Web Essentials is or haven’t tried it yet, you might want to read Scott Hanselman’s blog post.

Web Essentials was originally called CSS Essentials when it was first released in early 2011 because I wanted a name that clearly stated it was all about CSS. Years of web development had left me frustrated about the lack of attention CSS editors was getting by almost all IDEs, which in general only provided syntax highlighting, decent formatting and useless validation. Why did VB.NET and C# almost write itself when CSS was such a uphill battle with even the simplest tasks such as cross-browser rounded corners? That should be simple, right? Right?!

I still considered myself a new employee at Microsoft at the time, with plenty of stuff to learn in my new role as Program Manager for the CSS and HTML editors in the Web Platform & Tools team. That’s why CSS Essentials remained dormant for the first many months providing little to no features.

It wasn’t until September 2011 after the //BUILD conference, where we shipped the Visual Studio 11 Developer Preview that I revived the project with a few clear goals:

  • Have fun writing code
  • Live test features that we might consider including in Visual Studio
  • Provide value to existing Visual Studio 2010 users

Having fun

Spare time projects have to be fun to survive. I learned that when I started BlogEngine.NET almost 5 years ago.

Because it was so much fun adding new features to Web Essentials, I updated the extension almost daily. Some people really liked the frequent updates, but I got a lot of feedback from people who was so annoyed about it that they uninstalled it. That was no fun. Now I’ve slowed down the updates a bit and I still have fun.

Live testing of features

Some of the features are stolen inspired by Visual Studio 11 and some are unique to Web Essentials. Some of the shared features are implemented in different ways, but essentially solves the same problems. As a Program Manager for HTML, CSS and now also JavaScript, this is an ultimate way to get feedback on possible new features for Visual Studio. Please keep the feedback coming!

Provide value to VS2010 users

This is perhaps the most important part of the project. New versions of Visual Studio are usually 2-3 years apart and that’s a long time to wait for new features and general improvements. That’s also the reason why I released the Web Standards Update extension last June.

Despite my role at Microsoft, Web Essentials is a completely private project. No Microsoft developer was hurt during the making of the extension. Scouts honor, boss! The reason I have for keeping it a private hobby project is that it gives me complete freedom to experiment with various features and improvements. It unfortunately also means that there is no QA other than myself. And you of course.

Anyway, back to the story.

After the project was revived I decided to change the name to Web Essentials because it reached broader while keeping focus on web development. Also, I wanted to add features to the HTML editor, such as drag ‘n drop of user controls, video and audio files. Something I had wanted for years as a web developer.

The purpose now was to provide a broad set of improvements to make the experience writing client-side web code in Visual Studio better and more up-to-date.

As of this writing, the extension is now on version 2.6 with 44.000+ downloads. That’s 16 releases in 2 months and it includes features for CSS, HTML, JavaScript and general web project features as well. The future of web development in Visual Studio, I think, has never looked better then with Visual Studio 11 on the horizon. Until then, Web Essentials will continue being updated and push the envelope on what Visual Studio 2010 is capable of.

I would love to hear from you what sort of features, tweaks and improvements would make your life easier and more fun using the web tools in Visual Studio and Web Essentials. Most of the features in Web Essentials came from suggestions on Twitter and around the interwebs. So if you have a good idea, please share it.

8 Comments

Back in March, I wrote about my grand plan for 2009 – my new year’s resolution. The plan was simple. I had to visit 12 different countries in 2009, preferably 12 countries I’d never visited before. Now, half way through the year it’s time to do status on the progress.

January

A business trip to Düsseldorf, Germany kicked off the plan. Beautiful city with very nice restaurants, bars and more Porche’s, Mercedes’ and BMW’s I’ve ever seen in one place.

February

Another business trip, this time to rainy London. Also, later the same month I went to Chişinău, the capital of Moldova. This is by far the most interesting place I’ve ever visited and I have a feeling that I might be the first tourist in that country. I can highly recommend visiting Moldova and I will definitely go back in maybe 5 years time.

Moldova

March

Went to the MVP Summit in Seattle. It was my first time in the state of Washington, but my 5th trip to USA and my 14th state. It rained, but it didn’t change the fact that Seattle is a very nice city with very nice and outgoing people.

The Space Needle

April

Malaga, Spain was the starting point of my Easter holiday. From there we drove to Gibraltar to see the wild monkeys and beautiful views and of course the new casino. You can actually see Morocco from there across the Mediterranean Sea. Then drove to Sevilla before returning home.

Gibraltar

May

Visiting a friend in Stirling, Scotland, the home of William Wallace aka Mel Gibson in Braveheart. Drove around Loch Lomond and tried some excellent whisky along the way – I wasn’t driving. I then took a flight from Scotland to Düsseldorf to revisit the Vodafone mother ship before returning home.

June

Back in March I asked around the office if anyone wanted to join me on a trip to Amsterdam, Holland. 9 colleagues said “yes, please”, so off we went to one of the more fun places I’ve ever visited for reasons I will not share with you or anyone else. If you’ve been there you know why. If you haven’t been there, go before it’s too late.

Arriving in Amsterdam

June/July

I’ve been very busy at work and by travelling, so for the summer holiday I just wanted to relax by a pool somewhere warm. I did that on Corfu – a Greek island off of the Albanian coast. The only energy spent on that trip was getting into a cap to the ferry leaving for Sarande, Albania.

Paradise Hotel in Corfu, Greece

That concludes the first half of my grand plan. Next up is:

August: Fringe Festival in Edinburgh, Scotland and a trip to Boston
September: Weekend in Monaco to win big on the casinos
October: 11 days roundtrip to Iran

After that it’s either India with the family in November or Malta for Christmas. If the rest of the year turns out as stated here, then the grand plan succeeds. This grand plan also carries some of the blame for me not blogging much anymore.

0 Comments

In the past 6 months I’ve been involved in hiring a lot of ASP.NET developers. It was very interesting to learn just how different skill sets ASP.NET developers have. It also made it more and more clear that every developer we talked to would fit into one of three categories:

  • The web developer
  • The developer who build websites
  • The ASP.NET super hero

Before looking deeper into the different categories I recommend you too check out how I define the ASP.NET framework 

The developer categories

With the ASP.NET definition in place it is now easier to look at the different categories of ASP.NET developers we have interviewed.

The web developer

Not many ASP.NET developers fall into this category. It’s usually the ones that come from classic ASP or PHP and made the switch to ASP.NET later on. They know everything about browser compatibility, JavaScript, CSS and the request life cycle. Also, they are usually not that hardcore in C# because they have mostly worked with client technologies. They are also more agnostic to the server-side platform and can work on PHP and RoR projects just as efficiently.

The web developer is also the kind of guy who thinks about new web technologies such as microformats and OpenID. This guy lives and breathes web.

The developer who builds websites

This is by far the biggest category. We’ve interviewed many developers who have worked with ASP.NET since it was first released. They have worked with everything from the database, data- and business logic, web services and ASP.NET. Most of them don’t care much for browser capabilities or JavaScript but they are hardcore C# developers. They have built many ASP.NET sites, but they are far from experts on the framework and stuff like modules and handlers are not where they have spent most of their time to say the least.

Their knowledge of the .NET framework, BCL and C# is immense, but they don’t qualify as web developers. They don’t live and breathe web, but their skills are just as needed in an ASP.NET project.

Take a web developer and a developer who build websites and put them in a room at the Romance Inn and wait 9 months. Then you get:

The ASP.NET super hero

This breed of developers is very difficult to get your hands on. They are a special race of individuals who know all about the ASP.NET framework and client-side technologies and are just as proficient in the more hardcore C# disciplines as well. ASP.NET is a very broad and diverse area because it is the point where the BCL, C#, XHTML, CSS, JavaScript, dependency injection, unit testing, mocking, AJAX etc. all come together in one project. To master all these disciplines takes an ASP.NET super hero.

The web developer and the developer who builds websites are both very important to a successful execution of a website project, but at least one ASP.NET super hero is essential in my opinion.

0 Comments

I’ve been a little quiet on my blog lately. That is due to my grand plan for 2009 which was born as my New Year’s resolution. The original plan went like this:

In average, I need to visit a new country I have never visited before, every month of 2009.

That means 12 trips to a new destination for the entire year. I soon realized this was too ambitious, expensive and time consuming. I needed to adjust the plan to something more realistic and this is what I came up with:

In average, I need to visit a new country that I may have visited before, every month of 2009.

So, still 12 different destinations but it is now ok for me to visit countries I’ve seen before. So far it is going quite well. Here is my itinerary for 2009 as it looks right now.

  • January: Germany
  • February: England and Moldova*
  • March: USA
  • April: Spain, Gibraltar* and Portugal*
  • May: Scotland*
  • June: Holland*
  • July: Greece* and Albania*
  • September: Turkey*
  • December: Egypt*

* = have never visited before

These trips have been a mix of business and pleasure. Whenever I go on business trips, I always try to find time to explore the place I visit. Lately I’ve fallen for the idea of visiting the countries along the old silky way including Azerbaijan, Kirgizstan, Georgia, Armenia and a few more. I hope to find the time to spend some time there in the fall. Also, I’ve never been in Asia or Oceania so that’s also very high on my wish list.

Often times when travelling, I don't have access to a PC so I don't read or write many blog posts. Instead I tweet from my mobile phone just to keep a little up to date with the news in tech world.