2012-04-18 131 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

相關問題