.NET is the Future

This has been a long time in coming. I couldn't write any more article because of some problems but finally I thought I should talk about the future of .NET. The reason is very simple, I'm getting almost 50 mails a day in my inbox just asking about the future of .NET and the comparison with other technologies. So I'm presenting my own views about the future possibilities of this technology.


This has been a long time in coming. I couldn't write any more article because of some problems but finally I thought I should talk about the future of .NET. The reason is very simple, I'm getting almost 50 mails a day in my inbox just asking about the future of .NET and the comparison with other technologies. So I'm presenting my own views about the future possibilities of this technology.
I'll start with the expectations of the developers and finish with the companies (industry) point of view.

Well!
When a developer starts to develop software, what he requires or needs is:

  1. Suitable language's knowledge in which he can program the business logic.
  2. Database knowledge to store his data.
  3. Tools to connect the business logic to the database in distributed environment.
  4. How to pack the application.
  5. If providing the transparency on client side then needs to develop the web solution.
  6. Want some sort of components to reuse his hard work or efficient efforts of others.
  7. Want to validate the client most of the times through scripts or server side logic.
  8. Want to permit a community to reuse your component to promote your business or criteria.
  9. Want to provide a neat User Interface.
  10. Want to save the efforts to put on another web page that you have made once.

And many more ...(Can not cover or discuss all aspects because these all things actually vary from person to person's preferences).

But I think the top 10 points I mentioned would be present in the list of every serious developer. So the solutions for these problems in the terms of technology we had before the advent of .NET are: ** Here I have assumed that one person will definitely like to go for any one of all available options in one category and I'll be mentioning the names of the popular technologies only.

  1. Suitable Language's knowledge for business logic: C, C++, and JAVA etc.
  2. Databases: ORACLE, SQL Server etc.
  3. Tools to connect business logic to Database components in Distributed environment: CORBA, RMI, DCOM etc.
  4. Packing of application for distribution: setup files (Environment dependent), binary files and finally registering the components.
  5. Developing online solution through (Displaying): HTML, DHTML, CSS, and XML etc.
  6. Want the reusability concept: Java Beans, COM etc.
  7. Client validation: Java Script, JScript, Applets etc and Server Side Logic: Perl, ASP, PHP etc.
  8. Component Distribution: Physically copy and register the component or access through full dependency on server.
  9. Neat User Interface: VB, VC++, GTK+ etc.
  10. Reusable web component: not any popular software used frequently in industry.

For example I was using : C++, SQL Server, DCOM, HTML, COM, JScript, ASP, Server and Client registration utilities, VC++, GTK+ (on Linux) and XML for my development requirements. So the problem I faced is that it took a long time for me to understand all technologies and almost every time I suspected the saturation or survival of the technology. I'm not saying that every developer needs to know all these technologies at once but definitely if you are going to design something new and creative then you must have a very good idea of at least one option for every point we discussed and those are really the persons our industry is moving with.

But with .NET, Microsoft integrated almost everything in one package with the dependencies of the technologies with a clear distinction of the technology boundaries. Means you have almost everything but not whispering into each other.

So if you start to learn .NET, what all you actually need to learn is: Major technologies: C# (VB.NET is also a good option), ASP.NET, XML.
Just three ............ Yes!

C# can be used for scripting for client validation, to create business logic, for server side programming, for Windows Applications, for Console Applications, for component designing and can use XML as data, as metadata (self describing data) and connecting tool between database and business logic again you need C# implementation of ADO.NET and moreover to put the things online you need ASP.NET on server side and to make reusable web components, you have the concept of Web Services like Windows Services developed in VC++ but with no physical boundaries.

Just one language and we can use it almost everywhere. No more confusion... and yes ! No more registering process of components to waste the central memory of the system as we had with COM/DCOM and no more administration permissions (out of some special cases) on system.

So from programmers or developers point of view this is a high level of achievement.

Now if we think in terms of companies (well! Here I'm talking about the small companies, working on the basis of projects). For example one company recruited four VC++ developers because the project they had was going to develop in VC++, but in next 6 months they got a project on VB.

Now what!
They'll ask their developers to learn VB and start to work, yes this is not the way to fire them and hire VB developers!, so this is the major problem, but in the case of .NET, you don't need to learn a new .NET language because you can inherit the components of one language in to another .NET language because of excellent interoperability.

So with .NET there is no more place to convert your VB programmers to Managed C++ programmers or C# programmers to JScript.NET programmers.