31 Ekim 2007

PC Magazine'de İlk Yazım Yayınlandı

Geçtiğimiz aylarda blogumdan duyurusunu yaptığım ancak ufak bir karışıklık sebebiyle bir ay ertelenen yazım PC Magazine dergisinin Kasım ayında yayınlandı. Yazımın konusu "ASP.NET AJAX ile Web Uygulamaları Geliştirmek".

PC Magazine dergisinin kasım ayı içeriğini görmek için buraya tıklayabilirsiniz.

ASP.NET 2.0 Semineri (Sakarya Üniversitesi)

1 Kasım 2007 Perşembe günü 14:00-17:00 saatleri arasında Sakarya Üniversitesi'nde ASP.NET 2.0 semineri veriyor olacağım. Mühendislik Fakültesi D Blok'ta gerçekleşecek olan bu etkinliğe tüm Sakarya Üniversitesi öğrencilerini bekliyorum.

30 Ekim 2007

GridView'e Programatik Veri Bağlamada Sayfalama ve Sıralama İşlemleri

GridView'e programatik olarak veri bağladığında eğer sayfalama(paging) ve sıralama(sorting) işlemi yapılırsa gridin bu işlemlerini ne şekilde yapacağını da yine programatik olarak belirlemek gerekecektir. Sayfalama işlemi için PageIndexChanging, sıralama işlemi için ise Sorting evetleri kullanılmaktadır. Sayfalama işlemi için yazılacak event metodunda yapılacak işlemler gridin yeni sayfa indeksini belirlemek iken, sıralama işleminde durumlar biraz daha karışıktır. Sorting event'i tetiklendiğinde grid kontrolü her defasında sıralama yönünü Ascending olarak getireceği için kullanıcının tersten sıralama (Descending) işlemi yapması durumunda bizim ekstra kodlarla bu durumu ele almamız gerekecektir. Burada sıralama yönünü geçici olarak bir yerde depolamak gerekecektir ki; en uygun yerin ViewState olduğunu söyleyebilirim. Aşağıdaki kodlarda gridview kontrolünün sayfalama ve sıralama işlemlerini nasıl ele alabileceğimiz görüntülenmektedir. Yorum satırları size yardımcı olacaktır.


void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
// e parametresinden gelen index numarasını gridview'ın PageIndex'ine atayıp
// verileri tekrar bağlamak sayfalama işlemi için yeterli olacaktır
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}

void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
// İlk sort işlemi yapıldığında çalışır
if (ViewState["siralananKolon"] == null)
{
ViewState.Add("siralananKolon", e.SortExpression);
ViewState.Add("siralamaYonu", "ASC");
}
else
{
// Aynı kolon 2. kez sıralandığında çalışır
if (ViewState["siralananKolon"].ToString() == e.SortExpression)
{
if (ViewState["siralamaYonu"].ToString() == "ASC")
ViewState["siralamaYonu"] = "DESC";
else
ViewState["siralamaYonu"] = "ASC";
}
// Farklı bir kolon sıralandığında çalışır
else
{
ViewState["siralananKolon"] = e.SortExpression;
ViewState["siralamaYonu"] = "ASC";
}
}
// Veriyi tekrar yüklemeden önce sıralanacak alanı ve sıralama kriterini belirlemek gerekir.
// DataTable nesnesini tekrar elde edip, görünümünü(DataView) değiştiriyoruz
DataTable dt = (DataTable)GridView1.DataSource;
dt.DefaultView.Sort = ViewState["siralananKolon"].ToString() + " " + ViewState["siralamaYonu"].ToString();
GridView1.DataBind();
}

19 Ekim 2007

Bilkent Üniversitesi Seminerinin Ardından

