MS CRM 4.0 SDK - Първоначално забавяне на заявката / ускоряване на зареждането на .NET приложения

Използвам C# .NET SDK за MS CRM 4.0. По-специално, използвам XRM интерфейса на SDK.

Когато стартирам моето клиентско приложение, първата заявка (напр. get all crm systemusers) отнема около 5 секунди. Овърхедът възниква преди нещо да бъде изпратено през мрежата (наблюдавано в wireshark). Ето защо предполагам, че забавянето е свързано с някои режийни разходи за зареждане на .NET.

Намерих някои обяснения на http://www.eggheadcafe.com/software/aspnet/31916049/the-initial-delay-when-using-the-crmservice-is-caused-by-two-things.aspx:

Първоначалното забавяне при използване на CrmService се дължи на две неща. Първо прокси класът CrmService трябва да бъде компилиран (от IL към native) и сериализацията трябва да бъде заредена. Това изисква голямо количество обработка и съответно време. Тази компилация се случва само при първото създаване на екземпляр на crmservice proxy в 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