Silverlight 3.0 Yayınlandı - RTW ve Beta arasındaki farklara dikkat.

0 dakikada yazıldı

9141 defa okundu

Düzenle

Heyecanle beklenen an geldi ve Silverlight 3 yayınlandı. Beta sürümünden
Release'e kadar olan değişikliklere göz atacağımız bu yazıda önce gelin
Silverlight 3 dünyasına hızlıca nasıl gireriz bir göz atalım.

http://www.silverlight.net/getstarted

Silverlight dünyasına girmenin en kolay yolu hemen yukarıdaki adresi
ziyaret etmek. Bu adres içerisinde Silverlight 3 tarafında
bilgisayarınıza yüklemeniz gereken herşeyi bulabilirsiniz. Unutmadan,
eğer bilgisayarınızda Silverlight 3 Beta yüklemeleri varsa herşeyin
öncesinde bu yüklemeleri bilgisayarınızdan kaldırmayı unutmayın.

Silverlight 3.0 Yüklemeleri
Silverlight 3.0 Yüklemeleri

Yukarıdaki ekran görüntüsünde silverlight.net sitesinin bir parçasını
görüyorsunuz. Burada ilk aşamada yer alan yüklemelere özellikle dikkat
etmek gerek. "Web Platform Installer" olarak geçen yükleme paketi
bilgisayarınız için gerekli tüm yüklemeleri yapabilir. Bu yüklemeler
içerisinde Visual Studio'nun Express sürümü ve SQL Express de dahil. WPI
ile ilgili ayrı bir yazı yazılabilir fakat şimdilik kabaca genel
anlamına değinmek yeterli olacaktır diye tahmin ediyorum. WPI'ın amacı
bilgisayarınıza tüm yazılım geliştirme platformunu yüklemektir. Yükleme
esnasından ASP.NET MVC'den PHP modüllerine kadar istediklerinizi
seçebilirsiniz.

Eğer bilgisayarınızda hali hazırda Visual Studio yüklü ise be zaten
"benim platformum hazır" diyorsanız bu sefer hızlıca "download the
tools directly
" linkine tıklayıp Visual Studio Tools for
Silverlight
paketini indirebilirsiniz. Böylece yazılım geliştirme
ortamınız Silverlight 3.0 ile tanışmış olacaktır.

Expression Blend 3 RC

Silverlight 3.0 ile beraber tabi ki yeni bir de Blend sürümüne
ihtiyacımız var. Expression Studio 3 daha yayınlanmadığı için
Silverlight 3.0'a özel olarak Expression Blend 3'ün RC sürümü
Silverlight'cılarla paylaşıldı. Çok yakın zamanda Expression Studio 3
ile beraber Blend 3 de release olacak. Şimdilik RC sürümü ile dahatlıkla
idare edebilirsiniz. Sketchflow kısmı eminim ki dikkatinizi çekecektir.
Bu konuda uzun uzun makale ve seminer planlarım var :)

Silverlight Toolkit ve DeepZoom tarafında da yeni gelişmeler var.
İndirip yeni sürümlerini ücretsiz olarak bilgisayarınıza kurabilirsiniz.
Özellikle DeepZoom Composer tarafında yeni menü navigasyon sistemlerini
incelemenizi tavsiye ederim. Ayrı makaleler bu konuda da çok yakında
karşınızda olacak.

Silverlight 3.0 RTW ile değişenler?

En büyük değişikliklerden biri Silverlight 3.0 SDK içerisinde yer alan
bazı kontrollerin doğrudan Toolkit içine taşınmış olması. Bu duruma çok
farklı yorumlar getirmek mümkün fakat esas yapılmak istenen şey bu
kontrolleri SDK içerisine eklemeden önce biraz daha feedback almak ve bu
süreçte de kontrolleri açık kaynak kodları ile beraber yazılım
geliştiriciler ile paylaşabilmek. O nedenle aşağıdaki kontrollerin hepsi
Beta SDK içerisinden Toolkit tarafına kaydırıldı.

DockPanel, WrapPanel, Expander, HeaderedContentControl, Viewbox,
DataForm, ExpandDirection, ExpanderAutomationPeer, LengthConverter,
StretchDirection

DataForm ve DataPager

DataForm ve DataPager kontrollerinde büyük değişiklikler oldu. Artık
DataForm kontrolünün Fields adında bir collection'ı yok. Onun yerine
eskiden de olan Edit ve Normal modlar için özeleştirme sağlayan Template
yapıları kullanılacak. Eski Template yapılarında tasarımı sıfırdan
yaratırken bu sefer Template'ler içerisinde IPagedCollectionView
adında kontroller de kullanabileceğiz. Söz konusu DataField'ler
içerisine kendi kontrollerini koyarak özelleştirmeler yapabilirsiniz.
Açıkçası bu değişiklik benim çok hoşuma gitmedi. Eskisi özellikle
DataGrid ile çok daha uyumlu bir yazılımcı deneyimi sağlıyordu. Fakat
özünde bu değişikliklerin tekrar değişmesi de olası, çünkü ne de olsa bu
kontroller Toolkit içerisinde.

DataPager kontrolü tarafında ise IPagedCollectionView sınırlaması
kaldırılarak artık herhangi bir IEnumerable kullanılabilmesi
sağlanmış.

MetaAttributes

Özellikle DataForm içerisinde Fields Collection'ın kaldırılması
sonrasında canım biraz sıkılmıştı ki MetaAttributes tarafındaki
değişiklikler keyfimi yine getirdi. Genelde ister DataGrid olsun ister
DataForm, bizim Fields veya Columns collectionları editlememizin esas
nedeni bir kolonu göstermek istemememizden veya editlenmesini
istememizden kaynaklanır. AutoGenereateColumns/Fields özelliklerini
sevsek de kolon başına ayar yapabilmek için Field'leri elle yaratmamız
gerekiyordu.

[VB]

    <Bindable(True,
BindingDirection.TwoWay)> _

    Private _Ornek
As String

    Public Property Ornek()
As String

        Get

            Return
_Ornek

        End Get

        Set(ByVal value
As String)

            _Ornek = value

        End Set

    End Property

Eskiden uygulayabildiğimiz yukarıdaki teknik ile bir Property'nin
Bindable olup olmadığını hatta ne şekilde Bind edilebileceğini de
ayarlayabiliyorduk. Yeni SL 3.0 RTW ile bu MetaAttribute'ler biraz
değişti.

[VB]

    <Display(AutoGenerateField:=True)> _

    <Editable(False)> _

    Private _Ornek
As String

    Public Property Ornek()
As String

        Get

            Return
_Ornek

        End Get

        Set(ByVal value
As String)

            _Ornek = value

        End Set

    End Property

Artık çok daha kolay bir şekilde doğrudan bir Property'nin
AutoGenerateField aşamasında yaratılıp yaratılmayacağını
belirleyebiliyor veya Editable ile bu özelliğini editlenebilir olup
olmadığı bilgisini de aktarabiliyoruz. Bunun gibi yaratılacak olan
kolonun kaçıncı sırada olacağını veya kolon adını da aşağıdaki şekilde
belirtebilirsiniz.

[VB]

    <Display(AutoGenerateField:=True,
Name:="Kolon Adı", Order:=1)> _

    <Editable(False)> _

    Private _Ornek
As String ....

Navigation Framework

Silverlight 3.0 Beta ile karşılaştığımız Navigation Framework içerisinde
de ciddi değişiklikler var. Eski halinde UriMapper'ımızı App.XAML
içerisinde yaratmak zorunda olup bir de bunun üzerine yarattığımız
Mapper sınıfının instance'ına ait ismin de uriMapper olmak zorunda
olması ciddi anlamda saçmalıktı :) Tabi ki bu durum düzeltilmiş ve artık
uriMapper'larınızı UserControl içerisinde de yaratabiliyor ve
istediğiniz ismi verebiliyorsunuz. Sonrasında da uriMapper'ı elle
istediğiniz bir frame'e bağlamanız gerekiyor.

[XAML]

....

    <UserControl.Resources>

        <navigationCore:UriMapper
x
:Key="HerhangiBirMapper">

            <navigationCore:UriMapping
Uri
="Siparis" MappedUri="/Sayfalar/Siparis.xaml" />

        </navigationCore:UriMapper>

    </UserControl.Resources>

    <Grid
x
:Name="LayoutRoot">

        <navigation:Frame
x
:Name="frame"
UriMapper
="{StaticResource
HerhangiBirMapper
}" />

    </Grid>
.....

Son olarak eskiden herhangi bir UserControl'ü de içine alabilen
frame'ler artık sadece Page'den Inherit edilmiş sayfaları alabilecek.

Diğer mini değişiklikler...

PixelShader Efektleri : Eskiden Content veya Resource olarak
projelere eklenebilen PS dosyaları rahatlıkla kullanılabiliyordu artık
sadece Resource olarak ayarlanmış PS dosyaları PixelShader olarak
kullanılabilecek.

OutOfBrowser Desktop Uygulamaları: Eskiden Detach komutu yeni
sürümde Install olarak değiştirildi. Yeni komut :
App.Current.Install() Aynı şekilde eski App.Current.RunningOffline
da App.Current.IsRunningOutOfBrowser oldu. ExecutionStateChanged,
InstallStateChanged şeklinde değiştirildi. Ayrıca OutOfBrowser
uygulamaları ile ilgili yaratılan XAML kodu da tamamen değiştirilecek
harici bir OutOfBrowserSettings.xml dosyasında tutulması gerekiyor.

[OutOfBrowserSettings.xml]

<OutOfBrowserSettings ShortName="Kısayol
Adı
" EnableGPUAcceleration="False"
ShowInstallMenuItem="True">

  <OutOfBrowserSettings.Blurb>Açıklama tooltip</OutOfBrowserSettings.Blurb>

  <OutOfBrowserSettings.WindowSettings>

    <WindowSettings
Title="Pencere
adı
" />

  </OutOfBrowserSettings.WindowSettings>

  <OutOfBrowserSettings.Icons>

    <Icon
Size="16,16">1.png</Icon>

    <Icon
Size="32,32">2.png</Icon>

    <Icon
Size="48,48">3.png</Icon>

    <Icon
Size="128,128">4.png</Icon>

  </OutOfBrowserSettings.Icons>

</OutOfBrowserSettings>

Visual Studio 2008'de Design arayüzü? Artık yok! Yanlış duymadınız
:) artık Visual Studio 2008 içerisinde Silverlight XAML dosyalarını
açtığınızda otomatik olarak XAML kod kısmı açılacak ve Preview kısmı
olmayacak. Aslında bu kadar çok doğru bir karar çünkü design modunda
"design" yapılamadığı için :) zaten pek de anlamlı olmuyordu ve gereksiz
yere işleyişi yavaşlatıyordu. Visual Studio 2010'a kadar Silverlight
projelerinde Visual Studio içerisinde design penceresi olmayacak.

Silverlight.js dosyasında ufak değişiklikler var. İsteyenler hemen
buradan indirebilirler: http://code.msdn.microsoft.com/silverlightjs

.NET Ria Services artık Go-Live lisansına sahip. Yani sorumluluk
size ait olsa da kullandığınız projeleri yayınlayabilirsiniz. Fakat bu
tabi ki RIA Services'in release olduğu anlamına gelmiyor.

Eminim ki unuttuğum bir çok değişiklik veya yenilik vardır. Onları da en
kısa zamanda ayrı ayrı makaleler olarak sizlerle paylaşmak üzere...