9
9 Comments

.NET Core vs NodeJS, which is better.

I would just like some of your opinions on which would be more beneficial to learn/use for a new Programmer, I am going through a coding bootcamp right now and I have the option to learn one or the other.

Any advice on these technologies from your perspective, If you have any experience with one or both I would love to hear about it! thank you for any input!

on February 24, 2020
  1. 1

    I am a Solutions Architect. I design SAAS and distributed systems. You have to understand and focus on a few points. what kind of traffic are you expecting. Node.js is single threaded handles fast I/O. No Parallelism, does not help you with CPU bound tasks. .NET is a battled hardened monster machine. .NET can handle small to large Enterprise systems. I designed a SAAS Application for a Netherlands client. the system can handle I/O and CPU bound tasks. Background Jobs. .NET has a large support community so you get all kinds of libraries for you application. Handles event based DDD architectures. Modular Monolith systems to Large Enterprise distributed system and Microservices. It's not easy to start in Node and then shift to .NET. It takes "time and money" to develop applications. why built again and again. Build Once, start with a MVP, .NET helps you do that and then when you start scaling it gives you a whole world of enterprise tools to choose from. I am not against Node, the real question is what are the application requirements? I mostly would create back-end in .NET and front-end n Angular or Vue.JS and if you're looking for SSR and SEO. you can use MVC still works else go for Nuxt.JS or if you like React go for Next.js . I hope this will help.

  2. 4

    I'd agree with most of what has been said already (perhaps with the exception of the comment re. only use C# if you're planning to work for financial organisations, sorry @codeables this is just not my experience)

    .NET Core is a substantial improvement on .NET Framework in that it is substantially more modular, and the runtime is way more lightweight as a result. It is also deployable to most target environments (.NET Framework was Windows only). C# is a strongly-typed OO language. with a whole host of great language features.

    NodeJs runs on most target environments already and obviously executes Javascript. If you want the strong typing and OO experience that C# gives you, writing and transpiling Typescript may be a good compromise.

    It all depends on your end goal I guess (and this may be what @codeables was getting at). .NET is traditionally used in enterprises and while .NET Core has made some headway, it is still at this point suffering from that hangover. For example, if you want to host your .NET Core app on a cloud provider, and want to go serverless then at this point only Azure will allow this. If you want to host within docker containers then you can do so on any cloud provider (hence the docker abstraction) but know that the even though the runtime is a lot smaller, Docker images for .NET Core, etc are still substantially larger than that of other platforms and therefore in some cases impractical for build & test within your CI/CD pipelines. (this was the case 6 months ago but this may have improved).

    Conversely if you want to build your app with NodeJS, most cloud providers provide their serverless solution with minimal customisation (Google & Firebase Cloud Functions, Lambda Functions and Azure Functions all support NodeJS).

  3. 3

    They are both great environments to work in my opinion, but .net/microsoft is kinda like it's own little walled garden away from what the rest of people use day to day. I would say to use node/javascript since learning js will help you ease into front end development easier also. I would also suggest learning in a linux based environment and getting use to using bash/zsh in the terminal along the way. These tools are a lot more prominent in a professional environment than windows based equivalents.

  4. 2

    I worked with both systems. Currently for most of the backend systems I use NodeJS(if not python).

    Previously I worked for 8+ years on .NET C#. It use to take a little longer time to develop in C# than in NodeJS, but life was lot peaceful in C# world, application was stable, less bugs, flexible design, solid architecture and best Editor & Debugger (Visual Studio). If I am working on a enterprise application I still prefer .NET C#. C# is really great language to implement a large applications.

    If your interest is not to enjoy programming but to build something quick, you should choose NodeJS.

  5. 2

    Node because is JavaScript based and it will be easier for you if you already know front end

  6. 2

    You can’t go far wrong with either, but it depends what you want to get out of your coding bootcamp.

    If you want to be able to quickly prototype applications or to eventually venture into front-end then learn Node. Every .NET developer I know also knows JavaScript to some extent. I think NodeJS is very beginner-friendly.

    If you want to get a job as a programmer then learn .NET Core. It’s more “enterprisey” and, if your local job market is anything like mine, you’ll be able to walk into a graduate role when you finish your bootcamp. .NET Core is more mature, but the whole ecosystem is a bit daunting.

    Watch some video tutorials, play with some code samples, and see which you prefer.

    Good luck!

  7. 1

    C#, it will guide you more to do proper code organization and architecture. Also, you can choose async when you want, unlike node which is always async.

  8. 1

    As a beginner I'd 100% pick Node.

    Not only is it much easier, you'll also learn the language of the web (JS). You'll be able to create full stack apps with JS alone.

    In terms of power, countless services we use every day are built in Node.

  9. 1

    NodeJS, unless you're planning to work for financial organizations.

  10. 1

    This comment was deleted 5 years ago