17 Şubat 2008

SiteMap Dosyasında Kendi Bilgilerimizi Saklamak

Site navigasyon işlemlerinde kullanmak için oluşturduğumuz sitemap dosyaları bildiğiniz gibi site içindeki sayfaların hiyerarşik yapılarını saklamaktadır. url, title ve description gibi sayfa hakkında detaylı bilgileri içerisinde saklayan siteMapNode düğümlerinde istersek kendimize ait nitelikler tanımlayarak özel bilgileri de saklayabiliriz. Nasıl mı?

Olayı basite indirgemek için site haritamızda sadece 4 kategori bulunsun: ASP.NET, ADO.NET, C# ve SQL Server. Normal durumlarda bu sayfalar hakkında url ve title, bazen de description bilgilerini saklarız. İstiyoruz ki bu 4 bölümün editörlerini de site haritası dosyasında saklayalım. Yapılacak tek işlem ilgili düğümler içerisine Editor="Veli" gibi tanımlamalar yapmak olacaktır. Bir sonraki adımda sayfa içerisinden bu bilgileri okumakta yine bu kadar kolay olacak! Aşağıdaki örnekte web.sitemap dosyası ve bir sayfadan bu bilgiyi nasıl elde edeceğimiz görülmektedir.

Web.sitemap
<?xml version="1.0" encoding="windows-1254" ?>
<siteMap>
   <siteMapNode url="Default.aspx" title="Anasayfa">
     <siteMapNode url="Aspnet.aspx" title="ASP.NET" description="" Editor="Uğur UMUTLUOĞLU" />
     <siteMapNode url="Adonet.aspx" title="ADO.NET" description="" Editor="Burak BATUR" />
     <siteMapNode url="Cs.aspx" title="C#" description="" Editor="Emrah USLU" />
     <siteMapNode url="SqlServer.aspx" title="SQL Server" description="" Editor="Bülent SÖZGE" />
   </siteMapNode>
</siteMap>


Sablon.master.cs
Response.Write(SiteMap.CurrentNode["Editor"]);

12 Şubat 2008

web.config Dosyasından URL ReWriting

URL ReWriting (sayfa adresini yeniden oluşturma) işlemi özellikle sayfalarımızda QueryString'leri kullanırken sıklıkla başvurmak istediğimiz bir işlemdir. Bu işlem karmaşık olan sayfa adresleri daha okunur ve sade hale getireceği gibi arama motorlarının sitemizdeki sayfaları daha verimli şekilde yakalamasını da sağlar. URL ReWriting'i uygulamanın birçok yolu bulunmaktadır. Kullanım bakımından en kolay yollardan biri de web.config dosyası ile bu işlemi gerçekleştirmektir. web.config dosyasında <system.web> düğümü içerisinde açacağımız <urlMappings> düğümü ile bu işlemin kolay şekilde yapılmasını sağlayabiliriz. Örneğin yazarların bilgilerini görüntüleyen bir sayfada içerik QueryString'den alınan bir veriye göre oluşsun. Sayfa arka planda aslında Yazar.aspx?isim=ugur şeklinde çalışıyor fakat biz adresin Ugur.aspx şeklinde görüntülenmesini istiyoruz. web.config dosyası içerisine ekleyeceğimiz aşağıdaki kod parçaları işimizi görecektir. mappedUrl niteliği sayfanın gerçek URL'ini, url niteliği ise görüntülenmesi istenilen URL'ini belirler. Yani Ugur.aspx gibi bir sayfaya istek geldiğinde aslında böyle bir sayfa olmayacaktır fakat adres kısmında bu URL görünecek ve arka planda Default.aspx?isim=ugur URL'i çalıştırılacaktır.


<configuration>
   <system.web>
      <urlMappings enabled="true">
         <add url="~/Ugur.aspx" mappedUrl="Default.aspx?isim=ugur" />
         <add url="~/Emrah.aspx" mappedUrl="Default.aspx?isim=emrah" />
         <add url="~/Burak.aspx" mappedUrl="Default.aspx?isim=burak" />
      </urlMappings>

      ...
      ...
   </system.web>
</configuration>


url niteliğinde relative adres belirlemek zorunludur. Yani çağrılacak URL'in tam yolunu ~/ şeklinde belirlemek gerekecektir. Bu işlemin çok az da olsa performans kaybına sebep olacağını da unutmamak lazım!

