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.

Exceptions

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!!!

Tuesday, 22 September 2015

Entity Framework works...

Discovering EF

I found entity framework when I became disenchanted with PHP and I needed more from my programming experience. I had admired C# developers but was scared to even try to learn it as there seemed to be no community around it for a newbie like myself to want to learn. Then I decided to dive in head long and see what would happen and I must say I have not regretted my decision ever since. If I had not made this decision, I would never have known about EF.

Entity Framework finally made me see why I should use a proper ORM not just any kind of ORM. I dreaded the drudgery of writing SQL every time I had to write data access code for my apps. I had to start remembering normal forms, table joins, should i use inner joins or left joins? Did I have to do an outer join before in lefty or ...hmmm I forget. I tried using Doctrine during my time with PHP, but I have to say that doctrine didn't make it easier to leave SQL to use an ORM. I was pleasantly surprised however, to see that with EF, with the SQL theory I know and following conventions even though I could still tweak things with the fluent API, I could get down to doing my DAL with minimum fuss. I have been using c# and EF for about a year or so and I have written applications for my Dad's office, for my wife so she can keep track of our spending and a picture upload app for a photo studio, all database centric applications and EF has been awesome in enabling me to handle my DAL code with elegance.

With EF 7 coming, what really excites me is SQLite and noSQL support. On stackoverflow.com, I gave a less than appealing way to get EF 6 to work with SQLite but seeing that EF 7 promises to work with SQLite has me grinning every time. With the amount of  work put into EF, I would encourge you, if you are using Msft technologies to consider EF instead of direct ADO.NET (even though its a matter of preference when it comes to choosing technologies to employ).
If you wan to try the preview bits of EF 7, go to the aspnet team homepage on github and flex your muscles with EF 7.