2009-11-30 3 views
0

Notre équipe développe un cadre. Dans une solution différente, nous avons un projet mobile (avec d'autres projets .NET "normaux"). Ce projet mobile bénéficierait de l'utilisation d'une partie du code dans le cadre. Cependant, le framework est la version complète de .NET, pas le framework compact. Comment le projet mobile doit-il utiliser ce code cadre? À l'heure actuelle, notre équipe a ajouté de nombreux fichiers dans le cadre du projet mobile via des fichiers liés. Nous pouvons le faire, mais je me demande s'il y a un meilleur moyen. Avec cette approche, nous devons prendre des mesures supplémentaires sur la machine de construction pour nous assurer que ces fichiers liés sont disponibles lorsque nous construisons la solution avec l'application mobile.Comment un projet mobile doit-il référencer/utiliser des classes dans le framework .net complet?

Une autre option consiste à gérer deux versions des classes de structure; un comme la version complète de .net, et un autre comme la version de cadre compact. Mais maintenir le code en double n'est jamais bon. Le maintien de deux versions des classes va être un cauchemar de gestion.

Répondre

0

Quelqu'un m'a réellement envoyé un lien MSDN sur exactement ce sujet. L'essentiel est que les deux projets (framework complet et CF) partagent le même dossier, puis partagent les mêmes fichiers (mais chaque projet peut choisir les fichiers de son choix).

http://msdn.microsoft.com/en-us/magazine/cc163387.aspx

0

Vous pouvez référencer les assemblys de version .NET complets à partir du projet .NET CF, mais il n'existe aucun moyen de garantir toutes les méthodes requises. Les assemblages & seront disponibles sur le périphérique mobile. Vous devez créer un projet commun qui cible le framework .NET CF et y placer toutes les classes nécessaires, puis référencer ce projet commun dans votre projet mobile et dans votre autre projet utilisant la totalité du projet. version du framework .NET.

0

Nous réalisons le développement .NET Full et CF. Nous faisons plus ou moins ce que vous faites, avec un petit tweak. Habituellement, un projet nécessite deux solutions: une pour l'application de bureau (Full .NET) et une pour l'application mobile (CF .NET).

Parfois, nous devons partager du code entre les deux applications. Nous créons une bibliothèque de classes séparée pour ce code et une bibliothèque de deuxième classe qui se termine par "Compact" et contient les fichiers "liés" de la bibliothèque de classes .NET complète. Par exemple:

My.Desktop 

My.Mobile 

My.Common 

My.Common.Compact 

My.Common.dll est référencé par My.Desktop et My.Common.Compact.dll est référencé par My.Mobile.

Un conseil de plus. Parfois, le code dans My.Common ne fonctionne pas exactement comme dans My.Common.Compact cause CF manque beaucoup de code qui existe dans Full .NET. Pour surmonter cela, nous utilisons des instructions #if avec une directive FULL_FRAMEWORK qui est seulement définie dans My.Common et nous nous assurons qu'il n'est pas défini dans My.Common.Compact.

Questions connexes