Data Access Layer (DAL) App Logic Database View Web Service App Logic App Logic Trust Boundary
AppLogicAppLogic Databases ADO.NET, ORMs (LTS, EF, …) CLR Lists/Objects Repository (nHibernate, …) Services REST/SOAP (Azure, …) XML, JSON, Binary.NET Clients Silverlight, WPF Standards Clients JavaScript Server Rendering HTML, SEO, Printing, … Services WCF Unit Test Code
Rich Internet Application DB ServicesServices Data Access Layer AppLogicAppLogic PresentationLogic Network DomainService Stateless CRUD + App Logic class PlateViewDomainService IQueryable Get Restaurants () IQueryable Search Restaurant (string) void Add Restaurant ( Restaurant ) Validation and authorization rules, Application workflows, … Data Model class Book DomainContext Stateful view + Bindable Data class PlateViewDomainService EntityList Books { get } EntityQuery Get Restaurant Query() EntityQuery Search Restaurant Query(string) class Restaurant Data members + Validation Data Model + Metadata + Shared Code DomainContextDataService Under the covers infrastructure
[EnableClientAccess] public class AuthenticationDomainService1 : AuthenticationBase {... } WebContext webContext = new WebContext(); webContext.Authentication = new FormsAuthentication(); //webContext.Authentication = new WindowsAuthentication(); this.ApplicationLifetimeObjects.Add(webContext);
foo1
IRevertibleChangeTracking HasChanges
Data Access Layer (DAL) App Logic Database View Web Service App Logic App Logic Trust Boundary
Do Don’t