June 25, 2007
As part of my new advertising initiative, Microsoft and I are teaming up to donate $10,000 in support of open source .NET projects.
Why am I focusing on .NET open source projects? In short, because open source projects are treated as second-class citizens in the Microsoft ecosystem. Many highly popular open source projects have contributed so much to the .NET community, and they've gotten virtually no support at all from Microsoft in return. I'd like to see that change. In fact, I'll go even further-- I think it must change if Microsoft wants to survive as a vendor of development tools.
Of course, I'm not the first person to make this observation:
- Scott Hanselman
It's a shame that Microsoft can't put together an organization like INETA (who already gives small stipends to folks to speak at User Groups) and gave away grants/stipends to the 20 or so .NET Open Source Projects that TRULY make a difference in measurable ways. The whole thing could be managed out of the existing INETA organization and wouldn't cost more than a few hundred grand - the price of maybe 3-4 Microsoft Engineers.
- Ayende Rahien
The open source community in .NET is big, but it is only a fraction of the size of the open source community in other environments (Java, for instance). This disparity can be explained by looking at the basic facts of the .NET community: there's one central vendor, Microsoft. This puts Microsoft in a position where they have the ear of every .NET developer, team lead and architect. And Microsoft isn't doing anything to foster a healthy OSS community around .NET.
In my company's commercial application we depend upon DotNetNuke, Nant, log4net, NUnit and other open source tools. Those open source projects help support us. In fact, without DNN, we would probably be out of business because our developments costs would be too high. In turn, my company helps support Microsoft through the purchase of licenses and MSDN subscriptions. Yet Microsoft does not complete the circle by financially supporting any of those open source projects.
- Joe Brinkman
I believe it is in Microsoft's best interests to identify a handful of open source projects to support, especially where those projects fill a void in the Microsoft product line, or where the project promotes the adoption of Microsoft products. However, I think the project bears even more responsibility to identify how they can benefit a potential corporate sponsor, and then actively pitch the idea to the corporation whose sponsorship is being sought. The project should care more about developing and growing this relationship than the corporate sponsor, since the project could well die without the support, while the corporation only loses one of many potential opportunities.
Open source software is at its best when you aren't obligated to do anything at all other than use it
. But given the disappointing lack of official support for open source projects in the Microsoft .NET ecosystem, it's time for us to band together and do something
about it. When Anand
mentioned that he could match my $5,000 donation with funds from Microsoft, I was thrilled. This is a fantastic opportunity for Microsoft to step up to the plate and make their support for open source .NET projects explicit in a very public way.
Here are my initial thoughts on splitting up the $10,000:
- Three donations of $2,500 for the most worthy established .NET open source projects.
- Five donations of $500 for new, up and coming .NET open source projects.
I'd also like to see this become a yearly event. As long as my advertising revenues hold up, I'm certainly willing to contribute a percentage back to the community every year.
All of this will be determined by popular vote, of course. Let's start by getting together a list of candidates. I'm soliciting nominations. Which .NET open source projects do you find most useful?
Posted by Jeff Atwood
NProf / NProfiler / Prof-It for C#
DotGNU / Mono
Diva (a very nice open source video editor)
I too am a long-time user of SharpDevelop. One of the big (and very needed) tools I've relied on has been nProf. Sadly, development on the 3 major open-source performance profilers seems slow at best (nProf, NProfiler, and Prof-It for C#). An infusion of funds could possibly really help.
Open source doesn't need money to become solid, it needs attention.
I agree, but we have to crawl before we can walk. There will soon be open source MVPs, from what I hear..
Just throwing money at open source is what MS is doing for years and it hasn't payed off.
When has MS "thrown money" at open source? I've cited multiple blog posts above from people who ask for exactly that, so educate us, Frans. I realize that money is not the answer to all problems, but it's a great starting point for a larger conversation.
Phenomenal new blogging engine. I prefer it to dasBlog, Community Server, and subText already, and it has only had 3 revisions. (And no I am not affiliated.)
"I really think we can extend the incubator idea Rob had to existing projects and also form some sort of organization to provide OSS mentoring. I'd be happy to teach the hard lessons I've learned, as well as learn from those who've run projects even more successful than mine."
So, Phil, in other words, a foundation of some sort should be founded, which receives donations and acts as a form of VC for OSS projects? (so OSS developers can get funding from that foundation to develop the projects) ?
Sounds interesting :)
Would a small consideration be enough to get the NDoc project up and running again with support for .NET 2.0? It's more than a shame that this project died due to lack of financial support (OK, that was *one* of the reasons) before Sandcastle was ready to take over.
ZedGraph (easy flexible charting) is the absolute killer .NET open source tool, better even than most commercial products. MBUnit and Reflector would also be on my list.
How about telling us about the details?
That is a phenomenal question. We're still trying to crank out the details (atleast I am, I'm sure Jeff has been thinking about this for a lot longer than I have). But I'm glad we're having this discussion - it gives us a lot to think about.
Has to be MbUnit :)
Subsonic is also very good.
While Reflector is great, it's not open source.
It is a software factory for game development. Support would be great for us to create an upcoming XNA-enabled version of the factory (what the site shows is a prototype of a Managed DirectX version). Activities include the creation of game engines, domain-specific designers and code generators to be used by game programmers.
[andrewilsonfurtado [at] yahoo.com.br]
What about sponsoring a competion? Like the XPrize, but you can call it the NPrize.
Basically come up with a set of requirements for an open source project that would be nice to have (it could certainly be one that already exists), provide a deadline, and then, if there are multiple projects that have been nominated, your readers can vote for their favorite. It should be a winner take all competition.
It can be an annual competion. I'm sure some of your readers would be willing to contribute money for the prize. A competition might raise awareness as well as encourage the creation or improvement of a useful application.
I would say:
CruiseControl.NET, MbUnit, and, since Scott mentioned dasBlog, I'd also say Subtext :)
Definitely the Castle project and NHibernate, i couldn't work without them.
DasBlog, NUnit, iText
Ndoc or other sandcastle gui
Franz: I totally agree with Castle, but NHibernate is sponsored by JBoss, and NHibernate developers are paid for full time maintentnce of the project.
Definitely I would pick ZedGraph.
As someone who has developed multiple OpenSource projects on Windows, I have issues with .NET.
First off, are all the various .NET's licenses one has to agree to in order to work under the system GPL compatible? Microsoft has been known to craft EULAs with the specific purpose of making them GPL-incompatable. I'm guessing there's some way to do it, as a gcc-based Ada compiler has been ported (http://www.usafa.af.mil/df/dfcs/bios/mcc_html/a_sharp.cfm ). However, a quick search online indicates that the license associated with the Ajax controls, among others, is incompatible. According to http://en.wikipedia.org/wiki/List_of_software_licenses , the Ms-PL, Ms-CL, Ms-LPL, and Ms-LCL are all incompatible.
I'd have to read every EULA very carefully to be sure I'm legal. See the previous entry in this blog about people not liking to read EULAs.
Add to this Microsoft's recent use of lawyers against volunteer developers ( http://haacked.com/archive/2007/06/01/did-microsoft-violate-testdriven.nets-eula-to-defend-its-own-eula.aspx ), and .NET just doesn't seem all that friendly a platform to me.
Another vote for the Castle project - not only is their code awesome, but the simplicity of their ideas seems to be contributing to some great discussions on .NET.
My two votes:
iTextSharp = Hey, I've had to go through and develop some weird things now and then -- but nothing was as scary as being told I had to develop a C# program that created/edited PDFs in the period of a few weeks. Without iTextSharp I think I would have had a nervous breakdown.
Paint.NET = It's just plain nice, works well, and saves me the money of having to buy something that is getting perpetually bloated (Paint Shop Pro) or something really expensive (PhotoShop) -- when all I ever really need is contained in this fantastically free application.
Just throwing in what we use, ranking them seems unfair:
NAnt, NUnit, log4net, CruiseControl.net, NCover.
I'm working to get a fledgling open-source .NET project, Titan, off the ground. Can I vote for myself in the "up and coming" area? :)
My nominations for established projects:
3. Castle Project (MonoRail specifically)
I also nominate Ayende for a some sort of contribution, if for nothing else the sheer volume of his work. Why is he not an MVP yet?
This is an excellent step forward. I hope Microsoft continue to respond positively.
The future is geospatial:
Like Doc Holliday said, "In Vino Veritas..."
That said, I am impressed w/ the nature of this 'open' discussion of open source, the length breadth and all occurring today. Thusly, I would advocate allocation to any worthwhile OSS blogging activity.
My only other encounter w/ OSS is CommerceStarterKit and Subsonic, and definitely my vote goes there.
Keep blogging your viewpoints I will continue to learn.
Paint.NET is a gorgeous piece of free software -- by both definitions, in that it costs $0.00 ("free as in beer") and is covered by the MIT License (presumably the X11 Licence) which the FSF considers to be GPL compatible.
It's not a dev tool in the normal sense, but it's immensely useful as a replacement for the standard Windows Paint program with pretty much all the features I can imagine needing from more expensive tools like PhotoShop. I think it deserves recognition and money.
Just thought that I would comment - advertising for the Axosoft product was actually reasonably good placement... specially as I am looking at Mercury 'Quality' Center crash for the 2nd time at 7:54am. Grrr...
I nominate Paint.NET. Great UI and great potential. Maybe enough momentum behind this can set it on the path towards replacing GIMP as the FOSS Photoshop contender (assuming, of course, it runs on Mono and assuming the eventual acceptance of Mono).
"Many highly popular open source projects have contributed so much to the .NET community, and they've gotten virtually no support at all from Microsoft in return. I'd like to see that change. In fact, I'll go even further-- I think it must change if Microsoft wants to survive as a vendor of development tools."
I agree; but I think someone should explain to them that suing MVPs isn't a good start to "giving back" to developers. *Referencing the Visual Studio Express fiasco over plugins, for the people out there who missed it* Just my $0.02.
That being said, I bought a student copy of Expression Studio last week. The VS team creates great tools, (I suspect they're all geeks, VS has a very geeky underpinning with a lot of polish on top) but with Management suing developers (MVPs nonetheless)... well, there's a reason I also bought a copy of Flex Builder 2 at the same time. Eclipse is great, but Macromedia/Adobe are just as bad as Microsoft.
What about sponsoring a competion? Like the XPrize, but you can
call it the NPrize.
That is a brilliant suggestion (in fact, it was one of the ideas I had ;)
I nominate http://www.umbraco.org/
Why? Because it's not only a .NET 2.0 based open source CMS that runs on MSSQL. It's truly the best sweet-spot CMS out there that I've seen during my 8 years in the CMS industry. It even won two prices for the best supporting and active community and for it's excellent integration capabilities at BNP 2006 (http://www.bnp.dk/227.0.html).
There's always lolcode.net.
I kid. And I wrote most of it. ;)
Maybe, instead, you'ld be better off funding a programme to educate developers in how open source will destroy microsoft, .net, the free world, and their hope of having a career. And make sure you stay away from the evil horrors of the GPL which is the ultimate enemy of all software development - according to the guy in charge of the company that created .NET in the first place. ;)
I have not read all the replies, but I believe that when you "open source" code, you do it for one of two reasons. Either its your pet project and you want to share it with the world, or the project has become so big you need other developers to help expand and maintain the code, BUT you still make money from installing, customizing and supporting the product. (Sun OpenOffice)
I firmly believe the problem lies in .Net as a platform. As a Delphi programmer with the option do .Net or Not, I have again and again decided to stay with Win32 and not .NET. Why? Faster and Smaller Code. I still have to see one reason to change to .Net .Net is bloted, as is all MS products. And as I see it, MS wants to control everything they touch and eventually makes money from it. Maybe a good business policy, but why must I use code from company that may start charging for .Net, etc, while there are faster alternatives availeble?
NDoc 2.0 to rise from the ashes but I think this is too little too late.
Wonderful idea! Finally someone is finally putting some money where his/her mouth is! Way to go!
@Raving Free Software Lunatic : Mono is very well funded and taken care of by Novell. Trust me (I used to work for them until about 3 days back) on this one, what they really need is some hands at writing code (good code ie)
I would love to nominate PAINT.NET, but I guess it is quite well supported already. It is by far the most useful app I have used.
I would really suggest that to sponsor more upcoming projects than the ones that are already well established, since they usually have some corporate backing if they are working with .NET
How about creating a list of ideas that you want implemented and they putting a price (prize ;) ;)) tag on it!
I presume this is money to make the project better, right? Not a compensation or reward. If so, yes, Castle Project would definitely benefit from it.
I nominate Cuyahoga. It's a brilliantly simple CMS for .NET 2.0, with module and skin development made quite easy. I think they could use some more support.
Its new and is well on its way to competing with WordPress.
"When has MS "thrown money" at open source? I've cited multiple blog posts above from people who ask for exactly that, so educate us, Frans. I realize that money is not the answer to all problems, but it's a great starting point for a larger conversation."
Well, gotdotnet, codeplex, these sites have teams behind them, custom made software was made for these sites, 3rd party maintenance teams are maintaining the hardware etc., that's costing money. Left alone the community efforts all over the place to support more community participation by developers out there, which leads to more free open tools.
I've written a lot of open source code (for example last year I released a big forum/customer support system for ASP.NET under the GPL, complete with UBB LR(n) parser system etc.) and am roaming in OSS groups for years. The main question I have when I see your post is: how will giving money to a random set of projects suddenly make people more aware that one can contribute and use open source code? I see absolutely no reason why giving away money would have that effect at all. I appreciate your effort and hats off for that, but I don't see how it can be effective.
In fact, the whole MS platform eco system isn't suitable for open source tools to become very effective. As soon as they do, MS will come with an equivalent, and what's worse: large droves of developers don't even know how to spell open source, left alone that they're even looking for open source projects, they simply look at Redmond and wait till MS comes with something.
In the Java community, things are completely the opposite. The whole eco-system around Java is simply build on top of the open source model: libraries and tools are very often free and open source. The business model of java oriented companies is build around providing services, not by selling licenses. On the MS platform this is the opposite.
Promoting open source is therefore an uphill battle, if not an impossible battle. Uphill, because the mentallity of the average mort is totally not focussed on open source in any shape or form, and impossible because MS has such a strong focus on controlling the market ontop of its own platform, they're totally not interested in changing the mentallity of mort at all. There are numerous examples out there, nunit and ndoc being two of the most well known. Instead of supporting nunit and mbunit, MS rolls their own unittest runner, incompatible with the open source ones, and hires the mbunit main developer. NDoc dies because the main developer has no time anymore. Instead of working WITH that code, MS releases a half-baked beta of a never-going-to-be-released toolkit called Sandcastle.
Two examples where Microsoft could have supported a beginning eco-system of open source toolkits. Instead, they effectively killed them off. Sure, both are still used, but not as wide-spread as MS' offerings. And _THAT_ is precisely the point.
So again, hats off for your initiative and motivation, but I have little hope (none actually) that this will help at all, simply because it won't solve the core problem why there's no healthy eco system for OSS / free toolkits on .NET like there is on Java.
No nominations here, but...
What about codeplex? I would consider setting up an exclusively .net sourceforge knockoff pretty supportive. And I say knockoff loveingly, I think it's a great service with tons of extremely supportive features.
With regards to adds...what happened to the time delay? And your "don't make them click" full RSS philosophy counts for nothing when you pushing ads at us over RSS.
Ok, maybe one nomination, how about WorldWind?
This has been great just to manifest some OSS projects I wasn't aware of, but definately want to check out. Thanks for just that!
The whole Castle project. Castle Windsor and MonoRail are the best!
I'd vote for SubSonic also.
I'm not sure if Rob would take the money personally (although he deserves it) but I think some of his team deserve some recompense for their hard work and effort.
I think I heard one member has been passing up paid work to allow more time to work on the project and help the community.
Won't Mono fundamentally be killed by Silverlight and Subsonic by Linq.
To me, there will always be a need for SubSonic, Mono, Paint.Net, etc. OSS software is very good at finding holes introduced in every MS release and filling those holes.
So that is my 2 cents. :-)
I think Watin and Watin Test Recorder do an amazing job for asp.net integration testing! Those projects earn my vote.
NUnit, NAnt, NDoc (please come back), ahnksvn, Castle. I don't care for blog engines b/c they are not .Net developer tools per se.
I second Watin! I've shown it to our testers and actually got them interested in automation.
@Frans - I think this is another area where you and I will disagree. Open Source projects need financial support if they ever hope to grow past a certain point. Most projects can limp by for a long time on sheer volunteer effort, but at some point in their evolution they reach a size that just cannot be managed on a purely volunteer basis. They require some sort of financial support to be able to pay for the services they need to keep running. That may mean increased bandwidth or increased server capacity, even monetary support to pay for legal fees, or maybe it is just a few extra bucks for the developers to be able to reward their wives for putting up with all the crazy hours that they do.
Having worked for several years in the Java world I am very familiar with the OS model there. Even in the Java camp, the most successful projects recieve some sort of support. Sure NHibernate may only have one full time staff member, but I would be willing to bet that if they needed another server tomorrow to host their website, they probably wouldn't have a problem getting it. If they wanted to get trademark protection for their brand, the funds would be available for the legal fees.
Java did not spring from the ground with a full Open Source community ready to write code. It evolved because of some early projects which became successful and paved the way for other projects. You had people like Marc Fluery who did a ton to promote Java Open Source and fought tooth and nail with Sun in order to get Sun to certify the JBOSS Application Server. IBM spent hundreds of thousands if not millions building and promoting Eclipse, even while fighting Sun over the SWT. The Open Source community did not thrive on Java because of Sun but in spite of Sun. It even took a long time for Sun to open up to the Java Community Process.
Given the history of Open Source in the Java world, why would we think Open Source on the Microsoft world would be any easier, or would not require financial support, when clearly it required tremendous financial support in the Java world.
$2500 is probably not going to make a tremendous difference today. But it might be just enough to keep the lights on for a project a couple more months. It might be enough to give the project a little more breathing room until they can finalize a proposal to land a services contract. It might mean that a developer can afford to incentivize a tech-writer to create some good documentation. When you are on an open source project, every little bit helps. Even for a project the size of DotNetNuke.
+1 to Castle and nHibernate
Another vote for the Mono Project to support their development of porting Silverlight to Linux :)
Some very interesting open source projects out there. Thanks for a list. A few I had not heard of yet!
Projects I use...
+1 iBatis.net (More people need to check this out... It ROCKS!)
SubSonic. Without a doubt.
It's given me a whole new outlook on ASP.NET development.
+1 for Umbraco - www.umbraco.org
What an small slice for FileHelpers:
We help a lot of developers and companies to avoid the pain of flat file handling, we want to create a full open source solution to exchange data in flat file format between applications, and some motivation is really needed.
A description from the site:
"You can strong type your flat file (fixed or delimited) simply describing a class that maps to each record and later read/write your file as an strong typed .NET array"
Thanks a lot to you and MS for this change
Open Source Developer
MbUnit and Rhino.Mocks
No doubt the two most important open source tools I use every day.
"In fact, I'll go even further-- I think it must change if Microsoft wants to survive as a vendor of development tools."
Do we really want it to survive? We should be putting our money behind open-source projects that support open-source projects, not Microsoft. What the open-source community should really be supporting isn't some framework that only Windows users can use, but PORTABLE projects across several operating systems, including Linux, Windows, MorphOS and Amiga. So, if your going to throw your money at a group for a particular programming language make it REBOL. Make it Perl. Make it Scheme. Make it any portable programming language. Not .Net. Not C#. Not Visual Basic. Not Visual C++.
Let me disagree with u a bit.
The money is very important for a lot of developers, if some open source developer get a donation sure it will work hard to release versions oftem or to support user faster.
Is very frustrating give suport for free and dont get a thank u after solve the other problems (check some cases here http://www.filehelpers.com/forums )
Anyway I love what I do, but I do some freelance work apart of my daily job, so if I get a donation I can invest some more time with my project. At the end, is all about money :P and M$ know it.
Another vote for SubSonic. I work with a small crew with a lot of demand and this project has made our work life a WHOLE lot easier.
The team is great and very responsive to issues and questions. I couldn't think of a better project to nominate for this.
SubSonic, SharpDevelop, NAnt, MbUnit
But above all, +several thousand for the Mono project, for making .NET live up to its potential.
My vote is for...
SubSonic (and/or the Commerce Starter Kit)
BlogEngine.Net (this counts as the "up and coming" project right?)
Some people say blogs shouldn't count (only development tools should) but I disagree. I'd like to see the non-.Net people benefit from some of this. I want to see a Java developer running a .Net blog, for instance.
I would also like to anti-vote for iTextSharp. It's more of a port from iText than a C# equivalent. I mean it doesn't even follow naming conventions. It's also a pain in the ass with which to work. Boo to iTextSharp.
Microsoft money going to the Mono project would be very interesting.
side note - I'd suggest using wufoo.com to gather the results. maybe for the final round after you break down the most popular projects?
They offer an easy and free form tool for stuff just like this.
It would help you from wading through the comments to tally the votes, but then again comments are good for a discussion...so yea.
My votes are:
+ Castle project
Projects I'd happily see get a donation:
How about if some money goes towards training for .NET Programmers who have shown up on WorseThanFailure?
SubSonic. We really need to shut those Ruby on Rails guys up :)
I recently needed a graphing library for an open source .net project I was working on and ZedGraph came through with honors ;)
My vote goes to NLog and NUnit. SharpZipLib is cool, too, not sure if it counts as a separate project or if it's a part of SharpDevelop.
IronPython and F# are great, too, but is MS already sponsoring these.
BTW: most votes (like mine) seem to go to "established" projects - I'd love to read more about "up, new and coming" projects!
+1 for Castle and Rhino Mocks. Couldn't live without them!
SubSonic. easily the most time-saving tool out there.
and +1 for all the usual suspects like NUnit/MBUnit, Rhino Mocks, etc..
I have an up-and-coming open source project:
It's coming along pretty well, almost ready for v2 release and I have lots of plans for the next release too.
Two of my favorite, more well established open source .net applications have to be NUnit and TestDriven.NET. You might also consider Paint.NET, it's not a developer library but it is an excellent .net open source application that I use almost every day!
I second NDoc. SubSonic is great too!
Money is always nice, but I personally find the biggest obstacle to contributing to projects is getting up to speed quickly with individual projects. Good documentation helps and screencasts with downloadable sample starter projects work the best. Some great samples are on the ASP.NET videos.
Another example that does a great job is dnrTV.com. I think the biggest impact would be more screencasts but they need to be done well. Perhaps we could assemble a set of guidelines for what would help in producing a screencast for an OSS project.
I have used Wink, which is a free OSS project as well but the editor could use a bit more work. I am not sure if it is a .NET project at all, but if it was updated to use WPF it could fill a dual purpose. Otherwise the makers of Camtasia and BB Flash could donate licenses to OSS projects or MS could cover the cost of the licenses. And if we could identify someone who does a great job of producing videos for multiple projects they could use the funds to assemble the hardware they need to produce quality videos as well as hosting the videos.
I would like to nominate
- The Commerce Starter Kit (CSK)
both of them are makink my life a lot easier :-)
I second all Lutz Roeder tools
I've got three, I know I saw votes for two of them already:
I'll put as many votes in for SharpDevelop as I can!
And, on second thougts, the screwturn wiki engine (http://www.screwturn.eu) because it's the first Wiki made with .Net I'm happy to use.
Any of Roy Osheroves Regex library which has gone OSS recently. Regulazy and The Regulator
Definately Paint.NET and BlogEngine.NET