Kanbanboards V–creating new boards

OK – after the last post of refactoring I now feels great to turn my focus on some new functionality; I want to let the users create new Kanban boards. This involves some new views and controllers stuff, uploading pictures and also changes in the domain model.

I got some valuable feedback from my colleague Joakim Sunden on the real purpose of the Kanban board application / site. I actually never wrote it down. So I’ve updated the first post in the series with the following:

www.kanban-boards.com will be a site where users can upload their Kanban boards for other people to see, vote on and get inspired by. In this way we can share and learn from each other I think and hope. The creation of this site is documented as my learning process.

On with the show!

New functionality – new scenario

...
Read More

Customize your SpecFlow templates and more

I got this tip from a non-developer. An intern, actually. He’s brilliant though and figured this out by himself, about 3 months after I introduced him to SpecFlow. Thank you, Dejen – you’re great!

The fact that this is not documented anywhere just adds to the coolness, but also makes the solution a bit hackish. Sorry for that.

SpecFlow stores templates for the feature files in this folder:

C:\Program Files (x86)\TechTalk\SpecFlow\ItemTemplates\ 

I’m using a 64-bit system, so your path may not contain the (x86) part.

Here, you’ll find several zip archives containing the templates. You can modify the EventDefinition, StepDefinition, and (maybe most commonly) the Feature template. All the structure is the same, so you can follow it in the same manner as described below.

How to Modify the Feature Template

  1. Make a copy of the current template (SpecFlowFeature.zip) to...
Read More

Kanbanboards IV–shaping stuff up

I have now coded away for a while and it’s time to reflect a refactor a bit. I don’t like code lying around that I might not need. YAGNI you know…

So I thought I’d give it an hour to clean stuff up. And maybe put some better looks on the site. Hopefully I’ll end up in a better place. Here are the things I have planned:

  1. Remove all the Views and Controller methods that I’m not using
  2. Bring in a theme for the site
  3. Shape up the lists on the first page
  4. Create a page object to write my acceptance tests against
  5. Introduce a read service for the site – the start of my CQRS initiative

Man – that looked long! But most of them are small. Just imaging how much better the code will be afterwards.

Here we go.

Remove unused stuff

OK –...

Read More

CQRS–another love story

People who know me also know that I easily get all ga-ga, fall in love in or simply get very excited over thing that I like. Actually the other day I thought for myself that I right now talk a lot about BDD, Specflow and Kanban – simply because I think that these things are just great. A quote that I often use by Dan North;

“It’s no silver bullet, but this darn close”

When I thought about that I also came to think that I don’t want to talk about or focus on things that I don’t feel like that for. There are simply to many new concepts, frameworks and technologies out there – I cannot take them all in and of course not be ga-ga over all of them.

The second that thought left my mind I started to watch a recording...

Read More

Using Unity as Dependency Resolver in ASP.NET MVC 3

There have been a lot of improvements and additions to dependency resolving in ASP.NET MVC 3. Even in areas that you first didn’t think about (dependency injection in views) at first.

OK – after my last post, in which I’m using Ninject (with the cool website) I got the questions if it can be done with Unity. Of course it does. This post shows how.

I’m using Ninject because of the super-slick integration with ASP.NET MVC 3 via NuGet. It gives me a “correct” and easy to start with solution. The main part in this found in this App_Start static file, that is run before any other code with the Web Activator mechanism:

ninject dependency resolving in asp.net mvc

And converting that to Unity would be something like this:

unity dependency resolving in asp.net mvc

Yup – actually...

Read More

How to apply a pull request on GitHub with TortoiseGit

I am loving GitHub!

Especially the social collaboration that occurs around projects and code. If you’ve never committed code to an OSS project, try it—it’s an exhilarating feeling. And just imagine the other side of the coin—to receive suggestions and improvements from others! That’s the good news. The bad news (for me, at least) is that Git is something else. It’s great but takes some getting used to. I’m not there yet. For example, the preferred way seems to be the command line, which I haven’t quite mastered.

There are some GUIs available to help people like me overcome the abyss, with TortoiseGit being one of the most well-known tools. TortoiseGit was the tool that finally helped me understand, use, and love GitHub.

However, when I received a pull request, I hit a brick wall. The instructions at the bottom of the pull request page on GitHub...

Read More

Kanbanboards III–putting on the web

After my latest post-of-admitting-failures I got some really nice feedback from a lot of people. Apparently there are others out there who think that a failure is a great learning opportunity. OK – I will most certainly continue down that path.

I actually write these posts as I code along. It’s forward only mode in other words… Almost.

Comments

One of the nicest things that happened as a result from the last post was that Darren Cauthon gave me some insightful comments and patches to go with them. This “social coding” that is going on, on www.github.com (a.k.a. programmers Facebook) is really, really cool.

Darren has done a lot of stuff in and around the SpecFlow project, for example the SpecFlow Assist (table helpers) that is really great. So I value his opinions a lot. He gave me 4 points to think about...

Read More

TDD and Scaffolding

In my exploration of new Microsoft technologies, I’ve encountered the concept of scaffolding, particularly through tools like MvcScaffolding. Scaffolding is a well-known feature in other frameworks, such as Ruby on Rails, where it provides a quick way to generate code templates.

However, my encounter with scaffolding made me reflect on my high regard for Test-Driven Development (TDD) and how it influences my coding practices. TDD has significantly transformed how I approach code development—ensuring that my code is always driven by tests and that I don’t write unnecessary code.

The challenge arises with scaffolded code: it’s generated by a tool, not manually written. Should I write tests for this generated code? Should these tests be written before or after the code is generated?

Definitions

According to Wikipedia, scaffolding is:

Scaffolding is a temporary structure used to support people and material in the construction or repair of...

Read More

The power of Visualization used in my current project

I’ve been involved and coached a project with several teams during the last year. The project aims to convert a big (and important) core business system from VB6 to the .NET platform.

It’s quite a big project with about 25-40 members (depending on which phase it’s in) and so we have several different teams working in parallel during the whole project. But it’s not until lately we’ve created a board to show the status for the whole project. Mainly due to high load in other areas of work, I have to admit.

This post will be a long one. But with a lot of pictures so I hope you won’t be bored .

Project status board

In order to easily and effortlessly communicate the status of the complete project, we have created a board on the project level that captures the status for each team. This is our first...

Read More

KanbanBoards part II–two steps forward and one back

Disclaimers and introduction

I am now the father of three kids. They are my number one priority. This project will come second. I’m doing the project for myself mostly, but I’m very humbled by the fact that several people already have shown interest in my undertakings.

Up to now I’ve also had time to look at the project half-an-hour at a time. With several hours of back-in-my-head thinking in between. That might be good.

I have no master plan. I will make mistakes as you sure will notice in this post… I do not intend to document just the result but also my sidesteps and mistakes. I am a firm believer that it’s through our mistakes that we learn the most.

OK – on with the show.

In the first part of this series I simply wrote the first specification. So it’s no time to, outside...

Read More