Microsoft Visual Studio Lightswitch ve WCF RIA Services Kardeşliği

Visual Studio Lightswitch iş uygulamaları oluşturmak için Microsoft tarafından geliştirilmiş olan bir ürün olarak hayatımıza girmiştir. Lightswitch verilere bağlanma ve işleme konusunda kolay ve güçlü bir ortam sunmaktadır. Yalnız verilerin işlenmesi konusu tek bir Entity üzerinden yapıldığından aynı anda iki veri kümesinin işlenmesi durumu Lightswitch ile karışık bir durum oluşturmaktadır.

Verilerin görüntülenmesi aşamasında bir sorun veya karışıklık yaşanmaması ile birlikte bu verilerin işlenmesi Lightswitch tarafından tek tek ele alınmaktadır. PreProcess Query kullanımı ilk akla gelen yöntemler arasında olabilir fakat PreProcess Query Entity içinde bulunan kayıtları filtrelemek için kullanılan bir yöntemdir.

Aynı anda birden fazla Entity ile çalışabilmek için Lightswitch ve WCF RIA Service kardeşliğinden yararlanmamız doğru bir çözüm olarak görünmektedir. Hali hazırda Lightswitch WCF RIA Services için bizlere destek sunacağından yapılacak işlemler
bizim tarafımızdan çok basit bir şekilde halledilebilecektir.

İlk önce yeni bir Lightswitch projesi oluşturalım ve PersonelBilgileri ismini verelim.


Projemizde iki adet tablo oluşturarak bu tablolar içerisinde Personel ve Dış Personel bilgilerinin tutulmasını sağlayacağız.


Personel_Bilgileri isimli tablomuz aşağıdaki gibi olacaktır.


Dis_Personel_Bilgileri isimli tablomuz da aşağıdaki gibi alanlara sahip olacaktır.


Entity bilgilerimizi oluşturduktan sonra Lightswitch içerisinde mevcut entitylerimiz için birer ekran tasarlayarak (Editable Grid Screen) veri giriş işlemlerimizi yapabiliriz.

Ekran tasarlama işlemlerini Solution Explorer penceresinde bulunana Screens bölümünden yapabileceğimizi hatırlatmak isterim.

Personel Bilgileri verileri aşağıdaki gibi oluşturulmuştur.


Dış Personel Bilgileri verileri ise aşağıdaki gibi oluşturulmuştur.


Visual Studio Lightswitch içerisinde mevcut iki Entity verilerini aynı ekran üzerinde göstermek gibi bir durum söz konusu olmamaktadır. Bunun nedeni ise Lightswitch’in ekranlar üzerinde – özellikle bir tablo ilişkisi olmaması durumunda – tek bir Entity ile çalışabilmesidir.

Bu tarz bir sorunun çözüm yolu olarak WCF RIA Services kullanımı uygun bir durum olabilmektedir.

WCF RIA Service

Şimdi WCF RIA Servicisimizi oluşturarak nasıl Lightswitch ile entegre edeceğimize bakalım.

Visual Studio üzerinden Lightswitch projemize yeni bir Class Library projesi ekliyoruz.



Projemiz içerisinde Visual Studio tarafından oluşturulmuş olan Class1.cs dosyasının sildikten sonra projemize bir adet Domain Service Class eklememiz gerekmektedir.




Yeni bir Domain Service Class’ın projemize eklenmesi ile birlikte karşımıza Add New Domain Service Class ekranı açılacaktır. Açılan ekran üzerinde Enable client access işaretinin kaldırılması gerekmektedir.


Pencere onaylandıktan sonra projemize eklenen Domain Service Class ile birlikte referans olarak yeni kütüphanelerin de eklenmesi sağlanacaktır. Ayrıca Domain Service Class kod bilgiside projemize eklenerek hazır olarak karşımıza çıkacaktır.

Servis işlemlerinin yapılabilmesi, Lightswitch içerisinde oluşturduğumuz Entity bilgilerine ulaşabilmek için ek olarak projemize yeni referans bilgileri eklememiz gerekmektedir. (Var olanların eklenmesine gerek yoktur.)

Bunlar;

  • System.Runtime.Serialization
  • System.ServiceModel.DomainServices.Server
  • System.Web
  • System.Data.Entity
  • System.ComponentModel.DataAnnotations
  • System.Configuration


Microsoft Lightswitch projesi içersinde oluşturduğumuz Entity’lerin WCF RIA Servis üzerinden kullanılabilmesi için servis projemize Lightswitch projemizin bilgilerinin referans olarak gösterilmesi gerekmektedir.

Bu işlemi yapabilmek için projemize varolan Lightswitch ApplicationData isimli sınıf bilgisini eklememiz gerekmektedir. Bu sınıf dosyası projemiz içerisinde bulunan ServerGenerated klasörünün altında bulunan GeneratedArtifacts klasörü içinde bulunmaktadır. Yalnız dosya bilgisini WCF RIA Servis projemize eklerken farklı bir yöntem ile bağlı dosya olarak sisteme eklememiz gerekmektedir.




Artık servis sınıfımızı geliştirebiliriz. Servisimizi geliştirirken sınıfı içerisine Lightswitch projemizden bağlı olarak projemize eklediğimiz sınıf ile birlikte iki adet daha referans bilgisinin eklenmesi gerekmektedir.

Bunlar;


Servisimizi geliştirirken tüm personel bilgilerinin ortak bir sınıf içinde toplanıp servisimizden Lightswitch projesine göndermemiz gerekecektir. Bunun için ortak olarak kullanılacak olan bir sınıf tanımını servisimize eklememiz gerekmektedir.


Lightswitch entityleri üzerinden alacağımız bilgileri tanımladığımız sınıf bilgisi şekline dönüştürerek istediğimiz entity’leri birleştirme imkanına sahip olacağız. Tabiki burada yaşanacak olan en büyük problem Lightswitch projesinin bağlandığı
ve veri işlemleri yaptığı veritabanı bilgisinin (ConnectionString) WCF RIA Servis
tarafından da kullanılabilmesidir. Servis projesi içerisinde oluşturulacak static
bir bağlantı cümlesi mevcut işlemlerimi çözebilecek bir yapıya sahip olmayabilir.
Bunun için Lightswitch projemiz içerisinde bulunan ConnectionString verisini aldıktan
sonra servis projemizin bu ConnectionString üzerinden çalışmasını sağlayabiliriz.
Bu bizlere dinamik bir yapı sağlamış olacaktır.

