.NET and Delphi


I hear lots of buzz around .NET. The clients say that we should migrate our software to .NET. They don't understand a thing about programming. Even though they talk about it.
Could you explain what is .NET? Is only for Internet programming? In what way Delphi works with .NET? Or should work, because I know Delphi 8 now fully supports it.
My softwares are very specific to the law area and are very simple and efective :). I don't know how .NET could benifit my softwares? In what cases should I use the .NET envoirement?
Could explain me by your examples? What projects have you made in .NET? Why did you choose that?
Does it have future?
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
The big news about .NET is that in its core, .NET works much the same as Java.

That is the programming language is not compiled strait into Machine code for a specific CPU (executable file), but rather a form of intermediate code (instructions for a vertial machine). The intermediate code is then recompiled on demand by the vertial machine as the program is run.

The teminology (choice of words for the different parts above) is somewhat different between Java and .NET (Microsoft dont use the term vertial machine) but they do much the same.

The main benifit to this design in the case of .NET is that both C#, VB .NET as well as any Delphi implementation of .NET will be compiled into almost exactly the same intermediate code. This means that the developer may choose any of these languages that he/she prefers for development but still come up with the same result.

The main benifit in the case of Java is that the java intermediate code can be run on many different platforms (Unix, Windows, Mac... ).

In theory, one would then expect Microsoft to release a "vertial machine" to enable .NET to run on Unix to make use of this benifit and sun to enable development of Java using different languages. So far, there has been little indications of this? Maybe in the future, who knows?

Microsoft instead have included the feature of WebServices into .NET. This feature is what most people are actually talking about (not to mention Microsoft adverts...) when they say ".NET HELPS BRINGING THINGS TOGETHER".  

WebServices in short is a feature that enables objects and information to be transfered between computers over the internet using http and the SOAP protocol. It helps to create proxy functions on both sides as to transform any object into just text, send this text using http and then put it back together again on the other side. This is very useful sometimes as it can pass through firewalls where regular socket communication might have been banned. In theory, this also helps for different computers talking to one another. Although in this case you likely have to code the proxy manually on the other side if this computer is not running windows. This is can be done, but likely it takes quite alot of time. Also the standard is pretty new and there might still be changes, but this feature is likely to grow in the future.

There is one other big difference between the two though as far as I can see. And that is that Java was developed by sun to run on unix operating systems and clones (like linux) first of all and then later adapted to be run on windows and other OS as well (realeasing a windows version of the JDK). While .NET was developed to run on Windows only. This can be seen rather clearly, as it is much easier to access windows specific features using .NET.

Ask yourself, would any of these features be useful to your application? If not, then likely there is no big hurry to convert. I'm sure there are many features I've forgot mentioning, but as far as I can see these are the most important.

There is one other reason though to perhaps consider converting anyway at some point in the future. That is Microsoft is spending most of its resources (which are huge...)  on .NET for the time beening and have been doing so for quite sometime. Due to this, we are likely to see future versions of windows being more and more adapted towards using .NET. Other applications may suffer from this at some point. If or when that happens remains to be seen though.

There are tons of information available from Microsoft on the topic of .NET. Some are rather partial, but others are good.

If you want good none partial examples on the use of .NET, I would recomend posting a question to any of the many .NET related groups here on E.E.
Java vertail machine is called "common language runtime" in .NET.

Delphi for .NET will likely function much the same as usual (I haven't had the chance to try Delphi 8 yet though, only visual studio).

The big difference is that it will produce intermediate code to be interpreted by .NET common language runtime instead of machine code (the regular exe file). This will be done under the hood so if all works well it should go without notice.  Due to this, the user will need to have the ".NET Framework" installed to run the application.

The main difference to the programmer is that you likely can not call functions in the Win32 API exactly the same way as before. How this is solved I don't know? Looking forward to learn more.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.