Ankara'daki son günümde dün Bilkent Üniversitesi'ndeydim. Oldukça kalabalık bir katılımla gerçekleşen seminerde ASP.NET AJAX sunumunu gerçekleştirdim ve öğrencilerle Microsoft'un MCPD sertifikasyonu hakkında bilgilerimi paylaştım. Bu güzel günü yine Bilkent Üniversite'sindeki bir kafede geçen güzel ve hoş bir sohbet ile sonlandırdık. Etkinlikte emeği geçen Bilkent Üniversitesi MSP arkadaşım İlker ACAR'a, Çankaya Üniversitesi MSP arkadaşım Emrah YILMAZ'a ve Bilkent Üniversitesi'nden değerli arkadaşım Ömer ÇELİK'e teşekkürlerimi sunarım.

17 Ekim 2007

Türkiye'nin İlk Silverlight Canlı Yayınını Gerçekleştirdik

Bugün ODTÜ EDMER Akıllı Sınıf'ta gerçekleştirdiğimiz ASP.NET 2.0 semineri, aynı zamanda ülkemizde SilverLight teknolojisi kullanılarak gerçekleştirilen ilk canlı yayın olma özelliğini taşıyordu. Konuşmacı olarak katıldığım bu seminerde yaklaşık 3.5 saat boyunca ASP.NET 2.0 ile gelen birçok yeniliği katılımcı arkadaşlarla paylaşma fırsatını buldum. Normal bir seminerden veya webinerden farklı olarak onlarca insanında canlı yayında beni izlemesi aslında heyecan verici bir duyguydu. Seminerin ardından Türkiye'nin farklı yerlerinden aldığım bazı teşekkür mailleri de internet aracılığıyla uzağımızdaki birçok insanla bile bilgiyi paylaşabilmenin mutluğunu daha da arttırdı.

Bu etkinliğin gerçekleşmesinde ve ülkemizde özellikle görsel iletişim araçlarının internet ortamında kullanılmasının yayılmasında belki de başrol oynayan sevgili hocam Prof.Dr M.Yaşar ÖZDEN'e teşekkürlerimi sunuyorum. Yine ODTÜ'deki değerli hocam Halil ERSOY'a ve başta Murat DUMAN olmak üzere tüm ODTÜ MSP arkadaşlarıma yardımlarından dolayı teşekkürlerimi sunuyorum.

Seminer ile ilgili 2 fotoğrafı blogumda sizlerle paylaşmak istedim. Yine facebook üyesi olanlar bu linkten etkinlik ile ilgili fotoğraflara erişebilirler. Bu arada seminerin banttan yayınlarını 7 gün 24 saat boyunca BOTEBOnline sitesinden erişebilirsiniz. (Bağlantı hızınız ne kadar iyi ise, o kadar kaliteli görüntü elde edeceğinizi de belirtmek isterim)

15 Ekim 2007

ASP.NET 2.0 Semineri (ODTÜ-Ankara)

17 Ekim Çarşamba günü ODTÜ EDMER'de ASP.NET 2.0 seminerini gerçekleştiriyor olacağız. Seminer salonunda gerçekleşecek olan bu etkinlik aynı zamanda internetten, SilverLight teknolojisi kullanılarak canlı olarak yayınlanıyor olacak. Sınırlı sayıda katılımcının alınacağı bu etkinlik ile ilgili kayıt formu Salı gününden itibaren MS Akademik sitesinden açılacaktır. Semineri canlı olarak izlemek isteyenler 17 Ekim Çarşamba günü saat 13.30-17.30 arası bu linki kullanabilirler.

Bu seminer ile ilgili olarak başta ODTÜ BÖTE Bölüm Başkanı M.Yaşar ÖZDEN'e ve ODTÜ'deki MSP arkadaşlarım Murat Duman, Mustafa Ayaş ve Berk Gürakan'a teşekkürlerimi sunarım.

ASP.NET AJAX Semineri (Bilkent Üniversitesi-Ankara)

18 Ekim Perşembe günü Bilkent Üniversitesi öğrencileri ile ASP.NET AJAX semineri ile buluşuyor olacağım. Seminer ile ilgili detaylı bilgilerini soldaki afişten görebilir veya facebook üyesi iseniz bu linke göz atabilirsiniz.

