Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

10 février 2014 1 10 /02 /février /2014 01:56

NET RIA Services :

Accès aux données          
Service et Code métier
 
                            IHM et Code métier
Côté serveur
Côté client



1 Créer un projet Silverlight (ne pas cocher « activer les services RIA WCF »)
ria1.png
 

2 Ajouter un nouvel élément > Service WCF

ria2.png


3 définir le contrat

[ServiceContract] pour l’interface
[OperationContract] pour les méthodes

 

  [ServiceContract]
    public interface IClientService
    {
        [OperationContract]
        List<Client> GetClients();
    }

 

4 Classe ClientService implémentant le contrat

 

public class ClientService : IClientService
    {
        public List<Client> GetClients()
        {
            List<Client> clients = new List<Client>();
            SqlConnection connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=DbDemo;Integrated Security=True");
 
            using (SqlCommand command = connection.CreateCommand())
            {
                command.CommandType = CommandType.Text;
                command.CommandText = "select * from Client";
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Client client = new Client();
                        client.Id = reader["Id"] == DBNull.Value ? default(int) : int.Parse(reader["Id"].ToString());
                        client.Name = reader["Name"] == DBNull.Value ? default(string) : reader["Name"].ToString();
                        client.Email = reader["Email"] == DBNull.Value ? default(string) : reader["Email"].ToString();
                        client.CategoryId = reader["CategoryId"] == DBNull.Value ? default(int) : int.Parse(reader["CategoryId"].ToString());
 
                        clients.Add(client);
 
                    }
                }
                   
            }
            connection.Close();
            return clients;
        }
 
    }

 

 Générer le projet *.Web

 

Noter l’adresse du service (clic droit sur *.svc > voir dans l’inspecteur de la page)

Web.config

 

<system.serviceModel>

        <behaviors>

            <serviceBehaviors>

                <behavior name="">

                    <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />

                    <serviceDebug includeExceptionDetailInFaults="false" />

                </behavior>

            </serviceBehaviors>

        </behaviors>

        <serviceHostingEnvironment aspNetCompatibilityEnabled="true"

            multipleSiteBindingsEnabled="true" />

    </system.serviceModel>

 

 

5 Dans le projet IHM Silverlight
Ajouter une référence de service  > indiquer l’adresse du service
 
 
ria3.png
La référence ainsi qu’un fichier de configuration sont ajoutés

 

<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IClientService" maxBufferSize="2147483647"
                    maxReceivedMessageSize="2147483647">
                    <security mode="None" />
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="../ClientService.svc" binding="basicHttpBinding"
                bindingConfiguration="BasicHttpBinding_IClientService" contract="ServiceReference1.IClientService"
                name="BasicHttpBinding_IClientService" />
        </client>
    </system.serviceModel>
</configuration>



Utilisation (affichage de la liste dans un datagrid)
MainPage

 

   public MainPage()
        {
            InitializeComponent();
 
            ClientServiceClient service = new ClientServiceClient();
            service.GetClientsCompleted += service_GetClientsCompleted;
 
            service.GetClientsAsync();
           
        }
 
        void service_GetClientsCompleted(object sender, GetClientsCompletedEventArgs e)
        {
            dgClients.ItemsSource = e.Result;
        }

 

Xaml

 

<Grid x:Name="LayoutRoot" Background="White">
 
        <sdk:DataGrid Name="dgClients" HorizontalAlignment="Left" Height="253" Margin="10,20,0,0" VerticalAlignment="Top" Width="371"/>
 
    </Grid>



ria4.png

 

Note : SvcUtile.exe se trouve dans C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\
  ressources

Silverlight toolkit(bibliothéque de controls) http://codeplex.com/Silverlight
Exemples de codes dans C:\Program Files (x86)\Microsoft SDKs\Silverlight
Cours http://www.dotnet-france.com/Cours/Silverlight.html Exemples de codes Silverlight dans browser  http://samples.msdn.microsoft.com/silverlight/samplebrowser/index.htm#/?sref=easing_functions_gallery&sref=DeepZoomSimpleZoom_InOnly

   
 

Partager cet article

Repost 0
Published by Romagny13 - dans Silverlight
commenter cet article

commentaires