Yazılım Geliştirmede Yeni Misin?
27 Ağustos,2010

Eğer yazılım geliştirmeye yeni başladıysanız size başlangıç için MSDN Beginner Developer Centre ‘a şiddetle gözatmanızı tavsiye ediyorum. Özellikle başlangıç seviyesindeki geliştiriciler için çok iyi bir yol gösterici olduğunu düşünüyorum. Eğer sen de hazırsan şampiyon ol ve projeni göster.
Kategoriler: Genel

Microsoft Teknoloji Günleri-Akşam Sınıfı Etkinliği
24 Ağustos,2010

Microsoft ve iş ortaklarıyla beraber gerçekleştirilen Microsoft Teknoloji Günleri Akşam Sınıfı etkinliği tüm hızıyla devam ediyor. Sırada MVP olan sevgili Burak Selim Şenyurt hocamın sunum yapacağı WCF Eco System etkinliği var. En alttaki linklerden etkinliğe kaydınızı yaptırabilirsiniz. Aşağıda detaylarını bulabileceğiniz ve sizler için hayli faydalı olacağına inandığımız Microsoft Teknoloji Günleri Akşam Sınıfı Etkinliğimize kaydınızı hemen yaptırabilirsiniz.

14 Eylül 2010 Salı: WCF Eco System: (3 Saat) WCF alt yapısı üzerine kurulu olan WCF Eco System içerisinde Data Services, Workflow Services, RIA Services, WebHttp Services ve Core Services tipleri yer almaktadır. Bu eğitimde Data Services, Workflow Services, RIA Services ve WebHttp Services konulu örneklergeliştiriecek ve söz konusu alt yapı ile değerlendirilebilecek hazır servis modelleri irdelenecektir.

20 Eylül 2010 Pazartesi: Windows Server AppFabric: (2 Saat) Bu eğitimde WCF ve Workflow servis örneklerinin izlenmesi, sorunların teşhis edilmesi, örneklerin yaşam döngülerinin takibi, yapılandırma ayarlarının belirlenmesi gibi birçok yönetimsel konuda geliştiriciler ile BT yöneticilerinin daha kolay anlaşabilmelerini de sağlayan Dublin kod adlı Windows Server AppFabric ürün ailesi incelenecektir. Özellikle IIS üzerine gelen eklentiler ile söz konusu yönetsel işlemlerin nasıl yapılabildiği hakkında ayrıntılı bilgiyi bu oturumda bulabileceksiniz.

20.Ekim.2010/Çarşamba: Worfklow Foundation 4.0 : (3 Saat) WF 4.0 beraberinde pek çok köklü yenilik ile gelmektedir. Geliştirilen Base Activity Library, paralel programlama desteği, veri akışı için gelen Argument, Variable gibi kavramlar ve daha pek çoğunun ele alındığı eğitimde basit örnekler ile WF modelin tanıtılmaya çalışılmaktadır.

23.Kasım.2010/Salı: Asp.Net 4.0 : (3 Saat) Web Programlama’ nın .Net 4.0 ile birlikte gelen yeni yüzünü görmeye hazır mısınız? Pek çok yeni özellik ile birlikte gelen Asp.Net 4.0’ ın anlatıldığı bu eğitimde, temelden orta seviyeye kadar basit bir web uygulaması tasarlanmakta ve konunun daha iyi kavranabilmesi amaçlanmaktadır.

20.Aralık.2010/Pazartesi: Visual Basic 2010 : ( 2 Saat) Bu eğitimde Visual Basic 2010 programlama dili ile birlikte gelen pek çok yeni özellik üzerinde durulmakta ve geliştirilen örnekler ile bu kavramlar pekiştirilmeye çalışılmaktadır. Bu noktada AutoImplemented Properties, Collection Initializers, Implicit Line Continuation, Mutlipe Lambda Expressions, Dynamic keyword, Type Equivalance Support gibi konular üzerinde durulmaktadır.

