2008-10-11 2 views
5

So werden wir eine Anwendung mit einemeine entkoppelte N-Tier App Mit Entity Framework Aufbau und VB.NET

Aufbau
  • UI Layer (Web, Mobile, Ajax-Client, etc.)
  • Service/API-Schicht
  • Business Logic Layer-
  • Data Access Layer

Unser Ziel ist es, eine Entity Framework Abhängigkeit vom Service Layer auf bis auf die DAL zu haben. Das bedeutet, dass der Service-Layer nur POCOs (einfache alte CLR-Objekte) akzeptiert und zurückgibt.

Wir kodieren derzeit manuell eine Zuordnungsebene zwischen der Dienstebene und der Geschäftslogikebene, die POCOs in EF-Entitäten umwandeln und umgekehrt.

Also kurz gesagt, Seite hat Formular, Formular hat Codebehind, das Form Inhalt nimmt, stopft sie in ein POCO, sendet es an Service-Layer. Die Service-Schicht wird in EF Entity konvertiert, an Business Logic Layer gesendet, die bestimmte Transformationen an die Entität durchführt, und interagiert dann mit der DAL, um sie dauerhaft zu erhalten.

Ja, es ist ein bisschen langweilig, aber wir haben uns gefragt, ob es einen besseren Weg gibt?

Ja, ich weiß, jemand veröffentlichte einen EF Poco Adapter, aber es ist alles in C# und wir würden eine VB.NET-Lösung bevorzugen.

Ja, Der Wechsel zu NHibernate ist eine Option des letzten Ausweges, da wir bereits tief in unserem Entwicklungszyklus sind.

Antwort

2

Sie sollten Geschäftslogik auf POCOs durchführen. Der gesamte Zweck von ORM ist, dass es ein Implementierungsdetail ist. Die Geschäftslogik sollte im Domänenmodell und in den Domänendiensten implementiert werden. In einer Geschäftsanwendung bedeutet "Domäne" "Geschäft". Die DAL sollte da sein, um ein POCO zu machen und es bestehen zu lassen - in Ihrem Fall bedeutet dies, es einer EF-Entität zuzuordnen und dort festzuhalten.

Das ist das theoretische/NHibernate-Modell jedenfalls.