What are the advantages and disadvantages of .NET Core as a server-side platform to compete against Node.js and Go?

Jimmy Kataria

Jimmy Kataria, VP chez Intelegain Technologies (2012-present)

Répondu il y a 16w · L'auteur dispose de réponses 168 et de vues de réponses 30.1k

What are the advantages and disadvantages of .NET Core as a server-side platform to compete against Node.js and Go?

Learning a new development framework is always a challenge. Plus, as a developer, there are a variety of frameworks to choose from and it is difficult to know which is optimal for the job. Even if you are currently developing in .NET, the .NET Core is different enough that you will need to study how to use the tools and techniques properly. To understand .NET Core, it helps to know where you are starting from. Which brings us to-

About .NET Framework

Microsoft began working on the .NET framework in the late 90’s. The software development tool has undergone tremendous transformation since then. What made the original framework so appealing was its inclusion of class library which provides developers the choice to write applications in any language – C#, C++, VB etc. Programs written in .NET are executed in a software ecosystem called the Common Language Runtime (CLR)- which is an application virtual machine that offers memory management, security and exception handling.

Due to its consistent programming model, less complex developments efforts & debugging, direct support for security, .Net is popular with developers and programmers. Furthermore, it simplifies assembly on computers with framework installed and makes application deployment and maintenance straightforward.

Microsoft has made some big modifications to the .NET Framework and specifically introduced .NET Core.

What is .NET Core?

The key concepts present in .NET Framework (that are mentioned above) are also present in .NET Core. One of the biggest drawback of the .NET framework – was failing to share code across platforms – which is possible with .NET Core. It provides a library which can be deployed over diverse platforms and also enables developers to import the parts of the Framework needed for their projects.

.NET Core Runtime assists developers to improve the platform; the code provides developers with a fully-supported, open-source cross-platform .NET stack for creating server and cloud applications. This comprises of compilers, the CLR, and the core .NET base class libraries, plus the higher-level .NET web, API Frameworks and Data.

.NET Core is a framework that includes Universal Windows Platform (UWP) et Le site officiel de Microsoft ASP.NET Core. To make .NET Core a reality, the authors made the .NET Standard Library and the common infrastructure. .NET Core is all three of these things.

What are the key features of .NET Core?

The following are the most distinguished features of .NET Core –

The .NET Core Platform Is Open-Source

.NET Foundation is a community which .NET Core is a part of; it is created to promote innovativeness in the .NET development framework. The .NET Core project, considering its priority of endorsing innovativeness, is starting with its creation by the developers and the .NET team dedicated to the principles of open-source software.

There are many advantages of using this open-source platform. You have more control in utilizing it, changing it and the transparency in its code can offer information – and inspire your own projects based on .NET Core. Furthermore, since .NET Core is more secure- developers can correct errors and security risks more quickly. Given its open-source position, the .NET Core is more stable, in contrast to the proprietary software which is defined and then left by its creators, the code behind the platform’s tools will continue to be publicly accessible.

Déploiement flexible

MS products often have a complex installation process, which includes registry entries, COM components, GAC, special folders- all are designed to benefit from the Windows-only features. The .NET Framework is dependent upon these constructs- making it incompatible with other operating systems.

Leggi:  Si j'imprime une étiquette d'expédition à l'aide de Paypal ou d'eBay, puis-je rayer l'adresse de l'expéditeur et écrire une autre adresse de l'expéditeur?

Thus, while shipping an application that is reliant on .NET Framework, the installers have to have the foresight if the wrong .NET Framework version is installed and offer a way for the user to get the correct one. Most modern Windows versions comprise of .NET Framework, therefore making it easy to install certain applications. Complications, however, can occur if the application uses features that are not installed by default., for e.g. Le site officiel de Microsoft ASP.NET integration with WCF or IIS components.

.NET Core’s defining feature is its flexible deployment — you can install the platform as a separate installation or you can install it as part of your application. Its modular design implies that you only include the dependencies you need.

Those dependencies will go into the same folder as your application. Deploying an application is as easy as copying a folder. Another advantage to this approach is that you can have multiple versions running side-by-side. This approach is crucial to make the deployment experience consistent on all platforms.

A Cross-Platform Design

The .NET Core platform is a cross-platform design and already runs on Mac OS X, Windows, Linux – as its cross-platform attribute was one of the most crucial priorities for its development. .NET Core’s availability on more than just Windows platform, makes it a better option to be used by all developers – which includes Linux and Mac developers – and also offers the entire .NET framework the advantage of feedback and use from a much broader set of programmers.

This additional feedback leads to a product that functions much better for all of its users and makes the .NET Core a step forwards for ‘software-defined’, rather than ‘platform-defined’ applications.

Expanding the reach of your libraries

The .NET Standard Library can be used to write your application/ library with .NET Core; afterwards, it can be shared across many platforms. The same library can work in your backend service ‘on-premise’ or in the cloud, and in your client application running on a tablet, mobile or desktop. Rather than building apps for Android, Windows and iOS, you can build a single app that works on all platforms. .NET Core is small and perfect for use in containers- which scale easily and decrease development time.

.NET Standard library and the .NET Core establish a common standard. Before, when a new version of OS was introduced, it was the developer’s job to redevelop the application or library for that new platform and distribute the update. Rebuilding or redistributing is not required with .NET Core. If the new platform supports all the dependent libraries – it supports the application.

The four key-parts that make the composition of .NET Core

.NET runtime is the primary essential factor which provides .NET Core its standard services, comprise of native interop, garbage collector, type system as well as assembly loading. The second vital factor is the set of framework libraries (CoreFX) offering primitive data types, fundamental utilities and app composition types.

