Microsoft CRM 2011表单Silverlight控件的配置/设置

时间:2011-07-28 07:48:10

标签: silverlight dynamics-crm odata crm dynamics-crm-2011

需要了解寻找解决方案的最佳实践。

我们正在研究为需要引用数据的通用配置文件的CRM表单开发Silverlight控件。这是一个需要每隔一段时间定期维护的文件。我们不希望将值硬编码到Silverlight控件中。

我的问题是......在哪里/什么/我们如何为Silverlight控件提供配置文件?

我尝试上传一个JS Web资源,它只是一个JSON数组,其中包含我尝试从Silverlight控件访问的设置。当我使用管理员帐户和我的域帐户进行文件的Http获取并解析它时,我得到的只是权限错误。如果我设法解决这些恼人的权限错误,有人可以确认这可行吗?

我的下一个想法是拥有一个CRM实体,其中包含Silverlight控件可以进行ODATA调用以获取其配置数据的设置。尽管如此,我并没有100%出售这个想法。

也许人们一直在使用另一种方式 - 如果是这样 - 我很想知道你在做什么。这实际上可以阻止我们使用我们追求的Silverlight丰富的解决方案。

提前致谢

2 个答案:

答案 0 :(得分:2)

我们经常使用配置实体方法,我认为它运作良好。

你也应该能够使用你的初始方法......我知道在一些地方我们已经在Web资源中完成了一些XML配置,我们已经在Silverlight中检索,解析并完成了一些事情。< / p>

答案 1 :(得分:2)

我们以两种方式解决这个问题。

  1. 我们有一个配置实体,可供管理员在客户网站上更改设置。
  2. 对于不太可能更改的其他配置数据,我们安装XML Web资源。这种方法意味着我们可以存储大量数据,而无需创建和管理复杂实体(或者如果需要,可以设置关系)。如果设置为非托管/可自定义的Web资源,则可以使用文本编辑器进行更改,但请记住,这些更改不得破坏XML架构/语法。
  3. 可以使用WebClient.DownloadStringAsync()在Silverlight中检索此xml Web资源,如下所示。

    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
        }
    }