В ASP. NET можно ли хранить файлы классов в папке не в app_code? - PullRequest
0 голосов
/ 26 мая 2020

Мои поисковые навыки, кажется, подводят меня в этом. Это простой вопрос;

В ASP. NET можно ли хранить файлы классов в папке не в app_code?

То, что я пытаюсь выполнить sh, создавать файлы классов, которые при добавлении (или изменении) на веб-сайт не вызывают перезапуска веб-сайта. Все, что находится под App_code или в папке bin, вызывает перезапуск. Мы не используем. NET для уровня представления.

Моя причина проста, мы вносим изменения довольно регулярно, и я не хочу ждать до c определенного времени, чтобы добавить / изменить функцию . Это круглосуточные веб-сайты, и сейчас не самое время перезапускать их.

Изменить:

Я использую FluorineFX для доступа к среднему уровню. Я создал папку под названием "ProdCode" из root приложения. Когда я пытаюсь получить доступ к NameSpace ProdeCode, класс Employee_Calendar метод getEvents. Я получаю сообщение об ошибке «Не удалось найти запрошенный тип ProdCode.Employee_Calendar»

1 Ответ

0 голосов
/ 26 мая 2020

Ну, цель без перезапуска сильно отличается, и ОГРОМНАЯ отличается от возможности разместить модули кода или модули классов в какой-то другой папке.

Когда вы создаете проект, большинство модулей (и классов) в любом случае сжаты до единой .dll.

Итак, пока вы можете добавлять новые папки и внутри этих папок добавлять новые модули кода / классов? Это не может полностью устранить необходимость повторной загрузки сайта или, фактически, повторной компиляции кода сайтом.

Весь app_code и любой другой модуль кода будут вывернуты и в результате получится единственный файл .dll. Итак, я не понимаю, как вы собираетесь получить или выиграть здесь что-то новое. модули кода (и класса) в другом проекте. Это предложило бы внешний .dll. Это будет работать во время отладки, но при публикации без отладки происходит использование "il-merge", и, таким образом, gazillion .dll объединяются в одну.

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

итак, до этого момента? Эй, все отлично.

Но, чтобы сэкономить время на повторную компиляцию сайта? Нет, здесь поезд летит с большого сломанного моста , и вся она рушится ОГРОМНЫМ шаром пламени.

Возможно, вы сможете сделать то же самое некоторое время во время отладки, но те включенные модули втянуты в «основную» .dll (то же имя как ваше приложение). Go проверьте папку «bin» сейчас - вы не видите .dll app_code, а только одну основную .dll с именем вашего проекта.

Такое время повторной компиляции скорее полезно быстро, чтобы сайт перезагрузился. Если вы просто меняете разметку, тогда нормально. Но идея о том, что вы хотите включить скомпилированный код и пытаетесь избежать повторной загрузки? Нет, я бы не стал рассматривать это - даже если бы вы могли ! Я означает, сколько раз вы видели, как код завершался сбоем или НЕ выполнялся даже после публикации sh и ЗАБЫВАЯ перезапускать веб-сервер? Эти .dll часто загружаются в память, блокируются, и существует более 100 проблем. Я много раз терял полдня, потому что мои .dll не занимали (из-за того, что я не перезапускал веб-сервер). есть боль, а затем есть такая «боль», при которой части вашего приложения не загружаются. Я просто не могу представить себе риск против вознаграждения, пытаясь сэкономить время ??? - Мне что-то здесь не хватает?

...