开发者

Programming Silverlight/WPF with Windows Forms skills

To what extent can one program Silverlight/WPF with Windows Forms skills?

To what extent is it OK to developer internal applications in a style similar to Windows Forms?


The background for my question is that I apply for positions where Silverlight is required, and I try to argue that my Windows Forms experience should be sufficient for internal applications.

I am aware that Silverlight/WPF offers a lot more, but mostly for "fancy" stuff in a web like manner开发者_Go百科, and also the possibility of higher SoC through th MVVM pattern.


Yes, you can definitely start working on WPF/SL and your WinForms experience would be helpful but I won't agree that it would be sufficient.

Interestingly most of the developers working in WPF currently are basically from WinForms background(as per my experience) and most of them believe that WPF is not very different from WinForms and they try to develop the WPF application applying same problem solving techniques, concepts and methodologies; this is where all the problems starts.

I would suggest you to first go through a WPF/SL book(at least first half) and then while you work on WPF/SL application try and use the new concepts(XAML, Binding, Commands, DependencyProperty, Styles, Triggers etc.) to solve every problem you come across(even if you can solve/implement it in old way easily).

Some may not agree with this but I have seen my friends implementing almost everything (in WPF) in WinForms way and later complaining about memory leaks, performance etc.


If I were staffing a project and someone argued to me that he'd make a good WPF developer because he has extensive WinForms experience, the odds that he'd get a call back are low. Especially if he said something about how what WPF offers is "mostly for 'fancy' stuff in a web-like manner."

What that tells me is, "I've read this technology you're using and have no experience with it, but that's no obstacle to my having formed opinions about it that you're going to have to change."


I'd say that if you have extensive WinForms experience you should be able to move to SL/WPF fairly easily; although, I wouldn't say you'd be currently capable of developing SL/WPF applications without at least a basic understanding of XAML, Dependency Properties, and other particularities of those platforms.

I'd recommend you to take a look at Pete Brown's post "10 things Beginning Silverlight and WPF Developers Need to Know" for some ideas of where to start. I'd also recommend his book, Silverlight 4 in Action, to actually build these skills from the ground up.


I'd say that there is a great difference between developing applications independently and working as part of a team that is all familiar with Silverlight/WPF. It's quite true that you can design a UI with drag and drop, assign properties with the visual designer, and then write all the code behind you need in a XAML based framework and barely notice a difference between it and the Winforms experience you're used to. What would undoubtedly be different would be the process of working with other people who are familiar with all of the concepts and patterns that have become standard in the WPF/Silverlight world: Binding, Commands, Styles, Dependency Properties, etc. If your work needs to integrate with theirs, you'll have a problem if you ignore the differences in the two platforms.

Which doesn't mean that Winforms experience is useless. All of the logic is still there, all of the same server side code still needs to be written and there's probably half a dozen other places where the kind of UI you're working with doesn't matter in the least. And probably the best way to learn about Silverlight or WPF is to have a real project to work with where you can ease into making some of the new ideas work with some of the same logic that you're used to.

A lot of the question comes down to the quality of the programmer, regardless of the experience you've had. Of course if I wanted someone to maintain an existing WPF app, I'd want a programmer with that kind of experience, but I'd happily take someone who wrote good Winforms code and was willing to learn a new paradigm if I was looking to develop new applications or putting an entirely new team together.

It would be a mistake to think that Winforms experience is 'good enough' in most cases where a Silverlight/WPF programmer is called for, in the same way that C++ experience is not 'good enough' if I need an experienced C# programmer. There are enough differences conceptually that you'd need to show at least a willingness to make the paradigm shift and probably some familiarity with the concepts that are core to the new technology. That said, good code is good code and I don't think anyone should be dismissed for lack of experience with a particular technology alone.


Inevitably your first wpf application will be like a winforms application. As far as I am concerned it is okay to do this. But there are people out there that would kill you if they found you made a 30 dialog application without using MVVM :)
In any case ... you have your first WPF project to get done...you will probably end up going coding like its winforms (code behind heavy).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