Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

Do you use OSS tools for .Net development?

Just an informal, unscientific poll — and the simple fact that you're reading this probably indicates that you're not entirely part of the .Net mainstream.

Does your workplace routinely employ Open Source tools for software development with .Net?  If not, why not?  Based on experience, I can probably make some guesses, but I'd still prefer to hear it from you.

  • OSS isn't supported
  • Untrustworthy quality
  • Company policy
  • Don't know the alternatives
  • We only use Microsoft tools

 

As Scott Bellware alluded to, part of DevTeach this year is an evening panel on the state of OSS in the Microsoft world moderated by Ted Neward.  I obviously think we get a lot of benefit from OSS tools, but there are some barriers that still need to be overcome.

Just for fun, my current project is using these OSS tools:

  • StructureMap (surprise)
  • NAnt
  • NUnit
  • NUnitForms
  • NAnt
  • CruiseControl.Net
  • FitNesseDotNet & StoryTeller
  • RhinoMocks
  • IKVM (don't ask)
  • Log4Net
  • NCover
  • Subversion
  • TortoiseSVN
  • Ankh
  • CVS
  • TortoiseCVS

In past projects I've also used:

  • Selenium
  • NHibernate (I wish we could use NHibernate on my current project)
  • NMock

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://kanekirby.tumblr.com/post/55248016992/net-development-provides-a-wide-range-of-tools-for Clinton Erickson

    I don’t think that anybody will be there who won’t be using OSS tools, at the time of testing I make use of these tools at the utmost level.

  • Alexander Kojevnikov

    We use:

    SVN
    TortoiseSVN
    Trac
    NUnit
    WiX // surprised nobody mentioned it
    NCover
    NMock

    Plan to use:

    NAnt
    RhinoMocks

  • David Gil

    Anyone is using an MVC tool such as struts en .NET that is enough mature?, in the context of web projects…

  • http://broloco.blogspot.com/ Richard Brown

    I wouldn’t be without our Open Source software. In addition, I don’t consider it management’s decision as to whether we do use OSS or not.

    I also think that these tools make me look like I can do magic in amazingly short timescales. I’d be lost without them.

    We use:

    Subversion (perhaps the single best bit of OSS software there is)
    TortoiseSVN
    NAnt
    NUnit
    NCover + NCoverExplorer
    NDoc
    CruiseControl.Net
    CodeSmith (2.6)
    log4net

    Some additional stuff we use that isn’t OSS, but is free:

    ConText
    Microsoft Visual Web Developer 2005 Express Edition (for designing .rdlc files)
    Microsoft ReportViewer control

    And finally, a couple of tools I want to use and will hopefully incorporate in the near future:

    NHibernate
    Spring.Net

  • Sachman Bhatti

    Heavy use of MySQL (with the .NET Connectors), SQLite, and NUnit

  • Bob King

    The documentation complaint IS a valid one. I’m all for the idea that one should contribute back AFTER they become somewhat familiar with a tool, but getting to that point is a risky exercise. It requires either (a) diverting attention from the paying work to build/exercise a sandbox environment or (b) risking the project schedule to implement the new tools into the production path.

    Whether one will admit it or not, the docs that do exist fall squarely into 3 categories:
    1) A quick and dirty “getting started” guide that only covers the happy path.
    2) Release Notes and a handful of single-purpose docs
    3) Forums and lists

    The lack of clear, concise, relatively professional documentation makes (b) a hard sell in the corporate world and DOES contribute to the appearance that OSS is not ready for prime time. Sadly, it appears that the members of most of these OSS projects still consider documentation to be a diversion from the fun stuff – that of enhancing the tool to do the things THEY want.

    It’s too early in my use of these tools to make any promises, but my approach right now is to meticulously document EVERY step, every bump and every issue I encounter in my quest to incorporate these tools, and to then organize those notes into something other noobs can find helpful. As you can imagine, this is effectively making every task take twice as long as I’d like, but someone’s gotta do it.

  • http://www.chrisholmesonline.com Chris Holmes

    We use Infragistics too, and you’re right Jeffrey – the documentation is horrible.

    Documentation doesn’t keep us from using OSS. It’s just one of those factors that makes us think twice before taking the plunge on any particular solution. But so does money, which is why we think twice before buying solutions as well.

  • http://www.jeffreypalermo.com jpalermo

    Subversion
    TortoiseSVN
    CC.Net
    NAnt
    NUnit
    NHibernate
    NCover
    NDepend
    NUnitForms
    StructureMap
    NFit
    Storyteller
    RhinoMocks
    NAntContrib

    I am management (VP of Engineering), and it makes so much sense practically. My group also uses Infragistics controls for WinForms, and DOCUMENTATION is not a good argument. We have to do much more google searching for Infragistics answers than answers for any of the above OSS tools.

  • http://www.codebetter.com/blogs/jay.kimble jkimble

    What the heck… here’s my list of usuals (off the top of my head)

    * Aptana (which I think qualifies… I forget the exact license)
    * Subversion
    * TortoiseSVN
    * AnkhSVN
    * FireFox
    * K-Meleon (another Mozilla Browser)
    * NotePad++ (which is better than Notepad2, IMO)
    * SharpDevelop 2.1 (this is great if all you need to do is a simple compile or a quick edit)

    stuff I use occasionally (some of which I should probably use a little more)
    * ZaneBug (I’m not a TDD guy as you know; I do use these when I need to create a test… I know, I know I need to wrap my head around TDD)
    * JSUnit (I need to look at this some more for the same reason)
    * Nant

    BTW, does the MS Ajax Control Toolkit count? Right now I’m using that on a fairly regular basis as well.

  • http://www.feedghost.com/ Stu Smith

    We tend to be an MS shop for convenience, but what drives us to OSS is:

    * MS don’t have a mid-range source control system. SourceSafe isn’t powerful or robust enough, and TeamSystem is priced out of range for most developers. Of course, once you’ve set off down a source control route it’s hard to change — who wants to lose all their history?
    * MS don’t have decent profiling tools (again, excepting the ludicrously-priced TeamSystem). Although not OSS, ISVs like RedGate, SciTech, etc have stepped in to fill the gap nicely.
    * MS don’t have any (decently priced, getting tired of typing that) bug tracking tools. We use BugTracker.NET and it’s simple and effective.

    And what has driven us away from or put us off certain OSS projects?

    * Lack of decent Windows support: too often you go to the website for an OSS project, and the Windows branch is maintained by a single, overworked developer, on a different and badly hosted site.
    * Lack of decent installers. Unzipping and editing config files or the registry is no fun. TortoiseSVN is a shining light of how it should be — a great installer, with notifications of new versions.
    * Mix of technologies. I just want ASP.NET and SQL Server on my dev server: I don’t want to have to add PHP for this, Java for that, and Python for the other. It’s telling just how good Subversion is that we also installed Apache to host it — had it not been such a critical component, that would have been a stumbling block.

  • http://www.damieng.com/blog/ Damien Guard

    That list is very similar to mine but I’m surprised nobody on this list is using Trac.

    Okay, Trac can be a pain to install on Windows http://trac.edgewall.org/wiki/TracOnWindows but once done it gives you a wiki, ticket system, milestones and source viewer that integrates quite nicely with Subversion.

    [)amien

  • http://vikasnetdev.blogspot.com/ Vikas Kerni

    NUnit

    NAnt

    CruiseControl

    Hopefully very soon StoryTeller. :)

  • http://blog.tiredstudent.com David Longnecker

    Currently using NUnit, NCover+Explorer, CruiseControl.NET, and Subversion/TortoiseSVN.

  • David

    Using Subversion, TortoiseSVN, AnkhSVN, and NUnit.
    It was a tough fight to get Subversion et al in, mainly due to corporate suspicion over OSS, and the “we only use Microsoft” excuse.

  • http://codebetter.com/blogs/jeremy.miller jmiller

    Andy,

    Inertia? I actually did work with one of the NUnit 2 guys for awhile too, so there’s a bit of loyalty.

    Luke Melia was talking to me about MbUnit a couple weeks back. I’ll give it a spin soon.

  • http://weblogs.asp.net/astopford Andy Stopford

    I’d like to hear folks views on why they selected NUnit? Ease of use, documentation/articles/books, tool integration, running on Mono etc?

    Andy

  • http://codebetter.com/blogs/jeremy.miller jmiller

    Jan,

    It’s always easiest to use tools for testing and deployment that aren’t actually deployed with the product. And I definitely understand the pain of the centralized architecture team. I even had to be one of those guys for a little while, and there’s just no possible way they can keep up.

    Jeremy

  • Jan Van Ryswyck

    We are using:

    NUnit
    NCover
    NCover Explorer
    Rhino Mocks
    FireFox
    Firebug
    Notepad2

    with possibly in the very near future Selenium (or WatiN) and NUnitForms. If it were up to me, I would like to add NHibernate, MonoRail and StructureMap to the list. But we are terrorised by an isolated architecture team (completely brainwashed by Microsoft) that is even worse than the gestapo in WWII. I think that we did a pretty good job introducing these tools in one years notice.

  • Steve

    I use them.

    To those that blame your boss: Is your boss a programmer?

  • Peter

    My boss was skeptical of OSS, when I started working for his company. He expected OSS offerings to be of poor quality, because they’re free and don’t have a company backing them. Initially, I got him using Subversion and TortoiseSVN, and he was so pleased with using them, that they definitely changed his perception of OSS. Currently, we’re using:

    Ibatis
    Spring.Net
    NVelocity
    Log4Net
    NUnit
    Rhino Mocks
    SVN
    TortoiseSVN
    Microsoft’s Enterprise Library (not sure if this one really counts, though)

    Notes:
    The more popular an open source project and the more actively maintained it is, the less we worry about it. Using NVelocity is a bit of a problem, because it is not being actively maintained and never made it to a 1.0 build. However, its use is localized to a small portion of our application. (if anyone can suggest a good substitute, I would love to hear about it)

  • Ricky

    It looks like you must really like NAnt. Is it so important you’re listing it twice? ;o)

  • Josh

    We’re using:

    NUnit
    NAnt
    Rhino Mocks
    CruiseControl.NET
    NCover
    NDepend

    I’m hoping to explore FitnesseDotNet and WatiN sometime soon.

  • http://www.matrixrcl.co.uk/ Jeremy Collins

    …and I guess I should include the ASP.NET AJAX Contol Toolkit as well?

  • http://www.matrixrcl.co.uk/ Jeremy Collins

    We’re using
    #Subversion
    #TortoiseSVN
    #WinMerge
    #BugNet (an ASP.NET OSS bug tracker)
    #Paint.NET (for simple web graphics)

    and of course Firefox. Honourable mention to Notepad++ too, which I seem to have open most of the time for something or other. I’m hoping to implement NUnit when we have the luxury of time.

    In general the point about documentation is a fair one, but Subversion has excellent documentation.

  • Glenn Wiley

    My company is fairly open to using OSS tools. We use:

    NUnit
    NAnt
    NUnitForms
    Rhino Mocks

    It was much more difficult to use OSS tools at the last two places I worked for the reasons you guessed. Basically, you had to request approval to use an OSS tool from a senior architect, and if that person hadn’t heard of the tool, or used it before, you were pretty much out of luck.

  • LordHits

    Regarding Chris’s commment about lack of quality documentation, I agree to a degree BUT that’s the beauty of open source. One can contribute to quality docs. Maybe there’s a disconnect with some open source project’s web sites on how to contribute, but make the effort in contacting some of the leads on how to contribute. Many have wikis which work out great.
    Open source should be a give and take situation. Contribute some sometimes…

  • http://www.chrisholmesonline.com Chris Holmes

    We use a few open source solutions where I work (NUnit, NCover, NCoverExplorer, CC.NET, FitNesse). The main reason is because it just makes fiscal sense to utilize a free tool if it does as good (or better) of a job than one that costs money.

    But Jeremy, you asked for reasons why we wouldn’t use OSS tools, and here’s my #1 reason why we wouldn’t (my #1 gripe about OSS if youw will): lack of quality documentation.

    We ran up against this last week when I was getting CruiseControl.Net to work. We’ve been periodically working on getting a CC.NET server working for the past 2+ months. A couple hours here, a couple hours there. Finally I decided to devote however long it took to get the thing working, because I wanted our team to have a continuous build solution and I wanted to be able to see reports on unit tests and code coverage everytime we did a checkin.

    Unfortunately, the documentation is horribly lacking and all over the map, which I find to be the norm with OSS tools. I was trying to integrate CC.NET with MSBuild, NUnit, NCover and NCoverExplorer. It took forever (actually about a day and a half, which made me feel guilty because I wasn’t working on code). There were simply too many instances of documentation that didn’t tell the whole story (XML examples that weren’t complete, etc.) I had to query the CC.NET mailing list to find out that our Vault checkout was incorrectly located inside a Task, for instance, because there wasn’t one piece of documentation that told us to do otherwise.

    We eventually got it running, and it’s wonderful to have that tool and those reports, but the lack of quality documentation and examples, and the scattering of the documentation (mostly blogs all over the map) makes for a very frustrating experience.

    There’s no debating (at least in my mind) the usefulness of OSS. It’s the experience that makes me cringe. If the process of utilizing an OSS was less frustrating then I think developers would be less hesitant. (NUnit would be an OSS I’d point to has being a pleasant experience, compared to setting up CC.NET).

    Anyway, my 2 cents.

  • http://codebetter.com/blogs/sam.gentile SamGentile

    We are using:
    NUnit
    CruiseControl.Net

    FitNesseDotNet
    RhinoMocks
    Subversion
    TortoiseSVN
    Ankh
    Wiki

  • William Martin

    We are using: NUnit, CruiseControl.NET

    Upper Management is against us using Open Source in production code because of some bad experiences in the past.

  • Alex

    Currently we are using:

    # NHibernate
    # NUnit
    # NAnt
    # WatiN
    # Log4Net
    # CVS
    # TortoiseCVS
    # WinMerge

    And soon we will be implementing:
    # CruiseControl.Net
    # Some type of Fitness testing
    # Subversion
    # TortoiseSVN
    # Ankh

  • http://codebetter.com/blogs/jeremy.miller jmiller

    What do you mean? Do the developers on my specific project have to use these tools, or just in general?

    On the project, you do have to use these tools, but the tool selection was either out of our hands or we chose the tools.

    In more general usage, there are other alternatives to just about everything up there.

  • http://www.kevinjensen.com Kevin Jensen

    just out of curiosity, which of the above OSS tools would you consider a REQUIREMENT for developers to use?