Monday, 15 May 2017


Hey guys, it's been a while and I apologize for my silence as I have been working on some products at work that has had my undivided attention for about 7-8 months. I have not been good at blogging all that has been happening but I will try to be better this time around.

What's Krakin now?!

Well, I have been busy writing webapps using mvc 5 and core mvc all this while and I have to say that Microsoft really make a mean framework. It is just better than anything else I have used from other programming languages. It has been very rewarding and transforming. I decided to prepare and write certification exams so watch out for a new professional coming soon! 😎😎

I also have been playing with python, which I have long admired. If you haven't tried python, I suggest you do. Microsoft is positioning python for great things ( R & Python as tools to be used with SQLServer, Graph etc). I have been looking at Flask MicroFramework, Django & its been fun. I am hoping to get a Raspberry Pi so I can take my experiments to the next level.

Happenings in Tech now

I was able to stream certain Key Note addresses during the just concluded Microsoft Build and I have to say I was blown away by the things that Microsoft is doing now. This new Microsoft is the one we should have had a long time ago but I guess its still okay that we have it now. I have not been surprised by the progress made by .NetCore, AspNet Core and other open source initiatives by Microsoft, I actually expected it as I thought it was the way forward for a progressive Microsoft. Also Google Cloud taking on .NetCore support in Beta is proof of success. I will write about the applicability of AI and a lot of the things announced at BUILD 2017 for people here in 3rd world countries and how that there will need to be serious thought before the benefits of such advancements can be beneficial on an everyday scale. When I say everyday scale I mean, will applications be affordable and easy to adopt? Anyways that's for another article. 

Cheers everyone and have a great year ahead.

Friday, 3 June 2016

Clarity On AspNet Core, DotNet Core decisions

I had strong opinions about the changes in rc2 of dotnet core, aspnet core and I wasn't happy about moving back to csproj, msbuild and all them type of decisions. I watched the AspNet Community standup yesterday and I had all my questions answered and I have to raise my hands and say I was just worried that these changes were not the right ones to take us forward, obviously I was wrong. They know the problems that led to the changes better than any of us on the outside could ever know.

What was particularly pleasing is the "unification of dotnet" that was mentioned in the standup and I have to say that the plans are noble and that is what I had hoped dotnet would be heading to. I just now understand that I don't have to worry too much about how it gets there, but to appreciate the fact that I think the best people are on the job of taking us "there". I must apologize to the entire "core" team at MS for what I feel are harsh comments made. 

I hope we make progress going forward.

Wednesday, 1 June 2016

MSTest Suite Compatibility with DotNet Core Projects.

About two days ago, MSTest compatibility with Core Projects (projects based on .NetCore, CoreClr) was announced. It seems a good thing but I can't help but wonder how certain things are chained and MSTest is one of the results of some of the churn we have seen in the last few weeks.

AspNet Core 1.0 RC2 was announced about a couple of weeks ago and the dotnet team also annouced that the project type for dotNet Core projects has changed from xproj to csproj and it wasn't too popular an announcement, which you can read the announcements and comments here if you didn't read the announcement and the comments. With the announcement of MSTest, I think its clear why csproj is favoured over xproj, incompatibility with MSTest. Xproj (which from what we have heard online for a long time, means DNX project). with which the language doesn't matter and is different from csproj for C-sharp and vbproj for VB. According to this site, MSTest isn't compatible with xproj, which led to xUnit, a testing suite used by the AspNet Team. Since reverting back to csproj format for .NetCore, CoreClr, AspNet Core projects, mysteriously, MSTest works with them type of projects! I don't like the happenings around these projects since RC2 of AspNet was released. Lets hope things get clearer.

Again, these are the opinions of a lowly .Net dev.

Tuesday, 24 May 2016

AspNet Core 1.0, EntityFramework Core 1.0 DotNet Core

I am a fan of the work that Microsoft and its developers are doing with AspNet Core and EntityFramework Core. I think both frameworks were due a do-over and what they have done so far has been top quality. When I first started using EntityFramework 5 (I am a late comer to .net development) and later EntityFramework 6, I just assumed that it should have some kind of ODM (Object Document Mapping) capabilities. I was surprised it didn't, I just used EF because I thought it is great technology. When I heard that one of the new features of the new EF was new datastores, new platforms, I thought to myself "This is a dream, Microsoft actually caring about making their tech work on other platforms and other technologies?" I was looking forward to it. EF core 1.0 I like very much, when I think of the advantages it has already over EF 6, I decided to use it for my project. As I have used it I have found a lot of good stuff but I think the EF core is missing on shipping what I think are more important bits with it. Multiple DbContexts, NoSql Datastores, saving related entities and a few other features should have been in rc2. From the way I see it, bringing everything under dotnet has made things slightly strange.