Şimdi Lighswitch projemiz üzerinden ConnectionString bilgisini alarak RIA Servis projemizin bu bilgiyi kullanmasını sağlayalım.


Şimdi verileri RIA Service üzerinden Lightswitch’e göndermek için bir SELECT fonksiyonu hazırlamamız gerekmektedir. Bu fonksiyon sayesinde Lightswitch’in verileri alması ve yeni oluşturacağımız bir ekran üzerinden gösterilmesi sağlanacaktır.


_qPersonelBilgisi Linq sorgusu için PersonelID alanının negatif bir değer olmasını sağladık. Amacımız TumPersonelBilgileri sınıfından oluşacak bir IQueryable tiipinde bir sonuç içerisinde Key olarak belirlenen değerlerin tekil olarak gelmesini sağlamaktır.

Sorgu sonucumuzun Microsoft Lightswitch projemize IQueryable olarak gönderilmesi Lightswitch üzerinden bu verilerin sorgulanabilir ve filtrelenebilir bir şekilde kullanılması için gerekli olacaktır.

Lightswitch içerisinde bulunan ekranlarda sayfalama yapabilmek için Count metodunun override edilmesini sağlıyoruz.


Bu işlemleri tamamladıktan sonra projemizi Build ederek Lightswitch üzerinden gelen verilerin kontrolüne bakabiliriz. Visual Studio Lightswitch projemizden WCF RIA Service bilgilerine ulaşabilmek için servisimizi Lightswitch projesine Data Source
olarak eklemeliyiz. Bu işlemleri için Properties penceresinde bulunan Data Source
bölümünü kullanabiliriz.


Açılan pencereden Data Source tipimizi WCF RIA Service olarak belirliyoruz.


Açılan pencerede Add Reference butonu ile WCF RIA Servis kütüphanemizi referans olarak belirtiyoruz.


Add Reference penceresinden bulunan Projects tabında WCF RIA Service projemizi bularak pencereyi onaylıyoruz.


Böylelikle Attach Data Source Wizard ekranında servis bilgimiz eklenmiş olacaktır.


Next ile pencereyi onayladığımız zaman servis referansı üzerinden gelen Entity bilgilerine ve bu Entity’e ait alanlara ulaşabilmekteyiz. Bu pencere üzerinde TumPersonelBilgileri entity bilgisini seçmek ve eğer istersek Data Source Name alanında veri kaynağı adını belirtmemiz yeterli olacaktır.



Tüm işlemlerimizi bitirdikten sonra Lightswitch projemiz içerisinde servis tarafından bize gönderilen TumPersonelBilgileri isimli bir entity bilgisine ulaşmış oluruz. Şimdi bu entity’i kullanarak bir ekran yaratıp (Editable Grid Screen) verilerin durumlarını kontrol edebiliriz. Yeni bir ekran oluşturduktan sonra projemizi çalıştırdığımız da WCR RIA Service üzerinden gelen bilgilere ulaşabildiğimizi görüyoruz.


Burada dikkat edilmesi gereken konu bu verilerin sadece SELECT sorgusu sonucu gelen veriler olmasıdır. Ekranda görünen verilerin hiçbir şekilde güncellenmesi veya silinmesi söz konusu değildir.

Şimdi verilerin nasıl güncellenebileceği konusuna bakmamız iyi olacaktır.

Güncelleme işleminin de WCF RIA Service ile yapılmasını sağlamak için servisimize güncelleme ile ilgili metodun yazılması gerekecektir. Bunun için servisimize geri dönelim ve Update metodumuzu tasarlayalım.Güncelleme işleminde en çok dikkat edilecek
konu negatif olarak servis tarafından gönderdiğimiz ID bilgilerinin Update metodu
tarafında kullanılacak olmasıdır. ID bilgisinin negatif veya pozitif olma durumuna
göre hangi tablo üzerinde bir güncelleme yapmamız gerektiğini bularak işlemlerimizi
ona göre yapacağız.


Metodumuzu servisimize ekledikten sonra servisimizi Build etmemiz gerekmektedir. Ardından Lightswitch projemize dönerek Data Sources bölümünde en son eklediğimiz WCF Servis referansımızı güncellememiz gerekmektedir. Bunun için Data Sources bölümünde bulunan servis bilgisine sağ tuşla tıkladıktan sonra Update dememiz yeterli olacaktır.


Ardından Lightswitch projemiz üzerinde oluşturduğumuz TumPersonel ismindeki ekranı silerek yeniden bir Editable Grid Screen oluşturmamız gerekmektedir. Projemizi yeniden çalıştırdığımızda artık kayıtlar üzerinde güncelleme işlemi yapabildiğimizi görebiliriz.


Microsoft Visual Studio Lightswitch genel olarak bir RAD aracı olarak yazılımcılar için büyük kolaylıklar sağlamıştır. Lightswitch’in WCF RIA destekli kullanımı ile geliştirdiğimiz uygulamaların yetenekleri ve kullanılabilirliklerini arttırabilmekteyiz.

Bir sonraki Visual Studio Lightswitch makalesinde görüşmek üzere…

Kaynak:

MSDN

Visual Studio Lightswitch Help Website

Lightswitch Extension Library Proje Oluşturma Hatası.

Lightswitch için bir eklenti oluşturmak için gerekli olan şablonlardan herhangi biri ile proje oluştururken aşağıdaki hatayı alıyorsanız.

Yapmanız gereken bilgisayarınızda bulunan Microsoft.LightSwitch.Toolkit.targets isimli dosyayı

%Program Files (x86)\MSBuild\Microsoft\VisualStudio\LightSwitch\v1.0 klasörüne kopyalamak ve ardından yeniden proje oluşturmaktır.

LightSwitch ile kalın…

Microsoft Visual Studio Lightswitch Hesaplanmış Alanlarda Resim Göstermek

Lightswitch içinde kullanılan hesaplanmış alanlardan bazı durumlarda geriye resim döndürmek isteyebiliriz. Hesaplanmış (Compute) alanlar için hazırlayacağımız Compute metodları Lightswitch uygulamamızın Common adındaki kütüphanesi üzerinde bulunmaktadır. Bu durum sebebiyle göstermek istediğimiz resimlerin uygulamamızın File View görüntüsüne geçtiğimiz zaman görebileceğimiz Common kütüphane projesine eklenmesi durumu söz konusudur. Ardından bir ImageHelper sınıfı geliştirerek resimlerin gösterilmesi sağlanabilir.

