Hallo und
Also zu 1.)
Dass DataSets veraltet sind und nun immer und überall das Entity Framework eingesetzt wird, würde ich nicht so behaupten. Es kommt wohl immer auf die Anforderungen an. Ich z.B. habe mal ziemlich lange mit dem Entity Framework rumexperimentiert, unter .NET 3.5. Und ich muss sagen, dass da viele Sachen noch nicht ausgereift waren, und somit viele Workarounds nötig waren. Jetztendlich bin ich doch wieder zum DataSet zurückgekehrt. Kann gut möglich sein, dass sich mit .NET 4.0 einiges in Bezug auf das EF verändert hat, aber ich bleibe erstmal beim DataSet.
Einzigster Vorteil, den ich im Moment im Gegensatz zum DataSet sehe ist, dass das Modell schnell bzw. dynamisch auf verschiedene Datenbankprovider umgestellt werden kann. Das ist bei den TableAdaptern vom DataSet nicht so einfach... dafür kann ich aber über die TableAdapter einfach mal viel zusätzlich steuern.
zu 2.) Aslo Du hast die Möglichkeit, die Daten im DataSet zu halten (normalerweise hast Du zu jedem TableAdapter eine Fill-Methode, mit der Du eine DataTable füllen kannst), oder aber Du holst Dir die Daten per GetData(). Aber hier hast Du dann nicht mehr die Unterstützung auf verknüpfte Daten (also Relatioenen), da die geladenen Rows detached sind. Da musst Du Dich dann selber drum kümmern.
Gut, das war jetzt erstmal mein Statement dazu. Ich kann nur aus persönlichen Erfahrungen sprechen.
LG, Marko