Какую платформу выбрать для реализации
Добавлено: 10 май 2015, 13:02
Передо мной стоит задача разработать продукт. Основное предназначение - многопоточный сбор данных с определенного вебресурса.
Сейчас мы работаем на C# и он нас частично устраивает. Есть одна проблема - отсутствие защиты приложения на C# от анализа и взлома.
В продукте планируется следующий принцип защиты. Система будет при каждом запуске продукта запрашивать настройки, необходимые для работы, с сервера по SSL соединению. Это, конечно, усложняет взлом. Однако, догадываюсь, что приложение C# несложно дампировать в рантайме и получить переданные с сервера настройки, чтобы в будущем сделать подложку (которая вместо обращения к серверу сама инициализирует приложение нужными настройками).
Таким образом, решили посмотреть в сторону разработки на C++ . На данный момент мы предъявляем следующие требования к среде разработки:
Что посоветуете вы? Какую платформу для разработки выбрать? Как лучше скомбинировать части моего программного комплекса, чтобы добиться полного или почти полного соответствия предъявляемым требованиям.
Сейчас мы работаем на C# и он нас частично устраивает. Есть одна проблема - отсутствие защиты приложения на C# от анализа и взлома.
В продукте планируется следующий принцип защиты. Система будет при каждом запуске продукта запрашивать настройки, необходимые для работы, с сервера по SSL соединению. Это, конечно, усложняет взлом. Однако, догадываюсь, что приложение C# несложно дампировать в рантайме и получить переданные с сервера настройки, чтобы в будущем сделать подложку (которая вместо обращения к серверу сама инициализирует приложение нужными настройками).
Таким образом, решили посмотреть в сторону разработки на C++ . На данный момент мы предъявляем следующие требования к среде разработки:
- Возможность затруднить анализ исходного кода и сделать проблематичным взлом системы лицензирования. При этом, не исключается возможность использования каких либо сторонних платных протекторов. В случае с C# это вряд ли поможет, а вот в случае с C++, скорее всего, сможет значительно усложнить взлом и анализ.
- Трудоемкость реализации не должна быть намного большей, чем в рамках C#.
- Возможность создать код, работающий с оптимальной скоростью (в частности в рамках многопотока). В С# мы реализуем многопоточность с помощью механизма тасков. Альтернативное решение должно работать как минимум не медленнее.
- Возможность работы с большими объемами данных (на ресурсе для парсинга более 10 млн страниц).
- Сделать качественный визуальный интерфейс. При этом скорость создания и корректировки должна не сильно уступать тому, как это делается на DevExpress под C#.
- Программный комлекс должен быть портативным, в частности, работать на диапазоне актуальных версий Windows, начиная с XP, Win7 и так далее (в том числе серверный системы) , а также в рамках 32 и 64-х битной разрядности. В идеале - сделать возможность хотя бы части программного комплекса быть универсальной для работы на любых популярных ОС, как минимум Windows и Mac.
Что посоветуете вы? Какую платформу для разработки выбрать? Как лучше скомбинировать части моего программного комплекса, чтобы добиться полного или почти полного соответствия предъявляемым требованиям.