What do you like best?

.Net and its companion languages like C# are unique as a developer platform and a runtime. I love the fact that .Net has a common runtime that supports several languages to be used to develop on top of it and the interoperability between those is absolutely flawless. The is made possible by the metadata that is included in the binaries that are compiled, which are called assemblies.

The other thing I love is the fact that the compiled binaries do not contain by default native code, but intermediate language code (which is binary, not text) that is just-in-time compiled to native on runtime. This is a very small performance penalty on application start-up (and the first time each method is used for the first time), but essentially makes applications multi-platform. In the end, native code is actually run, so performance is not an issue.

Yet another amazing aspect .Net has is the incredibly optimized garbage collector. This means that developers don't need to worry about managing object memory. There are no segmentation faults for trying to access already de-allocated memory. There are no memory leaks (strictly speaking that is - in practice, there still can be memory mismanagement by making bad use of static variables). As to the performance, while purists will stand by their highly optimized C and C++ code, for applications that have a lot of objects being created and disposed, the GC does represent an incredibly *better* performance than C and C++. I've already benchmarked this and the difference can be of something between 5x and 10x faster, where .Net solidly wins. Moreover, .Net manages very well the problem of memory fragmentation.

Finally, .Net supports some language features I absolutely became dependant on. Delegates are so much better than Java's anonymous interfaces. Properties are an incredibly better way to expose private state, that Getters and Setters. Generics are well implemented instead of being erasure generics.

Finally, there's the unique killer feature, LINQ - Language Integrated Query. Linq allows for expression trees to be written in the language of your choice (for instance C#) and have those expression trees be translated by database providers into optimized SQL queries to that database. This allows a whole new level of ORMs and a great example is Entity Framework. But this is just one of LINQ's many aspects. Depending on the context, the exact same LINQ, usually represented as a lambda expression, might be used as either an expression tree or an anonymous method. This means the same logic used to query a database can be used to query non-database things like lists of objects, XML, Json and so on. It is extremely versatile.

There are so many more things I absolutely love about .Net, but these are probably the main things.

What do you dislike?

The fact that in the past .Net was officially a Windows only proposition. In fact, .Net 4.5 is still only Windows. It kind of defeats one of its great characteristics, the fact that it is in theory multi-platform. However, there has been Mono, an alternative .Net implementation that wasn't supported by Microsoft and even better, .Net has been rebooted and a there is now .Net Core that is officially multi-platform. In practice, nowadays we can run .Net in a very broad range of devices ranging like macOS computers, Linux desktops and servers, iPhones and iPads, Android devices and Windows UWP, Even IOT devices, hologram and Xbox are supported now.

Recommendations to others considering the product

Do consider .Net Core. .Net Core is still not the complete framework, so it still misses some bits. If you need some more advanced features like AppDomains and more control over threads, you're out of luck with .Net Core and you will need the full framework like .Net 4.5. However, if you don't need those features, .Net Core is a supported multi-platform solution.

What business problems are you solving with the product? What benefits have you realized?

What do you like best?

Great new features building on the already powerful framework of .NET. This version adds the async and await constructs, zip file handling, regex timeouts, and much more

What do you dislike?

The framework is so vast it is hard to tell what is new and little time saving features are not always advertised.

Recommendations to others considering the product

It is a vast and powerful framework but do not be intimidated by its size or complexity. Once you learn the basics, it is easy to pick up the time saving shortcuts. A quick web search usually leads to many others with similar questions on usage or problems

What business problems are you solving with the product? What benefits have you realized?

The .Net framework allows me to build high quality applications and focus on the differentiating business needs of our company rather than having to spend time writing boilerplate UI code, IO code, or other simple tasks.

What do you like best?

Very feature rich and flexible platform for development of cross-platform applications. You can use the language that is most comfortable to you, from VB.NET to C# - it's up to you. In addition, now with Microsoft's purchase of Xamarin, you can build thick-client, thin-client, or native mobile apps all using one familiar platform and framework. This gives you maximum flexibility with your development projects and ensures quicker time to market for your software and applications.

What do you dislike?

i think that the previous version of the .NET framework being a closed system was a negative, but this is being addressed with .NET Core 1.0. Opening the framework up to the community will only increase adoption and get more people on board.

What business problems are you solving with the product? What benefits have you realized?

We run a development shop that creates cross-platform applications. This includes web applications as well as native mobile applications. Our core competencies are on the .NET platform so we are looking forward to the new .NET Core. We have benefitted from being able to quickly build any type of application with standard technologies and consistency across our development teams. The tools that back the .NET platform, including Visual Studio and now Xamarin only help to make our jobs easier.

What do you like best?

I only write C# code (I love its syntax), but I really like the general idea to write different parts of a product in different languages. You can write a math library in F#, a GUI in C# and backend in VB and everything will work great together.

What do you dislike?

It is a Windows only framework, which disallow you to develop under *nix like system and then reduces the scalability of your code.

Recommendations to others considering the product

Always keep in mind that you won't be able to develop with .NET in non-Windows desktop environment. You can use Mono, which is not satisfactory enough.

What business problems are you solving with the product? What benefits have you realized?

I mostly use it for ASP.NET developing, UWP and trying Xamarin right now. It allows me to reduce number of programming languages I have to to in a full-stack developing.

Learning about .NET 4.5?

* We monitor all .NET 4.5 reviews to prevent fraudulent reviews and keep review quality high. We do not post reviews by company employees or direct competitors. Validated reviews require the user to submit a screenshot of the product containing their user ID, in order to verify a user is an actual user of the product.