First time here? You are looking at the most recent posts. You may also want to check out older archives or the tag cloud. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS. Thank you for visiting! (hide this)

Software Development

My review of Umbraco Codegarden 2014– One word: amazing!

Over last week I've been in Copenhagen to attend the Umbraco CodeGarden: I’ve been at this conference 4 years ago, in 2010, when I had 2 talks at the MVC pre-conference, but this time I was just a normal attendee. The atmosphere during the event was amazing, exactly like I remembered 4 years ago, and conference looked bigger and better organized. It really shows how one of the biggest feature of Umbraco is its community. I was planning to do a session-by-session review, but I realized that the post would become to longs, so I’ll just recap the...

Techorama conference day 2

Let’s continue with the review of the second day of Techorama. I wrote about the first day already last week. What’s New in ASP.NET and VS 2013 Overview of the new features of VS2013, especially focusing on the features that make web development easier, also for non MS technologies: browser link, side waffle for templates for just about everything’s, Angularjs support, Bootstrap CSS, less, sass, and more. Interesting was the small view on the future, with integrated support for external tools (like Grunt) and ASP.NET vNext, with Project K, merged MVC, WebAPI, SignalR, and cross platform support. HTML5 and JS communication API Nice overview...

Review of Techorama day 1

The last two days I've been at the Techorama conference and I've to say it was a long time I was not that excited for developer conference for which I was not directly involved as organizer or speaker. So here is a quick review of the sessions I followed. (PS: I’ll link to slides and videos when they get published) Faster faster… Async. ASP.NET Probably the less interesting talk of the day: how to make WebForms faster by using Async pages even in scenario were you are forced to use still use old version of the framework that...

Show me your Visual Studio Extensions

All developers like to personalize their IDE, and even if lately I’m not doing that much of coding, I still like to have my Visual Studio 2013 “pimped” with the extensions that make work easier and faster. Here is a list of the extensions I’ve installed on my VS2013. ReSharper I guess this tool doesn’t need introductions: refactorings, code completion, code quality and coding standards checks and many other little helpers that make coding faster. It’s a commercial tool that costs 134€ and comes with a 30 days trial. More info on JetBrains’ web site. Nuget...

How to install all web development tools needed for Ghost on Mac

As I’ve written last week, I’ve been starting to play around with Ghost and to do so I had to go through an extensive maintenance of my MacBook. But that also gave me the opportunity to revamp it installing the tools needed for a modern web development workstation. In this post I won’t focus that much on the Ghost installation part as it’s well explained on Scott Hanselman post about installing Ghost on Azure, but I’ll focus more on installing the tools needed using the best practices. Tools needed Basically you’d need to install the following tools: Git Node.js Ruby Git Git is a prerequisite for installing most...

Node.js Conference: call for papers

Not only .NET, but Node.js too. There are just 4 days left for submitting your proposal for the Web.NET Conference, but in this post I wanted to share a bit of love for the Node.js conference, happening in Brescia (if you are not from Italy it’s more or less near Milano), in November. They have opened the Call For Papers that will stay open till the 10 of September. If you are doing Node.js, and you want to share some of your knowledge, this is the conference for you: to submit a...

Windows Authentication working from remote but not locally

Lately I’ve been playing with RavenDb, for building the website of the Web.NET Conference, and after first testing with the embedded db, I decided that it was better to go to “server mode”. So I followed the instruction on how to set it up as IIS application, and I got it working pretty quickly: I could access the management studio from the browser and run the site on my development machine connected to the instance running on the server (by specifying the credentials in the connection string). When I was ready to publish it for doing some real...

Entity Framework 4.3.1 Migrations and non English locale

A few days ago I started migrating a web app I was working on from ASP.NET MVC 3 and EF4 to ASP.NET MVC 4 and EF 4.3.1. All went well, except for some problems with the automatic generation of the DB scheme using EF Code First: it was creating the database, but no tables and not even the __MigrationHistory table added in 4.3; and during the execution of the schema generation an error was raised with a weird datetime conversion error. I tried this both on SQL Express 2005 and SQL Compact and I got the same outcome, just different...

Agile .NET 2011 Europe happens in 3 weeks and discount code

Last week I registered to the Agile .NET 2011 Europe conference, held in Gent, on 10 - 11 October, and I’m really looking forward to it. I think that if you live in Belgium (or near Belgium) and are into .NET development this is a conference you cannot miss: 2 days of sessions about Agile Principles and Software Craftsmanship with .NET flavor, and at reasonable price (350€ till end of September and 450€ later, using the coupon code, 300€ till the end of September and 400€ afterwards) and good (IMHO, better and cheaper) replacement for the cancelled StackOverflow DevDays in...

Microsoft dev stack vNext from Build

Unless you are living under a rock, you have probably heard that two days ago, at Build, Microsoft unveiled the new version of Windows, named Windows 8. Windows 8 This is revolutionary both from the consumers’ and developers’ perspectives. The UI is deeply based on the concept of the tiles of Windows Phone 7.5 “mango” and the Metro design language, and the API are now allowing applications to be written either in C#/C++ and the usual .NET/Win32, or using WinRT, basically an Object Oriented version of Win32 or, as someone says, COM done right, and C#+XAML or JavaScript+HTML/CSS....

8 books (and 3 kits) to get started with Arduino

A few days ago, as part of my summer book list post, I posted the resources to get started with Node.js. Another of my area of interest since one year is also Arduino and the so called “Internet of Things”. What Arduino is For those of you who don’t know what Arduino is, the short answer, taken from the Arduino website, is: Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. Thanks...

Summer Courses on HTML5, Windows Phone7, ALM and Azure

