Silverlight 3 - Pixel Shader

Pazartesi, 23 Mart 2009 19:07 by ikivanc
Silverlight 3 ile birlikte gelen yeniliklerden birisi de Pixel Shader. Pixel Shader la birlikte Blur ve Drop Shadow effectleri birlikte gelmekte. Bunların yanında istediğimiz effectleri kendimiz yazarak kullanma imkanına da sahibiz.

System.Windows.Media.Effects namespace'inde bulunmaktadır.

Blur effecti,nesnede bulanıklık vermeye yarar ve bulanıklık derecesini de kendimiz seçebiliriz.
 
Hangi elementi kullanıyorsak onun altında "Element.Effect" içerisine <BlurEffect Radius="1"/> şeklinde yazılarak Blur effecti verilebiliriz.

<Image Source="joneal.jpg" Margin="129,8,160,0" VerticalAlignment="Top" Height="242">

    <Image.Effect>

        <BlurEffect Radius="0"/>

    </Image.Effect>

</Image>




Radius ise bulanıklık derecesini belirtmektedir ve artırdığımızda de değişikliği gözle görebiliriz.

Uygulamamıza slider atarak, slider'ı hareket ettirdikçe 0-10 arasındaki double değeri bulanıklık derecesi olarak fotoğrafımıza veren bir uygulama yapalım.

MainControl.xaml

<UserControl

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"

    x:Class="MediaEffect.MainControl"

    Width="489" Height="256">

 

    <Grid x:Name="LayoutRoot" Background="White">

        <Image x:Name="image_jermaine" Source="joneal.jpg" Margin="23,0,0,0" VerticalAlignment="Top" Height="242" Width="200" HorizontalAlignment="Left"/> 

        <TextBox x:Name="textbox_blur" Height="23" HorizontalAlignment="Right" Margin="0,0,60,55""Bottom" Width="172" Text="" TextWrapping="Wrap" IsEnabled="True" IsReadOnly="True"/>        

        <Slider x:Name="blurslider" HorizontalAlignment="Right" Margin="0,0,60,25" Width="172""Bottom" Height="26"/>
    </Grid>

</UserControl>



MainControl.xaml.cs

    1 using System;

    2 using System.Windows;

    3 using System.Windows.Controls;

    4 using System.Windows.Documents;

    5 using System.Windows.Ink;

    6 using System.Windows.Input;

    7 using System.Windows.Media;

    8 using System.Windows.Media.Effects;

    9 using System.Windows.Media.Animation;

   10 using System.Windows.Shapes;

   11 

   12 namespace MediaEffect

   13 {

   14     public partial class MainControl : UserControl

   15     {

   16         public MainControl()

   17         {

   18             // Required to initialize variables

   19             InitializeComponent();

   20             blurslider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(blurslider_ValueChanged);

   21         }

   22 

   23         void blurslider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)

   24         {

   25             textbox_blur.Text = blurslider.Value.ToString();

   26             BlurEffect bulanik = new BlurEffect();

   27             bulanik.Radius = blurslider.Value;

   28             image_jermaine.Effect = bulanik;

   29         }

   30     }

   31 }





DropShadow

DropShadowEffect de adından anlaşılacağı gibi nesnenin altına gölge verilmesini sağlar

        <Image x:Name="image_jermaine" Source="joneal.jpg" Margin="23,0,0,0" VerticalAlignment="Top" Height="242" Width="200" HorizontalAlignment="Left"

            <Image.Effect>

                <DropShadowEffect Color="Yellow" Opacity="1" ShadowDepth="3"></DropShadowEffect>

            </Image.Effect>

        </Image>


Image.effect'in altında yazdıktan sonra tıkladığımızda properties penceresinde 5 tane değiştirebileceğimiz özelliği gelecektir bu effectin. Bunlardan dilediğimizi değiştirerek istediğimiz effecti verebiliriz.



