Sie sind klug, daran zu denken, eine Datenschicht in Ihrer App zu entwerfen. In einer ASP.NET-Anwendung wird dies Ihnen helfen, Ihren Datenzugriff zu standardisieren und erheblich zu vereinfachen. Sie müssen lernen, wie Sie ObjectDataSources erstellen und verwenden, aber das ist ziemlich einfach.
Der andere Vorteil einer Datenzugriffsebene (die mit einem separaten Projekt/DLL erstellt wurde) besteht darin, dass das Komponententest wesentlich vereinfacht wird. Ich würde Sie auch ermutigen, eine Business-Schicht zu erstellen, um einen Großteil der Datenverarbeitung zu erledigen (die Business-Schicht zum Beispiel wäre dafür verantwortlich, ObjectDataSources von der DAL in den UI-Code zu ziehen). Dadurch können Sie nicht nur Ihre Geschäftslogik kapseln, sondern auch die Testbarkeit des Codes verbessern.
Sie tun nicht wollen DataSets (oder DAL-Objekte, in dieser Angelegenheit) in der Sitzung Caching! Sie erstellen eine Web-App, sodass Datensatzänderungen eine eindeutige ID (oder eine andere Primärschlüsselspezifikation) verarbeiten und Änderungen direkt an die DAL weiterleiten, sobald sie vorgenommen werden. Wenn Sie alles zwischenspeichern würden, würden Sie dramatisch reduzieren die Skalierbarkeit Ihrer App.
Update: Andere in diesem Thread fördern die Idee der Verwendung von ORMs. Ich wäre vorsichtig bei der Übernahme eines vollwertigen ORM aus Gründen, die ich zuvor beschrieben habe here und here. I do stimme jedoch zu, dass es ratsam wäre, DataSets zu vermeiden. In meiner eigenen Arbeit benutze ich umfassend DataReaders, um meine ObjectDataSources zu füllen (was aufgrund des Designs meiner DAL trivial ist) und finde es sehr effizient.
Rik - Sie können den Links in meinem Beitrag folgen, um eine Contrarian Ansicht von LINQ zu erhalten. Selbst wenn Sie es übernehmen, sollten Sie sich der Probleme bewusst sein, die auftreten können. –