1

I am currently working on an open source project, and I had originally written my code against the .NET 3.5 Framework. I am using a small amount of Linq, but nothing significant at this point in time. I do not see much need for any of the more advanced features for my project (at this time)

A user has asked for .NET 2.0 support, and it would not require much effort to use the ExtensionAttribute hack in 2008/2010 to support extension methods and re-define the couple of Linq methods I am using throughout my code (half-dozen different methods currently) in order to support .NET 2.0. Also, the assemblies I am dependant on are currently available in .NET 2.0 (may change in the future???).

Curious what the community would do? Should I support .NET 2.0, stick with 3.5 and alienate some users? My gut is telling me I should make the changes required, but I wanted to see what everyone else thought? Would you support a single code-base in .NET 2.0 or somehow manage .NET 2.0 and 3.5 versions?

Thanks in advance!

Chris Baxter
  • 16,083
  • 9
  • 51
  • 72
  • 6
    What is their motivation for sticking with 2.0? Since 3.5 still uses the same CLR, it's actually a pretty conservative upgrade. – Matt Greer Aug 02 '10 at 16:43
  • There really isn't a definitive answer to this question - it's very subjective. Should probably be CW... – Reed Copsey Aug 02 '10 at 16:46
  • @Matt Greer - The reason for sticking with .NET 2.0 is legecy 0S of Windows 2000 – Chris Baxter Aug 02 '10 at 16:56
  • @Reed Copsey- Sorry, not fimilar with CW? Also, I am not sure it is subjective, I am seeking the communities input on what criteria should be used for determining what Framework version to support and what issues I may run in to by choosing to support an older Framework, like discontinued support of the framework by 3rd party assemblies etc. – Chris Baxter Aug 02 '10 at 16:58
  • @Calgary Coder: See this page in the FAQ: http://meta.stackexchange.com/questions/11740/what-are-community-wiki-posts – Reed Copsey Aug 02 '10 at 17:01

5 Answers5

3

Billing Rate * hours worked = cost
price * customers gained = income

if(cost >= income) don't convert.
else convert.

I would generally encourage the client (if its only one) to upgrade to 3.5 framework. They won't have to change any of their existing code (or, so little it should be trivial) and it's a relatively light-weight download.

AllenG
  • 8,112
  • 29
  • 40
  • Although I agree completely for a commercial product, open source projects are somewhat different. The motivations required are different when you're persuing development as a hobby, as the price and billing rate in the equation are always 0... It's more important, IMO, to look at personal enjoyment vs. satisfaction from community uptake... – Reed Copsey Aug 02 '10 at 17:04
  • Adding LINQBridge: estimated ~20 minutes if the OP has used Linq the way he said. Might be worth the effort even if he wins just one customer. – Doc Brown Aug 02 '10 at 20:40
2

This is completely up to you. How important is it for you to attract this user? How many other users of yours are using .NET 2 vs. 3.5 (or 4!!)?

Basically, you're the only person who can decide whether the effort to support an older technology is worth the potential users you'd attract.

Remember, though - if this is an open source project, the user could always modify your code to work on .NET 2, as well...


That being said, if this was my project, personally, I'd use the framework I want to use, and that I enjoy. I feel that, especially for an open source (non-commercial) product, using newer technologies will make me more efficient, and I'll enjoy the development more. This, IMO, will make the project more likely to be a success, since I'll be happier working on it, and be able to spend more time adding functionality instead of working around a .NET 2 requirement...

Reed Copsey
  • 554,122
  • 78
  • 1,158
  • 1,373
1

If its not much trouble, do your best to support .NET 2.0 so as to not alienate many customers as you suggest, although I doubt you will be able to do it forever as too many nice new features and put into each new .NET version. Is there a reason they can't install a later version of .NET?

Iain Ward
  • 9,850
  • 5
  • 34
  • 41
1

What does this one user represent in terms of your customer base? Obviously, if this is your only customer, then you either need to accommodate their needs or convince them of the need to upgrade their .NET installation. On the other hand, if this customer is a small percentage of your overall customer base, I would stick with the version of the .NET framework that makes the most sense for your project.

Under no circumstances would I create .NET 2.0-compliant and .NET 3.5-compliant versions of your product. This only increases the complexity of development and time required for support and maintenance.

Matt Davis
  • 45,297
  • 16
  • 93
  • 124
1

If you want to use Linq on .NET 2.0 with almost no effort, download LINQBridge, so you do not have to reinvent the wheel. Best of it, it is open source and free.

Doc Brown
  • 19,739
  • 7
  • 52
  • 88
  • LinQBridge looks great. If I ever were in this situation I'll probably use this solution. – Carlos Muñoz Aug 02 '10 at 20:26
  • Awesome, didn't know about that library. Thanks! (I of course rolled my own, but I can defintely see that being really useful in other projects were there are more than a couple simple linq methods being used). – Chris Baxter Aug 02 '10 at 22:39
  • Changed my mind... using LinqBridge allows me to delete two projects from my solution. Thanks again! – Chris Baxter Aug 02 '10 at 23:04