This is probably one of the vaguest questions in the .NET forum. However, with most of the attention being focused on the Web, hell, even Microsoft is porting Office to the web, what is the future of Windows Forms?
The reason I ask is, I don’t want to spend months learning and building WinForms apps, when most employers will focus much of their attention and resources to the Web, and not Desktop.
In the corporate world, there are bazillions (at least!) of WinForms apps that will likely have to be nursed indefinitely. Most are poorly written. WinForms isn’t going away.
That said, if you’re like me, and like to play with the new hotness, WPF is certainly a better client platform, and I would argue that Silverlight is even better because it works on a Mac, is easily ported to Windows Phone 7 (coming out around the holidays) and its deployment method is a hundred times easier to manage.
A lot of people strongly feel that a pure HTML/sciprt implementation is the only right thing to do, but it’s not a religion. Even with the miracle that is jQuery, script is still hard to manage and test. That’s why I like managed code and the many unit testing frameworks out there. Besides, there are things that compiled client code (Silverlight, Flash, etc.) can do that script can’t. Don’t let the loud advocates tell you otherwise. In Silverlight, for example, you have access to the entire System.Net namespace where you can molest data to and from a server somewhere at the byte level. That’s pretty powerful stuff.
But remeber, JavaScript is a notoriously loose language that tolerates many minor typos and mistakes. Catching these mistakes and removing them is a tedious process. Even worse, the mistakes might be fatal on some browsers and harmless in others, which complicates debugging. - MATTHEW MACDONALD
Thanks for the insite man. Yeah, I actually like the front-end as much as the server-side. I’m in the minority nowadays, but as they say, knowledge of all, master of none. I kind of had a change of heart lately, pissing and moaning about keeping up with technology trends, but after being away for 2 weeks I missed it.
Anyways, I plan on learning jQuery and the book you reccomended looks promising and has rave reviews on Amazon. But, first I will need a good foundation in JS. The last book I bought was back in '06. Do you have any reccomendation for a pure JS book? I’m more of an Intermediate user if that helps. It’s great to have the basic knowledge so you can use jQuery and extend it.
I know what you mean, I’m in a similar position because I’ve generally worked on sites solo, so I pretty much had to figure out what I’m doing across the board. I will sometimes get frustrated with new technologies, but generally because I can’t see that they offer a solution for a problem I’m having. Like Web server controls, OK if I knew absolutely nothing about XHTML, that would be cool. The problem is I do know XHTML, I can code clean, usable, accessible, section 508 compliant websites in raw XHTML which you can’t do with web server controls because, while they eliminate the need to write much code, they eliminate your ability to do what you need to do to meet specs. I’ve generally had to write my own XHTML builders as part of my UI layer.
For more than a year, I’ve been waffling back and forth on whether jQuery was in this category, but the sample chapters of the new Sitepoint book convinced me it was a good thing.
Absolutely. I totally understand. One of the things that I like about jQuery is that it offers you cool functions that short-cut a lot of JS you would otherwise write yourself, but doesn’t stop you from doing things the old fashioned way if you need to.
It sounds like we’ve had similar experiences. I’ve had trouble finding good JS books I like in that area. I think all three of Sitepoint’s JS books are excellent. Simply Javascript is written for beginner’s so that’s not exactly what you’re asking for. On the other hand, my JS education involved starting with basic online tutorials, then reading Simply Javascript, and finally diving into OOP with the two books I mentioned previously. So obviously you can get by on it.
The Art and Science of Javascript is one I’ve only browsed the sample chapters for, though it is on my wishlist. It looks like an excellent Intermediate / Advanced JS book, but it is an anthology so it’s not designed for consistency, its a collection of unrelated essays, albeit on very cool topics in JS.
There are a lot of other JS books out there, I believe O’Reilly’s massive Javascript is sort of the Bible, but I haven’t really liked any of them. Very dry, lots of nitpicky details, but virtually nothing about “here’s what it can do and here’s how you ought to use it”. Again, one of the reasons, I like the Sitepoint books, because they’re a little more aggressive about making recommendations for how to program. I’ve found books in other areas (Wrox books on .NET, Dave Shea on CSS), but for Javascript, I’ve found the cupboard pretty bare, too.
My only comment would be, absolutely. Play to your strengths and your interests. Sounds like you’d be working front end .NET then. Anything you can do to strengthen your XHTML, CSS, Javascript will pay off beaucoup. I just got the new Sitepoint book on jQuery which is an excellent Intermediate/Advanced Javascript book on how to really do production quality JS.
Then look for stuff on C# development, especially anything with good OOP development skills. (That’s quite a trick actually, a lot of stuff gets way too bogged down in BCL classes and how to do attribute /component programming with them, which is way too limiting IMO) Sitepoint has one book out on serious .NET which is not bad, and another that’s an Anthology which is better but (as you’d expect) kinda all over the place. The two books I’ve liked best are Wrox titles, .NET Generics 2.0 by Todd Golding, and Professional Search Engine Optimization with ASP.NET by Christian Darie. Those are the best titles I know that talk about best practices specifically in the context of .NET. However, I’d also recommend a really good programming practices book like Steve McConnell’s Code Complete 2 and / or Eric and Elisabeth Freeman’s Head First: Design Patterns. These are probably the two highest priorities IMO, I LOVE them and keep referring back to them. They’re the two most important programming books on my quick reference shelf. Along with stuff like The Zen of CSS Design, but that’s another story.
Don’t know much about Silverlight but I know that’d be a great keyword to Google. There are even a number of Silverlight books out there, I’m sure Amazon would have half a dozen or more.
Agreed, WPF is sort of the new starting point for win form development, IMO.
The other thing you’ll see if you get into it more is that there is less and less difference between win and web forms. Web forms can be completely used in network client server environments and if you start storing files locally, in what sense have you not crossed border into winform’s territory. Similarly, you can call external resources off the web from databases, to web services, etc. you can even drop a “browser” control onto your win form at which point are you really building a win app anymore?
So just remember that the dividing line is heavily blurred and there’s a lot of duplicated functionality because they operate out of completely different namespaces (System vs. System.Web).
I would recommend that you pick one direction of primary interest because .NET is so huge and so complicated. Each particular object makes its own kind of sense, but that doesn’t help you when you find yourself working with a set of objects that you haven’t seen in awhile. It makes it challenging to write code, and a near nightmare to do system design if you don’t really remember what the various pieces do and what the best practices are.
Well, that is a tough question to answer. WinForms will never go anywhere in my opinion. Although I would rather use WPF. Yes, more and more is moving to online, but software on your PC is just so much more powerfull. And what happens if some1 does not always have a internet connection, or like places like South Africa with slow internet.
So, i would think it will not be a bad idea for you to learn it, but go wpf instead. It is a bit more advanced
Thanks NightStalker and Chroniclemaster1 for your replys. I agree with both anwsers. WPF foundation looks better, after a brief search and finding out what WPF is all about. So, if I go the Desktop route, I will go with WPF. It’s still a baby, like MVC, so it will only get better with age.
I also agree with you Chroniclemaster1, .NET is far to vast to focus on EVERY technology in the framework. Not enough time to study and make $$$ at the same time. Defently something I have to brainstorm about, but I am leaning toward the SilverLight/ASP.NET route, only because I am fond of CSS, JS, and the Web in general.