Araştırma yaparken karşılaştığım bir başka yöntemi sizinle paylaşmak istedim.

Bu yöntem genelinde resimlerimizi Base64 string tipine çevirerek bu String değerlerini Compute metodundan geri döndürebiliyoruz. Yalnız ufak bir problem mevcut. Elimizdeki resimleri Base64 string olarak nasıl çevirebiliriz ? Bu konuda da birileri çalışıp bir site geliştirmiş.

Online Image to Base64 Converter

Bu site sayesinde resimlerimiz rahat bir şekilde Base64 string olarak çevirebiliyoruz. Peki devamında ne yapmamız gerekiyor ?

İlk önce data designer aracı ile oluşturduğumuz Entity bilgimize bir Computed Property eklememiz gerekiyor. Daha sonra eklediğimiz bu özelliğin Compute metodu için aşağıdaki gibi bir geliştirme yapabiliriz.

Uygulamamızı çalıştırdığımız zaman TalepOnem durumunun değerine göre grid üzerinde resimlerin geldiğini görebiliriz.

Benim için başarılı bir çözüm oldu. Sizin içinde kullanışlı olur sanırım.

Lightswitch’le kalın 🙂

Microsoft Visual Studio Lightswitch Ekranları

Daha önceki makalelerimizde Microsoft Visual Studio Lightswitch’e temel bir giriş yaparak ardından veri işlemlerini anlatmaya çalışmıştık.

Diğer makalelere aşağıdaki bağlantılardan ulaşabilirsiniz.

Bu makalemizde Visual Studio Lightswitch ile beraber kullanılan ekranlardan bahsedeceğiz. Bir uygulama geliştirirken yaşanan en büyük sıkıntılardan biri uygulama formlarının kullanıcılar için uygun olarak tasarımlarının yapılmasıdır. Kullanıcıların rahat kullanabilecekleri form tasarımlarının oluşturulması ve bu formların kullanıcıların beklentilerini destekleyecek seviyede olması bir uygulama geliştirici için önemli bir konudur.

Uygulamalarımızda kullanılan formlar genellikle veri kaynakları ile kullanıcıların etkileşim içinde çalışmalarını, gerekli durumlarda kullanıcıların veri kaynakları üzerinde kayıt ekleme, silme, güncelleme işlemlerini yapabilmelerini sağlamaktadır.

Visual Studio Lightswitch uygulamalarımızı geliştirirken belirli form tasarımlarını bizim için hazır olarak sunmaktadır. Bu form tasarımları hazır olarak gelmelerinin yanında belirli boyutlarda özelleştirilebilmektedir. Lightswitch sunduğu çeşitli hazır form tasarımları sayesinde uygulamamız üzerinden kullanıcıların veri kaynakları üzerinde CRUD (Create / Read / Update / Delete) işlemlerini gerçekleştirmelerini sağlamaktadır.

Lightswitch uygulamalarının en temel parçası Shell olarak adlandırılan ana bölüm olduğu söylenebilir. Bir Shell tüm ekranları kendi içinde barındırarak kullanıcılara bir çalışma ortamı sunmaktadır.

Yukarıdaki resimde görüldüğü gibi bir Shell temel olarak üç parçadan oluşmaktadır. Bunlar; Üst menü (Ribbon), Sol menü ve ekranların görüntüleneceği orta bölümdür. Gerekli durumlarda Shell ayrı bir proje olarak yeniden tasarlanabilmektedir. Tabi ki bu konu ayrı bir makale konusu olacak kadar farklı ve uzundur. (Sonraki makale ipuçları J )

Şimdi sıra ile ekranların çeşitlerinden ve nasıl oluşturulacakları konusundan bahsedelim.

Visual Studio Lightswitch üzerinden ekranları nasıl eklerim?

Lightswitch uygulamalarımız için ekranlarımızı Solution Explorer üzerinden Screens bölümünden ekleyebiliriz. Screens bölümünde bulunan Add Screen ile yeni ekran ekleme penceresine ulaşabiliriz.

Açılacak olan Yeni Ekran Ekleme penceresi ile Visual Studio Lightswitch tarafından hazır olarak sunulan ekran tasarımlarını görebilmekteyiz.

Bu bölümde bize sunulan beş adet ekran bilgisini görebilmekteyiz. Ayrıca her ekran için kullanılacak olan ekran adı (Screen Name) ve ekranın hangi Entity bilgisini kullanarak çalışacağını belirtebileceğimiz ekran bilgisi (Screen Data) bu pencere üzerinden atanmaktadır.

Bu pencere genelinde bir ekran tasarımını seçtikten sonra ekran adı ve Entity bilgisini seçerek ekranımızı uygulamamıza ekleyebiliriz.

Eklenen ekranlarımız yine Solution Explorer üzerinde bulunan Screen bölümünden görüntüleyebiliriz.

Uygulamamızı çalıştırdığımız zaman ekran bilgisinin sol menü üzerinde oluştuğunu ve otomatik olarak açılarak görüntülendiğini test edebiliriz.

Bir sürü ekran tasarımı var hangisi ne işe yarıyor?

Evet, ekranların çeşitliliği güzel bir durum fakat hangi ekran en amaç için kullanılıyor veya gereksinimlerimizi en yüksek seviyede hangisi karşılıyor? Ekranların genel özelliği daha sonradan isteklerimize göre yapılarının yeniden tasarlanabiliyor olmasıdır. Şimdi bu ekran çeşitlerini inceleyerek özelliklerine tek tek bakalım.

List and Details Screen

Bu ekranın temel amacı bir tablo üzerinden bulunan tüm verileri ve o tablo ile ilişkili diğer tabloların verilerini tek bir ekran üzerinden görüp, gerekli ekleme ve güncelleme işlemlerini yapabilmektedir.

Bu ekran temel olarak iki kolondan oluşmaktadır. Sol tarafta ana tablo üzerinde bulunan verilerden oluşan bir özet liste, sağ tarafta ise bu özet liste üzerinden seçilmiş olan bir kayıt bilgisinin diğer alanlarının görüntülenmesi sağlanabilmektedir. Gerekli durumlarda ana tablo ile ilişkili olan tüm diğer tabloların bilgileri bu form üzerinde görüntülenebilmektedir.

Editable Grid Screen

