O'Reilly logo

Programming Entity Framework, 2nd Edition by Julia Lerman

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required