20.Ocak.2011/Perşembe: WPF 4.0 ile Windows Programlama : (3 Saat) .Net 3.0 ile birlikte duyurulan Windows Presentation Foundation modeli ile zengin kullanıcı deneyimine sahip windows uygulamaları tasarlanabilmektedir. Özellikle Windows 7 üzerinde en iyi kullanıcı deneyimini sunan WPF 4.0 ile birlikte gelen yenilikleri öğrenmeye ne dersiniz?

Tarih 
14 Eylül 2010 Salı - WCF Eco System
Saat
19.00 - 21.30
Yer
Microsoft İstanbul Ofisi
Eğitmen:
Burak Selim Şenyurt
Microsoft MVP

Kayıt Ol 

Tarih 
20 Eylül 2010 Pazartesi - Windows Server AppFabric
Saat
19.00 - 21.30
Yer
Microsoft İstanbul Ofisi
Eğitmen:
Burak Selim Şenyurt
Microsoft MVP

Kayıt Ol 

Kategoriler: Etkinlik

WPF-Nümerik TextBox Attached Property Oluşturma
21 Ağustos,2010

Attached property’ler bildiğiniz gibi dependency property’lerin özelleşmiş bir tipidir.Daha önceki makalelerimde attached property ve dependency property’lerden bahsetmiştim.Bugün bu konuyu daha iyi anlamak için örnek bir attached property yazacağız.Property’miz bir TextBox’a sadece rakam girilmesini sağlayacak yani nümerik TextBox özelliği sağlayacak.Burada yapacağımız en önemli iki hamle ilk olarak clipboard da bulunan verinin TextBox’a yapıştırılmasını engellemek.Burada engellememizin amacı o veriyi inceleyip içinde rakamdan başka veriler olma ihtimalidir.Veriyi inceleyip komutun çalışıp çalışmamasını sağlamalıyız.

Son hamlemiz ise TextBox’a her bir  veri girişini yakalayıp rakam olup olmadığını kontrol etmemiz gerekmektedir.Önceki makalelerimde de belirttiğim gibi attached property ler farklı sınıflarda bulunmaktadırlar.Öncelikle NumericTextBox adında bir sınıf oluşturuyorum ve bu sınıfta boolean tipinde IsEnabled adında bir attached property tanımlıyorum. UIPropertyMetadata’sında varsayılan değerini false olarak atayıp değer her değiştiğindeki olayı yakalamak için aşağıdaki gibi OnIsEnabledPropertyChanged adında bir static metot yazıyorum:

public static void OnIsEnabledPropertyChanged(DependencyObject sender,DependencyPropertyChangedEventArgs e)
 {
   TextBoxBase txtBox = sender as TextBoxBase;
   txtBox.PreviewKeyDown -= OnKeyDown;
   DataObject.RemovePastingHandler(txtBox, OnClipboardPaste);
   if ((bool)e.NewValue)
    {
      txtBox.PreviewKeyDown += OnKeyDown;
      DataObject.AddPastingHandler(txtBox, OnClipboardPaste);
    }
  }

Burada ilgili TextBox’ın OnKeyDown ve clipboard yapıştırma olay tutucusu siliniyor.Çünkü sadece attached property’miz true olduğu sürece rakam kontrolünü yapması gerekiyor.OnClipboardPaste event handler’ında  clipboard’daki bulunan veriyi alıp içinde tüm verinin rakam olup olmadığını kontrol etmeliyiz.Eğer harf ya da alfanümerik  karakterler varsa komutun çalışmasını engellemeliyiz:

private static void OnClipboardPaste(object sender,DataObjectPastingEventArgs e)
   {
       string text = e.SourceDataObject.GetData(e.FormatToApply) as string;
       if (!string.IsNullOrEmpty(text))
        {
           if (text.Count(p=>!Char.IsNumber(p))==0)
             {
                return;
             }
        }
       e.CancelCommand();
   }

OnKeyDown event handler’ında ise Enter,CTRL ve Shift gibi bazı özel karakterler ve rakamlar haricinde TextBox’a veri girişini e.Handled özelliğini true yaparak engellemeliyiz.Son olarak yazdığımız attached property’i kullanabilmek için sınıfımızı XAML tarafında isim uzayına eklemeliyiz.Daha sonra aşağıdaki gibi property’mizi set edebiliriz.

<TextBox Width="180" local:NumericTextBox.IsEnabled="True"/>

Uygulamanın kaynak kodlarına aşağıdaki linkten ulaşabilirsiniz.

Kaynak Kod-NumericTextBox.zip (37,54 kb)

Kategoriler: WPF

WPF-Otomatik Stil Uygulama
20 Ağustos,2010

Uygulamalarımızda bulunanan elementlerimizin görünüşü değiştirmek için XAML’da stilleri kullanırız.Diyelim ki uygulamamızda bulunan butonlara stil vermek istiyoruz.Örnek olarak şu şekilde bir stilimiz olduğunu varsayalım:

<Window.Resources>
 <Style x:Key="buttonStyle" TargetType="{x:Type Button}">
  <Setter Property="FontSize" Value="24"/>
  <Setter Property="Foreground" Value="ForestGreen"/>
  <Setter Property="FontWeight" Value="Bold"/>
 </Style>
</Window.Resources>

Yukarıdaki stilimizi butonlara uygulamak içinse her bir butonun Style property’sinde hazırlamış olduğumuz  stili aşağıdaki gibi belirtmemiz gerekir:

<Button Content="Click" Style="{StaticResource buttonStyle}"/>
Eğer uygulamamızdaki bütün butonlara aynı stili tek tek yerine hepsine aynı anda uygulamak istiyorsak  stilimizdeki x:Key attribute’unu kaldırmamız yeterli olacaktır.Sadece TargetType belirterek o tiple eşleşen tüm elementlere stili otomatik uygulatabiliriz.Bunu yapmanın diğer bir yolu ise TargetType attribute’unu kaldırıp x:Key’de element tipini belirtmektir.

1.yol

<Style TargetType="{x:Type Button}">
  <Setter Property="FontSize" Value="24"/>
  <Setter Property="Foreground" Value="ForestGreen"/>
  <Setter Property="FontWeight" Value="Bold"/>
</Style>

2.yol

<Style x:Key="{x:Type Button}">  
 <Setter Property="Button.FontSize" Value="24"/>  
 <Setter Property="Button.Foreground" Value="ForestGreen"/>  
 <Setter Property="Button.FontWeight" Value="Bold"/>
</Style>

Gördüğünüz gibi kolayca stillerinizi otomatik olarak elementlere  uygulayabilirsiniz.Hatta stil uygulanmasını istemediğiniz kontrolleri

<Button Content="Click" Style="{x:Null}"/>

şeklinde belirtebilirsiniz.İlk yolu deneyerek yazdığım uygulamanın XAML kodunu ve çıktısını bulabilirsiniz.

<StackPanel> 
 <Button Content="Click"  Width="100" Height="50"  /> 
 <Button Content="Click"  Width="100" Height="50" Style="{x:Null}"/> 
 <Button Content="Click"  Width="100" Height="50"/>
</StackPanel>

Kolay gelsin.

 
Etiketler: , ,
Kategoriler: WPF

2010-2011 MSP Programı Başvuruları
12 Ağustos,2010

 

Herkese merhabalar,

2010-2011 Microsoft Student Partner başvuruları başladı.Öğrenci arkadaşlar sizlere sesleniyorum eğer siz de teknoloji tutkunuysanız ve üniversiteniz ile Microsoft arasında bir köprü kurmak istiyorsanız bu fırsatı kaçırmayın derim.MSP programı sürecinde yapılan etkinliklerde pek çok deneyim kazanabilirsiniz en önemlisi pek çok yeni insanla tanışarak kalıcı dostluklar edinebilirsiniz.Bu deneyimleri yaşama fırsatını yakalamak için son başvuru tarihi 26 Ağustos Perşembe günü.

Başvuru ve detaylı bilgi için buraya tıklayın.

Etiketler:
Kategoriler: Genel

WPF-Ribbon Kontrolü RTW Versiyonu Yayınlandı
8 Ağustos,2010

