2009-05-13 4 views
1

Я создаю структуру веб-приложений в C# для Asp.Net. Структура состоит из сочетания DLL-файлов, aspx-файлов с файлами кода, файлов кода в App_Code, css-файлах и изображениях.Как вы помещаете весь сайт asp.net в одну dll?

Я просмотрел проект «Веб-приложение» в Visual Studio 2008. Это помогает удалить все файлы кода и поместить их в одну dll в папку bin. Но все остальные файлы остаются.

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

Как вы это делаете? И есть ли какой-то автоматизированный процесс для этого, так как количество файлов больше 1000.

Любая помощь очень проста!

+0

Вы считаете установщика? –

+0

Это поможет мне разместить весь сайт в dll? Разумеется, это поможет развертыванию, но установка все равно будет содержать кучу файлов, не так ли? –

+0

Да, но как только оно установлено, действительно ли важно, сколько файлов есть? –

ответ

3

Вы можете реально уменьшить сайт в одну сборку, файл web.config и файл global.asax.

Для этого встройте весь свой статический контент (изображения и т. Д.) В сборку с использованием встроенных ресурсов. Это то, что поставщики компонентов, такие как Telerik, делают для развертывания единой сборки для своих элементов управления. Вложенные ресурсы затем могут быть отправлены с использованием поставщика виртуального пути. Существует good article, чтобы получить доступ к поставщикам виртуальных путей в msdn. Если вы используете проект веб-приложения, вы можете даже вставлять страницы (.aspx) и пользовательские элементы управления (.ascx) в качестве ресурсов.

Используя модуль маршрутизации, вы можете реализовать почти прозрачный перевод URL-адресов на страницы, встроенные в сборку.

Есть несколько ограничений, хотя.

  • IIS6 по умолчанию не будет загружать статический контент из вашей сборки. Используйте либо пользовательский обработчик (например, files.ashx/my/static/content.jpg), либо настройте IIS для маршрутизации всех запросов в ваше приложение с помощью сопоставления подстановочных знаков.
  • Вы потеряете поддержку дизайнера в Visual Studio при встраивании страниц в сборку.
+0

Спасибо, это поможет меня. –

2

ASP.NET действительно не имеет «скомпилировать один подход к DLL» (к сожалению - я сам этого хотел, много раз!).

Как вы отметили, веб-приложение помогает уменьшить количество помех.

Web Deployment также помогает в том, что код веб-страниц компилируется в одну DLL и вы можете удалить *.aspx/*.ascx файлы из вашей установки (если это не-обновляемый), но у вас все еще есть много *.compiled файлов валяется.

Так что, к сожалению, я думаю, что на данный момент нет никакого «готового» решения для вашего требования (и, насколько я слышал до сих пор, ничего подобного не планируется для VS2010/ASP.NET 4.0).

Marc

+0

ОК, слишком плохо :(Думаю, мне нужно сделать собственный обработчик и переписать много URL-адресов и создать собственную полуавтоматическую систему. Это займет некоторое время .... спасибо за ответ –

1

ASP.Net имеет «компиляцию в одну DLL» с дополнениями от Microsoft. Взгляните на «Веб-развертывание». Это даст вам возможность компилировать почти все в единую DLL, включая элементы управления ASCX (что является отличным способом их легко перераспределить).

 Смежные вопросы

  • Нет связанных вопросов^_^