Which c# component to learn for better job prospect?

Jason Phang

Well-known member
Joined
Aug 13, 2019
Messages
46
Programming Experience
Beginner
I am fairly interested in which c# component to learn first. By job prospect, i just mean like the market demand overall or what is the in trend now? I am quite torn between learning asp,net first or xamarin. This is for like my own personal self and also for the future job market maybe like freelance. So what kind of c# components or applications that would be great to learn at a begineer level first?
 
I would expect that ASP.NET would generally more in demand. If you're specifically interested in mobile and cross-platform then look into Xamarin but if you just want a job writing C# code, ASP.NET is what you want.
 
With asp.net, we are able to write web applications, yes? Meaning that c# will be used for backend also? Or i am wrong?
 
And if believe in Blazor, C# it can also be used on the client side as well.
 
I'm just unsure what to start learning first. Like MVC , .net, azure with c#, xamarin. I am not sure what the market is like because after researching, it seems like c# is pretty decent. It just the niche I'm trying to find.
 
With asp.net, we are able to write web applications, yes? Meaning that c# will be used for backend also? Or i am wrong?
Simple answer. Yes.

Most people today who make phone apps, or even desktop apps, are building the actual application off of a website project. So the website language does not necessarily have to be Asp/c#. You could make your website application in php/xhp/cf/etc and simply use a wrapper to put your website project inside of a c# mobile application. Does that make sense?

Take for example; the new and famous chat app Discord. Discord is not really a desktop application or mobile application, because all it really is; is a wrapper around a website project, just like the one you would make in Asp.net/php etc. So to answer your initial first post. Most developers are in-demand on the web-app side of the market than desktop/phone apps side of the market, and that's mostly because it doesn't take to much work to build a wrapper around a website, but it does take more work to build a website with an interfaceable API.

Plus, its also safer to construct applications in this way and interface your wrapper with your websites API which is essentially what Discord did. And most modern applications are being made the same way. I've been building an application for the last five years and it uses the same ideology as I've just explained.
 
And if believe in Blazor, C# it can also be used on the client side as well.
Blazer is still fairly new if I'm not mistaken, yes? Like around since August this year? Would it be suitable for beginners to learn staraight away? The lack of documentation and resources is one that hinders me from learning a new tool because it's quite painful to be searching and yielding no results. But is blazer already solid in terms of documentation and support?
 
Simple answer. Yes.

Most people today who make phone apps, or even desktop apps, are building the actual application off of a website project. So the website language does not necessarily have to be Asp/c#. You could make your website application in php/xhp/cf/etc and simply use a wrapper to put your website project inside of a c# mobile application. Does that make sense?

Take for example; the new and famous chat app Discord. Discord is not really a desktop application or mobile application, because all it really is; is a wrapper around a website project, just like the one you would make in Asp.net/php etc. So to answer your initial first post. Most developers are in-demand on the web-app side of the market than desktop/phone apps side of the market, and that's mostly because it doesn't take to much work to build a wrapper around a website, but it does take more work to build a website with an interfaceable API.

Plus, its also safer to construct applications in this way and interface your wrapper with your websites API which is essentially what Discord did. And most modern applications are being made the same way. I've been building an application for the last five years and it uses the same ideology as I've just explained.

So basically, you master the shell and you can build anything regardless of whether it is a mobile or desktop application? You said that it's mostly like a wrapper so correct me if I'm wrong. I can have a website that provides services for education and I just provide a wrapper for this website and can publish it in a web or mobile application? This wrapper would utilize what framework or in order to know this, what should I learn? Web APIs, .net framework, MVC or?
 
Previously Microsoft had declared that WinForms was only going to get security updates, but no new development effort was going to go into it. Even though they ported WinForms it into .NET Core, I recommend treating this as being on life support. I feel that MS was forced to do this because of how much of a foothold WinForms has in corporate in-house developed line-of-business software and is acknowledging how slow corporate IT departments are to change to newer and better technologies. As I mentioned in another thread, learn WPF or Xamarin. What you learn there will easily translate over to MVC or other modern frameworks -- not only C# based, but for other languages as well. To be able to do WinForms well, you need to be steeped in the lore of how the Win32 API works because 90% of WinForms is just a wrapper around the Win32 controls and APIs. WPF and Xamarin makes no such foundational knowledge a requirement.

To bring this back to the job perspective: if maintaining legacy code in a corporate environment is your cup of tea, by all means go into the WinForms niche, I'm quite sure that you'll find stable employment much like the niche COBOL and FORTRAN programmers.
 
Would wpf be more stable and secure than win forms then since win forms are quite old? I just googled for freelance wpf and I see that there are jobs for these with win forms still. But I believe it to be more rare compared to knowing asp.net perhaps?
 
Would it be suitable for beginners to learn staraight away? The lack of documentation and resources is one that hinders me from learning a new tool
There are tutorials out there. Many of them actually, and many topics on other forums which would help get you started if that was your preference, but I'd encourage you to do your own research and don't take the first recommendation thrown on your lap as the language to learn. Since you're only getting started, you should find languages you are comfortable writing and find languages that make you think logical about the code you write. That's why I have this line in my signature : "“A language that doesn't affect the way you think about programming is not worth knowing.”"
So basically, you master the shell and you can build anything regardless of whether it is a mobile or desktop application?
No, because they are different project types, and different targeted platforms.

Essentially in step one :
Companies build a website with an API in whatever language they know best or wish to utilise.

In step two :
They build a wrapper in c# or c++ which would wrap your website into your desktop or mobile app and present it as the main user interface. Either install Steam or Discord, and you can see what I am talking about when you compare what you see on their website, to their applications. Their Interfaces are practically the same minus some additional controls, views or menus. This is how modern applications are being built for mobile/desktop apps today, and because of the techniques being used by developers now-a-days, this puts a lot of the legwork into the web developers fields.
You said that it's mostly like a wrapper so correct me if I'm wrong.
No, they are not like wrappers, they are wrappers.
Is win forms still a thing nowadays ?
Very much so in the corporate field anyway. Sadly, the main reason for this is because developers are lazy in my opinion, and often fear migrations to newer technologies along with the will and responsibility to implement the required changes, and they sometimes argue that their current setups would be too complicated to upgrade. As I said, lazy developers... I suppose there are also the objectionable CEO's who also won't upgrade once coin is rolling in, and they're off the mindset, if its not broke, don't fix it.
Would wpf be more stable and secure than win forms then since win forms are quite old?
Obviously yes. It's the modern platform encouraged by Microsoft to use when constructing a modern UI.
 
I can have a website that provides services for education and I just provide a wrapper for this website and can publish it in a web or mobile application?
Hmm, you've gone from asking which one would be better to learn, and which makes more money, to ask how a wrapper works with a web view. I'm not sure your question was really implied, but I will answer it anyway.

You can publish your wrapper in a desktop or mobile application. Your website application is what gets wrapped in the wrapper. Your wrapper is either in your desktop or mobile app. Let me explain a little since you asked, but I won't go into all the details about how they do this without their webpages refreshing while navigating or populating depopulating certain controls on a page etc. That's a separate discussion in of itself. :)

On desktop apps, you would write a custom wrapper, or if you're lazy, you could use chromium/cefsharp browser control to project your website onto your desktop app. Your website would then be the main interface on your desktop application. (See note below about mobile versions.) You could have additional functionality, to interact with the browser control separately via a menu or buttons. (This is what Valve did with their store/UI) as did Discord with the exception of an additional views on the left pane to display your Discord server information and current friends. Big companies like those are leading by example. And that is why there is a lot more work in web-based programming as companies are building their infrastructures on web-based platforms and following suite. This is the modern concept I get asked to implement when doing freelance work. Although I do it a little differently admittedly, and I don't use cefcharp, but the example still applies.

Note : For mobile apps, you would use a webview as in Xamarin see xamarin/xamarin-forms-samples this would be the correct way to do it for android etc.

If you wanted to save yourself time, you could write a cross platform application which would compile to all platforms. But this along with wpf outlined by Skydiver has a bit of a learning curve, especially if you're coming from windows forms, you will soon see that a lot of the code functionality is not the same as traditional winforms.
 
Hmm, you've gone from asking which one would be better to learn, and which makes more money, to ask how a wrapper works with a web view. I'm not sure your question was really implied, but I will answer it anyway.
I know that my questions are constantly changing. It is just one lead to another. More money is not really the concern here. I am more concerned for the job market for freelance or like what is in demand in the market so that I will not learn something that is lacking or not widely in demand. I want to set like a learning path for myself. To be frank, I am not sure what i want to do. Sometimes, i feel like making web apps or mobile apps and sometimes i want to build desktop apps. But I want to be firm with what i want to start learning so that I will not derail from it.

Many of them actually, and many topics on other forums which would help get you started if that was your preference, but I'd encourage you to do your own research and don't take the first recommendation thrown on your lap as the language to learn
Yeah, exactly. Its just that when I try to google for "which c# component or framework would be good to start with", mixed opinions and each have their thoughts. Which is why I wanted to know from people who are already in the industry for some time. Like what would you expect a junior developer to know. I understand that it differs based on the company, geolocation, specs, etc.

I never knew about the wrapper prior to this. This is new information for me. Cross-platform seems to be the in demand things for mobile apps.
 
Back
Top Bottom