Повторное использование кода между двумя разными приложениями .net

Мой проект asp.net (4.5 framework) — это традиционный проект веб-форм. Это небольшой проект. Здесь нет разделения на уровни данных/бизнеса. Все классы с App_Code. Теперь я хочу использовать эти же классы из службы Windows .net.

Если я добавлю одну dll проекта, я смогу использовать классы. Но вместо этого есть другой простой способ использовать только эти классы без добавления dll проекта. (i.e) Можно ли создать две разные библиотеки DLL, одна из которых будет содержать только классы app_code. Так что я могу скопировать эту dll в одиночку в мою службу Windows.

Кто-нибудь может помочь?


person user3740952    schedule 29.07.2014    source источник


Ответы (1)


Что вам нужно сделать, так это создать новый проект библиотеки классов, затем добавьте ссылки на эту библиотеку классов со своего веб-сайта и проектов службы Windows. Переместите все общие функции из папки App_Code в библиотеку классов. В зависимости от того, насколько хорошо вы разделили свои проблемы, вам может потребоваться удалить некоторые веб-сайты.

Кроме того, вы можете создать проект библиотеки классов в новом решении, а затем использовать пакеты NuGet для его распространения. Но это, наверное, лишнее для начала.

person mason    schedule 29.07.2014
comment
благодаря. хороший ответ. я попробую это. Нужен еще один небольшой совет. я также должен повторно использовать настройки приложения, определенные в web.config веб-проекта. Является ли хорошим решением загрузить этот XML-файл с помощью какого-либо обработчика и т. д. и использовать его в моем методе запуска веб-сервиса? - person user3740952; 29.07.2014
comment
Нет, так как файлы web.config могут содержать конфиденциальную информацию. Вместо этого скопируйте/вставьте необходимые значения в app.config или создайте API в своей веб-службе, который служба может вызывать для получения информации о настройках. - person mason; 29.07.2014
comment
в порядке. Могу ли я добавить API внутри веб-приложения (не веб-сервиса). Вы можете опубликовать ссылку для этого? - person user3740952; 29.07.2014
comment
Конечно может. Он называется веб-API ASP.NET. Хотя вы также можете использовать Windows Communication Foundation (WCF) . Web API проще, WCF более гибок. - person mason; 29.07.2014