The third most necessary aspect is that the .NET Core developer experience is created by a set of SDK tools and language compilers that are a part of .NET Core. Fourthly, the “dotnet’ app host chooses and hosts the .NET Core Software Development Kit (SDK). This comprises of .NET Core Command Line Tools, the dotnet driver and the .NET Core- all you need to develop a .NET Core application or a .NET Core library.

[Cliquez pour continuer la lecture…]

Rafał Biel

Rafał Biel, a étudié l'informatique

Répondu il y a 112w · L'auteur dispose de réponses 115 et de vues de réponses 198.7k

Leggi:  Que signifie l'actif net total du fonds lorsque vous investissez dans des fonds communs de placement et des FNB?

Here are some of features of .NET Core. I would say that the main advantage of using .NET Core is that it’s portable, Docker-compatible and at the same time it’s based on .NET, so back-end developers don’t have to use JavaScript (many of them hate it), nor learn a completely new language like Go. Node.js is non-blocking and based on callbacks.

.NET has the async framework which is much easier to code against, at least to me. The DotNetCore website used to claim that .NET Core is up to three times faster than Go and up to nine times than Node.js. I cannot find that statement at the moment.

To me, the biggest advantage is that I can take my 10-year experience with .NET on Windows Server and use it anywhere with Docker. I am no longer constrained by Windows, nor installing Mono. It’s fast, light, container-friendly and allows me to continue with C# as my main language.

Benchamarks: aspnet/benchmarks

Arupan Justin

Arupan Justin, Digital Marketing Consultant at Startupsbro (2012-present)

Répondu il y a 70w · L'auteur dispose de réponses 59 et de vues de réponses 15.8k

Disadvantages of .NET Core

Documentation and Tools

The documentation of the Le site officiel de Microsoft ASP.NET Core is not great when compared to other development technologies. It is being updated very frequently and any gaps present are being filled actively by Microsoft and other contributors for the project. Still, when trying to develop an application and trying to find the root cause for the exception could be a little tricky because there is a constant update in the documentation and in the framework. The solution that is given might not exactly work because of the changes in the framework. Both documentation and tooling and getting better day by day and should be able to catch up with the needs of the developers soon enough.

Is .NET Core suitable for you?

Choosing between Le site officiel de Microsoft ASP.NET Core and Le site officiel de Microsoft ASP.NET framework is totally a decision that depends on the purpose.

Utilisation ce Le site officiel de Microsoft ASP.NET Core when

  • You want to try out the new features in Le site officiel de Microsoft ASP.NET core and the application is not an enterprise application that has various security features.
  • You have developers working on Mac and Linux to develop the application and also have an intent to deploy it in the Mac and Linux machines.
  • You want high-performance applications. The Le site officiel de Microsoft ASP.NET Core applications are extremely fast when compared to the Le site officiel de Microsoft ASP.NET applications.
  • You want to work with containers like Docker for the deployment of the applications.

Utilisation ce Le site officiel de Microsoft ASP.NET quand

Asp .net core performance ASP .net framework Benchmark

find a developer for your startup

Nikole Brown

Nikole Brown

Répondu il y a 38w · L'auteur dispose de réponses 81 et de vues de réponses 15.6k

.NET Core has managed to gain a foothold as a reliable solution at a corporate level. Of course, .NET development services are comparatively complicated and expensive but you consider outsourcing .net developer work to overseas. Frankly speaking, there are many advantages of choosing .NET development, you can check Net Developers Ukraine: Top C#/.NET Developer | High Code Quality. This source persuaded me that I should move on to .Net Core.

Leggi:  Où utilise-t-on le Litecoin?

Mike Roylance

Mike Roylance, a étudié à l'Université de Washington

Répondu il y a 99w

There is too much to write about this subject, and I really don’t want to spend more than a few minutes with this answer, so I’ll keep my opinion on it short:

I’d pick Kotlin (JVM) over .NET, node.js, or Golang for pretty much any project. Kotlin is superior to C# in several aspects (null checking built in), as well as JavaScript (strongly typed), TypeScript (JVM handles threading beautifully), and even Golang (oh generics, where art thou).

The exception is for UI web development, at that point I’d use Kotlin for the backend, and TypeScript for the frontend. I’m a fan of Angular 1 for the framework.

Also, for iOS development, I’d stick with Xamarin C# over Swift.

Protobufs tie them all together. This is what I currently do, and have been doing for the last few years. Are there other acceptable alternatives? Sure. But I really love this approach, and have produced a lot quickly with it.

Maciej Dziardziel

Maciej Dziardziel, studied at University of Zielona Gora

Répondu il y a 112w · L'auteur dispose de réponses 292 et de vues de réponses 226k

avantages:

  • C# is a better language then js or golang.

Désavantages:

  • But it ain’t much better than java, and as a platform, on anything but windows its just much, much worse.
  • Its late to the scene, so ecosystem is nowhere near its competitors - and its not certain that it will ever catch up. .Net users come from corporate background and are not known for understanding open source or participating in it. Also C# needs IDE, and that’s also weak story on linux.
  • While in theory .net may run on linux, in practice its not a pleasant experience. I did it once, I don’t want to do it ever again.

Beside windows, .net is almost non-existent, especially comparing to java. So together we got a tool that is not much better then alternatives, has far less users and libraries, not much chance to change that anytime soon, is strongly tied to single company and their system, both quickly loosing relevancy. If you have existing large .net codebase and want move from windows, it may give you a chance at some point in the future. Otherwise I don’t see much reasons for using it. There are many better choices.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.