Frage

Es gibt so viele verschiedene Optionen, coming-out von microsoft für den Zugriff auf Daten.Welche ist die beste für skalierbare apps?

Linq

Sollten wir mit Linq?Es scheint einfach, aber wenn Sie wissen, dass Ihr SQL ist es wirklich helfen.Auch höre ich, dass Sie nicht ausführen können Asynchrone Abfragen in ASP.NET die Verwendung von Linq.Daher Frage ich mich, ob es wirklich skalierbar?Gibt es wirklich große Websites mithilfe von Linq (Mit der möglichen Ausnahme von stackoverflow).

Entity Framework

Hören nicht so viel razzmatazz über das Entity Framework.Scheint näher an das Objekt-Modell ich bin familure mit.

Astoria/Dynamische Daten

Sollten wir sein, was unser Daten-service?

Ich bin ziemlich verwirrt, und das ist, bevor ich in die andere ORM-Produkte wie NHibernate.Irgendwelche Ideen oder Weisheit auf, was besser ist?

War es hilfreich?

Lösung

Ich würde empfehlen, entweder NHibernate oder Entity Framework.Für große Websites, die ich verwenden würde ADO.NET Daten Services.Ich würde nicht alles tun groß mit LINQ to SQL.Ich denke, Stack Overflow könnten am Ende mit einigen interessanten Skala Probleme mit 2-tier eher als 3-tier -, und Sie haben auch einige Mühe, als die physischen Aspekte der Datenbank ändern, und diese änderungen ripple ganzen code.Nur ein Gedanke.

Andere Tipps

Ich denke, ADO.Net Data Services (früher unter dem Namen Astoria) hat eine große Rolle zu spielen.Es passt gut mit dem REST der Architektur des web.

Da web ist skalierbar, ich denke, alles was folgt, seine Architektur ist skalierbar zu..Auch, möchten Sie vielleicht halten Sie Ausschau nach den SQL Server Data Services..

Wenn Sie sprechen über relationale Datenbanken, dann meine Stimme für den Verguss alle Ihre Operationen mit den Daten in gespeicherten Prozeduren, unabhängig davon, wie Sie Zugang zu Ihnen haben, von den anderen Schichten.

Wenn Sie deaktiviert alle lese - /Schreibzugriff auf die Datenbank zugreifen, außer über gespeicherte Prozeduren, können Sie verstecken Sie Ihre Daten Modell hinter gut definiert Verträgen.Das Datenmodell ist frei zu ändern, nur damit der gespeicherte Prozeduren immer noch Ehren Ihre Eingänge und Ausgänge.

Dies gibt Administratoren die totale Freiheit zu optimieren Sie Ihre Anwendung und stellen Sie es skalieren.Dies ist eine sehr, sehr schwierige Aufgabe, wenn SQL generiert wird, indem ein Werkzeug, die außerhalb der Datenbank.

Sperren in gespeicherten Prozeduren zu sein scheint, eine schwindende Art dachte, in diesen Tagen, zumindest, die meine aktuelle Beobachtungen.Diese Denkweise hat sich verleihen zu der ORM-Welt, da Sie in der Regel weitere affektive gegen Tabellen direkt, sondern jede ORM-Wert Salz wird auch erlauben Sie die Verwendung von procs – irgendwann haben Sie keine andere Wahl.

Es gibt viele Meinungen rund EF und unabhängig davon, was jemand sagt, gut oder schlecht, es wird eine V1 und mit der Faustregel, dass MS dauert etwa 3 umdrehungen, um es zu bekommen Recht, es wäre klug, zu warten, für die nächste rev, mindestens.

Es scheint, dass der größte Spieler in diesem Raum ist NHibernate und es gibt viel Unterstützung für diese in der Gemeinschaft.Linq, den Sprache-feature sollte nicht zu weit in den Weg, um die NHibernate-stack.

Verwenden Sie, was für Sie arbeitet.Diese sind alle am einfachsten, wenn Sie bereits haben ein ziemlich normalisierte Datenbank (dh gute definition von primär-und Fremdschlüssel).Jedoch, wenn Sie haben Daten, die sich nicht einfach normalisieren, das Entity Framework ist mehr flexible als LINQ to SQL, aber es erfordert mehr Arbeit zu konfigurieren.

