İlkay İlknur
Just a developer...

Visual Studio 2010 Tips #16 - HTML&ASP.NET ve Javascript Code Snippets

Çarşamba, 21 Nisan 2010 20:54 by ilkayilknur

Merhaba Arkadaşlar,

Geçtiğimiz haftalarda biz developerlar için pekçok güzel haberler vardı. Bunlar Visual Studio 2010'un RTM(release to manufacturing) olması ve Silverlight 4'ünde RTW(release to web) olmasıydı. Her ne kadar ben bu iki haberide vizelerimden dolayı biraz uzaktan takip etsemde yine de mümkün olduğu kadar 2 olayla da yakından ilgilenmeye çalıştım. Evet konumuza geri dönelim ve yeni bir tip ile yazı dizimize devam edelim. Bu yazımızda Visual Studio 2010 ile beraber gelen HTML/Javascript snippetlarını inceliyor olacağız.

Önceki Visual Studio sürümlerini kullanırken code-behind tarafında çok etkin bir biçimde code-snippetlarını kullanıyorduk. Ancak her seferinde aklımızdan HTML & ASP.NET ve Javascript tarafında da bu snippetların olması gerektiğini geçiriyorduk ve nitekim 2010 sürümüyle beraber geldiler.Smile Artık HTML & ASP.NET ve Javascript tarafında da hızlı bir şekilde code-snippetları kullanarak uygulamalarımızı geliştirebiliyoruz.

İşte birkaç örnek :

 

 

Özellikle Javascript Intellisense tarafında da çok efsanevi yenilikler bulunmakta. Bunları bir başka yazımda paylaşıyor olacağım.

Görüşmek Üzere,

Tags:   ,
Categories:   Visual Studio 2010 | Visual Studio 2010 Tips
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

Visual Studio 2010 Tips #15 - Mimarisel Yenilikler

Çarşamba, 7 Nisan 2010 11:38 by ilkayilknur

Merhaba Arkadaşlar,

Visual Studio Tips yazı serimize bu sefer bir görsel ders ile devam ediyoruz. Bu görsel dersimizde Visual Studio 2010 ile beraber gelen Mimarisel Yenilikleri inceliyor olacağız. Görsel ders içerisinde Visual Studio 2010 ile beraber gelen Architecture Explorer, Sequence Diagrams, Dependency Graphs ve Layer Diagrams yeniliklerine değiniyoruz.

 

 

Get Microsoft Silverlight

Görsel dersi buradan indirebilirsiniz.

Görüşmek Üzere,

Tags:   , ,
Categories:   Görsel Ders | Visual Studio 2010 | Visual Studio 2010 Tips
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

Visual Studio 2010 Tips #14 - Box Selection

Pazartesi, 5 Nisan 2010 18:36 by ilkayilknur

Merhaba Arkadaşlar,

Bu yazımızda bence Visual Studio içerisinde bulunan en güzel özelliklerden biri olan Box Selection özelliğinden bahsediyor olacağız. Box selection özelliği ile beraber artık kodlarımızı bir kutu gibi seçebiliyoruz. Ayrıca bu özelliğin en güzel yanlarından birisi de kutu içerisinde bulunan tüm satırlarda birer cursorın olması. Böylece toplu olarak seçilen satırlara bir kod eklemek istediğimiz zaman ilgili kodu sadece 1 kere yazmamız yeterli oluyor. Peki Box Selection'ı nasıl kullanıyoruz gelin hep beraber inceleyelim. Demo olması amacıyla 2 tane private değişkenimiz olduğunu düşünelim ve bu değişkenleri toplu bir şekilde nasıl public yapabiliriz bu konuyu incelemeye çalışalım. 

Şimdi private olan kısımları ALT tuşuna basılı tutarak mouse kullanarak seçiyoruz.

Daha sonra klavye ile public yazarsak seçtiğimiz tüm satırlara yazdıklarımız doğrudan yansıtılacaktır.

Özellikle değişkenlerin veya propertylerin tiplerini değiştirirken yada toplu olarak bir değişiklik yapmamız gerektiği zamanlarda bu özelliğin oldukça faydalı olacağını düşünüyorum. Smile

Görüşmek Üzere,

Tags:   , ,
Categories:   Visual Studio 2010 | Visual Studio 2010 Tips
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

Visual Studio 2010 Tips #13 - Intellisense Suggestion Mode

Pazar, 4 Nisan 2010 22:04 by ilkayilknur

Merhaba Arkadaşlar,

Bu yazımızda Visual Studio 2010 ile beraber gelen Intellisense Suggestion Modu inceliyor olacağız. Genelde testlerimizi yazarken önce yaratmak istediğimiz sınıfları test içerisinde tanımlar ve daha sonra CTRL+ . kısayolunu kullanarak bu sınıfı ilgili dosya içerisinde yaratırız. Ancak genelde sınıfımızın ilk kısmını yazarken Intellisense bize bir öneride bulunur ve aslında yaratmak istedğimiz sınıfı yazmamız bu durumda zorlaşır. Örneğin UrunTest sınıfı içerisinden Urun nesnesi yaratmaya çalışalım. 

 

Gördüğümüz gibi Intellisense bize UrunTest sınıfını öneriyor. Oysaki biz Urun sınıfını yaratmak istiyoruz. İşte bu nedenden dolayı Visual Studio 2010 ile beraber gelen Intellisense Suggestion Modu kullanmamız gerekiyor. Böylece Intellisense yine bize öneride bulunuyor ancak ilk öneri bizim yazdığımız oluyor. Diğer seçenekleri seçmek için aşağı ve yukarı oklarını kullanmamız gerekiyor.

 

Bu arada unutmadan Intellisense Suggestion Moda CTRL+ALT+Space ile geçebiliyoruz. Smile

Görüşmek Üzere,

Tags:   ,
Categories:   Visual Studio 2010 | Visual Studio 2010 Tips
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

Visual Studio 2010 Tips #12 - Yaratılan Projelerin Otomatik Olarak Kaydedilmemesi

Cumartesi, 3 Nisan 2010 16:41 by ilkayilknur

Merhaba Arkadaşlar,

Visual Studio ile yarattığımız projeleri her zaman kaydetmek zorunda oluyoruz. En azında varsayılan olarak. Smile Ancak yapacağımız ufak bir ayar ile artık projeleri yarattığımız sırada bilgisayarda belirli bir lokasyona kaydedilmesi zorunluluğunu ortadan kaldırabiliyoruz. Bunun için öncelikle Tools => Options menüsüne giriyoruz. Daha sonra sol taraftan Projects and Solutions seçeneğine tıklıyoruz. Son olarak ise karşımıza gelen ekrandaki Save new projects when created seçeneğini seçili durumdan kaldırıyoruz.

Böylece artık yeni bir proje yarattığımızda proje otomatik olarak kayıt edilmeyecek ancak uygulamayı kapatırken bize üzerinde çalıştığımız uygulamayı kaydetmek isteyip istemediğimiz sorulacaktır.

Görüşmek Üzere,

Tags:   ,
Categories:   Visual Studio 2010 | Visual Studio 2010 Tips
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

Nedirtv.com 4. Yıldönümü Seminerleri

Cumartesi, 3 Nisan 2010 16:10 by ilkayilknur

Merhaba Arkadaşlar,

Benim de aralarına yeni katıldığım nedirtv topluluğu 10 Nisan 2010 Cumartesi günü Microsoft Türkiye İstanbul Ofisinde düzenleyeceği etkinlikle 4. yılını kutluyor.

 

Etkinlik içeriğini ve gerekli bilgileri aşağıda bulabilirsiniz. 

Etkinlik Programı

09:45 Açılış 10:00

HTML 5 - Daron Yöndem

11:00 ASP.NET MVC 2 - Selçuk Yavuz

12:30 Ara 14:00 Microsoft Ajax Library(ASP.NET AJAX 4) - Uğur Umutluoğlu

15:00 WCF Eco System - Burak Selim Şenyurt

16:30 Windows Server AppFabric - Burak Selim Şenyurt

17:00 Hediye Çekilişi ve Kapanış

Tarih : 10 Nisan 2010 Cumartesi

Yer : Microsoft İstanbul Ofisi Bellevue Residence Levent Mahallesi, Aydın Sokak. No:7 Levent İstanbul

Kroki için tıklayın.

Kayıt için tıklayın.

Seminerlere katılım ücretsizdir. An cak katılım 100 kişi ile sınırlı bu nedenle kayıt olmak için acele edin. 

Peki ben var mıyım ? Maalesef vize haftama denk geldiği için bu etkinlikte çok istememe rağmen bulunamayacağım. Frown

Tags:   ,
Categories:   Seminer
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

Visual Studio 2010 Tips #11 - Yaratılan Projelerin Varsayılan Lokasyonlarının Değiştirilmesi

Cuma, 2 Nisan 2010 13:54 by ilkayilknur

Merhaba Arkadaşlar,

Eminim ki çoğumuz Visual Studio'nuzu açtıktan sonra yeni bir proje yaratırken projenin yer alacağı klasörün uzantısını her zaman değiştiriyoruz. Örneğin ben genelde TestProjects isimli bir klasör içerisinde tüm test amaçlı açtığım projelerimi topluyorum ve bu projelerin karışık lokasyonlarda bulunmasının önüne geçiyorum. Ancak her seferinde bu projeleri yaratırken klasör lokasyonunu değiştirmek bizim için can sıkıcı bir durum alabiliyor. Bunun yerine projelerin yaratılacağı klasörü varsayılan olarak bir yerden belirlesek nasıl olurdu ?Wink Bence süper olurdu. O zaman gelin yaratılan proje lokasyonun varsayılan olarak yeni bir değere atayalım. Bunun için Tools=>Options ekranına geliyoruz. Daha sonra ise sol taraftan Projects &Solutions'a tıklayarak ekrana gelen Projects Location'ı değiştiriyoruz. Böylece artık yaratılan projelere varsayılan olarak o lokasyonda yaratılacak. 

Bundan sonra artık yarattığımız projelerin lokasyonu varsayılan olarak verdiğimiz değere eşit olacak.

Görüşmek Üzere,

Tags:   , ,
Categories:   Visual Studio 2010 | Visual Studio 2010 Tips
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

.NET Framework 4.0 - Paralel İterasyonların Break veya Stop Metotları ile Sonlandırılması

Cuma, 2 Nisan 2010 12:06 by ilkayilknur

Merhaba Arkadaşlar,

Yaklaşık 1-1,5 haftadır bloguma herhangi birşey yazamadım. Bunun tek nedeni ise aslında tembellik.Smile Başka bir bahanenin arkasına sığınmıyorum.

Bu yazımızda ise yine paralel programlama konusundan devam ediyor olacağız ve Paralel olarak çalışan döngülerin nasıl sonlandırılabileceğini incelemeye çalışacağız. Bildiğimiz gibi paralel olmayan döngülerde Break metodunu kullanarak döngülerden çıkabiliyorduk. Ancak Paralel olarak çalışan döngülerde bu şekilde kullanım sözkonusu değil. Bunun nedeni ise aslında Paralel tarafta kullandığımız for döngüsünün aslında bir metot olması. Bu nedenle paralel döngüleri sonladırmak için ParallelLoopState tipi içerisinde bulunan Break ve Stop metotlarını kullanıyor olacağız. Bu iki metot arasında aslında anlatması ve anlaması biraz zor olan bir fark var. Bu farkı anlamak için isterseniz bir örnek yapalım ve daha detaylı bir şekilde inceleyelim. 

İlk olarak ParallelLoopState tipine bakıyor olacağız. Parallel tipi içerisinde bulunan For ve Foreach metotlarına baktığımızda Action<int,ParallelLoopState> şeklinde iterasyon içerisinde işletilecek komutları alan aşırı yüklenmiş metotlar olduğunu görmekteyiz. Peki bu ParallelLoopState tipi ne işe yarıyor ? Bu tip aslında çalışma zamanı sırasında derleyici tarafından üretiliyor ve Paralel olarak işletilen döngü ile ilgili çeşitli işlemleri yapabilmemizi ve çeşitli durum bilgilerini almamızı sağlıyor. Bir de örneğimizde ConcurrentStack tipini kullanıyor olacağız. Bu tipte .Net Framework 4.0 ile beraber gelen Concurrent Collectionlar içerisinde yer almakta. Aslında bildiğimiz koleksiyonların paralel olarak çalışan versiyonları olarak özetleyebiliriz. Bu tipler ile ilgili detaylı olarak ilerleyen günlerde bir yazı yazıyor olacağım. 

