Does it make sense to write core/critical projects in .NET
.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 op开发者_如何学运维inion 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.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).
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.
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.
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.
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.
.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.
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.
Stackoverflow.com is built on .NET, MSSQL and IIS. I'd say its pretty good :)
精彩评论