c# - Silverlight talking to a WCF using RIA Services Silverlight Client -


my silverlight project has references ria services silverlight client , .web application has access riaservices.server.

i can't seem find tutorial learn how connect these. once understand how data numbergenerator method. can pick there. have 3 questions need with.

first, setting project correctly? never done project ria before.

secondly reference need use servicecontract(), faultcontract, , operationcontract? examples show in system.servicemodel library. in case using external library ria services silverlight client not case. throws error saying missing reference. other libraries have 3 in it?

my last question uri use in systemdomaincontext? found code @ used myfirstriaapplication-web-employeedomainservice.svc in case don't have has .svc extension. use .xap or .aspx?

here silverlight code

here numbergenerator silverlight usercontrol page code

public partial class numbergenerator : usercontrol {     public numbergenerator()     {        initializecomponent();        generatenumber();      }      private void generatebutton_click(object sender, routedeventargs e)     {         generatenumber();     }      private void generatenumber()     {        int result = 0         systemclientservices systemclientservices = systemclientservices.instance;        result = systemclientservices.generatenumber();        numberlabel.content = result;     } }  

here system client services class

private readonly static systemclientservices _instance = new systemclientservices();  private systemdomaincontext _domaincontext = new systemdomaincontext();  private systemclientservices() { }  public static systemclientservices instance {         {         return _instance;     } }  public int generatenumber() {     //code goes here information domainservices     loadoperation load = this._domaincontext.load(this._domaincontext.getnumbergeneratorquery(), loadbehavior.keepcurrent, false);     return convert.toint32(load.entities); } 

here numbergenerator class on silverlight local project

 public sealed partial class numbergenerator : entity  {     private static readonly numbergenerator _instance = new numbergenerator();     public int numbergenerated { get; set; }      public numbergenerator()     {         numbergenerated = 0;     }      public static numbergenerator instance     {                 {             return _instance;         }     }  } 

here system domain conext class on silverlight local project

 using system;  using system.collections.generic;  using system.componentmodel;  using system.componentmodel.dataannotations;  using system.linq;  using system.runtime.serialization;  using system.servicemodel.domainservices;  using system.servicemodel.domainservices.client;  using system.servicemodel.domainservices.client.applicationservices;  using system.servicemodel.web;  using system.servicemodel;  public sealed partial class systemdomainconext : domaincontext  {     #region extensibility method definitions      /// <summary>     /// method invoked constructor once initialization complete ,     /// can used further object setup.     /// </summary>     partial void oncreated();      #endregion       /// <summary>     /// initializes new instance of <see cref="employeedomaincontext"/> class.     /// </summary>     public systemdomainconext() : this(new webdomainclient<isystemdomainservicecontract>(new uri("myfirstriaapplication-web-employeedomainservice.svc", urikind.relative)))     {     }      /// <summary>     /// initializes new instance of <see cref="employeedomaincontext"/> class specified service uri.     /// </summary>     /// <param name="serviceuri">the employeedomainservice service uri.</param>     public systemdomainconext(uri serviceuri) : this(new webdomainclient<isystemdomainservicecontract>(serviceuri))     {     }      /// <summary>     /// initializes new instance of <see cref="employeedomaincontext"/> class specified <paramref name="domainclient"/>.     /// </summary>     /// <param name="domainclient">the domainclient instance use domaincontext.</param>     public systemdomainconext(domainclient domainclient) : base(domainclient)     {         this.oncreated();     }      /// <summary>     /// gets set of <see cref="employee"/> entity instances have been loaded <see cref="employeedomaincontext"/> instance.     /// </summary>     public entityset<numbergenerator> generatednumber     {                 {             return base.entitycontainer.getentityset<numbergenerator>();         }     }      /// <summary>     /// gets entityquery instance can used load <see cref="employee"/> entity instances using 'getemployee' query.     /// </summary>     /// <returns>an entityquery can loaded retrieve <see cref="employee"/> entity instances.</returns>     public entityquery<numbergenerator> getnumbergeneratorquery()     {         this.validatemethod("getgeneratednumber", null);         return base.createquery<numbergenerator>("getnumbergenerator", null, false, true);     }      /// <summary>     /// creates new entitycontainer domaincontext's entitysets.     /// </summary>     /// <returns>a new container instance.</returns>     protected override entitycontainer createentitycontainer()     {         return new numbergeneratordomaincontextentitycontainer();     }      /// <summary>     /// service contract 'employeedomainservice' domainservice.     /// </summary>     [servicecontract()]     public interface isystemdomainservicecontract     {         /// <summary>         /// asynchronously invokes 'getemployee' operation.         /// </summary>         /// <param name="callback">callback invoke on completion.</param>         /// <param name="asyncstate">optional state object.</param>         /// <returns>an iasyncresult can used monitor request.</returns>         [faultcontract(typeof(domainservicefault), action="http://tempuri.org/employeedomainservice/getemployeedomainservicefault", name="domainservicefault", namespace="domainservices")]         [operationcontract(asyncpattern=true, action="http://tempuri.org/employeedomainservice/getemployee", replyaction="http://tempuri.org/employeedomainservice/getemployeeresponse")]         [webget()]         iasyncresult getgeneratednumber(asynccallback callback, object asyncstate);          /// <summary>         /// completes asynchronous operation begun 'begingetemployee'.         /// </summary>         /// <param name="result">the iasyncresult returned 'begingetemployee'.</param>         /// <returns>the 'queryresult' returned 'getemployee' operation.</returns>         queryresult<numbergenerator> endgetgeneratednumber(iasyncresult result);          /// <summary>         /// asynchronously invokes 'submitchanges' operation.         /// </summary>         /// <param name="changeset">the change-set submit.</param>         /// <param name="callback">callback invoke on completion.</param>         /// <param name="asyncstate">optional state object.</param>         /// <returns>an iasyncresult can used monitor request.</returns>         [faultcontract(typeof(domainservicefault), action="http://tempuri.org/employeedomainservice/submitchangesdomainservicefault", name="domainservicefault", namespace="domainservices")]         [operationcontract(asyncpattern=true, action="http://tempuri.org/employeedomainservice/submitchanges", replyaction="http://tempuri.org/employeedomainservice/submitchangesresponse")]         iasyncresult beginsubmitchanges(ienumerable<changesetentry> changeset, asynccallback callback, object asyncstate);          /// <summary>         /// completes asynchronous operation begun 'beginsubmitchanges'.         /// </summary>         /// <param name="result">the iasyncresult returned 'beginsubmitchanges'.</param>         /// <returns>the collection of change-set entry elements returned 'submitchanges'.</returns>         ienumerable<changesetentry> endsubmitchanges(iasyncresult result);     }      internal sealed class numbergeneratordomaincontextentitycontainer : entitycontainer     {          public numbergeneratordomaincontextentitycontainer()         {             this.createentityset<numbergenerator>(entitysetoperations.edit);         }     } } 

here system domain services class on silverlight.web

[enableclientaccess()] public class systemdomainservices : domainservice {   private numbergenerator numbergenerator = numbergenerator.instance;   public int numbergenerate()   {       return numbergenerator.numbergenerated;   } }    

here numbergenerator class on silverlight.web

private static readonly numbergenerator _instance = new numbergenerator(); [key] public int numbergenerated { get; set; }  public numbergenerator() {     numbergenerated = generatenumber(); }  public static numbergenerator instance {         {         return _instance;     } }  public int generatenumber() {     string db_date = "";     int db_num = 0;     string todaysdate = "";     int temp_num = db_num;     int result = 0;     using (sqlconnection connection = new sqlconnection(dbconnectionstring))     {         connection.open();         using (sqlcommand command = new sqlcommand("select * table", connection))         {             using (sqldatareader reader = command.executereader())             {                 while (reader.read())                 {                     db_date = reader.getstring(0);                     db_num = (int)(reader.getsqlint32(1));                     todaysdate = datetime.now.tostring("ymmdd");                     temp_num = db_num;                 }                 reader.close();             }             if (todaysdate != db_date)             {                 using (sqlcommand dateupate = new sqlcommand("update table set tsdate='" + todaysdate + "' tsdate='" + db_date + "'", connection))                 {                     dateupate.executenonquery();                 }                 db_num = 0;                 db_date = todaysdate;             }             db_num++;             using (sqlcommand numupate = new sqlcommand("update table set tsnum='" + db_num + "' tsnum='" + temp_num + "'", connection))             {                 numupate.executenonquery();             }             result = convert.toint32(db_date + db_num.tostring().padleft(3, '0'));             connection.close();             connection.dispose();         }         return result;     } } 

the answer question 2 might have go tools @ top, nuget package manager, package management console, , type following command install package 3 functions. pm> install-package riaservices.silverlight.domaindatasource


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -