10 Aralık 2007
Kısa Bir "Veda"
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
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
PC 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.
Aşağıda da Fatih Üniversitesi seminerinden iki kare bulunmakta.
19 Kasım 2007
Visual Studio 2008 ve ASP.NET 3.5 Webineri

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

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();" /> <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

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
ASP.NET 3.5 ile Gelen Yenilikler

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

02 Kasım 2007
Sakarya Üniversitesi Seminerinin Ardından

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

31 Ekim 2007
PC Magazine'de İlk Yazım Yayınlandı

PC Magazine dergisinin kasım ayı içeriğini görmek için buraya tıklayabilirsiniz.
ASP.NET 2.0 Semineri (Sakarya Üniversitesi)

30 Ekim 2007
GridView'e Programatik Veri Bağlamada Sayfalama ve Sıralama İşlemleri
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
17 Ekim 2007
Türkiye'nin İlk Silverlight Canlı Yayınını Gerçekleştirdik
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)

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)
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.
09 Ekim 2007
Microsoft Expression Webineri

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

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

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ı

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
Şö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 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
{
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ü
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
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

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

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ı

04 Eylül 2007
Substitution ile Önbellekleme İşlemleri
Türkiye'deki ilk SilverLight Uygulaması: SilverLightTV
30 Ağustos 2007
.NET Framework 3.5 ve VS 2008 ile Gelen ASP.NET AJAX Yenilikleri
- .NET Framework 3.5 ile birlikte artık ASP.NET uygulamalarında tam olarak AJAX desteği getirilmiş durumda. Yani .NET 3.5 sürümünde açılan her ASP.NET projesi artık AJAX desteği ile geliyor ve bilgisayarımıza AJAX Extension'larını kurmaya gerek kalmıyor. ASP.NET 2.0'daki bir çok kontrolde yaşanan uyumsuzluklarda artık çözülmüş durumda.
- .NET Framework 2.0 ile geliştirilen bir AJAX projesi, sorunsuz bir şekilde ve kodlarında en ufak bir değişiklik dahi yapılmadan .NET Framework 3.5 ile çalışabilir hale getirilebiliyor.
- Gelişmiş Control Toolkit entegrasyonu! Artık Control Toolkit'de bulunan kontrolleri, ASP.NET kontrolleri ile çalıştırmak çok daha kolay. Yeni getirilen "Add Extender" menüsünden Control Toolkit'teki bir Extender kontrolünün ASP.NET kontrollerine bağlanması ve kullanılması çok kolay bir şekilde gerçekleşebiliyor. Tabi bu işlem için bilgisayarınıza AJAX Control Toolkit'in Framework 3.5 için yazılmış versiyonunu indirmeniz gerekli. Bu linkten ilgili dosyayı indirebilirsiniz. Aşağıdaki ekran çıktılarında bir TextBox kontrolüne AJAX Control Toolkit'teki CalendarExtender kontrolünü nasıl bağlayabileceğimizi görebilirsiniz.



ASP.NET AJAX İstanbul Semineri - Sunum ve Örnekler

ASP.NET AJAX Sunum
Örnek Uygulamalar
26 Ağustos 2007
ASP.NET AJAX Semineri (Bakırköy-İstanbul)
Detaylı bilgi ve kayıt işlemi için buraya tıklayabilirsiniz.
ASP.NET - CacheDependency ile Önbellekleme İşlemleri
24 Ağustos 2007
ASP.NET 2.0 - Performans Yönetimi Sunumu
Sunum Dosyası
Uygulama Dosyası
16 Ağustos 2007
Netron Teknoloji Haftası 2007’de buluşalım

Detaylı bilgiler ve kayıt işlemleri için bu linke göz atabilirsiniz.
AJAX Nedir?
En yaygın kullanım alanı sayfayı tekrardan yüklemeye gerek kalmadan sayfada görünür değişiklikler yapmaktır. XMLHttpRequest kullanarak birden fazla bağımsız işlemi yapabilir. Bazı bilişim uzmanları, AJAX'ın HTML ve XML'den sonra en yenilikçi Internet yazılımı olduğunu ve Web 2.0'ı bitirip, 3. evreye ulaştırdığını iddia etmişlerdir.
AJAX'ı bu kadar kısa ve net şekilde tanımlayan kişiye "Klavyene sağlık" demek düşer sanırım.
11 Ağustos 2007
Programcılara özel font: Consolas
Not: Consolas font tipi Windows Vista işletim sistemi ile birlikte gelen yeni fontlar listesinde bulunuyor.

(Consolas fontunun görünümü)
30 Temmuz 2007
GridView'de bulunan toplam kayıt sayısı
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.Selected+=new SqlDataSourceStatusEventHandler(SqlDataSource1_Selected);
}
void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
Response.Write(e.AffectedRows); // Toplam kayıt sayısını getirir
}
27 Temmuz 2007
ASP.NET Futures

