Вопрос

Я создаю платформу веб-приложений на C# для Asp.Net.Фреймворк состоит из смеси файлов dll, файлов aspx с файлами кода программной части, файлов кода в App_Code, файлов CSS и изображений.

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

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

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

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

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

Решение

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

Для этого встройте весь свой статический контент (изображения и т. д.) в сборку с помощью встроенных ресурсов.Именно это делают поставщики компонентов, такие как Telerik, чтобы обеспечить развертывание единой сборки для своих элементов управления.Затем встроенные ресурсы можно обслуживать с помощью поставщика виртуальных путей.Eсть хорошая статья чтобы начать работу с поставщиками виртуальных путей на msdn.При использовании проекта веб-приложения вы даже можете встраивать страницы (.aspx) и пользовательские элементы управления (.ascx) в качестве ресурсов.

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

Однако есть несколько ограничений.

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

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

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

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

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

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

Марк

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

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