Given that I’m most likely going to be working with C#, .NET and 3-Tier architectures this summer I listened with interest to our SE24 guest lecture today and tried to rationalise how it fits in with a lot of what I have done already.

Firstly I want to give huge credit to the guest speaker, Anthony Mason, software developer. He had specially written code using test driven development to show us agile methods being used in modern .NET development and I was impressed. Its not often you get a guest speaker who tailors their presentation and talk so closely to their audience and interacts with them in such a positive way.

A number of interesting points were raised in the questions after the talk such as how applicable test driven development is to small scale projects and on a similar vein if a a 3-tier architecture is necessary for small projects given the significant increase in the size of the code base. The response was of course scalability and I’m starting to appreciate that where my past experiences with Microsoft software, development and solutions pointed to seriously problematic applications with respect to scalability (MS Access being a primary example) that this is now in fact changing.

Linux fans need not fear - I’m not about to become an MS convert - but I’m going to give it a fair hearing as a developer because if it has something to offer, I want to see if its worth its salt and if I can learn anything from it that I can apply in my non-MS development work.

I would be very interested to hear from anyone who has worked extensively with .NET and C# in particular as while the syntax is like Java I have a lot to learn and if I am to appreciate the functionality of .NET I can’t be blinded by my inability to work with it as a developer.

For the attention of first years really, I can’t stress enough the importance of studying carefully those first few lectures you had in SE15. A worrying number of people are still not aware of the mathematical implications of dividing two integers, and how things get rounded when you do. This is causing a lot of problems with the first coursework.

For those reluctant to crack open your folders of lecture notes, here is a few pointers:

int valueA = 1;
int valueB = 2;
System.out.println( valueA / valueB );

This will give an answer of zero. This is because the answer must be an integer due to dividing an integer by an integer, and integers must be exact whole numbers, so in this case it will be 0 rather than 1 as the result gets rounded down by default.

float valueA = 1;
float valueB = 2;
System.out.println( valueA / valueB );

This gives you more what you would expect if you did the calculation by hand, 0.5 This is because you have specified both values to be floating point numbers and so the answer will be as well. For some input values (I’ve picked simple examples) you will get a lot of zeros after the decimal place. To rectify this you will want to check out string formatting in the java documentation.

There are many other litte mathematical quirks like this with Java, but that one in particular should help with the first coursework. Please do re-read over your early lectures though as this kind of thing will come up time and time again and it always helps to be sure of yourself.