Повторное использование компонентов между ASP.NET и C#.NET.

StackOverflow https://stackoverflow.com/questions/416696

Вопрос

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

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

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

Спасибо.

Редактировать:

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top