This August, if you are on holiday and are not in snorkeling in a lagoon in a tropical island, or if you are work but not many things to do due to the summer period, you could spend half an hour (or half a day, or a full day) getting up to speed with the latest cool technologies of the moment: HTML5 Windows Phone 7 “Mango” update Azure Visual Studio ALM (well, this is not as cool as the others, but as...

What happened to Lucene.Net? It got forked

A weeks ago I wrote a call for help for Lucene.Net: not enough activity and not enough contributors. A lot happened since that post so I think it’s worth doing a little recap of what the situation is now. What happened? The newsletter thread received hundreds of emails, and lot of discussion on my post as well. Most of the discussions were about trying to understand the reason of such a lack of activity and committers, and try not to repeat the same errors: it turned out that most people think the reason is that Lucene.Net is “just”...

Speaking in Bern about SOLID

While I was organizing the NHDay, this summer I got in contact with Kay Herzam, one of the founder of the Bern .NET User Group: we started talking and we decided to do something together: the collaboration started with Kay announcing the NHDay to his fellow user group members, and this turned out pretty well, since 5 people from Switzerland registered and came to the NHDay after Kay announced it. We decided to go on with the collaboration: so on December 9th, 2010 I will be speaking in Bern, at the 5th annual user group meeting, about SOLID principles....

Debreefing the NHDay

Less than 10 days ago the First European NHibernate Day took place in Bologna: here are some comments on the day and in a future post, being among the organizers, the process that lead to event. The Attendance Let’s start from the event day: even if the biggest part of the attendance was Italian, it was amazing to see so many people coming from various countries, and travelling even from Sweden and Norway to attend this event. This made the European NHDay a really international event. The sessions Unfortunately I was not able...

Is IronRuby being un-funded just the tip of an iceberg?

Today when I woke up and started skimming my twitter feed, I was stuck by a flood of comments about IronRuby being somehow discontinued. Not really killed, but, as Jimmy Schementi says in his post that announces his change of job, moved out of the pool of opensource projects that Microsoft is directly funding. Justin Etheredge already commented on what it means for IronRuby itself, but I want to analyze the fact from an another angle. Maybe I'm just paranoid, and unfunding IronRuby is just... unfunding IronRuby, but the facts are leading me to think (and might lead also other people...

Cleaning up a folder structure from Visual Studio artifacts from the shell

A few years ago I wrote a post that showed how to write a NAnt script to clean a folder structure from the artifact’s folders used by Visual Studio. Today what I wanted to show you is a way that doesn’t require NAnt installed on your computer, but that uses just a very simple command for Windows’ shell. Actually, it’s just a very tiny variation of the same command that Jon Galloway wrote to clean a folder structure from SVN files. But without further ado, here it is: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] @="Delete SVN Folders" ...

Lucene.net is powering Subtext 2.5 search

Back in August and September I started a series with the main concepts of Lucene.net and I started to explain the design behind the forthcoming Lucene.net-powered search engine for Subtext. In the last few months I finally had the time to sit down and implement the search engine for Subtext. In this post I want to show you how I implemented it and since I kept the points of contact with the Subtext domain model to the minimum, how you can modify it to use it in your own application. Another reason behind this post is… asking to...

Tortoise SVN tip: Repair move

Did you ever rename a file from inside Visual Studio? Did you ever move a file from one folder to another from inside Visual Studio? I think you did. And what happened when you tried to commit your changes to a SVN repository with Tortoise SVN? You probably got this: Here I moved a file named MonitoringControllerTest.cs file from the root to the Controller folder: Tortoise SVN didn’t recognize the file as just moved, but instead it found a new file in the Controller folder, and a missing file in the root folder....

Everybody stand-up! 7 resources for standup meetings

Standing up an hour or so after the day starts is one of the (first?) changes I’m trying to introduce into the team I’m working with now. Well, not just standing up around a water cooler, but also talking about what everyone did yesterday, what everyone is going to do today, and if there are some blocking issue that are preventing work to proceed correctly. This is not something I invented, it’s called “Standup Meeting” and is one of the first steps for introducing some kind of Agile into a team. There is a lot of literature around that specific practice...

Why SketchFlow is not a mockup software

After almost one year of using Balsamiq I decided to give Blend SketchFlow a try. After using it in one project, I realized it’s not a sketching/mockup tool. And here I’m telling you why. My definition of a sketching/mockup tool I think a sketching/mockup tool should be a replacement for sketching on paper. It should allow you to “draw” lines, add a textbox and some text, without thinking too much about alignments and about how you will “implement” UI element in the real application. And must have a quick way to include common UI elements like windows, dropdown,...

12 ASP.NET MVC Best Practices

Last week I held two presentations about ASP.NET MVC for the new-born DotNetRomaCeStà user group in Rome. And one of them was about what I consider to be ASP.NET MVC Best Practices. The presentation was in Italian so I decided to translate my slide in English so that everybody can read them. Controller’s best practices 1 – Delete the AccountController You will never use it and it’s a super-bad practice to keep demo code in your applications. 2 – Isolate Controllers from the outside World Dependencies on the HttpContext, on data access classes, configuration, logging,...

10 resources to learn Moq

Last week I described the stack I’ll be using to develop my new ASP.NET MVC project, and I said I was going to use RhinoMocks as mocking framework. Well, it later turned out that some tests were using RhinoMocks but most of them were using Moq and “Il Maestro” decided that the latter would be the mocking framework of choice. I never used it, so I started looking for some documentation online. And here I’m listing the best 11 links about Moq. http://code.google.com/p/moq/ – obviously, the starting point of it all. Download the binary, source and...

31 Days of Refactoring eBook

This August, Sean Chambers, blogger on Los Techies, wrote an awesome series of posts, called 31 Days of Refactoring, during which he wrote one post per day, describing one refactoring technique. In August I was on holiday, and I never had time to read the 31 posts, so last week I decided to create a easy to read version of the series, and I assembled a eBook, putting together all the posts, doing some minor edits, and applying some formatting. And I sent it over to Sean so that he could share it with all his readers. You...

My ASP.NET MVC stack and why I chose it

In my current project I'm starting to develop a new web application using ASP.NET MVC and given all the environmental conditions, choosing the stack, from the tools to the libraries was not an easy task. I had to come to a few compromise to cope with all the different "forces" involved, so I though it would have been a good idea to share my reasoning and the final decision to show an example how an architect that works in "normal" company (as opposed to HeadSpring and such kind of on-the-edge companies) has to balance between what is the best possible...

How Subtext’s Lucene.net index is structured

Lucene.net tutorial How to get started with Lucene.net Lucene.net: the main concepts Lucene.net: your first application Dissecting Lucene.net storage: Documents and Fields Lucene - or how I stopped worrying, and learned to love unstructured data How Subtext Lucene.net index is structured In the last part of the tutorial about Lucene.net we talked about...

Lucene - or how I stopped worrying, and learned to love unstructured data

Before moving to how I’m implementing Lucene.net into Subtext, I wanted to bring to my Lucene.net tutorial the experience of a good friend of mine, Nic Wise, who is using Lucene, both Java and .NET, since 2003. So, without further ado, let’s read the experience directly from Nic’s writings. Lucene.net tutorial How to get started with Lucene.net Lucene.net: the main concepts Lucene.net: your first application ...

ASP.NET MVC Refcard available

After completing our book, Keyvan and I decided to combine our efforts again, and write a quick reference about ASP.NET MVC. And today this quick reference is available from DZone, in the RefCardz section of the site. The refcard doesn’t try to explain what the library is (would have not been possible in just 6 pages) but instead focuses on giving a quick reference of the conventions used by the framework, of the API available and of all the aspect of developing with ASP.NET MVC. More details are available on Keyvan’s post. Get it here: Getting Started...

Dissecting Lucene.net storage: Documents and Fields

