我正在为将连接到Microsoft Dynamics的客户开发Web门户。我不想让Dynamics CRM直接面向面向Internet的部署(IFD),因此我想使用Web界面与之交互的单独数据库,然后使用Web服务在Web门户数据库和Dynamics之间移动数据CRM。 我只是想知道这是否是最好的方法,以及是否有任何好的代码示例等我可以考虑实现这个? 我看到微软有一个客户门户网站,但看起来它需要(粗略地看一眼)IFD部署 - 这是我不想要的。
答案 0 :(得分:6)
首先,在创建ASP.NET项目(WebForms或MVC 3)之后,添加以下引用:
在您的代码隐藏中创建一个类,然后添加以下代码:
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 :(得分:1)
我认为这是一个很好的策略,因为:
您所使用的架构让人联想到CRM异步服务的工作方式(异步插件和工作流以这种方式工作)。:
所以可能最困难的事情是编写一个从不抛出异常的好的预定服务(但总是消化它)并将结果正确地记录回数据库。
要详细了解Dynamics CRM的“异步服务架构”,请参阅以下内容:http://msdn.microsoft.com/en-us/library/gg334554.aspx
答案 2 :(得分:1)
答案 3 :(得分:0)
客户门户网站不需要IFD部署。如果您不喜欢客户门户,您可以随时使用SDK扩展进行门户开发(microsoft.xrm.client.dll& microsoft.xrm.portal.dll和portalbase解决方案),这些都包含在SDK中。
关于如何使用SDK Portal Extenstion构建门户网站有很好的资源。