Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

If I learn to build web applications with the .NET stack in C#, say MVC, entity framework, linq, etc., will that be of any benefit to me in developing native Windows program executables?

I see benefits for using Visual Studio, the language, such as C#, just general experience in programming. But I don't know if there is any direct relationship between asp.net and native programming.

share|improve this question

3 Answers 3

up vote 4 down vote accepted

Yes, what you would be missing would be interface programming for thick clients -- WinForms or WPF. However, this would give you enough experience to do Console, Windows Services, and WCF Services -- which covers a lot of ground. IMHO, while you'll have to learn some more obviously to do UI with those thick clients -- working with the web is somewhat trickier to master due to it's nature (inherent statelessness, scalability, limited resources).

If I were you, I would learn as much as I could about C# (see CLR Via C#), Entity Framework, MVC, Linq, and WCF ( and/or the new WebAPI Framework). If you focus on those technologies you'll have no trouble adapting to thick clients if and when you need to code one.

share|improve this answer

I assume that be "Native programming" and "native Windows program executables", you mean developing Windows Desktop applications, using WinForms or WPF (neither of which are particularly "native", but nevermind).

The answer, in that case, is a definite yes. While the particular framworks you use changes, the language remains the same, general patterns like MVC remain useful, and infrastructure like Entity Framework can still be used, and tools like the debugger and IDE stay the same.

ASP.NET, specifically, was designed to give you a development experience similar to developing WinForms, but I probably wouldn't recommend it. Web is web, and desktop is desktop.

So go forth and code your ASP.NET, and don't worry about over-focusing.

share|improve this answer
3  
First thing that comes to mind for me as someone who has done both; I had to learn a lot more about concurrency and working in a multi-threaded environment in ASP.Net which when I wrote desktop app code helped me avoid an entire category of bugs that desktop developers are often guilty of –  Jimmy Hoffa Aug 26 '13 at 1:47
1  
@JimmyHoffa: No kidding. Isn't that a bit like learning how to jump rope with a whip, though? –  Robert Harvey Aug 26 '13 at 2:14
    
@RobertHarvey: Nothing like jumping in at the deep end :-) –  Marjan Venema Aug 26 '13 at 6:48

This is definitely a question that could stir up some strong debates lol. While trying to be unbiased, I would have to say it will help a bit, but not a lot.

While learning ASP.NET in c# would get you some familiarity with both the c# language and the .NET framework, the programming models between WinForms/WPF and ASP.NET are very different. There are similarities, but the very nature of web vs. desktop are so very different.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.