Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My only concern about working with .NET has nothing to do with the language or the underlying tech. They're both fine. The problem is that the open source community on .NET (both C#, ASP.NET, & VB.NET) is anemic compared to virtually every other language, and I'd rather not reinvent wheels whenever possible.

I know one way around this is use java open source, by either a source or bytecode translator from Java to C#. Is there anything good to know in terms of limitations of this approach? Are there alternatives?

There's also the problem of using stuff that's targeted primarily for Mono, instead of .NET proper, and vice versa.

That being said a good carpenter can still crank out a nice table with a rock and some wood, but the question is should he?



I've found that when it doesn't make sense to keep everything in .Net, it's great to break things out into independent services. If there's something awesome you want to use in Java, like Lucene, expose it as a service and consume it from .Net.

In fact, if you do this right, you end up with a bunch of clearly separated re-usable services like in AWS. It also helps prevent the "giant ball of spaghetti" architecture by making it impossible.


I know it was just a "for instance" but there is a .NET implementation of Lucene, open source and everything. http://incubator.apache.org/lucene.net/

The point being, "no open source community", "license costs" (see bizspark), the "MS is a desktop stack" are all popular myths that haven't been relevant for years.

But your point of well defined, independent services is spot on.


I didn't say "no open source community"; I said super small open source community compared to almost every major alternative. That isn't a myth. It's reality. Moreover Java has a lot more big projects that .NET just doesn't cover. Not to mention we're ignoring the tons of stuff you can find in Ruby, Python, and even PHP.


What if the stuff you want is too small to break out into separate service? e.g. some little util library or even a something like a driver

Also if you use a lot of libraries / apps from a specific language, doesn't it make more sense just to transition to that language instead, or does what .NET buy your team worth it to stay?


If you find yourself using primarily Java (nothing wrong with that, really), then just go all the way. I think the same is true for most any language. It's also valid to start doing everything new in a new language and gradually migrate away from where you started.


On the other hand, the .NET Framework is vast and offers a well-implemented, well-documented and supported set of features that in other platforms required open source projects. Even so, there are established and active projects such as Castle, Mass Transit and NHibernate.


I always thought NHibernate as well as NUnit were victims of MS's past anti-open source stance. I didn't even think anyone still used NHibernate once LINQ came out.


The OS community is doing pretty nicely now we have Nuget


Having something like gem and maven is certainly nice, but I think my point stands. Compared to almost every other language, the .NET open source ecosystem just pales in comparison. It's definitely improved after the MS debacles in the past, but only time will tell whether it ever becomes a 1st class citizen in the .NET world.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: