Silverlight Project (Using MEF, Separation of Concerns, Loosely Coupled Components, Service Locator pattern)

VS2010
Silverlight Business Application

Right click project>Add New Solution folder (sf)
Use these folders to separate Assemblies, Client and Service sections

*Client*(sf) contains
-Client(f) (References to all Client projects)
~App.xaml initializes IoC and checks silverlight installation (plus has
source for extending view xaml)
~Web service references created in the Service Section
(ServiceReferences.ClientConfig)
-Data(f) (References to none)
~Objects
-Common(f) (References to Data)
~Views(f) Interfaces (used to bridge to View project)
~Models(f) Interfaces (used to bridge to Model project)
~ViewModels(f) Interfaces (used to bridge to ViewModel project)

~RelayCommand class (xaml buttons bind to these)
~IoC class
~WebContext class

-View(f) (References to Common, Control, Data)
~XAML
~Load into IoC (Uses MEF to load the ViewModel)

-ViewModel(f) (References to Common, Data)
~Observable(f) (Objects used in the View)
~Wires up RelayCommand
~Instantiates objects that do the heavy lifting

-Model(f) (References to Common, Data)
~Web service references created in the Service Section
(ServiceReferences.ClientConfig)
~BaseModel.cs with MEF Export

-Controls(f) (References to Common, Data)
~Menu(f)
~Basically XAML helpers

*Server*(sf)
-Web(f) (References to Calculate, ServiceProviderWeb, ServiceData)
~Service.svc (cs files) that define what methods are exposed through a
contract
~aspx

-ServiceProviderWeb(f) (References to ServiceData)
~References to external services
~Loads the objects from the database with stored procedures

-ServiceData(f) (References to none)
~ Links to classes (objects) in Client Data
~Interfaces to use with ServiceProviderWeb
~Database Utilities class

-Calculate(f) (References to ServiceData)
~Web references to other services used
 

What did you think of this article?




Trackbacks
  • No trackbacks exist for this post.
Comments
  • No comments exist for this post.
Leave a comment

Submitted comments are subject to moderation before being displayed.

 Name

 Email (will not be published)

 Website

Your comment is 0 characters limited to 3000 characters.