31 Ocak 2008

Katılamadığım Yazgelistir.com Toplantısı ve Ödülüm

Geçtiğimiz günlerde İstanbul'da yazgelistir.com editörleri ve yazarlarının katıldığı bir toplantı gerçekleştirildi. Malumunuz askerde olduğum için toplantıya katılamadım ama aldığım güzel bir haber ile de üzüntüm biraz olsun azaldı. Yazgelistir.com tarafından yazdığım makaleler ile site içeriğine 2007 yılında yaptığım katkılarda dolayı yanda gördüğünüz ödülü almışım. Amacımız sahip olduğumuz bilgileri insanlarla paylaşabilmek. Bunun sonucunda insanlardan aldığımız teşekkür mailleri ve bu tip ödüllerde bizleri gerçekten sevindiriyor ve motivasyonumuzu arttırıyor. Ödülüm şu anda değerli dostum Burak Batur'un evinde, yani emin ellerde!

Askerde iken ödül almakta başka bir duyguymuş onu da yaşamış olduk.

25 Ocak 2008

Elazığ'dan Sevgilerle

Farklı bir şehire gidiş sebebim genelde seminerler olurdu ve seminerlerin nasıl geçtiği ile ilgili haberlerimi blogumu takip edenlerle paylaşırdım. Ama şimdi askerdeyiz. Eee asker ocağında da .NET semineri verecek halimiz yok değil mi?

Bugün 25 Ocak 2008 ve Şafak 114. Usta birliğinde Elazığ 8. Kolordu Komutanlığı Askeri Mahkemesi'nde vatani görevime devam ediyorum. Soranlar olursa halim, vaktim, keyfim... yerinde. Burada ara sıra da olsa interneti kullanabilme şansım belki de askerliğimin en keyifli yanı. En azından yazılan bazı makaleleri ve yazılım dünyasındaki yenilikleri takip edebilme, eş-dost ile mesajlaşabilme şansı bulabiliyorum. Benden haberler şimdilik bu kadar. En yakın zamanda teknik içerikli yazılarla, makalelerle ve seminerlerle tekrar görüşmek dileğiyle..

10 Aralık 2007

Kısa Bir "Veda"

Zor bir veda yazısı ama en güzel tarafı "elveda yazısı" olmaması. Anlaşılacağı üzere askerlik görevim ile ilgili bir veda yazısı okuyorsunuz. 12 Aralık Çarşamba günü Elazığ'da birliğime teslim olacağım. Jandarma-Er olarak yapacağım kısa dönem askerlik görevim süresince (5 ay 5 gün boyunca) sizlerle olamayacağım. Allah nasip ederde sağ salim dönersek kaldığımız yerden devam edeceğiz.

Bu sabah askerliğimin nereye çıktığın heyecanla beklediğim uzun süre içerisinde geçmişte neler yapmışım diye bir bakındım ve ilginç istatistiklerle karşılaştım. Şöyleki bugüne kadar;
- En az 50'si teknik içerikli olmaz üzere 130'un üzerinde blog postuyla 25 binin üzerinde ziyaretçiyle,
- 18 seminer ve 9 webiner ile 800'ün üzerinde kişiyle,
- Yaklaşık 20 makale, 17 video ve 2 dergi yazım ile yazgelistir.com, msakademik.net, turkaspx.net, nedirtv.com gibi sitelerde ve PC Magazine dergisinde sayısı pekte az olmayan okur ve izleyenle buluştum, bilgiyi paylaşmaya, paylaştıkça arttırmaya çalıştım.

Umarım büyük haz alarak yaptığım bu işlere askerden döndüğümde de aynı şekilde devam edebilirim.

Tekrar görüşmek dileğiyle, bana ve tüm Mehmetçiklere hayırlı teskereler...

ASP.NET 3.5 Extensions CTP Preview Resmen Duyuruldu

Geçtiğimiz günlerde blogumda hem duyurusunu, hem de detaylı açıklamalarını yaptığım ASP.NET 3.5 Extensions paketinin CTP Preview sürümü bugün resmen duyuruldu. Detaylı bilgiler ve download işlemi için bu linki kullanabilirsiniz.