ASP.NET Futures paketini biraz inceleyecek olursanız ASP.NET AJAX, SilverLight ve XAML eklentileri ile daha şimdiden .NET ortamında daha interaktif uygulamalar yapabilememiz sağlanmış. Özellikle Media, History ve Dynamic Data Control grubu altında yer alan data kontrolleri gerçekten etkileyici olmuş. Şimdilik detaylı bir dökümantasyonu olmasa da aşağıdaki linkler ASP.NET Futures hakkında bilgi edinmek için yeterli olacaktır.
ASP.NET Futures Quick Start (Başlangıç Rehberi)
ASP.NET Futures paketini bilgisayarına yükle
ASP.NET Futures - Dynamic Data Control'leri ile ilgili videoyu izle
ASP.NET Futures ile birlikte IronPhyton ve ManagedJScript gibi iki dinamik dil desteğinin de geldiğini bir dipnot olarak ekleyeyim.
Visual Studio 2008 ve SQL Server 2008
Zaman gerçekten çok çabuk geçiyor. Şimdiden beta sürümlerini edinip kullanmaya başlamakta fayda vardır diye düşünüyorum.
26 Haziran 2007
"Operation must use an updateable query" hatası ve çözümü
22 Haziran 2007
ASP.NET AJAX - Ankara Semineri'nin Ardından

13 Haziran 2007
Kişisel sitem yenilendi
Uğur Umutluoğlu (yani ben) hakkında bilgilere, haberlere, duyurulara, günlük yazılarına, makalelerine, görsel eğitim içeriklerine ve sunum dosyalarına ulaşmak için www.umutluoglu.com adresini takip edebilirsiniz.
08 Haziran 2007
Imagine Cup 2007 Türkiye - Yazılım Finali
05 Haziran 2007
SQL Server 2008 - June CTP

03 Haziran 2007
ASP.NET AJAX - İstanbul Semineri'nin Ardından

Seminerde kullandığım sunum dosyasını ve örnek projeleri aşağıdaki linklerden indirebilirsiniz.
Sunum Dosyası
Uygulamalar
28 Mayıs 2007
ASP.NET AJAX İstanbul ve Ankara Seminerleri
09 Mayıs 2007
ASP.NET Webinerleri

