Abdurrahman KÖKEN | BLOG

just a developer... | Microsoft Student Partner

Visual Studio 2010 RC-Açılış Sayfasını Kişiselleştirme

Mart 20
by Abdurrahman Köken 20. Mart 2010 22:38
Herkese merhabalar,

Bugün sizlere Visual Studio 2010 açılış sayfasını nasıl kişiselleştireceğimiz hakkında bilgilendirmek istiyorum.Öncelikle hatırlatmak istediğim birkaç şey var.Eğer daha önceden Visual Studio 2010 Beta 2 ile açılış sayfanızı düzenlediyseniz ve daha sonra RC sürümünü yüklediyseniz açılış sayfanızda bir takım hatalarla karşılaşacaksınızdır.Çünkü VS2010 RC ile bazı namespace’ler değişmiş bulunmakta.

 

Düzeltmek içinse StartPage.xaml dosyasını açıp şu namespace’leri değiştirin:

Shell.UI namespace’ini kaldırın:

xmlns:vs="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.UI"

ve şu iki isim uzayını ekleyin:

Bu değişiklikleri yaptıktan sonra bu assembly’lere bağlı olan URI ve tipleri de değiştirmek gerekiyor.Artık StartPageResources dictionary and resimler Microsoft.VisualStudio.Shell.StartPage.dll dosyası içinde bulunuyor.

<ResourceDictionary Source="/Microsoft.VisualStudio.Shell.StartPage;

component/Styles/startpageresources.xaml" />

ImageNormal="pack://application:,,,/Microsoft.VisualStudio.Shell.StartPage;

component/Images/StartPage/OpenProject.png"

Bunların yanısıra  VsCommands, RssCommands ve  MruListBox kontrolleri de Microsoft.VisualStudio.Shell.StartPage.dll dosyasında bulunuyor.

Command="{x:Static sp:VSCommands.ExecuteCommand}" CommandParameter="File.NewProject"

Eğer VS2010’nun varsayılan olarak gelen Tab Control kontrolünü kullanmak istiyorsanız şu şekilde kullanmanız gerekmekte,

<TabControl Style='{DynamicResource StartPage.TabControlStyle}"

<TabItem Header="Get Started" Height="Auto" Style='{DynamicResource StartPage.TabItemStyle}'

Bunlara ek olarak RC ile artık açılış sayfasında yapılan bir değişiklik anında yansımıyor.Değişiklikleri görebilmek için Visual Studio’yu yeniden açmanız gerekmektedir.İsterseniz VS2010 RC için StartPage proje dosyasını buradan indirebilirsiniz.

Kaynak:Visual Studio Shell Team

MSP Webinerleri-Visual Studio 2010 İle Gelen Yenilikler

Mart 16
by Abdurrahman Köken 16. Mart 2010 23:37

Merhaba arkadaşlar,

Microsoft Student Partner’ler tarafından gerçekleştirilen Mart ayı webinerleri hız kaybetmeden devam ediyor.17 Mart Çarşamba günü saat 20:00'da  Visual Studio 2010 İle Gelen Yenilikler webinerini gerçekleştireceğim. 

Bu web seminerinde:

Visual Studio 2010 ile gelen yeni debugging yöntemleri,Visual Studio 2010 Text Editor geliştirmeleri ve projelerimizi geliştirirken hız kazanmamızı sağlayacak minik özelliklerden bahsediyor olacağım.

Katılımlarınızı bekliyorum.

Tarih: 17 Mart 2010

Saat: 20:00

Konu: Visual Studio 2010 Yenilikleri

Konuşmacı: Abdurrahman Köken(Kocaeli Üniversitesi),Yasemin Çelik(Galatasaray Üniversitesi)

Facebook Sayfası: Etkinlik

Kayıt Linki:http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032447022&Culture=TR-TR

WPF-Kendi DataSourceProvider Kontrolümüzü Yazalım

Mart 14
by Abdurrahman Köken 14. Mart 2010 15:56

Herkese merhabalar,

