|
![]() |
#1 |
Участник
|
Можно еще создать обычный DataSet в VS (xsd-схема), написать для каждого DataTable свой DataAdapter и выводить данные DataGrid. Если уж вы ушли от портала Dynamics AX, то и пишите с использованием только чистого .NET. Мне кажется, так меньше граблей соберете.
|
|
![]() |
#2 |
Участник
|
Цитата:
Каким образом можно в нашем случае использовать DataAdapter, кроме непосредственного подключения к SQL базе Аксапты? Насколько я понимаю, какого-то готового провайдера данных для Аксапты нет. А использование базы Аксапты напрямую лишает всех преимуществ работы с Аксаптовским DataSet. Но, это еще пол-беды. Вы же не собираетесь программировать генерацию родных для Аксапты RecId? Или вы имели в виду что-то другое? |
|
![]() |
#3 |
Участник
|
Вопрос к специалистам по ASP.NET
Попробовал открыть форму "Активные пользователи" в Аксапте и посмотреть, что происходит, когда на тестовой asp.net странице я пытаюсь вызвать метод Logon() из Аксаптовского класса Axapta, лежащего в сборке Microsoft.Dynamics.BusinessConnectorNet .
Оказалось, что сессия с Бизнес-коннектором честно устанавливается, но при этом, присутствующий на asp.net странице Аксаптовский контрол AxDataSource эту сессию не находит. Дальше интереснее. Если заменить родной пул приложений сайта на пул приложения работающего на SharePoint Аксаптовского портала, то можно увидеть следующее... Сессия создается еще до загрузки какой либо страницы с сайта! То же самое происходит, когда мы открываем тестовый сайт в Visual Studio 2008. Сессия опять же создается еще до запуска какой либо страницы. Все это наводит на мысль, что всегда инициализация контрола AxDataSorce происходит ДО вызова любого метода, вызванного событием на asp.net странице, в одном из которых я использую Logon(). То есть, получается, что у нас должен быть создан класс C#, который не привязан ни к одной странице и один из методов этого класса должен запускаться по событию не на странице, а по событию IIS. Например, по любому запросу любой страницы из браузера клиента. Дело в том, что веб-приложение кардинально отличается от виндовс-приложения тем, что у веб-приложения нет метода Main(). Соответсвенно, нужно как-то извратиться, чтобы установить сессию с Аксаптой один раз, когда клиент зашел на сайт. Далее, держать ее включенной все время, пока он запрашивает страницы и, наконец, завершить, когда клиент ушел с сайта. Вот тогда, наверное, AxDataSource всегда будет работать. Попытки посмотреть, как это устроено в Портале на SharePoint, ни к чему не приводят. Там все закрыто и посмотреть код невозможно. Получается, что в обычных asp.net приложениях все подключения к данным производятся путем настройки ConnectionString в web.config сайта. В традиционных windows-приложениях с помощью Logon() и далее работой только с записями отдельных таблиц, но не с Аксаптовским DataSet (судя по хелпу) А вот использование Data Source в плане интеграции с веб-приложениями нигде не документируется. Вопрос к знатокам, - как заставить работать код в классе, не привязанный к конкретной странице не по событиям страницы и в каком NameSpace находятся обработчики событий IIS, к которым можно было бы привязать метод с вызовом Logon() ? |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от Narayana
![]() Все это наводит на мысль, что всегда инициализация контрола AxDataSorce происходит ДО вызова любого метода, вызванного событием на asp.net странице, в одном из которых я использую Logon(). То есть, получается, что у нас должен быть создан класс C#, который не привязан ни к одной странице и один из методов этого класса должен запускаться по событию не на странице, а по событию IIS.
Цитата:
|
|
|
За это сообщение автора поблагодарили: Narayana (1). |
![]() |
#5 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() Будучи далек от веб-разработки, я слышал, что подобный код можно написать в обработчиках событий Application_Start или Session_Start в Global.asax
А еще в ASP.NET при работе с IIS начиная с версии 7.5 (который идет на W7 и W2K8 R2) можно выполнять код для "разогрева" веб-приложения, реализуя интерфейс System.Web.Hosting.IProcessHostPreloadClient, см. Автозапуск приложений ASP.NET Спасибо. Попробовал вызвать Logon() из global.asax . Действительно, соединение создается и в списке активных пользователей появляется, но, к сожалению, AxDataSource и другие контролы Аксапты типа AxUserControlWebPart это соединение не видят. Все получается немного глубже. А именно... При создании сессии в форме "Активные пользователи" появляется два активных пользователя, - с типами сеансов "Business Connector" и "Веб пользователь". Причем, если попытаться вызвать Logoff(), эти соединения никуда не исчезают. А если при существующей сессии попытаться еще раз вызвать Logon(), то добавляется только новый сеанс "Веб пользователь", а "Бизнес Коннектор" не появляется. Похоже, авторизация не происходит до конца... |
|
![]() |
#6 |
Участник
|
Цитата:
|
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от Dreadlock
![]() Есть приблуда которая позволяет просматривать код используя Рефлексию
То, что Портал не отображается корректно под Хромом, все перевернуло в голове. Вот, представьте себе... вы выделяете из Портала нужные куски, настраиваете доступ для потенциальных представителей, которые могут быть довольно разношерстным народом в отличие от корпоративных пользователей. Долго возитесь с допрограммированием системы регистрации пользователей... Все готово... Вы пробуете под разными браузерами и оказывается, что под Хромом, на котором работает больше 30% народа, ваше приложение нормально не работает. И ваши ощущения? )) Нет. Что-то не так в Датском королевсте... ) Все-таки для большой корпоративной системы типа Аксапты должны существовать эффективные инструменты работы с розницей и создания Фронт-офисов под вебом. А SharePoint для этого никак не катит. |
|
![]() |
#8 |
Участник
|
![]() Цитата:
Сообщение от Narayana
![]() То, что Портал не отображается корректно под Хромом, все перевернуло в голове.
Вот, представьте себе... вы выделяете из Портала нужные куски, настраиваете доступ для потенциальных представителей, которые могут быть довольно разношерстным народом в отличие от корпоративных пользователей. Долго возитесь с допрограммированием системы регистрации пользователей... Все готово... Вы пробуете под разными браузерами и оказывается, что под Хромом, на котором работает больше 30% народа, ваше приложение нормально не работает. И ваши ощущения? )) ![]() |
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от Dreadlock
![]() Можно в хром установить вот это
![]() ![]() |
|
![]() |
#10 |
Участник
|
Цитата:
Готового нет, нужно написать. |
|
![]() |
#11 |
Участник
|
Цитата:
А я как раз и не могу добиться, чтобы он находился для работы с данными... ) Потому как, если найдется, то можно ведь и DataSource использовать... |
|
Теги |
asp.net |
|
|