2012-04-18 112 views
3

我正在为将连接到Microsoft Dynamics的客户开发一个Web门户。我不想让Dynamics CRM直接面向面向Internet的部署(IFD),所以我想使用一个单独的数据库,使Web界面与之互动,然后使用Web服务在Web门户数据库和Dynamics之间移动数据CRM。 我只是在想这是否是继续进行的最佳方式,以及是否有任何好的代码示例等,我可以看看实现它的想法? 我看到微软有一个客户门户网站,但它看起来需要(粗略一瞥)一个IFD部署 - 这是我不想要的。为Microsoft Dynamics CRM编程Web Portal

回答

6

首先,创建ASP.NET项目(或WebForms的MVC 3)后,添加下列引用:

  1. Microsoft.crm.sdk.proxy。
  2. Microsoft.xrm.sdk。
  3. System.Runtime。序列化。
  4. System.ServiceModel。

在你的后台代码创建一个类,然后添加以下代码:

private IOrganizationService GetCrmService(string userName, string password, string domain, Uri serviceUri) 
{ 
    OrganizationServiceProxy _serviceProxy; 

    ClientCredentials credentials = new ClientCredentials(); 
    credentials.Windows.ClientCredential = new System.Net.NetworkCredential(userName, password, domain); 
    //credentials.UserName.UserName = userName; // uncomment in case you want to impersonate 
    //credentials.UserName.Password = password; 
    ClientCredentials deviceCredentials = new ClientCredentials(); 

    using (_serviceProxy = new OrganizationServiceProxy(serviceUri, 
                 null, 
                 credentials, 
                 deviceCredentials)) 
    { 
     _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior()); 
     return (IOrganizationService)_serviceProxy; 
    } 
} 

如果要检索多个记录:

string fetch = @"My Fetch goes here"; 
EntityCollection records = getCrmService().RetrieveMultiple(new FetchExpression(fetch)); 

我强烈建议下载SDK或检查this 你会发现许多样本和演练,这将帮助你建立良好的门户网站。

1

我觉得这是一个很好的策略,因为:

  • 它可以让你以异步方式把网站到CRM上的数据输入。这种解耦确保了CRM和网站都不会成为彼此的瓶颈。
  • 只有中间服务层是面向互联网的,所以如果这个服务层受到威胁,您将可以控制哪些CRM信息会被披露/打开以进行修改。

你以后的建筑让人想起的CRM异步服务的工作方式(异步插件和工作流程,以这种方式工作):

  • 作业被放在一个队列(表) CRM DB。
  • 计划服务每x秒唤醒一次并从队列表中提取最新的y个记录。
  • 该服务执行每个作业并将结果(成功,错误消息日志)写回队列表的记录。

因此,可能最难的事情是编写一个不会抛出异常(但总是消化它)并将结果正确记录回数据库的良好定期服务。

要了解更多有关Dynamics CRM中的“异步服务架构”,指的是以下几点:http://msdn.microsoft.com/en-us/library/gg334554.aspx

1
  1. 它看起来像一个不错的办法。
  2. 它将改善门户和CRM的性能。
  3. 门户网站显示的数据几乎是实时的。即它不是实时的。
  4. 在整个开发过程中,您最好始终检查是否没有太多异步处理来保持CRM服务器始终忙碌。
  5. 我不认为,加速器/门户需要CRM是一个IFD实例,我猜想只有门户部分需要被Internate面对(当然,使其可用于此目的!)
  6. Anwar is对于这样的研究来说,SDK是一个很好的工具。
0

客户门户不需要IFD部署。如果您不喜欢客户门户网站,则始终可以使用SDK Extension中包含的SDK Extension for Portal开发(microsoft.xrm.client.dll & microsoft.xrm.portal.dll和portalbase解决方案)。

关于如何使用SDK Portal Extenstion构建门户网站有一个很好的资源。

Dynamics CRM 2011 Portal Development

相关问题