Ana içeriğe atla

Silverlight 2.0 – SQL İşlemleri için WCF ve Linq To SQL Kullanım

Silverlight uygulamları RIA yapısında oldukları için direk sql işlemleri ile çalışmak yerine bunları bir servis olarak oluşturup kullanmamız önerilmektedir. Bu sebepten ötürü veri tabanı işlemlerimizi yapmak için ister Linq Data Model oluşturduktan sonra WCF servisine querynin yapılacağı metota bağlyoruz. Sonrasında Silverlight projesine Web service referance olarak ekledikten sonra gerekli işlemleri yaparak istediğimiz data kontrollerine ekleyebilinmesi mümkündür.

Sırası ile yapılması aşağıdaki adımları uygularsanız sizin projenizde sorunsuz bir biçimde çalışacaktır.

  • Silverlight projesi oluşturuyoruz.
  • Oluşturulan web projesine Linq To SQL Data Model ekliyoruz.
  • Oluşturulan web projesine WCF Service ekliyoruz ve aşağıdaki kodları interface ve sınıfa ekliyoruz.

IService1.cs

using System.Collections.Generic;
using System.ServiceModel;

namespace SQLData.Web
{
    // NOTE: If you change the interface name "IService1" here, you must also update the reference to "IService1" in Web.config.
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        List<Customer> GetCustomerGetByLastName(string lastName);
    }
}

Service1.cs

using System.Collections.Generic;
using System.Linq;

namespace SQLData.Web
{
    // NOTE: If you change the class name "Service1" here, you must also update the reference to "Service1" in Web.config.
    public class Service1 : IService1
    {

        #region IService1 Members

        public List<Customer> GetCustomerGetByLastName(string lastName)
        {
            var ctx = new DataClasses1DataContext();
            var matchingCustomer = from cust in ctx.Customers
                                   where cust.LastName.StartsWith(lastName)
                                   select cust;
            return matchingCustomer.ToList();
        }

        #endregion
    }
}

  • Yukarıdaki işlemleri gerçekledikten sonra webconfigte ws service content özelliğini basic olarak değiştiriyoruz.
  • Uygulamayı derliyoruz.
  • Sİlverlight uygulaması üzerine ilk olarak Silverlight.Data.Control assembly ‘ını projeye ekliyoruz. Bu işlem silverlight uygulamasında DataGrid kontrolünü kullanabilmenize olanak tanıyacaktır.
  • Silverlight uygulamasına WCF service ini referans olarak ekliyoruz.
  • Sonrasında Page.xaml ve page.xaml.cs ‘e aşağıdaki kod bloklarını ekliyoruz

Page.xaml

<UserControl x:Class="SQLData.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
    Width="700" Height="300">
    <Grid x:Name="LayoutRoot" Background="White" ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="30"/>
            <RowDefinition />
            <RowDefinition Height="30" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>       
        <TextBlock Text="Lütfen Arayacağınız kişinin soyadını giriniz.." Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left"/>
        <TextBox x:Name="txtLastName" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Right" Width="150" Text="Lütfen arayın..."/>
        <my:DataGrid x:Name="grd" AlternatingRowBackground="Beige" AutoGenerateColumns="True" Width="700" Height="200" CanUserResizeColumns="True" Grid.Row="1"/>
        <Button x:Name="btnClick" Grid.Row="2" HorizontalAlignment="Center" Content="Ara"/>
    </Grid>
</UserControl>

Page.xaml.cs

using System;
using System.Windows;
using System.Windows.Controls;

namespace SQLData
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
            Loaded += new RoutedEventHandler(Page_Loaded);
        }

        void Page_Loaded(object sender, RoutedEventArgs e)
        {
            btnClick.Click += new RoutedEventHandler(btnClick_Click);
        }

        void btnClick_Click(object sender, RoutedEventArgs e)
        {
            ServiceReference1.Service1Client webService = new SQLData.ServiceReference1.Service1Client();
            webService.GetCustomerGetByLastNameCompleted += new EventHandler<SQLData.ServiceReference1.GetCustomerGetByLastNameCompletedEventArgs>(webService_GetCustomerGetByLastNameCompleted);
            webService.GetCustomerGetByLastNameAsync(txtLastName.Text);
        }

        void webService_GetCustomerGetByLastNameCompleted(object sender, SQLData.ServiceReference1.GetCustomerGetByLastNameCompletedEventArgs e)
        {
            grd.ItemsSource = e.Result;
        }
    }
}

