Scott Guthrie in Stockholm

I’ve been attending a full day of presentations by Scott Guthrie, who seems to be involved in most things interesting at Microsoft. The output from this guy is just amazing; blogging, products, teams, and thoughts… A lot.

I really looked forward to hearing him live and specifically what he had to say about ASP.NET MVC 2.

It was all good – even though the tempo in the presentation was breakneck speed. Many of the new technologies from Microsoft nowadays aim to be extensible and possible to tweak to your preferences.

From ASP.NET MVC 2 I especially like:

I’m now enjoying his presentation on Silverlight 4, which will be my introduction to Silverlight…

This was a great day that taught...

Read More

Online diff tool

Found this nugget today when comparing numerous very long SQL-strings. Yeah, yeah – I know; data access is a solved problem – but this app still got them. In spades!

And I also agree with the developer of the tool:

“Now, although pretty much every IDE (and various stand-alone products) have sophisticated diff utilities built in (like Eclipse), my favourite, I got very tired of having to create two files just to paste in fragments of code or other bits of texts just in order to perform a diff and see the differences highlighted.”

Except for the Eclipse-part maybe. The diff tool worked great and helped me a lot yesterday. And probably today… and the day after that, and the day…

Read More

The Value of an Ubiquitous Language

The concept of a ubiquitous language—a common domain model—can be interpreted differently depending on the context. Here’s how I see it:

For the Entire Business

An all-encompassing ubiquitous language for an entire business often seems impractical. Different contexts and departments may define the same entities (e.g., “customer”) differently. For a deeper discussion on this, check out:

For an Application

On the other hand, having a ubiquitous language within an application is highly beneficial. This means that all team members—customers, analysts, developers, testers—use the same terms consistently. This practice enhances communication speed and accuracy within the team.

For more insights on the value of a ubiquitous language, consider these resources:

Read More

Life Changing Events

Often, you can’t see them until afterwards… the events that really changed the course of your life. But in retrospect, you can almost always point to a single moment when your life took a certain path.

Yesterday was one of those events. I know exactly when it happened: 15:12, 2009-11-25.

We are going to have a second child. So we went to the ultrasound examination to see that everything was in order. And it was.

The nurse: Here is the divider wall (sorry for the non-technical term in English). Me (thinking): I never heard about any divider wall when Albert was in there. Nurse: And here is the first fetus. Me: Ok… the first one. Nice… What? First one?

After that, the nurse had to leave us. Two takes longer than one. So I told Elin, “That just now, that was a life-changing event.”

So, we’re going to...

Read More

DataSource in Oracle Connection Strings

Here’s a useful tip for managing Oracle connections: Instead of relying on the tnsnames.ora file, which can be cumbersome to configure and distribute, you can include the connection details directly in your connection string. This way, all necessary information is contained within your application’s configuration file.

Here’s an example connection string:

<connectionStrings>
    <add name="ConnectionName"
         connectionString="Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hostname.host.se)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = servicename)));User Id=[your user];Password=[your pwd];"
         providerName="Oracle.DataAccess.Client" />
</connectionStrings>

This approach simplifies deployment by consolidating configuration into a single place. I find this method quite convenient!

Read More

Integration Tests for ASP.NET MVC Applications

While exploring integration testing, I came across a great article that offers a clever approach to integration and regression testing for ASP.NET MVC applications.

The techniques described in the article complement the ideas I discussed in a previous post on agile testing, and they present a streamlined method for ensuring your MVC applications perform as expected.

Check it out if you’re interested in enhancing your testing strategies for ASP.NET MVC applications.

Read More

Testing ASP.NET MVC Application with Session State

I encountered issues when trying to use session state in an ASP.NET MVC application, especially while writing unit tests for an action method that interacted with the session object.

Fortunately, I discovered MVC Contrib, which offers a range of useful tools. The TestHelper from MVC Contrib was exactly what I needed to resolve this issue.

Installation took just a few minutes, and I was up and running again quickly. Highly recommended!

Read More

Agile Testing – Reflections from an Excellent Elevate Evening

Last night’s Elevate event was another impressive showcase of the diverse knowledge within Avega. The focus was on Agile Testing, a topic that has often confused and frustrated me. I’ve struggled to implement effective agile testing practices in the teams I’ve led. Here are some of the challenges I’ve faced:

  • No Testers and No Testing in the Team: This approach led to a traditional waterfall-like process with a separate testing phase after development. We missed out on the benefits of agile methodologies.
  • Testers in the Team, But Not Doing Agile Testing: When testers were included, they still followed company policies, which meant extensive documentation and test planning for each minor change. This approach proved inefficient.
  • Testers Testing Only Sprint Work: In this setup, testers only tested the features developed during the sprint, with an acceptance test phase every 4-5 sprints. While this was better, it still led...
Read More