Eğer kullanıcı uygulama genelinde bir tabloda kullanılan tüm kayıtlar üzerinde işlemler yapmak isterse Editable Grid Screen uygun bir ekran olarak kullanılabilmektedir. Bu ekran kullanıcıya Excel stilinde bir ara yüz sunarak bir tablo içerisinde ki tüm verilerin görüntülenmesini ve gerekli durumlarda hem tablo üzerinden hem de Ekle, Çıkar, Sil butonlarını kullanarak veriler üzerinde işlemler yapılabilmesini sağlamaktadır.

Details Screen

Bu ekran tasarımı kullanıcılara tablo içinde bulunan bir kayıt (satır) bilgisinin işlenmesini sağlar. Ayrıca istenirse bu kayıt ile bağlantılı diğer tablolarında bu ekran ile işlenmesi sağlanabilmektedir. Detail Screen’in önemli bir özelliği Shell üzerinde bulunan sol menü üzerinden ulaşılamamasıdır. Detail Screen temel olarak bir kayıt için çalışmakta ve gerekli durumlarda bir buton veya işlem kapsamında çağırılmaktadır. İstenirse bir kayıt eklerken veya bir kayıt bilgisi görüntülemek için Detail Screen kullanılabilmektedir.

New Data Screen

Yeni veri ekranı bir tablo içindeki tek bir kayıt bilgisini kayıt altına almak için kullanılmaktadır. Bu form ile kullanıcılar sizin tasarladığınız formları kullanarak işlemlerini yapabilmektedirler. Gerekli durumlarda Yeni, Değiştir butonları ile birlikte kullanılarak Visual Studio Lightswitch ile birlikte sunulan kayıt ekleme ve değiştirme sayfalarının yerine özel olarak tasarladığınız sayfaları da kullanabilirsiniz.

Search Data Screen

Temel olarak arama formu olarak kullanılan bir ekran tasarımıdır. Bu ekran üzerinde kullanıcılar istedikleri kriterleri girerek bir tablo içinde bulunan bütün kayıtlar arasında bir arama işlemi gerçekleştirebilmektedir. Temel olarak bu ekran kullanıcılara değiştirilemez bir grid sunmaktadır. Eğer istenirse bu arama sonuçlarından gelen bilgilerin başka ekranlara gönderilmesi ve o ekranlar üzerinde verilerin işlenmesi sağlanabilmektedir. Bunun için her satırda gösterilmek üzere bir Summary öğesinin bağlantı olarak tanımlanması ve bu bağlantı kapsamında Detail Screen olarak tanımlanmış başka ekranların açılması sağlanabilmektedir.

Bu makalede Visual Studio Lightswitch ile sunulan ekranlara ve bu ekranların kullanım yerlerini açıklamaya çalıştık. Ekranların temel işlevlerine ek olarak uygulama geliştirici tarafından ihtiyaçlarımız doğrultusundan tasarımlarının değiştirilebileceğini bir kez daha hatırlatmakta yarar var.

Bir sonraki Visual Studio Lightswitch makalesinde görüşmek üzere…

Microsoft Visual Studio Lightswitch Tablo (Entity) İlişkileri

Daha önceki makalemizde Lightswitch ile veri işlemlerinin nasıl yapılacağını temel olarak anlatmaya çalıştık.Makaleye bu adresten ulaşabilirsiniz. Microsoft Lightswitch ile Veri İşlemleri.

Bir uygulama kapsamında oluşturulacak veri tabanının tek bir tablo ile sınırlandırılması düşünülemez. Verilerin paylaştırılması, gerekli verilerin tablolar halinde sunulması hem verilere ulaşmada hem de verilerin tekrar edilmesi konusunda programcılara rahatlıklar sağlamaktadır.

Düzgün tasarlanmış bir veri tabanı;

  • Veri tekrarını en aza indirir.
  • Oluşturulan raporların eksiksiz ve sorunsuz olarak çalışmasını sağlar.

Visual Studio Lightswitch bize tablolarımızı oluşturmak için bir Data Designer aracı sunmaktadır.Bu konuda daha önceki makalelerimizde bir anlatım yapmaya çalışmıştık. Yine Data Designer aracı ile tablolarımızı oluşturup bu tablolar arasında ilişkilerimiz tanımlayabilmekteyiz.

Şimdi bu ilişki tiplerini ve bu ilişkilerin Microsoft Lightswitch ile nasıl uygulanacağına bakalım. Bir önceki makalemizde başlamış olduğumuz Müşteri Takip uygulamamız üzerinden işlemlerimize devam edebiliriz.

En son uygulamamız için Musteri adında bir entity oluşturmuş ve bunun için bir veri giriş ekranı eklemiştik. Şimdi bu entity tasarımını biraz daha çeşitlendirme ve ilişkileri tanımlama zamanı…

Oluşturduğumuz Musteri tablosu üzerinde görüldüğü üzere her müşteri tanımında doldurulması gereken verilerin bulunması söz konusudur. Eğer bir müşterinin birden fazla adresini kayıt altına almak istersek böyle bir tablo üzerinde ikinci bir müşteri olarak tanımlamasını yapmamız gerekecektir. Bu şekilde bir çalışma hem verilerimizin tekrarını hem de raporlarımızın yanlış sonuçlar döndürmesine sebep olacaktır. (2 Adresi olan 2 Müşteri gibi)

Bu durumun çözümü için yapılması gereken bir Adres tablosu oluşturmak ve bu tablo üzerinde müşteri tablosu arasında Birden Çoğa İlişki oluşturmaktır. Yani bir müşterinin birden fazla adres bilgisinin olmasını sağlamaktır. Bunun için ilk önce adres tablomuzu oluşturmamız gerekmektedir.

Solution Explorer üzerinden Data Sources altında bulunan ApplicationData nesnesinde Add Table komutu ile yeni tablo oluşturma işlemlerine başlayabiliriz.

Temel olarak tablomuzu aşağıdaki şekilde oluşturabiliriz.

Burada ki problemimiz Musteri tablosu ile birlikte AdresBilgileri tablosunun bir ilişki içinde olmamasıdır. Bu ilişkiyi tanımlamak için yine Data Designer aracından yararlanacağız. Tablolar arası ilişkiler yine Data Designer’ın üst bölümünde bulunan Relationship üzerinden yapılmaktadır. Relationship ile birlikte bize yeni ilişki tanımlama sayfası açılacaktır.

