DEV Community

Mahesh K
Mahesh K

Posted on

 

Is it Worth Learning Microsoft's Tech Stack?

Let me break down my concerns about Microsoft's tech stack.

Vb.Net :

Very few desktop applications are surviving the mobile and cloud migration. Though VB.net still has takers in context of those legacy application who don't want to make use of the Java for desktop.

C# :

It's very strong but often tied to Windows server. It's yet to be popular on linux server. There are few desktop based application making use of it but Node and Electron can pretty much replace it.

ASP.Net:

Considering how expensive the ASP.net is still today in 2018 compared to PHP. I don't see why any company would still want to invest in this. PHP and even node with express is much cheaper and maintainable over ASP.

Azure:

I find azure platform extremely expensive for developers who want to build on side projects. The reason being Dot net core is not matured yet to deploy on say digitalocean and other cloud platforms. And Azure is not really worth it after 12 months of free service as the usage prices rise quickly compared to other cloud hosting platforms.

Though I am not completely discarding .NET stack, I find C# more faster and easy to deploy than slow RAM hanging java code.

What's still worth it in my opinion -

  1. VS Studio and VS Studio Code
  2. C# and Dot Net Core.
  3. Other testing and management VS tools which I ignored above.

I know I may not be viewing things correctly but what's your opinion on Microsoft's tech stack (including any service which I have listed and/or missed).

Do you think new developers and the college or university or even mid aged developers should invest their time into microsoft stack in 2018 onwards?

Top comments (14)

Collapse
 
sam_ferree profile image
Sam Ferree

As an unpaid Microsoft shill, know that my opinion is bias but for web, I have bet all my chips on C#, ASP.NET Core, Linux Containers and Azure.

As for hosting on platforms other than azure... C# and F# on .net core top the performance for langauge choices on AWS Lamda, and since you can deploy .net core applications to containers, you can run them anywhere that runs containers... i.e. Any hosting service worth using.

From what I've noticed, a lot of the people moving to .NET Core aren't coming from being .NET Framework windows devs, they're coming from the node/python world hoping to run scalable services in the cloud.

Collapse
 
goaty92 profile image
goaty92

My TL;DR answer would be 'yes' but I'd like to point out some issues that I think you got wrong:

  • How is yet to be popular on linux equivalent to tied to Windows server? There's nothing that stops you from building a server running on Linux with C#. I guess your point is that that kind of jobs is not yet common but it's an entirely different matter.
  • How exactly is ASP.NET more expensive than PHP? It's literally free. Performance-wise speaking, ASP.NET is one of the fastest out there. PHP and Node don't even come close. C# is also way more maintainable than Javascript or PHP.
  • Dot net core is not matured yet to deploy on say digitalocean and other cloud platforms .Net core has reached version 2.0 since last year and fully supported AWS (including lambda) and several Linux distros. Yes Azure tends to be more pricey but you don't have to stick with it if you don't want to.
Collapse
 
simonhaisz profile image
simonhaisz

Whether it is 'worth it' is dependent upon what you want to achieve. Are you looking to get a job from this learning investment? Are you trying to broaden your knowledge by seeing how different technologies solve different problems? Are you just looking around to mess around with something new for the fun of it?

My read of your post that you are focusing on the first option, to help landing a job. In which case, as others already stated, it really depends upon if the companies using these technologies are ones that you want to work for. In general C#, ASP.NET and the Windows platform are more popular in the Enterprise crowd, not so much for startups. If you want to work for startups then focus on technologies popular with them, which tend to not use the Microsoft stack. If you want to work where-ever, as long as its good than focus on what's the most popular.

As a former hiring manager I do want to point out one thing that less experienced people sometimes gloss over; technology is always changing. So even if you are really good with the technology that your prospective employer is currently using, that doesn't automatically mean you'll be as good with whatever they are using in 6 months, a year, etc. Depending upon the place they put more or less importance on that adaptability.

The reason I think this is relevant to your post is one of my favourite personal example of this issue, which is kind of the opposite of your question. Years ago my team hired a developer whose main experience was C++ with some C#. He had never written a line of Java in his life. What was his first big feature? Design and implement a complicated drag-and-drop dashboard UI...in Java. And you know what? Not only did he do a fantastic job, we weren't that concerned he wouldn't be able to. Why? Because his background and experience had taught him enough about OO programming and software design patterns that a brand new language barely slowed him down.

So to loop back to what I think your question is: is it worth it to learn MS technologies when you don't think you want to work for companies that use them? Well, one reason to do so is to prove that you can learn new technologies and that you are not a one trick pony. Whether its from MS or not is beside the point.

PS: Biased opinion: As a huge Typescript fan I think any Javascript dev should at least try TS before they decide on a preference.

Collapse
 
bgadrian profile image
Adrian B.G.

