Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Какую платформу выбрать для реализации


Автор: alexplato 10.5.2015, 11:47
Передо мной стоит задача разработать продукт. Основное предназначение - многопоточный сбор данных с определенного вебресурса. 

Сейчас мы работаем на C# и он нас частично устраивает. Есть одна проблема - отсутствие защиты приложения на C# от анализа и взлома. 

В продукте планируется следующий принцип защиты. Система будет при каждом запуске продукта запрашивать настройки, необходимые для работы, с сервера по SSL соединению. Это, конечно, усложняет взлом. Однако, догадываюсь, что приложение C# несложно дампировать в рантайме и получить переданные с сервера настройки, чтобы в будущем сделать подложку (которая вместо обращения к серверу сама инициализирует приложение нужными настройками).

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

Что посоветуете вы? Какую платформу для разработки выбрать? Как лучше скомбинировать части моего программного комплекса, чтобы добиться полного или почти полного соответствия предъявляемым требованиям.

Автор: tzirechnoy 11.5.2015, 18:16
Цитата
Что посоветуете вы?


1) Не дёргаться. Разницы с указанной точки зрения -- никакой абсолютно.

2) Не страдать хернёй по поводу защиты. Защита реально сработает только в одном случае: весь ваш этот комплекс никому нахер не нужэн. К сожалению, дажэ в этом случае она сработает не на повышэние продаж, а, скорее, наоборот.
Сколько игровая индустрия вбухала в защиту? И всё равно выход игрушки на PC => появление пиратских копий.

Моя практика показывает, что если система нужна -- то за неё платят деньги, поскольку хорошые отношэния с автором этих денег стОят. Ну, не все платят, да, но большынство из тех, кто не платит -- и при невозможности получить бесплатно не заплатил бы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)