Lucene.net tutorial How to get started with Lucene.net Lucene.net: the main concepts Lucene.net: your first application Dissecting Lucene.net storage: Documents and Fields Lucene - or how I stopped worrying, and learned to love unstructured data How Subtext’s Lucene.net index is structured In the previous posts we discussed how to get started with Lucene.net,...

Lucene.net: your first application

Lucene.net tutorial How to get started with Lucene.net Lucene.net: the main concepts Lucene.net: your first application Dissecting Lucene.net storage: Documents and Fields Lucene - or how I stopped worrying, and learned to love unstructured data How Subtext’s Lucene.net index is structured In the first two posts of the tutorial you learnt how to...

Lucene.net: the main concepts

Lucene.net tutorial How to get started with Lucene.net Lucene.net: the main concepts Lucene.net: your first application Dissecting Lucene.net storage: Documents and Fields Lucene - or how I stopped worrying, and learned to love unstructured data How Subtext’s Lucene.net index is structured In the previous post you learnt how to get a copy of...

How to get started with Lucene.net

Lucene.net tutorial How to get started with Lucene.net Lucene.net: the main concepts Lucene.net: your first application Dissecting Lucene.net storage: Documents and Fields Lucene - or how I stopped worrying, and learned to love unstructured data How Subtext’s Lucene.net index is structured A few weeks ago I expressed my intention of introducing Lucene.net into Subtext, and that I would have written about the journey. In...

Code Rush: when making software was fun

Not that now making software is not fun anymore, but working on a startup, trying to make something that might change the way we think at software, or making something totally new is much more fun than… everything else that doesn’t involve working with “startups”. And this spirit is well capture into Code Rush, a documentary about the open-sourcing on Netscape and beginning of the Mozilla Project: featuring the first nightly build, the launch party and much more. It was first released in VHS (we are talking about 1998), when out-of-print, and at the end of July 2009 Code...

11 books for a .NET Summer reading list

Now that my book is on shelves, I’m out of things to do when I come back from work. Furthermore during this year I bought or I was given quite a few interesting programming book, so I think I’ll start using my spare time to improve my skills. Here is the list of books I’m going to read, some of which I think are a must read for all .NET developers. Frontend development and JavaScript I’m a web developer at heart, and I truly believe that a web developer must know everything about Javascript, CSS and HTML....

Reducing the bounce rate of tech blogs with Subtext and Lucene.net

In this post I’m going to explain the reason behind my decision to introduce Lucene.net into Subtext to power the internal search engine. The problem: high bounce rate It all stared a few week ago, when I noticed that I get lot of visitors from search engines (around 70%) but that they rarely look at more than one page (only 15% read a second page). I was interested in knowing if this was just a problem of my blog, or a general problem of all tech/dev oriented blogs. So I ran a quick poll over twitter, and I found out that I’m not...

Two frameworks are better than one

Looking deeper into the raw data of the survey about Ajax adoption among .NET developers I found some interesting figures that show a probably different mindset you get when you start working with ASP.NET MVC. Let’s see the following table, that show the percentage of developers that use jQuery vs the MS Ajax Stack based on which web UI framework they are using.   ...

Stopping the panic: how to improve HtmlHelper.RenderPartial performances. Don’t run in debug mode

There has a been a lot of talking on a possible “big design flaw” in ASP.NET MVC: partial view path resolution was not cached and so a big performance issue. It all started with Rudi Benkovic’s presentation on ASP.NET MVC performances. I also wrote a commentary on his presentation, but I was a bit skeptical about the fact that view path resolution was faster with a full url than with just the name of the view. I said: This last one looks strange to me because the RenderPartial method should be caching the path resolution:...

The performance implications of the expression tree-based ActionLink helper

Earlier today I wrote a post about how to improve the performance of ASP.NET MVC web applications, and I came out with the conclusion that the best way to improve performance is to add data caching and that the rest was not very important. Rudi sent me an email pointing out that turning the optimization upside down as I asked in my post, the expression tree-based ActionLink method still causes a lot of performance problems, at least in his sample application, a DIGG-like application, where there are 4 calls to the ActionLink helper for each of the 20 items...

How to improve the performance of ASP.NET MVC web applications

Today I stumbled upon a nice presentation that Rudi Benkovic gave last week at the Slovenian DotNet User Group, about ASP.NET MVC Performance. The Big Picture It is an in depth analysis of a Digg-like site and how it went from serving (on a test machine) 6 req/sec to 390 req/sec. The biggest gain, 74 req/sec to 390 req/sec happened when he introduced data caching and another 25 req/sec where gained when he introduced the compilation of LINQ queries. Data caching is always the key Splitting the gains among the various components: ...

Ninject 2 hits beta status

It’s not that a secret that I’m a big fan of Ninject, so I’m pretty excited to see that the experimental version that Nate was playing with has been “upgraded” to the next official release of Ninject, v2. It’s completely written from scratch, and it takes full advantage of LINQ. You can read more about what’s new, what has been removed, and what has been added on the official announcement on Nate’s blog. It seems like it also have an even easier way to integrate with ASP.NET MVC. I’ll not have a...

If you are still wondering how fast is ADO.NET vs ADODB

There is this nice paper written by Jason McGuire titled: Performance Comparison of Microsoft’s ADO and ADO.NET Database Connectors The quick answer to the question is: inside a .NET application, ADO.NET is 3 to 4 times faster then ADODB when accessing SQL Server. Well, not a big news you might say, going from .NET to COM and back is obviously a performance problem and also there was a bit of advancements since mid ‘90s, but it’s nice to find someone that published such analysis with such a great degree of details and precision. If you are...

Do you wanna be the Picasso of programming? First learn the rules, and only after break them

UPDATE: Stackoverflow #41 is out. I bet it's going to be the most listened episode ever. This morning I woke up, and suddenly I was flooded by tweets and posts. All of that were about the latest buzz of the moment: “Are Jeff and Joel going crazy or are they just playing going crazy?”. I just want to think that, at least Jeff, is just playing the devil’s advocate, and giving a voice to the silent crowd that thinks that “getting things done” and “ship the product/project” is more important than crafting a good piece of software that can be maintained for...

How to use Ninject to inject dependencies into ASP.NET MVC ActionFilters

Ninject with ASP.NET MVC series How to use Ninject with ASP.NET MVC How to use Ninject to inject dependencies into ASP.NET MVC ActionFilters Extending Ninject to inject dependencies into Action Filters Ninject.FilterInjector v1.5: now injecting inside all filters   ActionFilters are a great way to encapsulate pieces of functionalities and move them outside ASP.NET MVC Controllers, but they have a problem: it’s very difficult to inject dependencies...

How to use Ninject with ASP.NET MVC

