Category: Productivity

Choosing what Technologies/Frameworks to use

TechnologyBasics I have seen a few of my good friends on twitter discussing what technologies/frameworks they use and why they chose them.

I have also seen people saying why they should use this technology/framework over that technology all with really good arguments, as well as people asking which technologies/frameworks/libraries they should look at.

Note:- This is from the perspective of a company and not an individual developers stand point.

It comes down to a number of things and twitter isn’t really the best place to discuss this as it’s too small to get your point across hence this blog post.

I have worked in a few different places over time and there really is no single answer, some financial place I was in you were told which technology you were going to be using and it wasnt even up for debate, software architects who you would never even see had made the decisions already whether that be a good idea or not.

I would say choose the technology/framework that fits your current criteria as well as the technology/framework that matches your teams skill sets.

There has been a few posts about MVC or Nancy, in the end who cares what you choose? – if it gets the job done right?

Perhaps if you’re in a small team then its easier to choose say Nancy over MVC perhaps? – but if you walked into a team of 50-100 developers in a company im betting more people know MVC than know Nancy, that’s not to say MVC is better than Nancy, I havent even looked at Nancy, why not? – for a couple of reasons, why do I want to look at Nancy when MVC is used through our solutions, do I want to spend time learning another tool that does the same job? – no I don’t have time, don’t get me wrong I love to look at new ways of doing things, but I want to spend time learning something else like KnockoutJS or RavenDB and expand on my skill set, id rather do that port perfectly fine code bases which use a number of tools that run on MVC to Nancy and then have to check everything still works as expected including tests, build scripts, all sorts of other tools we use like chirpy and T4MVC.

People wonder why companies choose Microsoft products over other similar products and from experience it’s usually for either the option of MSDN licence support if required, or that more developers out there know and understand the product therefore there is more chance of help/finding a solution to a nasty bug – sort of strength in numbers it’s also easier for a manager to say to their boss look we will use SQL Server instead of CouchDB because of the products past history and thy can sleep safe in the knowledge its proven – I am not saying that other products are brand new and not to be trusted far from it, but I hope you get the point.

Recently we started using CoffeeScript for our latest project and to be honest I have never liked it, it was good for organising code in a better structured manner and I will leave it at that – we are looking to move to TypeScript and this isn’t because it’s a Microsoft product, its open source and I just think it’s so much nicer due to the tooling. It’s a better too for the job in my opinion and in summary there is no magic answer to what the best technology is, decide upon the variables in play and go from there is what I would suggest.

Not everyone will agree so feel free to add a comment.



.Net Demon Review

In the last couple of weeks I have been using .Net Demon which is an add-on for Visual Studio 2012.

As you write your code in Visual Studio code it can take time to stop and check if the solution still builds as expected, with a larger solution this can become a fairly slow and laborious task – .Net Demon compiles your code as you type, this means you no longer have to stop coding and then rebuild your solution which is a really nice feature. The second you introduce an error you will be notified in the bottom right hand corner – this may sound intrusive but its far from that, your simply notified when you introduce an error.

The tool comes with some nice options including:-

And the description for these options:-

Below I have just opened Visual Studio 2012 and .Net Demon is building the project:-

Below .Net Demon has built all the projects in my solution and is showing no errors:-

Below .Net Demon has built all the projects in my solution and is showing an error after introduced a typo:-

Summary
.Net Demon is a very nice little inexpensive add-don for Visual Studio which will speed up your development process and give you a nice little productivity boost for a very small amount of your hard-earned cash, I recommend you give it a try, a 14 day trial is available

Let me know if you try it and what your thoughts are – enjoy.



Practice Code Kata’s And Learn

I have been reading up on code katas and think they are a fantastic idea, for those of you who don’t know what a code kata is have then don’t worry read on.

A code kata is, as I see it, how to take a requirement, break it down into a list of simple tasks and then write the code to solve those problems, pretty much what a developer would normally do anyway but you could tackle the problem using different coding languages/styles/patterns.

