Проект библиотеки классов VS App_Code - профессионалы / недостатки?

Я в настоящее время использую папку App_Code для всех моих классов, и для меня (на данный момент) это, кажется, работает просто великолепно.

Я однако рассматривал переключение на Проект Библиотеки классов в моем Решении вместо папки App_Code. Кто-либо может сказать мне за и против о выполнении этого?

Одна мысль, которую я имел, была относительно тестирования моего веб-приложения. Если я использую Библиотеку классов, я должен скомпилировать ее каждый раз, когда я хочу настраивать/тестировать? Очевидно, в папке App_Code я не имею к начиная со всей компиляции Классов во времени выполнения.

5
задан David Basarab 17 February 2010 в 04:44
поделиться

2 ответа

Две возможности:

1) проблема с UAC, проблема с патингом, проблема с путем к зависимостям, проблема с безопасностью .NET или другая проблема с разрешениями (может выполняться от имени администратора) для тестирования. Или убедитесь, что сборка имеет видимость всех зависимостей и правильные разрешения (т.е. частные, если в папках bin или рядом с приложением, открытые, если в gac или за пределами пространства приложения).

2) Также убедитесь, что OpenGL можно запустить в окне win7. Возможно, драйвер видео или что-то, пытающееся перечислить профили видео на карте. Обновите драйверы видеокарты. Если используется общая версия OpenGL, убедитесь, что она присутствует на компьютере.

Я знаю, что при создании элемента управления C++ проблемы безопасности .NET являются основной проблемой. Убедитесь, что элемент управления C++ имеет видимость opengl dlls (если они являются общими) и что они находятся в пути загрузки (удалите их все в C :\windows\system32, если все остальные не уверены, что их можно увидеть или поместить в папку частной сборки (bin)).

У нас была та же проблема с набором инструментов для PVR, и оказалось, что одна dll не была в пути зависимости. Хорошим инструментом является DependencyWalker для проверки: http://dependencywalker.com/

-121--4518382-

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

-121--2652695-

Необходимо использовать библиотеку классов. Причины просты.

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

Причиной разделения является создание уровней. Это означает, что сегодня у вас есть веб- сайт, tommorow вас могут попросить сделать программу Windows или новый веб- сайт. Если необходимо изменить пользовательский интерфейс, необходимо скопировать и вставить код. Это означает, что у вас есть 2 или более мест для ведения кода. Это приведет к ухудшению качества кода, исправляя одну и ту же ошибку в 2 и более местах.

Если вы помещаете код в библиотеку. Вы создаете новый пользовательский интерфейс, а затем просто ссылаетесь на библиотеку. Теперь используется только 1 набор кода.

6
ответ дан 14 December 2019 в 13:34
поделиться

Джимми Богард (автор Automapper) написал отличную статью о том, как он структурирует свой код, что может помочь в подтверждении ответа @David.

0
ответ дан 14 December 2019 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: