views:

265

answers:

6

Hi,

I often read and feel that .NET Framework has much less libraries to use in project than available in Java world.

Even if some ports exists, a lot of them are not at the full speed/active. One example is Apache NFOP. It has not been updated for a while. Another is NHibernate - it is very active but does miss a lot of features that Hibernate has for quite some time.

Additionally there are a log of small things missing in .NET.

So my questions would be:

  1. what are the libraries that are available in Java world but not in .NET?
  2. what are the libraries that you are personally missing in the .NET comparing to Java?

DOWNVOTING: I don't really understand the reasons for downvoting as I am not starting any C# vs Java debates or anything. I just want to know thing missing in .NET so that I could possibly implement them in a new OSS project. Downvoting makes me think that those people either don't care or just don't want to be constructive. And it makes me think I should not ask it.
Please, when downvoting - provide at least a reason so we are all a bit more constructive/professional.

+1  A: 

One of Java's major libraries is the Spring Framework, and while this has been ported to .NET, it is quite an outdated version (3.0 RC for Java vs. 1.3 for .NET).

Kaleb Brasee
+2  A: 

Here are a few that I miss:

I usually just pull Java libraries in via IKVM where possible.

Luke Quinane
+1  A: 

One of the things I didn't like when I used .NET was the lack of a Jakarta style library system for the group. I"m not sure if it's a cultural thing (.NET developers not embracing open-source as much) or if it's just the lack of demand.

Shaun F
Jakarta seems to be set of open-source projects maintained and bundled together. So you are talking about lack of bundled open source solution for .NET?
Dmytrii Nagirniak
+1  A: 

Or perhaps you can stop coding java with c# syntax and libaries?

Gregory
Who's coding java with C# syntax? How is it related to the question? I want to tools that .NET devs often miss comparing to java.
Dmytrii Nagirniak
A: 

The answer is that there is no meaningful answer to that question. It will be different for every person that answers it. But I can tell for me:

1) NONE. You can use any library written in Java in .Net if you really need to (e.g. by using IKVM)

2) NONE.

Foxfire
As for the 1st - it is probably possible to use Java libs from .NET, but the question is what libs are not available in .NET rather than being able to use Java originals instead.
Dmytrii Nagirniak
They ARE available in .Net..Net is language independent. It doesn't matter if a library was written in C# or VB.Net or Java. They are all equal. The only likely reason why you might not want to juse a library written in Java is that these libraries usually don't follow the .Net class library style guildelines. Depending on your project this may not matter at all or it may matter a lot.
Foxfire
If you say you can use any Java code and compile it for .NET why then such projects like NHibernate, NUnit, NFop NStruts etc etc were born?Because you just cannot simply compile Java code for .NET. You can develop J# in Visual Studio but that is totally different as it is poor .NET language and really is not interchangable with a real Sun's Java.
Dmytrii Nagirniak
"Because you just cannot simply compile Java code for .NET". Sorry this is just plain wrong. And J# is dead for a long time already. Nobody is talking about that. For the reasons why these projects exist. I already explained a major one in my previous post. And of course there are more reasons. They are the same reasons for as you could ask why are there at least 20 more OO-relational mappers besides Hibernate in Java.
Foxfire
If you are saying you can use plain Java library in .NET, please mind to show me examples of that. Of course, it should be Java code called from .NET (and not from command line or similar).
Dmytrii Nagirniak
Go to http://www.ikvm.net/ then take a java library you like (e.g. Apache FOP) run ikvmc -target:library mylib.jar then you add the resulting mylib.dll to your .Net application just like you would with any other .Net library and done.
Foxfire
I haven't tried lately, but some time ago I was even able to run Eclipse (which is a VERY complex Java project including even native calls to SWT and others) on a computer that did not have ANY Java installed by using IKVM.
Foxfire
@Foxfire, ok. You proved the point that we can call Java from .NET.Not sure I really like the Java syntax in C# though. But yeah, you are right and it looks like it is possible.
Dmytrii Nagirniak
I must have missed the day when IKVM started to compile performance-tuned .NET code. But what do i know. You just said that JVM and CLR are the same thing... This has to be the worst answer i read this week.
Sergey
For 99% of all libraries that you'd ever see performance does not play a major role. And if performance is the most important overall goal then you likely wouldn't go the .Net route anyways. And I didn't say they are the same I said you can compile Java code into .Net (in fact the opposite is much harder and only works with LOTS of cutbacks).
Foxfire
+2  A: 

I miss a PDF renderer

erikkallen
What about iText for .NET or similar?
Dmytrii Nagirniak