I've been reading and watching videos on MVVM and Silverlight.. I'm pretty new to Silverlight but not new to .NET. Interesting that I used MVVM in my WPF apps without knowing that it's MVVM. I was creating easily-bindable classes to serve as a layer between data and XAML :)
Project that we start will be done with Silverlight 5 and WCF on a back end.
Project will be rather large with several modules 50 or screens each, ideally I would like to load them on demand. MOST(not all) UI will be straight-forward data entry stuff.
I'm trying to see what should be our architecture and how will it benefit us in future.
I think I GOT IT as far as what MVVM and WHY. I also checked Caliburn Micro (and understood what it does). I see ReactiveUI and MVVMLight. To be honest I don't like external libraries/dependencies. Also, I don't really care about using naming conventions to satisfly external framework and perfectly OK with binding in XAML. Since we have good commands support and XAML debugging in SL5 - I don't think I need external framework.
So, I think having ViewModels and binding via XAML with minimal view-related code in code-behind will be perfectly fine with me.
Here is my dilemma:
- If I use RIA services. 80% of my UI will bind perfectly to RIA generated stuff with some converters of course. Will it be bad architecture to have everything bind directly and just some more complex views to use ModelView?
- Should I use RIA services?! I think YES. I'm all for generated code especially when it's plain data-entry stuff. Will it keep client code synced with server-side?
- From what I see - ModelView have to be manually coded. Am I correct? Again, for 80% of project that's probably going to be waste of effort.
- If I want to have multiple xap files that load on demand, should I use some kind of framework? I think keeping it in one file may get too big.