0

Ich erkunde Core MVC 1.0.Verwenden von Azure-Paketen mit .NET Core/MVC

Ist es möglich, Azure nugget-Pakete zu verwenden, die ich in früheren Web API-Projekten verwendet habe? Zum Beispiel, ich habe Microsoft.Azure.Mobile.Server.Notifications benutze das mir Erweiterungsmethoden auf HttpConfiguration gibt, die ich in meinem Controller wie verwenden kann:

var pushClient = Configuration.GetPushClient(); 

Aber ich verstehe HttpConfiguration nicht mehr existiert.

Gibt es eine Möglichkeit, Azure-Pakete wie diese mit MVC-Controllern zu verwenden, oder sollte ich nur warten, bis sie Versionen veröffentlichen, die auf .net-Core zielen? Wenn ja, arbeiten sie überhaupt daran? Ich kann überall etwas finden.

+0

Sie müssen dies in einer Bibliothek nach Bibliotheksfall validieren. d. h. die WindowsAzure.Storage-Bibliothek hat auch eine Vorschau-Unterstützung für CoreCLR https://github.com/Azure/azure-storage-net/tree/master. Für Azure Mobile Apps ... gut https://github.com/Azure/azure-mobile-apps-net-server/blob/master/src/Microsoft.Azure.Mobile.Server.Notifications/PushClient.cs#L31- L39 hat keinen Konstruktor, der 'HttpConfiguration' nicht benötigt, also ist es ziemlich sicher zu sagen, es wird nicht funktionieren. – Tseng

+0

Aber es gibt nichts, was Sie davon abhält, den Code zu greifen, die notwendigen Änderungen vorzunehmen (scheint die Konfiguration zu sein) wird nur verwendet, um eine Instanz von 'IMobileAppSettingsProvider' zu erhalten https://github.com/Azure/azure-mobile-apps-net-server/blob/master/src/Microsoft.Azure.Mobile.Server.Notifications/PushClient.cs# L50, das Sie über DI anstelle der 'HttpConfiguration' injizieren können und das DI/Konfigurationsmuster verwenden, um es beim .NET Core Pipeline/DI-System zu registrieren und eine Pull-Anforderung zu erstellen, wenn alle Änderungen erforderlich sind, damit andere davon profitieren können es auch – Tseng

+0

Danke Ich habe versucht, die Azure Mobile-Bibliothek zu überspringen und Microsoft.Azure.NotificationHubs di verwenden rectly - alles was ich suchte war NotificationHubClient - aber es ist nicht glücklich. "Datei oder Assembly konnte nicht geladen werden. System.Runtime.Serialization, Version = 4.0.0.0". Vielleicht, weil dieses Paket das vollständige .NET 4.5-Profil benötigt? Gibt es überhaupt dafür, dass es in einem .net Kernprojekt funktioniert? – user888734

Antwort

0

Technisch können Sie mit ASP.NET Core-Paketen arbeiten, die auch auf das Full Framework ausgerichtet sind. Wir haben mehrere Apps, die aufgrund von Azure-Paketen auf netcoreapp und andere auf net461 ausgerichtet sind, aber beide ASP.NET Core-Pakete verwenden. Dies ist natürlich gültig, wenn Ihre Umgebung über das vollständige Framework verfügt (Azure App Service).

Sie können sehen, wie die netcoreapp und net46 Versionen im Zusammenhang mit NetStandard here gehen.

Um dies zu erreichen, entfernen Sie die Microsoft.NETCore.App vom dependencies und netcoreapp1.0 zu net461 auf Ihrer frameworks Erklärung ändern.

Wenn die NetCore-kompatiblen Pakete in Betrieb gehen, ändern Sie einfach die Änderung und Ihre App wird weiter funktionieren.

+0

Das wird dem OP nicht viel helfen, wenn die Abhängigkeit, die er verwenden will, 'HttpConfiguration' direkt verwendet, wie die Benachrichtigungsbibliotheken in seinem Konstruktor, was für die meisten Bibliotheken gilt, die von' System.Web' abhängen, seit dem neuen ASP. NET Core verwendet nichts von 'System.Web's mehr – Tseng

+0

Das [Azure Notification Hub nuget-Paket] (https://www.nuget.org/packages/Microsoft.Azure.NotificationHubs/) funktioniert problemlos mit ASP.NET Core, wenn es auf dem Full Framework (net461) ausgeführt wird. Es funktioniert nicht, wenn 'netcoreapp' verwendet wird, aber' net461' ist immer noch ASP.NET Core. –

0

In Bezug auf die SDK-Unterstützung für Mobile Apps Server für ASP.NET Core befindet sich die Arbeit in unserem Auftragsbestand, aber wir haben keine gemeinsame Zeitleiste. Dies liegt zum Teil daran, dass einige der Abhängigkeiten (wie Asp.NET OData und OData) ASP.NET Core noch nicht unterstützen.

In der Zwischenzeit können Sie @ matias-quarantas Antwort versuchen, wie Sie beide zusammen verwenden.