Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

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.

share|improve this question

marked as duplicate by gnat, Kilian Foth, Jalayn, Yusubov, Martijn Pieters May 29 '13 at 22:38

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

9  
Avoid Putting Capitals Everywhere. Too many consecutive ????? is not cool neither. –  MainMa Aug 27 '11 at 8:19
add comment

6 Answers

up vote 46 down vote accepted

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.

share|improve this answer
2  
+1 For the best, most concise answer to any question I've read in a long while. –  Patrick Hughes Oct 5 '11 at 0:53
7  
+1 for avoiding Microsoft-bashing and sticking to the principal reasons to keep Java. –  JasonFruit Oct 5 '11 at 4:54
2  
Nitpick about costs. The biggest single cost of these kind of implementations is manpower. Licensing costs for VS even if you are forking out for MSDN universal will be a small fraction of the overall cost, and while it is a consideration its not a major cost driver. The place where licensing is a big driver is enterprise services whether database or ESB. Here .Net is in pretty much the same position as Java. –  CdMnky Oct 5 '11 at 8:39
add comment

In my Opinion .NET Platform is the best one because by using Java Platform it will take more time to learn and code the program

Example

Java Platform is treated as a"Sea" while the .NET Platform is treated as a "River".

share|improve this answer
2  
Could you please provide references showing that .NET is easier to learn? –  Martijn Pieters Nov 3 '12 at 14:15
add comment

First you need to convince yourself in support of .NET. If you need samples, you wont find .NET surpassing the Java in this department. Most of the Core Banking Solutions are developed in Java

You might find .Net vs. Java: Five Factors to Consider helpful

share|improve this answer
add comment

I'll refer you to What are the factors that have made Java a success as a programming language in enterprise computing? and What would you choose for your project between .NET and Java at this point in time?

But in short, you don't find many financial institutions going with .NET for the core platform after its well publicised failure at the London Stock Exchange. Java and *nix (despite some of their drawbacks) are a proven backbone.

.NET for front end layers? Or some business apps that run on top of the core? Sure thing! Lots of successful business cases of that at financials.

share|improve this answer
    
Perhaps you would edit in a link to said failure at LSE? –  user1249 Oct 4 '11 at 17:10
    
Done (picked one at random) –  Martijn Verburg Oct 4 '11 at 23:32
add comment

For a bank of your size, I am surprised you are thinking of building software like this from scratch - I would suggest that you buy a proven solution and there are several ones for banks.

share|improve this answer
add comment

Your attachment to .Net is scary for someone responsibe for architecture, perhaps you are best surrendering to a lead programming role. Given that a lot of the code base is already in Java, there will be years of business logic, refinements and bug fixes, the appetite to 'rewrite' from scratch is very dangerous.

share|improve this answer
1  
+1 for warning about getting "attached" to languages - business decision should be made on business value, not personal preferences..... –  mikera Jan 9 '12 at 22:30
1  
What's scary is when someone isn't aware of their attachments. At least the author is aware of it and can at least try to account for it. After all we are not robots and we all have attachments whether we like it or not. –  JustBob Dec 28 '12 at 15:26
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.