ORM является хорошим соответствием для людей, которые ладят хорошо с программным обеспечением, которое пишет программное обеспечение для них; но если Вы одержимы управлением, что происходит и почему, ORM может быть субоптимальным особенно с оптимизацией базы данных. Любой уровень абстракции имеет расходы и доходы; ORM имеет обоих, но баланс не является правильным еще, по моему скромному мнению. И ORM, в его текущей форме, иронически добавляет уровень абстракции, который все еще помещает классы и unabstacted схемы базы данных к глубоко вместе.
Мой опыт состоит в том, что это может помочь Вам собрать версию подтверждения концепции быстро, но может представить требования рефакторинга, с которыми Вы не можете быть знакомы (по крайней мере все же.)
Добавляют к этому, что инструмент развивается, и лучшие практики и шаблоны не хорошо устанавливаются, ни согласие вида, который позволяет другим программистам (или будущие программисты) чувствуют себя довольными Вашим кодом. Таким образом, я ожидаю видеть выше чем обычно осуществляющие рефакторинг требования некоторое время.
я отложу решение (оптимистично) о том, где оно обоснуется с точки зрения того, чтобы быть господствующей тенденцией. Я не поставил бы текущий проект на нем в этой точке. Мои шаблоны для контакта с несоответствием импеданса являются удовлетворительными в моих целях.
Именно так оно и должно работать. Ваш код по-прежнему доступен, только его труднее понять. Если вы хотите что-то «посильнее», посмотрите Xenocode PostBuild .
Обфускация кода выходит далеко за рамки простого переименования классов, членов и переменных, хотя это важная ее часть.
Например, Dotfuscator использует запатентованный метод, называемый индукцией перегрузки , где многие методы переименованы в то же имя (это возможно, если они имеют разные подписи). В решениях PreEmptive упоминаются случаи, когда треть всех методов в коде переименовывается в (). Другие методы включают в себя переписывание простых итераций как рекурсию, а также морфинг кода .
Фактически, современные методы обфускации вполне подходят для того, чтобы сделать код практически невозможным для обратного проектирования, по крайней мере, вручную. Хотя это правда, что сборки .NET никогда не могут быть RE-безопасными в принципе ,
К сожалению, нет способа чтобы никто не отразил вашу сборку и не преобразовал ее в исходный код. Инструменты обфускации, такие как Dotfuscator, значительно усложнят кому-то на самом деле чтение дизассемблированного кода, где практически все понятные человеку имена могут быть заменены бессмысленными символами.
Если вы выпускаете свой код где угодно, если кто-то достаточно решителен, они это сделают иметь возможность перепроектировать его. Лучшее, что вы можете сделать, - это не тратить на это их время.
Dotfuscator просто затрудняет чтение декомпилированного исходного кода - он не предотвращает саму декомпиляцию.
Версия Visual Studio ограничена, и я бы не стал полагаться на нее для полномасштабной обфускации, если вам нужно что-то развернуть на сайтах клиентов. Возможно, вы захотите посмотреть бесплатную версию Eazfuscator.net .
если у вас есть Professional или Gold Dotfuscator, вы можете заблокировать программу Reflector от открытия ваших сборок.