I am a programmer who made C ++, Java and is now developing C #.
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, it just starts in .net environment. Not sure about this, although still learning. JVM vs CLR: CLR can do everything the JVM can, but CLR can also: run unmanaged code, split one process into several logical ones (AppDomains). It has very good C ++ integration compared to java, the CLR is simply better. C # is also better than java (Lambda's, delegetes, expression trees, links, structures, extension methods, partial classes, common without boxing. They worked very well here!), But they only work in windows.
Wf = don't know if it possibly exists
Linq = It is currently not possible to implement in Java because you need: Lambda, expression trees, and extension methods
ADO.net dataservices: I don't know anything like this in java, but it can be easily implemented. Probably exists in some kind of discovery project.
Having done both, this is my conclusion on how they relate:
.net is easier to learn, all the more, but no less powerful. The reason for this is that the assignment of methods in the api is more consistent, the decisions are better targeted, and some api are designed much better (WPF is an example of this, I can not say this for other api, still studying). Because of this, .net programmers will cost less.
Application development in C # will be 1.5-2 times faster than in Java. There the IDE (visual studio) feels better. You can extend it after 20 minutes, no crap! Trying to understand eclypse extension mechanisms is no easy task! The Eclipse code refactoring function wins one leg. Visual Studio outperforms many others. (Commercial plugins available?)
When using .Net, you may have to pay licenses for the operating system and for IIS. For the database, you can leave with MySQL.
For java you do not have to pay a license. However, in reality you still have to. Serious applications run Redhad or some other free OS. The web server can be completely free. Also, these systems are more difficult to manage, so your administrator will probably be more expensive.
I am a certified Java developer (92%), as well as a certified web service (JSP, servlets, 87%) and a certified web component developer (EJB, 82%). I am also a Microsoft Certified Developer (90%) and a WPF Certified Developer (90%). Java exams are harder than Microsoft exams. This is because java exams ask a lot of unresolved questions. Like what is the correct method name for saving the object: SaveChanges (), PersistChanges (), EmitChanges (), or SendChangesToDatabase (). Does anyone know that knowing the name of a method is not useful. You IDE will provide you with the correct name. And if you really had method names so similar to each other that you have a very bad and confusing api! The important thing is that you know why you call it! Microsoft exams focus more on why this is so. In my opinion, Microsoft exams really help you become a better programmer. Java exams are also useful, but more like learning a phone book; it is very difficult, but useless.
In general, I believe that C # is technically super-eric (it 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 for licenses, but probably less for people.
Late, I'm tired and don't want to re-read. I have to, I know. But it will not. I don’t have a spelling check, so there can be many typos. My first language is Dutch, my second is French and my third is English (I live in Belgium, we are difficult), so I think that I was allowed incorrectly? :)
Hope this gives you some clarity.