It was the 27th June of 2016 when the world was hit by a bolt from the blue (or more specifically – from the four-coloured window). The ground parted, angelic choirs raised their voices in exaltation and pinguin-praising and apple-praising pagans were given the chance to believe. Mankind was blessed with the .NET Core 1.0, along with Visual Studio 2015 Update 3, which enabled .NET Core development. And Microsoft saw that it was good.
Leaving behind the holy metaphors – in November of 2014, Microsoft announced .NET Core, the new version of the famous .NET Framework, changing the game once and for all. Formerly, the biggest disadvantage of .NET Framework was its exclusive dedication to Microsoft devices. Core was the result of an effort to include cross-platform support for the framework. That gave .NET, already known to be great and highly reliable, chance to get even more appreciation and further advancement.
Currently, .NET Core is definitely on trend and we can’t deny that we are proud to be in the lead of .NET Core development. We tamed the implementation of the .NET framework early and now we are glad to be called one of the very few .NET Core specialists in our area. Let’s take a closer look and talk about the Microsoft child that makes such a fuss in the development world.
Revenge is best served cold. And with the cup of Java
Interestingly enough, .NET was born out of controversy. In 1995, Sun Microsystems Inc. introduced their beloved child to the world. Child being the impressive set of computer software and specification. Child widely known till this day, with its logo presenting cup of steaming coffee. Yes, you guessed – it was the Java platform.
Microsoft was pretty impressed by the language and its ecosystem, and decided to implement that strategy itself. Shortly Microsoft introduced its own implementation, and then started enhancing it beyond the Java standard. In 1997, Sun finally lost its patience and sued Microsoft. Yet instead of giving up or trying to cooperate with Sun, Microsoft decided to outshine it (pun may be intended). First beta version of .NET 1.0 was released by late 2000.
Here arises the question – so is the .NET just the Java copied by Microsoft? Definitely not.
Are these two similar to some extend? Definitely yes.
Both .NET and Java are dedicated to serve the purpose of enterprise application development, both are object oriented, type safe and have automatic garbage collection. Both were created to allow programmers develop the n-tiered applications, comprising a client tier, server tier and database tier. Both platforms have a similar set of components and features that provide a standard way performing certain tasks. Finally, they are both iconic and have a great cult following.
Differences? Well, Java is based on the concept that the same software should be interoperable with different devices, while .NET runs only on Microsoft’s one (remember: here we are talking about the pure .NET, not .NET Core). Furthermore, while in Java framework Java is your programming language by default, .NET supports several languages, such as C#, F#, and Visual Basic. The list goes on, but those two differences are the most commonly recognizable.
Loving the Visual Studio. Pros and cons of .NET
As mentioned before, .NET really shows its greatness when it comes to enterprise application development. It finds the best use in big, long-term projects when you are willing to sacrifice a little more development time in the name of top-notch safety and reliability.
Furthermore, because .NET framework was developed by the programmers from the great Microsoft, it gives the sense of environment you can trust. Security, certificates, encryption – developers feel certain and confident using the platform that is a Microsoft’s baby. It’s stable in operation and good in maintenance. C#, the flagship language of .NET, is a compiled and strongly typed language. So it’s not only really secure but also do not require having the additional developer to verify the code.
The whole .NET platform works on a higher level of abstraction – you don’t have to focus on anything lower leveled, you are just taking care of what’s really important. Also, libraries are being constantly updated and adjusted to newer versions. At the same time, the old versions are still being supported.
Moreover, you do not only count on Microsoft official support, but also enjoy the great community surrounding the framework. You can find the great documentation on the Internet. And there is Visual Studio.
Microsoft Visual Studio is an integrated development environment, including code editor and code refactoring. Visual Studio is widely appreciated, and a lot of developers, even those who do not support Microsoft personally, agree that it is one of the best tools of its kind. It does not only support 36 different programming languages, but also allows the code editor and debugger to support (to varying degrees) nearly any programming language. It has great IntelliSense and lots of plugins that significantly improve the process of coding.
Asking developers about .NET’s disadvantages creates a long moment of silence. Not because they are too afraid to offend the great gods of four-colored window, but because it is hard to find. If you want to be very specific and strict, there is one thing that comes to my mind – .NET isn’t the best for startups, as they often look for technologies that are quick in development.
Wait a minute, you may say, and what about the fact that .NET works only on Microsoft-powered devices?! That isn’t a small thing at all! Not to even mention that clients aren’t really into Windows Phone and don’t want to invest in .NET for mobiles. How is that not a problem?!
It was a problem. A pretty big one. But then .NET Core appeared.
Great to the Core
At Microsoft Connect(); conference in 2014 Microsoft announced that “.NET Core will be entirely released as an open-source software”. That alternative framework implementation opened doors that were previously closed tight – most noticeable allowed .NET to be multi-platform, which means that it can run not only on Microsoft devices but also on Linux and iOS ones, which solves the biggest issue of classic .NET.
.NET Core name basically explains itself perfectly. It’s a filtered essence of .NET, its most important core, that has been rewritten in order to be fully transferable and to work on all platforms. Its source code is available on the distributed version control system – GIT. You can easily adjust it to your needs.
.NET Core is currently one of the Microsoft’s most beloved projects – the company invests impressive amounts of money in its development, and most of classic .NET libraries are being transferred to .NET Core. The framework focuses mainly on web app development, as the market analysis shows a sharp decline in desktop apps’ popularity. Most probably that is the reason, why the lines of code that allow creating desktop apps aren’t going to be rewritten to .NET Core. You can use elements of classic .NET while coding in .NET Core, but you have to remember that those elements will be available only on Microsoft devices.
.NET Core 2.0 was released in August, 2017. It is worth mentioning that migration of projects from version 1.1 was as painless as possible, while the update resulted in a significant increase in performance. Overall, .NET Core became the next best thing in application development – and it still hasn’t said its last word yet.
Why it’s so extraordinary to use .NET Core?
As mentioned earlier, .NET Core is relatively a fresh thing. Although not perfect, it seems to be one of the greatest development initiatives of the last few years. We saw potential in that framework implementation early, so we were able to master it and start using in commercial projects before lots of other software agencies.
Of course, we maintain applications made in classic .NET, but lots of new projects we already develop in .NET Core. It all depends on our client’s will and the target group of his product. Classic .NET still has many features that in some cases can make it more attractive. Nevertheless, the multi-platform approach of .NET Core is tempting. And our experience attracts entrepreneurs who want to follow the most alluring trends in app development.