YABE – Yet Another Blog Engine
10 May 2017

Previous YABE (Yet Another Blog Engine) I made in 2014 just to learn NodeJS, AngularJS, MongoDB and PaaS (platform as a service in the cloud). Did I like my choice? First Yes and then No.

NodeJS is super light from “Microsoft Stack Guy” perspective. You produce less code. Unit testing is effortless and first impression is FREEDOM. Using NPM is to a software geek like being a kid in a candy store. Almost every cloud can run NodeJS and it is super fast. And still, I missed C# and how well my eyes are adjusted to read nicely organized classes, interfaces or LINQ queries. Considering that, TypeScript would be a better choice to continue my NodeJS adventure, but I opted out to switch to ASP.Net Core. I always liked ASP MVC and Core being multiplatform is something I wanted to play with. On the top of that, if you add Entity Framework with Code First, result is a power combo you can use to develop some serious stuff. In following posts I’ll try to share some of the reasons why I think Core is the way to go today. I’ll probably add some Angular and TypeScript later. For the previous blog I “overused” AngularJS so now I’m much more careful.

MongoDB was interesting change at first but I started to get lost in complexity of the records especially if you want to “open” database using some management tool and just peek into the data. Probably because I have much more experience with LINQ to SQL or Entity Framework, since day one I was regretting my decision to opt for a NoSQL database.

I wanted to decouple my cloud code even more from any engine that will execute it. The moment I saw Docker, I wanted it. I made new blog using .NET Core (ASP + EF), PostgreSQL and SQLite database and packaged everything into a Docker container.

For entire development I used Mac and Visual Studio Code. Initially I deployed container to a Red Hat Openshift V3 as soon as it was available for public. After two days of ecstatic playing with pods, deployments and configurations I sadly noticed that only paid version (yet not available) will have a custom domain. Took my container, commented port variable in Docker file and wrote two lines of code to parse database environment variable for Heroku.

I’m good for another 3 years.