В мгновение ока прошло 4 года с тех пор, как Microsoft запустила платформу .net, и .net также претерпел обновления с 1.0 до 1.1 и до 2.0. Из-за привлекательности различных превосходных функций asp.net 2.0 и IDE 2005 все заняты изучением 2.0 и обновлением проекта до версии 2005 для разработки. Но на самом деле многие проекты не могут быть обновлены до новых версий по разным причинам. С течением времени проблема сопровождения старых версий проекта становится все более хлопотной. Хотя .net появился на свет не так давно, 4 года – это достаточный срок, чтобы накопить большое количество проектов.
У меня есть проект, разработанный с использованием vs.net 2002, который не был обновлен по разным причинам (в основном потому, что проект работал хорошо некоторое время до выхода vs.net 2003, а другие программы asp.net на сервере не работают). для адаптации к требованиям безопасности .net 1.1).
Когда платформа разработки компании была обновлена, vs.net 2002 и vs.net 2003 были установлены на компьютер одновременно, что временно решило проблему поддержки разных версий проекта. Позже проект прошел период обслуживания и долгое время не обновлялся. Мой компьютер также был переустановлен, а vs.net 2002 был полностью удален. Но к 2005 году клиенты требовали внесения изменений каждые один или два месяца, и им приходилось действовать быстро. Другого пути не было. Клиенты были настолько потрясающими, что им приходилось вносить изменения даже после периода технического обслуживания. Но вот проблема. Без vs 2002 его невозможно скомпилировать.
Очень хлопотно установить .net framework 1.0 на компьютер и вручную вызвать csc для компиляции модифицированного кода. В проекте много ссылок и написание командной строки очень сложно. Это особенно болезненно, когда в проекте много папок. Я тоже прошел тест и написал программу для его компиляции, но был ленив и так и не осознал этого.
Сегодня мне нужно снова модифицировать программу, и вдруг я вспомнил, что однажды очень рано (в 2002 году) использовал атрибут Src директивы @Page. Используя этот атрибут, asp.net будет использовать собственную модель компиляции вместо использования CodeBehind. из IDE vs.net. Таким образом, код можно опубликовать без компиляции его в dll. При доступе к сайту asp, net автоматически скомпилирует файл aspx и файл .aspx.vb. У этого метода есть два основных недостатка: 1. Файл кода (.vb) должен быть опубликован на сервере. 2. vs.net IDE его не поддерживает. Из-за второй проблемы я отказался от его использования и забыл о нем. Теперь меня беспокоит, что я не смогу скомпилировать программу. Пока измененный код подействует, другие недостатки учитываться не будут. В любом случае, весь исходный код публикуется на сервере. Я добавил атрибут Src в директиву @Page, используя то же значение, что и атрибут CodeBehind, указывая на файл кода. Затем измените код в файле .vb. Обновите, изменения вступят в силу, и обслуживание будет завершено. Так круто. Именно этим я и займусь с этого момента. Поскольку IDE vs.net ее не поддерживает и она упоминается в MSDN, не многие люди могут знать, что .net имеет эту модель компиляции. Поделитесь этим сейчас. Если кто-то испытывает ту же боль, что и я, вы также можете попробовать добавить Src на страницу. Ха-ха, это просто и быстро. Как только код будет изменен, он вступит в силу. Не нужно ломать голову. найти инструменты для его компиляции.
Резюме: Многие люди, включая меня, предпочитают компилировать программу в dll, что больше похоже на выпущенное программное обеспечение. Фактически, метод «публикации всего исходного кода на сервере и полной компиляции кода во время выполнения» очень хорош и значительно упрощает будущие работы по обслуживанию. Многие компании делают для клиентов проекты, которым на самом деле не нужно скрывать исходный код от клиентов. В этом случае использование этого метода принесет огромную пользу для будущих работ по обслуживанию. Независимо от того, был ли .net обновлен n раз или установлена ли на вашем компьютере соответствующая версия инструментов разработки, вам не о чем беспокоиться. справиться со всем.
Примечание. Все версии asp.net поддерживают этот режим компиляции, но IDE vs.net 2002 и 2003 не поддерживает его и не может открыть представление дизайна. Недавно выпущенная версия IDE vs 2005 поддерживает этот режим компиляции. При использовании атрибута Src атрибут CodeBehind больше не требуется, но рекомендуется его сохранить. Он также может помочь вам, если вам вдруг понадобится вернуться к представлению вычислений. Атрибут Inherits не является обязательным, но настоятельно рекомендуется не удалять его, поскольку если вы напрямую привязываете событие к объявлению элемента управления файла aspx (например: OnClick="...."), произойдет ошибка без атрибута Inherits.
Источник: БЛОГ cwbbboy