İzlenecek yol: Bir WCF Veri Hizmetine Silverlight Denetimleri Bağlama
Bu izlenecek yolda, veriye bağlı denetimler içeren bir Silverlight uygulaması yaratacaksınız.Müşteri kayıtları aracılığıyla erişilebilen denetimlerin bağlı olduğu bir WCF Veri Hizmeti.
Bu örneklerde aşağıdaki görevler gösterilir:
Oluşturma bir Varlık Veri Modeli AdventureWorksLT örnek veritabanındaki verilerden oluşturulur.
Oluşturma bir WCF Veri Hizmeti veri sergiler Varlık Veri Modeli bir Silverlight uygulaması için.
Çalışan Data Source Configuration Wizard dolduran veri hizmetine bağlanmak için Veri kaynakları pencere.
Öğeleri sürükleyerek veriye bağlı denetimler kümesi oluşturma Veri kaynakları penceresine Silverlight Tasarımcısı.
İleriye ve geriye doğru kayıtlar arasında gezinme düğmeleri oluşturma.
[!NOT]
Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için, bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.
Önkoşullar
Bu örneği tamamlamak için aşağıdaki bileşenler gerekmektedir:
Visual Studio
Çalışan bir örneği için erişim SQL Server veya kendisine bağlı AdventureWorksLT örnek veritabanı olan sql Server Express.AdventureWorksLT veritabanından karşıdan yükleyebileceğiniz CodePlex Web sitesi.
Aşağıdaki kavramlar, önceki bilgisi de yararlı, ancak bu izlenecek yolu tamamlamak için gerekli değildir:
wcf veri hizmetleri.Daha fazla bilgi için bkz. WCF Data Services Overview.
Varlık veri modelleri ve ado.net varlık Framework.Daha fazla bilgi için bkz. Entity Framework Overview.
Çalışma Silverlight Tasarımcısı.
Silverlight veri bağlama.Daha fazla bilgi için bkz: Veri baðlama.
Hizmeti projesi oluşturma
Bu izlenecek yolda, boş web uygulama projesinde ana yaratmakla baþlayalým bir WCF Veri Hizmeti.
Hizmeti projesi oluşturmak için
Dosya menüsünde, Yeni'nin üzerine gelin ve Proje'ye tıklatın.
Genişletme Visual C# veya Visual Basicseçip Web.
Seçin Boş ASP proje şablonu.
İçinde ad kutusuna yazın AdventureWorksWebApp 'ı Tamam.
Hizmet için varlık veri modeli oluşturma
Uygulama verileri kullanarak göstermek için bir WCF Veri Hizmeti, hizmet için bir veri modeli tanımlanmalıdır.Bu izlenecek yolda, oluşturma bir Varlık Veri Modeli.
Varlık veri modeli oluşturmak için
Proje menüsünde, Yeni Öğe Ekle'yi tıklatın.
Seçin ado.net varlık veri modeli proje öğesi.
Adını değiştirmek AdventureWorksDataModel.edmxve i Ekle.
Varlık veri modeli Sihirbazı açar.
Üzerinde Modeli içeriği seçin sayfasında,'ı veritabanından Generate[NULL]'ı İleri.
Üzerinde Choose Your Data Connection sayfasında, aşağıdaki seçeneklerden birini seçin:
Aşağı açılan listesinde AdventureWorksLT örnek veritabanı için bir veri bağlantısı varsa, bunu seçin.
or
' I Yeni bir bağlantı ve AdventureWorksLT veritabanına bir bağlantı oluşturun.
Doğrulamak varlık Web.Config dosyasındaki bağlantı ayarlarını kaydetmek seçeneği seçili değilse ve i İleri.
Üzerinde Choose Your Database Objects sayfasında, genişletme Tabloseçip Müşteri tablo.
Son düğmesini tıklatın.
Hizmeti oluşturuluyor
Oluşturma bir WCF Veri Hizmeti verileri göstermek için Varlık Veri Modeli.
Hizmet oluşturulamadı
Üzerinde Proje menüsünde, select Add New Item.
Seçin wcf veri hizmeti proje öğesi.
İçinde ad kutusuna yazın AdventureWorksDataService.svc 'ı Ekle.
Hizmet yapılandırma
Hizmet üzerinde çalışmak üzere yapılandırmalısınız Varlık Veri Modeli , oluşturduğunuz.
Hizmeti yapılandırmak için
De AdventureWorksDataService.svc kod dosyası, yerine AdventureWorksDataService sınıf bildirimi aşağıdaki kodla:
Public Class AdventureWorksDataService Inherits DataService(Of AdventureWorksLTEntities) ' This method is called only once to initialize service-wide policies. Public Shared Sub InitializeService(ByVal config As DataServiceConfiguration) config.SetEntitySetAccessRule("*", EntitySetRights.All) config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2 End Sub End Class
public class AdventureWorksDataService : DataService<AdventureWorksLTEntities> { // This method is called only once to initialize service-wide policies. public static void InitializeService(DataServiceConfiguration config) { config.SetEntitySetAccessRule("*", EntitySetRights.All); config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; } }
Projeyi derleyin ve hatasız olarak oluşturulur doğrulayın.
Silverlight uygulaması oluşturma
Yeni bir Silverlight uygulaması oluşturun ve sonra hizmete erişmek için bir veri kaynağı ekleyin.
Silverlight uygulaması oluşturmak için
İçinde Solution Explorer, çözüm düğümünü sağ tıklatın,'ı Ekleve Yeni bir proje.
İçinde Yeni bir proje iletişim kutusunda, genişletme Visual C# veya Visual Basicseçip Silverlight.
Seçin Silverlight uygulaması proje şablonu.
İçinde ad kutusuna yazın AdventureWorksSilverlightApp 'ı Tamam.
İçinde Yeni bir Silverlight uygulaması iletişim kutusunu tıklatın Tamam.
Silverlight uygulaması için veri kaynağı ekleme
Hizmet tarafından döndürülen verilerine dayanan bir veri kaynağı oluşturun.
Veri kaynağı oluşturmak için
Üzerinde veri menüsünde,'ı Show Data Sources.
İçinde Veri kaynakları penceresinde tıklatın Add New Data Source.
Veri Kaynağı Yapılandırma Sihirbaz'ı açılır.
İçinde veri kaynağı türü seçin Sihirbazı'nı seçin, sayfa hizmet 'ı sonraki.
İçinde Add Reference hizmet iletişim kutusunu tıklatın bulma.
Visual Studiokullanılabilir hizmetler için geçerli çözüm arar ve ekler AdventureWorksDataService.svc 'de sunulan hizmetler listesine Hizmetleri kutusu.
İçinde ad kutusuna yazın AdventureWorksService.
İçinde Hizmetleri kutusuna AdventureWorksDataService.svc 'ı Tamam.
İçinde Add Reference hizmet sayfasında,'ı Son.
Visual Studio hizmeti tarafından döndürülen verilerin temsil düğümler ekler Veri kaynakları pencere.
Pencereyi kullanıcı arabirim tanımlama
Değiştirerek pencere düğmeleri eklemek XAML , Silverlight Tasarımcısı.
Pencere düzeni oluşturmak için
İçinde Solution Explorer'da, MainPage.xaml'ı çift tıklatın.
Açılır pencere Silverlight Tasarımcısı.
De XAML Tasarımcısı görüntülemek için arasında aşağıdaki kodu ekleyip <Grid> etiketler:
<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="525" /> </Grid.RowDefinitions> <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75" Content="<"></Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75" Content=">"></Button>
Projeyi yapılandırın.
Veriye bağlı denetimler oluşturma
Sürükleyerek müşteri kayıtlarını görüntüleyen denetimler oluşturma müşterilerin düğümden Veri kaynakları designer penceresi.
Veriye bağlı denetimler oluşturmak için
İçinde Veri kaynakları penceresinde, aşağı açılan menüsünü müşterilerin düğümünü seçip alt Ayrıntıları.
Genişletme müşterilerin düğümü.
Bu örnek, bazı alanlar görüntülenmez bu nedenle aşağıdaki düğümler yanındaki aşağı açılan menüyü tıklatıp seçin yok:
NameStyle
PasswordHash
PasswordSalt
ROWGUID
Bu engeller Visual Studio Tasarımcısı atlanmasına gelen bu düğümler için ebeveyn denetimleri oluşturma.Bu izlenecek yolda, son kullanıcı bu verileri görmek istemediği varsayılır.
Dan Veri kaynakları penceresinde, Sürükle müşterilerin tasarımcısı düğmeleri altında düğüm.
Visual Studiooluşturduğu XAML ve müşteri verileriyle ilişkili denetimleri kümesini oluşturan kod.
Hizmetinden verileri yüklemek
Verileri yüklemek için bu hizmeti kullanın ve sonra döndürülen verileri denetimlerin bağlı olduğu veri kaynağı atayabilirsiniz.
Hizmetinden verileri yüklemek için
Tasarımcıda düğmelerinden birini yanındaki boş bir alanı tıklatın.
İçinde özelliklerini penceresinde doğrulayın UserControl seçilir ve sonra tıklatın olayları sekmesi.
Bulun Loaded olay ve çift tıklatın.
Kod dosyasında açar (MainPage.xaml) aşağıdaki using (C#) veya Imports (Visual Basic) deyimi:
Imports System.Windows.Data Imports AdventureWorksSilverlightApp.AdventureWorksService
using System.Windows.Data; using AdventureWorksSilverlightApp.AdventureWorksService;
Olay işleyicisini aşağıdaki kodla değiştirin.Oturdum emin localhost bu kodda adresiyle geliştirme bilgisayarınızda yerel ana bilgisayar adresi:
Private advWorksService As AdventureWorksLTEntities Private customersViewSource As CollectionViewSource Private Sub UserControl_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded advWorksService = New AdventureWorksLTEntities(New Uri("https://localhost:6188/AdventureWorksDataService.svc")) customersViewSource = Me.Resources("CustomersViewSource") advWorksService.Customers.BeginExecute(Sub(result As IAsyncResult) customersViewSource.Source = advWorksService.Customers.EndExecute(result) End Sub, Nothing) End Sub
private AdventureWorksLTEntities advWorksService; private System.Windows.Data.CollectionViewSource customersViewSource; private void UserControl_Loaded(object sender, RoutedEventArgs e) { advWorksService = new AdventureWorksLTEntities(new Uri("https://localhost:54961/AdventureWorksDataService.svc")); customersViewSource = this.Resources["customersViewSource"] as System.Windows.Data.CollectionViewSource; advWorksService.Customers.BeginExecute(result => customersViewSource.Source = advWorksService.Customers.EndExecute(result), null); }
Uygulamayı Test Etme
Yapı ve müşteri kayıtlarını görüntüleyebilirsiniz doğrulamak için uygulamayı çalıştırın.
Uygulamayı test etmek için
Üzerinde Build menüsünde,'ı Build Solution.Çözümünüzün hatasız oluşturulduğunu doğrulayın.
F5'e basın.
İlk kayıt Müşteriler tablosunda görünür doğrulayın.
Uygulamayý kapatýn.
[!NOT]
Bir hata varsa, bu kod ASP geliştirme sunucunuz için doğru bağlantı noktası içerir doğrulayın.
Kayıtlar arasında gezinme
Kullanarak kayıtlar arasında kaydırma sağlayan kod eklemek < ve > düğmeler.
Satış Kayıtlarda gezinmek kullanıcıları etkinleştirmek için
Tasarımcı ve çift MainPage.xaml açık < düğme.
Oluşturulan yerine backButton_Click yerine aşağıdaki kodu olay işleyicisi:
Private Sub backButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles backButton.Click customersViewSource.View.MoveCurrentToPrevious() If customersViewSource.View.IsCurrentBeforeFirst Then customersViewSource.View.MoveCurrentToFirst() End If End Sub
private void backButton_Click(object sender, RoutedEventArgs e) { customersViewSource.View.MoveCurrentToPrevious(); if (customersViewSource.View.IsCurrentBeforeFirst) customersViewSource.View.MoveCurrentToFirst(); }
Dönmek için designer ve çift > düğme.
Visual StudioArkadaki kod dosyası açar ve yeni bir oluşturur nextButton_Click olay işleyicisi.
Oluşturulan yerine nextButton_Click yerine aşağıdaki kodu olay işleyicisi:
Private Sub nextButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles nextButton.Click customersViewSource.View.MoveCurrentToNext() If customersViewSource.View.IsCurrentAfterLast Then customersViewSource.View.MoveCurrentToLast() End If End Sub
private void nextButton_Click(object sender, RoutedEventArgs e) { customersViewSource.View.MoveCurrentToNext(); if (customersViewSource.View.IsCurrentAfterLast) customersViewSource.View.MoveCurrentToLast(); }
Uygulamayı Test Etme
Oluşturmak ve görüntülemek ve müşteri kayıtlarını gidin doğrulamak için uygulamayı çalıştırın.
Uygulamayı test etmek için
Üzerinde Build menüsünde,'ı Build Solution.Çözümünüzün hatasız oluşturulduğunu doğrulayın.
F5'e basın.
İlk kayıt Müşteriler tablosunda görünür doğrulayın.
' I < ve > geri gidin ve müşteri kayıtları iletmek için düğmeler.
Uygulamayý kapatýn.
[!NOT]
Bir hata varsa, bu kod ASP geliştirme sunucunuz için doğru bağlantı noktası içerir doğrulayın.
Sonraki Adımlar
Bu izlenecek yolda tamamladıktan sonra aşağıdaki görevleri gerçekleştirebilirsiniz:
Değişiklikleri veritabanına geri kaydetmek öğrenin.Daha fazla bilgi için bkz: Veri baðlama.
Daha fazla özellikleri kullanarak birleştirmek öğrenin WCF Veri Hizmetleri , Silverlight uygulamaları.Daha fazla bilgi için bkz: ado.net Data Services (Silverlight).