Tech Blog

Jay's Technical blog

A .NET Developer in an Ever Increasing JavaScript World

23 April 2015
Jay Kimble

So maybe you are like me, I’ve been a developer for 20+ years now, and I have gone from a Desktop developer to a Web Developer to a Silverlight/WPF Developer, and now back to a Web Developer. Ok, maybe you aren’t like me. Maybe you consider yourself an enterprise developer, and you do your best to avoid writing too much client script in your apps. You build enough to JavaScript to avoid a poor experience for your users, but you really haven’t embraced it. All this talk of using JavaScript in mobile apps (aka things like PhoneGap or WinJS) or JavaScript on the server, etc. sounds absolutely stupid to you.

We could be brothers, my friend. Now mind you, I have actually been paid to train folks on enhancing web sites with JavaScript (so my skills aren’t bad).. I have always “loved to hate” JavaScript. I keep waiting for it to grow up and become like my favorite language: C#; I’ve been waiting 15 years for it to arrive. I keep hearing about it arriving, but it has yet to fully happen. There are always caveats.

Ok, we’re on the same page if you are still with me. If you are a JavaScript lover, this series might not be for you.

That said, I watch what is going on in the software industry (both on the windows side and the non-windows side of things). I’ve started to play with some stuff that I have never played with before.. and I am finding it hard to admit,.. but my reaction is “This isn’t all that bad. In fact I could learn this and use this.. if it weren’t for the fact that I would be leaving C# and .NET far behind.” 

The Experiment
I think this stuff is not all that terrible. While I’m not thrilled with some of the players, that’s politics and not technology. The one thing I ask is that you don’t apply your enterprise mentality to this (at least for now). Let’s pretend like this is a CTP that has been released and we are evaluating it like it’s something we might use in a year or so (when it is finally released).

We’re going to look at the MEAN stack (more or less). I want to really press down on what is appealing about this and figure out how we can both learn it and learn from it.

So we’ll be learning to build apps with no C# or VB. We’ll also be leaving behind SQL Server and regular old relational databases. We will be using Visual Studio (thanks to some recent enhancements to it, VS is a great tool even for this arena).

We’ll be gaining a couple advantages. First of all we’ll only need to know 1 language, and that language is programming JavaScript. To make that a little more palatable for those of us who use C# (or VB) we’ll use TypeScript instead of pure JavaScript. This will let us leverage types (in a way) as well as have a very clear manner for building Namespaces (actually their called Modules in JS and have the added ability over a namespace in that they can have functions inside them), Interfaces, Classes, Enums, etc. Needless to say writing JavaScript this way (if you haven’t yet) will feel a little more familiar to you.. this means we’ll have the ability to have all the familiar OO mechanisms we are used to.

Additionally we’ll be able to deploy our code on machines with Node installed; I know that’s not much different from .NET which has mainly been seen on Windows machines and in Xamarin/Mono capable machines. With .NET Core we will be seeing more opportunities, but NodeJS is already there.

NodeJS also runs a little differently than what you are used to it. It uses a single thread, but manages it’s activity very efficiently. It’s also compiled (so it’s not slow interpreted JavaScript either),

With Mongo, we’ll be gaining a Database server that was designed for the cloud. While NoSQL may seem a little weird, I promise once you understand it, you’ll really like it.

The “E” in MEAN is for Express which is the web server plugin for NodeJS; it offers routing and honestly nothing all that special in comparison to ASP.NET MVC.

The “A” in MEAN is for AngularJS; I’m sure you’ve heard of that (and probably have worked with it some).

We’ll also be talking about another “A” that I like a little better than AngularJS: Aurelia. Although it’s barely an alpha, it’s showing great promise!

Anyway, looking forward to our first post.


To the Cloud!

21 April 2015
Jay Kimble

My Experiment with Azure

In my last post, I mentioned my plan that I had to put into high gear. I read a post by Scott Hanselman a while back about penny pinching while using Azure to host your web site. It's a great read and it got me thinking that I wanted to try to host all my web sites on Azure, but decided to not do what everyone else does (which is host inside a VM). I don't like maintaining the OS. It's not what I do, so this blog is a bit of an experiment. We'll see how the first month goes to decide if I stick with Azure Web sites or if I go with a VM.

Mostly I need a blog and a couple web sites (actually 3), and that is it. With some of my stuff I can live with the using free azure web sites (although the ones with domains require something non-free).

Anyway, I went through the set up and used a stock content manager for everything (Composite C1). This content manager doesn't require SQL Server (it actually uses XML files behind the scenes). You may or may not like that. It really doesn't matter to me. I'm not interested in maintaining the blog's software only the content. It seems like this is the right idea. Although I did have to temporarily increase to a basic site as opposed to the shared option (I put quite a bit of traffic on this in the midst of my initial edits).

[With that we are ready for my new series of posts on "Being a .NET Developer in an Ever Increasing JavaScript World" ]

  About  Cloud

Perspective

21 April 2015
Jay Kimble

Looking back on my blog...

I recently had a bunch of crazy things happen. First of all, a little over a year ago I went to work for AgileThought. I lost my final client and was no longer an independent developer. My web site was still hosted with the client's stuff (as we had hopes of continuing the project, but he was limited on funds).. so we were/are on good terms.

Fast forward to the beginning of April (and the beginnings of the craziness), my former client decided to just shut things down. In his mind no sense in spending money for something he wasn't using, so he had shut things down. I had been thinking for months that I needed to vacate the premises of his servers, but had gotten around to it. Strangely enough it was a warning from some Google Webmaster services that I signed up that told me that my domains were down.

Now I had a plan already (more on that in another blog post), so I rushed my plan into action bringing my sites back up from the dead (well, everything is up, but I'm not 100% happy yet.. this site is close though). I was able to extract most of my old blog posts (I have a couple that I can get back, but not sure it's worth the effort for a post from 8+ years ago!) The one catch and the real point of this post (man, I'm long winded!) is that I had to go back through every post just to get all the dates right. I left the comments behind (a long time ago). I combined both my old Jay Kimble blog and my TRT/CodeBetter/DotNetJunkies blog posts into a single archive (actually this blog now goes back to those early days).

During this process I discovered a few things:

1. Wow! When I started, I was more than a little grumpy. I could point to a bunch of posts where I just needed to get my emotions out. Now when I started blogging, I had more than a few issues (I'm getting better). I also was in a job that I hated. It showed.

2. Back in the beginning I had a good group of friends who were opinionated but not blogging. I leveraged a number of those conversations to create blog posts. 

3. I was not as good as I thought. I guess too we're talking about content from over 10 years ago. I have grown. I'm a different person and a different developer.

4. Has it really been over a year since I blogged? That's hard to believe! Part of it is that I have been busy in life as well as busy professionally. And honestly, I didn't have that much to say. I have just stepped down from my community involvement and am looking to step up my blogging/speaking efforts again (I'm not really interested in running a user group anymore or at least for now).