Wir haben experimentiert mit LINQ in einer Cluster-Umgebung und es erscheint die Skalierung auch auf die einzelnen Maschinen und für das gesamte cluster.Die 3 Optionen, die Sie haben, vorausgesetzt ich würde sagen, dass LINQ die bessere Wahl ist, obwohl jede option hat eine etwas andere Zielgruppe, so sollten Sie definieren, was Sie tun werden mit den Daten vor der Entscheidung über die acesss-Paradigma.

Ich würde vorschlagen, linq.Es skaliert gut auf unsere Website, und es ist einfach genug, um zu verwenden.

verwenden Sie gespeicherte Prozeduren mit LINQ...aber lassen Sie sich nicht die sprocs biegen Sie in eine data-access-Schicht!

Dieser Beitrag ist von 2008, bevor die Wolke wirklich auf den Weg.Wie es scheint, ein update für die Antwort erforderlich ist.Ich werde nur einige links und eine übersicht.Ich bin sicher, dass es mehr up-to-date Beiträge auf dieser Website zu diesem Thema, und wenn ich Sie finde, dann werde ich hinzufügen, der links hier.

Wenn es um die Daten der Skalierbarkeit und Transaktions-Verarbeitung Skalierbarkeit, im Jahr 2017 wir müssen reden über die Cloud und Cloud-Service-Anbieter.

Ich denke, die drei top-Cloud-Anbieter in diesen Tagen sind:

Kosten

Einer der großen Sache, über die Verwendung von cloud-Diensten ist, dass es keine vorab-Kosten, keine Kündigung Gebühren, und Sie zahlen nur, was Sie nutzen.(Zitat Herr Alba im Jahr 2016 Artikel "Ein Side-by-Side-Vergleich von AWS, Google Cloud und Azure")

Wir verwenden AWS uns.Wir bezahlen nur das, wir haben zwar VMs installiert und ausgeführt haben, so kann es eine billige Art und Weise zu starten.In der Regel, service-Anbieter verlangen von minute zu minute und von Stunde zu Stunde, aber Sie werden garantiert, um es für die ganze Zeit.

Ein billiger Weg ist " best-effort-spot-Preise.Der Spot-Preis entspricht dem Preis über die Sie bieten, um zu garantieren, dass eine einzelne Spot-instance-Anforderung erfüllt ist.Wenn Ihr Angebotspreis über dem Spot-Preis, Amazon EC2 startet Ihre Spot-Instanz, und wenn der Spot-Preis steigt über Ihren Preis, Amazon EC2 beendet Ihre Spot-Instanz.(Schamlos zitiert Amazon den Benutzer Guide hier)

Ein Side-by-Side-Vergleich von AWS, Google Cloud und Azure ist ein guter Artikel dabei eine Seite-an-Seite Vergleich dieser drei service-Dienstleister zur Verfügung hier.

Für eine weitere Akademische betrachten, cloud-services, Lesen Sie 2010 Papier von Yu, Wang, Ren, und Lou",Einer Sicheren, Skalierbaren und Fine-grained Data Access Control in Cloud Computing" in der INFOCOM 2010 Verfahren zur Verfügung hier, aber möglicherweise müssen Sie ein IEEE-Mitglied, um den Zugang zu ihm.Es ist zwar etwas veraltet, es ist hervorragend, und Sie können es verwenden, wie ein Sprung-off-Punkt.

Skalierung in der cloud hat explodiert, und bis vor kurzem, dass die Skalierung erfolgte durch die Inbetriebnahme von neuen Virtuellen Maschinen, die dauerte Sekunden, aber mit Containern kann man spin up new instances in Millisekunden.Für mehr Informationen zu diesem Thema finden Sie Docker und Docker-Containern hier.

Ich entschuldige mich für diese Antwort nur eine Reihe von links zu mehr Informationen, aber ich dachte, die Antwort auf diese Frage sollte ein update.Ich hoffe, das inspiriert Sie jemanden, um mehr aus Erster hand details.Wenn Sie haben bereits gebucht, einige Verwandte Informationen, bitte beachten Sie die links zu Ihren eigenen posts.Vielen Dank!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top