Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
182 views
in Technique[技术] by (71.8m points)

wpf - Mvvm Applications And location of Business layer

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...