Friday, 24 April 2009

Wading through Jam

Ugh. It's a Friday afternoon and I have found myself wading through a serious amount of Jam. I have been working on an internal system of ours for some time (C# ASP.NET MVC). I have come across numerous problems with the latest development work I have been doing.

The problems I have come up against a numerous. For example I have 2 controllers that are related as they have the same ancestor class but they are slightly different. Now the easiest thing to have done is to have written 2 complete classes but the amount of duplication would be bad programming so I had to find out a way of getting round it. The way I have got round it is by creating a base controller class for them both and then using generics to get round the problem of the shared methods that were in the base controller.

As I almost finished the job I came to a realisation that on the view that I was developing, a user would could fill in information, then navigate away to add some data on another interelated view but would lose anything they had originally typed in. I have tried everything to collect that data up in some sort of session variable but have been unsuccessfull in MVC.

I knew that if I submitted it, that it would probably sneak through QA without the problem being picked up on but I don't think I could live with it. Having a really good think about it I decided that if a user had to navigate away for any time just to add interelated information then maybe my views were bad anyway so I have gone back to the drawing board with it.

I think that means I have passed the first test. I just wish the test wasn't on a Friday afternoon!

Wednesday, 15 April 2009

Using Linq and generics with a Repository

I have been creating a final year project piece for my part time study that I have called CabControl. Basically it is a piece of Taxi rank software. The design is made much easier as we only have to account for account work. I have tried to make the work I have done as close to commercially useable as possible however there are some obvious omissions and that is mainly because I have to do it in spare time in between a million other assignments and interests.

The course language is in VB.NET and the database we were advised to use was an Ms Access one. I could have done it like this and sure, it would have been easy but I really wanted to learn something out of this so I asked if I could use some more funky up to date technologies in mine and so have used C# .NET 3.5 and all that it includes.

One thing I really wanted use was the Linq to SQL classes. A lot of people have not taken to this in favour of NHibernate (including my work place) as the Linq to Sql has some questionable features and is not as scaleable. However for small projects you can get going really quickly with it.

Once you have created your tables in SQL just drag them onto the Linq to SQL class screen to create on the fly classes for your tables


Any relationships that were in your tables are kept in the classes as well. For example;

The relationship between an Account and a booking is that an Account can have 0, 1 or many bookings. This means that through the Account object that is created you can call upon these bookings and then iterate through them or alternativatley you can access the related account object through the Booking object such as:

booking.Account.Name; Check the MSDN website out for more details on setting it up, there are quite a few blogs on it, also check out Scott Gus blogs tutorials on ASP.NET MVC on http://www.asp.net/learn/mvc/

Comments System

Disqus Shortname