Not: Yoğunluk ve yer sıkıntısı olduğu için Bilkent Üniversitesi öğrencilerine açıktır. Dışardan seminere katılmak isteyen arkadaşlar
ilker.acar@msakademik.net mail adresinden iletişime geçebilirler. Bilkent Üniversitesi'den MSP İlker Acar'a katkılarından dolayı teşekkür ederim.

11 Ekim 2007

ASP.NET 2.0 Semineri Ardından

Dün Microsoft İstanbul Ofisinde ASP.NET 2.0 seminerini gerçekleştirdik. Dört saat boyunca birçok örnek uygulama eşliğinde geçen ve katılımcılardan oldukça olumlu geri bildirimler aldığım sunumun ardından günü değerli hocam Nuri Çankaya ve değerli arkadaşım Daron Yöndem ile geçirdiğim hoş sohbetle bitirdik.

Seminer için hazırladığım sunum dosyasını ve örnek uygulamaları içeren dosyayı linklerden indirebilirsiniz.

ASP.NET 2.0 Sunumu
Örnekler

09 Ekim 2007

Microsoft Expression Webineri

Türkiye’nin ilk Expression webineri 11 Ekim 2007 Perşembe günü gerçekleşiyor. Microsoft’tan Mehmet Nuri Çankaya, nedirTV?com editörlerinden ve Deveload’dan Daron Yöndem’in konuşmacı olduğu webiner 2007 yılının en önemli tasarım aracı gelişmelerinden olan Expression Media ve Expression Encoder konularını içeriyor.

Bu önemli webinere katılmak istiyorsanız detaylı bilgileri http://daron.yondem.com/tr/ adresinde bulabilirsiniz.

05 Ekim 2007

10 Ekim Çarşamba - ASP.NET 2.0 Semineri

Birkaç haftalık aradan sonra seminerlere devam...

10 Ekim Çarşamba günü Microsoft İstanbul Ofisi, Marmara Salonu'nda ASP.NET 2.0 semineri veriyor olacağım. İlgili arkadaşların katılımlarını bekliyorum. Detaylı bilgilere ve kayıt işlemlerine http://www.msakademik.net/haberdetay.aspx?id=179 adresinden erişebilirsiniz.

03 Ekim 2007

Silverlight Webineri

Türkiye’nin ilk Silverlight webineri 4 Ekim 2007 Perşembe günü gerçekleşiyor. Microsoft’tan Mehmet Nuri Çankaya ve Deveload’dan ve nedirTV?com editörlerinden Daron Yöndem’in konuşmacı olduğu webiner 2007 yılının en önemli teknolojik gelişimlerinden olan Silverlight konusunu enine boyuna içeriyor.

Detaylı bilgilere http://www.msakademik.net/haberdetay.aspx?id=178 adresinden ulaşabilirsiniz.

02 Ekim 2007

Imagine Cup 2008-Türkiye Başvuruları Başladı

Microsoft tarafından öğrencilere yönelik olarak düzenlenen Imagine Cup yarışmasının bu yılki dünya finali Temmuz 2008’de Fransa’nın başkenti Paris'te gerçekleştirilecek. Yarışmanın Yazılım Tasarımı kategorisinde Türkiye'yi temsil edecek proje, Mayıs 2008’de düzenlenecek final sonrasında Microsoft Türkiye ve bilişim sektörünün yazılım alanında çalışan uzman kişilerinden oluşan jüri kurulu tarafından belirlenecek.

Bu yıl ki yarışma teması "Sürdürülebilir çevre için, teknolojinin kullanıldığı bir dünya düşleyin" olarak belirlenmiş. Yarışmaya katılmayı düşünen üniversite öğrencileri http://imaginecup.msakademik.net adresinden detaylı bilgilere erişebilirler.

26 Eylül 2007

Web Sayfalarını Temel Bir Class'tan Kalıtmak

Nesne yönelimli programlamanın (OOP) en temel yapı taşlarından biride kalıtımdır(inheritance). .NET mimarisinde her yerde olduğu gibi ASP.NET web uygulamalarında da gerek sayfa tiplerinde gerekse kontrollerde kalıtımın getirilerini ve etkilerini önemli derecede görüyoruz. Fakat eğitimlerimde ve kendi çevremde gördüğüm kadarıyla kalıtımın web sayfalarında en güzel uygulanabileceği noktalardan birisini kaçırıyoruz.