Bu effectler sadece fotoğraflarda değil tüm silverlight bileşenlerde kullanılabilir.



Takıldığınız, sormak istediğiniz veya düzeltmek istediğiniz yerleri ibrahim.kivanc@msakademik.net mail adresime iletebilirsiniz.

Silverlight 3 - SaveFileDialog

Pazar, 22 Mart 2009 16:45 by ikivanc
Bu yazımızda Silverlight 3 ile birlikte SaveFileDialog kullanımına göz atalım.
İlk olarak yeni bir proje açalım ve proje içerisine metin girilmek için bir textbox ve kaydetmek için bir button ekleyelim.



Projemizin xaml kodları aşağıdaki gibi olacak
MainControl.xaml

  <UserControl

      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

      x:Class="SaveDialog.MainControl"

      Width="416" Height="152">

          <Grid x:Name="LayoutRoot" Background="White">

              <Button x:Name="button_kaydet" Margin="0,71,77,50" Content="Kaydet" Width="90" HorizontalAlignment="Right""button_kaydet_Click"/> Click=

              <TextBox x:Name="textbox_girilen" Height="30" Margin="79,37,77,0" VerticalAlignment="Top" Text="Metin giriniz...""Wrap"/> TextWrapping=

          </Grid>

  </UserControl>


Projemizin C#kodları aşağıdaki gibi olacak

MainControl.xaml.cs

    1 using System;

    2 using System.Windows;

    3 using System.Windows.Controls;

    4 using System.Windows.Documents;

    5 using System.Windows.Ink;

    6 using System.Windows.Input;

    7 using System.Windows.Media;

    8 using System.Windows.Media.Animation;

    9 using System.Windows.Shapes;

   10 using System.IO;

   11 using System.Text;

   12 

   13 namespace SaveDialog

   14 {

   15     public partial class MainControl : UserControl

   16     {

   17         public MainControl()

   18         {

   19             // Required to initialize variables

   20             InitializeComponent();

   21         }

   22 

   23         private void button_kaydet_Click(object sender, System.Windows.RoutedEventArgs e)

   24         {

   25             SaveFileDialog dosyakaydetme = new SaveFileDialog();

   26             dosyakaydetme.Filter = "Metin Belgeleri (.txt)|*.txt|Tüm Dosyalar|*.*";

   27             dosyakaydetme.FilterIndex=1;

   28             bool? ret=dosyakaydetme.ShowDialog();   

   29             if (ret==true)

   30             {

   31                 using(Stream fs = (Stream)dosyakaydetme.OpenFile())

   32                 {

   33                     byte[] metin = (new UTF8Encoding(true)).GetBytes(textbox_girilen.Text);

   34                     fs.Write(metin,0,metin.Length);

   35                     fs.Close();

   36                 }

   37             }

   38         }

   39     }

   40 }


"System.IO" ve "System.Text" namespace'lerini ekleyerek metin işlemlerini ve SaveFileDialog işlemlerini gerçekleştirebiliriz. Dialog penceresinin gösterilmesini bool bir değere bağlayarak kaydetmek istediğimiz metni buna bağlı hale getirdik ve metin içeriğini UTF8 formatında kaydederek saklamamızı sağlayacak.
Ayrıca kaydetmek istediğimiz türü belirlemek için de 2 farklı filtre oluşturduk.


Metni girip kaydet'e bastığımız zaman SaveFileDialog penceremiz geldi. SaveFileDialog'a Filter eklememizle birlikte metin kaydetmemiz daha da kolaylaştı.


Kaydettiğimiz metin dosyasının içeriği kaydetmek istediğimiz metin ile aynı, başarı ile kaydedildi. SaveFileDialog'u istediğimiz şekilde modifiye ederek projede istediğimiz gibi kullanabiliriz.

Takıldığınız, sormak istediğiniz veya düzeltmek istediğiniz yerleri ibrahim.kivanc@msakademik.net mail adresime iletebilirsiniz.

Expression Blend 3

Cumartesi, 21 Mart 2009 18:06 by ikivanc

MIX09 ile duyurulan en güzel haberlerden birisi de tabiki Expression Blend 3 oldu. Silverlight 3.0 Beta’nın duyurulması ile birlikte derleyicisinde de değişikliklikler ve yenilikler oldu. Blend 3'ün MIX09 Preview sürümü duyuruldu. Buradan indirebilirsiniz. Ben de çıkar çıkmaz kurup denedim ve çok hoşuma gitti. İncelemek için kısa bir bakışla gözüme çarpan yenilikleri paylaşmak istedim.


Yeni proje açmak ve projeyi yönetmek daha da kolaylaştı ve önceki Blend’e nazaran görüntüsü ve proje düzeni çok daha kullanışlı olmuş yeni sürümü ile.


Blend 3 ile gelen en güzel özelliklerden birisi de tabiki kod intellisense’ı yani XAML kod yazarken kodlarınız otomatik olarak tamamlayabiliyoruz . Açıklamaları ile de öğrenmemizi kolaylaştıracağı kesin. Bu sayede çok daha hızlı bir şekilde müdahale edebilecek ve projenizi hızla geliştirebileceğiz.


Expression Blend’in en büyük eksiklerinden birisi de XAML arkasında çalışan C# ve VB kodları düzenlemek istediğinizde Visual Studio da açmanız gerekliliği idi. Blend 3 ile artık kendi içerisinde arkada çalışan kodlarda düzenlemeler yapabilecek ve derleyebileceğiz. Ki bu özellik gerçekten işlerimizi çok ama çok pratikleştirecek.


Projenin yerleşimi ve erişimi de yeni tasarımı ile kolaylaşmış durumda.

Silverlight 3 ile bizi pek çok yenilik bekliyor... 3D nesneler, özel bileşenler ve daha pek çoğu işimizi çok kolaylaştıracak.

Blend 3 gerçekten çok şık ve kullanışlı olmuş. Özellikle C# kodlarını editleyebilmemiz ve XAML intellisense mükemmel özelliklerden bazıları.

Genel izlenimim Silverlight 3 hakkında developer sürümü olmasına rağmen Silverlight 2 ile sorunsuzca çalışması beni çok sevindirdi.

Bu kısa zamanda gözüme çarpan güzellikleri bunlardı. Umarım diğer pek çok detay gelişmeyi de zamanla inceleme fırsatım olur. Kararlı haline çabucak kavuşur da bizlerde sorunsuzca projeler geliştirebiliriz...

IronPython Yol Haritası

Cuma, 20 Mart 2009 18:02 by ikivanc


Bu yazımda IronPython'ın bu zamana kadarki gelişimi ve önümüzdeki dönemlerdeki çizdiği yol haritası hakkında biraz bahsetmek istiyorum.

İlk olarak Eylül 2006'da 1.0 kararlı sürümü çıkan IronPython Python 2.4 versiyonunu desteklemekte ve çoğu python built-in yapısını içermekteydi.

IronPython 1.1 Nisan 2007'de Python 2.5 versiyonunun büyük bir bölümünü içermekte ve ilk kez Visual studio içerisine entegre edilmekteydi.

IPy 2.0 Aralık 2008'de kararlı hala geldi ve Python 2.5 ile tamamen uyumlu, yep yeni bir mimari olan CLR benzeri olan dinamik diller için yapılandırılan DLR üzerine inşa edildi. Şu anda da 2.0.1 sürümü yayınlanan bu kararlı sürümü projeler geliştirebiliyoruz.

IronPython'ın ileriki planları ise;
IPy 2.6, IPy 3.0'a geçiş için kullanılacak olup Python 2.6 ile tamamen uyumlu olacak ve VS ile birlikte sorunsuzca çalışabilecek. Bu da 2009 başlarında düşünülüyor.