I would treat Azure as a separate topic, compared with AWS is coming strong from behind.

Their languages stack also include TypeScript which is used for large JavaScript apps development.

As for the .NET stack, you have to be more specific, what is your career path? In what industries you want to work? What kind of projects? How many jobs there are in your area?

Because you didn't specified any of these, I will answer from a statistics point of view, No.

Imgur

Less popularity means less jobs available, less career opportunities, less projects to handle and so on.

If you want to be more specific, like in banking industry, we may have other answer. Except for VB.net and ASP.net, I will say no regardless.

Collapse
 
setagana profile image
setagana

"Less popularity means less jobs available, less career opportunities, less projects to handle and so on."

What you're not mentioning here is that "less" isn't necessarily a problem. "Less" than a helluva lot is still a lot. I've been working as a C# .NET developer for a whopping 7 months, and my LinkedIn inbox gets about 3 or 4 unsolicited messages per month from people looking to hire. This has been going since my second week on the job.

Might there be less C# jobs than JAVA jobs in the market? Sure. Will you struggle to find work as a C# developer? I seriously doubt it.

Collapse
 
bgadrian profile image
Adrian B.G.

Sure, but in a small city, less could means there are only 3 jobs compared with 30 in Java, and that could be a struggle.
Less in a small industry could be the same.

Anyway, learning a strong type language like C# is a strong addition in any developer arsenal.

Thread Thread
 
kungtotte profile image
Thomas Landin

I think different stacks have different popularity by region. Here in Stockholm (and Sweden in general) nearly every job listing is for either a JS full stack type position or C#/.NET. Java is way less popular here. So OP should definitely check their local listings first.

Collapse
 
jfrankcarr profile image
Frank Carr

It depends a lot on where you want to work. I'm mainly talking about the US job market here.

If you want to work on the cutting edge, work for the 'cool' tech companies and so forth, you won't find much so far as Microsoft goes.

However, if you want to work within the much larger corporate IT world, then the Microsoft stack is a lot more common than anything else else. There are a huge number of in-house legacy applications that businesses depend on daily.

For example, where I work, a 20 year old VB6 app that's been patched and enhanced nearly to death is what keeps products going out the door. There is also a patchwork of C# .NET apps, desktop and web, running. Keeping them running is more important than replacing them. This means that the service API replacement project moves along very slowly. About 3/4 of our sprint capacity is spent on supporting these legacy applications. Many companies are in this situation and this creates massive opportunities.

For someone of middle age and beyond, having this skill set is a significant hedge against the rampant ageism in tech. This would also apply to women and non-Asian minorities who also face significant discrimination in the 'cool' tech world. For people who work on offshore teams, knowing the Microsoft stack creates considerable opportunities when US companies can't find enough people to fill contract roles.

Collapse
 
kspeakman profile image
Kasey Speakman

The main reason I stay on the Microsoft stack is F#, and I highly recommend it. There's not another functional language I can point to that strikes as even of a balance as F#. The performance of Kestrel doesn't hurt either. Visual Studio is a great IDE. Otherwise, I'm not a fan of their UI stacks like MVC, WebForms, WinForms, WPF, etc.

Collapse
 
imetzach profile image
Zach

I wouldn't write them off. Azure is the second leading cloud provider, behind AWS and as such, many enterprises are using it. For example I currently work at IBM and we use Active Directory in Azure for auth as well as we use Azure for provisioning user workstations. Before IBM I was at Verizon and they used AD as well as ASP a lot for internal sites.

Collapse
 
vguarnaccia profile image
Vincent Guarnaccia

I have very narrow experience as I've only worked in financial services but your standard commercial bank is heavily invested in the Microsoft stack, specifically C# + SQL Server since we're so dependent on Excel and Outlook. Type C# in glassdoor and you'll be amazed by the diversity of open positions. After speaking with some friends, it appears that most non-software companies depend heavily on the MS stack as well.

I'd say that if you want to cast a wide net in the job market, Microsoft products are still a great thing to have on your resume.

Collapse
 
shaijut profile image
Shaiju T • Edited

.NET - your platform for building anything.

That's the tagline of Microsoft. With the launch of .NET 5.0 now its more cool platform to build anything with one language C#, in some area .Net Core is more faster than Node JS and Java. You can watch below Video to know about latest improvements and future plans : youtube.com/watch?v=mS6ykjdOVRg

Offcourse Java also has more Job opportunities. So anyone new to programming can learn C# or Java as mostly they are same in terms of syntax, and then in between you can switch between two as required in your career.

Why C# ?

Personally, C# is more maintainable and has more tooling support with VS Studio and VS Studio Code which makes developers life easier.

Any programming language can dominate the future, So always have mind to learn different tech stack. Finally always use the right tool for the Job.

Collapse
 
qm3ster profile image
Mihail Malo

F# πŸ‘

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.