AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2021, 18:47   #1  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от mazzy Посмотреть сообщение
я не знаю как разжевать еще, кроме как процитировать свое первое собщение.
в нем я постарался сформулировать задачу масимально кратко и четко.

если вы чего-то не видите в задаче, то исходите из того, что я посчитал это не важным. Не забыл, не "не нравится", а просто это не влияет на ответ, на мой взгляд.

если вы считаете какой-то аспект важным, то вводите его в свой ответ и расскажите
ax2012,ax2009: как правильно передать 100500 элементов коллекции через WCF?
Уверен, что недопонимание вызвано простейшей вещью. В силу особенности рыночной ниши, практически все здесь не кодеры, а скорее 3 в 1, программисты создающие решения для конечного пользователя.

И восприятие требований у нас уже профессионально особенное. Задачи практически всегда бизнес-задачи, а не узкие технические задачи как в других IT нишах.

В постановке вопроса просто никто не увидел задачи. А увидел некое решение. И как раз неправильно задачу подменять решением. В собственной голове неправильно.

Но если буквально то на вопрос ax2012,ax2009: как правильно передать 100500 элементов коллекции через WCF?[/QUOTE]
то "правильно" на мой взгляд следуещее:

C точки зрения современного .NET разработчика. Если узко и без общей картины.

- использовать сборки (DLL) последних версий .NET на обеих серверах.
В X++ просто обращаться к этим DLL. Pagination, streaming, JSON - все опции.

Самое "правильное" c точки зрения .NET разработчика это использовать даже не WCF, а gRPC

https://docs.microsoft.com/en-us/asp...aspnetcore-6.0

https://grpc.io/docs/what-is-grpc/

Для опыта .NET это правильно. Ну там прокси понадобятся между .NET и .Core, но это остается все очень правильным для .NET разработчика.

С точки зрения же Microsoft, "правильно" это
SQL Data Sync for Azure
https://docs.microsoft.com/en-us/azu...r-sql-database
Все на крючок и это правильно.

С точки зрения клиента когда обе базы в одном домене, безусловно правильно
делать обмен данных на уровне баз данных. Как угодно хранимыми процедурами или из X++, не так важно.
WCF как веб-сервис дорога это компромисс когда порты закрыты, организации со своими полиси и пр.
Правильно потому что стоимость.

Кстати, обмениваться через SFTP можно и бинарными и зашифрованными файлами. Если единственный недостаток обмена файлами это открытость для редактирования то самое правильное это просто сделать так чтобы их нельзя было редактировать.
Это возможно правильно с точки зрения постановки цели.
За это сообщение автора поблагодарили: mazzy (2).
Старый 12.12.2021, 14:23   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Цитата:
Но если буквально то на вопрос ax2012,ax2009: как правильно передать 100500 элементов коллекции через WCF?
то "правильно" на мой взгляд следуещее:

C точки зрения современного .NET разработчика. Если узко и без общей картины.

- использовать сборки (DLL) последних версий .NET на обеих серверах.
ax2012 использует .net 4.0
ax2009 использует .net 3.5

мало того, что классические Аксапты используют старые .net, дык они используют разные версии .net. Собственно поэтому они в вопросе и упоминаются явно.

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

https://www.youtube.com/watch?v=G7wz4lZZo2s
__________________
полезное на axForum, github, vk, coub.
Старый 12.12.2021, 14:51   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ax_mct Посмотреть сообщение
C точки зрения современного .NET разработчика.
...
- использовать сборки (DLL) последних версий .NET на обеих серверах.
Ладно, хер с ней, с Аксаптой.

т.е. вы предлагаете:
= либо перекомпилировать работающие системы в Latest Target (ха-ха-ха, сразу отбросим этот вариант)
= либо создать какую-то прокси-библиотеку, которая скомпилирована в Latest Target, а старые системы каким-то волшебным образом будут использовать эту прокси библиотеку.

Название: ax.png
Просмотров: 288

Размер: 8.1 Кб

если так, как современный .NET разработчик, расскажите (лучше в отдельной ветке) как старые системы будут вызывать и принимать вызовы(!) Stream API, при условии что они ничего не знают о Stream API.

Если не Stream API, то собственно вопрос "как правильно передать 100500 элементов коллекции"?
и как предлагаемый вами способ в этом поможет

Добавлено: и да, учтите, что gRPC основан на Stream API. Что почти все его хваленые преимущества - это преимущества Stream API.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 12.12.2021 в 15:09.
Старый 12.12.2021, 20:34   #4  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от mazzy Посмотреть сообщение

т.е. вы предлагаете:
= либо перекомпилировать работающие системы в Latest Target (ха-ха-ха, сразу отбросим этот вариант)
= либо создать какую-то прокси-библиотеку, которая скомпилирована в Latest Target, а старые системы каким-то волшебным образом будут использовать эту прокси библиотеку.

Если не Stream API, то собственно вопрос "как правильно передать 100500 элементов коллекции"?
Да было бы желание у ударенного на голову .NET разработчика.
С учетом реалий существования .NET и .Core так или иначе есть
попытки писать такие прокси в .NET коммьюнити.

Вот к примеру порт gRPC для Unity .Net 3.5
https://github.com/bwplotka/unity-grpc

Я в свое время Java JSON поток в .NET сборку запихивал. Для AX кстати
Уже даже не помню как. Так или иначе извратиться можно как угодно, было бы желание этим морковкам молиться.

Ни в коем случае ничего не предлагаю эдакого. Но если в качестве варианта то
.NET 3.5 .DLL сообщается с .NET Core DLL через COM interoperability

.NET Framework and .NET Core COM interoperability
https://docs.microsoft.com/en-us/sam...e-com-interop/

Но очевидно для меня что все это прекрасные глупости. Весь AX код он предназначен для того чтобы читать из базы данных и сохранять в базе данных.

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

Но если нужно использовать что-то модное и современное по разным причинам,
то хоть Java хоть .NET любой как транспорт. Все модные слова в транспорте что берет из одной базы и кладет в другую.

В свою очередь X++ работает с данными в этой базе.

Цитата:
"как правильно передать 100500 элементов коллекции"
То есть вариант ответа - через третью, возможно общую, базу данных.

Конечно интересно обсудить чисто программистскую задачу из любви к исскуству. Но в нашем случае какое тут искусство? Размер окошка в камере для раздачи пищи и длина цепи - не предполагают такого понятия. Стул прибитый к полу - наше все.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Trunin's Blogs: Examples of AX2012/ AX2009 performance problems Blog bot DAX Blogs 0 12.01.2020 05:02
Перенос и адаптация кода с Ax2009 на Ax2012 R3 matew DAX: Прочие вопросы 10 23.01.2015 19:52
как передать значение из диалога в форму, вызываемую через menuItem? алька DAX: Программирование 9 25.06.2007 16:46
Передать контейнер в job через COM sao DAX: Программирование 5 21.02.2006 19:34
Как в параметрах подпрограммы передать массив элементов. Yuri Safronov DAX: Программирование 3 14.10.2002 16:35

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:23.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.