Mvvm Applications And location of Business layer

2019-09-19 08:39发布

问题:

I want use MVVM design pattern in WPF and Silverlight Application.
Where can i implement the business logic in WPF or Silverlight application with MVVM design pattern?!!(in Model,ViewModel or other location?!!)

Please describe and link to any sample(s) ...
thank you

回答1:

Your business has no place within the MVVM application. You business should be factored out into a separate class library. This has many benefits which I could explain in case you want me to.

So anyway, here's how your solution's structure should look like:

  • [Project].Shared: Service Contracts and Object Model
  • [Project].Data: Interfaces of your data access layer.
  • [Project].Data.Sql: SQL implementation of your data access layer. If you are using Oracle, that would be [Project].Data.Oracle. Catch the drift?
  • [Project].API: Business managers. ALL of your application's business should be encapsulated and isolated in this layer.
  • [Project].Services: Service implementations.
  • [Project].UI.MainApplication: Your WPF main application.
  • [Project].UI.Shared: Has all what is common among all of your WPF client applications. Moreover, you should add the Object Model classes and Service Contract interfaces as links into this project.
  • [Project].UI.[OtherApp]: In case you want to separate your UI into modules (I strongly recommend that).

Basically, the "M" in MVVM will be the Object Model itself, unless a View needs some model which comprises properties from different objects... etc.



回答2:

We usually write logic centered on the business objects in ModelView layer and logic required by the wpf pages in the ViewModel