The reason I think code katas are interesting is as follows:-

  1. It will help you learn to use TDD – Use Test Driven Development to write a test before you write the code, write the test, run it so it fails, then write the code to make the test pass and that’s all, do this for each part of the problem your trying to solve.
  2. Estimate how long you think it will take to complete, then time yourself and see how long you take to complete the code kata.
  3. Help improve your typing skills and learn shortcut keys as you try to be more productive and learn to do the kata quicker each time.
  4. Use them at interviews to test your interviewees, see what they come up with and how they think rather than asking them about something they googled the night before the interview.
  5. The best way to learn how to code well is to practice, just like a musician needs to practice, good developers practice too.

Good examples

As a good starting point take a look at Roy Osherove’s string calculator – this can be done using a number of different code languages.

More code Kata’s can be found below:-

Let me know if you find any more and I will add to the list.



Chirpy for MVC

Chirpy is an open source Visual Studio Add In For Handling JavaScript, Css, DotLess, and T4 Files.

Better Page Performance
When you validate your site against YSlow it gives you reports on why your webpages may take some time to render in the browser – Chirpy can help with this big time by minifying script files like javascript, css and more so that there are less requests made to the server on each page request – better page performance is always good.

YSlow

The full list of what Chirpy can do can be found here.



Be more productive in 2012

In order to be more productive as a developer I have came across some invaluable tips and tools through the years so here they are:-



Deploy more often

As simple as it sounds deploying to production can be a complete nightmare, however I reckon it should be done fairly regularly, if you don’t want to deploy to production then there must be valid reason for this – yeah I hear your cry.

Not wanting to deploy to production really means that either you don’t trust your deployment process to production, it takes too long or something else makes you wanna run in the other direction when someone mentions the need to deploy to production.

Deploying to production on a regular basis might seem like a bad idea but really I don’t think it should ever be – you may only deploy to production when a change has been made or a release is ready to go out and that’s a fair point, however deploying even without change can and should in my opinion be welcomed.

A question for me would be can everyone in the team working on the project be able to deploy to production, does your team fully understand whats involved, if not should they?

These are just things to consider but in my opinion no matter how hard a release to production is – the more you do it the less of an uphill struggle it will become and perhaps a different solution will appear.

Comments welcome.



Why having coding standards if you dont do anything about enforcing them?

Simple question but how many companies have a coding standards guideline document and do next to nothing about enforcing it?, simple use Resharper.

If you’re a .Net Developer and you’re not using Resharper then I really believe you’re not as productive as you could be – using Resharper with StyleCop you can have share and therefore enforce coding standards which ensures that everyone is writing code to a set of rules which can be defined and then shared across the team.

One of my favourite things about Resharper is the huge improvements you can make to an existing code base, open most projects up and a vast array of code improvements are shown up, such as unused code, unused variables and a lot more.

Finding issues with code, code improvements could not be simpler and once you have defined your coding standards you can click on any file, project or solution and get Resharper to clean your code base against your defined standards.

Starting from scratch on a project or even a class file is even better, as you type improvements are suggested, adding using statements are a matter of pressing Ctrl and Enter. Adding shortcut combinations, changing existing keyboard shortcuts, removing unused code and many more improvements are just a 2 key combination away.

I was so impressed by Resharper I bought myself a personal licence and the latest version is superb.

Selling this to your manager/team leader/boss should be simple, it doesn’t cost the earth and I guarantee it will make you write cleaner, easier to follow, more professional code for the entire team against your companies coding standards which will actually be inforced.

Integrate StyleCop and even indentations, line spaces between methods and so on can all be validated so that everyone in the team’s code is standardised.

Do yourself a favour and go get Resharper



Tip for speeding up your pc or laptop

Recently a friend was complaining that her laptop was running really slowly and I asked her to check the memory within task manager – like in the screen shot of my pc below:-

Memory Screen Shot 1

The problem in her case was that her laptop was using 66% of the total memory available even when it was idle, I mentioned that she sound check how much memory her laptop had and to perhaps get more memory if required – she wasnt sure how to do this so here is a step by step guide to checking what memory your pc had and what it can take:-

  • Go to the Crucial website and look for the System Scanner, download this and then run it, it will scan your pc and give you a whole heap of great info on your pc/laptop memory including how many slots and what chips you currently have.

    Memory Screen shot 2

  • The following video explains how to use the system scanner

Note:- The tool even shows you compatible Solid State Drives (SSD) for your pc.

I highly recommend even trying the scanner to see just how much memory your pc has and what it can go up to, more memory can make a huge difference.