I felt the same about aspnet. I used MVC 5 to create a few web apps for clients and I found it was much better than anything that I had used before from other Languages and I really enjoyed it. But using it with mono on Linux was a nightmare, with errors that might require a some serious dedicated time for debugging and all that which overtakes the essence of trying to use MVC 5 on Linux. So when I heard of then, vnext and then aspnet 5 now aspnet core, I was almost jumping for joy. Today using VSCode, to see aspnet code just work, building and testing web apps with no weird errors is just wonderful. A new era of .net development has come.

.Net Core team and maybe the Fx and all the other team members have done a miraculous job rolling out the new dotnet in such a short time. Big thumbs up, but moving your tooling back to csproj/msbuild is the wrong move to me. If I am not interested in uwp and other windows based dev projects, why would I want to have a csproj based project. Highlighted by several microsoft developers are the troubles of source control and csproj for example, so why are we going back to that again?! The project.json file in rc2 looks cluttered and noisy, something that had been done away with before rc2. The .netstandard 1.5 or .netcoreapp 1.0...ugh its all much. I like how python organizes things with their PEP-xxx standard. If I am trying to use a full .net self authored library, I have to think about conformity to netstandard 1.5, Uh-oh not to mention netcoreapp again. From my experience in the past, the .NET framework was itself a standard that we code against. Having these standards, make things hairy not difficult and anything that gets in the way of developer productivity is a turnoff. I wanted to use xunit with a project I am working on and decided to use the newest bits from the myget source used by the aspnet team and I kept getting errors about netcoreapp 1.0 something....or netstandard 1.3 I decided to use Nunit which installed with no errors. Then I try to bring a reference of my web project into my test project and I get errors again about these netcore or netstandard based errors. Now maybe we don't bring in references in anymore but this just made me decide to just code and forget unit testing for now, what matters to my client is not if I unit test but that a working app should be presented when we do a review of the project next month.

I think the EF Core and AspNet Core  guys have done a fantastic job. But it seems accommodating dotnet has made things sort of tacky and that is what Microsoft should avoid. Don't try to be everything to everyone, be one thing to everyone. I don't know if it is because of rc2 but project.json looks cluttered and complex, I loved hand-editing project.json  easily but, for example, under frameworks, which do I use? it used to be dnx451 or dnx50, now there's dotnet56 and portable-netxx.
If I remember correctly, Einstein spoke of the virtues of simplicity driving the heart of any complex animal, what was there before seems to be better than what I see so far.

These views are personal but some of my views are shared by some folks:

You have had a good record listening to the community EF Core AspNet Core DotNet Core, so please listen to a small voice, from a small corner of this large ocean called the web.

Thursday, 11 February 2016


I recently was at a job interview for software developer position (backend) and the company wants someone with
experience with C#/VB.NET/ASP.NET/MVC and LARAVEL/PHP. I had previously done some laravel development but I soon
left php development altogether and started C# and I have not looked back since. But I was adviced by the interviewer
that I should look at PHP/LARAVEL development again as he was impressed with what I was offering their team in terms of
experience and skill. So I got online and got wamp & composer on my system and them got laravel on my system. It wasn't
as bad as I thought it would be. A lot has changed in laravel since I last used it (this was back when it was laravel 3
or so). But I realized that that their idea of a model was totally different from the code-first EntityFramework that I
have come to love and have been using for the last 3 years. So I decided I wasn't going to use the Active Record pattern
that comes with Laravel. I stumbled on some blogs that spoke about the alternative, data mapper pattern with Doctrine 2.
I have been looking at it for the last 24 hours and I have got to say doctrine will make development with Laravel sooo
much more fun than I have experienced so far. See I started development when you had to learn SQL and I have always felt
that learning and using SQL was a distraction to me growing roots deep in Object Oriented Programming. So when I first
heard of ORMs (Object Relational Mapper)s, I wasn't sure how to take it. But when I decided to go .NET, I already was
dreading ADO.NET working with datasets etc, I discovered EntityFramework 5 and decided to find out what this ORM thing was
and I was hooked. I think what the .NET platform and all the languages therein have done for software development is just
remarkable. For me personally, when I decided to take the plunge, what I have learned in 4 years I didn't and could learn
in 5 years with php. But with Doctrine, it seems using php might be fun again for me. My default web dev stack will always
be ASP.NET/MVC since it now is cross-platform, but for those clients who don't want to make a big payment for a webapp,
I think php will be a good alternative.
So in a few words I would like to say to the guys developing Doctrine, THANK YOU!!! You have made me a happy dev. :-)