Bu paket ile ilgili kurulumları yapmayı ve ilk izlenimlerimi de sizlere iletmeyi çok isterdim ama yarın akşam askerim. Askerden sonra RTM sürümünün izlenimlerini sizlere iletmek dileğiyle :)

05 Aralık 2007

ASP.NET 3.5 Extensions

.NET Framework 3.5 ve beraberinde ASP.NET 3.5 geçtiğimiz günlerde resmen duyurdu. C# tarafında LinQ gibi önemli yenilikler geliyor olsa da web uygulamalarında çok büyük yeniliklerin olmadığını da söyleyebiliriz. Ama 3.5 olayı burada bitti sanmayın zira ASP.NET ekibi çok yakın bir zamanda önemli bir paket ile bombayı patlatacak gibi: ASP.NET 3.5 Extensions. Aslında Microsoft bunun bir benzerini ASP.NET 2.0'ın ardından ASP.NET AJAX Extension'ı duyurarak yapmıştı. Şimdi de benzeri bir strateji ile geliyorlar. AJAX ancak 3.5 sürümünde mimariyle bütünleşti, belki bu son yenilikler de ASP.NET 4.0 (böyle bir sürüm olur mu bilinmez) ile bütünleşik gelecektir. Nacizane yorumlarımdan sonra gelelim ASP.NET 3.5 Extension'larına. Sevgili Scott Guthrie hocamızın .NET Web Product Roadmap başlıklı yazısından da gerekli bilgileri edinebilirsiniz.

Aslında ASP.NET 3.5 Extensions içerisinde daha önceden duyurulan ASP.NET Futures paketindeki kontroller ile ASP.NET MVC Framework'ün olduğunu söylesem pek te yanlış olmaz. ASP.NET 3.5 ile ilgili geçen ay yazdığım yazıda ASP.NET Futures paketi ile gelen kontrollerin eklenmediğinden şikayetçi olmuştum hatırlayacağınız gibi. Sanırım benim ve çoğu web programcısının sesini duymuşlar :) Aşağıda bizleri bekleyen yenilikleri hakkında kısa bilgileri bulabilirsiniz.

ASP.NET MVC Framework: Bu kısmı çok uzun anlatmama gerek yoktur sanırım. Zira bir önceki yazımın içeriği tamamen bu uygulama desenini anlatıyor. MVC (Model View Controller) adı verilen uygulama deseni ile uygulamanın üç ayrı katmanda yazılması yoluna gidiliyor. Model kısmında veri ile ilgili nesneler (DataTable, DataSet ve kendi veri nesnelerimiz), View kısmında User Interface'lerimiz (aspx, ascx, master sayfalar) Controller kısmında ise kullanıcının View ve Model kısmındaki nesneler ile etkileşimini sağlayacak class'larımızın bulunmasını öngören bu model yavaş yavaş günlük hayatımıza girecek gibi.

ASP.NET AJAX Tarafındaki Geliştirmeler: Futures paketinden tanıdığımız History kontrolü bu paketin içerisinde olacak. AJAX sayfalarında tarayıcıdaki ileri-geri gitme problemini çözecek olan bu kontrol asenkron postbackler esnasında sayfanın URL kısmını değiştirerek tarayıcının değişen sayfa içeriklerini geçmişine kaydetmesini sağlıyor. Umarım bu kontrol aynı zamanda arama motorlarının asenkron postback ile değişen sayfa içeriklerini de yakalamasını sağlayabilir. Ya da ilerleyen günlerde ASP.NET ekibi bu yönde geliştirmeler yapabilir.

Dinamik Veri (Dynamic Data) Desteği: Yine Futures paketinden tanıdığımız bir özellik. DynamicAutoData, DynamicList, DynamicNavigator, DynamicRssLink ve adını hatırlayamadığım bazı veri kontrolleri ile bir veritabanında yapacağımız Select, Insert, Update, Delete gibi işlemleri neredeyse kod yazmadan gerçekleştirebilmemizi sağlıyor. .NET Framework 3.5 ile gelen Database Markup Language (dbml) dosyaları ile dinamik veri kontrollerini birlikte düşününce ve üstüne MVC Framework'ü de katınca bu yeniliklerin MVC'nin Model katmanını oluşturacağını söyleyebiliriz.

SilverLight Desteği: SilverLight artık ASP.NET ile giderek bütünleşiyor. Tahminen yine Futures paketindeki Media ve XAML kontrollerinin ekleneceği bu pakette ASP.NET ile SilverLight'ın entegrasyonunun daha da kolaylaşacak. Yani daha interaktif daha zengin içerikli sayfalar geliyor.

ADO.NET Veri Servisleri (Data Services): ADO.NET Entity Framework adı verilen bu pakette ASP.NET 3.5 Extensions ile birlikte duyurulacak. Object Relation Mapping (ORM) desteği ile daha da güçlenen .NET Framework 3.5'teki veri işlemleri aslında bu framework altında toplanıyor gibi. Artık veri ile ilgili her türlü işlemi oluşturacağımız veya SqlMetal aracı ile oluşturulacak class'lar ile gerçekleştireceğiz gibi...

Yine ASP.NET Futures'la gelen IronPhyton ve Managed JScript gibi dinamik diller ile ilgili olarak Scott Guthrie'ın postunda bir bilgi göremedim ama bir soruya yazdığı yorumda bu konuda da çalışmaların olduğunu belirtmiş. Bu konuyla ilgili de yenilikler gelecek gibi.

03 Aralık 2007

ASP.NET MVC Nedir?

Son zamanlarda yabancı kaynakları takip ediyorsanız eminim ki MVC harflerini ASP.NET'in hemen yanında sıklıkla görmüşsünüzdür. MVC yani Model View Controller. MVC mimarisi aslında daha önceden de duyulan bir tasarım deseniydi (design pattern) programlama dünyasında. Bu yaklaşımdaki temel mantık bir web projesini üç temel parçaya bölmek ve yapılacak işleri bu parçalar üzerinden yürütmektir. Hazırladığımız projelerde sıklıkla kullandığımız uygulamayı iş katmanı ile veri katmanı olarak ayrı parçalara bölmeyi buradaki yaklaşım ile benzeştirebiliriz. Aslında temel amaç uygulamayı işe yarar belirli amaçları olan parçalara bölmek ve bir parçanın değişiminden diğer parçaların etkilenmesini engellemektir.

MVC uygulamanın Model, View ve Controller olarak üçe ayrılmasını benimseyen bir tasarım desenidir.

- Model veri ve durum bilgilerini taşır. Burası DataTable, DataSet ve entity katmanımızdaki sınıfların bulunduğu bileşendir.

- View uygulamanın arayüzlerinin bulunduğu bileşendir. Master sayfalar, aspx ve ascx gibi kullanıcının görüntüleyeceği dosyalar bu kısımda yer alır.

- Controller ise arayüzler arasındaki etkileşimi sağlayan, veri nesneleri üzerinde değişiklik yapılmasını sağlayan bileşenlerdir. İşte burada benim çok ilgimi çeken bir yenilik çıkıyor karşımıza. Controller katmanındaki sınıflar aracılığıyla etkin URL Mapping işlemi yaparak artık tarayıcı üzerinden sayfalara istek yapmak yerine nesnelere istekte bulunabiliyoruz. Yani URL üzerinden tarayıcıda görüntülenecek nesnenin render edilmesi sağlanabiliyor.


Sol kısımdaki resimde bu desenin bir projeye nasıl uygulandığının basit bir örneğini görebilirsiniz. MVC tasarım deseni, önümüzdeki yıllarda bir ASP.NET programcısının hayatına girecek önemli kavramlardan biri olacak gibi. Zira Microsoft ASP.NET yazılım geliştirme grubunun önümüzdeki günlerde çıkarmayı düşündüğü ASP.NET 3.5 Extensions ile birlikte resmen web uygulamarına dahil edilecek bu desen. Üzerinden daha detaylı araştırmalar ve çalışmalar yapılması gereken konular. Ben askerde iken eminim ki ASP.NET 3.5 Extensions ve ASP.NET MVC konularında birçok teknik yazı yazılacaktır. İnşallah dönüşte keyifle okuyabilirim.

Daha detaylı bilgiler için Scott Guthrie'nin blogundaki şu başlıkları okuyabilirsiniz:
ASP.NET MVC Framework
ASP.NET MVC Framework (Part 1)
ASP.NET MVC Framework (Part 2): URL Routing

30 Kasım 2007

PC Magazine Aralık Sayısındaki Yazım

pcmagazine_aralikPC Magazine Aralık sayısı bayilerde!

Bu sayıda da ASP.NET AJAX ile Resim Slayt Gösterisi Hazırlamak konulu bir yazı hazırladım. UpdatePanel ve Timer kontrolünü kullanarak sıfırdan bir resim slaytının nasıl hazırlanacağı konusundaki bu yazımı ve birbirinden değerli yazıları okumak için PC Magazine'in Aralık ayını satış noktalarından temin edebilirsiniz. Bu ay ki sayıda yazı dışında küçükte bir süprizim var! Dergi ile birlikte temin edeceğiniz DVD'de ASP.NET ile ilgili hazırlamış olduğum üç tane görsel derste bulunmakta. Kaçırmayın derim :)

Aralık sayısının içeriğini görmek için buraya tıklayabilirsiniz.

21 Kasım 2007

Visual Studio 2008 ve ASP.NET 3.5 Sunumları

Dün Fatih Üniversitesi'ndeki seminer ve bugün düzenlediğimiz webinerleri başarılı bir şekilde tamamladık. Katılımların yoğun şekilde gerçekleştiği bu etkinliklerde ilk kez Visual Studio 2008 ve ASP.NET 3.5 ile birlikte gelen yenilikleri katılımcılarla paylaştık. Önümüzdeki günlerde diğer üniversitelerde de bu tip etkinlikleri düzenlemeye devam edeceğiz.

Aşağıda seminerlerde kullandığımız sunum dosyalarını bulabilirsiniz.

Visual Studio 2008
ASP.NET 3.5

Aşağıda da Fatih Üniversitesi seminerinden iki kare bulunmakta.

19 Kasım 2007

Visual Studio 2008 ve ASP.NET 3.5 Webineri

21 Kasım 2007 Çarşamba günü saat 10.00 - 12.00 arasında internetten canlı olarak yayınlanacak webinere (web seminerine) davetlisiniz. Türkiye'de yapılacak bu ilk Visual Studio 2008 ve ASP.NET 3.5 webineri ile bu ayın sonunda çıkacak yeni teknolojileri görme fırsatı bulabilirsiniz.

Webiner ile ilgili bilgiler aşağıdadır:

Konuşmacılar:
Burak BATUR (MS Akademik Editörü)
Uğur UMUTLUOĞLU (MS Akademik Editörü)

Tarih: 21 Kasım 2007 Çarşamba
Saat: 10.00 - 12.00

Katılım Adresi: https://www112.livemeeting.com/cc/microsoft/join?id=MSAkademik_VS2008&role=attend&pw=MSAkademik

Meeting ID: MSAkademik_VS2008
Attendee Entry Code: MSAkademik

Fatih Üniversitesi Seminerleri

20 Kasım 2007 Salı günü ben, Burak Selim Şenyurt ve Burak Batur gerçekleştireceğimiz sunumlarla Fatih Üniversitesi öğrencileriyle birlikte olacağız. Bu etkinliğin belki de en önemli yönü Türkiye'de Visual Studio 2008 ve ASP.NET 3.5 konularında yapılacak ilk seminer olması!

Saat 12.00-15.30 arasında gerçekleşecek seminerlerin programları aşağıdadır.

12.00 - 13.00: Yazılımda Kariyer (Burak Selim ŞENYURT)
13.00 - 13.50: Visual Studio 2008 (Burak BATUR)
14.00 - 15.30: ASP.NET 3.5 (Uğur UMUTLUOĞLU)

Fatih Üniversitesi İstanbul Büyükçekmece Kampüsünde Kırmızı Salon A-351'de gerçekleşecek oturumlara katılımlarınızı bekliyoruz.

14 Kasım 2007

Gençsen Geleceksin


GNCTRKCLL ve Microsoft İşbirliğiyle Türkiye Teknoloji Turu Başladı !!!
Gençler ve teknoloji severlerin geleceğin teknolojilerine vizyonel bir bakış açısı ile bakmalarını sağlamayı amaçlayan yarım gün sürecek etkinlikler içerisinde mobil teknolojilerden, internetin geleceğine kadar geniş bir yelpazedeki içerik, konusunda uzman konuşmacılar tarafından gerçekleştirilecektir. 30 farklı etkinlik siz teknolojistleri bekliyor...

12 Kasım 2007

Static Metotlarla AJAX Sayfalarını Daha da Hızlandırın!

ASP.NET AJAX istemci ve sunucu merkezli çalıştığı için mimarisi gereği sayfada asenkron postback işlemi başlatsak dahi sunucu tarafında sayfamızın yaşam döngüsü tam olarak çalışmakta ve sayfa baştan itibaren üretilmekte, fakat istemciye sadece UpdatePanel'in içeriği gönderilmektedir. Bu işleyiş aslında kötü bir durum gibi gözükse de ASP.NET sayfa mimarisi açısında gerekli bir işlemdir ki; çoğu noktada faydalarını da görebiliriz. Olayın diğer tarafına bakacak olursak sayfanın sunucu tarafında baştan üretilmesi biraz da olsa yavaşlığa sebep olacaktır. Eğer sayfanızda bir kontrolün içeriğini asenkron olarak güncellemek ve bu işlemi hızlı bir şekilde yapmak istiyorsanız sunucu tarafında çalışacak static metotlar oluşturarak istemci tarafında hazırlayacağınız basit JavaScript fonksiyonlarıyla da asenkron güncelleme işlemini gerçekleştirebilirsiniz. Metot static olduğu için sunucuda sayfanın nesne örneği üretilmeden de çağrılabilir bir metot olacaktır. Metot ile ilgili en önemli husus ise System.Web.Services isim alanı altındaki WebMethod niteleyici (attribute) sınıfını uygulaması gerekeceğidir. Böylece istemcide hazırlanan JavaScript fonksiyonu bu metodu asenkron olarak çağırabilecektir. Metot HTML içeriği güncelleyeceği için string değer döndürmelidir. Aşağıda sayfamızın code-behind kısmına yazabileceğimiz örnek metot bulunmaktadır.

[System.Web.Services.WebMethod]
public static string KareKok(int sayi)
{
    return Math.Sqrt(sayi).ToString();
}

Gelelim istemci tarafında yapacaklarımıza. Burada en ilgi çekici durumlarımızdan birisi UpdatePanel'e ihtiyaç duymadan da bu işlemi yapabilmemiz. Bir diğer ayrıntımız ise ScriptManager ile ilgili. Sunucu tarafında yazılmış WebMethod attribute'unu uygulayan static metodu çağırabilmemizi sağlayan PageMethods isimli JavaScript fonksiyonunu kullanabilmek için ScriptManager'ın EnablePageMethods özelliğini true olarak ayarlamamız gerecektir. Yine istemci tarafında çalışacağımız için sunucu kontrolleri yerine HTML kontrolleri kullanmamız da herhangi bir sakınca yok. İstemci tarafında hazırladığım kodları aşağıda görebilirsiniz.

<head runat="server">
    <title>Untitled Page</title>
    <script language="javascript">
        function AsenkronMetotCagir()
        {
            // Sunucudaki static metodu çağırıyoruz. Sonucu IslemBitti metoduna iletiyoruz
            PageMethods.KareKok(form1.txtSayi.value, IslemBitti);
        }

        function IslemBitti(deger)
        {

            // İşlemin sonucunu sonuc adındaki span etiketine yazdırıyoruz
            document.getElementById('sonuc').innerHTML = deger;
        }

    </script>
</head>
<body>
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
    <input type="text" id="txtSayi" />
    <input type="button" value="Karekök Bul" onclick="AsenkronMetotCagir();" />&nbsp;<br />
    <span id="sonuc"></span>
</form>
</body>

Bu şekilde sunucu tarafında sayfanın baştan üretilmesine gerek kalmadan çok daha hızlı bir şekilde asenkron güncelleme işlemleri yapabilmekteyiz. Buradaki en büyük sıkıntılarımızdan birisi ise HTML kodunu kendimizin oluşturması gerekeceğidir. Eğer gridview, detailsview gibi kompleks bir kontrolün çıktısını elde etmek istiyorsak ilgili kontrolleri programatik olarak oluşturup RenderControl metodu ile de HTML çıktılarını istemciye yine static metot aracılığıyla gönderebiliriz.

09 Kasım 2007

Yazılım Dünyasında Yeni Bir Soluk: turkaspx.net

Geçtiğimiz günlerde değerli iş arkadaşlarım ve hocalarım Burak Selim Şenyurt, Emrah Uslu, Burak Batur ve ben www.turkaspx.net adresinde yeni bir günlük açtık. Yoğun bir çalışma sonucunda blogumuz yeterli içeriğe kavuştu ve artık buradan da sizlere duyurusunu yapmak istedim.

turkaspx.net olarak amacımız başta ASP.NET olmak üzere Microsoft teknolojileri hakkında teknik konularda bilgi birikimimizi ve deneyimlerimizi sizlerle paylaşmaktır. Blog sitemizde paylaşacağımız konularla kısa bir süre içerisinde Türkçe içerikli dev bir arşiv oluşturmayı, bir .NET yazılımcısının ihtiyacı olabilecek bir çok konuyu bu çatı altında toplamayı hedefliyoruz.

Yazılım geliştiriciler için faydalı bir kaynak olması dileğiyle, www.turkaspx.net hayırlı uğurlu olsun diyorum.

06 Kasım 2007

Visual Studio 2008 ve .NET Framework 3.5 Bu Ay Resmen Duyruluyor

Ve beklenen haber resmen duyruldu. Microsoft, kasım ayı içerisinde Barcelona'da gerçekleşecek olan Microsoft TechEd Developers 2007 etkinliğinde kod adı Orcas olarak bilinen Visual Studio 2008 ve .NET Framework 3.5 sürümlerini resmen duyuracağını ve release edeceğini duyurdu. Ayrıntıları bu linkteki haberden okuyabilirsiniz.

ASP.NET 3.5 ile Gelen Yenilikler

Önümüzdeki günlerde resmen duyrulacak olan Visual Studio 2008 ve .NET Framework 3.5 ile birlikte ASP.NET'te 3.5 sürümüne ulaşmış olacak. Öncelikli olarak şunu belirtmeliyim ki bu sürümde ASP.NET 1.1'den ASP.NET 2.0'a geçişteki gibi köklü yenilikler olmayacak. Fakat gelen yenilikler içerisinde AJAX ve LINQ'nun olduğunu belirtecek olursak aslında bizi oldukça önemli yeniliklerin de beklediğini söyleyebilirim. Dikkatimi çeken noktalardan biri ASP.NET Futures paketi ile gelen bazı kontrollerden şu an için Microsoft'un sitesinde bahsedilmemesiydi. Önceki postumda yer alan .NET Framework 3.5 Namespace ve Class'ları listesinde de yer almayan bu kontroller sanırım başka bir bahara bırakıldı. ASP.NET 3.5 ile gelecek yenilikleri aşağıdaki başlıklarla sizlere aktarmaya çalışacağım.

ASP.NET AJAX Entegrasyonu
ASP.NET AJAX, ASP.NET ortamında hızlı ve kolay bir şekilde AJAX uygulamaları geliştirmemizi sağlayan ücretsiz bir AJAX framework'üdür. ASP.NET 2.0'ın ardından duyrulan ve bu yılın başında resmi sürümü çıkarılan AJAX Extension'ları ASP.NET 3.5 ile mimariyle bütünleşik şekilde geliyor. Visual Studio 2008'de açılan ASP.NET 3.5 web uygulamasında AJAX Extension kontrollerini kullanarak hızlı şekilde AJAX uygulamaları geliştirebiliyoruz. Bu sürümü ile birlikte bazı eksiklikler ve sorunlar giderilerek artık ASP.NET AJAX'ın sunucu kontrolleriyle tam uyumlu şekilde çalışması da sağlanıyor. Visual Studio 2008 ile birlikte Control Toolkit'te yer alan kontrollerin varolan sunucu kontrollerine çok kolay şekilde entegre edilebilmesi de işimizi kolaylaştıracak bir yenilik olarak göze çarpıyor.

LINQ (Language Integrated Query)
.NET Framewrok 3.5 ile birlikte artık web uygulamalarında da Linq hayatımıza girecek. Linq dil ile bütünleşik olarak sorgulamalar yapmamızı sağlayan bir query şeklidir diyebilirim. Veritabanında SQL query'leri kullanarak nasıl sorgulamalar yapıyor ve sorgu sonucunu elde edebiliyorsak, artık C# veya VB.NET gibi bir dil ile de uygulama içerisindeki bir nesnenin içeriği ile ilgili SQL sorgu cümlelerine benzer şekilde sorgulamalar gerçekleştirebileceğiz. ASP.NET 3.5 ile gelen kontrollerden biri olan LinqDataSource kontrolü de bu tip sorgulamaların sonucunu bir veri kontrolüne (GridView, DataList gibi) bağlayabilmemizi sağlıyor.

ListView ve DataPager Kontrolleri
LinqDataSource
kontrolü dışında ListView ve DataPager adında iki yeni kontrol daha geliyor. ListView veri ekleme, güncelleme, silme, sayfalama gibi işlemleri yapabilen ve GridView kontrolüne oldukça benzer bir kontrol. GridView'daki en büyük sıkıntılarımızdan biri görüntülenecek olan verilerin HTML arayüzlerini tasarlamakta karşılaştığımız sorunlardı. ListView kontrolü ise yapısındaki template'ler aracılığıyla verilerin görüntüleneceği arayüzün HTML kodlarını dilediğimiz gibi oluşturabilmemizi sağlıyor. DataPager kontrolü ise ListView ile yapılan işlemlerde kayıtların esnek şekilde sayfalandırılması işleminde kullanılıyor. Bu kontrolün yaptığın temel işlemin sayfalama kısmının ne şekilde görüntüleneceği ve çalışağını belirlemek olduğunu söyleyebilirim. Örneğin sayfa numaralarının görüntüleneceği kısma bir TextBox kontrolü ekleyip yazılan numaradaki sayfaya gidilmesi işlemini DataPager kontrolü ile oldukça kolay şekilde gerçekleştirebiliyoruz.

Web Servislerinde WCF Desteği
Web servisleri artık .NET Framework 3.0 ile gelen WCF (Windows Communication Foundation) desteği ile geliştirilebiliyor. JSON kullanılan AJAX uygulamalarında ve RSS kaynaklarından veri sağlanması gibi işlemler artık WCF ile daha da kolay şekilde gerçekleştirilebilecek.

05 Kasım 2007

.NET Framework 3.5 ile Gelen Yeni Namespace ve Class'lar

Sevgili arkadaşım Daron YÖNDEM'in blogunda az önce gördüğüm güzel bir posteri sizlerle paylaşmak istedim. .NET Framework 3.5 sürümünün resmen duyrulmasına sayılı günler kaldı. Çoğu programcı bu sürüm ile birlikte gelecek yenilikleri büyük bir heyecanla bekliyor. Heyecanımızı biraz yatıştırmak adına, aşağıdaki linkte bulunan liste ile masaüstümüzü, evimizin veya ofisimizin duvarlarını süsleyebiliriz.

02 Kasım 2007

Sakarya Üniversitesi Seminerinin Ardından

Dün Sakarya Üniversitesi'nde ASP.NET 2.0 seminerini gerçekleştirdik. ASP.NET 2.0 ile birlikte gelen birçok yeniliği örnek çalışmalarla birlikte seminere katılan yaklaşık yüz kişiyle paylaşma şansım oldu.

Sakarya'yı ilk ziyaretimdi ve Sakarya ile ilgili oldukça güzel izlenimlerim oldu. Sakarya Üniversitesi'ndeki öğrenci arkadaşların özellikle misafirperverliği beni onlara karşı mahçup bıraktı diyebilirim. Başta Halime ÖZSOY ve Mustafa EKİCİM olmak üzere tüm Sakarya Üniversitesi Bilgisayar Kulübü üyelerine teşekkürlerimi buradan da sunmak istiyorum.

Aşağıdaki linklerden seminerde kullandığım sunum dosyasını ve örnekleri bulabilirsiniz.
ASP.NET 2.0 - Sunum
Örnekler

ASP.NET Seminerim SilverLight Showcase'de

Değerli hocam M.Yaşar ÖZDEN'in özverili çalışmaları sonucunda Microsoft SilverLight'in resmi sitesinde artık ülkemizin de bayrağı bulunuyor. Geçtiğimiz haftalarda ODTÜ'de gerçekleştirdiğim ve SilverLight teknolojisi ile internetten de canlı olarak yayınladığımız seminerin yer aldığı SİlverLight uygulaması SilverLight'ın resmi sitesinde ki örnekler arasında yer alıyor. http://silverlight.net/showcase/ sitesinde sol kısımdaki Geography linkinden bayrağımıza tıklayın ve izleyin.