I hope you mean "doing very well" as in "selling a lot of copies". See under my post on the board yesterday about a complete backdoor in their color management module...
I'll reply here to prevent derailing another thread.
Microsoft is doing quite well for the field I am looking at, which is as stated before, eBusiness. I refer that more towards performance/costs rather then sales.
Ultimately in the current business environment, it is down to 3 choices for your needs: Microsoft .NET, J2EE or a customized solution, probably based on CORBA.
Between the 3, doing a customized solution is the least efficient due to the amount of time required in terms of both developing the application as well as maintenance. Not to mention is will end up being more expensive.
Most existing business already has a comprehensive suite of software already existing in their business infrastructure, aka. your legacy systems and no matter what, companies will often want to keep them, instead of migrating to a totally new set of system.
J2EE has several connectors already written to integrate with these legacy systems and Microsoft’s Biztalk has several adaptors written for these legacy systems as well.
The main differences between these two implementations are that J2EE converts data from legacy systems to Java data types whereas Biztalk converts it to XML. Both have their pro and cons but its not applicable to this context.
Performance wise, if the application is heavy on transaction volume, Microsoft solutions are usually faster and in some cases cheaper due to faster execution time as there isn't an extra layer of abstraction in the form of JVM. Also, in my personal opinion, Microsoft has a better and more efficient set of connectors in place to interact with legacy systems.
On the flip side though, Microsoft solutions are slower then those based on J2EE when it comes to applications that are heavily database centric, which are your typical eCommence sites. This is especially true for applications developed on DBMS which has native-API or native-protocol JDBC drivers. Microsoft is still pretty much focusing on optimizing performance based their own MS SQL server, which as most of you know, sucks.
Security wise, I’ll say nearly all the security flaws discovered over the last two years, on Microsoft system, doesn’t really impact the general security of the entire business.
Typically, you have an application server, web server, DBMS and legacy systems, forming the backbone for information. Properly configured etc, you won’t be opening any files or scripts that can comprise security on another of these systems. The systems that are vulnerable are usually your end users and unless the administrators are lazy, security breaches should rarely escalate pass the compromised system. But this is not an excuse for Microsoft having numerous breaches, typically they exist due to relatively sloppy coding.