Повторное использование компонентов между ASP.NET и C # .NET - PullRequest
0 голосов
/ 06 января 2009

Это может показаться смешным вопросом, поскольку я совершенно неопытен в .NET.

Можно ли создавать компоненты в C #, используя .NET, который можно повторно использовать в ASP.NET. Например, если вы хотите перенести приложение в Интернет.

Если возможно, насколько они портативны? То есть GUI может быть использован в некоторой степени? Существует ли промежуточный формат для использования в качестве базового или требуется использование компонентов C # в качестве двоичных файлов?

Спасибо.

Edit:

Спасибо за ваш вклад! Я хорошо знаком с аспектами проектирования этой проблемы, то есть с тем, как моделировать компоненты для повторного использования. Однако вы заставили меня осознать, что вопрос на самом деле заключается в следующем: в какой степени .NET можно повторно использовать между ASP и Windows? Можно ли сказать, что некоторые пакеты компонентов .NET не зависят от среды, а некоторые зависят от платформы?

Ответы [ 3 ]

5 голосов
/ 06 января 2009

Абсолютно. Класс .NET может использоваться в любом приложении .NET. Однако это зависит от того, о какой части приложения вы говорите.

Как правило, пользовательские интерфейсы Windows Forms НЕ пригодны для повторного использования в качестве пользовательских интерфейсов ASP.NET, поскольку ограничения дизайна настолько различны (т. Е. Веб-браузеры поддерживают только небольшое количество элементов управления, часто используют макет потока (не сетку) и т. Д.). события разные (кнопка веб-формы отличается от кнопки формы Windows и т. д.).

То, что вы можете легко использовать повторно, хотя, если вы все делаете правильно, это бизнес-логика. Создайте свои классы так, чтобы они ничего не знали о том, является ли это формой Windows или веб-формой (или консольным приложением, или веб-службой и т. Д.). То есть классы должны быть чистой реализацией вашей бизнес-логики. Затем вы можете использовать эти классы в любом контексте.

3 голосов
/ 06 января 2009

Короткий ответ на ваш вопрос - да - просто выделите код, которым вы хотите поделиться между двумя представлениями, в независимый от интерфейса класс, предпочтительно в отдельную сборку, и включите эту сборку.

Длинный ответ более сложен - способность делать это будет варьироваться в зависимости от приложения и приложения. Вы сможете выделить меньше кода для приложений с интенсивным пользовательским интерфейсом, которые мало что делают за кулисами (например, какая-то графическая игра), чем для очень простого приложения с пользовательским интерфейсом, которое делает много позади сцены (скажем, пользовательский интерфейс, состоящий из одной кнопки, которая затем запускает сложный процесс манипулирования данными).

В конце концов .NET предоставляет вам возможность сделать это. Ваша реальная способность сделать это будет очень зависеть от ваших собственных дизайнерских способностей и ваших конкретных требований. На эту тему доступно много работ - я предлагаю начать с рассмотрения шаблонов проектирования (хотя в оригинальной книге приводятся примеры на C ++, я считаю, что кто-то написал книгу с примерами на C #. Однако я не могу говорить с качество его.)

1 голос
/ 06 января 2009

Я никогда не делал этого раньше, но я думаю, вы можете поместить общий код в отдельный класс. Пользовательский интерфейс должен быть продублирован, поскольку формы Windows и asp.net имеют совершенно разные подходы к программированию.

...