Bu aralar bloğumu biraz boş bıraktığımın farkındayım.Son zamanlarda gerçekten yoğun bir tempo içindeydim.Her işin içinden bir iş daha çıkmaya başladıJHer neyse sonuna yazmayı başardım.Bu yazımda sizlere WFP için kendi DataSourceProvider larımızı nasıl oluşturabileceğimizden bahsetmek istiyorum.İşe ilk olarak bir sınıf yaratıp bu sınıfı DataSourceProvider sınıfından kalıtmak olacaktır.Şu an WPF bizlere iki adet DataSourceProvider sunmaktadır.Bunlar,

ObjectDataProvider:Projemizdeki belirli bir sınıfın herhangi bir metodunu çağırmamızı sağlar.Metod ismi ve parametreleri gibi özellikleri bulunmaktadır.

XmlDataProvider:Çeşitli XML kaynaklarından veri sağlamak için kullanılmaktadır.Aslında framework ile gelen bu iki sınıf gerçekten harika fakat kendi veri sağlayıcılarımızı nasıl yazabileceğimizi bilmeliyiz.Üstelik o kadar da çok zor bir olay değil.Hatta üç adımda bunu gerçekleştirebiliriz.

- DataSourceProvider sınıfından kalıtım almış bir sınıf oluşturmak

-BeginQuery metodunu ezmek

-Bazı noktalarda OnQueryFinished metodunu çağırmak

Bunun avantajlarından biri de  arkaplanda yükleyebilme özelliğidir.Bunu XAML  tarafında IsAsync property’sini ayarlayarak yapabilirsiniz.

class TextDataSource:DataSourceProvider   

{

   private bool isAsync = false;

   private string fileName = string.Empty; 

   public bool IsAsync

   {

     get { return isAsync; }

     set { isAsync = value; OnPropertyChanged(new PropertyChangedEventArgs("IsAsync"));}

   }                

   public string FileName

   {

     get { return fileName; }

     set{fileName = value;OnPropertyChanged(new PropertyChangedEventArgs("FileName"));}

   }

   public object ObjectInstance

   {

     get { return Data; }

     set{ OnQueryFinished(value, null, null, null);OnPropertyChanged(new PropertyChangedEventArgs("ObjectInstance"));}

   } 

   protected override void BeginQuery()

   {

      if (IsAsync)

       {

          ThreadPool.QueueUserWorkItem(RunQuery, null);

       }

      else

         RunQuery(null);

    }

    private void RunQuery(object state)

    {

       StringBuilder sb = new StringBuilder();

       base.BeginQuery();

       FileStream fs = new FileStream(FileName,FileMode.Open,FileAccess.Read);

       StreamReader rd = new StreamReader(fs,Encoding.Default);

       while(!rd.EndOfStream)

      {

        sb.Append(rd.ReadLine()+"\n");

      }

       ObjectInstance = sb;

    }

 }

 Gelelim XAML tarafında kontrolümüzü kullanmaya,

<Window.Resources>

<local:TextDataSource x:Key="myProvider" IsAsync="True" FileName="C:\Test.txt"/>

</Window.Resources>

<DockPanel>

<TextBlock Text="{Binding Mode=OneTime,Source={StaticResource myProvider}}" DockPanel.Dock="Top" HorizontalAlignment="Center" Height="30" />

</DockPanel>

Örnek uygulama:DataSourceProvider.rar (33,76 kb)

WPF-Performans Arttırma Metodları #2

Mart 01
by Abdurrahman Köken 1. Mart 2010 22:25

WFP uygulamalarında performansı arttırma yöntemleri makalemin ikinci kısmından bahsedicem.Uygulama geliştirirken bu önemli noktaları göz önünde bulundurursanız çok daha iyi sonuçlar elde edebilirsiniz.

1.Gereksiz layout geçişlerini azaltın

2.Shape objeleri  yerine Drawing kullanın

3.Geometrik şekiller için PathGeometry’e alternatif olarak StreamGeometry kullanın 

4.Şekil,resim ya da text’leri render etmek için DrawingVisual kullanın

 

5.Bir resmin thumbnail’ine ihtiyacınız varsa ,boyutunu küçülterek kullanın

6.Belleği korumak ve performansı arttırmak için CachingHint’i olabildiğince ayarlayın

7. Brush kullanmak performans için kritik bir durum. ImageBrush ya da SolidColorBrushın yeterli olduğu durumlarda VisualBrush veya  DrawingBrush kullanmayın.Kolay gelsin. 

Kaynak:MSDN

Abdurrahman Köken-Recent Post