<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.saasgrid.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Tutorials and How-Tos</title><subtitle type="html" /><id>http://community.saasgrid.com/developers/b/tutorials/atom.aspx</id><link rel="alternate" type="text/html" href="http://community.saasgrid.com/developers/b/tutorials/" /><link rel="self" type="application/atom+xml" href="http://community.saasgrid.com/developers/b/tutorials/atom.aspx" /><generator uri="http://telligent.com" version="5.5.133.9594">Community Server</generator><updated>2008-04-08T10:14:00Z</updated><entry><title>Options for Obtaining SaaSGrid's Billing Information</title><link rel="alternate" type="text/html" href="/developers/b/tutorials/archive/2010/03/12/options-for-obtaining-saasgrids-billing-information.aspx" /><id>/developers/b/tutorials/archive/2010/03/12/options-for-obtaining-saasgrids-billing-information.aspx</id><published>2010-03-12T17:02:00Z</published><updated>2010-03-12T17:02:00Z</updated><content type="html">&lt;p&gt;As can reasonably be expected, just about every customer has&amp;nbsp;their&amp;nbsp;own&amp;nbsp;system and processes in place to handle bookkeeping and accounting activities.&amp;nbsp;SaaSGrid conducts billing actions natively as a part of its subscription model, and naturally there is a desire to link this information to a customer&amp;#39;s own accounting systems. This article provides an overview&amp;nbsp;of the information that SaaSGrid&amp;#39;s billing system captures, and presents&amp;nbsp;a couple of options for how to retrieve this information so that customers can use and link this information in to their accounting processses. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Invoices in SaaSGrid&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;SaaSGrid&amp;#39;s primary record of billing actions is an &lt;em&gt;invoice&lt;/em&gt;. Invoices are generated for two discreet actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adding or changing&amp;nbsp;subscriptions&lt;/li&gt;
&lt;li&gt;Processing a recurring payment for a group of subscriptions (1 or more subscriptions)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SaaSGrid already provides the ability to view invoices via the Provider Portal. A&amp;nbsp;sample listing of invoices is&amp;nbsp;shown in the following screenshot:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://community.saasgrid.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-00-19/4745.invoices.png" border="0" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;There are two ways to access the invoice listing using the Provider Portal:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Selecting a customer via the &lt;em&gt;Customers&lt;/em&gt; section. This permits filtering per customer / application combination.&lt;/li&gt;
&lt;li&gt;Accessing the invoices via the &lt;em&gt;Billing&lt;/em&gt; section. This permits filtering by invoice status only (paid/unpaid).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;There will be some enhancements to the invioces view coming in a future version of SaaSGrid, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ability to view all of the invoices for a particular application&lt;/li&gt;
&lt;li&gt;General searching and sorting capability&lt;/li&gt;
&lt;li&gt;Exporting of data&amp;nbsp;via the portal into industry standard formats&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now that SaaSGrid&amp;#39;s default capabilities are known, we can explain how to build upon this to assist in automating interactions with other systems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Programmatically Retrieving Invoice Information&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;By using the &lt;em&gt;SaaSGrid Remote API, &lt;/em&gt;it is possible to interact with the Provider Portal&amp;#39;s backing WCF service to get invoice information. The following information is intended to provide general advice as to how to do this. It assumes some familiarity with the Remote API and WCF. If you need additional assistance, contact SaaSGrid Support or post on the forums. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Configuring the Remote API:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Reference the appropriate DLL&amp;#39;s that are included with the SDK to access the Remote API (Apprenda.Execution.CallContextStorage, Apprenda.Utils, SaaSGrid.API, SaaSGrid.API.Remote), and setup the appropriate configuration by pointing the&amp;nbsp;&lt;em&gt;RootCloudUri&lt;/em&gt; to your SaaSGrid instance. Also, set the &lt;em&gt;ApplicationAlias&lt;/em&gt; to &lt;em&gt;provider&lt;/em&gt; as shown in the following example.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;...&lt;br /&gt;&amp;lt;configSections&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;section name=&amp;quot;saaSGridRemoting&amp;quot; type=&amp;quot;System.Configuration.AppSettingsSection&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; ...&lt;br /&gt;&amp;lt;/configSections&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;saaSGridRemoting&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;add key=&amp;quot;RootCloudUri&amp;quot; value=&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://${YourCloudUri"&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;http://${YourCloudUri&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;}&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;add key=&amp;quot;ApplicationAlias&amp;quot; value=&amp;quot;provider&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/saaSGridRemoting&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Before continuing, verify that you can log in and establish a&amp;nbsp;SaaSGrid session.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Configuring the&amp;nbsp;Service Client:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Next, you&amp;#39;ll need to set up a service reference to the Provider Portal service. This is done by adding&amp;nbsp;a standard WCF&amp;nbsp;client endpoint to the configuration&amp;nbsp;along with&amp;nbsp;the necessary behavior so that the Remote API can use the client. The following example shows how to set up the client endpoint correctly. &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;...&lt;br /&gt;&amp;lt;system.serviceModel&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;bindings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wsHttpBinding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;binding name=&amp;quot;DefaultHttp&amp;quot; messageEncoding=&amp;quot;Text&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;security mode=&amp;quot;None&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/binding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/wsHttpBinding&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/bindings&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;client&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint address=&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://${YourCloudUri}:12000/services/soap12/http/r/provider(v1)/ProviderPortalService/IProviderService"&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;http://${YourCloudUri}:12000/services/soap12/http/r/provider(v1)/ProviderPortalService/IProviderService&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contract=&amp;quot;Apprenda.SaaSGrid.Business.Clients.ProviderPortal.IProviderService&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding=&amp;quot;wsHttpBinding&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bindingConfiguration=&amp;quot;DefaultHttp&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; behaviorConfiguration=&amp;quot;RemoteClientBehavior&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/client&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;behaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpointBehaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior name=&amp;quot;RemoteClientBehavior&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ApprendaInitRoutine/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/endpointBehaviors&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/behaviors&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;nbsp; &amp;lt;extensions&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behaviorExtensions&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&amp;quot;ApprendaInitRoutine&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type=&amp;quot;Apprenda.SaaSGrid.API.Remote.ClientExtension, SaaSGrid.API.Remote, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviorExtensions&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/extensions&amp;gt;&lt;br /&gt;&amp;lt;/system.serviceModel&amp;gt;&lt;br /&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Calling the Service:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You can use the same proxies that we use to call our services. To do this, add references to the following DLL&amp;#39;s, which can be found in your SaaSGrid distribution in the folder &lt;em&gt;Binaries\Applications\00000000-0000-4000-0000-000000000001\316b32db-e812-40b8-9be0-9a4292bc95cc\base\Services\ProviderPortal:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SaaSGrid.Business.Clients&lt;/li&gt;
&lt;li&gt;Castle.DynamicProxy&lt;/li&gt;
&lt;li&gt;Iesi.Collections&lt;/li&gt;
&lt;li&gt;SaaSGrid.Topology&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &amp;nbsp;following code example shows how to create and use our proxy, and make a service call that gets the first 1000 invoices for a given application.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;using Apprenda.SaaSGrid.Business.Clients.ProviderPortal;&lt;br /&gt;using Apprenda.Utility;&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;br /&gt;public void ProcessInvoices()&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;nbsp; using (IProviderService proxy = Factory&amp;lt;IProviderService&amp;gt;.GetInstance())&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy.GetApplicationInvoices(appId, 1000, 1);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;The application ID of the application to list invoices for can be found by looking up the information in the SaaSGrid Operation Center&amp;#39;s Service Catalog section, as illustrated below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://community.saasgrid.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-00-19/4428.socimpl.png" border="0" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A word of caution:&lt;/em&gt; this technique uses our Internal API, for which we do not publish official documentation. &amp;nbsp;These APIs are subject to change without notice. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Responding to SaaSGrid&amp;#39;s&amp;nbsp;Invoice Events&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Whereas programmatically accessing SaaSGrid as described above can be used to read invoice information, another approach is to use &lt;em&gt;SaaSGrid Extension Points&lt;/em&gt; to respond to Invoicing events in SaaSGrid.&lt;/p&gt;
&lt;p&gt;The following events can be intercepted:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Invoice Creation:&lt;/em&gt; called prior to SaaSGrid&amp;#39;s logic, and allows for modification of the invoice prior to SaaSGrid&amp;#39;s creation of it&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Invoice Created:&lt;/em&gt; called after SaaSGrid has created the invoice&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Invoice Payment Initiation:&lt;/em&gt; called before the payment request for the invoice is made&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Invoice Payment Finished:&lt;/em&gt; called after the payment request for the invoice is made&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By using these events, customers have great flexibility in responding to invoicing events. Furthermore, the usage of other extension points in conjunction with these extension points can open up additional possiblities. &lt;/p&gt;
&lt;p&gt;For additional information regarding extension points, refer to the document &amp;quot;Extending SaaSGrid&amp;quot;, which is included with your SaaSGrid distribution. It is a little bit more difficult to implement, manage, and deploy extensions so many customers opt to use the Remote API and &amp;quot;poll&amp;quot; for information as opposed to using SaaSGrid&amp;#39;s event triggers. A SaaSGrid support representative can help you choose which mechanism is best for you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.saasgrid.com/aggbug.aspx?PostID=817" width="1" height="1"&gt;</content><author><name>pmiles</name><uri>http://community.saasgrid.com/members/pmiles/</uri></author></entry><entry><title>Developing your SaaSGrid Service to work with a Silverlight Interface</title><link rel="alternate" type="text/html" href="/developers/b/tutorials/archive/2010/02/01/developing-your-saasgrid-service-to-work-with-a-silverlight-interface.aspx" /><id>/developers/b/tutorials/archive/2010/02/01/developing-your-saasgrid-service-to-work-with-a-silverlight-interface.aspx</id><published>2010-02-01T22:52:00Z</published><updated>2010-02-01T22:52:00Z</updated><content type="html">&lt;p&gt;Web services play a central part of all SaaSGrid applications, including those that take advantage of SaaSGrid&amp;rsquo;s native Silverlight 3 Support. There are some things to be aware of when developing, and more importantly, configuring your services so that Silverlight can talk to them. This is because the WCF client stack in Silverlight 3 is somewhat limited compared to the more complete .NET WCF stack. This article will explain how to appropriately set up your WCF services so that your SaaSGrid-based Silverlight 3 proxies can contact your services.&lt;/p&gt;
&lt;p&gt;There are three fundamental requirements to be aware of when configuring your WCF services:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the &lt;i&gt;basicHttp&lt;/i&gt; binding instead of (or in addition to) the &lt;i&gt;netTcp&lt;/i&gt; binding.&lt;/li&gt;
&lt;li&gt;Enhance your service to serve the &lt;i&gt;clientaccesspolicy.xml&lt;/i&gt; file to fulfill Silverlight 3 security requirements.&lt;/li&gt;
&lt;li&gt;Attach SaaSGrid&amp;rsquo;s ContextEndpointBehaviorExtension to all of your service endpoints (except that which serves your &lt;i&gt;clientaccesspolicy.xml&lt;/i&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that the first two requirements are not imposed by SaaSGrid. They are necessary to permit Silverlight to contact your WCF services. The final requirement adds SaaSGrid &amp;ldquo;awareness&amp;rdquo; to your service. Each of these requirements is described further below.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Use the &lt;i&gt;basicHttp&lt;/i&gt; binding instead of (or in addition to) the &lt;i&gt;netTcp&lt;/i&gt; binding.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Silverlight 3 simply does not support the &lt;i&gt;netTcp&lt;/i&gt; binding. Therefore you should use the &lt;i&gt;basicHttp&lt;/i&gt; binding so Silverlight can talk to your service when developing locally and using Silverlight. Note that SaaSGrid supports both the &lt;i&gt;netTcp&lt;/i&gt; and &lt;i&gt;basicHttp&lt;/i&gt; bindings (although &lt;i&gt;netTcp&lt;/i&gt; is the default on SaaSGrid and encouraged for a variety of reasons).&lt;/p&gt;
&lt;p&gt;When your service is ultimately deployed on SaaSGrid, the service will be deployed onto the cloud using both bindings, and SaaSGrid&amp;rsquo;s routing mechanism will forward requests made by your Silverlight application from the web server to the running instance. (For information on correctly configuring your Silverlight application to contact the service, refer to the &amp;ldquo;Silverlight&amp;rdquo; section of the Developing on SaaSGrid guide.)&lt;/p&gt;
&lt;p&gt;The following is a sample configuration file of a service that uses the &lt;i&gt;basicHttp&lt;/i&gt; binding, which will be enhanced as the additional requirements are covered in this document:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;services&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;service&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;name&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;Service.Service&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;endpoint&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;address&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;http://localhost:4001/Service&lt;/span&gt;"&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;binding&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;basicHttpBinding&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;bindingConfiguration&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;defaultBasicHttpBinding&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;contract&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;Service.IService&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;service&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;services&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;bindings&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;basicHttpBinding&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;binding&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;name&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;defaultBasicHttpBinding&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;security&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;mode&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;None&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;binding&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;basicHttpBinding&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;bindings&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt; . . .&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Enhance your service to serve the &lt;i&gt;clientaccesspolicy.xml&lt;/i&gt; file to fulfill Silverlight 3 security requirements.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Silverlight, before dispatching any service calls to a running service, will request the file called &lt;i&gt;clientaccesspolicy.xml&lt;/i&gt; from the root of the service (e.g.: http://localhost:4001/clientaccesspolicy.xml). This is a requirement that Silverlight 3 plug-in &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx?ppud=4"&gt;imposes for security purposes&lt;/a&gt; and is not SaaSGrid specific. When developing locally you must enhance your service to serve this file. When the service is running on SaaSGrid, our routing system will automatically serve this file. &lt;/p&gt;
&lt;p&gt;To enhance your service to fulfill this client request, create a new endpoint using the &lt;i&gt;webHttp&lt;/i&gt; binding and create a new service contract containing a single operation that responds to the request for the &lt;i&gt;clientaccesspolicy.xml&lt;/i&gt; file. This is best described with an example, building upon that in the previous step.&lt;/p&gt;
&lt;p&gt;First, add the endpoint and behavior in the service configuration file:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;services&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;service&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;name&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;Service.Service&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;endpoint&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;address&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;http://localhost:4001/Service&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;binding&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;basicHttpBinding&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;defaultBasicHttpBinding&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;contract&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;Service.IService&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;endpoint&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;address&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;http://localhost:4001&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;binding&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;webHttpBinding&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;behaviorConfiguration&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;webHttpBehavior&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;contract&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;Service.IClientAccessPolicy&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;service&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;services&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;bindings&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;binding&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;name&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;defaultBasicHttpBinding&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;security&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;mode&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;None&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;binding&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;bindings&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behaviors&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;endpointBehaviors&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behavior&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;name&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;webHttpBehavior&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;webHttp&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behavior&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;endpointBehaviors&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes;"&gt;behaviors&lt;/span&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes;"&gt;&amp;gt; . . .&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Then, add a new service contract with the operation that will respond to &lt;i&gt;clientaccesspolicy.xml&lt;/i&gt;:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;[&lt;span style="color: #2b91af;"&gt;ServiceContract&lt;/span&gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;interface&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;IClientAccessPolicy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="color: #2b91af;"&gt;OperationContract&lt;/span&gt;, &lt;span style="color: #2b91af;"&gt;WebGet&lt;/span&gt;(UriTemplate = &lt;span style="color: #a31515;"&gt;"/clientaccesspolicy.xml"&lt;/span&gt;)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Stream&lt;/span&gt; GetClientAccessPolicy();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Finally, implement this service contract.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Service&lt;/span&gt; : &lt;span style="color: #2b91af;"&gt;IService&lt;/span&gt;, &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: #2b91af;"&gt;IClientAccessPolicy&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #2b91af;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;. . .&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Stream&lt;/span&gt; GetClientAccessPolicy()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;const&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; result =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a31515;"&gt;@"&amp;lt;?xml version=""1.0"" encoding=""utf-8""?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;access-policy&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;cross-domain-access&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;policy&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;allow-from http-request-headers=""*""&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;domain uri=""*""/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/allow-from&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;grant-to&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;resource path=""/"" &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;include-subpaths=""true""/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/grant-to&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/policy&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/cross-domain-access&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/access-policy&amp;gt;"&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (&lt;span style="color: #2b91af;"&gt;WebOperationContext&lt;/span&gt;.Current != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;WebOperationContext&lt;/span&gt;.Current.OutgoingResponse.ContentType =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a31515;"&gt;"application/xml"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;MemoryStream&lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Encoding&lt;/span&gt;.UTF8.GetBytes(result));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;After following these steps, the fundamental requirements for a Silverlight application to communicate with the WCF Service have been met. However, SaaSGrid requires some additional endpoint configuration, described below.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Attach SaaSGrid&amp;rsquo;s ContextEndpointBehaviorExtension to all of your service endpoints (except that which serves your &lt;i&gt;clientaccesspolicy.xml&lt;/i&gt;).&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;SaaSGrid attaches contextual information when the client makes service calls, which the service later reads. This allows an otherwise stateless service to know which SaaSGrid-based user is making the service call so that SaaSGrid&amp;rsquo;s subscription and security model can be applied.&lt;/p&gt;
&lt;p&gt;This is achieved by applying the ContextEndpointBehaviorExtension to all of the endpoints that respond to service calls. As expected, the endpoint handling the call to the &lt;i&gt;clientaccesspolicy.xml&lt;/i&gt; file must be excluded as this call will not include the SaaSGrid contextual information.&lt;/p&gt;
&lt;p&gt;Note that for non-Silverlight applications, this behavior can be configured at the service level, and the Visual Studio SDK Template applies the configuration this way. [Note that this will be changing over the next few weeks.]&lt;/p&gt;
&lt;p&gt;Below is the abbreviated final markup of the service configuration to use the endpoint behavior:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;services&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;service&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;name&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;Service.Service&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;endpoint&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;address&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;http://localhost:4001/Service&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;binding&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;basicHttpBinding&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;defaultBasicHttpBinding&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;behaviorConfiguration&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;ApprendaEndpointBehavior&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;contract&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;Service.IService&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;. . . &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;service&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;services&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;. . .&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behaviors&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;endpointBehaviors&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behavior&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;name&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;ApprendaEndpointBehavior&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;ContextBehavior&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behavior&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;. . .&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;endpointBehaviors&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behaviors&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;extensions&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behaviorExtensions&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;add&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;name&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;ContextBehavior&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;type&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt;Apprenda.SaaSGrid.API.Local.`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ContextEndpointBehaviorExtension, SaaSGrid.API.Local,`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;behaviorExtensions&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;"&gt;extensions&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Upon following these requirements, your service should now be equipped to work with both Silverlight and SaaSGrid. Our Taskr with Silverlight sample provides an implementation of the concepts presented in this posting. If you encounter any issues or have any questions, don&amp;rsquo;t hesitate to post in our developer forums.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.saasgrid.com/aggbug.aspx?PostID=787" width="1" height="1"&gt;</content><author><name>pmiles</name><uri>http://community.saasgrid.com/members/pmiles/</uri></author><category term="Silverlight 3" scheme="http://community.saasgrid.com/developers/b/tutorials/archive/tags/Silverlight+3/" /></entry><entry><title>How to Create a Custom Login Screen For Your SaaSGrid Application</title><link rel="alternate" type="text/html" href="/developers/b/tutorials/archive/2009/04/01/how-to-create-a-custom-login-screen-for-your-saasgrid-application.aspx" /><id>/developers/b/tutorials/archive/2009/04/01/how-to-create-a-custom-login-screen-for-your-saasgrid-application.aspx</id><published>2009-04-01T14:30:00Z</published><updated>2009-04-01T14:30:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;Because the SaaSGrid platform is multi-application/multi-vendor, yet single sign-on from the user’s standpoint, Apprenda has provided expected authentication mechanisms and appropriate user interfaces at the platform level.&amp;nbsp; Users have the ability to login by entering their username and password, which grants them access to all of their subscriptions.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;U&gt;The Default Login Interface&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;By default, the authentication user interface is themed (via CSS) to match the style of the SaaSGrid portal user interfaces.&amp;nbsp; This is the login screen for all applications that do not implement custom login styles as described in this document.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 484px" title=DefaultLoginScreen alt=DefaultLoginScreen src="http://community.saasgrid.com/images/old-content/DefaultLoginScreen.gif" width=600 height=484 mce_src="/blogs/tutorials/DefaultLoginScreen.gif"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;U&gt;Custom Login Interfaces&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Through a combination of CSS and an application setting in the SaaSGrid Provider Portal, ISVs may override the login screens for their particular application(s). &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 654px; HEIGHT: 239px" title=CustomLoginScreens alt=CustomLoginScreens src="http://community.saasgrid.com/images/old-content/CustomLoginScreens.gif" width=654 height=239 mce_src="/blogs/tutorials/CustomLoginScreens.gif"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;The SaaSGrid runtime&amp;nbsp;routes requests for applications based on automatically generated application URLs – which are created at deploy time; therefore, each application deployed to a SaaSGrid cloud instance has its own ‘entry point’.&amp;nbsp; If a user hits the ‘entry point’ for an application and the user is not already logged into to their SaaSGrid account, SaaSGrid will render the login screen, AND if the ISV for the application has specified a custom stylesheet for the application, it is applied as in the screens above.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;U&gt;Step 1: Create the Custom Stylesheet&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;The core styles to override in your custom stylesheet are:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;body&lt;/STRONG&gt; - Define a style for the body of the page, such as the background image/color, margins, etc.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;PRE&gt;body {&amp;nbsp;your declarations here;&amp;nbsp;}&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;div.section &lt;/STRONG&gt;- The login controls are encapsulated in a div with the class 'section'. Override this CSS class declaration to change the container of the login controls.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;PRE&gt;div.section {&amp;nbsp;your declarations here;&amp;nbsp;} &lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;.section .title&lt;/STRONG&gt;&amp;nbsp; - The login control container has an &amp;lt;h3&amp;gt; html tag that has the class 'title' applied to it.&amp;nbsp; Override this declaration in your stylesheet to change the title of the container.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;PRE&gt;div.section h3.title { your declarations here; }&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;#footer&lt;/STRONG&gt; - The copyright statement on the default login screen is encapsulated in a &amp;lt;div&amp;gt; html tag with the id 'footer'.&amp;nbsp; Override this id to change the style of the footer element.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;PRE&gt;#footer { your declarations here; }&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;Most of the desired customizations for the authentication screens can be accomplished by simply providing overrides for these 4 style declarations.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;U&gt;Step 2: Upload &amp;amp; Host the Stylesheet&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;After you have created your stylesheet, upload it to a hosting location of your choice that is accessible to the internet.&amp;nbsp; This may be a URL on your corporate website or another site altogether.&amp;nbsp; SaaSGrid implements your custom stylesheet by writing a &amp;lt;link rel=”stylesheet” /&amp;gt; tag to the login page that points to the URL you will specify in step 3.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;U&gt;Step 3: Specifying the Stylesheet URL in Your Application Deployment Settings&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Now that you have created and hosted your custom stylesheet, you will need to tell SaaSGrid that you want to override the login screen for your application.&amp;nbsp; You can do this in the Deployment Settings configuration for you application in the SaaSGrid Provider Portal.&amp;nbsp; On the Deployment Settings page you will see a section called ‘Login Page Stylesheet’ (see below) that allows you to enter the URL of your hosted stylesheet.&amp;nbsp; Simply enter the URL and save your changes. From this point on, when a user accesses any version of your application via its application URL and needs to authenticate, the login page will apply your style overrides.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 429px; HEIGHT: 298px" title=DeploymentSettings alt=DeploymentSettings src="http://community.saasgrid.com/images/old-content/LoginPageStylesheetOption.gif" width=429 height=298 mce_src="/blogs/tutorials/LoginPageStylesheetOption.gif"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;You're done!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;U&gt;&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.saasgrid.com/aggbug.aspx?PostID=737" width="1" height="1"&gt;</content><author><name>mammerman</name><uri>http://community.saasgrid.com/members/mammerman/</uri></author></entry><entry><title>API Changes</title><link rel="alternate" type="text/html" href="/developers/b/tutorials/archive/2008/10/03/api-changes.aspx" /><id>/developers/b/tutorials/archive/2008/10/03/api-changes.aspx</id><published>2008-10-03T20:46:00Z</published><updated>2008-10-03T20:46:00Z</updated><content type="html">Today we are publishing a new version of our API that will require code changes on our provider's part for the first time in the beta period. We understand that API revs are expensive and painful for developers and we will work very hard to make sure that we have as few as possible in the future. 
&lt;p&gt;
We are introducing a new enum (MeterStatus) and a new class (MeterResult). Their usage is similar - they return a status of the requested meter change. Previously, when you changed a meter, you received a bool to indicate success or failure (for decrement) or a count (for GetCount). This meant that you couldn't return meaningful status to your users about a meter - you had no way to know if they had had access and the count was exhausted or if they did not have access. For example:
&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;OLD API:&lt;/i&gt;&lt;/p&gt;

[code lang="csharp"]
bool canDoIt = SubscriptionContext.Instance.DecrementBlock("DoIt");

if (canDoIt)
{
    // Do It
}
[/code]

&lt;p&gt;&lt;br /&gt;That doesn't give you information about whether or not the user had access to the meter, only that it could or couldn't decrement. The new version:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;i&gt;NEW API&lt;/i&gt;:&lt;br /&gt;&lt;/p&gt;


[code lang="csharp"]
MeterStatus canDoIt = SubscriptionContext.Instance.DecrementBlock("DoIt");

if (MeterStatus.NotExhausted == canDoIt)
{
    // Do It
}
[/code]&lt;br /&gt;
&lt;p&gt;&lt;br /&gt;Likewise, methods that returned a value have been updated to also include status:&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;OLD API:&lt;/i&gt;&lt;br /&gt;
[code lang="csharp"]
long howManyLeft  = SubscriptionContext.Instance.GetBlockCount("DoIt");

if (10 &amp;lt; howManyLeft)
{
    // Do It
}[/code]
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;i&gt;NEW API:&lt;/i&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;[code lang="csharp"]&lt;/p&gt;

MeterResult&amp;lt;long&amp;gt; doItResult = SubscriptionContext.Instance.GetBlockCount("DoIt");&lt;br /&gt;
if (10 &amp;lt; doItResult.Value)
{
    // Do It
}
else if (MeterStatus.NotSubscribed == doItResult.Status)
{
    // User doesn't have access!
}
else if (MeterStatus.NotExhausted == doItResult.Status) 
{
    // User has some but not enough
}[/code]&lt;br /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.saasgrid.com/aggbug.aspx?PostID=717" width="1" height="1"&gt;</content><author><name>mphipps</name><uri>http://community.saasgrid.com/members/mphipps/</uri></author></entry><entry><title>How To Create Shared Lookup Tables</title><link rel="alternate" type="text/html" href="/developers/b/tutorials/archive/2008/09/10/how-to-create-shared-lookup-tables.aspx" /><id>/developers/b/tutorials/archive/2008/09/10/how-to-create-shared-lookup-tables.aspx</id><published>2008-09-10T11:25:00Z</published><updated>2008-09-10T11:25:00Z</updated><content type="html">&lt;P&gt;&lt;FONT color=gray&gt;This article was last updated on September 30, 2009.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;One of the challenges of writing SaaS apps is making a multi-tenant database schema, especially if you have a pre-existing single tenant application that you want to move to SaaS. SaaSGrid makes this process much easier by changing your schema to be multi-tenant automatically. &lt;/P&gt;
&lt;P&gt;Most of the time, SaaSGrid's automatic conversion of database tables to multi-tenant tables is exactly what you want. Sometimes there is data that should be shared among all of your tenants, such as a listing of countries and timezones.&amp;nbsp;In this case, it probably does not make sense to maintain separate copies of this data for each tenant and it is desirable to conserve database space. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SaaSGrid Support and Considerations&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;SaaSGrid permits you to include a metadata file that permits application developers to designate tables as "shared tables." This is straight-forward to do and is&amp;nbsp;described in the next section. Please be aware of all SaaSGrid considerations before utilizing this feature of SaaSGrid:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;U&gt;This is suited for the &lt;EM&gt;co-mingled&lt;/EM&gt; data model only.&lt;/U&gt; In the &lt;EM&gt;isolated database &lt;/EM&gt;data model, SaaSGrid simply deploys a copy of the database for every tenant, as there is no notion of "shared tables" in this data model. If you designate&amp;nbsp; shared tables in the isolated database model, it is ignored. In this scenario, a separate non-SaaSGrid database must be created for shared data, and private cloud operators can enlist SaaSGrid to assist with managing the configuration of the database connection.&lt;/LI&gt;
&lt;LI&gt;&lt;U&gt;This is suited for read-only&amp;nbsp;lookup&lt;EM&gt; &lt;/EM&gt;data only.&lt;/U&gt; SaaSGrid is designed to allow all traditional database operations&amp;nbsp;(e.g. select, insert, update, delete) in application code and&amp;nbsp;process these queries in a way that affects only the data of the tenant that the user belongs to.&amp;nbsp;Non-select operations that affect shared tables are not guaranteed to have&amp;nbsp;consistent state between databases in isolated and between servers in commingled model.&amp;nbsp;In the co-mingled data model, this is because there&amp;nbsp;will be multiple copies of the shared data: one for every&amp;nbsp;database server that&amp;nbsp;backs your scaled-out application. Only the copy of shared data local to your tenant's data would be changed in the event of a insert, update, or delete operation.Isolated suffers from a similar issue, but the scope is now at the tenant database level. However,&amp;nbsp;simultaneously changing data in all shared tables across all databases, servers and datamodels is possible and&amp;nbsp;can be done through the patch process. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Indicating Shared Tables in your Application&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Designating shared tables for your co-mingled application is done by including a&amp;nbsp;metadata file in your application.&lt;/P&gt;
&lt;P&gt;To do so, include a file called &lt;STRONG&gt;manifest.sql.xml&lt;/STRONG&gt; in the &lt;STRONG&gt;persistence&lt;/STRONG&gt; folder of your &lt;A href="http://community.saasgrid.com/developers/b/team/archive/2008/08/18/manually-creating-saasgrid-application-archives.aspx" mce_href="/blogs/saasgriddevs/archive/2008/08/18/manually-creating-saasgrid-application-archives.aspx"&gt;application archive&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Here is an example of such a file:&lt;/P&gt;&lt;PRE&gt;&amp;lt;manifest xmlns="http://schemas.saasgrid.com/PersistenceManifest"&amp;gt;&lt;BR&gt;   &amp;lt;tableOptions&amp;gt;&lt;BR&gt;      &amp;lt;tableOption name="countries" option="AllTenants" /&amp;gt;&lt;BR&gt;      &amp;lt;tableOption name="timezones" option="AllTenants" /&amp;gt;&lt;BR&gt;   &amp;lt;/tableOptions&amp;gt;&lt;BR&gt;&amp;lt;/manifest&amp;gt;&lt;/PRE&gt;
&lt;P&gt;The &lt;STRONG&gt;name &lt;/STRONG&gt;attribute indicates the name of your table. The &lt;STRONG&gt;option &lt;/STRONG&gt;attribute set to the value &lt;STRONG&gt;AllTenants&lt;/STRONG&gt; indicates that this table should be shared amongst tenants. You may share as many tables as you wish.&lt;/P&gt;
&lt;P&gt;To insert data into your shared tables when the application is deployed, place the insert statements in the Application Provisioning script after your table's&amp;nbsp;create statement. &lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.saasgrid.com/aggbug.aspx?PostID=712" width="1" height="1"&gt;</content><author><name>mphipps</name><uri>http://community.saasgrid.com/members/mphipps/</uri></author></entry><entry><title>Creating "Hello World" Part 3 of 3 - Modifying Your Local Environment</title><link rel="alternate" type="text/html" href="/developers/b/tutorials/archive/2008/04/11/creating-quot-hello-world-quot-part-3-of-3-modifying-your-local-environment.aspx" /><id>/developers/b/tutorials/archive/2008/04/11/creating-quot-hello-world-quot-part-3-of-3-modifying-your-local-environment.aspx</id><published>2008-04-11T20:48:00Z</published><updated>2008-04-11T20:48:00Z</updated><content type="html">&lt;P&gt;Apprenda's VP of Engineering, Abraham Sultan, takes you through how to&amp;nbsp;modify&amp;nbsp;your local environment to simulate different execution&amp;nbsp;contexts and see how the "Hello World"&amp;nbsp;application reacts to the different use cases. This&amp;nbsp;video is the&amp;nbsp;last part of the 3 part demo; if you haven't yet, we recommend that you see Parts &lt;A class="" title="Part 1 of the 3 part series." href="http://community.saasgrid.com/developers/b/tutorials/archive/2008/04/08/helloworldpart1of3.aspx" mce_href="/blogs/tutorials/archive/2008/04/08/helloworldpart1of3.aspx"&gt;1&lt;/A&gt; and &lt;A class="" title="Part 2 of the 3 Part Series" href="http://community.saasgrid.com/developers/b/tutorials/archive/2008/04/10/helloworldpart2of3.aspx" mce_href="/blogs/tutorials/archive/2008/04/10/helloworldpart2of3.aspx"&gt;2&lt;/A&gt; before this one so you can better understand what's going on.&amp;nbsp;&lt;/P&gt;
&lt;DIV style="TEXT-ALIGN: center"&gt;[camtasia:CreatingHelloWorld3of3:700:570] &lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.saasgrid.com/aggbug.aspx?PostID=698" width="1" height="1"&gt;</content><author><name>Apprenda</name><uri>http://community.saasgrid.com/members/Apprenda/</uri></author></entry><entry><title>Creating "Hello World" Part 2 of 3 - Using the API</title><link rel="alternate" type="text/html" href="/developers/b/tutorials/archive/2008/04/10/creating-quot-hello-world-quot-part-2-of-3-using-the-api.aspx" /><id>/developers/b/tutorials/archive/2008/04/10/creating-quot-hello-world-quot-part-2-of-3-using-the-api.aspx</id><published>2008-04-10T15:38:00Z</published><updated>2008-04-10T15:38:00Z</updated><content type="html">&lt;P&gt;Apprenda's VP of Engineering, Abraham Sultan, takes you through how to enhance a WCF "Hello World"&amp;nbsp;application to use the SaaSGrid API. This&amp;nbsp;video is a continuation of &lt;A class="" title="Part 1 of the 3 part series." href="http://community.saasgrid.com/developers/b/tutorials/archive/2008/04/08/helloworldpart1of3.aspx" mce_href="/blogs/tutorials/archive/2008/04/08/helloworldpart1of3.aspx"&gt;Part 1&lt;/A&gt;&amp;nbsp;and in&amp;nbsp;the&amp;nbsp;video&amp;nbsp;Abe goes&amp;nbsp;over the different types of monetizable features that SaaSGrid supports and shows you how easy it is to enhance your application to take advantage of them.&lt;/P&gt;
&lt;DIV style="TEXT-ALIGN: center"&gt;[camtasia:CreatingHelloWorld2of3:700:570] &lt;/DIV&gt;
&lt;P&gt;To learn how to configure your local execution environment check out&amp;nbsp;&lt;A class="" title="Part 3 of the 3 part series" href="http://community.saasgrid.com/developers/b/tutorials/archive/2008/04/11/creating-quot-hello-world-quot-part-3-of-3-modifying-your-local-environment.aspx" mce_href="/blogs/tutorials/archive/2008/04/11/helloworldpart3of3.aspx"&gt;Part 3&lt;/A&gt;!.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.saasgrid.com/aggbug.aspx?PostID=697" width="1" height="1"&gt;</content><author><name>Apprenda</name><uri>http://community.saasgrid.com/members/Apprenda/</uri></author></entry><entry><title>Creating "Hello World" Part 1 of 3 - Getting Started</title><link rel="alternate" type="text/html" href="/developers/b/tutorials/archive/2008/04/08/creating-quot-hello-world-quot-part-1-of-3-getting-started.aspx" /><id>/developers/b/tutorials/archive/2008/04/08/creating-quot-hello-world-quot-part-1-of-3-getting-started.aspx</id><published>2008-04-08T17:14:00Z</published><updated>2008-04-08T17:14:00Z</updated><content type="html">&lt;P&gt;Apprenda's VP of Engineering, Abraham Sultan, takes you through your first steps as a SaaSGrid developer. Beginning with a fresh install of the SaaSGrid SDK, Abe fires up Visual Studio and creates a new SaaSGrid solution, outlining the structure of a simple service-oriented application that does what you'd expect from your first project... it says "Hello World!". &lt;/P&gt;
&lt;DIV style="TEXT-ALIGN: center"&gt;[camtasia:CreatingHelloWorld1of3:700:570] &lt;/DIV&gt;
&lt;P&gt;Ready for more! check out &lt;A class="" title="Part 2 of the 3 part series" href="http://community.saasgrid.com/developers/b/tutorials/archive/2008/04/10/helloworldpart2of3.aspx" mce_href="/blogs/tutorials/archive/2008/04/10/helloworldpart2of3.aspx"&gt;Part 2&lt;/A&gt;.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://community.saasgrid.com/aggbug.aspx?PostID=696" width="1" height="1"&gt;</content><author><name>Apprenda</name><uri>http://community.saasgrid.com/members/Apprenda/</uri></author></entry></feed>