I am working in a private bank, a leading mid size bank in local market. We are going to create our core banking solution. Existing solution has been developed on Java using IBM Visual Age 4.0.

It is very important to discuss architecture first, we have currently more than 350 branches working in standalone mode, and it means they are working in self contained environment. They have their own database server (IBM DB2 9.7) and they are communicating with other branches via sockets to send and receive data.

Having experience of .NET for more than 5 years I am trying to convince my superiors to choose .NET platform, but they are reluctant and unwilling. It is my job to encourage them for choosing best available platform to create large scale enterprise application.

In simple word, we are going to create a very large scale enterprise financial application, a centralize and integrated which connects all branch networks plus having scalable, solid architecture that easily evolve over time.

I want professional people to comment on above scenarios. Which platform to choose .NET or Java? Our all resource is currently working in Java, we have homogeneous environment (no Linux, no Mac and no UNIX).

Any idea, any thoughts, any points technical or non-technical i.e. administrative or management point of view will be really appreciated.

Let's talk about costs:

You state that everything has been done in Java so far? Why change then? You might use parts of the old system or create a reusable domain model. Integration will be easier. The developers are probably used to Java, so why would you spend money to train them on .NET? There's no reason for this, as .NET has no outstanding advantage over Java in your scenario. Development costs are most likely the biggest lot, followed by maintenance costs. Why would you want to increase these for a personal preference and little to no infrastructural/architectural gain?

So if I was your boss, you'd better prove that in the long run it's cheaper (while maintaining quality) to migrate to .NET. But I doubt you can prove that.

Let's talk about the strategic decisions:

So I have a java environment, I don't have to pay huge license fees. Most of the software I use is open source and Java's portability is great. Why should I lock myself into sort of an unportable one vendor system? There'd better be a reason for this! Better support for the systems? Better scalability and distribution? Not really.

Please take my advice: 

In your situtation I wouldn't dare switching from Java to .NET. There'e no obvious reasons to do it. The primary strength of .NET is still rich GUIs, quite in contrast to Java. Maybe frontend/client software can be written in .NET, but for your backend, I'd stick with Java and I wouldn't try to start the grand rewrite in .NET.

Please note that as a developer, I, too, prefer .NET to Java. But as always such decisions depend on various other factors. From a manager's perpective, I can see no reason to change to platforms. Quite the contrary.