Sunday, 3 January 2016


2016, here we are. Doesn't feel any different from last year but the year has changed and I think for the better. 2015 was a year of giving in my opinion, one of the biggest givers in my opinion is Microsoft. It sometimes felt like they were giving everything away but I think this makes Microsoft better as a company. They gave Visual Studio 2015 community, by far the best free IDE for development hands down ( remember just my opinion, no need for a flame war ), they gave Developer Essentials, 6-month Pluralsight subscriptions...even as I type this, I feel Microsoft have done so much in 12 months and this is not even counting the various projects that they have open sourced and made easier for all to access and use technologies on open source platforms like Linux.

Microsoft is different from like 10 years ago so I think all the inhibitions of using Microsoft Technology in any startup should disappear. I want to start a software solutions consultancy and one of the main draw backs was Microsoft because our target clients have Windows everywhere and trying to develop solutions based on Windows was plagued with $$$$$$=N==N= every where. But with this "new" Microsoft, we are certain to rest easy, and create solutions with abandon knowing that there is space for the little guy regardless of where he is and what he wants to develop.

I think we can salute the efforts of Microsoft in 2015 wouldn't you agree?!

Wednesday, 23 September 2015

Technology adoption...a keyhole view

New Technology announcements issue

The Internet has made it very easy to keep up with new technologies as often as they come, its now possible with a good Internet connection to witness the launch of a new flagship phone to new versions of software that you use on a daily basis. Its not perfect, Internet services in Nigeria and most other African countries, but at least the little we have, we make the most of. But as a developer in a third world country, I find that a lot of the technologies announced and released are not entirely useful where we are looking to use technologies to change the lives of people. Take the cloud for example, I understand and deeply appreciate cloud services like Azure (wonderful service by the way...), Amazon, Goggle Apps etc. What they promise and provide is wonderful but when I start to think of a solution that would take advantage of some of this wonderful promise, I am faced with a dilemma. how would I encourage a business owner or any kind of business to put their business dealings in the cloud or even make a commitment to adopting, even in a limited capacity, these new technologies to better their businesses? There are several issues here, educating businesses on the immense advantages to embracing technology as a partner in growing their businesses, why the Internet (and by implication) the cloud isn't a scary prospect and how they need to change in order to become "better"! This is apart from the cost of  Internet which by the way is still expensive because for the most part, we use 3G for Internet for all of our online whatever, and so many other things that I cannot mention here and still have a decent blog post. So even with all the wonderful pieces of tech, whether software or hardware announced, its applicability and reach still is a cause of concern for devs and other tech people in third world countries.


Every now and then, you find some announcements that are far reaching in relevance than other tech releases out there. Recently, I read an article at infoWorld, where the author was speaking about private clouds being an extension of public cloud services and he thought that Microsoft was at the fore of private cloud provision with its Windows Server 2016 product which is coming soon. I think this is a brilliant development because clients here prefer on premise solutions, we could extend that to connect with Azure and provide other parts of the business that are not in the same locality with access to the business. I had a client cringe at the cost of doing this sort of thing years ago with Windows Server 2003. Assuming cost and other such obstacles are dealt with, this would make a platform to develop solutions on and make it as wide reaching as possible at a fraction of costs seen years before.

What is the gist of all that I am saying here? New breakthroughs in technology is useless if its relevance doesn't reach a particular percentage of your target demographic. When you have focused view of technology, you are able to make good decisions about technology adoption and use. Take a keyhole view of the particular domain you are trying to solve a problem for in the context of where the solution is to be applied and you will see that your choice of technology will not always go for the newest. Rather it will go for the most pragmatic set of tools available to solve the problem.

Ah well, these are the ramblings that hopefully will get someone on the right track to something!!!