Bu pencere üzerinde yapmamız gereken ilk iş ilişki tipi ayarlamak için tablo bilgileri seçmektir. From mevcut tablomuzu temsil ederken To kısmında hangi tablo ile ilişki kurmak istediğimizi belirteceğiz. Ardından Multiplicity bölümünden ilişki tipini belirtmemiz gerekmektedir.
On Delete Behavior bölümünden silme işlemi durumunda bu ilişkinin nasıl davranması gerektiği belirtilebilmektedir.

İlişki penceresi onaylandığı zaman Data Designer üzerinden ilişkinin durumu görülebilmektedir.

Müşteriler için adreslerin ilişkili tablo olarak kayıt altına alınması işlemini yerine getirmiş bulunmaktayız. Yine aynı şekilde Telefon bilgileri için bir çalışma yaparak müşteri telefonlarının birden fazla olması durumunu ayarlayalım.

İlk önce müşterilerin telefon numaralarını kayıt altında tutmak için entity bilgimizi oluşturalım. Bu entity üzerinde TelefonTanimi isimli alan için bir seçim listesi oluşturarak gerekli bilgileri girmemiz gerekmektedir. Bu seçimli liste ile kullanıcılar telefon numaralarının girişlerini yaparken numarasının tanım bilgisini bir combobox aracılığı ile gireceklerdir.

Entity bilgisinin tanımlanmasından sonra tablo ilişkilerinin ayarlanması gerekmektedir. Bu ayarlama bir müşteri bilgisine karşılık birden fazla telefon bilgisi yani birden çoğa ilişki tanımı içermelidir.

İlişki tanımımız tamamlandığı zaman oluşacak Data Designer tasarımı aşağıdaki şekilde olacaktır.

Şimdi bu ilişki yöntemlerinden yararlanarak ekran tasarımımızı yapabiliriz.

Bunun için Solution Explorer bölümünde bulunan Screens bölümünde Add Table ile ekran ekleme penceresini açabiliriz.

Açılan sayfa üzerinde kullanmak istediğimiz ekran bilgisini, kullanmak istediğimiz entity bilgisini ve ekranın ismini tanımlayarak ekranımızı uygulamamız içerisinde oluşturmamız gerekmektedir.

Bu bölümde dikkat etmemiz gereken ekran olarak List and Details Screen seçtiğimiz de içerik olarak hangi tabloların da (ilişkili olan) ekran üzerinde görünmesini istediğimizi seçebiliriz.

Ekranımızı uygulamamıza ekledikten sonra çalıştırdığımız sol menü üzerinde ekranımızın bilgisinin geldiğini görebiliriz. Ekranımızı çalıştırdığımız zaman Müşteri bilgilerine ve müşteri tablosu ile ilişkili diğer tablo bilgilerine tek bir ekran üzerinden ulaşabileceğiz.

Ekrandan da görüldüğü gibi ilişkili tablolarımız bir tab sayfası olarak sağ alt bölümde oluşmaktadır. Adres ve Telefon bilgileri girildiği zaman sol tarafta seçili olan müşteri ile ilişkili olarak bu veriler tutulacak ve gerekli durumlarda sorgulama işlemlerinde kullanılabilecektir.

Bir Başka Lightswitch makalesinde görüşmek üzere…

Microsoft Lightswitch ile Veri İşlemleri

Günümüzde kullanılan veri kaynaklarının ve uygulamalar tarafında kullanılma yöntemlerinin çeşitliliği, veri kaynaklarının önemi ile paralel bir şekilde artmaktadır. Her uygulamanın bir şekilde veri kaynağı ile bağlantısının olması, verilerin bu veri kaynaklarında toplandıktan sonra analiz ve raporlama aşamalarına tabii tutulması artık bir ihtiyaçtan öte bir gereklilik haline gelmiştir. Veri kaynaklarının çeşitliliği sundukları hizmetlerin de mevcut rekabet ortamında farklılaşmasını sağlamıştır. Microsoft SQL Server ürününde sunulan Reporting Services hizmeti gibi özellikler artık veri tabanı yönetim sistemleri için gereklilik halini almıştır.

 Microsoft Lightswitch ile uygulamalarımızı geliştirirken belirli veri kaynaklarından ve servislerden yararlanabilmekteyiz. Bu veri kaynakları kapsamında Microsoft SQL Server ve Sharepoint Listeleri standart özellik olarak gelmektedir. Microsoft Lightswitch ürünü ile birlikte kullanılabilecek belki de en ilginç veri kaynağı yapısı WCF servislerinde bu kapsama girmesidir. Bu özellik sayesinde uygulamalarımızı geliştirirken bu servislerden yararlanıp, gerekli durumlarda farklı veri kaynaklarından gelen bilgiler üzerinde işlemler yapabilmekteyiz.

Veri kaynakları tarafından bilgilerimizin saklandığı ve gerekli durumlarda rapor ve analiz işlemlerini gerçekleştirmek için kullandığımız en önemli varlık tablolardır. Tablolarımız temel olarak verinin saklandığı yer olarak tanımlanabilmektedir.

Bir veri kaynağı içinde müşteri bilgilerini tuttuğumuz bir tablo yapısına bakmak istersek;

Gerekli durumlarda mevcut tablo veya tablolar üzerinden bilgilere ulaşarak belirleyeceğimiz kriterler ile rapor ve analiz işlemlerini yapabilmekteyiz.

Microsoft Lightswitch tabloları nasıl tutuyor?

Microsoft Lightswitch genel yapısı itibariyle formlar üzerinde data işlemlerini yerine getirmektedir. (Bilgileri görüntüleme / ekleme / silme / güncelleme). Formların üzerinde çalıştıkları tüm bilgi grupları (hangi veri kaynağından alınırsa alınsın) Entity olarak görev yapmaktadır. Bunun en büyük nedeni Microsoft Lightswitch  bir Sharepoint listesi ile veya bir veri kaynağı tablosu ile çalışabilmektedir. Bu işlemlerin standart hale getirilmesi veya işlemler esnasında farklı veri blokları için ayrı işlemlerin yapılmasının önüne geçmek adına her veri bloğu Entity olarak çalışmaktadır. Tablolarımızda bulunan alan bilgileri Entity’lerimiz içinde özellik (property) olarak kullanılacaktır.

