I have this expression that technology is kind of like a slow-moving train. It’s always moving 2mph, day and night, 24/7. So, it may see like it’s kind of slow but if you take your eye off from it for too long, you can fall behind very quickly! Next thing you know, you can’t even see the train anymore!
The good part is, if there is one, is that you know exactly where the train is going – you just need to follow the tracks. So, you can follow those tracks until you get caught back up! For me, I’ve only partially kept up with all of the new things things which have come about with VS2012 and VS2013. Luckily, there is a place you can go to get caught up on it all – if you have an extra 12 hours to spare!
Catching up to VS2012 technologies:
Over the last many days I’ve been going through the “Building Modern Web Apps” videos that Scott Hanselman & Company published. There are 9 videos based around VS2012 and .NET 4.5, lasting around 6 hours:
- What’s New in ASP.NET 4.5 (~:56 mins – great overview!)
- Building and Deploying Websites with ASP.NET MVC 4 (~:46 mins)
- Creating HTML5 Applications with jQuery (~:54 mins)
- Building a Service Layer with ASP.NET Web API (~:30 mins)
- Leveraging Your ASP.NET Development Skills to Build Office Apps (~:16 mins)
- Building and Leveraging Social Services in ASP.NET (~:32 mins)
- Building for the Mobile Web (~:60 mins – impressive demo!)
- Real-time Communication with SignalR (~:53 mins – impressive demo!)
- Taking Advantage of Windows Azure Services (~:25 mins)
In particular, the “mobile web” and “SignalR” presentations were amazing. The mobile web wasn’t what I thought it was going to be. They showcase jQuery Mobile which is a very powerful, very simple way to use all your existing code, but make a mobile-specific UI.
SignalR is an ingenious technology that allows a browser client and a server to talk back and forth in real-time.
What is particular clever is that it uses 4 different fallback mechanisms and it falls back to the lesser technology, based on what is available and negotiated between the client and the server. So, if the browser supports HTML5 web sockets, then it uses them, but if not, it uses less-ideal technologies to get the job done – but it does work on any browser: desktop, tablet, or mobile.
For more info on any of these newer topics, see:
- http://www.asp.net/web-pages (for Razor)
- http://www.asp.net/vnext (what’s coming up in future versions)
Catching up to VS2013 technologies:
From that same Hanselman blog post, he has the VS2013 edition of “Building Modern Web Apps”, totaling a little under 6 additional hours.
- What’s New in Visual Studio 2013 for Web Developers (~:50 mins – good overview)
- Upgrading Applications (~:52 mins – show how to upgrade NuGet packages and VS projects)
- ASP.NET Identity (~:39 mins – very interesting if you are doing anything with “logging in” to a modern website)
- Web Essentials and the Client Side (~:49 mins – amazing to see all the nice-to-have features now available)
- Entity Framework (~:49 mins – EF v6.1 supports async/await)
- Katana Project (~:45 mins)
- ASP.NET “Project Helios” (~:45 mins)
It’s worth noting that Scott was remarkably disrespectful to the other presenter in the video 2, and then even bleeding into video 3. He really made a point to humiliate him for some reason during a live event when the other guy couldn’t answer a question. That was really unprofessional and irritating to watch. The content was pretty good though if you can put aside your dislike for Hanselman!
How to watch these videos?
Now, the first thing I thought is: “ugh. I really don’t want to sit in front of a computer screen for additional 12 hours to watch these. Can’t I watch these on TV?”. I mean, where can you comfortably sit and watch stuff for hours on end? In the living room, on the big TV!
Well, there are a few reasonable ways to do this. For example, you could connect the HDMI port on your laptop to the TV. Downside is, your laptop battery is not going to last, so you might want to plug in the power, then if WiFi isn’t great you might get “Buffering…”, and worst of all you have to go over to the laptop to pause or replay something. I just mean by hour-10, that is going to start to get really annoying.
Instead, wouldn’t it be ideal to use a remote control of some sort? Here is how you can do that:
- Download free Plex Server and install on a Windows computer in your house.
- Download those Channel9 videos and put them into one of the folders that Plex shares. I grabbed the small mp4’s for each video and that was fine. In just a few places where they were typing and didn’t zoom, it was blurry, but for the other 98% of the content, that was fine. However, download whichever resolution you want! On the video page on Channel9 is where you’ll see the download links for each video.
- If you have a Roku – install the Plex channel. Then from Roku, using your Roku remote, you can browse the videos.
- If you have an XBox – hit the XBox button on your remote and choose “System Media Player”. You’ll see that XBox automatically sees your Plex Media server – you can browse to the videos from there. You can pause, rewind, fast-forward, etc with your remote. This is what I did.
What’s the bottom line:
Here are some of the things I’ve taken away from this… If you are a professional .NET developer, the landscape has and is changing very rapidly. Despite that, the change isn’t just random, there seems to be some natural evolution going on. Here are some of the takeways for me (including things not from these videos). Here’s what I think a developer in 2014 needs to be working towards understanding:
- Most .NET features are now NuGet packages. This is good because they can fix bugs and add features in smaller, more frequent intervals instead of versioning it with Visual Studio. This includes MVC, WebAPI, SignalR, Entity Framework, etc.
- Visual Studio now has a predictable release schedule. Every six months they will either have a new version or an “Update 1”, “Update 2”, etc.
- Solution and Project file formats are now constant. Starting with VS2012, you will be able to open a newer or older solution and project from any version of post-2010 Visual Studio without having to “upgrade” the files.
- Between the last 2 bullet points, the actual Visual Studio release is less-relevant/significant, because all of the core functionality and many tooling aspects are in the NuGet packages.
- WinForms is dead. It dawned on me that they haven’t done anything on the desktop since perhaps VS2008? Well, they created an entirely new technology for Win8 Apps, but WinForms continues to live on, untouched. So, WinForms will live on as a legacy technology, but there is no indication by: webcasts, conferences, books, blogs, or certifications that WinForms will ever come back. Simply no one is talking about it and there is been no new development for it in several years now.
- WebForms is very much alive. WebForms is meant to be the gateway-drug for WinForms developers. You can create very similar UI’s in a browser interface with a very similar programming model. And, as recent as VS2013, they are still actively evolving it. MVC definitely performs better and is more unit testable, but it looks like postback ASP.NET (a.k.a. WebForms) is still considered a first-class technology.
- As stated many times in these videos, they are striving for “One ASP.NET”, so you can mix-and-match WebForms, MVC, WebAPI, SignalR, etc all in the same ASP.NET project.
- Silverlight is dead. HTML5 can do most of it, and if you still want to do Silverlight for a living, that will become a “legacy” kind of job, like COBOL or WinForms. Those jobs will be around for a while, but they won’t be doing anything fun or exciting, and it probably is not going to pay well. As HTML5 evolves more capabilities, and as fewer browsers support Silverlight, it will eventually shrivel up in the next few years – is my guess.
- Learn HTML5 – in particular, understand the significance of the semantic markup, use HTML to host content (not format it).
- Learn CSS3 – use it to format HTML content, always in a separate .css file.
- Understand and implement “responsive design” using “media queries” – http://mediaqueri.es/ (Hint: you can do this easily with Bootstrap)
- Understand the pros, cons, and differences between WCF services, WebAPI, and SignalR – and when to use which technology
- Get to know Bootstrap – it gives you a far, far better way to build a website instead of trying to whip up something by hand. I promise you will love it! The VS2013 web project templates now use Bootstrap for the layout.
- Get to know jQuery Mobile – it offers a really amazing, powerful shortcut to making pages mobile-friendly. Supposedly Mobile Bootstrap is similar but I haven’t checked that out yet.
- Use async/await for any network or file system task. This includes for database calls, network calls, reading a file, etc.
- Learn the SOLID principles – go to http://www.thecleancoders.com/ and watch the videos or get the book Clean Code. All of this stuff is all that much easier if the application is written the right way. We now know a far, far better way to write an application – it is by using SOLID and having covering unit tests. Transitioning to this way to thinking will save you so many headaches.
Last year, I wrote a blog post about how frustrated I was with the direction of Microsoft. Now that I see a more complete picture, I’ve become re-excited about the future again. To see how these technologies fit together is honestly, quite amazing! It’s a remarkable combination to use: EF, Repository, MVC, WebAPI, SignalR all with jQuery, Bootstrap, and jQueryMobile on the front-end. Despite being disparate technologies, they all work together in an amazing way!
So, if you have some time, I’d recommend digging into these videos. They were all jam-packed with content, and worth your time if you are a professional .NET developer. In fact, this is probably about as centralized and concentrated a form of all of this information as you can find.
Oh, and all of it is free, it only costs you time!