Tech Support > Microsoft Windows > Windows CRM > Interface Change between CRM Rollup 2 and Rollup 3
Interface Change between CRM Rollup 2 and Rollup 3
Posted by Wes Weeks on May 19th, 2008


After installing Rollup 3 on our CRM environment we started getting an error
when someone attempted to create a new opportunity in the context of a
contact (from the contact screen)

While this is occuring in a custom CRM form (from Galeforce) the fault is
not theirs. A quick view of the original dll in the object
browser(Microsoft.Crm.Application.Components.Platf orm.dll) reveals they
(Microsoft) changed the interface between builds. on build 1558 (rollup 2),
there is a method called SetType() however on build 1754 (rollup 3) they
changed the method name to SetCustomerType().

I don't know if a hotfix or the like is available, but interfaces should not
be changing, especially within the same version number (both report version
3.0.5300)


Posted by Darren Liu on May 19th, 2008


I believed you should check with GaleForce before you apply the rollup
3 upgrade to CRM. My experience with the previous GaleForce projects
was that GaleForce have to approve/test the patch first before we
apply them since GaleFoce addon for CRM 3.0 didn't use the support way
of extending CRM.

I don't believed Microsoft will provide a hotfix for it.

Darren Liu, Microsoft CRM MVP
Crowe
http://www.crowecrm.com


On May 19, 1:23*pm, Wes Weeks <WesWe...@discussions.microsoft.com>
wrote:

Posted by Wes Weeks on May 19th, 2008


Ideally yes, but the point is this would have worked just fine had the
interface not changed. All you have to do is look at both versions of the
dll with the object browser to see that something that shouldn't have changed
did. This is a pretty standard programming practice. A developer should be
able to count on the interfaces being identical if the version number is the
same. At the very least the original method should have been kept in place
for backward compatibility and perhaps marked with the Obsolete attribute so
that there would be time to change code.



"Darren Liu" wrote:

Posted by Michael Höhne on May 19th, 2008


Hi Wes,

This is the danger of using undocumented features.
Microsoft.Crm.Application.Components.Platform.dll is not documented and
should be considered a Microsoft internal assembly. It may expose public
interfaces, but it doesn't mean that you should use it. I understand that
using undocumented features helps a lot and I do it myself. However, unless
it is documented in the SDK, you cannot rely on it and you have to provide a
quick fix of your own application if it breaks. So it is the responsibility
of GaleForce to fix it. One can argue that the build number should have
changed, but it's a risk and always will be a risk to use undocumented (aka
unsupported) functions.

--
Michael Höhne, Microsoft Dynamics CRM MVP

CRM Blog: http://www.stunnware.com/?area=blog

----------------------------------------------------------

"Wes Weeks" <WesWeeks@discussions.microsoft.com> schrieb im Newsbeitrag
news:A9BB43FE-99C7-40DC-9CE5-43BEEBBEB00E@microsoft.com...


Posted by Wes Weeks on May 19th, 2008


Whether documented or not, this is not a good coding practice; you never know
who may be accessing your code. It is possible that this introduced other
bugs into the CRM 3.0 code that haven't been identified or surfaced yet. And
since sometimes we are forced to take the undocumented path, it's best to do
what you can to prevent breakage and maintaining the interface is usually
among the easiest.

I've contacted Galeforce and documented the issue so hopefully they can
provide a fix, but ultimately it's the Customer who has now been forced to
use a workaround. This is the ultimate reason for the standard to exist in
the first place.

I appreciate your feedback

"Michael Höhne" wrote:

Posted by Matt Parks on May 20th, 2008


The other perspective on this is that the hotfix in question obviously
needed a change to the interface in order to fix a bug in the system (I
doubt they did it just for kicks). GF does extensive intercepting and reuse
of underlying CRM components and as a result, they take on a huge support
liability for their customers. As Michael indicated, it's the risk any dev
takes when using the unsupported interfaces, there is no guarantee that they
won't change and they are quite clear about that point. If htese were
supported interfaces, it's a different story, but they aren't.

--

Matt Parks
MVP - Dynamics CRM


"Wes Weeks" <WesWeeks@discussions.microsoft.com> wrote in message
newsF02D323-22CF-4876-B6A5-4CE7051900B0@microsoft.com...
Whether documented or not, this is not a good coding practice; you never
know
who may be accessing your code. It is possible that this introduced other
bugs into the CRM 3.0 code that haven't been identified or surfaced yet.
And
since sometimes we are forced to take the undocumented path, it's best to do
what you can to prevent breakage and maintaining the interface is usually
among the easiest.

I've contacted Galeforce and documented the issue so hopefully they can
provide a fix, but ultimately it's the Customer who has now been forced to
use a workaround. This is the ultimate reason for the standard to exist in
the first place.

I appreciate your feedback

"Michael Höhne" wrote:




Similar Posts