2010-06-15 4 views
5

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

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

Спасибо, KJ

+1

я также будет принимать людей, которые говорят мне, что это отсталый вопрос, как я считаю, что концепция develping без библиотек DLL является немного странно. – Kieran

+4

Я не думаю, что вы можете использовать .Net * вообще * без использования DLL, фреймворк полагается на них (например, System.dll). В этом случае вы не можете использовать * Windows * без использования DLL (например, kernel32.dll). –

+1

Был ли кто-то, кто принял это разумное решение, когда-либо заглядывал в системную папку Windows? –

ответ

5

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

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

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


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

+0

Получив немного больше информации о проблеме, это ближайший я собираюсь получить. Минимальное использование внешних dll позволяет им проверять код.(Хуже всего то, что он не имеет ничего общего с их системами, размещенными снаружи и без обмена данными, они просто строгие !!) ... – Kieran

15

Я считаю, что вы можете сделать это с ILMerge. В основном, вы объедините все необходимые библиотеки DLL в основной EXE.

+0

Очень круто. Можете ли вы объединиться в DLL-интерфейсах? –

+2

С некоторыми инструментами, которые вы можете скомпилировать в .net framework, а также –

+0

, хотя это потрясающе, все равно не обойти проблему, которую они мне поставили. Я думаю, что мой вопрос был немного испорчен. Спасибо за ответ =) – Kieran

4

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

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

Конечно, если у них нет .Net установлены на своих машинах ... :-)

+0

+1 за ответ, но Стивен почти полностью рассмотрел сказанное вами. – Kieran

Смежные вопросы