Tuesday, October 25, 2016

The Wolf Bytes is Back

Been a crazy couple of years to include some phenomenal projects I've delivered, leading a team to the Best Overall App at AT&T Dev summit and my wife being on the door step of death to making a full recovery from Multiple Myeloma.

All that aside now that my life is getting back to normal and came back up for air...I realized it's time to "re-invent" myself. Are your in a groove, or a rut as well? For the past 10 years my business focused on mobile development, developing for Windows Mobile, iPhone Native, Android Native and now most of my work is in Xamarin. I've had many successes shipping software on all these mobile platforms and likely could continue doing so indefinitely.

My early background and true-love is really embedded systems programming and this new thing called IoT. I have what I think is a vision for an IoT based product and as part of this I needed a web app and services. Prior to my mobile development, I did a good amount of web dev to include Classic ASP, ASP.NET, MVC, WCF, ETC.... I started building a simple ASP.NET MVC 5 app, and decided hey...if I'm gonna learn this stuff, I might as well target ASP.NET core and MVC 6.0.

All I can say is....

The game has completely changed!

This was really an eye opening experience for me, in my opinion the change between ASP.NET and ASP.NET core is as big as the change from Classic ASP to ASP.NET. Let me clarify...the coding/dev part is not that terribly different, you still have .NET classes, Razor templates (although I'm really falling in love with Tag Helpers instead of Html Helpers) and most of the knowledge you have from ASP.NET libraries still applies.

Side Note - I really wish the name spaces changed a bit more from Microsoft.AspNet.Something to Microsoft.AspNetCore.Something. A considerable number of classes are identical between the two classes and I've lost more than a couple hours where I added the name space Microsoft.AspNet.Something where I should have added the AspNetCore namespace.

The major change is how the apps are built, in the past, you added "stuff" to your project and based on the extension type (in most cases) the build action was defined and the project targets turned all your source code and assets into "stuff" that ran your app. In the brave new world...not so much, you are responsible for configuring all the tools with a real favor for tools and utilities written in Node. You have tools named things like Gulp, Bower, Grunt and a few others. Whether this is right or wrong is pretty much immaterial, the ship has sailed and it's time to jump on board...or get left behind.

I think the biggest thing that hit me was how much of change this was. There are templates to get you started that setup your project frameworks, I've also spent many, many hours at the ASP.NET Core site, they really did a good job of discussing the new tooling and frameworks. If you haven't started down this road yet, it's time.

On one hand I think way too many developers just relied on the "crutch" that VS.NET provided, not in a bad way, but it let you focus on your code or in the app domain. So the requirement to understand what's going on is not that bad of a thing. On the other hand...to be productive you need to not only know your dev skills but also need to at least have a good grasp of the build tools and process, we'll see how dynamic these tools are. It's not all that beneficial, even if it's the greatest tooling, to have it change every six months...or just as you become proficient.

Wake Up Call!

This little detour into Web App Dev from my IoT product development hit me like a two-by-four to the head and made me ask "am I really in a groove? or is it a rut?". It made me realize that yes, I had become a specialist, but as an architect I also need to have more than high-level understanding of pretty much most of the common dev technology. This change made moving to the .NET Core and how much of a change it really was made me realize it's time to "re-invent" and "re-focus".

I think at this point, my mobile app delivery skills are really at the "Sharpening the Saw" level of 7 Habits, and it's time to start back over at step on a much bigger stage.

I'm getting really excited about this and look forward to making a number of announcements in the coming months.