Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
    
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 Hodgson Dec 7 '11 at 13:24
add comment

migrated from stackoverflow.com Dec 7 '11 at 6:28

This question came from our site for professional and enthusiast programmers.

closed as off topic by Mark Trapp Feb 2 '12 at 9:00

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

4 Answers

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
  • ASP.NET MVC3
  • 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#.

share|improve this answer
    
+1 for mentioning most of the highly used frameworks/libraries... –  Pravin Patil Dec 8 '11 at 17:39
add comment

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.

share|improve this answer
add comment

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")
  2. ASP.NET MVC

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.

share|improve this answer
add comment

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

share|improve this answer
add comment