I am a programmer who has done C++, Java and now C# development.
Here is my answer to the initial question:
WCF = EJBS/J2EE server (e.g. JBoss)
WPF = Swing (JavaFX)
JBoss = I don't think WCF needs a server, just runs in the .net runtime. Not sure about this though, still learning. JVM vs CLR: CLR can do everything JVM can, but CLR can also: run unmanaged code, separate one process into multiple logical ones (AppDomains). Has very good C++ intergration compared to java, CLR is just better. Language c# is also better than java (Lambda's, delegetes, Expression trees, references, structs, extension methods, partial classes, generic without boxing. They did a very good job here!) but only runs on windows.
WF=don't know if it exist, might
Linq = Currently cannot be implemented in Java because you need: Lambda's, Expression trees and extension methods
ADO.net dataservices: I don't know of something simular in java but this could be easily implemented. Probably exists in some opensourse project.
Having done both this is my conclusion about how they relate:
.net is easier to learn, very much so, yet equally powerful. The reason for this is because there naming of methods in api's is more consistent, there solutions are better integerated and some api's are designed much better (WPF is an example of this, can't say this for other api's, still learning). Because of this .net programmers will cost less.
Developing an app in c# will be 1.5 to 2 times faster than in Java.
There IDE (visual studio) feels better. You can extend it in 20 minutes, no shit!
Trying to understand the eclypse extension mechanisms is not an easy task! Eclipse code refactoring functionality win's one leg. Visual studio win's on many others. (Commercial plugins may be available?)
When using .Net you may have to pay licences, for the operating system, and for IIS.
For the database you could get away with MySQL.
For java you will not have to pay licences. However in reality you mays still have to.
Serious applications run an Redhad or some other none free OS. The web server may be completely free. Also these systems are harder to manage, so your administrator will probably cost more.
I am a java certified developer (92%), also webservices certified (JSP, servlets, 87%) and web component developer certified (EJB's, 82%). I am also a microsoft certified developer (90%) and a certified WPF developer (90%). Java exams are harder than microsoft exams.
This is because java exams ask many childish irrelevant question's. Like what is the correct method name to persist an object: SaveChanges(), PersistChanges(), EmitChanges() or SendChangesToDatabase().
Anybody knows that knowing the method name is not usefull. You IDE will provide you with the correct name. And if you truly had methodnames so simular to each other, than you have a very bad and confusing api! What matters is that you know why you call it! Microsoft exams focus more on the why that the how. In my opinion microsoft exams really help you to be a better programmer. Java exams are also usefull, but more like studying a phone book; it's very hard but useless.
In summary I believe C# is technicaly superieur (would be logical since they learned a lot from java and bought the smartest people in the world to write it). You will pay more on licenses but probably less on people.
It's late, i'm tired and don't feel like rereading. I should, I know. But won't. I don't have a spellchecker here so there may be many typo's. My first is language is Dutch, my second French and my third is English (I live in Belgium, we are complicated), so I guess I'm allowed some typo's right? :)
Hope this provides some clarity for you.