Örnek olarak ise elimizde 1 ile 1000 arasında integer değerleri tutan bir koleksiyon olacak ve paralel olarak bu koleksiyonu dolaşıp 500'den küçük değerleri elimizdeki ConcurrentStack içerisine ekleyeceğiz. Örnek kodumuz ise şu şekilde olacak.

 

static void Main()
{
   IEnumerable<int> sayilar = Enumerable.Range(1, 1000);
   ConcurrentStack<int> stack = new ConcurrentStack<int>();
   Parallel.For(0, sayilar.Count() - 1, (p, loopState) =>
           {
              Console.WriteLine("{0} sayısı kontrol ediliyor",p);
              if (p > 500)
                 loopState.Stop();
              else
                 stack.Push(p);
              if (loopState.IsStopped)
                 Console.WriteLine("{0} sayısını kontrol eden durduruldu", p);
           });
   Console.WriteLine("Stackte {0} eleman var",stack.Count);
}

Stop komutu yaratılmış olan ve yaratılacak tüm iterasyonlara mümkün olan en uygun  zamanda işlemlerini sonlandırma mesajı göndermektedir. Ayrıca ParallelLoopState tipi içerisindeki IsStopped propertysi ile de o anda çalışan iterasyona stop mesajı gönderilip gönderilmediğini de algılayabiliyoruz.

Örnek bir ekran görüntüsü ise şu şekilde

Yukarıda gördüğümüz gibi 998 sayısını kontrol ederken stop çağrısı gönderilmekte. Böylece yaratılan iterasyonlara işlemlerini en kısa sürede ve uygun zamanda bitirmeleri gerektiği çağrısı gönderilmiştir. Ancak yine de gördüğümüz gibi bazı iterasyonlar anında sonlanmamış çalışmalarına devam etmiştir. Böylece stacke 4 eleman eklenmiş durumda. Önemli olan bir nokta da diğer elemanları kontrol etmek için yaratılan paralel iterasyonların hiç işlem yapmadan sonlanmış olmaları.

Şimdi gelelim aynı örneği Break metodunu kullanarak yapmaya.

 

static void Main()
{
   IEnumerable<int> sayilar = Enumerable.Range(1, 1000);
   ConcurrentStack<int> stack = new ConcurrentStack<int>();
   Parallel.For(0, sayilar.Count() - 1, (p, loopState) =>
           {
              Console.WriteLine("{0} sayısı kontrol ediliyor",p);
              if (p > 500)
                 loopState.Break();
              else
                 stack.Push(p);
              if (loopState.IsStopped)
                 Console.WriteLine("{0} sayısını kontrol eden durduruldu", p);
           });
   Console.WriteLine("Stackte {0} eleman var",stack.Count);
}

Break metodu ise mesajın gönderildiği iterasyondan önce yaratılan iterasyonların işlemlerini bitirdikten sonra sonlanmaları mesajını vermektedir.

Burda da gördüğümüz gibi bu sefer stack içerisinde 501 eleman bulunmakta. Yani yaratılan iterasyonlar işlemlerine devam ettiler ve bu süreçte de gerekli kontroller yapılarak stack'e 501 eleman eklenmiş durumda.

Bir yazımızında daha sonuna geldik. Ancak yazıdan da anlayabileceğiniz üzere Break ve Stop metotları arasındaki fark biraz karmaşık. Bu nedenle farklı kaynaklardan da aynı konuda yazıları okumakta fayda var. Örneğin MSDN üzerinde aynı konu ile ilgili yazılmış olan yazıyı buradan inceleyebilirsiniz.

Görüşmek Üzere,

 

Tags:   ,
Categories:   .NET Framework 4.0 | Parallel Programing
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

WCF-SelfHosting-Görsel Ders

