Как развернуть проект ASP.NET, чтобы в файлах .aspx не было кода? - PullRequest
5 голосов
/ 15 марта 2011

Я недавно стал сопровождающим веб-проекта ASP.NET.В ходе развертывания некоторых изменений мы заметили, что в какой-то момент способ развертывания проекта изменился.Проект представляет собой проект веб-приложения.В настоящее время, когда я «публикую» его на своем локальном компьютере, я могу открыть различные файлы .aspx и увидеть некоторый код - небольшой ASP, в основном JavaScript, но большая часть кода, похоже, скомпилирована в .dll.

Мы хотели бы создать и развернуть это приложение, чтобы в файлах .aspx не было кода - так оно работало до того, как предыдущий разработчик прекратил его поддерживать.В файлах .aspx вообще не должно быть кода, просто ссылка на скомпилированные файлы .dll.

Кто-нибудь знает, о чем я говорю и как его настроить?

РЕДАКТИРОВАТЬ Если это помогает, похоже, что в более старой версии приложения в файлах .aspx был только текст с надписью «Это файл маркера, созданный инструментом предварительной компиляции, и его не следует удалять!»Вот к чему я иду.

Ответы [ 4 ]

6 голосов
/ 15 марта 2011

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

. Это позволит переместить все файлы кода в файл .dll и создать файлы .aspx.compiled в качестве указателей на скомпилированные версии в.длл.Похоже на то, что делалось раньше.

1 голос
/ 15 марта 2011

Код не должен быть виден из браузера клиента.

Любой код, который находится в выделенном коде, будет скомпилирован в .dll, на который ссылались бы страницы в приложении.Фактические файлы с выделенным кодом не должны публиковаться с файлами .aspx.

.NET-код в файлах .aspx не должен быть виден на стороне клиента, так как он бесполезен насторона клиента.Это должно быть выполнено на стороне сервера, чтобы представить вывод HTML клиенту.Если в этом случае код .NET виден на стороне клиента, это означает, что сервер его не выполняет, а сайт по сути сломан.

Код JavaScript, конечно, нуждается быть видимым на стороне клиента.Есть способы запутать это, но браузер должен видеть это, чтобы выполнить это.Таким образом, в этом случае этот код должен быть разработан с полным пониманием того, что он является публично видимым, и в него не следует включать ничего проприетарного или компрометирующего.

0 голосов
/ 16 марта 2011

Чтобы не получить код в файлах .aspx, вам нужно написать весь код в этом коде.Вы используете события asp.net в жизненном цикле для генерации клиентского кода.Например, динамически генерируемый HTML и javascript могут быть сгенерированы в Page_Load и записаны в виде Response .Любой asp.net, который вы можете использовать, должен динамически генерироваться в коде вместе со всем остальным.

Вы все равно будете передавать HTML и javascript клиенту, но весь код будет в сборках / dll, кромеИнформация заголовка на страницах aspx.Я сделал это только в контексте веб-службы ( RESTful ), где я отправил XML на iPhone для потребления.Делать это для полного сайта может оказаться довольно громоздким.

Нет смысла делать это, если забота связана с безопасностью.Перемещение кода в сборку не намного безопаснее, чем страница aspx.Если проблема заключается в том, чтобы оставаться кратким, я предлагаю перейти на ASP.NET MVC 3.

0 голосов
/ 15 марта 2011

Код JavaScript должен существовать на стороне клиента, поэтому он должен быть на сервере. Встроенный код ASP? Я хотел бы переписать это в .NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...