views:

181

answers:

8

.NET become to be more and more popular, lot of new systems are build base on it. People (including me) love .NET for many things.

When I started my C# adventure the fact supporting this choice was London stock exchange have chosen .NET/ MS SQL Server for they transactional systems.
Now I heard they withdraw from that (confirming opinion of many friends of mine that .NET & MSSQL are simply incapable of performing this kind of work)

I'm wonder your opinion if it make sense to build professional/core systems base on .NET? I'm thinking mainly about performance, scalability, reliability etc...

Maybe High level languages are not good choice for that and we should stay with C++ languages family?

EDIT:
I'm considering rather big application (let's say enterprise -level) with high, time critical transactions.
Data size amount cannot be obviously compared to LSE, but as it is intented to be core system, the data size cannot be passed over. Multithreeding with sophisticated UI.

A: 

.net would be a good choice for real time system but I think java is pretty much the same.

Real time system are kind of different animals from normal software, they are often based on some messaging system and use only memory storage, so they are better handled by low level languages like C++/C.

For normal software development (Winform/Web) .NET is well suited for professional applications.

So the basic answer, if you are doing messaging application avoid high level languages in other case .NET/Java/PHP/RAIL is fine.

RageZ
Do you mean .NET would *not* be a good choice for real time systems?
Jon Skeet
.NET is OK for soft realtime if you keep your GC under control. For hard realtime it no-go since Windows is not a real time system.
Michal Sznajder
My feeling is I can control .NET much more less than eg C++SO if I need care more about controlling it what is the reason stay with it? Isn't better switch back to C++ ?
Maciej
most of banking stuff are C++ because it's realtime, I think if it was that easy to move to .NET, it would be already done, .NET really helps to debug and can avoid lot of errors ...
RageZ
@Rage: actually, my impression is that most of banking stuff is Java, the new COBOL. They might have small parts written in languages like C++ though.
Sorin Comanescu
A: 

No I am not agree with you. .NET can have better performance if you use it is in wisely manner. It depends on the how you design and code your system. We are having enterprise level project which are having so many functionalities and its working fine without no performance problem and its a real time application.

jalpesh
Im sorry but i have to object, anything in written .NET requires lots of memory. For real time applications in .NET, I lack words for it.
Cem Kalyoncu
@Cem very true - but perhaps unmanaged code might solve these problems?
JL
There are some memory consumptionb but against it there will lots of advantages like you can perform complex task with lesser code.
jalpesh
For modern hardware it works well on all the plateforms. We are having windows server 2008 and .net framework sp1 and our applicaiton works very well with lots of users.
jalpesh
A: 

First of all, it depends on project. A small application that is not time critical, or high transaction, any language that minimizes programming time and problems is fine. However, if it comes to large amounts of data, things are different, you will have to choose a system that is capable of working under heavy load. Also consider scaling. Some system scale better than others.

Cem Kalyoncu
+3  A: 

A lot of complex systems these days are composed from parts written in different languages. Without knowing the details of the London Stock Exchange case I would guess that they could probably write the bulk of the application in any .NET language and if needed they could implement specific parts in e.g. C++.

There's really no one size fits all when it comes to languages/development tools. Some languages/tools will be much better suited for specific tasks than others. Thus for large systems it is rare to have only one language/set of tools in my experience.

The company I work for have components written in several different languages and they are all part of the same application.

Brian Rasmussen
+1  A: 

The short answer:

the .net platform can be used for transactional systems, but the question is really is the platform scalable enough and can it perform well enough under extremely high volumes?

.Net like every other high level language has a place in this world, and I personally would not use .net managed code for core transactional systems. In the same way I simply would not use .net for writing mission critical device drivers.

If you have a choice go for c++ for mission critical stuff. Don't throw .net out of the solution entirely, recognize it has its strengths, and use it accordingly.

.net is very good for rapid, reusable development, I would even say if you use it correctly (perhaps even go unmanaged) and test / retest your apps, you'll get away with a lot more than you think.

JL
A: 

I don't know the specific details about the London stock exchange, but chances are that whatever you are thinking about writing isn't nearly on that scale.

I'm sure you will be able to find examples of "professional projects" that were successful as well as ones that weren't. I wouldn't worry too much about it. I do most of my development in Java, but I've heard same sort of objections about that and don't take it too seriously. If it works for me, I'm not going to stop using it because not everyone could make it work.

Mattias Nilsson
+4  A: 

Well, London stock exchange is probably a completely different animal than most other business systems. They have lots of transactions that are time critical. In my opinion it would make good sense to write normal business applications in .Net. The performance is not as good as native c++ programs, but with modern hardware the performance is good enough. The shear size of the .Net framework and it's ability to achive complicated tasks with few lines of code wastly outnumbers the drawbacks. In my humble opinion there's no other framework that's better suited for business applications as long as it targets only the Windows environment. If multiplatform is desirable I would have a good long look at QT, developed by the Norwegian company Trolltech (altough Nokia bought it a few years ago).

sindre j
A: 

Stackoverflow.com is built on .NET, MSSQL and IIS. I'd say its pretty good :)

RichAmberale
A'm not talking about Web app - rich Windows client rather
Maciej
Is stackoverflow a critical project?
jpartogi