Мы попробовали много obfuscators. Ни один из них не работает над большим клиент-серверным приложением, которое использует дистанционную работу. Проблема состоит в том, что клиент и сервер совместно использует некоторый dlls, и мы не нашли obfuscator, который может обработать его.
Мы попробовали DotFuscator Pro, SmartAssembly, XenoCode, Саламандру и несколько маленьких приложений времени, имена которых выходят из меня.
Откровенно говоря, я - убежденная путаница, большой взлом.
Даже проблемами, которые это решает, является не полностью настоящая проблема. Единственной вещью, которую действительно необходимо защитить, являются строки подключения, коды активации, чувствительные к безопасности подобные вещи. Эта ерунда, что другая компания собирается перепроектировать Вашу целую кодовую базу и создать конкурирующий продукт из него, является чем-то от кошмара параноидального менеджера, не действительности.
Управление источником. Subversion - это хорошо.
Есть также несколько хороших онлайн-систем управления версиями, которые стоит проверить.
Многие люди переходят на распределенный контроль версий с помощью таких программ, как git и mercurial . Для этого не требуется центральный сервер для управления версиями - все версии хранятся на всех компьютерах, и вы можете объединять изменения всякий раз, когда собираете компьютеры вместе.
+1 для управления версиями онлайн.
Однако это не помогает со всем (например, с определенными инструментами или [в моем случае] с особыми проблемами, такими как подключенный к домену ноутбук и корпоративная VPN). Я часто использую удаленный рабочий стол, чтобы войти в систему на моем ноутбуке, чтобы выполнять специфические для него вещи (интрасеть, офисный коммуникатор), а мой рабочий стол - для работы разработчиков, поскольку это намного быстрее.
Если вы выберете путь Subversion для хранения исходного кода, я рекомендую попробовать Beanstalk - один репозиторий свободен (ограничение 100 МБ). Затем вы можете получить доступ к своим файлам через TortoiseSVN , клиент Subversion в виде расширения оболочки Windows (Explorer) - также бесплатно.
Распределенное управление версиями - это ответ на вашу проблему.
Для этого требуется только хост (либо папка ftp выполнит эту работу).
Кто-то сказал, что Mercuial и Git, но я reccomand Darcs.
Он написан на прекрасном функциональном языке программирования, очень прост в использовании и очень мощный.
Что ж, раз уж вы упомянули, что кодируете только потому, что это быстрее / лучше, можем ли мы предположить, что у вас все еще будет свой ноутбук (я также прохожу этапы кодирования между ноутбуком и настольным компьютером)?
Если это быстрее из-за наличия мыши и клавиатуры / цифровой клавиатуры, попробуйте VNC для использования экрана вашего портативного компьютера.
Создайте общую папку на портативном компьютере и работайте через сеть.
Я использую SVN (как предложил @Jimmeh), я помещаю его на общедоступный сервер (что замедляет работу), но я могу получить к нему доступ из любой точки мира и продолжить с последнего места, где я остановились.
Я рекомендую принудительно блокировать и делать файлы только для чтения, если они не заблокированы.
Для синхронизации между машинами, которые не подключен (за брандмауэром, vpn, воздушным зазором и т. д.) Я использовал SyncBack . Это бесплатно, настраивается, и я могу копировать профиль на все машины, которые я использую, и настраивать синхронизацию в один клик.
Используя synergy , вы можете управлять одним компьютером с помощью клавиатуры и мыши с другого и использовать копирование и вставку.
Для обмена файлами вы можете использовать NFS или общие ресурсы Windows или ... в зависимости от вашей системы.
Некоторые IDE поддерживают "удаленную работу", детали зависят от IDE и языка, который вы используете. (Я использую NetBeans, например, для компиляции и отладки моего кода на машине, использующей другую систему в каком-то случайном центре обработки данных, работая на моем локальном компьютере)
И затем - конечно же - контроль версий, git, svn, ...