Geçtiğimiz günlerde Microsoft Ribbon‘ın Temmuz sürümü yayınlandı.Ribbon kontrolünün yeni sürümü WPF 3.5 SP1 ve WPF 4 ile uyumlu hale getirilmiş.En önemli özelliği ise tamamen WPF implementasyonunun olmasıdır yani bir  wrapper değil.Bu da yeni ribbon kontrolü için WPF’in tüm stil yeteneklerini uygulayabiliriz demek oluyor.Ayrıca Ribbon Installer kurduktan sonra Visual Studio ve Expression Blend için  de “WPF Ribbon Application” adında yeni bir şablon oluşturmaktadır.Ne yazık ki bu proje şablonu Visual Studio’nun Express sürümlerini desteklememektedir.Bu şablon başlangıç için basit bir Ribbon kontrolü içermektedir.Aşağıda Ribbon projesi oluşturulup çalıştırıldığında varsayılan olarak gelen kontrolün ekran görüntüsünü bulabilirsiniz.

 

 

Özellik olarak da RibbonButton’ların ICommand  desteklediğini de belirtmek istiyorum.Rahatlıkla MVVM ile geliştirdiğiniz uygulamalarınızda kullanabilirsiniz.Son olarak Visual Studio ve Expression Blend için design-time desteği de bulunmakta.Ücretsiz Ribbon kontrolünü  buradan indirebilirsiniz.Kolay gelsin.

 

Etiketler:
Kategoriler: WPF

WPF Browser Uygulamalarında Referans Site Bulma
4 Ağustos,2010

Bu yazımda kısaca bir WPF Browser uygulamasında o an bulunulan sayfaya hangi sayfadan gelindiğini nasıl öğrenebileceğimizden bahsetmek istiyorum.Özetle yapmamız gerekenler öncelikle uygulamamızdaki ilk sayfadan sonraki sayfaya gitmemiz navigasyon yapmamız gerekiyor.Daha sonra diğer sayfaya yönlenmeden önce  navigasyon yapılan sayfanın adresi alınarak bir property sayesinde enkapsüle edilmiştir.İşte bu property’yi de her sayfadan ulaşabilmek için App.xaml.cs de tanımlamalıyız.Kaynak kodlar ise oldukça basit ve anlaşılırdır:

App.xaml.cs   

public partial class App : Application   

{       

private static Uri referrer;

   //Gelinen sayfanın ismini tutan propoperty.       

public static Uri Referrer        

{   

get{return referrer;}       

}        

//Bir adrese navigasyon yapılırkenki durumu yakalayarak adresi alıyoruz.       

protected override void OnNavigating(NavigatingCancelEventArgs e)       

{           

 base.OnNavigating(e);            

 referrer = null;           

 if (e.Navigator is NavigationWindow)           

  {               

      referrer = ((NavigationWindow)e.Navigator).CurrentSource;

  }           

 else if (e.Navigator is Frame)           

  {               

     referrer = ((Frame)e.Navigator).CurrentSource;           

   } }       

protected override void OnNavigationStopped(NavigationEventArgs e)       

{           

  base.OnNavigationStopped(e);           

  referrer = null;       

} 

}

 

Page2 sayfasına yönlenmek için Page1 sayfamıza bir düğme yerleştirerek Click olayına  tek satırlık bir kod yazmamız gerekli:

Page1.xaml

private void Button_Click(object sender, RoutedEventArgs e)       

{           

   //Navigation servis kullanılarak Page2 isimli sayfaya yönlendiriliyor.           

  this.NavigationService.Navigate(new Uri("Page2.xaml", UriKind.Relative));       

}

 

Son olarak Page2.xaml sayfamıza bir etiket yerleştirerek hangi  sayfadan yönlendirilidğini yazdırmak için sayfamızın Load olayına:

Page2.xaml

 

txtRefered.Text = "Gelinilen sayfa:" + App.Referrer.OriginalString;

 

Kolay gelsin.  

Kaynak kod.zip (35,65 kb)

Kategoriler: WPF