I started as the analyst, talking to the client and jotting down requirements and all that jazz. Ended as the sole developer of the project.
The schedule is OK, but not OK for someone that don’t know nothing about how to develop a WPF application, IMHO.
What can I do about it, tell program manager that she made a huge mistake by choosing someone with no skills(she had no choice, I was the only one not allocated), or slit my wrists? Do I have other choices?
P.S.: Really trying to learn it, can’t get how to structure the project MVVM, IoC, Logging. The concept count is too damn high.
1
I’d start with the basics first and add the design patterns and AOP concerns once those are nailed down. Trying to learn all of that in one shot is just going to confuse you, as you seem to be aware.
I would suggest that you talk to the PM not in terms of “I can’t do it”, but rather in terms of “this is going to be a relatively simple implementation”. I’m not sure where the MVVM/Logging/etc requirements are coming from, but I’d fix those if I were you as being unfeasible, given your skill set with the framework.
The main thing is to manage expectations. The app will have to be relatively simple and it might not be the most maintainable thing in the world since this is your first crack at it.
Edit to clarify about MVVM: My intent here was to suggest that MVVM is not a specific requirement of WPF projects rather than to question its validity as a pattern or its usefulness. Similar concept of the AOP techniques as well.
7
Yeah, you’re in for a lot of fun. Look, here’s some advice… MVVM is great if you want to unit-test your ViewModels. Are you going to do that? (Are you doing any unit testing at all?)
The WinForms approach would be to have a Model, a View (the form) and then when you load a form, you pass the Model to something that loads data into the form (controller?). At the end of editing you have something that validates the data, and if it’s good, it applies the changes from the form back to the Model. You know what, you can do that with WPF too, and it would actually be just fine if that’s what you’re familiar with.
Definitely use IoC for your model and services, but that doesn’t mean you have to use a full-on dependency injection framework.
If you did that, followed the principles of Separation of Concerns, DRY, SOLID, etc., then I wouldn’t have any problem picking up your project and making changes to it. Focus on fulfilling the project objectives and doing everything in a straightforward way.
Stack Overflow, online MSDN resources and the like will be your friend. Work through some of the simple example projects, modify them and ask questions. Most of the time you’ll find your question has already been asked and answered.
Also, if there is someone else in your organization who knows WPF, see if they can help you. It may be a quick mentoring session or a short term pair programming with them helping you by looking over your shoulder. This option will, of course, depend on their availability.
As for dealing with the program manager, tell her that you’ll need a little extra time to get up to speed on WPF built into the schedule. I’d guess that you aren’t expected to know WPF right now so this should be acceptable. Most companies prefer their employees to learn new things since it can be leveraged in future projects.
6
In short, try not to re-invent the wheel.
Look at best practices on WPF development. Open source projects and sample MSDN labs are good start points. For example: – WPF documentation samples.