Şöyle bir senaryo üzerinden anlatmaya çalışacak olursam; bir projede kullandığımız birçok sayfanın ortak işlevleri olsun. Mesela bu sayfaların tamamında online kullanıcı sayısını görüntülemek isteyebiliriz. Yine sayfanın title bilgisini veritabanından dinamik olarak çekip görüntülemek isteyebiliriz. Normal şartlarda aklımıza gelen ilk yol tüm sayfaların code-behind kısmında bu işlemleri metot-property olarak tek tek yazmak olabilir. Yine bu işleri yapan bir class yazarak her sayfada class'ın nesne örneğini elde ederek bu işlemi instance üzerinden yürütmekte akla gelen bir diğer yol olabilir. Fakat benim bahsetmek istediğim yol bu iki yoldan da daha kolay ve pratik olacaktır.

Bildiğimiz gibi aspx uzantılı sayfalarımız System.Web.UI.Page sınıfından kalıtılarak elde edilir. Eğer kendimiz için bir sayfa prototipi çıkarır ve bunu System.Web.UI.Page sınıfından kalıtılan BasePage isminde bir class olarak oluşturursak, artık Default.aspx gibi bir sayfanın class'ını System.Web.UI.Page yerine BasePage gibi bir class'tan kalıtacak olursak istediğimiz işlemi gerçekleştirmiş olacağız. Anlaşılmadı mı? O zaman örnek kodlara bakalım.

BasePage.cs
public class BasePage: System.Web.UI.Page
{
public int OnlineKullaniciSayisi
{
get {
// Online kullanıcı sayısını bul ve return ile döndür
}
}
public BasePage()
{
// Tüm sayfalar ilk çalıştırıldığında yapılması istenilen değişiklikler
// constructor'da yapılabilir. Örneğin; sayfanın adını çözümle,
// veritabanına git ve sayfanın ziyaret edilme sayısını 1 arttır...
this.Title = "Dinamik oluşan başlık bilgisi...";
}
}

Default.aspx
public partial class Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Sitedeki online kullanıcı: " +
this.OnlineKullaniciSayisi.ToString());
}
}

Böylece artık tüm sayfaları BasePage isimli class'tan kalıtarak sayfalar ile ilgili temel ve ortak işlemleri daha kolay yönetebilir hale getirebilirsiniz.

24 Eylül 2007

ASP.NET 2.0 Tema(Theme) Kullanımında Bir Sorun ve Çözümü

Az önce Rick Strahl'ın blogunda okuduğum bir bilgiyi sizlerle paylaşmak istedim. Bildiğiniz gibi bir ASP.NET sayfasında tema(theme) kullandığınızda ilgili App_Themes alt klasörünün içerisindeki css ve skin dosyalarındaki stiller sayfanıza uygulanır. Fakat bu stilleri sayfa içerisine ekstra css kodları ekleyerek değiştirmeye çalıştığınızda, eklenen css kodları maalesef temadan gelen css kodlarını override edemediği için, yeni stilleri sayfaya uygulamada sıkıntı yaşarsınız. Eğer böyle bir sıkıntı ile karşılaşırsanız; eklenecek css kodunu sayfanın form etiketi içerisine yerleştirmek bu sorunu aşmanıza yardımcı olabilecektir.

Rick Strahl'ın bu konuyla ilgili ASP.NET and Styles & CSS Embedding yazısını okumak için buraya tıklayabilirsiniz.

22 Eylül 2007

Ajax View JavaScript Instrumentation Proxy

Microsoft'un web geliştiriciler için sunduğu bu araç ile hazırladığınız web uygulamalarında kullanılan JavaScript kodlarının işleyişini ve performansını test edebilirsiniz. Özellikle AJAX geliştiricilerin ilgisini çekeceğini düşündüğüm kullanışlı bir araç. Uygulama sadece performans ile ilgili istatistikleri değil, aynı zamanda uygulamada karşılaşılan fakat tarayıcı tarafından önemsenmeyen JavaScript hatalarını da listeliyor.

