2009-01-06 4 views
0

Cela peut sembler une question ridicule car je n'ai pas assez d'expérience en .NET.Réutilisation des composants entre ASP.NET et C# .NET

Est-il possible de créer des composants en C#, en utilisant .NET, qui peuvent être réutilisés dans ASP.NET. Par exemple si l'on veut porter une application sur le web.

Si possible, comment sont-ils portables? C'est à dire. l'interface graphique peut-elle être réutilisée dans une certaine mesure? Existe-t-il un format intermédiaire à utiliser comme base ou est-il nécessaire d'utiliser des composants C# en tant que binaires?

Merci.

Edit:

Merci pour vos commentaires! Je suis assez familier avec les aspects de conception de ce problème, c'est-à-dire comment modéliser des composants pour les réutiliser. Cependant vous m'avez fait réaliser que la question concerne vraiment - Dans quelle mesure .NET est-il réutilisable entre ASP et Windows? Peut-on dire que certains paquets de composants .NET sont indépendants de l'environnement et que certains sont spécifiques à la plate-forme?

Répondre

5

Absolument - une classe .NET peut être utilisée dans n'importe quel type d'application .NET. Cependant, cela dépend de la partie de l'application dont vous parlez. En règle générale, les interfaces utilisateur Windows Forms ne sont PAS réutilisables en tant qu'interface utilisateur ASP.NET, car les contraintes de conception sont si différentes (les navigateurs Web ne prennent en charge qu'un petit nombre de contrôles, utilisent souvent la disposition de flux (pas de grille), etc. De même, les événements sont différents (un bouton de formulaire Web n'est pas le même qu'un bouton de formulaire Windows, etc.)

Ce que vous pouvez réutiliser facilement, bien que, si vous faites les choses correctement, c'est la logique métier. vos classes afin qu'elles ne sachent pas en interne s'il s'agit d'un formulaire Windows ou d'un formulaire Web (ou d'une application console, ou d'un service Web, etc.), c'est-à-dire que les classes doivent être de simples implémentations de votre logique métier. vous pouvez utiliser ces classes dans tous les contextes que vous voulez

1

Je ne l'ai jamais fait auparavant, mais je suppose que vous pouvez placer le code commun sur une classe séparée. L'interface utilisateur devra être dupliquée en tant que formulaires Windows et asp.net auront des approches de programmation totalement différentes.

3

La réponse courte à votre question est oui - il suffit de séparer le code que vous souhaitez partager entre les deux vues dans une classe indépendante de l'interface, de préférence dans un assembly séparé, et d'inclure cet assembly.

La réponse longue est plus compliquée - la possibilité de faire cela varie d'une application à l'autre. Vous serez en mesure de séparer moins de code pour les applications intensives d'interface utilisateur qui ne font pas beaucoup derrière les coulisses (comme, disons, une sorte de jeu graphique), que vous le ferez pour une application d'interface utilisateur très simple qui fait beaucoup derrière les scènes (disons, une interface utilisateur qui consiste en un seul bouton qui déclenche alors un processus complexe de manipulation de données).

À la fin - .NET vous offre la possibilité de le faire. Votre capacité réelle à le faire dépendra beaucoup de vos propres capacités de conception et de vos besoins particuliers. Il y a beaucoup d'écrits disponibles sur ce sujet - je suggère de commencer par jeter un oeil à Design Patterns (bien que le livre original écrit des exemples en C++, je crois que quelqu'un a fait un livre avec des exemples en C#. la qualité de celui-ci.)

Questions connexes