2017-10-17 25 views
2

J'ai une application WPF standard développée dans .Net framework 4. Maintenant, mon client veut un site web que je prévois de développer en utilisant .Net Core. Afin de partager la logique de l'entreprise, j'ai besoin de déplacer la base de données le long de la couche de gestion vers un projet distinct et ici, je prévois d'utiliser .Net Core. Ainsi, toutes les couches, c'est-à-dire Data/Business/API, seront réécrites en utilisant la dernière version de .Net Core. Serais-je capable de référencer la couche de gestion écrite dans le projet .Net Core à partir du projet WPF (.Net Framework 4)?Consommez la bibliothèque .Net Core à partir du projet standard .Net

Les pointeurs seront très appréciés .....

Répondre

2

Serais-je capable de faire référence à la couche d'affaires écrit en .Net de base du projet WPF (Framework .Net 4)?

La réponse est oui. Vous pouvez l'essayer: Dans Visual Studio, créez un projet d'application WPF et un projet de bibliothèque .NET Standard, puis ajoutez une référence du projet d'application au projet de bibliothèque.

Il existe des packages NuGet que vous ne pouvez pas référencer dans votre projet .NET Standard car ils ne prennent en charge que le .NET Framework complet, mais la plupart des packages NuGet peuvent être référencés à partir d'un projet .NET Standard. Votre question est également étiquetée [entity-framework-6]. Si vous souhaitez utiliser Entity Framework à partir d'un projet .NET Standard, vous devrez utiliser Entity Framework Core car Entity Framework 6 requiert le framework complet.

Vous devriez probablement créer un pic rapide pour déterminer si vous pouvez créer votre application comme vous l'entendez.

+0

Il est à noter ici que EF Core est loin d'être égal à EF 6, de sorte que l'OP devra soigneusement analyser les API et fonctionnalités utilisées avant de le décider. Alternativement, il est toujours possible d'exécuter ASP.NET Core sur .NET Framework (pour le moment) jusqu'à ce qu'une fonctionnalité importante spécifique soit disponible sur .NET Core – Tseng

+0

J'ai mis à jour mon application basée sur WPF vers .Net framework 4.6 et ajouté des références de différentes couches qui sont développés en utilisant la version .Net Standard 1.3. Maintenant, je fais face à une autre erreur w.r.t. La bibliothèque Microsoft Dependency Injection. Les détails de l'erreur sont les suivants: - Impossible de charger le fichier ou l'assemblage 'Microsoft.Extensions.DependencyInjection.Abstractions, Version = 1.0.0.0, Culture = Neutre, PublicKeyToken = adb9793829ddae60' ou l'une de ses dépendances.La définition du manifeste de l'assembly localisé ne correspond pas à la référence d'assembly.Toutes les suggestions où se trouve le problème. –

+0

@AnilC: Jetez un oeil à cette question avec des réponses: https://stackoverflow.com/questions/46051831/could-not-load-file-or-assembly-system-security-cryptography-algorithms-versio Vous devez ajouter redirections de liaison à votre projet WPF. –

2

Vous devez implémenter la fonctionnalité commune dans une bibliothèque .NET Standard. Vous pourrez ensuite référencer cet ensemble à partir de toutes les applications compatibles avec la version de .NET Standard que votre projet commun cible.

Les différentes implémentations .NET ciblent des versions spécifiques de .NET Standard et le tableau suivant sur MSDN répertorie toutes les versions de .NET Standard et les plates-formes prises en charge: https://docs.microsoft.com/en-us/dotnet/standard/net-standard.

La dernière version de .NET Core (actuellement 2.0 au moment de l'écriture) implémente .NET Standard 2.0. La version la plus ancienne du .NET Framework qui implémente .NET Standard 2.0 est 4.6.1. Cela signifie que votre application WPF devrait cibler 4.6.1 pour pouvoir consommer un assembly .NET Standard 2.0.

.NET Core 1.0 et .NET Framework 4.5 prennent en charge .NET Standard 1.0. Le .NET Framework 4.0 ne prend en charge aucune version de .NET Standard. Par conséquent, vous devez rediriger votre application WPF vers (au moins) .NET Framework 4.5.