Я в настоящее время использую папку App_Code для всех моих классов, и для меня (на данный момент) это, кажется, работает просто великолепно.
Я однако рассматривал переключение на Проект Библиотеки классов в моем Решении вместо папки App_Code. Кто-либо может сказать мне за и против о выполнении этого?
Одна мысль, которую я имел, была относительно тестирования моего веб-приложения. Если я использую Библиотеку классов, я должен скомпилировать ее каждый раз, когда я хочу настраивать/тестировать? Очевидно, в папке App_Code я не имею к начиная со всей компиляции Классов во времени выполнения.
Две возможности:
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 набор кода.
Джимми Богард (автор Automapper) написал отличную статью о том, как он структурирует свой код, что может помочь в подтверждении ответа @David.