Sunday, 13 July 2014

Start small

For sometime now, I have been really drained and as unfocused as anyone can be. So many things were falling apart all around me, my 3 year relationship fell  by the way side, all my projects were half done, I was completely broke and none of my clients was responding, my pc developed a fault and nothing seem to be working. In short my life was a complete mess.

This situation made me to enter into deep reflection, soul searching and prayer. I began searching for the reason why 10+ hours can't put food on my table and why my projects take very long to complete. Why I can't seem to be able to get anywhere even after putting so much time and effort into what I do.

What I discovered 

After much soul searching, I discovered that my major problem was that I was trying to finish a whole elephant all by myself at once. That was why I couldn't finish any project that I started and often get bored with it which results in it being abandoned and left in the hall of fame for unfinished projects. 

Another pot hole to my success all this while was that I often tend to start a project from the back-end instead of the front-end. Although this  maybe argued, but as a solo developer and from the recent results of some of the changes I made. I discovered that its far more better to start a project from the front end as this will quickly help you to define and refine the domain model and the business logic, thereby giving you more bang for your efforts.

The take away

One major lesson I learned from my experience is that of "Starting Small". During the course of my inner journey and research, I discovered that as far software development  is concerned, if you are working alone or in a small team and working in a non-life threatening situation life (like commerce core system development), it is far better to start with the smallest number of features possible. Don't try to implement all the features or correct all the bugs before you set sail, rather get it into the open sea as quickly as possible and then let the early birds and beta testers lead the way. As time goes on, add features not solely based on feature request, but in line with the vision you have for the product. Peace...








Monday, 26 May 2014

A look at asp.net Identity

Introduction

So many good things are being trumpeted about asp.net identity by the big boys in the community. Things like how cool the asp.net identity is, how great the OWIN context is and how its the in-thing now, how two factor security guarantees absolute security for your app users among others . Though most some of these hypes are probably true, the questions that comes to mind is

  1. How is it better than what we already have?
  2. Why should one drop the good old membership system, its offspring the simple membership and start afresh to learn a completely new security system?
  3. What does it have to offer? among others.

I am not claiming that I have all the answers to these questions and many others that comes to mind but we will go through the whole process and see for ourselves what it is really and how we can benefit from the this new thing.

The asp.net Identity is instituted on three major .dll libraries, these are


  1. Microsoft.Aspnet.Identity.EntityFramework
  2. Microsoft.Aspnet.Identity.Core
  3. Microsoft.Aspnet.Identity.Owin

Microsoft.Aspnet.Identity.EntityFramework

This class library contains the data persistent part of asp.net identity that works with Entityframework. It is used for persisting the user details to the database. It contains the IdentityDbContext, IdentityUser, IdentityRole, IdentityUserLogin and IdentityUserClaim with their generic types. This can be installed using nuget console manager in visual studio  by running.

PM> Install-Package Microsoft.AspNet.Identity.EntityFramework

Which installs the EntityFramework and the Microsoft.Aspnet.Identity.Core by default as dependencies.

Microsoft.Aspnet.Identity.Core

This contains the core implementation of the asp.net identity design which is based on a set of interfaces like IUser, IUserClaimStore, IUserLoginStore, IUserPasswordStore among others. It also houses the default implementation of the these interfaces such as RoleManager, UserManager, UserLoginInfo typically used for managing roles, account and logins. This can be installed alone (as it has no dependencies) by running the following via nuget console manager in visual studio.

PM> Install-Package Microsoft.AspNet.Identity.Core

Microsoft.Aspnet.Identity.Owin 

This houses the Owin middleware used for the authentication of accounts both through third party system, local accounts systems and generation of cookies and user tokens which stores the authentication related information. When installed via visual studio nuget package manager, it also installs the above listed packages with a few others like Microsoft.Owin.Security, Microsoft.Owin.Security.Cookies, Microsoft.Owin.Security.Oauth as dependencies. 

PM> Install-Package Microsoft.AspNet.Identity.Owin

This is also the most recommended approach to install asp.net identity as it short circuits all the former installations and installs other packages needed by Asp.net Identity.

Conclusion

In this post we looked at some of the class libraries that houses the new authentication system introduced by microsoft along with visual studio 2013. In the next post we will look at why MS introduced a new authentication system and some of the core interfaces. Happy coding....

Monday, 12 May 2014

It had been a while.

I want to start off by saying that the above title is an understatement because for some time now I have not written anything in this my blog. This was mainly due to laziness and my tendency of combining too many things at once. For some of those times, I didn't even know what to write or how to go about writing it, which I guessed was because of the promise I made in the  my last post about taking my readers from being a novice angularjs programmers to being a ninja in angularjs. But if truth be told, am still pretty much a novice in everything that has to do with angularjs. But maybe perhaps one day I will make good of my promise. Who knows.

Starting off, this post is just my way of apologizing and a form of come back for me. But this time NO MORE PROMISES (at least for now). On the other hand, I will endeavour to post content from time to time, this content will range from the technical through motivational to life and my experiences of it. So feel free to read anything  that worths your time and to skip those ones that is not so good for you, for "life is short" my friend  -try not to spend it on things that will not add to meaning to your existence. Take care.