Wir haben derzeit den folgenden Stack:
- VS 2005
- Webformulare
- SQL Server 2005
- IIS 6
Wir planen, darauf umzusteigen:
- VS 2010
- MVC und Web Forms
- SQL Server 2008
- IIS 7
Meine Frage ist, ob wir bei einem Wechsel zu MVC mit VS 2010 Entity Framework (oder ein anderes ORM), ein Mikro-ORM (wie Massive ) oder nur einfaches SQL verwenden sollen.
Alle Tutorials, die ich über VS 2010 gelesen habe, sind darauf ausgerichtet, Entity Framework für Datentransaktionen zu verwenden. Wird es das in absehbarer Zukunft geben (ab 5 Jahren)?
Wenn es darauf ankommt, können die Anwendungen unserer Kunden zwischen 10 und 1.000 aktive Benutzer haben.
asp.net
asp.net-mvc
entity-framework
webforms
Guanome
quelle
quelle
Antworten:
Ich habe kürzlich von Inline-SQL-Abfragen zu EF gewechselt und Folgendes gefunden:
Vorteile
Nachteile
1:0-1
Beziehung zu erstellen, in der EF a verwenden möchte1:0-*
Ich bin allerdings kein EF-Experte, daher habe ich wahrscheinlich einige Dinge verpasst. Dies sind nur die Elemente, auf die ich in der Vergangenheit beim Wechsel von Inline-SQL zu Entity Framework gestoßen bin. Ich bin froh, dass ich den Wechsel vollzogen habe, aber es gab Zeiten, in denen ich EF aufgrund seiner Macken wirklich hasste.
quelle
Entity Framework ist ein Produktivitätswerkzeug. Verwenden Sie die besten verfügbaren Tools, es sei denn, Sie haben einen guten Grund, dies nicht zu tun (z. B. Sie arbeiten mit SQL 2000 oder haben keine Zeit, die Technologie zu verbessern).
Abgesehen davon finde ich das Konzept von Entities sehr gut auf das Modell des MVC-Musters übertragbar. Obwohl eine 1: 1-Beziehung zu Modellen und Tabellen eine schlechte Praxis ist, führt das Denken in Bezug auf Entitäten tendenziell zu sauberen Designs und leicht lesbarem Code (insbesondere mit LINQ).
Entity Framework wird von Microsoft aktiv unterstützt. Niemand hat eine magische Kristallkugel zu sagen "Unterstützung wird X Jahre dauern". Ich sehe keinen Grund zu der Annahme, dass Entity in den nächsten 5 Jahren sterben wird.
quelle
Eine andere mögliche Lösung ist die Verwendung einer alternativen Entity Framework-Bibliothek, die nicht im Lieferumfang von VS enthalten ist. Es gibt einige im Internet.
Das Entity / 3-Layer-Framework-Konzept ist seit einiger Zeit auf dem Markt und hat, wie viele andere Entwickler, mit mehreren benutzerdefinierten Bibliotheken zusammengearbeitet, bevor Microsoft sein eigenes "offizielles" Framework herausbrachte.
Vorteile
Nutzen Sie die Vorteile des Entity (DAL) -Frameworks, ohne an ständigen Änderungen der Microsoft-Bibliotheken / -Frameworks festzuhalten.
Hinzufügen von Funktionen zu einer Bibliothek, die der vorhandenen offiziellen Bibliothek möglicherweise nicht zur Verfügung stehen, z. B. die Verwendung mehrerer Datenbankmarken.
Nachteile
Müssen die Bibliothek oder Tools unterstützen. Es ist sehr verbreitet, ein Entity-Generator-Code-Tool zu haben, um die Enitites zu generieren.
quelle
Sie müssen eine architektonische Entscheidung treffen, die auf dem Problem und der vorhandenen Lösung basiert. Wie bei jeder Technologie gibt es Vor- und Nachteile.
Ich persönlich würde normalerweise das Entity-Framework für Neuentwicklungen verwenden, aber bestehenden Code nicht umschreiben. Sie erhalten dann die Geschwindigkeit für zukünftige Entwicklungen, müssen aber nicht viel Zeit in die Konvertierung von Code investieren. Der Nachteil dieses Ansatzes ist, dass die Konsistenz verringert wird.
quelle
In Ihrer Situation würde ich definitiv Entity Framework verwenden. Ich habe festgestellt, dass es gut mit MVC funktioniert.
Hier sind einige echte Gründe und Hinweise.
Es gibt jedoch eine Reihe von Dingen, die Sie über die Verwendung eines ORM lernen müssen.
Dinge, die man beachten muss
Ich würde den Code-First-Ansatz auch sehr empfehlen, selbst wenn Sie eine vorhandene Datenbank haben.
quelle