MS CRM 4.0 SDK — начальная задержка запроса/ускорение загрузки приложений .NET

Я использую C# .NET SDK для MS CRM 4.0. В частности, я использую интерфейс XRM SDK.

Когда я запускаю клиентское приложение, первый запрос (например, получить всех пользователей crm-системы) занимает около 5 секунд. Накладные расходы возникают до того, как что-либо будет отправлено по сети (наблюдается в wirehark). Вот почему я предполагаю, что задержка связана с некоторыми накладными расходами на загрузку .NET.

Я нашел некоторые пояснения по адресу http://www.eggheadcafe.com/software/aspnet/31916049/the-initial-delay-when-using-the-crmservice-is-caused-by-two-things.aspx< /а>:

Первоначальная задержка при использовании CrmService вызвана двумя причинами. Сначала должен быть скомпилирован прокси-класс CrmService (из IL в родной) и загружена сериализация. Это требует большого объема обработки и, следовательно, времени. Эта компиляция происходит только при первом создании экземпляра прокси crmservice в AppDomain.

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

Это нормальное поведение для .NET framework. Вы можете оптимизировать время загрузки CrmService, создав новый прокси-сервер службы с помощью инструмента WSDL и удалив все запросы и объекты, которые вы не используете. Проблема в том, что это требует много работы.

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

Я экспериментировал с GAC и нативными изображениями - безуспешно.


person nang    schedule 19.11.2010    source источник


Ответы (2)


Вы можете отказаться от использования строго типизированных прокси-классов интерфейса WSDL и просто использовать динамический класс сущностей для SDK.

Это не требует генерации или загрузки классов сериализации. Но это потребует от вас использования динамического представления объекта, которое более громоздко и подвержено ошибкам.

person Clint Simon    schedule 19.02.2011
comment
Недавно я нашел расширение для генератора типов ранней привязки Dynamics CRM, которое позволяет пропускать неиспользуемые сущности. В результате количество и размер сгенерированных типов ранней привязки уменьшается: xrmearlyboundgenerator.codeplex.com - person nang; 08.06.2015

См. эти ссылки для возможного подхода к сокращению задержки запуска.

person ccellar    schedule 02.04.2011