this post was submitted on
14 points (79% like it)
19 up votes 5 down votes
all 10 comments

[–]maskaler 12 points13 points ago

Personally I would look at MVC.Net and start learning the web stack and understanding how that hangs together.

Alternatively, take a look at WPF and try converting one of your Winforms apps into a WPF app. You know the domain, so it will be about learning WPF and little else. Try coding it using modern, up-to-date patterns (I'm thinking MVVM here) and see how you get on.

[–]firepacket 7 points8 points ago

If you want to make a game, I've had a very good experience with XNA (Microsoft .NET framework for gaming). You can write hardware accelerated 2D & 3D games that play on the XBox and the PC.

It's fun, intuitive, and powerful!

[–]vodkamartini 3 points4 points ago

I used to be a windows-forms exclusive developer until I started looking for a new job and saw that there are very few jobs like that. Most are ASP.NET (and a LOT are MVC). I learned webforms (easy, easy transition - designed to be very similar to winforms) and my new job gave me some time to learn MVC which really isn't too bad.

Also, if you want to try a game out take a look at the XNA framework. It's very nice and easy to use, and there are a ton of great examples for it.

[–]dominicshaw 2 points3 points ago

Agreed with the two posters - professionally, you pretty much have to chose between MVC and WPF (or both) if you are going to do anything with an interface. WinForms is becoming more and more obsolete and plain old ASP.NET is going the same way.

MVVM ftw.

[–]sengoku 2 points3 points ago

I agree with the other comments here that you should consider looking at WPF (for desktop apps) or MVC (for web apps). However, those frameworks are a little daunting to just jump into. It's best to get a decent grasp on OO development before you take that step.

WinFoms is a quick and easy way to learn some of the basics. Even after all this time, I still find myself falling back on whipping up a quick WinForms all to work out some kinks in a code block, or just to do a little performance testing.

If you wanted to work on a little game, XNA is a good framework to look at, but again you can work through the fundamentals of game development in a WinForms app. In this case you want to use this as a way to 1) figure out what the basic moving parts of a game are, and 2) learn OO programming concepts. You need to be aware of which pieces you are building are independent of the presentation layer (WinForms); those code blocks are what you would be able to take with you when you then move to a more robust framework like XNA.

Source: I'm a developer, C++ (20 years), C# (10 years).

[–]cbann 3 points4 points ago

Move from Forms to WPF and from WPF to silverlight (an asynchronous version of WPF that's closer to the XAML Windows 8 will use); then you'll be ready to start writing casual games for Windows 8.

[–]xTRUMANx 2 points3 points ago

an asynchronous version of WPF

I always thought of Silverlight as a lightweight version of WPF that can run on the browser.

Any reason why the asynchrony found in Silverlight can't be done in WPF especially with the Tasks in .net 4 and the new async language features coming in .net 4.5?

[–]cbann 2 points3 points ago

Silverlight is the closest current technology to the future of .NET+XAML. The WinRT version of .NET is very similar to Silverlight's, as is its XAML. Also, both Silverlight and WinRT require asynchronous server access.

There's no reason you can't write in WPF and limit yourself to the parts of .NET+XAML implemented in Silverlight/WinRT. There's also no reason you can't limit yourself to asynchronous server interaction in WPF. If you do so, you should have an easy time porting to WinRT. If you use Silverlight, you've avoided these pitfills because you had no choice, and porting to WinRT will certainly be easy.

Silverlight started out as a featherweight version of .NET+XAML for the web browser. It has since added most of the missing features and moved out of browser. Recently, it's been leveraged as the development platform for apps for both Windows Phone and the XBOX 360. What we're seeing is that the various .NET+XAML technologies are converging and unifying in Windows 8. The monikers "Silverlight" and "WPF" will fade in the next few years as will Silverlight's use as a web browser plugin, but they're really just evolving and merging. WPF and its "full" .NET will still be available in Windows 8. However, the new WinRT platform of Windows 8 is clearly where things are headed. I expect XBOX, Windows Phone, and Windows 8 tablets/laptops/desktops will unify around WinRT or its successor. And we can hope that Mono and Moonlight will catch up on android... Nobody likes writing different code for multiple platforms...

[–]FarhanWaldo 0 points1 point ago

You should learn about data structures if you want to progress any further.