2011-07-28 57 views
1

需要關於尋找解決方案的最佳實踐的想法。Microsoft CRM 2011 Form Silverlight控件的配置/設置

我們正在研究開發適用於CRM表單的Silverlight控件,這些控件將需要引用數據的通用配置文件。這是一個需要每隔一段時間定期維護的文件。我們不希望將值硬編碼到Silverlight控件中。

我的問題是...在哪裏/什麼/我們如何爲Silverlight控件提供配置文件?

我嘗試上傳一個JS Web資源,它只是一個JSON數組,充滿了我試圖從Silverlight控件訪問的設置。當我使用管理員帳戶和我的域帳戶對文件進行Http獲取並解析它時,我所得到的都是許可錯誤。如果我設法解決這些惱人的許可錯誤,有人可以證實這可以工作嗎?

我的下一個想法是讓一個CRM實體充滿了Silverlight控件可以使ODATA調用以獲取其配置數據的設置。雖然我並不是100%出售。

也許人們用另一種方式 - 如果是的話 - 我很想看看你在做什麼。這實際上可以防止我們來到我們之後的Silverlight豐富解決方案。

在此先感謝

回答

2

我們以兩種方式來解決這個問題。

  1. 我們有一個配置實體,可以由管理員在客戶網站上更改設置。
  2. 對於其他不太可能更改的配置數據,我們安裝XML Web資源。這種方法意味着我們可以存儲大量的數據,而無需創建和管理複雜的實體(或需要的關係)。如果設置爲非託管/可定製的Web資源,那麼可以使用文本編輯器進行更改,但請記住,這些更改不得破壞XML模式/語法。

這個xml web資源可以使用WebClient.DownloadStringAsync()在Silverlight中檢索,如下所示。

private void GetXmlConfiguration(string resourceName) 
{ 
    var webClient = new WebClient(); 
    webClient.DownloadStringCompleted += OnGetConfigurationXmlCompleted; 
    webClient.DownloadStringAsync(new Uri("../Data/" + resourceName, UriKind.Relative)); 
} 

private void OnGetConfigurationXmlCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    if (e.Error == null && !string.IsNullOrEmpty(e.Result)) 
    { 
     //use xml string here 
    } 
} 
+0

這些是我想到的兩種方式。在做出第一個選擇之前,我確實想確保我可以執行JSON/XML Web資源方法,但是在發生權限錯誤時確實遇到阻塞。現在我知道人們也這樣做了(並且你的代碼也非常有幫助,謝謝!)我會堅持下去,看看我可以用它去做什麼。謝謝! –

2

我們使用的配置實體法常常,我覺得它工作得很好。

你應該也可以使用你的初始方法......我知道在一些地方我們已經在一個Web資源中完成了一些XML配置,我們在Silverlight中檢索,解析並完成了一些工作。

相關問題