2017-03-01 4 views
1

Ich arbeite an der Migration von ASP.NET 4/Webforms zu ASP.NET Core/MVC. Ich bin neu bei MVC, aber verstehe das Konzept. Ich habe jedoch ein Problem mit dem Griff auf ASP.NET Core gerannt. Ich habe mehrere Fragen.Migration von ASP.NET 4 nach .NET CORE 1.1

Mit meinem Vermächtnis (ASPNET4) Projekte, schrieb ich eine "Helfer" Bibliothek, die für meine Web-Projekte Grundfunktionen bietet: - Datenbank-Handling (Anschluss, Bereinigung, Fehler zu kontrollieren, Caching, Paging, Bindung, etc.)

  • Misc Funktionen (Ansichtszustand Kompression, Datum/Zeit-Funktionen, usw.)

  • Storage Management (Sessions, Cookies, etc.)

  • Plugins (twitter, facebook, google int egrations)

  • Identity Management (individuelle Identität, die mit anderen Systemen arbeitet)

  • Ich glaube, Sie erhalten den Punkt ...

Im Laufe der Jahre habe ich diesen Rahmen entwickelt haben, während er ständig Aktualisierung und Fehlerbehebung. Es ist sehr schnell und stabil geworden - es verarbeitet sogar jede Datenbank, die Sie darauf werfen möchten!

Bei der Recherche stellte ich fest, dass .NET Core es mir schwer macht, die gleichen Aufgaben zu erledigen. Zunächst einmal scheint CORE nur objektbezogene Mapper (Entity, Dapper, etc) zu unterstützen. Ich bin vollkommen zufrieden mit ADO.NET und verstehe die Unterschiede. Ich möchte wirklich nicht das Entity Framework oder Dapper verwenden. Ich kann den Großteil meines Codes von .NET Framework migrieren. Aber es sieht so aus, als ob ADO.NET in .NET Core nicht vollständig unterstützt wird. Ist das der Fall?

Meine nächste Ausgabe kommt nach der Datenbankunterstützung. Ich finde es unglaublich schwierig, Dinge wie Sitzungen/Cookies/etc aus einer Klassenbibliothek zu verwalten. Vielleicht verstehe ich die Konzepte nicht oder finde die richtige Dokumentation nicht, aber es scheint so, als ob es fast unmöglich ist, Session/Cache/etc in einer externen Bibliothek zu verwalten. Ist das der Fall? Oder muss ich eine benutzerdefinierte Middleware erstellen?

Grundsätzlich muss ich vollen Zugriff auf die Website aus einer Bibliothek, damit ich meine eigenen Code verwenden können Dinge wie Sessions, Datenmanagement zu handhaben, usw.

Ist MVC die einzige Option für ASP.NET verfügbar?

Schließlich scheint Visual Studio 2015 mit der Behandlung von .NET Core-Anwendungen sehr unruhig und langsam zu sein. Das war eine wichtige Abkehr für mich, alles von der Schnittstelle zu NuGet scheint langsam und störend.

Irgendwelche Empfehlungen oder Vorschläge, wo ich gehen oder mit .NET Core beginnen sollte, ist sehr geschätzt, ich habe Wochen damit verbracht, Dokumentation zu lesen und zu experimentieren, habe aber keine wirklichen Fortschritte gemacht. Ich möchte mich wirklich von Webforms entfernen!

Antwort

1

Nächster Dienstag (3/7/17) Visual Studio 2017 wird veröffentlicht, die vollständig Unterstützung für .NET Core integriert hat. VS15 hat jetzt die Vorschau-Werkzeuge, die viele Störungen verursachen. Sie sollten auch in Betracht ziehen, auf den VS17 RC umzusteigen, wenn Sie zu einem frühen Zeitpunkt im Prozess sind, da .NET Core 1.1 viel freundlicher ist als 1.0.1 (meiner Meinung nach, da es kein project.json gibt).

Wie bei den Datenbankinteraktionen ist die Idee hinter Entity Framework, dass es eine drastische Verbesserung gegenüber einer DAL oder einer anderen Datenbankdienstschicht über Ihrem Programm ist. Über Middleware/DbContext von EF Core können alle Datenbankinteraktionen mit Raw SQL oder LINQ (oder beiden) abgeschlossen werden. Bei dieser Interaktion ist die DAL/ADO-Schicht nicht unbedingt erforderlich.

Entity Framework basiert auf ADO.NET und ist eine drastische Verbesserung gegenüber anderen Entity-Relationship-Bibliotheken. Lesen Sie den Kommentar von Mason unten auf ADO.NET auf Wikipedia für einen besseren Überblick.

Wie für die Cookies/Sitzungen habe ich nicht so viel Erfahrung mit dieser Art von Informationen, aber die eine Sache, die Sie untersuchen möchten, ist die ASP.NET-Identität für Benutzerinformationen und Sitzungen. IdentityServer 4 ist eine weitere Option.

+1

ADO.NET (zum größten Teil) ist immer noch in .NET Core. EF ist immer noch darauf gebaut. Sehen Sie sich die [Quelle] (https://github.com/aspnet/EntityFramework/blob/dev/src/Microsoft.EntityFrameworkCore.SqlServer.Design/Internal/SqlServerDatabaseModelFactory.cs) an. – mason

+0

Whoops, meine Terminologie ist wirklich schlecht in diesem Zeug. Ich werde meine Antwort aktualisieren, um eine bessere Nutzung zu haben. Vielen Dank! –

+0

Keine Sorgen über Ihre Terminologie. Ich habe viele Performance-Reviews des Entity-Frameworks gelesen und es hat mich nicht beeindruckt. Ich bevorzuge ADONET, aber ich denke, ich sollte mit dem Lernprozess beginnen. Es ist gut zu wissen, dass alles wegen Vorschau-Tools schlecht ist. Ich habe VS17 RC durcheinander gebracht, aber es verursachte Probleme mit VS15. Ich werde es noch einmal geben, da das vor mehreren Monaten war. Vielen Dank! – mackhax0r