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.

closed as not constructive by Robert Harvey, ChrisF Oct 30 '12 at 20:46

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.


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.

  • 2
    The MVVM requirement is coming from being the standard approach to WPF. Not using MVVM with WPF would be like using ASP.NET MVC framework and not using MVC; you're then just using ASP.NET Webpages basically. Not saying MVVM is necessary; just saying why MVVM is being pressed most likely. – Jimmy Hoffa Oct 30 '12 at 19:27
  • Yeah, I'd imagine that requirement comes from googling and seeing blog posts and whatnot saying that code behind is not for REAL WPF programmers. I just want to make clear that MVVM is not actually a requirement (though it is how I personally architect apps using WPF for the presentation layer). – Erik Dietrich Oct 30 '12 at 19:32
  • I gotcha, very valid point considering his situation but maybe you could rephrase the statement "I'm not sure where the MVVM...requirements are coming from" to something like "MVVM is not a necessity of WPF apps", the way it's currently written makes you sound unaware of MVVM. – Jimmy Hoffa Oct 30 '12 at 19:33
  • I see as JimmyHoffa put it, but I do get your point. As I am used to IoC and everything in other projects I ended taking it as the right thing to do. I'll drop full MVVM/Logging/IoC and just make it work. Bottomline is, I don't think they really care how I'll do it. – Tulio F. Oct 30 '12 at 19:34
  • 3
    It makes your code testable and ultimately easier to maintain but MVVM certainly doesn't make things easier for WPF newbies in the short term. – Erik Dietrich Oct 30 '12 at 19:45

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.

  • SO is not really suited to learning a technology from scratch, and the MSDN documentation is not always ideal from a conceptual standpoint. – Robert Harvey Oct 30 '12 at 20:29
  • 1
    @RobertHarvey - Thanks for the reminder about why people are leaving this site. – jfrankcarr Oct 30 '12 at 21:18
  • Just tellin' it like it is. SO is great for what it is, but it's not the be-all end-all. No site is, not even Wikipedia. MSDN makes a good reference, but it's difficult to get a high-level conceptual view from it. You're better off listening to podcasts like HanselMinutes if you need a high-level view. – Robert Harvey Oct 30 '12 at 21:21
  • @RobertHarvey I don't think he's suggesting you use SO or MSDN as a tutorial, but more like a mentor. "Work through some of the simple example projects, modify them and ask questions." I think that's good advice to give, along with making sure your manager builds extra time into your schedule for learning. – Rachel Oct 30 '12 at 21:25
  • @Rachel: Not for learning a technology from scratch. Asking questions on SO implies a certain level of background knowledge. Your suggestion about reading your blog posts (first) is a better one. – Robert Harvey Oct 30 '12 at 21:27

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.

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