.NET без использования DLL - PullRequest
5 голосов
/ 15 июня 2010

У меня возникла проблема с безопасностью.Банк не позволит использовать DLL в проекте.Какая структура нужна для того, чтобы DataAccess и / или могли использовать внешние сервисы (например, почтовый клиент mailchimp, icontct).

Кто-нибудь еще сталкивался с подобной проблемой раньше?Если у них есть, как проект должен быть структурирован (.net 3.5 +).

Спасибо, KJ

Ответы [ 3 ]

15 голосов
/ 15 июня 2010

Полагаю, вы можете сделать это с ILMerge .По сути, вы объединяете все необходимые библиотеки DLL в основной EXE-файл.

5 голосов
/ 15 июня 2010

Вы имеете в виду, что никакие внешние DLL не могут быть использованы?.NET - это, в основном, серия DLL (BCL) + среда выполнения.Однако я могу себе представить, что этот банк хочет иметь возможность проверять код вашего приложения без необходимости проверять какие-либо внешние сборки с помощью .NET Reflector.В этом сценарии даже использование ILMerge не сработает, потому что это не устранит проблему безопасности.Он просто скрывает эти внешние сборки внутри ваших сборок приложений и делает все более трудным для проверки.

Я думаю, что вы можете использовать как можно меньше внешних структур, и если вы их используете, позвольте банку проверить ихс .NET Reflector и покажите, какую именно конфигурацию вы используете.

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

Несмотря на то, что организации такого типа весьма обычно проявляют большую консервативность, невозможность использовать какие-либо внешние библиотеки DLL является крайне экстремальной.Эти организации обычно имеют белый список версий конкретных платформ, которым они доверяют.Вы должны попросить этот список.У них должен быть один.

4 голосов
/ 15 июня 2010

Возможно, вы захотите уточнить их требование.Я подозреваю, что когда банк говорит «нет DLL», они действительно означают «нет пользовательских DLL в системе32».Если это действительно то, что они имеют в виду, вам следует использовать dll в папке вашего приложения (или, если это веб-приложение - в его папке bin).

Если это не так, и онидействительно запретить использование любых библиотек DLL, которые еще не установлены в их системах, вы все равно должны иметь возможность использовать .Net Framework точно так же.Сборки CLR / BCL загружаются из GAC и предварительно устанавливаются на любой компьютер с .Net.

Конечно, если на их компьютерах не установлено .Net ...: -)

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