I am basically a java programmer who wants to move to .net. I haven't worked in .NET companies so I don't have any idea about the tools they use. In a Java company people use Maven, Hibernate and frameworks such as JSF or Tapestry.

My questions are:

What are the tools/frameworks that .NET/C# companies use? Do they use ASP.NET MVC? Do they use any ORM tool? Do they use any framework?

I will be happy if someone could tell me about this.

  • Take a look at sharparchitecture.net for one opinion... it's a little dated, but its a good approach. Also, make sure you take a look at NuGet.
    – Kyle
    Dec 7, 2011 at 13:24

4 Answers 4


There is no absolute tool to write a program with in .NET; as in Java you have several at your disposal to do what you want. You can go the "Microsoft way" using only Microsoft technologies all the way or you can use third party tools for nearly everything. Let's take the example of DBMS access:

  • Using Microsoft tools
    • ADO.NET ("standard" access to a DBMS)
    • Linq to SQL (ORM)
    • EntityFramework (ORM, similar to Hibernate)
  • Using third-party tools

For every "part" of an application you have that choice, be it logging frameworks, testing frameworks, IOC frameworks, etc. In the beginnings of .NET there was only the "Microsoft Way" due to lacking third-party tools, now you have the choice.

To answer your other question on .NET web development, companies may use:

  • "old school" ASP.NET WebForms
  • Silverlight (as a separate application, or in combination with ASP.NET applications)

As of now, ASP.NET MVC seems to be the preferred choice, see #1, #2 or #3 (this one to indicate that ASP.NET WebForms has its advantages)

One thing that @Anand is right about: if you know Java, use C#.

  • +1 for mentioning most of the highly used frameworks/libraries... Dec 8, 2011 at 17:39

In .NET, we can develop various types of applications, such as:

  • Web Application -> WebForm or Model View Based Application typically called as MVC
  • WebSite
  • Console Application
  • Windows Application

and many others.

Each of above application can be develop in different framework (1.0,2.0,3.5,4.0 or 4.5 version)

You can simply start working with ASP.NET with Visual Studio 2005/2008/2010.

Based on the your project requirement, you can choose the web and windows with different language support. As you are java developer, I will sugguest you to go for C# .

You can find the complete details on www.msdn.com and Microsoft's other websites.


In the .NET world, you generally don't need third party software like Maven, Hibernate, etc. because Microsoft provides the basics. Visual Studio has a command line build mechanism (msbuild). Microsoft has released two ORMs: Entity Framework and LinqToSql, although you can still use NHibernate instead.

Web applications in .NET tend to be built in one of two ways:

  1. Web Forms (ASP.NET "Classic")

Both of these are provided by Microsoft and you don't necessarily need to download anything, although Microsoft has been releasing updates to MVC asynchronously to Visual Studio releases.

There are open source software and frameworks in the .NET world, but it's not needed and many projects don't use it at all since Microsoft provides quite a bit out of the box.


Most of the experts have given you a good starting information as to what can be developed in .NET world. Just to add here, initially .NET was a bit resistant to the open source world as is JAVA. But in recent times lots of Open Source frameworks/Tools have come for .NET also. Also if one can see, all the frameworks which were there in JAVA have made their way in .NET world also. e.g. Log4Net, Spring.Net, AspectJ etc.

ORM Tools : There are lots of ORM tools available in .NET.

There is a good discussion at this link about their performance.

There are lots of open source libraries/Frameworks/Tools that are used for the developement in the .NET companies. You can find a good list at - Most Useful .NET Libraries, Keep up to date with .NET technologies