演练:使用开发人员扩展构建连接到 Microsoft Dynamics CRM 2015 的 Web 应用程序
发布日期: 2016年11月
适用于: Dynamics CRM 2015
本演练演示如何编写连接到 Microsoft Dynamics CRM 2015 并执行基本的创建联系人事务的简单 Web 应用程序。
您可以在 Sdk\Walkthroughs\Portal\WebAppWalkthrough 文件夹中找到本演练产生的示例代码。
本主题内容
生成早期绑定类型
在 Visual Studio 中设置 Web 应用程序项目
创建网页 – 联系人网格 1
创建另一个网页 – 联系人网格 2
创建 WCF 数据服务
创建网页 – 联系人窗体 1
创建另一个网页 – 联系人网格 3
生成早期绑定类型
使用 Microsoft.Xrm.Client.CodeGeneration 扩展运行 CrmSvcUtil.exe 工具,以生成实体类和服务上下文。 以下示例命令创建一个名为“Xrm.cs”的文件,该文件指向 Microsoft Dynamics 365 的实例。 请注意,在运行该命令时,Microsoft.Xrm.Client.CodeGeneration.dll 文件必须与 CrmSvcUtil.exe 文件位于同一目录中,或者位于系统全局程序集缓存中。 此处显示的第一个命令针对本地组织,第二个命令针对 CRM Online 组织。 两个命令应作为一个命令行执行,没有换行符。
CrmSvcUtil.exe /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration" /out:Xrm\Xrm.cs /url:http://Crm/Contoso/XRMServices/2011/Organization.svc /domain:CONTOSO /username:administrator /password:pass@word1 /namespace:Xrm /serviceContextName:XrmServiceContext
CrmSvcUtil.exe /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration" /out:Xrm.cs /url:https://<mydomain>.api.crm.dynamics.com/XRMServices/2011/Organization.svc /username:<myusername>@<mydomain>.onmicrosoft.com /password:<mypassword> /namespace:Xrm /serviceContextName:XrmServiceContext
提示
CrmSvcUtil 工具在 SDK 下载的 Bin 文件夹中,或通过安装 Microsoft.CrmSdk.CoreToolsNuGet 包获取。
在 Visual Studio 中设置 Web 应用程序项目
在 Microsoft Visual Studio 中新建一个 ASP.NET Web 应用程序项目。 此示例使用“WebAppWalkthrough”作为项目名称。
添加以下来自 SDK\bin 文件夹的引用。 您可以通过安装 Microsoft.CrmSdk.ExtensionsNuGet 包来跳过此步骤和下一步骤。
AntiXSSLibrary.dll
Microsoft.Crm.Sdk.Proxy.dll
Microsoft.Xrm.Client.dll
Microsoft.Xrm.Portal.dll
Microsoft.Xrm.Portal.Files.dll
Microsoft.Xrm.Sdk.dll
添加以下来自 .NET 的引用。
System.IdentityModel.dll
Microsoft.Data.Entity.dll
System.Data.Services.dll
System.Data.Services.Client.dll
System.Runtime.Caching.dll
System.Runtime.Serialization.dll
在 Visual Studio 中右键单击该项目,单击“添加”,然后单击“现有项”。
选择生成早期绑定类型时创建的“xrm.cs”文件。
编辑 web.config 文件以注册 <microsoft.xrm.client> 节。 您需要向配置中的 configSections 节点添加一节,如此处所示。
<configuration> <configSections> <section name="microsoft.xrm.client" type="Microsoft.Xrm.Client.Configuration.CrmSection, Microsoft.Xrm.Client" />
使用特定的连接字符串和上下文编辑 web.config 文件。 对于连接字符串,请将名称设置为“Xrm”。 在 <microsoft.xrm.client> 节中,添加名为“Xrm”的上下文,并将类型设置为您在设置 Web 应用程序项目时的步骤 1 中提供的命名空间和服务上下文名称。 在以下示例中,该名称为 Xrm.XrmServiceContext,类型的程序集部分是您的 Web 应用程序的名称“WebAppWalkthrough”。
<connectionStrings> <add name="Xrm" connectionString="Server=http://crm/contoso; Domain=CONTOSO; Username=Administrator; Password=pass@word1" /> </connectionStrings> <microsoft.xrm.client> <contexts> <add name="Xrm" type="Xrm.XrmServiceContext, WebAppWalkthrough" /> </contexts> </microsoft.xrm.client>
将以下内容添加到 web.config 文件的 <controls> 节中,以便向该 Web 应用程序注册 Microsoft.Xrm.Portal 控件。
<system.web> <pages> <controls> <add tagPrefix="crm" namespace="Microsoft.Xrm.Portal.Web.UI.WebControls" assembly="Microsoft.Xrm.Portal" />
创建网页 – 联系人网格 1
创建一个在 ASP.NET 数据网格中显示 Dynamics 365 系统中的所有联系人的基本网页。
右键单击项目,然后添加一个名为“WebForm_LinqDataSource.aspx”的新 Web 窗体。
将以下项添加到新 aspx 页面中:
<!--This example lists all contacts from the Microsoft Dynamics CRM system. --> <asp:LinqDataSource ID="Contacts" ContextTypeName="Xrm.XrmServiceContext" TableName="ContactSet" runat="server" /> <asp:GridView DataSourceID="Contacts" AutoGenerateColumns="false" runat="server"> <Columns> <asp:TemplateField HeaderText="First Name"> <ItemTemplate> <asp:Label Text='<%# Eval("firstname")%>' runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Last Name"> <ItemTemplate> <asp:Label Text='<%# Eval("lastname")%>' runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="City"> <ItemTemplate> <asp:Label Text='<%#Eval("address1_city") %>' runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
生成项目。
右键单击 aspx 页面,然后选择“在浏览器中查看”。 结果应类似如下:
创建另一个网页 – 联系人网格 2
基于 Dynamics 365 视图定义,创建一个在 ASP.NET 数据网格中显示 Dynamics 365 系统中的联系人的网页。
右键单击项目,然后添加一个名为“WebForm_SavedQueryDataSource.aspx”的新 Web 窗体。
将以下项添加到新 aspx 页面中:
<crm:SavedQueryDataSource ID="ActiveContacts" SavedQueryName="Active Contacts" runat="server" /> <asp:GridView DataSourceID="ActiveContacts" runat="server" />
生成项目。
右键单击 aspx 页面,然后选择“在浏览器中查看”。 该页面将使用视图定义“可用联系人”返回记录,并在 ASP.NET GridView 控件中显示视图的属性。 结果应类似如下:
创建 WCF 数据服务
为 Microsoft Dynamics 365 创建 WCF 数据服务。
右键单击项目并添加一个名为“CrmData.svc”的新 WCF 数据服务:
您需要将该 WCF 数据服务指向在本演练开头创建的 XrmServiceContext。 按如下所示编辑 CrmData.svc.cs 文件:
namespace WebAppWalkthrough { public class CrmData : DataService<Xrm.XrmServiceContext> { // This method is called only once to initialize service-wide policies. public static void InitializeService(DataServiceConfiguration config) { config.SetEntitySetAccessRule("*", EntitySetRights.AllRead); config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; } } }
创建网页 – 联系人窗体 1
基于 Microsoft Dynamics 365 视图定义创建一个呈现联系人数据输入窗体的网页:
在 Dynamics 365 中,转到“设置”、“自定义”和“自定义系统”。 为名为“创建联系人 Web 窗体”的 contact 实体创建一个新视图。
将您希望在生成的窗体中显示为字段的列添加到视图中。
单击“保存并发布”。
在 Microsoft Visual Studio 中右键单击 Web 项目,然后添加一个名为“WebForm_FromSavedQuery.aspx”的新 Web 窗体。
将以下代码添加到新 aspx 页面中:
<asp:ScriptManager runat="server" /> <crm:CrmDataSource ID="Contacts" runat="server" /> <crm:CrmEntityFormView DataSourceID="Contacts" EntityName="contact" SavedQueryName="Create Contact Web Form" runat="server" />
生成项目。
右键单击 aspx 页面,然后单击“在浏览器中查看”。 结果应类似如下:
创建另一个网页 – 联系人网格 3
创建一个使用代码隐藏将 Microsoft Dynamics 365 数据源连接到 ASP.NET GridView 控件的网页。
右键单击项目,然后添加一个名为“WebForm_CodeBehindDataSource.aspx”的新网页。
将以下代码添加到新 aspx 页面中:
<asp:GridView ID="ContactsGridView" AutoGenerateColumns="false" runat="server"> <Columns> <asp:TemplateField HeaderText="First Name"> <ItemTemplate> <asp:Label Text='<%# Eval("firstname")%>' runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Last Name"> <ItemTemplate> <asp:Label Text='<%# Eval("lastname") %>' runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="City"> <ItemTemplate> <asp:Label Text='<%# Eval("address1_city") %>' runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
按如下所示编辑代码隐藏文件 WebForm_CodeBehind.aspx.cs:
using System; using System.Linq; using Xrm; namespace WebAppWalkthrough { public partial class WebForm_CodeBehind : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { var xrm = new XrmServiceContext("Xrm"); //Use all contacts where the email address ends in @example.com. var exampleContacts = xrm.ContactSet .Where(c => c.EMailAddress1.EndsWith("@example.com")); ContactsGrid_CodeBehind.DataSource = exampleContacts; ContactsGrid_CodeBehind.DataBind(); } } }
生成项目。
右键单击 aspx 页面,然后单击“在浏览器中查看”。 结果应类似如下:
另请参阅
Microsoft Dynamics CRM 2015 门户开发人员指南
Dynamics CRM 2015 的门户演练
© 2017 Microsoft。 保留所有权利。 版权