Things I learned today Oct 4th 2016

So honoring the premise of the site I’ll throw out a few things I learned today. Even though I’ve been in development for about a billion years (give or take), I’m still surprised at what I don’t know…or had known and forgotten.

  1. There’s a really cool Nuget package that builds nuget packages on each build. You might have to read that sentence a few times. Basically you can add it to a class library and every time you build, it creates a NuGet package for you. Pretty slick. https://newnugetpackage.codeplex.com/
  2. Azure websites don’t support Basic Authentication out of the box. There are good reasons for this…which I had not considered before publishing a little test project. I found this library to assist and will be giving it a spin. https://www.devbridge.com/articles/basic-authentication-for-windows-azure-websites/ If it warrants a blog post on it’s own I’ll let you know.

So anyway…there you go.

 

ShopCore Initial Architecture

In order to build a system that is highly available and scalable we’ll be breaking the system up into sections.

There will be a public MVC App. This is where visitors will browse, search and make purchases.

There will be a seller MVC App. This is where sellers of product will manage: their users, customer service issues, product catalogs and fulfill orders.

There will be an Admin MVC App. This is where Administrators (ShopCore employees) will manage: system settings, new seller invites, customer service.

Controlling Authentication and Authorization will be an Identity Server 3 System. (I’m totally new to this part, so I will probably fail a few times getting this section right).

Below is a crude drawing of my initial thoughts:

architecturev0

If you have any thoughts, I’d love to hear them.

As always you can find the project at: https://github.com/PrintsCharming/ShopCore

ObjectHydrator 2.0

After a long dormant period for ObjectHydrator I’m diving back in.

In this new version, the main thing I’m doing is adding .Net Core compatibility. Not really due to demand or anything, but mostly just a learning experience.

I thrashed on converting it for about an hour or so last night before giving up. Turns out I needed a change of venue, I came to the car wash with my laptop and decided to try again. This time I started with the premise of a super simple Class Library to convert.

Viola…I was over thinking it.

This post from Michael Whelan helped me out a ton: http://www.michael-whelan.net/porting-dotnet-framework-library-to-dotnet-core/

Alpha 2 of ObjectHydrator should be done tonight sometime.

Then I just need to figure out what changes will be needed to the unit tests…if any.

UPDATE:

Today I learned that you cannot directly reference a .NET Core Class Library from a standard .Net Application…you have to build a nuget package then reference that. This solution is sub-optimal.

Apparently there is tooling in the works for this, but until it’s ready I’ll probably hold off on Alpha 2 until it’s done.

But you can build Alpha 1 from source and it should work nicely in your .Net Core projects.

Hello ShopCore

In order to try to create a ‘real world’ project that *could* contain all the techniques I’ve outlined in Hello World I decided to build an e-commerce application.

It’s my intent that at the end of this, we’ll have build a simple but fully functional e-commerce platform running in Azure.

The core tenants of the application will be:
Azure Hosted
.Net (Completely? Mostly?)
Pragmatically TDD (Meaning I’m not a zealot, but will definitely lean on this earlier in the project and where makes sense and likely loosen up into mainly integration tests near the end). Hopefully that will make sense as we move along.
Azure Table and DocumentDB backed
Azure SQL if needed
WebAPI backed
Asp.Net MVC Front End (Maybe evolve to Angular as we get along)
Swagger and Swashbuckle
And any other fun tools we find along the way.

What this will not be:

Asp.Net Core. At least not at first. There are a lot of reasons for this, mainly being that there are still some big changes in the works from what I understand. I simply don’t want to let those changes get in the way for now…besides when the time comes, it’ll be a great exercise to convert right?

So today I am opening up the ShopCore repository, which you can find at https://github.com/PrintsCharming/ShopCore

Right now it just has a Word doc, in which I’ve collected some user stories. Feel free to take a look and recommend some user stories I might have missed.

Hello world!

Welcome to Learning in the Open.

My intent with this site is to share openly, my learning of web development topics that are just outside my wheelhouse.

A little bit about me. I’m primarily a backend developer who focuses on driving value to the team and the product. I’ve been working on the same product that I’ve decided I need to learn a few dozen new technologies, so I can keep my team motivated and current.

So to that end…here we are. In no particular order I’d like to start learning the following technologies:

Angular
Entity Framework
Bootstrap
Azure Table Storage
Azure Search
Azure Migrations in General
Asp.Net Core
.Net Core
Identity Server
User Stories
Azure DocumentDB

I am going to try to do as much of this in the open as I can. Hopefully you’ll learn along the way, or maybe even give me some pointers and insight.

Ryan