2016-09-29 4 views
0

Wir schreiben unsere Web-Anwendungen um (mindestens 3) und vereinen unsere Datenbanken zu einer. Nun ist die Frage, ob wir Code zuerst oder Datenbank zuerst gehen. Wir werden mit MVC 5 und SQL 2014. Alle Vor- und Nachteile andere als nur die Präferenz wäre hoch geschätztCode First oder Database First

Danke

+0

Mögliches Duplikat [Code-zuerst vs Model/Database-first] (http://stackoverflow.com/questions/5446316/code-first-vs-model-database-first) – Nasreddine

+0

Welchen Rahmen verwenden Sie? – Dominik

+1

Ich fange immer mit der DB an. Sie können dann Ihren EF aus der DB als Code First erstellen, was ich persönlich bevorzuge. – juharr

Antwort

1

-Code-First bietet Ihnen die Möglichkeit reiche Domäne-Modell zu entwickeln, die nicht vollständig beeinflusst von der Datenbank und EF. Das ist der Hauptvorteil, mit Code zu beginnen.

Im allgemeinen ist es möglich, das Modell in bestehenden Datenbank zu passen. Das erfordert ein wenig Vorstellungskraft und Kompromisse hier und da.

Datenbank-First-Ansatz neigt dazu, zu viele Kompromisse zu machen, die das Domänenmodell ruinieren. Dies führt oft zu so genannten anemic domain model, wo der Großteil der Domänenlogik in Controller geschoben wird. Dies wiederum reduziert die Verwendung von Objekten in der Lösung erheblich, was zu einem Mangel an Flexibilität und zu einer engen Kopplung führt.

Fazit ist, dass in meinen Projekten bevorzugen I Code-First. Dies liegt daran, dass ich ein objektorientierter Programmierer bin und das gibt mir die Möglichkeit, eine geeignete objektorientierte Anwendung zu entwickeln.

+0

Danke Zoran, stimme völlig zu, wenn wir eine Anwendung hatten. Wir werden 3 Anwendungen mit der gleichen Datenbank haben. Wäre es in diesem Fall nicht kompliziert, zuerst nach Code zu suchen? Es würde auch eine Abhängigkeit zur Bereitstellung aller Anwendungen geben. – Nimmi

+0

Das Problem mit Code First ist die Unfähigkeit, die vielen starken Datenbeschränkungen und Integritätsprüfungen darzustellen und zu nutzen, die in den meisten RDBMS-Systemen verfügbar sind. Außerdem bindet es Ihren gesamten Stack an Ihre Business-Schicht. Was, wenn Sie möchten, dass eine andere Anwendung (z. B. in Java) mit der Datenbank arbeitet? – Dai

+0

@Nimmi Ich denke, dass EF heute reif genug ist, damit fertig zu werden. Ich stimme immer noch zuerst für den Code, weil er beim Entwurf des Domain-Modells einen großen Vorteil bringt. –

0

Wenn Sie Ihre Software neu schreiben Ich denke, die Spezifikationen fast klar sind. In diesem Szenario bevorzuge ich normalerweise den db-first-Ansatz, wenn Sie mit der ER-Modellierung vertraut sind. (Ich verwenden Code-first für die lokale Datenbank zu tun, aber db zunächst für Server-Anwendungen/api)

-Code zunächst sehr flexibel Prozess für die Entwicklung, vor allem, wenn Modell oft ändert. Wenn Sie jedoch eine klare Analyse Ihrer Anforderungen und Kenntnisse der ER-Modellierung haben, können Sie ein gutes Modell entwerfen und Entwicklungsschritte entkoppeln.

Verwandte Themen