Yukarıdaki işlemleri adım adım yaptıktan sonra projemizi çalıştırdığımız da sorunsuzca uygulamamız çalışacaktır. Yaptığımız işlem ise soyadını girdiğimiz kullanıcıları DataGrid kontrolünde listelemektir.

Not: Linq To Sql Data Model de SQL Server 2008 veri tabanı örneklerinden AdventureWorks_LT veri tabanından Customer tablosunu kullandık.

Herkese mutlu günler diliyorum.

Yorumlar

Bu blogdaki popüler yayınlar

SharePoint 2010 - Content Query for Blog Posts

I hope this post will help many of you feel comfortable with using the Content Query Web Part. In this post I will walk you through the process of creating a content query web part and configuring it to show custom field types. I will also give details on how to use XSLT to stylize and format the data being pulled. I will be using the following scenario as an example. Say that you had a site collection with a top level publishing site. This publishing site would display a the most recent blog posts from all blog sites within its own site collection. To solve this problem we will use a Content Query Web Part and a customized ItemStyle.xsl using XSLT. Please note that the “SharePoint Server Publishing Infrastructure” needs to be enabled at the site collection to display the content query web part. Step 1: Add a Content Query Web Part to Page Navigate to the site that you want the blog posts to show up and click on edit page. Under Editing Tools in the Ribb

Olasılıksız - Kitap Yorum

Olasılıksız hayatımda okuduğum en iyi kitaptı. Tek çırpıda hiç sıkılmadan, eğlenerek okudum bu kitabı, tavsiyem sizinde okumanız. Kitabın kapağı ve içeriği ile ilgili kısa bilgi aşağıdadır. Olasılık, tahmin, düşünceler, nöbetler, karışıklıklar, ileriyi görebilme zannı, dejavu ve tabii ki olasılıksız şeyler. Bu kelimelerle içli dışlı olabileceğiniz, bütün bu kelimelerin yaşamdaki yerini kavrayabileceğiniz müthiş bir uyarlama. Adam Fawer' ın ortaya çıkardığı bu uyarlama romanın müthiş bir çalışmanın ve araştırmanın sonucu ortaya çıktığının kitabın başından sonuna kadar farkındasınız. Bu uyarlamasını, derin araştırmalarıyla birleştirip romanı tekdüzelikten çıkarıp müthiş bir yere koyduğu için de Fawer' a müteşekkir oluveriyorsunuz. Sıkıcı diye nitelendirebileceğiniz teorik bilgileri bile bir çırpıda okuyuveriyorsunuz. Teorik bilgiler dahi olaylarla sonuna kadar bağlantılı aktarılmış. Tekdüzelikten çıkmış bir roman; olasılıksız. Her an olayın kurgusunun değişmesi olasılık dahilind

.Net 3.5 SP1 – Full Install Packages (Tam Kurulum)

.Net Framework 3.5 SP1 ‘i bilgisayarınıza kurmak istediğinizde normal şartlar altında Microsoft ‘un sitesinde 2.7 mb ‘lik bir dosya indirir ve kurulum işlemlerinizi bu dosya üzerinden yaparsınız. Ancak bu indirmiş oluğunuz dosya yaklaşık 220 mb ‘lik veriyi internetten indirerek kurulum yapmaktadır. İnternet çıkışına izin verilmeyen kurumlar ve kuruluşlar için bu durum bir sıkıntı oluşturmaktadır. Bu sebepten ötürü aşağıdaki link yardımı ile tam yükleme paketini indirdikten sonra hiç internet ihtiyacınız olmadan .Net 3.5 SP1 ‘i kurabilmeniz mümkün olacaktır. Link