Ninject with ASP.NET MVC series How to use Ninject with ASP.NET MVC How to use Ninject to inject dependencies into ASP.NET MVC ActionFilters Extending Ninject to inject dependencies into Action Filters Ninject.FilterInjector v1.5: now injecting inside all filters  By default, the ASP.NET MVC framework instantiate controllers calling their default constructor. This makes using Dependency Injection impossible. But, as almost everything inside that framework, the logic...

Microsoft® .NET: Architecting Applications for the Enterprise

A bit late for my Xmas present, but today I received my copy to the book written by Andrea Saltarello and Dino Esposito: Microsoft® .NET: Architecting Applications for the Enterprise. I’m not sure when I’ll be able to start reading it, but given the synopsis and excitement with which Andrea announced his book (in Italian, sorry) I think it’s going to be a great book, a must have for every .NET developer and architect out there. Too bad I’ve to wait next year to have Andrea sign my copy of the book. Technorati Tags:...

Hot new features coming with ASP.NET MVC RC in January 09

ScottGu just wrote about the new features that are coming with the release candidate of ASP.NET MVC V1 that is going to ship in January. Views without code-behind: all other view engines works that way, and having an additional file just to specify the type of the model is pretty overwhelming. Good for this enhancement. HtmlHelpers now expose the model of the view: this is strictly related to the new feature above. Since you cannot create view-specific helpers anymore, we needed a way to supply the model of the view to HtmlHelpers. ...

Italian ALT.NET Conference take 3

It took us a while to organize it, but finally we made it: the 3rd Italian ALT.NET Conference will take place in Milano on January 24th 2009. We will have Ivan Porto Carrero, author of IronRuby in Action, come down from Bruxelles and talk about IronRuby, and then there will be some talk on TDD, DDD, user stories, mocking and that kind of stuff. You can help shape the meeting: just go to ugialtnet group and vote at the poll. If you want to attend, please register at altdotnet.org/events/italy. I want to thank David Laribee...

MSTest Tip: Double click to go to failing test

When you run a test suite, Visual Studio shows the results in a grid: the passing ones with the green icon and the failing one with the red icon. By default, if you double click on the line with the test, Visual Studio shows the details of the test, with the stack trace and the details of the exception. If you right click on the line and you select “Open Test” you will go to the test case, on the line that caused the error. But if you follow a TDD approach, you want to go straight the test with just...

How to add a test run configuration to a test project with Visual Studio 2008

When you create a test project from scratch the test run configuration file is automatically added by the project template, but if the test project is created by the ASP.NET MVC web application project template it’s not. And if you want to enable Code Coverage you have to it manually. It took me a while to find out how to add a test run configuration to a test project. The problem was: it cannot be added to the test project, but must be added as Solution Item to the solution that contains it. Maybe the ASP.NET MVC team could consider adding...

Visual Studio Team System 2008 Database Edition GDR goes RTM

Seems like Microsoft just RTM-ed the GDR version of Visual Studio 2008 Database Edition. Although the name "GDR", which stands for "General Redistribution Release", implies otherwise, this really is a complete new release, based on a new architecture. We have taken the architectural changes from the Rosario project (Visual Studio Team System 2010) and rolled them forward in time. The coolest feature IMHO are: the Standalone Deployment Engine, which makes it possible to deploy the database schema on target databases that are not all up to date or are different...

At the Italian Agile day in Bologna

Tomorrow I’ll be at the Italian Agile Day in Bologna: it’s going to be “my first time” at an Agile conference and I’m pretty excited about that. Two members of the UGIALT.NET user group, Emanuele Del Bono and Claudio Maccari, are going to drive a TDD on .NET lab, and for those that were not able to take part at the lab (only 12 seats out of 400 people attending the conference) and are interested on listening to SCRUM-W (the wrong approach to Scrum), there is going to be an OpenSpace that will probably be about tools for an...

Not even in my worst nightmare

I warn you, send your child to bed before reading this code snippet: <span id="lblUser Birthday">User Birthday</span><br> <input type="text" name="txtUser Birthday" ID="txtUser Birthday"> OK, the HTML4 DTD allows spaces inside the NAME attribute (it’s a CDATA) but it’s one of the worst practices I ever saw (even the control’s name autogenerated by ASP.NET web forms uses $ to separate names’ parts). And spaces are not allowed inside the ID attribute. Pragmatists would say that IE and Firefox are pretty tolerant and eat up everything, but this is pretty scary anyway. I didn’t dare to ask “Who wrote this code?!” Technorati Tags: nightmare,html,error

Running Windows 2008 Server as development machine

Due to a new (*) IT security policy of my company, this weekend I had to wipe out my XP installation and install a BitLocker capable operating system and I had to decide whether to install Vista or jump to Windows 2008 Server turned workstation.  I already installed Windows 2008 server on a VM inside running on my Mac and I really liked the experience of running it as workstation, so I replicated the same environment on my laptop. This time, instead of manually applying all the changes required to turn Win2008 Server it into a workstation,...

Ivan Porto Carrero interviewed on InfoQ

My friend Ivan, blogger, writer and coder extraordinaire has been interviewed on InfoQ, a main-stream enterprise development portal, about his new opensource project IronNails. Ivan started this project a few days ago because, while working on same samples for his book about IronRuby, he had this vision of a Rail like development for WPF and Silverlight applications, based on the MVC pattern. And here it is: announced on his blog (which, by the way, has a new awesome skin), published on git, and got a lot of media attention. Read the complete article here: Talking with Ivan Porto Carrero about IronNails. Congratulations Ivan! IronRuby, Ivan,...

How to disable ReSharper for a file: [CTRL + 8]

ReSharper is one of the tools I couldn’t live/code without, but when they designed it they didn’t tested my current scenario: I’m doing the assessment and refactoring of an application made of more than 80 projects (they were more than 200 in the same solution before we started our refactoring), some .cs files are more than 10k lines and some .aspx and code-behind files are more than 1000 lines. When working on this solution sometimes I’ve to disable ReSharper otherwise it would take 3 minutes only to open the file and do the code analysis on that file. But going all...

Comparing the backgrounds of web developers

Web developers on ASP.NET have (mostly) a client or client-server background. Web developers on Java have (mostly) a client-server background or a web background. PHP and Ruby and Pyton (and so on) ones have only web development background or even web design background. This is just a quick idea that came to my mind this evening while running, and I wanted to share... I think I'll elaborate more on this in a following post. PS: I know, there are exceptions to these statements (as I am, since I was born as web developer and I develop on ASP.NET), but for the majority of developers...

Yet another presentation on ASP.NET MVC at DotNetMarche

On Friday I’m delivering my third presentation on ASP.NET MVC in less than one month (actually the 4th because I repeated twice the one I delivered inside Avanade). This time it will be inside the 6th DotNetMarche Workshop on “Applications’ automated testing and ASP.NET MVC”. You can have a look at the agenda of the event (translated by Google). I’ll try and make everything available online after the event, especially the code samples. Technorati Tags: aspnetmvc,event,dotnetmarche

How to get up to speed with Team Foundation Server

UPDATE: Thanks to Lorenzo, I fixed a few errors about TFS Licensing. Lately I’ve been designing and implementing the migration of development team from Visual Source Safe, with Excel based bug tracking and no defined development policies to TFS. I’ve only been a user of TFS so it was the first time for me to dig into planning and licensing issues, process templates, policies, build and all that stuff. During my searches I collected the link and resources I read, and I’m posting them here so other could benefit from this list as well. Testing TFS...

When BIG is better then small

I’m very sad to hear that a very big Italian ASP.NET portal went down, together with other “normal” e-commerce sites, because its hosting provider, a small hosting company managed by the Italian IIS MVP, closed without warning. Nobody knows what really happened: not paying the bills, the systems went down while the owner was on vacation and the advertised IT staff never existed. And of course the owner is not reachable by phone, email, fax, whatever It happened to me a few years ago, when the server that was hosting my sites broke the disk, and the owner of the company, a...

LightSpeed 2.0 Released

Mindscape, the cool software agency based in Wellington (NZ) that had the office in the same building where I worked for Calcium, just released the second version of their domain modeling framework, named LightSpeed. This version has some great new features: Linq2LightSpeed: now the entities can be queried using Linq Visual Studio Designer: for people that are soo 2002 and still prefer working with a data-first approach, or want to apply the ORM mapping to legacy databases, LightSpeed now has a VS designer and code generator that creates entities starting from the...

Job Offer: Sharepoint Developer needed in Barcelona

Last summer, after coming back from NZ I did quite a few job interviews before deciding to go and work for Avanade, and one of them was with the Fusion4Energy EU agency in Barcelona. The process on their side took quite a few months and they told that I qualified for the job and they were willing to hire me only last month, more than 8 months after the interview. But last month I was already working for Avanade and not willing to change job again, so I had to refuse the position. So, to fill...

When mice interact with SQL Management Studio and cause a BSOD

I think I never saw a BSOD since my Win2000 desktop, but today it happened 3 times in less then 5 hours. And it always happened when I was scrolling data tables from inside SQL Server Management Studio. The only thing I installed since the last time I used it were the drivers for my Microsoft Presenter Mouse 8000 to deliver my presentations on ASP.NET MVC last week. Seemed a bit weird that mouse drivers could interact cause such a problem. But they were: searching on Google I found many posts and thread about this strange interaction between the two software. This one “SSMS...

ReSharper 4 approaching beta status

No official announcement yet, but the ReSharper 4.0 Nightly Build page is showing the first build marked as stable and with the status "Beta Candidate". The build number is 804. Off to downloading it: let's hope they fixed all the problems and the huge memory requirements of the latest builds. UPDATE: JetBrains officially announced ReSharper beta Technorati Tag: Resharper 4,Beta

ASP.NET 3.5 + VS2008 SP1 beta

Probably you already read this announcement somewhere else in the net, so I'll not replicate the news here. What excites me the most are mainly two things: Part of the ASP.NET MVC framework are going to be included into the core ASP.NET framework: System.Web.Routing will be included in ASP.NET with the SP1, so around this summer, probably well before ASP.NET MVC is RTW Intellisense will work for Javascript files, and will have support for jQuery, Prototype and other popular JS library out of the box. You can read more about the other improvements on ScottGu blog...

The most used Javascript Library is... jQuery

A month ago a popular CSS blog asked: "What is your Javascript library of choice?" Yesterday, after having received more than 1600 answers, he published the results. The winner is clearly jQuery, with more than 50% of the preferences (actually 52%). The second library is MooTools with 15% and third comes Prototype with 12%. As the author of the survey says, the audience of his website is mainly composed by designers, so the results are a bit biased toward jQuery (which has been designed to port the CSS way of thinking into JavaScript development). But...

Having a crush on jQuery

A few weeks ago I started to play around with jQuery and I already banged my head against some small gotchas of the framework. But a comment made by Jake Scott opened my eyes: I recommend you read (if you haven't already) Manning jQuery in Action, its the best book on Javascript ever :) Even if I might not second the "best book on Javascript ever" part of the comment, I got the book yesterday afternoon and I already read 4 chapter of the book while on the train. I've to say that the...

OutOfMemoryException using ReSharper 4

Last week, while working on the new features for Subtext vNext, I encountered a strange problem that never happened to me before. I was running the latest "works here" Nightly Build of ReSharper 4 (build num 767) and started getting tons of OutOfMemoryException. The problem started to happen when, after developing all the DataAccess and BusinessLogic with a TDD approach (so no UI involved), I started adding textboxes and method calls in aspx pages. So I guess the problem has something to do with handling aspx files and all the added complexity that a simple class file doesn't have....

The most important quality of a developer: Self-criticism

Last week I visited in Milan an art exhibition on Francis Bacon, "the last of the great 20th century masters in painting". Together with his paintings, attached to the walls there were quotes taken from some interviews and one really made me think: I think an awful lot of creation is made out of, also, the self-criticism of an artist, and very often I think probably what makes one artist seem better than another his that his critical sense is more acute. It may not be that he is more gifted in any way but just that he has a better critical...

Wanna extend Visual Studio? Read Keyvan book

Keyvan Nayyeri just announced the official release of his book about Visual Studio Extensibility, published by Wrox. This is quite a unique book since the VSX technology is new with VS2005 and is a leap forward compared to the old macro-based extensibility, but nothing has been written on this topic, yet. The book will cover all the aspects of Visual Studio Extensibility: Macro, Add-Ins, Visualizers, MSBuild, VSPackages, DSL tools, using the Shell. I also what to thank Keyvan for adding me to his acknowledgement page on the book: I would thank anyone else who helped us get this book done, both inside Wiley...

Resharper 4.0 EAP: Are you geek enough?

Ivan just IM-ed me with a link: http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+Nightly+Builds I've been waiting for a C# 3.0 compatible version since I installed VS2008 back in December: apparently it has been announced by Ilya Ryzhenkov on his blog yesterday but I didn't get the news till now. Here are the release notes. I'm going to install it: it will not do much harm and if anything goes wrong I can always turn it off as I'm already doing now with the 3.1 since it marks everything "new" as error. I hope it will support also Silverlight project and will not mark variables defined in the...

Code smells also in SQL server system tables and StoredProcs

Almost 2 months ago Steve Harman, showed a ugly character map used in a database field to store the week's working days. Today I came across something similar, or maybe even worse, since the super-smelly database field is used in some system SPs in SQL Server 2000. I found a few examples of inconsistencies and "strange" implementations but let's focus on just one system stored proc: sp_help_job. This SP is used to retrieve a list of jobs or, if called specifying a GUID, it returns 3 result sets with the steps and schedules of a single job. Let's see some examples: enabled, which can be...

How to simulate RowTest with MS Test

One of the best feature that is in mbUnit since 2004 is RowTest, which is the ability to perform the same test using different input data and expected results. RowTest [RowTest] [Row(1,1,2)] [Row(2,1,3)] [Row(1,-1,0)] public void SumTest(int a1, int a2, int result) { Assert.AreEqual(a1 + a2, result); } The cool thing is that each "row" is treated as a different test, and if the test fails for one set of data, the others might not. And this helps pinpointing the data that are making the test to fail. This week I was adding...

Sun buys MySQL

This is fresh news, Sun just bought MySQL. Here is the the official press release: Sun Microsystems Announces Agreement to Acquire MySQL, Developer of the World's Most Popular Open Source Database Kay Arnö, responsible of the community behind MySQL, writes about what this means for the opensource community, both developers and users: Sun acquires MySQL Sun has a proven track record of supporting OpenSource as whole, so I guess this will help (if it ever needed) an even better development of MySQL DB engine. Congratulations MySQL!! Technorati Tag: Sun,MySQL

Who said IE doesn't support Acid2?

Someone filed a formal complaint to the EU because IE didn't support the web standard, in particular didn't pass the Acid2 test. Drum roll please.... IE8 change num 149329 now renders the Acid2 face. More info on the official announcement on IE blog: Internet Explorer 8 and Acid2: A Milestone You can also watch a movie on Channel9: IE 8: On the Path to Web Standards Compliance - ACID 2 Test Pass Complete Technorati tags: IE8, Acid2

Ajax usage among .NET developers

UPDATE: The survey is closed and I just published the results of the survey: .NET Ajax Survey results. Given the results of Ajaxian's survey about the state of the usage in the web development community, I decided to make a new survey, but this time only focused on .NET developers. Please click here to take the survey. I'll collect the results and then make some more stats. The questions are the same as the Ajaxian's one: Are you using Ajax in production, development, proof of concept or not using it at all?...

ASP.NET Ajax usage floats around 35%

UPDATE: I setup a survey focused only on .NET development here. Ajaxian, blog focused on everything related to Ajax development and JS libraries, last week announced a survey about the state of Ajax usage among developers and in the enterprise. The questions were simple: Are you currently using Ajax? Which programming language/web framework are you using Ajax in conjunction with? Which Ajax toolkit, framework or JS library are you using? Yesterday they published the results of the survey, which has been answered by 2618...

How to install ASP.NET 3.5 Extensions Preview

If you are like me, and don't read the instructions and the readme files, you might encounter a few problems in getting the ADO.NET designer to work. To enable the ADO.NET designer you need to install the ADO.NET EF Tools. But in order to install it correctly you have to install also the ADO.NET EF beta 3 and a cryptic XML Editor QFE in the right order. So the correct installation order is: Visual Studio 2008 XML Editor QFE ADO.NET EF Beta 3 ADO.NET EF Tools (Dec...

How to install a Windows Mobile emulator

This might seem a bit old topic, but every time I set up a new machine for developing for windows mobile I always forget where to find the emulator, which one to choose and how to set it up. Today I found an article which explains everything you need to do to test you mobile applications without using the real device. First you need to install the latest version of ActiveSync (which, at the time of writing is 4.5) and then install the SDK for the platform of your choice: Windows Mobile 5.0 SDK for Pocket PC Windows...

IronRuby book by Ivan Porto Carrero

I thought I already mentioned it previously, but probably the things that happened to me in the last month made me forget to mention it. But going to the point, my Belgian Kiwi friend Ivan is starting to write a book about IronRuby. Congratulations Ivan!! Technorati tags: IronRuby, Ivan, book

My definitive color VS color schema

I spent some time in the last months playing around with various color schema and finally decided that the original port of the Vibrant Ink schema to VS is still the one that most appeal to my eyes. The one made by Rob Conery is a bit too little contrasted for me. So here is my VS2008 with the latest version of Vibrant Ink for VS2008 made by John "DLR" Lam. Here you can download it. Just remember that this vssetting file include also the other personalization of John, so just import the "Options>Environment>Fonts and...

ASP.NET MVC

This afternoon, while I was installing for the 4th time this year the Service Pack 1 for Visual Studio 2005, I printed the first post by ScottGu about the new ASP.NET MVC framework. It's a long article (28 printed pages excluding comments) that details quite well the process behind the development of a simple website using all the default behaviors of the framework. I just want to highlight a sentence I really liked: You can use any unit testing framework (including NUnit, MBUnit, MSTest, XUnit, and others) with the ASP.NET MVC Framework. We'll also be shipping project template downloads for NUnit, MBUnit and other...

ARCast meets LightSpeed

I just stumbled upon a video that has just been published on channel9: Ron Jacobs interviewing JB and JD of Mindscape about their domain model framework LightSpeed. Congratulations Mindscape!! At the moment I'm still (unfortunately for the last week) at the lake with hamsters powering my Internet connection, so cannot check it out, but if you have a normal Internet connection speed, go and check it out on ARCast.TV. (Too bad that Channel9 doesn't offer video encoded for the iPod format). Technorati tags: mindscape, lightspeed, arcast.tv

Web Browser History

Today was a rainy day here in Milano, so decided to do a bit of Autumn cleaning, and throw away all my old and, unfortunately obsolete, programming books. I threw away some DHTML books and some ASP Classic ones, and reminded me of my early days of programming and doing web development: I remember that I tested my first website with Netscape 1.something and that my first server side application was built with ColdFusion version 1 and then with LiveWire, the server side JavaScript dialect used inside the old Netscape Enterprise Server. And while looking on wikipedia for these old...

Some clarifications on my opinion about ALT.NET

My opinion about the ALT.NET probably has been misunderstood by a few bloggers that only focused on the first part of the post. Both Ayende and Jay Flowers disagree with my opinion that 80% of the developers can't get the concepts behind ALT.NET. Actually I didn't say that they can't get it, I only said that they don't want to stay up to date, which is a lot different. Even if there are a lot of talks going on, a lot of blog around (as Jay says in his post) most of the developers are not interested in "being on...

Yet another ALT.net opinion

I wanted to write my opinion about the ALT.net thing since a long time, but I really never find the time to sit down and organize my ideas into an organic post.The event that "triggered" this post is my friend Lorenzo asking my opinion about his blog post "There are architect and Architects" (it's in Italian but here is the link to the auto-translated version by Google). In his post Lorenzo, commenting on Sam's post about leaving CodeBetter and ALT.NET, adds some thoughts about something that usually the hard-core ALT.NET people don't get: imagine you have an Enterprise-level project,...

YSlow 0.8 released

Yesterday Steve Souders, Chief Performance Yahoo!, released a new version of YSlow, the tool to help you improve the performances of your website. Version 0.8 fixes a bug in the Firebug NET panel, where cached pages sometimes show up in the network monitor: here is a detailed explanation of problem and how to enable the fix. They also fixed a small problem that caused stylesheets with mixed case not to be recognized as being in the head of the document (rule 5). If you already installed YSlow, you already saw the update via the Firefox auto-update feature, otherwise you...

Exploiting Multi-Core Processors

As we all know the chip industry changed it's approach to performances increment: we will not see 10Ghz processors (not even 5Ghz ones), but now we have duo-core, quad-core and 8-core or 16-core processors coming in a near future. But this is a problem for software developers: while it's easy to take advantage of a 10Ghz processor (just do what you always did, and your application will go faster because it will be run by a faster processor), it's more difficult to take advantage of four 2.4Ghz cores inside the same processor. A few years ago, Volker Will said: But how will...

How to use YUI JS Compressor inside a NAnt build script

As I anticipated yesterday, I implemented the YUI JS compressor inside Subtext's build process, and since it took me a while to understand how to specify the arguments for the NAnt <exec> task I wanted to share the snippet of the build file I created: <target name="JavaScript.minify"> <echo message="${filename}" /> <exec program="java" workingdir="${YUICompressor.dir}"> <arg value="-jar" /> <arg value="yuicompressor.jar" /> <arg value="-o" /> <arg value="${filename}.min" /> ...

Singleton with VS2005 snippet

Ivan and the other guys in Wellington had their last Lunch with Geeks about Design Patterns. And came out with that idea: The most overused design pattern : Singleton. With the remark that a singleton should only be used when you need to keep state in your object internally. So, just to reinforce that concept, here is a VS2005 code snippet to quickly create a Singleton. I uploaded it on GotCodeSnippets.NET, a repository of code snippets. Download the Singleton VS2005 code snippet. It expands to the following code: public sealed class Singleton { private readonly static...

Blogging from Melbourne

I'm here at the Melbourne airport, after 4 hours and 30 minutes of flight over the Tasman Sea. The Qantas zone of the airport has free WiFi connectivity, which is very good, compared to the 5£ per hour I paid at Heathrow coming in New Zealand 7 months ago. Now my connectivity is limited only by the short battery life of my old laptop: too bad I don't have the 6 hours battery life of a Mac yet. Anyway, looking at my feeds, I just found out a very good news: my friends from Mindscape just released the first official...

ORM vs HandCoded DAL: Adding a new field to a table

In a World of constantly changing requirements adding a new field to a table is pretty common task: a new user profile field, a new flag to control the display of something, some other customization parameter. Let's see the steps involved in this easy task, both using an ORM (I'm using NHibernate) and using an hand made DAL. Task NH ...

How NOT to prevent SQL Injection

This is the best anti-pattern about security and SQL Injection on the web. Today I found, via <edit>, html.it blog, a CMS that use a "creative" approach to get data from the DB: passing the SQL string directly as querystring to the page. Here is an example: newssearch.asp?strSQL=SELECT+*+FROM+news+WHERE+(+lingua+%3D+'ENG') And if you search on Google for "allinurl:sql select from where", you will find heaps of pages that use this approach (tonight the results were 111.000). I found sites built in ASP Classic, PHP, cgi, Perl, seems quite a widespread technique. What if someone writes DROP TABLE NEWS instead of SELECT ...? Technorati tags: sql injection, security

Too many Code Monkeys joining the developer community?

This seems to become one of the hottest topics about the socials of software development. After last weeks' posts by Ayende on whether Microsoft should target "Mort" instead of the Alpha Geeks (and all the other post about that topic around the community), Scott Dorman said that there is an even worse problem: the "mass market developer": A "mass market developer" is usually at the low end of the developer spectrum.A more frustrated code monkey, ibid. They have no formal training and are what could generally be considered to be a "code monkey", but in the derogatory sense. These are the...

Rhino Mocking NHibernate Expressions

A few days ago I wrote a post about how to test your business layer using Rhino Mocks. Last time I set an expectation on an method that accepts a normal int. Today I'll show how to work on something more complicated: a NHibernate Expression. How to Mock the FindOne(ICriterion[]) I've to test a method that returns a user given its username. 1: public User GetByUsername(string username) 2: { 3: User returnUser = 4: _repository.FindOne(Expression.Eq("EmailAddress", username)); ...

How to mock a NHibernate Repository

 In my current project I'm trying to apply the best practices for building "great software" (cit.). One of the best practices is using a (kind of) TDD approach, using Inversion of Control and Dependency Injection to test only the relevant parts of your code without testing all the layers of your applications, DB included, during each test. Which are the benefits of this approach? First of all your tests run quicker because they are not hitting the database all the times. Second, you don't need to restore the initial state for the database. Third, if you are...

What convinced me to adopt a (kind of) Test Driven Design approach

I've to admit it: I never wrote many tests for the code I wrote. Probably one of the reason is that the last time I wrote something from scratch, with enough time to convince the other members of the team to try a new approach, was before the TDD became known to the general audience. I only wrote some test for small part of the code, or to expose some bugs and later fix them. But 2 months ago, I had to design from scratch a small web application: and again I didn't have the time to sit down, look around...

How to use the command line CodePlex Client

In the last days I've been working on a small tool that will be included inside BlogML, but I didn't want to install the Team Explorer since it's quite a big download for just a source control client (246Mb). So, while I wait June 18th for the deploy of the bridge that will allow access to CodePlex using any SVN client as TortoiseSVN, I decided to go the hard way and install the standalone command line tool: the CodePlexClient. Being a command line is a bit more complex to run, so here is quick step by step tutorial on how to install and use it. 1 -...

8 things the Linux community doesn't get about the average computer user

I just found two interesting articles by Adrian Kingsley-Hughes on the ZDNET Hardware blog: Five crucial things the Linux community doesn’t understand about the average computer user Three more things that the Linux community doesn’t get The second article is a follow-up of the first one, triggered by the tons of comments from people in the Linux community still going on not understanding. The author tries to answer the following question: Why is it that the average computer user still chooses to spend hundreds of dollars on Windows or Mac when there are countless Linux alternatives that they...

The user is the 4th tier of any application

Are you an architect or developer and do you think the user experience is not something you should care about? Well, you are wrong. I was listening to an interesting series of podcasts from ARCast with Ron Jacobs on why an architect should care about the User Experience, and how to do it. I think the reason why an architect should care about the end user experience is all in the title of this post. If you look at any enterprise application, split in tiers (usually 3 tiers), with interfaces between them, you have to think at the end user as 4th tier of...

NHibernate 1.2 is stable

Sergey Koshcheyev, project leader of NHibernate, just announced the release to the world of NHibernate 1.2. NHibernate 1.2 has been in beta testing for the last half year. Today it is officially marked stable, production-ready, and supported. What are the most compelling new features and why should you upgrade? Just a brief overview of the new features: there is a commercial support: I guess that the lack of that is one of the things that scares "traditional" IT managers the most Native support of generics Support for Stored Procedures SysCache2: a second level cache provider based on the...

Per-project Visual Studio Settings

Working on both "real", personal and opensource project sometimes I've to face the problem of managing different visual studio settings based on the project I'm working on. For my personal projects I like a certain tab and curly brace configuration, for Subtext I've to use another convention, and from my real job I've to use yet another configuration. After a few weeks of struggling I decided to adopt the Subtext settings even for my personal projects, but I cannot do it for my job, because that settings have been already used for years: so, every time I've to change type...

Managing application configurations in development teams

A common scenario in team development, but even more common in open source projects, is that developers working on the same project can have different setup environment: different connection strings different path to reach specific folder or configuration files maybe even different url to reach some webservices different smtp servers and so on ... The best solution is to have the user (during that post user===developer) being able to specify his own specific settings without having to modify the main web.config. .NET 1.1 In the .NET 1.1 all the configurations were inside the <appSettings> section...

Vista Gadget for CruiseControl.NET - CC.NET Monitor for Vista Sidebar 0.5

UPDATE: The latest version of CC.NET Monitor for Vista Sidebar is v0.9.5: read more about it on the CC.NET Monitor for Vista Sidebar v0.9.5 release notes. I'm using CruiseControl.NET both at work and for Subtext, and since I'm using Vista I wanted to look at my servers states inside the Vista Sidebar. Last October Ruslan Trifonov built a Vista Sidebar Gadget for Cruise Control.NET, but I didn't like it mainly because it connects to a custom web service he built on purpose, instead of using the REST-like API provided inside CC.NET. So I decided to give the Vista Sidebar Gadget development a try, and I built...

WPF/E has name: Silverlight

Sunday 15th was NAB day, and everybody was waiting for some shocking announcement from Apple (which announced only a professional version of Final Cut Server), but the shocking announcement came from the other side of the wall. Microsoft announced its "flash-killer" web platform: MS Silverlight. I've always been a fan of advanced GUI for the web, and finally we have a flash-like platform that can be developed with Visual Studio and developer oriented IDE. Flash was good but it lacked a powerful IDE as Visual Studio. Here are some link to blog of people directly involved in the development: ...

Intellisense for SQL

Intellisense allows developers to be faster when writing code, and it can be used for almost everything inside Visual Studio, from C# code to general XML formats and CSS. But when writing SQL queries or stored procedures you have to rely only on your memory or on cut&paste. Today I found a very cool application that enables a sort of Intellisense also when writing SQL queries. And not only in VS, but also inside Query Analyzer, Management Studio, Enterprise Manager and even UltraEdit and EditPlus. I'm speaking about SQL Prompt by Red-Gate. ScottGu wrote about a special offer for the old...

Software development like which climbing?

  I just read an article by Jeff "CodingHorror" Atwood about a comparison between Software Projects and Rock Climbing. As someone might have guessed from my domain and from the logo of my blog, I'm a rock climber Some comments on the original post say that, with the right justifications,  probably anything can be compared, more or less, to software projects. I think this is correct: words are a very powerful tool if used by someone that knows how to use them. But let's focus on the original software project - rock climbing metaphor. First let's say...

Continuous Integration with The Simpsons™

As part of my new job as Chief Software Architect here in Calcium, one of my task is setting up a "state of the art" build/testing environment so that the various developers working on the project know if they broke something with their latest commit, or the exotic Java-.NET integration stopped working. I already setup a CC.NET build server (and I already wrote about something I did), but Continuous Integration is useless if nobody knows about the results of the builds in a timely way. We have all servers (both the build and the test server) in our office, so I installed CCTray on...

Synchronize assembly version with CC.NET build number with NAnt

In the last month I started working again a lot on CruiseControl and build processes. Another quick tip I think it's interesting to share is how to have the version number of the code you are building synchronized with the build number generated by CruiseControl.NET. As everything related to build processes inside CC.NET this is achieved using a NAnt task: asminfo. Step 1 - CC.NET Labeler The first thing you have to setup is the labeler inside the ccnet.config file: <labeller type="defaultlabeller"> <prefix>2.2.0.</prefix> <incrementOnFailure>False</incrementOnFailure> </labeller> This will instruct CC.NET to prefix the build label with the major.minor.revision of your...

Offline mode: do we really need it?

I really don't understand the reason of all the excitement behind the offline-mode of Firefox 3.0. The developer working on that feature, Chris Double (he is a NZ guy), just released a proof of concept of Zimba running in offline in FF 3.0. And everybody in the JS/Ajax world is getting excited about that. A few days ago I read a very nice post (nice as usual) by Jeff "Coding Horror" Atwood: Does Offline Mode Still Matter? I've different feelings about it: maybe some application need the offline mode, imagine downloading all your RSS feed to a PDA, and then read them...

Build WebAppliction Projects with MSBuild

You installed the webapplication project update or installed VS2005 SP1, and you developed your web application using with that kind of project. Now you want to build it on a build server using MSBuild. If you didn't install VS2005 with that specific update also the build machine, the first time you try to run it you get the following error: "The imported project "C:\Program Files\MSBuild\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplication.targets" was not found" The solution for that problem is very easy: just copy from you machine the Microsoft.WebApplication.targets file and put it inside "C:\Program Files\MSBuild\Microsoft\VisualStudio\v8.0\WebApplications\". Probably you have to create also all the folders in...

Codename your releases

Longhorn, Leopard, Indigo, Poseidon, Gran Paradiso, Yukon, SharpFreedom, Supertanga, Revolution, Lightning, Lambrate, Orcas, Q98, Fiji, Pendolino, McKinley. What does all these names have in common? Apparently nothing... but they are all codenames for various kind of software. Apple codenames his OS releases with big cats names, Microsoft after places, Firefox with natural parks (next release, 3.0, will be named Gran Paradiso, my favorite Italian National Park), Subtext names are submarines names, Nic's company is naming its releases after cocktail names. Why is important to have codenames for software release? Decouple marketing name from the internal name When you start developing a new product you have to decide a name, the...