Entity’ler Microsoft Lightswitch üzerinde isterseniz elle oluşturulabilen veya mevcut bir yapı üzerinde import edilebilen yapılardır. Eğer istenirse bir Sharepoint listesi veya mevcut bir veri kaynağını da kullanma imkânına sahibiz. Eğer yeni oluşturduğumuz bir Lightswitch uygulamasında kendimiz bu Entity’leri oluşturmak istersek Lighswitch bu bilgileri kendi içinde oluşturduğu bir veritabanı içinde bu bilgileri tutacaktır. Bu veritabanına iç (intrinsic) veritabanı olarak adlandırılmaktadır.

Entity Oluşturmak ve Kullanmak.

Şimdi veri kaynakları ile çalışma ve Microsoft Lightswitch tarafından bizlere sunulan Data Designer hakkında örneklerimize geçebiliriz. İlk olarak bir önceki makalede de kullandığımız Data Designer aracından bahsederek başlayalım.

Data Designer aracı ile uygulamalarımızı geliştirirken kullanmak istediğimiz veri tabanı tasarımlarını oluşturabilmekteyiz. Tıpkı Microsoft Access ile uygulama geliştirirken oluşturduğumuz tasarım çalışmalarını Microsoft Lightswitch içinde de gerçekleştirme imkânına sahibiz. Microsoft Lightswitch Data Designer kullanımını ile bilgili aşağıdaki adresten yararlanabilirsiniz.

Data: The Information Behind Your Application

İlk olarak yeni bir Microsoft Lightswitch uygulaması başlatarak örneklerimize başlayabiliriz.

Hazırlanan proje üzerinde açılan ilk sayfa veri kaynakları ile ilgili çalışmalarımızı yapabileceğimiz bölümdür. Bu bölümde iki farklı yöntemi kullanarak işlemlerimizi yapabilmekteyiz. Bu makale kapsamında iç bir veri tabanının oluşturulması ve kullanılması konusu üzerinde duracağız. Bunun için ilk olarak iç veritabanı kullanacağımızı Microsoft Lightswitch’e bildirmemiz gerekmektedir. Create new table bağlantısı ile iç veri tabanı oluşturma ve oluşan veritabanı içinde bir tablo hazırlama işlemine başlayabileceğiz.

Daha sonraki bölüm bizim tablo (Entity) bilgilerimizi hazırlamak için açılacak olan Data Designer aracıdır.

Bu araç üzerinde tablo bilgilerimiz oluşturabilir. Bunların Entity olarak görev yapmalarını ve formlar üzerinden kullanılmaları için hazırlıklarımızı tamamlayabiliriz.

İlk önce tablo içinde kullanılacak olan alanlarımız tanımlayalım;

Tablolarımızı tasarımlamak için ilk önce onlara bir isim tanımlamamız gerekmektedir. Tablolarımıza isim vermek için tablo tanım bölümünde en üst kısımda bulunan ismi değiştirmemiz yeterli olacaktır.

Ardından tablomuz içinde kullanmak istediğimiz alanları tanımlamamız gerekmektedir. Bu alanların tanımlamaları Alan adı, alan tipi ve gerekli özelliğinin ayarlanması ile yapılabilmektedir.

Alan adının tanımından sonra Type bölümünde isteğimize uygun olan veri tipini seçebiliriz. Microsoft Lightswitch bize çok farklı veri tipleri sunmaktadır. Bu veri tipleri arasında hazır kullanıma sahip bazı veri tipleri de mevcuttur. Bu veri tipleri arasında ilginç olanlar Email Address ve Phone Number tipleridir. Bu tiplerin kendi kontrolleri mevcuttur. Böylelikle ver doğrulama işlemlerinde uygulama geliştiricilere kolaylıklar sağlamaktadır. Eğer uygulama geliştiriciler olarak validate işlemlerimizi kendimizde ayarlayabilmekteyiz.

Uygun alan isimleri ve tipleri belirtilerek tablo tasarımımızı aşağıdaki şekilde yapabiliriz.

Alan isimlendirme yöntemlerimizi uygularken dikkat etmemiz gereken alan isimlerimizin aslında Formlar için kullanacağımız özellik (Property) olmaları ve uygun bir şekilde isimlendirilmeleridir. Eğer Pascal case yapısında (AdiSoyadi, DogumTarihi) bir isimlendirme yaparsanız Visual Studio Lightswitch özellik isimlerini formlar üzerinde kelimeler arasında boşluk olacak şekilde yeniden yapılandırır.

Oluşturduğumuz alanların gerekli durumlarda özelliklerini ayrı olarak görebilmekteyiz. Bu işlem için alanın özelliklerine bakmamız yeterli olacaktır. Eğer özellikler penceresi açık değilse bir alanı seçtikten sonra F4 tuşu ile o alanın özelliklerine ulaşabilirsiniz.

Bir alanın özellikleri kapsamında o alanın hesaplanmış bir alan olup olmadığı (Is Computed), alanın adı (Name), alanın form içinde gösterilecek olan isim bilgisi (Display Name), alanın fare ile üstüne gelindiği zaman gösterilmek istenen bilgisi (Description) ve özel doğrulama seçeneklerine (Custom Validation) ulaşarak gerekli düzenlemeleri yapabiliriz.

Özellikler penceresinin bize sunduğu farklı alan biçimlendirme yöntemleri de mevcuttur. Belirli alan tipleri için kullanıcıdan almak istediğimiz bir aralık bilgisi de bu pencere sayesinde atanabilmektedir.(Minimum Value – Maximum Value)

Bir alanın bilgilerinin bir liste kapsamında seçilmesi için oluşturulmak istenen özel liste de bu pencere sayesinde düzenlenebilmektedir. Bunun için özellikler penceresinde bulunana Choice List bağlantısının kullanılması yeterli olacaktır.

Örnek olarak Cinsiyet alanı için Erkek ve Kadın bilgilerinin seçilmesi için bir liste hazırlayalım. Choice List bağlantısı ile Visual Studio Lightswitch bize bir veri giriş ekranı açacaktır. Bu veri giriş ekranı üzerinde değer ve kullanıcıya görüntülenmesini istediğimiz bilgi şeklinde verilerimizin giriş işlemlerini yerine getiriyoruz.

Şimdi oluşturduğumuz tablo (Entity) için bir ekran oluşturarak sonuçlara bakabiliriz. Bunun için yapmamız gereken Solution Explorer penceresinde bulunan Screens bölümünde Add Screen dememiz yeterli olacaktır.

