The other day

I moved to Amazon Mail the other day. I got sick and tired of managing Postfix, Roudcube, Squirrelmail etc. So I changed my MX records and now all my mail is handled by Amazon. its got a great UI and It integrates really well with Outlook 2016 which I like and I like its built in Spam support. I could have gone with Gmail professional but I didn’t. Mostly this was because I'd just made a AWS account and had been studying the AWS service offerings so I just made sense. The other thing that started to make sense was to deploy my current projects into the Cloud via AWS and in the same vain, put my linux servers in AWS. So that’s what I’m doing now.

I’ve moved two of my websites from hosted on a VPS to a shared managed system where I drive the SQL via phpMyAdmin and have some web space that I can access via the Web. Honestly its been 10 years and I so need this now more than having my own servers running all the time and maintaining them. Awesome really. And so cheap too. This site infact was transplanted from my Linux server to a shared hosting space and I think it runs faster(its optimised by the hosting provider). Did the same with my notes and poetry sites.

Some really cool things AWS offers in terms of writing your software : http://notes.stuartmathews.com/doku.php/cloud. These are my study notes. I’ll be using some of these services in moving my projects to AWS and the cloud. Speaking about the cloud and writing scalable applications for it ….

Asp.net Core 2.0

I’ve started to move my Asp.Net MVC 5 web application to Asp.Net Core 2.0. The reasons are two fold. First is that I’d like to get away from the tight coupling between the Web Site and the API because in Asp.Net MVC 5 they go hand in hand. If one goes down, they both go down. This leads me nicely into my next reason. I’d like to create the service as a scalable component in the cloud. So decoupling the API and website means I could replicate these components if one or both go down. Its basically all about scaling now.

in fact there is another reason. Linux. Asp.net Core 2.0 run on Linux so it makes sense if I’m putting this stuff on the cloud to have a cheap Docker container. No license costs to Windows! Smart.

My progress is here: https://github.com/stumathews/CoreInvestmentTracker

Angular 2/5

Now while I’ve been doing this, I’ve decided to go away from Razor and MVC for the front end and do the web part in AngularJS2/5. Now there are two things that are noticeable about this:

  • Its faster to run your API in Asp.Net Core 2.0 using WebApi
  • OData id not supported in Asp.net Core 2.0
  • Many-to-many relationships are not automatically catered for in Entity Framework for .net Core 2.0 so you need to use a join table. Agh but I’d used this work around and its just that.
  • I’ve added swagger support to the .Net Core 2.0 API but not my Asp.Net MVC 5 one (maybe I’ll do that later for fun).
  • Dependency injection is native – so no more unity (as in my MVC 5 API)

Now I’ve quite enjoyed writing the front end in Typescript and angular. I’ve always hated JavaScript because its so incredible messy and you can get yourself in such a horrible mess if you don't pay attention. And after 1000’s of lines of codes and many components of a website, you start straying from the path of consistent because you can be lazy in JavaScript and so lazy that its like holding a shotgun to your nose and with every strike of the keyboard you pull the trigger a little bit more…  I’m not going to talk about why this is the case but along with Angular, the structure and infrastructure afforded by these two technologies is outstanding.

My progress is here: https://github.com/stumathews/investments/tree/master/ASPNET_MVC5/angular

Excel 2016 Add-in

I’m also looking to research more into what it takes to control your excel interactions programmatically. I’ve been able to set up a very basic add-in based on AngularJS. This is basically a website that uses the ExcelApi JavaScript library to interact with the excel app itself. Quite cool. No UDFs yet but can use named ranges to select and work with values.

My progress is going here: https://github.com/stumathews/Angular2ExcelAddin