Microsoft Build 2014 (#bldwin)


I left home for Build 2014 on the morning of April Fool's Day after only a couple hours of sleep. I arrived at PDX around 09:00 with my flight to San Francisco scheduled to leave at 11:40. I got through security and settled in at the gate ready to read wile away the remaining time. Around 10:30 they announced my flight was delayed until 12:50. About an hour later they announced the flight had been delayed until 14:10. We finally stared boarding at around 14:30. I kept waiting for someone to say "April Fools" but no such luck. Not a great start to my trip.

The flight was uneventfully except for the final descent into San Francisco where we encountered quite a lot of turbulence passing through the lowest clouds. I got off the plane and went outside to catch my shuttle into town. It'd been years since I'd last been to San Francisco but this time my first thought was "this is just like home". The temperature was somewhere around 50-60 degrees and it was raining lightly. It felt exactly like the weather I left behind in Portland.

I arrived at my hotel, the Pickwick, a dingy old place just a couple blocks from the Moscone Center where the conference was taking place. I dropped my bags and headed down the street to register at the conference. Registration was quick and easy and and I was done within minutes. It was about 17:00 by this time so I decided to go find some dinner. I'd previously identified as being within walking distance so I headed out. The weather had turned truly ugly by this point. What was previously light rain had given way to a deluge lasting the entire fifteen blocks I walked to dinner. By the time I sat down I was soaked to the bone. Still, the beer was good as was the food and during the walk back the weather had reverted back to a light sprinkling. I spent the last couple hours before sleep watching my Blazers beat the Lakers.

Day 1

I awoke the morning of 4/2/2014 ready for my first Build experience. Breakfast was scheduled for 07:00-08:30 with the day one keynote scheduled to start at 08:30. I arrived at the Moscone Center around 07:30 figuring that'd give me plenty of time to eat a little breakfast before heading up to the keynote presentation. What I found at breakfast concerned me more than a little.

The breakfast buffet consisted of three separate but identical tables. Each table had a tray of small muffins, a bowl of cold hard boiled eggs, bananas, apples and bins full of juice bottles. I've been to a number of conferences/seminars and this, at Microsoft's flagship developer conference, was by far the most pathetic breakfast I've been served at any of them. Cold eggs and warm juice. Add to that the fact that when I got through the line to the table all the muffins were gone. My line stopped and waited for more. While my line waited I watched as the muffins on both the other tables also ran out and the entire line of hundreds came to a stop for at least two minutes. Again, that type of coordination didn't exactly fill me with confidence. The muffins arrived, I ate my meager breakfast and at just before 08:00 headed up the escalators to the main hall to watch the keynote.

The keynotes were held on the third floor in what (I believe) was the conference center's largest room. A continuous line of hundreds wound up the escalators to the third floor where we were routed all the way around the main room to come into it on the other side. I felt like I was back in Disneyland being routed through the ever present switchbacks. On the way through I was a little disturbed to notice that at least three large rooms had been designated as "keynote session overflow". They obviously knew right from the start that they didn't have enough seats for all attendees to see the keynote live. I got into the main hall at about 08:00, a half-hour before the keynote was scheduled to start. I finally found one of the last available seats at the far end of the megalithic room. From where I sat I could just barely see the speakers on stage. Being in one of the overflow rooms probably wouldn't have significantly changed the experience but, somehow, I'd still have been very disappointed if I'd had to watch from an overflow room. As many did.

The day one keynote lasted for three hours with no breaks. It was more of a marketing hype session than anything else but there were a few cool announcements. My favorite was the demo of a Universal Windows application, an app in which the vast majority of the code was in one project but which could be run from Windows desktops, phones or on the XBox One. Very cool. The other anticipated announcement was the swag give-away that occurs every year. This year every attendee received a free XBox One and a $500 gift card to the Microsoft online store. Nice!

Lunch came directly after the keynote and it was much better than breakfast. The weather had improved dramatically from the previous day (0.91" of rain) so I took my chicken wrap, bean salad and pop and ate outside in the sun. I walked back to the conference center at about 12:15 leaving myself forty-five minutes until the start of my first session. That session was What's New for ASP.NET and Web in Visual Studio 2013 Update 2 and Beyond presented by Scott Hanselman and Scott Hunter (the lesser Scotts). Scott Hanselman is one of my absolute favorite technical presenters and I was very excited to see the session. I got to the door of Hall 1A, along with a handful of other attendees, over thirty minutes before the start time. The doors were closed and I assumed that some lunch event was just finishing up. Within five minutes there were over a hundred people behind us. Within twenty minutes the line was around the corner and out of sight. There must have been at least three hundred people behind me. With just a couple minutes to spare we discovered there was not another session going on. The doors had been closed when the hall filled almost to capacity some time in the previous hour. They started letting people in one and two at a time as they were able to identify empty seats in the room. I was lucky enough to be one of the last to get a seat. Hundreds of attendees were not so luck and were turned away. Apparently they ended up watching the event on a screen in the main lobby.

Again, that was a little disappointing. You'd think the organizers would know who their heavy hitter, high demand presenters are and would plan accordingly. Even more disappointing when you consider that it's apparently been a recurring issue.

My second session was Building a Single Page Application with ASP.NET and AngularJS presented by Jon Galloway and David Catuhe. That session too was full and I believe people were again turned away, though nothing like the Hanselman/Hunter session. I've been working with Angular and Web API for a while now so the session itself didn't present me with a tremendous amount of new information but I enjoyed it none the less.

Session three was TypeScript presented by Anders Hejlsberg, another presenter I always love to see. The trend of overfilled sessions continued here but again I was lucky enough to get a seat. The session itself was almost verbatim what Anders had presented in his TypeScript session at Build 2013. The one notable item was the announcement that TypeScript 1.0 was GA. Great news!

The last session of day one was Building a Large Scale JavaScript Application in TypeScript presented by Erich Gamma. The session covered many of the trials and pitfalls Erich and his team encountered when migrating a number of the Microsoft web applications to TypeScript. Very interesting talk with lots real world information.

I left the conference center on day one just after 18:30. I found some dinner nearby then went back to my hotel room and read for a short time before falling asleep.

Day 2

Day two's breakfast was identical to day one with the exception that they'd added bagels (+1) but without cream cheese (-1). I decided to forgo breakfast, grabbed a cup of coffee (Seattle's Best, +1) and headed up to the keynote presentation room early. Getting there almost a hour ahead of time I got a good seat right in the middle of the room just behind the press table. About ten minutes before the keynote was to start an usher came by and told a group of us we could move to the empty seats at the press tables. Score!

If anything the day two keynote was filled with even more marketing hype than day one sporting quite a few pre-recorded marketing videos. Still, there were a number of noteworthy items. Scott Guthrie announced the maximum size of an SQL Azure database was being increased from 150 GB to 500 GB (that's a big deal for our company), Anders announced that the Roslyn project was being open sourced and pulled the trigger on opening the CodePlex project to the public on stage, they showed the new Azure Portal (which is simply amazing) and they showed the Universal Windows app from the previous day's keynote after it had been extended using Xamarin to also target iOS and Android platforms.

After the keynote I grabbed my lunch (a chicken empanada, salad and a pop) and again spent a little time outside enjoying the sunny day. I wrapped up lunch early determined to be extra early for my first session of the day in case it was overfilled again.

I arrived at the designated room for the my first session of day two approximately forty-five minutes early and spent a little time catching up on email. About ten minutes before the session was to start they announced that the room had been changed to one down the hall. I quickly checked the Channel9 app to see if I'm missed a schedule change but nope, nothing in the app had changed. I'm not sure where that app was pulling its scheduling information from but with a little forethought those kind of schedule changes could easily have been broadcast. I found that the rescheduled sessions were posted on display screens at several locations through the conference center so I started checking those as a matter of course. Good thing I did. Of the eight sessions over days two and three six of them were moved. The Channel9 app never reflected any of these changes.

My first session of the day was The New Authentication Model for Web, Mobile and Cloud Applications presented by Stuart Kwan. The session was quite good. Stuart demonstrated plenty of good in-code examples illustrating the use of OAuth 2.0 and and Azure Active Directory for authentication.

Session two was Building Enterprise and SaaS Web Apps and Web APIs using Azure Active Directory for Sign In presented by Vittorio Bertocci. Vittorio is another of my favorite technical presenters always bringing a great sense of humor to his talks. It was a good follow-up to my previous session diving deeper into the use of Azure Active Directory for authentication.

My third session of the day was Building Web APIs for Mobile Apps Using ASP.NET Web API 2.1 presented by Daniel Roth. I'd seen most of the information presented but Daniel is another excellent presenter and his energy, enthusiasm and depth of knowledge made the session well worth attending.

The final session I attended on day two was The Next Generation of .NET for Building Applications presented by Habib Heydarian. Unlike all other sessions I'd seen this one presented nothing currently in GA. Habib talked openly about ideas they have for the future of .NET stressing that nothing was set in stone yet and asking for feedback. One feature that blew my doors off was what they've dubbed .NET Native which compiles .NET code to native code. In addition they've completely re-written the JIT compiler for .NET and even in early stages are getting tremendous performance improvements.

I left the conference center on day two just after 18:30. Again I found some dinner then went back to my hotel and idled away the last couple hours of the day before going to sleep.

Day 3

I started day three with a muffin, banana and coffee for breakfast then headed right to my first session The Future of C# presented by Dustin Campbell and Mads Torgersen. They spent most of the hour demonstrating features that will be coming in the next release of C# and while there was nothing that struck me as earth shattering there were a number of features that will help streamline your code. Overall there seems to be a tread toward a more declarative programming model. Some pretty slick new features coming down the pipe.

Session two of the day was Microsoft Azure Storage – What's New, Best Practices and Patterns presented by Jai Haridas and Serdar Ozler. I'm sorry to say the session was something of a snoozer. It wasn't quite the information I'd expected and the presentation was fairly flat.

After a quick turkey sandwich in the "cafeteria" room I jumped into line for my next session which I expected to be full. The session was Building Modern Web Applications with Visual Studio and Web Essentials presented by Mads Kristensen and I'm glad I got in line early as it filled rapidly. Mads is the original creator of Web Essentials and his depth of knowledge is very impressive. He spent the hour showing a plethora of small features being added to Web Essentials and/or Visual Studio. Again, nothing earth shattering but each one a really cool (and often time saving) feature. My favorite was probably the technique he showed for building a sprite image on the fly.

My last session of the conference was Building Azure Web Sites with Visual Studio Online “Monaco” presented by Chris Dias. I'd previously spent a little time looking at Monaco but wasn't sold on the need for it. I'm still not sure I'd ever use it when I have Visual Studio available but its capabilities are fairly remarkable especially if you are editing code deployed on Azure. Chris flew through a lot of material and performed quite a bit of source control manipulation using the console in Monaco and a git repository. I'm not a git fiend so much of that was lost on me other than being impressed by what could be accomplished just from a browser. Overall, a nice demonstration of Monaco's impressive capabilities.

I left the Moscone Center at about 15:30 and spent the next several hours waiting for my flight back to Portland eating dinner, enjoying a couple beers and reading. My flight left San Francisco at 20:40 and I finally reached my house at almost 23:00.

The vast majority of the sessions I attended at Build 2014 were informative and on point. I was a little disappointed by some conference organization and planning aspects, e.g. the session schedule not being posted until the day before the conference, rooms being moved at the last minute with no schedule updates to the conference mobile app, overbooked sessions for a few of the more popular speakers and very poor breakfasts. I could also do without two separate three hour, marketing rich keynote presentations. I'd have much rather had a single keynote and attended three more technical sessions. Overall, however, my experience at Build 2014 was positive and I'd do it all again.

The tweet I sent on day two is a good tongue-in-cheek summary of my experience.