IPy 3.0 ise şu anda Python'un en güncel sürümü olan Python 3000 ile tamamen entegre bir şekilde çalışacak ve VS studio da tamamen desteklenmiş bir şekilde yerini alacak. Bu da 2009 ortaları olarak planlanıyor.

Şu anda IronPython'ın en büyük eksiklerinden birisi ise IronPython studio ve Visual studio entegrasyonlarında code intellisense ve otomatik kütüphane tanımlama gibi özelliklerinin çok kısıtlı olması. Önümüzdeki günlerde bu yönde ürünlere ağırlık verildiği takdirde IPy çağ atlayacak ve vaz geçilmez geliştirme araçlarımızdan birisi olacak...  
Tags:   ,
Categories:   IronPython
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Comment RSSRSS comment feed

Yeni Teknolojiler ve Güncellemeler

Perşembe, 19 Mart 2009 15:08 by ikivanc
Internet Explorer 8
Gün itibari ile internet Explorer'ın kararlı sürümü olan IE 8.0 duyuruldu.
IE8 indir

Silverlight 3 Beta 1
MIX09 konferansında Silverlight 3.0 Beta 1 duyuruldu.

3.0 ile en çok dikkat çeken yenilikleri ise
Multitouch desteği
MPEG, AAC, H.264 desteği
Gelişmiş data gösterimleri
Yeni kontroller geliyor
3D modellemeler
çeşitli efectler uygulanabilecek
TestApp ile Masaüstü olarak offline çalışır modu geliyor...
ve pek çok yenilik ile çok ama çok renk katacak hayatımıza...



Expression Blend™ 3 Preview
SketchFlow, ProtoTyping, Xaml Code IntelliSense, tasarımda kolaylıklar sağlama gibi güzellikleri ile duyuruldu.
Blend 3 Preview indir


IronPython 2.0.1
Geçtiğimiz Haftalarda IronPython 2.0.1 duyuruldu.
IronPython 2.0.1 indir

Asp.NET MVC
MIX09 konferansında Asp.NET MVC 1.0 RC duyuruldu.
Asp.NET MVC indir

Moonlight 1.0

Novell Silverlight'ın linux üzerinde çalışmasını sağlayacak moonlight 1.0 kararlı sürümünü duyurdu.
Moonlight hakkında bilgi için






Kaldığımız Yerden...

Perşembe, 19 Mart 2009 07:37 by ikivanc


Bazen durduk yere bir boşluk gelir ve canınız hiç bişey yapmak istemez, sebebini bilmediğiniz bişeyden dolayı... Ben de son bi kaç aydır bu durumdaydım, doğru düzgün ne kod geliştirme yapabildim ne de blogumda makale/yazılarıma yer verebildim ama şükür ki atlattım o halimi. Uzun bi boşluktan sonra artık eskisi gibi renkli ve canlı konulara giriş yapabiliriz. Bu vaziyette olanlara da sabır diliyorum, umarım çabuk atlatırlar :(

Bu süre zarfı içerisinde part-time çalıştığım işe microsoft tarafına ve araştırmalarıma daha fazla ağırlık verebileyim diye ara verdim. Imagine Cup yarışmasında yarı finale kaldık ve bunun için projemizin demo versiyonunu oluşturduk. Fotoğrafçılık kulübümüzle "sevgi" konulu sergi açtık. Bilişim Kulübü ile Bilmök'e, Fotoğrafçılık kulübü ile Sivas'a gittim. En son da bu hafta Imagine Cup yarıfinalinde sunum yapmak için Ankaraya gittik. Daha pek çok koşuşturmaca arasında boğulup gitmiştim ki artık hepsi bitti. Şimdi de bilişim kulübü olarak çıkaracağımız makale E-Dergi'mizin çalışmalarına devam ediyorum.

Neyse... haydi devam edelim... 
Tags:  
Categories:   Kola Molası
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Comment RSSRSS comment feed