Aşağıdaki listede webinerlerde anlatılacak konuların başlıklarını bulabilirsiniz. Bu linke tıklayarakta webinerlerle ilgili daha detaylı bilgilere ulaşabilirsiniz. ASP.NET ve web teknolojilerine ilgi duyan herkesi bu webinerlere bekliyorum.
1.Gün
ASP.NET Mimarisi
Visual Studio 2005'te ASP.NET Web Projesi Geliştirmek
2.Gün
ASP.NET Uygulamalarında Temel Kavramlar (Sayfanın Yaşam Döngüsü, Event Kavramı, PostBack)
Sunucu Kontrolleri ve Doğrulama İşlemleri (Standart Kontroller, Validation Kontrolleri)
3.Gün
ASP.NET'te Hata Yönetimi (try-catch Kullanımı, Özel Hata Sayfaları)
ASP.NET'te Durum Yönetimi (ViewState, QueryString, Session, Application, Cross-Page PostBack)
4.Gün
ASP.NET 2.0 - MasterPage Kullanımı ve Temalar
5.Gün
ASP.NET 2.0 - Veri İşlemleri (Data Source, GridView, DetailsView)
6.Gün
ASP.NET 2.0 - Site Navigasyonu İşlemleri
7.Gün
ASP.NET AJAX
Microsoft SilverLight
Bu teknolojiden haberdar olmak isteyenler http://www.microsoft.com/silverlight/default.aspx linkinden detaylı şekilde bilgi elde edebilir. Yine http://silverlight.net/fox/ adresinde SilverLight'ın ilk örneğini de inceleyebilirsiniz. Bence bu sayfayı mutlaka ziyaret edin, özellikle videoları tam ekran olarak izleyin. Oldukça etkileyici bir örnek olduğunu düşünüyorum. Tabi öncelikli olarak 1.3 Mb.lık bir dosyayı bilgisayarınıza kurarak.
08 Mayıs 2007
Anadolu Üniversitesi Seminerinin Ardından
Seminerlerde kullandığım sunum dosyalarını aşağıdaki linklerden indirebilirsiniz.
ASP.NET AJAX Sunumu
ASP.NET 2.0 Sunumu
Bu güzel Eskişehir anımın en ilginç yanlarından biri de sanırım trende hazırlamış olduğum AdRotator projem ve makalemdi. En yakın zamanda makalemi MS Akademik ve Yazgeliştir'den okuyabilirsiniz.
6 Ay Sonra Tekrar Ankara
26 Nisan 2007
ASP.NET'te Performans Arttırmanın 10 Yolu
13 Nisan 2007
HTML elementlerine programatik yollarla erişim
HtmlMeta keyword = new HtmlMeta();
keyword.HttpEquiv = "Content-Type";
keyword.Content = "text/html; charset=iso-8859-9";
Header.Controls.Add(keyword); // Yukarıda tanımlanan keyword'ü head kısmına ekler.
ASP.NET AJAX Sunumu ve Örnek Uygulamalar
Sunum dosyası
Sunumda yapılan uygulamalar
07 Nisan 2007
ASP.NET AJAX Semineri
Seminer hakkında daha detaylı bilgi almak ve kayıt formuna ulaşmak için buraya tıklayabilirsiniz
nedirTV?com 1 yaşında...
Nice yıllara nedirTV...
09 Mart 2007
AJAX Extension kurulu olmayan sunucuda ASP.NET AJAX projesi çalıştırmak
1- Öncelikli olarak ASP.NET AJAX projenize Bin dizini açın ve buraya referans olarak System.Web.Extensions.dll ve System.Web.Extensions.Design.dll dosyalarını ekleyin. Bu dll kütüphanelerini C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025 dizininden elde edebilirsiniz.
2- Uygulamanızın web.config dosyasında bazı değişiklikler yapmanız gerekecek. Buradaki bazı tanımlamalardaki type ifadeleri içerisinde yer alan System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 kısımlarındaki Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 ifadelerini kaldırmanız gerekecektir. Bu kısımlar, zaten dll dosyalarının Global Assembly Cache'den okunmasını sağlayan açıklamalardır. Bu şekilde artık uygulama GAC'daki dll dosyalarını değil, Bin dizinindeki dll dosyalarını kullanacaktır. (Bu işlemi Find-Replace ile kolayca yapabilirsiniz.)
3- Son olarak uygulamanın bulunduğu dizini virtual directory (sanal dizin) olarak tanımlamak gerekecek.
Bu üç adımı takip ederek hazırlayacağınız bir projeyi, artık AJAX Extension kurulu olmayan bir sunucuda çalıştırabilirsiniz. Bazı durumlarda hata alabilme olasılığınız olabilir. Aldığınız hataları bana iletirseniz yardımcı olmaya çalışırım.
Klasik bir uygulamayı AJAX uygulamasına çevirmek
1- Bir ASP.NET AJAX projesi açın ve web.config içerisindeki herşeyi kopyalayın.
2- Klasik uygulamanızı açın. Bu uygulama içerisindeki web.config dosyasını açın. Eğer bu dosyada herhangi bir değişiklik yapmışsanız, değişiklikleri bir yere not alın. Yeni bir XML düğümü açıp birşeyler yazmış iseniz, bu kısımları da kopyalayıp ayrı bir yerde saklayınız. Bu dosyanın içerisini şimdilik silebilirsiniz.
3- AJAX uygulamasındaki web.config'den aldığınız kodları, klasik uygulamadaki web.config içerisine yerleştirin.
4- web.config'in önceki halinde yer alan değişiklikler ve kodlar var ise, bunları web.config içerisinde uygun yerlere ekleyin.
Böylece artık klasik uygulamanız ASP.NET AJAX-Enabled Web Site projesi haline geliyor. Bir ASP.NET sayfası içerisine ScriptManager kontrolü eklemeniz durumunda artık UpdatePanel ve diğer AJAX Extension kontrolleri ile uygulamanızı AJAX modeli ile yeniden tasarlayabilirsiniz. Burada unutulmaması gereken nokta, sayfanın çalışacağı sunucuda ASP.NET AJAX Extension'ın kurulu olması gerekecektir.
06 Mart 2007
Webiner: ASP.NET AJAX
ASP.NET AJAX ile İlgili Görsel Ders(ler)
Not: Şu an nedirTV'de yaşanan teknik bir problemden dolayı videolar sadece MS Akademik'te yayınlanacak
01 Mart 2007
.NET Ortamında Kullanabilecek Diller ve Derleyicileri
http://www.dotnetpowered.com/languages.aspx
18 Şubat 2007
ASP.NET AJAX Sunumu
Sunum dosyasını buraya tıklayarak indirebilirsiniz.
14 Şubat 2007
MS Akademik'te Akademik Webinerler Başlıyor
16 Şubat-6 Nisan tarihleri arasında, her Cuma günü saat 16:00-17:00 arasında gerçekleşecek olan bu webinerlere (webcastlere) MS Akademik üyeleri katılabilirler. Webinerler Microsoft Akademik Yazılım Geliştiriciler Grubu Editörleri, Microsoft Student Partner'ları ve Microsoft çalışanları tarafından verilecek. Bu webinerlerin ilkincisini, bu Cuma günü ben veriyor olacağım. ASP.NET AJAX konulu bu webinere katılmak ve diğer webinerler hakkında bilgi almak için http://www.msakademik.net/akademikwebiner.aspx adresini ziyaret edebilirsiniz.
21 Ocak 2007
Microsoft Zirvesi 2007
Ayrıntılı bilgi ve kayıt için http://www.microsoftzirve2007.com/ adresini ziyaret edebilirsiniz.
04 Ocak 2007
ASP .NET AJAX 1.0 RC
Neyse efendim, bu süre zarfı içerisinde ASP .NET AJAX açısından da önemli gelişmeler oldu. Daha önce 2007'nin ilk aylarında tam sürüm olarak çıkarılacağı açıklanan ASP .NET AJAX'ın (eski adıyla ATLAS) geçtiğimiz günlerde RC sürümü duyuruldu.
http://ajax.asp.net/default.aspx?tabid=47&subtabid=471 adresinden download işlemlerine başlayabilir, yine aynı adresteki diğer linklerden de ASP .NET AJAX ile ilgili detaylı bilgi edinebilirsiniz.