I attended www.aspconf.net yesterday for Day 1, and will again today for Day 2 of 2.
There were a LOT of interesting sessions. However, I think they have too many tracts. They have SIX rooms running simultaneously. Of those, you have to pick one. I mean, you are allowed to switch between, but you probably want to stick with one.
Supposedly, in the coming days, these sessions will be made available on http://channel9.msdn.com/
Anyhow, I gleaned some significant themes from yesterdays sessions:
- NuGet – VS2012 and beyond fully-embrace NuGet as the way to manage dependencies and versions. In fact, Microsoft is starting to release components of Visual Studio (like Razor) as NuGet packages, so that they can upgrade them out-of-band from the big VS releases.
- HTML5 – HTML5 and CSS3 are really cool, and it’s bring broadly embraced. The downside? The incredibly frustrating “browsers wars” that are back. Remember in the 90’s when Netscape and IE were having a pissing contest? The result of which made it so the web developer needed to write 2 versions of the website. Nowadays, its back to the bad-ol’-days. IE is everywhere because of corporate use. Chrome is around because Anti-Microsoft people like non-IE and it’s faster than Firefox. Firefox is still around because Unix-y people are brand-loyal. Safari is around because that is the hard-coded browser in iPhone and iPad. So – you have to handle all these different standards. Very annoying. It is a shame that HTML STILL has to be this hard. The upside is the VS2012’s CSS editor actually takes this into account and automatically adds the browser-specific properties. So, that does make it a notch better.
- ASP.NET WebAPI – this is a pretty cool technology. Microsoft basically standardized the way that you might get data from a service. This is a RESTful service paradigm that supports JSON and XML. You have a “resource” of say /api/Product/4 and you use a GET, and that returns back a JSON or XML object for Product 4. If you do a POST to /api/Product of JSON or XML, that is an insert; a DELETE deletes, and a PUT updates an existing record. Very simple, yet very powerful. The session yesterday had some examples of consuming this RESTful service from MVC, jQuery, and HTML5 websockets (where you do have to have a special HttpHandler on the server)
- Test-Driven Development – with the sessions yesterday, I finally had my “ah-ha!” moment with Moq and using mocking frameworks. The presentation was really great – it started from “no unit tests” to using dependency injection, to using a mock. I will definitely do a blog post or an article on this, now that I better understand the significance.
- Azure – I have seen a few presentations on Azure. Yesterday though, Scott Gu (Guthrie) did the keynote on the new Azure. I don’t think I’ve been more impressed with a technology. They have developed such an amazing way to administer a “data center” – and made it so developer-friendly, all while keeping it secure. It is just a jaw-dropping technology. Even though I think Amazon EC2 “got there first”, I just don’t think Amazon is in the same league as Azure. I mean from the tooling perspective, the developer story, and even at the infrastructure level. When you have a virtual disk in your Azure VM, it’s spanned across RAID arrays, and geo-replicated to other data centers. So a few weeks ago when a bad storm took out Amazon’s EC2 cloud – that can’t really happen with Azure. They have their data geo-replicated in real-time across the globe. In theory, the only time you’d have an outage would be if the entire earth was attacked by aliens – or when the machines rise up against us! It seems to me they have made the barrier-to-entry so low now, that all it is going to take is for a Microsoft sales person to talk to your CIO – and you are going to move at least some apps to the Azure cloud. It’s almost to the point where it would be absurd not to, specifically if you are a Microsoft shop – but as you might know, Azure supports several popular brands of Linux too – with all the same powerful tools for managing those systems.
- TFS on the Web – during the Azure presentation, they mentioned www.tfspreview.com – where they host Source control as a service. You can have a robust source control environment that can automatically do builds and publish to Azure. This is significant because this is the first (that I know of) public Team Foundation Server offering to directly compete with www.github.com and www.bitbucket.org
Probably my main take-away though is this: what is the future of technology? I spend a fair amount of time on my professional development – more than MOST, I would argue. And I feel like I am barely keeping up. These technologies are moving so fast – and it seems that every 18 months, they are moving faster. It seems obvious to me that at some point, the technology will simply move too fast for anyone to actually keep up. In fact, I kind of feel that way now. So, will the “slowness” of humans actually hamper progress, I wonder? Or, will there no longer be generalist and all technical people will be forced to be specialists – simply because it’s just too much to keep up with?
I don’t mean to sound all philosophical – I just mean I felt somewhat “caught up” 10 months ago. Today, I realize that there is an entire suite of technologies that I am brand-new to. It seems as though it would take me 24 months to become proficient in all of this – but WELL before that time, there will be even more new tech to learn. It’s not sustainable. The amount of technology coming out feels like it’s starting to be exponential. So where does that leave us?