Açılan yeni pencere ekleme sayfası üzerinden List and Details Screen seçtikten sonra, sağ bölümde bulunan Screen Data kısmında bulunan Combobox üzerinden en son oluşturduğumuz Entity bilgisini seçebiliriz. Screen Name bölümünde ekranımıza bir özel isim tanımladıktan sonra ekranımızı oluşturabiliriz.

Bu işlemleri tamamladıktan sonra uygulamamızı çalıştırıp (F5) Entity ile ekranlarımızın nasıl çalıştığına bakabiliriz.

Görüldüğü gibi uygulamamız çalıştı ve oluşturduğumuz entity bilgileri ile birlikte formumuz artık kayıt işlemlerini yerine getirmeye hazır duruma geldi.

Bu bölümde yeni ekle butonu ile birlikte alanlarımızın doğrulama işlemleri ve entity tasarımımızda belirttiğimiz bütün özellikleri ile bizlere bir veri ekleme sayfası açılacaktır.

Görüldüğü Visual Studio Lightswitch bizlere ideal bir veritabanı – tablo tasarım modeli sunarak yaptığımız işlemlerin sürelerini en aza indirmektedir. Eğer istersek oluşturduğumuz tabloların sayısını ve tasarımını daha zenginleştirerek oluşturduğumuz formların veya genel uygulamanın daha özellikli olmasını sağlayabiliriz.

Bir sonraki Visual Studio Lightswitch makalesinde görüşmek üzere…

Nedir Bu Microsoft Lightswitch ?

Nedir Bu Microsoft LightSwitch ?

Uygulamalarımızı geliştirirken en çok karşılaştığımız sorunlar; uygulamanın planlanması ve bu uygulamanın gelişen veya değişen iş süreçlerine uygun şekilde yeniden düzenlenebilmesidir. Doğru şekilde planlanmayan bir uygulama geliştirme süreci ileride hem yazılımcı hem kullanıcı açısından ciddi sıkıntılar oluşturabilmektedir.

Günümüzde sıkça adından bahsedilen RAD (Rapid Application Development) çoğu yazılım geliştiriciler tarafından kullanılan ve giderek gelişen bir teknoloji olarak hayatımızda yerini almaktadır. RAD bir yazılım geliştirme yöntemi olarak bizlere hazırladığımız uygulamalarda asgari planlama ve hızlı prototip oluşturma imkanı vermektedir.

RAD, yazılımcılar için hazırladıkları uygulamaların hızlı yapılanması ve sonlandırılması açısından kullanışlı bir yaklaşım olarak düşünülebilir.

RAD terimi ilk olarak 1991 yılında James Martin tarafından ortaya atılmış bir terimdir. James MARTIN’e göre RAD tüm uygulamayı baştan sona etkileyecek olan ve uygulama genelinde kaliteli prototipler oluşturmamıza yarayan bir uygulama geliştirme işleyişidir.

RAD aslında tek başına kullanılan özel bir model veya araç değil bu uygulama geliştirme yöntemini uygulayan araçların tümüne verilen genel bir isimdir.

Scrum, Extreme Programming (XP), Lean Software Development (LD) veya Joint Application Development (JAD) bunlardan birkaçı olarak sayılabilir.

RAD yaklaşımı uygulama geliştirirken geliştirme aşamasında yapılan işlemlerin tekrarlanmaması, hatalar karşısında veya değişen iş süreçlerine uygulamanın hızlı cevap verebilmesidir.

Visual Studio LightSwitch ve RAD

Visual Studio ailesinin en yeni üyesi olan Visual Studio LightSwitch; Visaul Basic, MS Access ve Dephi gibi bir RAD aracı olarak kullanılabilmektedir.

Visual Studio LightSwitch İş Uygulamarı (LOB – Line Of Bussines) uygulamaları geliştirmek için dizayn edilmiş bir araç olara düşünülebilir. Daha önceki RAD araçlarının belirli bir kullanıcı grubuna hitap etmesine karşılık Microsoft Lightswitch hem yazılım geliştiriciler hem de diğer IT teknolojileri ile uğraşan kişiler tarafından rahatça kullanılabilecek bir araç olarak tasarlanmıştır. Microsoft Lightswitch sizlere uygulama geliştirirken temiz ve kurallara uygun üç katmanlı yazılım mimarisini (three-tier application architecture )kullanma yeteneğini sağlayacaktır. Yine Microsoft tarafından çıkarılmış olan MS Access gibi istemci ve sunucu mimarisine dayalı uygulamaları rahat bir şekilde hazırlama ve mevcut uygulamaların iş süreçlerinin değişimlerine uygun şekilde güncellenmesine olanak sağlar.

Neden Visual Studio Lightswitch ?

Microsoft, Lightswitch ürünü için “masaüstü ve bulut için uygulama geliştirmenin en kolay yolu” tanımını yaparak yazılım için farklı bir bakış açısı getirdiğini göstermiştir.

Yalnız bu durum Microsoft Lightswitch ile her uygulamanın yapılabileceği anlamına da gelmemektedir. Microsoft Lightswitch ürünü temel olarak mevcut iş süreçlerinizin MS Excel kadar basit ortamlarda yürütülebildiği, uygulama genelinde işlenecek verilerin belirli bir değerin üstünde olmadığı (milyonlarca veritabanı satırı vb.), iş süreci olarak yapılan işlemlerin genellikle CRUD (Create, Read, Update, Delete) işlemleri olduğu durumlarda kullanılması uygun bir araç olmaktadır.

Yine Microsoft Lightswitch’in kurum genelinde çalışan bir ERP sisteminin bir parçası olacak uygulamalar geliştirmek için uygun bir araç olduğu yadsınamaz bir gerçektir.

Fakat Microsoft Lightswitch kullanılarak bir kurum için ERP ihtiyacının giderilmesi şu an için pek mümkün olmamaktadır. Bu açıdan bakıldığında Microsoft Lightswitch kurumlar için mevcut ERP sistemlerine veya kurum içinde kullanılacak iş uygulamaları için ideal bir çözüm olarak karşımıza çıkmaktadır.

İsterseniz Microsoft Lightswitch’ten bu kadar bahsettikten sonra kurulum ve kullanım aşamalarına beraber bakalım.

Microsoft Lightswitch Kurulumu

Kuruluma başlamadan önce Microsoft Lightswitch ürününü ilk önce http://www.microsoft.com/visualstudio/lightswitch adresinden indirmemiz gerekmektedir. Lightswitch sanal sürücü dosyası olarak temin edilebilmektedir. (.iso)