Pazartesi, 22 Mart 2010 17:51 by ilkayilknur

Merhaba Arkadaşlar,

Bu görsel dersimizde WCF Hosting türlerinden biri olan SelfHosting türünü inceliyor olacağız.

Get Microsoft Silverlight

Görsel dersi buradan indirebilirsiniz.

Görüşmek Üzere,

Tags:   , , ,
Categories:   Görsel Ders | WCF
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share

Silverlight - DataGrid İçerisinde Gruplama

Pazar, 21 Mart 2010 14:02 by ilkayilknur

Merhaba Arkadaşlar,

Bu yazımızda Silverlight DataGrid içerisindeki gruplama özelliğinden bahsedeceğiz. DataGrid içerisinde bulunan bu gruplama özelliği ile verilerimizi çok daha anlamlı bir şekilde gruplanmış olarak kullanıcılara gösterebilmekteyiz. Gruplama örneğimizi yapmak için DataGrid içerisinde makalelerin listelendiği bir senaryo düşüneceğiz ve bu Makaleleri kategorilerine göre gruplayacağız. İlk olarak DataGrid içerisinde listeleyeceğimiz Makale sınıfını yaratarak uygulamayı gerçekleştirmeye başlayacağız.

public class Makale
{
   public string Baslik { get; set; }
   public string Kategori { get; set; }
}

Daha sonra ise sahneye basit bir DataGrid ekleyeceğiz. XAML tarafında herhangi bir ayar yapmayacağız. Sadece isim vermemiz şuan için yeterli.

<sdk:DataGrid x:Name="dgMakaleler" Height="156" Margin="12,12,0,0" 

VerticalAlignment="Top" HorizontalAlignment="Left" Width="388" />

DataGrid içerisinde gruplamayı sağlamak için System.Windows.Data namespace'i altında bulunan PagedCollectionView tipinden yararlanacağız. Ancak bu sefer DataGrid'in ItemsSource propertysine doğrudan kendi koleksiyonumuzu vermek yerine yarattığımız PagedCollectionView nesnemizi veriyor olacağız. Tabi ki önceden yarattığımız koleksiyonu PagedCollectionView'a geçirip ve gerekli gruplamaları tanımladıktan sonra bu işlemi yapıyor olacağız. 

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
   List<Makale> makaleler = new List<Makale>()
   {
      new Makale()
      {
         Baslik="Dinamik Yenilikler",Kategori="C# 4.0"
      },
      new Makale()
      {
         Baslik="Silverlight 4.0 RC",Kategori="Silverlight"
      },
      new Makale()
      {
         Baslik="Expander Kontrolü",Kategori="Silverlight"
      },
      new Makale()
      {
         Baslik="Optional and Named Parameters",Kategori="C# 4.0"
      }
   };
   PagedCollectionView pcw = new PagedCollectionView(makaleler);
   pcw.GroupDescriptions.Add(new PropertyGroupDescription("Kategori"));
   dgMakaleler.ItemsSource = pcw;
}

Gördüğümüz gibi PagedCollectionView'ın GroupDescriptions koleksiyonu içerisine bir PropertyGroupDescription ekledik ve Kategori propertysine göre listeleme yapacağımızı belirttik. Şimdi uygulamayı çalıştıralım ve DataGrid'in görünümüne bakalım.

Evet ! Makaleler kategorilerine göre gruplanmış durumda. Tabi ki burada akla şu soru geliyor sadece tek bir propertye göre mi gruplayabiliyoruz  ? Hayır, GroupDescriptions koleksiyonu içerisine istediğiniz kadar property yazabilirsiniz. Böylece adete DataGrid içerisinde bir ağaç varmış gibi bir görünüm elde edebilirsiniz. Tabi bu kadar fazla propertye göre gruplama yapmak performansı biraz düşürecektir. ancak özellikle bu gruplama özelliğinin iş uygulamalarında oldukça faydalı olduğunu söyleyebilirim.

Görüşmek Üzere,

Tags:   ,
Categories:   Silverlight | Silverlight 3.0
Actions:   E-mail | del.icio.us | Permalink | Yorumlar (0) | Yorumlar RSSRSS Yorum Takibi
Share