Just as last year my flight from Portland to San Francisco was delayed due to foggy conditions in the bay area (note to self: no further morning flights to SFO). This year my wife Lynda accompanied me and we finally landed in SFO around 1:00 PM only an hour late. The flight was smooth and easy except the landing where the pilot gave us the hardest landing I've personally experience in a flight. Just as last year the weather in San Francisco was identical to the weather left behind in Portland. In stark contrast to last year that weather was sunny skies and temperatures in the mid 70's.
As I did last year we took a shuttle from SFO to downtown San Francisco. It cost roughly $30 to for both Lynda and I and the boarding process took almost an hour. Right before we left PDX I saw this tweet from Scott Hanselman.
A few hours later we were sitting in traffic heading into downtown and I was feeling a bit jealous of his choice of BART.
We arrived at our hotel, Hotel Diva, checked in, dropped our luggage and went out. We walked down Market Street to a part of the San Francisco waterfront I'd never seen, then south under the Bay Bridge to Bryant Street. From there we cut up to 2nd Street and ended at 21st Amendment Brewing. I'd eaten there twice the previous year and wanted very much for Lynda to experience it.
We had a good dinner an some excellent beer. We headed back to the hotel around 7:30 PM stopping at the Moscone Center along the way for conference registration. Just as last year the process was nearly flawless and took only a couple minutes.
The day 1 keynote was schedule for 8:30-11:00. I knew from last year that it would probably fill up and that the breakfast was most likely going to suck. Breakfast was indeed exactly the same as last year, i.e. cold hard boiled eggs, industrial grade pastries, bananas, juice and coffee. I grabbed a banana and some coffee and headed up to the 3rd floor to stand in line. They finally opened the doors about thirty minutes before the keynote was scheduled to start. I was near the front of the line so I got a good seat without issue.
As last year the keynote was more of a marketing session than anything else. This year it was all about Windows 10. Early on they stated their prediction of "1 billion Windows 10 devices" in the next couple years. Throughout the rest of the session speaker after speaker conveniently ignored the "prediction" part of that statement and they even switched their vernacular through the keynote from "devices" to "users". They then proceeded to act as if these 1 billion "users" were a fact.
Despite this marketing hype there were excellent announcements and some pretty impressive demos. The "bridges" to take legacy technologies to the Windows 10 unified platform were particularly interesting as were the demos of the Hololens (though I couldn't help but feel we were seeing some slight of hand there). Perhaps my favorite demonstration was given by Joe Belfiore when he showed off the reactive experience of a Windows 10 tablet being placed in a dock and provided with monitor, keyboard and mouse (@2 hr 20 min).
After the keynote I made my way quickly to my first session, The Next Generation of Azure Compute Platform presented by Mark Russinovich. The session was largely focused on aspects of the management of Azure resources. Of particular interest to me was a number of improvements that have been added to Azure Resource Groups and a feature called VM Scale Sets which allows you to use Azure VM's in place of Worker Roles.
My next session was Azure App Service Architecture presented by Scott Hunter and Scott Hanselman. The session focused on the recently announced Azure App Services which includes Web Apps (previously Azure Websites), Mobile Apps (previously Mobile Services), API Apps and Logic Apps. I'd seen most of the material in this session just a couple weeks ago in DotNetConf videos so there wasn't a tremendous amount of new information for me but Scott Hanselman is one of my favorite technical presenters and I generally get something new from his sessions.
My final session of the day was Managing Azure Applications Using the New Azure Portal presented by Adam Abdelhamed and Michael Flanakin. This session was basically a tour of the Azure Preview Portal (now entering it's second year in "preview" mode). I've spent most of my time working with Azure in the "old" portal so it was a good session to get some exposure to the preview portal's functionality.
I left the Moscone Center at just after 6:00 PM and headed up the street to the Thirsty Bear for another excellent dinner and beers with my wife.
The schedule for day 2 showed breakfast from 7:30-8:30 with the keynote scheduled to start at 8:30. I arrived at the Moscone Center just a couple minutes before 7:30 to find a line of attendees all the way around the block waiting at closed doors. I didn't make it in the door until at least 7:45 and the line for breakfast was huge so I skipped it and headed straight to the 3rd floor to wait in line for the day 2 keynote. I saw a few people in line with bagels and cream cheese (a much better fare than the previous day) and I lamented not having something to eat or at least a cup of coffee.
If anything the day 2 keynote was even more marketing heavy than day 1 and, for me, there was very little of interest or worth in the entire 2 1/2 hour presentation.
My first session of the day was The Future of TypeScript: ECMAScript 6, Async/Await and Richer Libraries presented by Anders Hejlsberg. I have a tremendous amount of respect for Anders and generally try to watch every presentation of his I can find. That said this year was very disappointing. I noted last year that the presentation he gave was almost identical the one he gave at Build 2013 (which I'd watched on video). This year he gave almost that exact presentation again. I'd hoped (due to the title) that we'd hear about Async/Await implementation in TypeScript but the only mention of it was a bullet item at the very end of the session which showed that feature slated for version 1.6. The one cool thing that did happen is that Miško Hevery and Brad Green of the AngularJS team got on stage during the session and proclaimed that Angular 2 is being written using TypeScript. That had actually been announced a couple months ago and they didn't provide any other actual content to the presentation but it was truly epic to see two of Google's top developers on stage at Microsoft's premier developer conference showing their support for a language that came out of Microsoft. Even a year ago that would have been unthinkable. It shows just how much change has happened to Microsoft and its image in a very short time.
My second session was Taking .NET Cross-Platform: Building .NET Applications on Linux and Mac presented by Habib Heydarian. It was basically a Power Point presentation with little to no code or demo so it really didn't appeal to me. There was some good information but it was largely lost on me due to presentation style.
Next up was Entity Framework 7: Data for Web, Phone, Store, and Desktop presented by Rowan Miller. I've been using Entity Framework since version 1 and I always like to hear what Rowan has to say on the subject. EF 7 is a complete reboot and employs the same modular, cross-platform approach that's coming in CoreCLR and ASP.NET 5. Truly some excellent work coming from the EF team.
The final session of the day was Azure API Apps for Web, Mobile and Logic Apps presented by Wade Wegner. Again, I'd seen most of the information before but most of Wade's presentation was in-code demo which I prefer so I enjoyed the session and picked up a few nuggets.
I arrived an hour early for the first session of the final day knowing it would fill up. The session was Deep Dive into ASP.NET 5 presented by Damian Edwards and Scott Hanselman. I grabbed a quick bite to eat and a coffee then headed to the room to wait. The session did indeed fill up and with good reason, it was the best session at the conference IMO. They opened with two PowerPoint slides then dove right into code. Damian did the "driving" and over the hour they hit a number of fantastic new features to be found in ASP.NET 5. They had more material than time and I'd have been perfectly happy to sit there another couple hours trying to digest everything they could present. I wish every session could be as informative and developer-centric as this one.
Session two of the day was .NET Compiler Platform ("Roslyn"): Analyzers and the Rise of Code-Aware Libraries presented by Dustin Campbell. Dustin clearly knew his topic and spent the session almost entirely in code building a code analyzer live. I haven't had a tremendous amount of experience with Roslyn so I lacked the context to quickly understand everything he was doing. Still the session had the flavor I typically like, i.e. all code and presented with enthusiasm.
My last session of Build 2015 was Develop Modern Web Applications with Azure Active Directory presented by another of my favorites, Vittorio Bertocci. Vittorio is The Man on the subject of all things auth at Microsoft and I love his quirky sense of humor. At the beginning of his presentation Vittorio was talking about IIS and said "when you speak too long IIS gets bored and it closes." I found that strange because he'd said the same exact thing the previous year and he typically doesn't re-use his jokes. Very shortly after the session ended Vittorio re-tweeted one of my tweets.
What's funny is that tweet was from the session of his I attended at last year's Build. It made me wonder if he missed that tweet initially, sat on it for an entire year then told the same joke just to re-tweet it this year. Pretty funny if so.
I left Build 2015 with a full brain, a list of about half a dozen sessions I'd missed but wanted to catch on video later (still working on that) and another list of subjects slotted for exploratory programming (also still in progress).
My wife and I learned our lesson on transportation and took BART back to SFO. It cost less than half of the shuttle ride in and got us there quicker. The flight back to PDX was incident free and we were back home before dark Friday night. I caught up with my kids (until they got bored with me) then left for my favorite pub where I ordered a good craft beer and jumped right into the exploratory programming I mentioned previously.