Why do software developers like programming in .NET? - Blog CSHARK
Mint Blog
10/10/19

We Don’t Go To Therapy – We Have .NET

We Don’t Go To Therapy – We Have .NET

We all have a favorite chair to read our favorite book while having our favorite coffee. We can relax knowing that everything is in place – save environment protects us. The same goes for technologies in software development. A tool belt full of handy solutions keeps us focused and ready to face any project. This works for CSHARK as well. .NET is a technology that drives our projects – it helps us think outside the box while having everything in the box.

Microsoft wouldn’t be where it’s right now if it wasn’t for technology and its proliferation on various markets all over the planet. The same goes for values. Microsoft, as it’s said in official marketing materials, wants to ‘empower every person and every organization on the planet to achieve more’. Since CSHARK is the .NET powerhouse in Poland with almost 200 Polish programmers, we can say that empowerment works. Not for us though, but for our clients. We can safely say that power comes from our functionalities and they are .NET-fuelled.

Why CSHARK likes .NET?

Microsoft made sure that .NET would be a worthy successor to Basic. .NET is a framework full of libraries straight out from Microsoft. This way .NET gives more options, it is highly advanced and flexible while being simple at the same time. You can use it for desktop applications, as well as web applications. You can write for services, Internet communication and much more. You can make software with Windows Presentation Foundation (WPF) or database application. You can do a lot and CSHARK knows how to use Microsoft’s environment to drive solutions for clients.

A good software developer is cross-functional. He or she can easily write a code and act as an IT consultant. It’s especially important if the project is based on a legacy code and needs refining or it’s advanced in nature and in scope. A software product development company should hire programmers that can easily dive into projects and simply make it happen for clients. The same goes for technology – it should be:

  • Accessible
  • Diverse
  • Complete
  • Suited for rapid application development

That’s how it is with .NET. For starters, everything comes in the box. A lot of libraries are already present. Like Entity or which make life significantly easier. If something is lacking, a big community or organization create these libraries. Microsoft listens to people’s needs and creates these libraries. Not as fast as the community would like it. But it comes with baseline and future improvements. For example, way back there was a good DTO missing, which was already created for Java. So for .NET it was created as nHibernate. It was cumbersome so developers loved it almost immediately Entity Framework from Microsoft. It was so easy to use and had great support straight from IDE. Now nHibernate is a security nightmare and EF has lots and lots of improvements over last years. That responsiveness for the community needs is what people enjoy.

So almost nothing external is ever needed, unless if you’re doing testing. I found the .NET-native library too basic for TDD. NUnit or Selenium makes the job done much better.

This is an exception, though. .NET is excellent in its own regard, it comes with a structure that is well thought-out, documented to a great extent and supported. If something is missing in the original package, the community makes its own toolbelt with specialized solutions but it’s rare. If you’re serious about doing business, choose people who can deliver, in the technology that enables delivery. Microsoft certainly knows what it’s doing.

Secondly – bigger and smaller, very competent and sane revolutions. Like the Common Language Runtime (CLR), which is a .NET’s runtime environment. It’s designed to run all .NET languages the same way. Advantages lie in compilation and execution of a code written in the standard common intermediate language CIL. The code is then known as the managed code and guarantees all the needed functions for the application running process.

Another revolution in software product development cames in the form of “nuggets” and they are tasty as they sound. OK, they should be written down as NuGets but who cares. The truth ruins even the best metaphor. NuGet is a mechanism of code sharing that defines the way packets are made, managed and used. NuGet acts like a public host, maintaining a central repository with over 100,000 unique packets. The ability to compile the code easily is one of the more advanced functions of the system of managing packets. Most of NuGet tools manage the tree of interdependencies for the project itself, making it convenient for the developer. NuGet also takes into account all low-level interdependencies. Because of that, it’s thorough.

Another great thing is the constant development of patterns and environments by Microsoft. Sometimes a great tool is invented and abandoned (like Windows Phone or Silverlight), making it obsolete in the long run. It’s happening with .NET but it is still supported for a few years before it comes obsolete. For example, great invention Silverlight which was supposed to replace the resource-demanding Flash. It did not happen due to the fact it was designed only for windows and the world is built on more than one operating system. So after thinking it through they moved efforts and resources to HTML5. But still this support was present for couple of years so companies can feel safer investing in brand new technologies. And developers can reuse acquired skills like XAML and knowledge about MVVM pattern in WPF or apps for Microsoft Store.

Visual Studio – developers love it. It is still my high school sweetheart and with every change the feelings are stronger. One of the cleanest, most transparent IDEs out there. So clean that if it was a floor, you could eat from it directly. The integrated development environment or IDE is Microsoft’s greatest weapon. Visual Studio is a tool that cannot be overestimated. Visual Studio has better predictive typing than any other IDE. It compiles and cross-compiles the code for Windows, Linux, iOS, and Android, as well as other, less popular systems. With each new release it supports more languages than anything out there. Yes, you guessed it, out-of-the-box. Since 2017 edition, it swallows less RAM and installs significantly quicker. With Team Foundation you can view and manage tasks and bugs straight from Visual Studio. Navigation between files, classes, interfaces, and implementations is spot-on. Powerful debugging (for example wireless debug for Android) is phenomenal. Support for TypeScript, Python, NodeJS, C++, JavaScript and many others makes it universal. The same goes for solution support like Xamarin, Unity, ASP.NET and more. Integration with Azure creates a powerful power couple in the eye of every conscious .NET programmer. In fact, if .NET and Azure were contestants in a reality show, everyone would want to get rid of them right away. CPU and memory profiles, class diagram, SQL server designer… I could go on and on. Visual Studio is the best IDE on the planet, period.

With Visual Studio comes TFS: great tool for managing projects within reasonable size teams. It has a built-in Code repository. It is a difficult topic due to the fact, that most hardcore programmers prefer Git and after some time Microsoft allowed you to have such Git repository integrated. Even Visual Studio supports it so you can avoid Git client's installation and submitting changes through outside tools.

For years critical voices against Microsoft came to say that .NET, being open source and VS+TFS environment, is too bulky and too big in their general feeling. It’s not true anymore. Microsoft created .Net Core platform and help create a fully open source community around it. So the last valid argument from Java software developers against .NET is literally dead. With it comes lightweight but great tool Visual Code!

Last but not least – Microsoft’s .NET has a large, solid, knowledgeable and mature community, supported by the company itself. When a junior comes into CSHARK, the company helps him or her to develop skills and grow alongside the project. In some cases, due to a workload, we can’t be available. That’s where the community comes in, temporary carrying the weight for us. We prefer self-sufficient and reliable developers, but the community and documentation are some of the greatest strengths of .NET environment.

We don’t need therapy

Product development services require knowledge and skills. Time is money, especially in FinTech software development and Industry 4.0. Rapid application development is the key. As well as .NET, which helps through flexibility. Since CSHARK developers have a reliable technology stack and skills allowing for seamless coding, they are less prone to professional burnout. We don’t need therapy, we have .NET!