Kullanımı ilk bakışta biraz karışık gibi görünsede, bu linkteki 515 kb.lık bir dosyayı bilgisayarınıza yükleyip, bu linkteki dökümanı da adım adım takip edecek olursanız izleme işlemlerinin sonuçlarına kolay bir şekilde erişebilirsiniz. Unutmadan; programla işiniz bittiğinde Internet Explorer'ın proxy ayarlarını düzeltmeyi unutmayın.

12 Eylül 2007

.NET ile Programlamaya Giriş Seminerine Davetlisiniz

15 Eylül Cumartesi günü İstanbul-Bakırköy'de .NET ile Programlamaya Giriş semineri veriyor olacağım. Temel olarak .NET ortamını tanımak ve bu ortamda hızlı uygulama geliştirmek (Rapid Application Development) üzerine konuşma yapacağım bu seminere özellikle programcılığa yeni başlayan veya başlamayı düşünen arkadaşların katılımlarını bekliyorum.

Ayrıntılı bilgi ve kayıt işlemi için buraya tıklayabilirsiniz.

09 Eylül 2007

PC MAGAZINE'de Yazmaya Başlıyorum

Ekim ayı itibariyle PC MAGAZINE dergisinde yazmaya başlıyorum. Bundan sonra bir aksilik çıkmazsa ASP.NET konusundaki bilgilerimi sizlere PC MAGAZINE dergisi aracılığıyla da ulaştırıyor olacağım. İlk yazımın başlığı ASP.NET AJAX ile Web Sayfaları Geliştirmek olacak.

Bu olayda her türlü yardımlarından ve desteğinden dolayı değerli Ali Rıza BABAOĞLAN'a teşekkürlerimi blogumdan da sunmak isterim.

05 Eylül 2007

INETA Türkiye Toplantısı

Bugün INETA (International .NET Association) Türkiye Toplantısını Microsoft İstanbul'da gerçekleştirdik. nedirTV?com Topluluk Lideri olarak benimde bulunduğum bu toplantıyı INETA MEA Bölge Başkanı Aykut Taşdelen ve INETA Türkiye Başkanı Bülent Sözge'nin katılımlarıyla gerçekleştirdik. Toplantıda INETA'ya üye olan topluluklar olarak önümüzdeki dönemlerde yapabileceğimiz organizasyonlarla ilgili olarak uzunca konuştuk ve tartıştık. Önümüzdeki günlerde eminim ki bizleri oldukça güzel organizasyonlar bekliyor olacak.

04 Eylül 2007

Substitution ile Önbellekleme İşlemleri

ASP.NET 2.0 ile birlikte gelen yeni kontrollerden biri olan Substitution kontrolünü önbellekleme işlemlerinde kullanabiliyoruz. Tamamı önbellekten getirilen bir sayfanın içerisinde sadece belirli bir alanın dinamik şekilde oluşturulması için bu kontrolü kullanabiliriz. Aşağıdaki görsel derste Substitution kontrolünün nasıl kullanabileceğini görebilirsiniz.


ASP.NET 2.0'da Substitution ile Önbellekleme İşlemleri

Türkiye'deki ilk SilverLight Uygulaması: SilverLightTV

Değerli arkadaşım Tayfun AKÇAY'ın sitesinde gördüğüm ve ilgiyle okuduğum haberi sizlerle paylaşmak istedim. Ankara'dan uzun süredir uzak kaldığım için bu tip gelişmelerden ancak 3. şahıs olarak haberdar olabiliyorum. Değerli hocam ODTÜ BÖTE Bölüm Başkanı Prof.Dr. M.Yaşar ÖZDEN'in emekleri ile hazırlanan ve Türkiye'deki ilk SilverLight örneği olma özelliğini taşıyan bu projeye buradaki linkten ulaşabilirsiniz. İlgili sayfada SilverLight plugin'i aracılığıyla 24 saat kesintisiz olarak NTV kanalını canlı yayında izleyebilirsiniz.