Попытка разобраться с временным лицензированием приложений магазина

Автор Тема: Попытка разобраться с временным лицензированием приложений магазина  (Прочитано 57013 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Хотел бы понять суть и организацию защиты программ магазина через сервер Автодеска используя Entitlement API.
Получил несколько ответов от Viru в ходе переписки. Вот один из них раскрывающий более менее смысл, но не до конца.

Need : Lisp need “some” external help to call App store web based entitlement API. To know about entitlement API refer http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=24243865 . You can use any language which is capable of calling web based API. As lisp cannot perform this web based API, we have used .NET to make the web API call. 

еще:
unfortunately even arx sample depends on .NET to make the web service call (similar to lisp).

Насколько я понял без компиляции .NET не обойтись. Тогда как вообще все устроено. Что нужно загрузить в Автокад (какие файлы и что касательно .NET) помимо своего приложения чтобы связь с сервером заработала? Чтобы, например, функция в лиспе стала рабочей.
Непонятно также если Viru пишет, что реализовать можно на любом языке, но потом оказывается что arx и лисп не могут без .NET. Как тогда .NET редактировать, компелировать и загружать для человека который никогда с ним не был связан?
Не вериться что на с++(arx) нет примеров кода как вызывать web based API чтобы не трогать .NET, который думаю остановит многих от попыток понять, развивать и применять Entitlement API.

Жду разъяснений от людей на практике переваривших эту кашу.

   

 

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Вот пример от ADN DevTech: https://github.com/ADN-DevTech/EntitlementAPI/tree/master/Autodesk%20EntitlementAPI_AutoCAD.bundle/Contents/source
Основной код написан на C# - так намного проще - в виде lisp-функции с именем TestEntitlementLisp. Её же можно вызвать и из lisp и из ObjectARX (при помощи acedInvoke).
Теоретически наверное можно переписать на чистом C++, но я бы за это не стал браться если нет опыта Web-программирования на C++.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Непонятно также если Viru пишет, что реализовать можно на любом языке, но потом оказывается что arx и лисп не могут без .NET.
lisp однозначно не может самостоятельно использовать это API - ну нет у него таких возможностей. А вот на arx можно сделать, но (!!!) готовый пример (sample) от них использует .NET, так как это намного проще и в нём уже есть все готовые библиотеки.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Понимание приходит медленно. Мне было понятно чтобы в лиспе заработала эта функция, то нужно как минимум загрузить arx файл где она прописана. Сейчас после ответа стало понятно что можно вообще не использовать arx, а эта функция появиться за счет .NET. А вот теперь вопросы:
1. NET приложение это программный файл, но с другим расширением, c каким?
2. Как его загружать из лиспа в Автокад, поскольку в лиспе будет проверка? По типу как arx файлы - arxload().
3. Как вообще компилировать проект .NET если он вообще не открывается в VS 2015. Я же надеюсь запускать и поэкспериментировать  в 2017 Автокаде. Кстате если приложение для Автокадов 2013-2017 это что нужно также как arx компилировать на трех VS.
4. Если его .NET нужно компилировать, то тогда там нужно что то менять? Что?
5. Кроме .NET какой язык еще может вызывать web based API? Может быть обычный Javascript?

Хотелось бы получить конкретные короткие ответы на мои вопросы, думаю не последние.

Вариант когда в ответ присылают 7-8 ссылок на ресурсы объясняющие частями одну данную тему не подходит - трудно четко представить что нужно и что точно делать.   





Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
1. NET приложение это программный файл, но с другим расширением, c каким?
Обычно dll, хотя расширение не принципиально. Можно и exe.
2. Как его загружать из лиспа в Автокад, поскольку в лиспе будет проверка? По типу как arx файлы - arxload().
Командой NETLOAD. А если ты делаешь BUNDLE, то там это совсем просто.
3. Как вообще компилировать проект .NET если он вообще не открывается в VS 2015. Я же надеюсь запускать и поэкспериментировать  в 2017 Автокаде. Кстате если приложение для Автокадов 2013-2017 это что нужно также как arx компилировать на трех VS.
Не понял. Что значит не открывается?
Кстате если приложение для Автокадов 2013-2017 это что нужно также как arx компилировать на трех VS.
Желательно. Хотя вероятно достаточно и одного.
5. Кроме .NET какой язык еще может вызывать web based API? Может быть обычный Javascript?
Зачем тебе еще какие-то заморочки если тебе нужно это использовать в lisp/arx?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
3. Как вообще компилировать проект .NET если он вообще не открывается в VS 2015. Я же надеюсь запускать и поэкспериментировать  в 2017 Автокаде.
Открыл проект в VS 2015, изменил пути к .NET-сборкам AutoCAD  (в каталоге ObjectARX\inc). И вуаля:


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Вариант когда в ответ присылают 7-8 ссылок на ресурсы объясняющие частями одну данную тему не подходит - трудно четко представить что нужно и что точно делать.   
Увы, но чаще всего именно так и бывает. Так что придётся приложить усилия, потратить время и добиться результата.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
У меня проект не открывается. Новая тема, нечего больше сказать, может vs не полный, не знаю.

А нельзя было Автодеску сделать для людей не (TestEntitlementLisp) а ту же  функцию лиспа (либо arx) но с параметрами индентификатора приложения и т.п. Раз уж все равно она уже реализована. Чтобы вообще не лезть в .NET тем кто никогда с ним не имел дело. Тогда бы можно было только распространять готовые откомпилированные .NET приложения для текущих версий Автокада.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
У меня проект не открывается. Новая тема, нечего больше сказать, может vs не полный, не знаю.
Какой файл открываешь и какое сообщение об ошибке? Открывать нужно было файл \source\NET\EntitlementAPI_AutoCAD.sln
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А нельзя было Автодеску сделать для людей не (TestEntitlementLisp) а ту же  функцию лиспа (либо arx) но с параметрами индентификатора приложения и т.п. Раз уж все равно она уже реализована. Чтобы вообще не лезть в .NET тем кто никогда с ним не имел дело. Тогда бы можно было только распространять готовые откомпилированные .NET приложения для текущих версий Автокада.
Это вопрос риторический. Не сделали - значит решили, что она не нужна достаточному количеству разработчиков.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
...проект открылся, почему не знаю, свойства проекта не открываются проект не компилируется.

Чувствую времени нужно немерено чтобы разобраться и в NET и вообще в эффективности такой защиты.
Пока которого нет.

На счет "риторического вопроса" я подкину мою идею программистам Автодеска. Думаю она не только бы мне пригодилась.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Чувствую времени нужно немерено чтобы разобраться и в NET и вообще в эффективности такой защиты.
На то, чтобы заставить работать этот пример будет достаточно одного дня. Тем более, что C# достаточно схож с C++.
Ошибки именно те, о которых я писал выше, потому что ты "не":
Цитировать
изменил пути к .NET-сборкам AutoCAD  (в каталоге ObjectARX\inc)
как я писал выше.
Вот видео:
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Если я правильно понял, то возникает ошибка при входе в свойства проекта. Чтобы этого не возникало попробуй удалить файл EntitlementAPI_AutoCAD.v11.suo до открытия проекта в VS. Возможно понадобится регистрация msxml3.dll:
Старт —> Выполнить —> regsvr32  %SystemRoot%\System32\msxml3.dll
Старт —> Выполнить —> regsvr32  %SystemRoot%\SysWOW64\msxml3.dll
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
А нельзя было Автодеску сделать для людей не (TestEntitlementLisp) а ту же  функцию лиспа (либо arx) но с параметрами индентификатора приложения и т.п. Раз уж все равно она уже реализована. Чтобы вообще не лезть в .NET тем кто никогда с ним не имел дело. Тогда бы можно было только распространять готовые откомпилированные .NET приложения для текущих версий Автокада.
Стимулируют переход программистов на .NET и другие, более подходящие для серьезного программирования инструменты. Раз уж доросли до выкладывания приложений в магазин и их защиты, то необходимо освоить .NET хотя бы на уровне "скомпилировать готовый проект".

Оффлайн BearDyugin

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Вот пример от ADN DevTech: https://github.com/ADN-DevTech/EntitlementAPI/tree/master/Autodesk%20EntitlementAPI_AutoCAD.bundle/Contents/source
Блин я даже скачать не знаю как :-(

Я правильно понимаю там в функцию TestEntitlementLisp уже записаны параметры #приложения и #пользователя? Если эти параметры сделать передаваемые в качеств аргументов, то можно тогда скомпилировать одну универсальную для всех Lispописателей функцию?
Понятно что враги могут узнать об этой функции и тупо переопределить её, но кто сильно захочет тот и так всё взломает и обойдёт.