Chapter 26. Using Entities in Layered Client-Side Applications

In previous chapters, you have built client applications whose controls were bound directly to EntityObjects managed by an ObjectContext, an approach favored in Rapid Application Design (RAD). While this may be a reasonable approach for small applications, when it’s time to architect enterprise applications this tightly bound design falls apart fairly quickly.

When you build large applications, it is prudent to separate your logic so that the UI is responsible for UI tasks (e.g., responding to user actions), business logic is handled by business classes, and data access is handled by classes designed specifically for data access.

A client-side application such as Windows Forms or WPF does come with the benefit of letting you use a long-running context to manage the entities while the user is working on them. This is different from disconnected client applications that consume services, whether that it a Silverlight application or even a disconnected Windows Forms or WPF application. The client-side applications this chapter focuses on are those which are not running in a disconnected environment.

In Chapter 24, you learned how to create persistent ignorant entities and use a repository to allow the UI to be completely ignorant of the Entity Framework. You could certainly use these repositories in client applications, but in this chapter I won’t be concerned with keeping Entity Framework out of the client. Instead, we’ll ...

Get Programming Entity Framework, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.