ASP.NET MVC – The Nerd Dinner example

I am going through the free sample chapter that I talked about earlier. It’s one thick chapter (196 pages) but it’s really good to introduce concepts and features of the ASP.NET MVC framework.

I love it! I cannot say anything else when after a few years of WebForms and me not understanding I am back. I actually get this – no more funky event-firing and endless questions about which event is fired first.

On top of that, the whole framework is built and works very well to be tested and built with TDD.

There are so many nice little features that I just cannot wait to know as well as the back of my hand… UpdateModel and ModelState just to mention a few.

I am now halfway through and will continue to the end. I’ll get back to you if anything more...

Read More

Sprint Planner Helper – Session 20

Today I plan to finish up the last part of the prioritizing of Product Backlog Items (see Session 19). That is, TDD the controller and then wrap the GUI.

Let’s go!

Whooa – I ran into some problems with routing. Some problems that took me about two sessions (read: hours) to solve. To not bore you with details or meaningless posts of me scratching my head, I’ll sum it up in this post.

Here is the layout of the “problem”: I have an Action-method with two parameters:

public ActionResult PrioUp(int productID, int productBacklogItemID) 

OK – but how do I create a link to that method? Well, by using the Html-helper ActionLink-method, of course. You define an anonymous object with the route values. Here is my example:

ASP.NET MVC "The parameters dictionary contains a null entry for parameter”

This (The parameters dictionary contains a null entry for parameter) exception was thrown at me and confused me for a while.

If you ever encounter it I can almost guarantee that you have a Routing-issue. That is the way the ASP.NET MVC framework is figuring out which controller and which method to invoke.

In my case I had a controller action method that required two parameters but my routing table only allowed for one.

Here is a description on how to add your own, custom route rules.

And also here is a great tool to understand and debug your routing-table entries.

Finally – this webcast contains a discussion about how to change routes.

Read More

Sprint Planner Helper – Session 19

After my refactoring yesterday, the function that re-prioritizes product backlog items was reduced to swapping priority points on two items.

So that’s what I’ll do today. TDD through a function that swaps priority points for a product backlog item and the item before (prioritize up) or after (prioritize down) it.

Coding in progress

That really was an old-time programming problem. Fun! But now I have TDD’ed a priority swap algorithm. That was all I managed to get through today. Some progress, I think.

Now all that is left is to reach this functionality from the GUI and reload the list after it’s done.

Read More

My light and song

In a few weeks the Vasa Band will do a music festival at the corps. I will play an euphonium solo and was looking for something that isn’t played very often.

For a long time, several years actually, I have had the solo part for My Light and Song (FS 228) in my “collection”, but never dared try to play it.

I have actually never heard it played (actually Patrik Randefalk did play it with the Vasa Band in the 90s) or recorded.

I’ll try to post a recording here… after March 25.

UPDATED

This is so sick! This book contains all music (kinda) that is available for euphonium. And who has recorded it! Including a reference to recordings by my father.

And My Light and Song is recorded. By a Mr. John Butler.

The internet is amazing…

Read More

Sprint Planner Helper – Session 18

I haven’t done too much on the Sprint Planner Helper project during this week. A lot of Salvation Army activities have taken up my time.

But I have read the blog post (in the form of a PDF-book) from DDD Step By Step. I have read much of it before, but sometimes other words clear things up for you. This book did it for me.

OK – what to do tonight (Abbe is sound asleep and Elin has gone to work). I have most of the stuff from my first two user stories in place. But I need a way to easily move product backlog items up and down in the list. This will come in handy when the product backlog items are estimated.

So I’ll introduce some methods to move them in the product backlog list. And some arrows in the GUI for the list.

Let’s write...

Read More

Sprint Planner Helper – Session 17

When you’re learning something new, you’ll expect some progress and the occasional setback. If you are on your own, as I am in this project, that is even more likely to be the other way around.

My approach to learning this is very much like the way we played with the chemistry box when we were small – try something you believe will work and expect the whole thing to blow up, possibly with a stinging sensation in your eye…

So… I guess that you see where this is going. I have to redo something. Actually, it’s two things. And actually, I am not that worried; the whole idea of agile TDD, DDD, and all this is that it should be easy to change.

The first thing is not a biggie; my Entities have a Guid as ID right now. It’s mega-ugly when I am passing it...

Read More