Sprint Planner Helper – Session 24

My detour for learning ASP.NET MVC is coming to an end. I cannot say that I fully know the framework, but I have a much better understanding of it now, and that will hopefully help me keep the tempo up.

I have a few things left (such as editing product backlog items) surrounding the product. But I will leave them for later. I am so long back to DDD that this project also aims to teach me.

The third item of my user stories is a biggie and it concerns Sprints – the main object of my domain model.

As a user, I can create a sprint that represents a sprint in which some items of the product backlog are to be realized.

The sprint has a goal description and a start, stop, and demo date, and the team members with availability (in %), absent hours, and...

Read More

UpdateModel, FormCollection and Unit Test

I ran into some problems with an Action Controller method that accepted a FormCollection. Inside the method, I use UpdateModel to get the values from the form into the model class.

Here is a skeleton implementation of the method:

[UPDATED] Some insightful comments by Steve made me do some changes to this code. I have now updated it. The tip had to do with if the ValueProvider should be set on the Controller in the test or in the actual Action method. I finally opted for the latter and changed it into this (significant code in bold).

[AcceptVerbs(HttpVerbs.Post)] public ActionResult Create(FormCollection form) { // Create ViewData ProductForm viewData = new ProductForm(new Product(), productOwnerRepository.

      Read More
    

Årets höjdare 2009

Last night, Avega hosted a fantastic party, complete with a performance by the Avega Band. The evening was filled with fun and excitement, and awards were handed out, including the SM I Affärsnytta among others.

To my surprise and delight, I was honored with the “Årets höjdare” award (Avegean of the Year)! This award is voted on by the consultants of Avega, and I was completely taken off guard. Last year’s recipient was Joakim Sundén, a remarkable individual who has made a significant impact on Avega’s presence in Sweden.

Receiving this award was incredibly humbling. Standing among such a knowledgeable and skilled group of colleagues, I felt deeply honored that they chose me as their favorite.

Årets Höjdare

Thank you all for this amazing recognition. It is, by far, the finest reward I have ever received!

Thank you!

Read More

Sprint Planner Helper – Session 23

This has been the longest session of my project so far, spanning over four separate hours and nearly a week. My schedule was packed with other commitments, but I made significant progress.

The main challenge was grappling with some ASP.NET MVC framework issues related to data binding in views and the UpdateModel method. To cut a long story short, I encountered difficulties and reached out for help on the MVC-forum. I received excellent feedback from Alberto, which you can read in my forum post.

Here are some key takeaways from this session:

  • Use a Separate ViewModel: It’s crucial to create view-specific classes that streamline data handling between views and controllers.
  • Naming Conventions in Views: For example, using Html.TextBox("Product.Name", Model.Product.Name) in the view and calling UpdateModel() will correctly populate the Product property with the new Name value.
...
Read More

He walks!

Today was a milestone moment: Albert took his first real steps! After being so close for a couple of months, he finally walked back and forth between Elin and me.

Albert walking. A bit wobbly...

It was an incredible experience to watch him gain control of his balance and see the confidence grow as he moved along.

Albert walking. Now with confidence

Read More

Sprint Planner Helper – Session 22

I have had some serious thoughts on what to do next in my project. On one hand, I want to update the way I am doing the GUI for the product and product backlog. Right now I am warm and learning a lot about ASP.NET MVC so it feels quite good to continue there.

On the other hand, this is first and foremost a DDD-learning experience, and I have got stuck for a while in the ASP.NET MVC trench.

And finally, since I only have one hour, either way will take me on a detour from the other track. What to do?

After some serious consideration, I decided to spend today’s session on a DDD thing I ran into in the walkthrough. I want to implement the “IsValid and GetRuleValidations” pattern and include it in my BaseRepository Save method.

That will be enough for...

Read More

De Blob – get a joy-kick!

I bought a new WII game yesterday – De Blob. It is a real fun-injection which I recommend to everyone. It such a good feeling to bring color to an all black and white surrounding.

Here is a short clip that introduce the game and the plot:

I’m sorry to say that it will ruin my Sprint Planner Helper project tonight. On that subject I can say that I am still wondering on how to redo the GUI. I am not fond on how it’s coming along.

Read More

Sprint Planner Helper – Session 21

I’m back! After doing a detour through the sample chapter of the upcoming ASP.NET MVC book (lovingly called “The Four Faces,” I heard…), I now feel ready to continue.

I learned a few things from that sample chapter—not just about ASP.NET MVC but also about some flaws in my DDD-ing, especially in the use of the Repository pattern.

The main thing is that I have a separate Update-method that feels a bit strange. Another thing I learned and finally understood was the IQueryable interface.

By using IQueryable, you can defer the execution of the actual database query until the client calls, which means that the query will be fine-tuned with all the parameters that the client includes (such as Take, Sort, etc.). For a much better explanation see this.

So, I’ll update my IRepository to something like this: