What do you like best?
I have used CruiseControl.NET at two companies that I have worked for and found it be an extremely powerful CI tool. Being an open source tool there is a level of technical expertise assumed when you install and configure it. Although the installation process installs and sets up the CC.Net service, there is level of manual configuration required to configure permissions. If you are technically capable then this won't be a problem, but if you lack IT skills then you may find this problematic.
CC.NET gives you huge amounts of flexibility in setting up your CI projects. You can even configure CC.NET so that you can build CC.NET itself as just another CI project. Pretty cool.
To create new CI projects you will need to manually edit the underlying XML files. If you are technically competent then this won't be a problem.
You get a lot of bang for your buck withthe free version and I have never had to uswe the enterprise (paid) version. The free version can be used in heavy duty enterprise environments running multiple CI projects in large teams without any problem.
What do you dislike?
Although never a problem for myself, CC.NET does require a level of technical competency to configure, both during the installation stage and in adding your CI projects. The UI and ease of use could be improved, but the level of flexibility that you get more than makes up for this.
I would like to see a gated build added to CC.NET i.e. where broken builds are rejected. If you check in code that breaks the build then you need to take remedial steps to correct it. In other CI tools such broken builds are rejected before they get to that stage. The build is instead safely quarantined where it can be corrected before it breaks your build process.
Recommendations to others considering the product
Being an open source tool the support is in the form of the open source community. That said however I always found answers to my questions. The product is aa mature one with a large, healthy community and user base. It is well documented and supported by the community. It helps if you are technically competent as it's not the easiest application to install and configure. However, you get an impressively flexible and powerful CI tool that scales very well to the enterprise.
What business problems are you solving with the product? What benefits have you realized?
I have used CC.NET for WCF, Xamarin.Android and ASP.NET projects to name a few. I have also integrated CC.NET with Subversion version control. I used Nant build scripts to give greater flexibility to the build scripts that were used in conjunction with the CI projects.
You can use CC.NET fr both continuous integration as well as continuous deployment. I would recommend keeping your build CI projects separate form your deployment CI projects.