I'm a programmer who's worked almost exclusively with microsoft development platforms (Visual Studio 6, ASP 2.0, ASP3.0, ASP.NET), though i've done a bit of java work for my computer science classes. My limited experience with java and with speaking with java programmers are that it's sort of like the linux vs windows debate, except with developet platforms. Some people swear on java, others swear on .NET. Personally, i still prefer .net, though that's probably because i've worked with it a LOT longer.
I've seen some corporate in-house programming shops use .net, and some use java. Though i'll admit that i've seen waaay more usage of .net or classic ASP. I'm sure that's partly due to the HUGE development community and microsoft's backing. For example, i've been to probably three or four free MSDN conferences/training seminars. Microsoft usually hosts one in my area at least once a year, and covers coding techniques, security implementation, and other important topics. They usually provide lunch or refreshments, a "goodie bag" and MSDN tshirt, and give away lots of free stuff. At the last one i went to in San Marcos, CA, they gave away SQL Server, a bunch of microsoft books, and even a PDA. They probably give away a few thousand dollars of gear at every event. By contrast, ive never even HEARD of Sun doing this with java. Granted that doesnt make java a better language, but it sure affects who uses the language. I have colleagues who can practically code entire apps with .NET and ASP using the MOUSE-- it's all copy and paste because there's such a huge development community and array of code samples out there.
Java and C# syntax are VERY similiar, so that's not really an issue. However, implementation seems a lot easier with C#/ASP.NET. Of course, we paid thousands of dollars for the IDE, so it had damn well better be easier. JBuilder 9 personal is a free download.
Java has the advantage of being platform-independent, but in a closed-environment like most corporations, that doesn't make a whole lot of difference. I like .NET/C# because i can code web apps without having to deal with java runtimes, applets, and all that other junk. As long as the server is properly configured, my clients dont know the difference. And i can use any .NET language i want and let the CLR (common language runtime) sort it all out. If someone codes an app with VB.NET, i can throw my C# code right in and not have to worry about converting things over. Try mixing VB and java together and see what happens.
Oh and swing is a POS.