2008-11-03 6 views
1

Je souhaite stocker une image dans un objet métier. Dans MSDN j'ai vu que l'espace de noms System.Drawing fournit beaucoup de fonctionnalités GDI +, etc.System.Drawing.Image pour les images dans Business Objects?

Est-il correct de stocker une image dans une classe System.Drawing.Image dans la couche de gestion (qui est une bibliothèque de classes "uniquement "), et donc d'inclure une référence à System.Drawing aussi? Je me sens un peu mal parce que j'ai l'impression d'avoir des références spécifiques à l'interface utilisateur dans le code de l'entreprise. De plus, le code pourrait devenir inutilement dépendant de la plateforme (bien que ce soit seulement un problème en théorie, car nous ne développons pas pour plusieurs plates-formes).

S'il ne convient pas de cette façon, quel type serait convient le mieux?

Nous vous remercions de votre réponse!

Matthias

Répondre

2

De votre question, il semble évident que votre couche logique métier doit traiter les images d'une manière assez faible niveau (sinon, je suppose que vous seriez simplement stocker les URL d'image ou quelque chose ...). Cela place le concept d'une image/bitmap directement dans le domaine de la logique métier, il est donc parfaitement possible de s'appuyer sur l'espace de noms System.Drawing à cette fin.

Si vous pensez que les images n'ont pas leur place dans une bibliothèque de classes, one look System.Drawing itself devrait vous convaincre du contraire: c'est un excellent exemple d'une bibliothèque de classes (et très bien conçue) qui ne fait rien d'autre que traiter images.

Il n'a vraiment rien à voir avec UIs (Windows.Forms et amis traitent celles-ci). En outre, System.Drawing est présent sur n'importe quel système avec le .NET Framework installé, donc il n'y a aucun problème de dépendance.

Si vous êtes préoccupé par la compatibilité multi-plateforme, la création d'une classe wrapper pour les images pourraient atténuer ces préoccupations. Cependant, étant donné que les structures bitmap elles-mêmes sont probablement déjà spécifiques à la plate-forme (à moins que vous n'utilisiez que des PNG sur vos interfaces externes, par exemple), cela pourrait être un peu exagéré. ..

+0

Un grand merci pour votre réponse! Je pense qu'il n'y a rien à ajouter, très bien :) –

Questions connexes