Microsoft Lighswitch, Visual Studio’dan ayrı olan bir program olarak düşünülmemelidir. Kurulum olarak Visual Studio üzerinde entegre bir kurulum gerçekleştirmesi gerekmektedir.

Önceden makinemiz üzerinde bir Visual Studio 2010 kurulumu mevcut ise Lightswitch mevcut olan VS 2010 üzerinde kurulum işlemini gerçekleştirecektir.

Eğer daha önceden bir VS 2010 kurulumu gerçekleştirmediysek Lightswitch çalışabilmesi için gerekli olan Visual Studio Shell bilgilerini yükleyerek Visual Studio entegrasyonunu sağlayacaktır.

Not: Visual Studio 2010 kurulumunu önceden yapılmadıysa Microsoft Lightswitch makinenize Visual Studio 2010 kurmayacak fakat kendisinin çalışması için gerekli olan Visual Studio dosyalarının ve kabuk (Shell) kurulumunu yapacaktır. Eğer Visual Studio 2010 kurulumunu daha önceden yapmak isterseniz. http://www.microsoft.com/visualstudio/tr-tr adresinden programı indirerek bu kurulumu gerçekleştirebilirsiniz.

   
Visual Studio LightSwitch Lisans Şartları Yükleme İşlemi için Giriş Sayfası
   
Hedef Klasör Seçimi Yükleme Aşaması
 
Yükleme Tamamlandı Sayfası

Not: Microsoft Lightswitch kurulumu, kurulum yapılan makine için farklı olacaktır. Bunun sebebi Lightswitch kendi için önemli olan kurulumları otomatik olarak kendisi yapacaktır. (.Net Framework 4.0 vb.)

Microsoft Lightswitch İle İlk Uygulamamız

Microsoft Lightswitch kurulum aşamasından sonra kendisine ait kısayol bilgilerini Başlat Menüsüne ekleyecektir. Visual Studio 2010 kurulumu daha önceden yapılmış ise Visual Studio 2010 ile birlikte Lightswitch uygulamalarını geliştirmeye başlayabiliriz.

Visual Stuido 2010 Giriş Ekranı

Yeni Bir Microsoft Lightswitch Projesi Oluşturmak

RAD yaklaşımının özelliklerinin anlaşılması için en iyi yöntem ufak bir uygulama üzerinde bu çalışmaları yapmaktır.

Yeni bir proje başlatmak için Visual Studio 2010 üzerinden yeni bir proje başlatmamız gerekmektedir. Microsoft Lightswitch temel olarak hem Visual Basic hemde C# dilleri ile çalışabilmektedir. Biz uygulama olarak Firma bilgilerini kayıt altına aldığımız bir yazılım geliştirmeye çalışacağız.

Projemizin özelliklerini yukarıdaki gibi ayarlamamız gerekmektedir.

Yeni bir Lightswitch projesi oluşturduğumuzda karşımıza Lightswitch giriş ekranı gelecektir. Microsoft Lightswitch veri kaynakları ile çalışmak için dizayn edilmiş bir araçtır. İlk karşılama ekranında Lightswitch bizim için veri kaynağı seçme ve veri kaynağı oluşturma işlemlerini yapabilmemiz için seçenekler sunmaktadır.

Karşılama ekranında Create New Table seçeneği ile yeni bir ver kaynağı oluşturacağız. Eğer istenirse Microsoft Lightswitch dış veri kaynaklarına da bağlanabilmektedir.

Yeni tablo oluşturma ekranında tablo bilgilerimiz yukarıdaki gibi olacaktır.

Burada tablomuzun ismini belirledikten sonra kullanmak istediğimiz alanların tanımlarını yaptık. Şimdi de bu alanların nasıl formlara bağlanacağı ve bilgilerin nasıl yönetileceği konusuna bakalım.

Firma Bilgilerinin uygulamamız tarafından yönetilmesini Lightswitch üzerinde Screen (Ekran) bilgileri ile yapabiliyoruz. Uygulamamıza ekranlar ekleyerek ve bu ekranlar üzerindeki kontrollerin veya ekranlarla ilgili olayların (event) yönetilmesi ile uygulamamızın daha canlı ve yönetilebilir olmasını sağlayabiliriz.

Uygulamaya yeni ekran ekleme işlemleri için Visual Studio Solution Explorer penceresini kullanmamız gerekmektedir.

Eğer dikkat ederseniz oluşturduğumuz tablonun bilgileri Data Sources bölümü altında açılan bir veritabanı modeli ve tablo ile birlikte Lightswitch içinde oluşmuş durumdadır.

Yeni bir ekran (screen) tasarlamak için Soluiton Explorer bölümünde bulunan Screens bölümünde Add New Screen komutunu seçmemiz gerekmektedir.

Yeni ekran ekleme sayfası Microsoft Lightswitch içerisinde kullanabileceğimiz birden fazla ekranı bizim için hazır olarak getirmektedir.

Yeni Ekran (Screen) ekleme sayfasını yukarıdaki gibi düzenledikten sonra OK butonu ile formu uygulamamıza ekleyebiliriz.

Yeni ekranın eklendikten sonra eklenen ekran bilgilerini yönetebilmekteyiz.

Geldik uygulamanın çalıştırılmasına; uygulamamızı çalıştırmak için yapmamız gereken tek şey Debug menüsü üzerinden Start Without Debugging (CTRL + F5) seçeneğinin seçilmesidir.

Görüldüğü üzere hiçbir kod yazmadan Microsoft Lightswitch ile bir uygulamanın girişini yapabildik. Açılan formda Ekleme butonu ile yeni bir kayıt ekleme imkânımız olacaktır.

RAD yaklaşımının bizlere nasıl yetenekler sağladığının anlaşılması amacıyla bir örnek vermek gerekirse; yeni kayıt formunda Firma Değerlendirmesi alanına uygun olmayan bir alan girildiği zaman formumuzun kontrol (Validate) işlemleri otomatik olarak çalışacak ve hata mesajlarını kullanıcıya gösterecektir.

Bu makalemizde Microsoft LightSwitch ürününü ve ürünle ilgili genel özelliklere kısaca değinmeye çalıştık. Microsoft Lightswitch kullanım amacının önemli olmasıyla beraber yazılımcılara hızlı uygulamalarını geliştirmek için gerçekten güzel bir ortam sunmaktadır.

Bir sonraki Lightswitch makalemizde görüşmek üzere…