29 Kasım 2008

ASP.NET Webinerleri: Membership, Role, Profile

Uzun bir aradan sonra yeniden webinerlerle karşınızdayım.

Önümüzdeki hafta içerisinde ASP.NET Membership, Role ve Profile konularında gerçekleştireceğim webinerlere bu konularla ilgilenen herkesi bekliyorum. Biliyorsunuz seminer webden olunca, kontenjan, ulaşım vb. problemlerimiz olmuyor, evden, okuldan veya işyerinden, kısacası internete bağlanabileceğiniz herhangi bir yerden bu etkinliklere katılabilirsiniz. Bir nedirtv?com ve INETA Türkiye etkinliği olan bu webinerlerle ilgili tüm detayları aşağıdan bulabilirsiniz.

Konu: ASP.NET Membership
İçerik: Membership API ile gelen kontroller, özel tipler, SQL Server'daki nesneler, konfigürasyon ayarları, Custom MembershipProvider yazımı gibi konuları inceleyeceğiz.
Zaman: 1 Aralık 2008 Pazartesi
Saat: 15:00 - 16:00
Katılım için adres: https://www.livemeeting.com/cc/usergroups/join?id=WQB485&role=attend

Konu: ASP.NET Role ve Profile
İçerik: Role ve Profile API ile gelen nesneler ve özel tiplerin kullanımı, programatik olarak yapılabilecek işlemler, rol tabanlı güvenlik işlemleri ve Web Site Administrator Tool'un kullanımını inceleyeceğiz.
Zaman: 5 Aralık 2008 Cuma
Saat: 15:00 - 16:00
Katılım için adres: https://www.livemeeting.com/cc/usergroups/join?id=B6Q6JZ&role=attend

Webinerlerin sonunda sizlerden bu konularla ilgili gelen soruları da cevaplandıyor olacağım. Görüşmek dileğiyle...

Gençsen Geleceksin 2.0 - Gebze Yüksek Teknoloji Enstitüsü

Bir başka Gençsen Geleceksin 2.0 etkinliğinde 2 Aralık 2008 Salı günü saat 12:30'da Gebze Yüksek Teknoloji Enstitüsü(GYTE)'nde seminer veriyor olacağım. Microsoft'un Surface, Azure, XNA Studio, Silverlight gibi günümüz ve gelecek nesil teknolojilerinden ve bu teknolojilerin getireceği iş fırsatlarından bahsedeceğim bu seminere tüm GYTE öğrencilerini bekliyorum.

25 Kasım 2008

Microsoft Web Platform Installer: Geliştiriciler için Kolay Kurulum Sihirbazı

Microsoft'un son zamanlarda üzerinde çalıştığı uygulamalardan bir tanesi de Microsoft Web Platform Installer. Bu uygulama sadece ASP.NET yazılım geliştiricileri için değil Windows platformları üzerinde PHP uygulamaları çalıştıracak geliştiriciler için de gerekli bileşenlerin işletim sistemine kurulmasını sağlıyor. .NET Framework 3.5 Service Pack 1, ASP.NET MVC Beta, PHP için SQL Server Driver'ları, Visual Web Developer 2008 Express Edition, Visual Studio için SilverLight araçları, SQL Express 2008, IIS 7.0 yönetim araçları gibi birçok bileşeni tek bir uygulama üzerinden kurulabilmesi gerçekten biz geliştiricilerin kurulum dertlerini ortadan kaldırıyor. Özellikle işletim sistemini kurduktan sonra sağdan soldan bulduğumuz, indirdiğimiz dosyaları kurmak derdiyle uğraşmadan derli toplu bir kurulum yapma işini artık bu uygulamaya bırakabiliriz.

Windows Web Platform Installer SetupKurulum ekranında karşınıza çıkan Complete seçeneği standart olarak ihtiyaç duyulan tüm araçların kurulumunu, ASP.NET Developer seçeneği sadece ASP.NET programcılarının ihtiyacı olabilecek bileşenleri, Your Choice seçeneği ise tamamen kendi ihtiyacınıza göre gerekli bileşenleri kurmamızı sağlıyor. Başlangıçta 60 Kb'lık küçük bir dosyayı bilgisayarınıza indirmek yeterli. Seçimlerinize göre gerekli bileşenleri kurulum esnasından bilgisayarınıza yükleyerek kurulumum tamamlayacaktır. Uygulamanın Windows XP ve sonrasında çıkan tüm Windows işletim sistemlerine kurulabileceğini de belirtmek lazım.

Uygulamayı bilgisayarınıza indirmek için bu linki kullanabilirsiniz.

20 Kasım 2008

.NET Framework 4.0 ve Visual Studio 2010 CTP

.NET Framework'ün Yeni Logosu Geçtiğimiz haftalarda gerçekleşen PDC 2008 etkinliğinde Microsoft önümüzdeki yıl resmi olarak duyurmayı planladığı .NET Framework 4.0'ın ve Visual Studio 2010'un CTP(Community Technology Preview) sürümlerini duyurdu. Yazılım geliştiriciler için her zamanki gibi önemli yeniliklerin geleceği bu sürümleri şimdiden tanımak ve incelemek için aşağıdaki linkten detaylı bilgileri elde edebilir ve gerekli kurulumları bilgisayarınıza yükleyebilirsiniz.

Visual Studio 2010 ve .NET Framework 4.0 Community Technology Preview

13 Kasım 2008

Gençsen Geleceksin 2.0 - İstanbul Teknik Üniversitesi

Gençsen Geleceksin Etkinliği - 18 Kasım 2008, İTÜ Maçka YerleşkesiMicrosoft ve Turkcell'in bu yıl ikinci kez düzenlediği "Gençsen Geleceksin" etkinlikleri tüm hızıyla devam ediyor. Türkiye'nin dört bir yanındaki üniversitelerde öğrencilerle buluştuğumuz bu etkinliklerde gelecek yıllarda gerçekleşecek teknolojik gelişmelerden, yazılımın, internetin ve mobil teknolojilerin ne doğrultuda gelişeceğinden bahsedeceğiz. Eminim ki gelecek adına birçok üniversite öğrencisinin ufkunu açacak bir içeriği sunuyor olacağız.

Bu etkinlikler çerçevesinde ben de 18 Kasım 2008 Salı günü saat 17:00'da İstanbul Teknik Üniversitesi Maçka Kampüsünde sizlerle birlikte olacağım. Etkinliğin içeriğini ve diğer üniversitelerdeki programa erişmek için www.gencsengeleceksin.com adresine göz atabilirsiniz.

Bu arada unutmadan; etkinliğin sonunda yapılacak çekilişte 1 kişi hediye olarak Turkcell PDA cep bilgisayarı kazanacak :)

PPT ve SWF Dosyaları ile Çalışan SilverLight Örnekleri

Değerli hocam M.Yaşar ÖZDEN'in yaptığı çalışmaları sergilediği BÖTEBOnline isimli video portalını daha önceden incelemediyseniz ziyaret etmenizi tavsiye ederim. Bizim interneti sadece MIRC kanallarında chat yapmaktan ibaret bildiğimiz zamanlarda, Türkiye'nin internetten ilk canlı radyo ve televizyon yayınlarını yapan bu sitede şimdilerde Webcast'ler ve SilverLight ile hazırlanmış medya örneklerini bulabilmeniz mümkün. Yaşar Hoca'mın son zamanlarda hazırladığı SilverLight'ın PowerPoint sunumlarıyla(.ppt) ve Flash nesneleriyle(.swf) çalışması ilgili örnekleri gerçekten dikkat çekici.

Bu linkten SilverLight ile yapılmış örnekleri inceleyebilirsiniz.

30 Ekim 2008

.NET Framework 4.0 Posteri

Birden geçtiğimiz sene bu zamanlarda bloglarımızda ardı ardına yayınlanan poster başlıkları geldi aklıma. PDC 2008 etkinliğinde önümüzdeki aylarda ve yıllarda bizi bekleyen bir çok yenilik duyuruldu ve duyurulmaya da devam ediliyor. Yazılım dünyasını en çok heyecanlandıran yenilikler tabi ki .NET Framework 4.0 ve Visual Studio 2010. .NET Framework 4.0 ile mimariye katılması beklenen namespace ve tiplerin bulunduğu bir poster az önce RSS Reader'ıma düştü ve hemen paylaşayım dedim.

.NET Framework 4.0 - Namespace ve Tipler

Aşağıdaki linklerden .NET Framework 4.0 posterlerine erişebilirsiniz:

.NET Framework 4.0 Poster-PDF
.NET Framework 4.0 Poster-DeepZoom

29 Ekim 2008

INETA Capital Hit'in Ardından

Blogspot'un kapatılmasından dolayı son günlerde bloguma yazmaktan ziyade blogumu kendi domain'ime taşıma işlemleriyle uğraşıyorum. Ama bu aralıkta Ineta Capital Hit'in bıraktığı izlenimleri yazmazsam da olmaz. Geçtiğimiz hafta Ankara'da dolu dolu iki gün geçirdik bilişimi ve yazılımı seven insanlarla. Etkinlikte anlatılanlar, panel, etkinlik arasında katılımcılarla yaptığımız konuşmalar gerçekten görmeye, izlemeye dinlemeye değerdi. Fakat herşeyden ötesi Ankara'ya giderken minibüste yaşadığımız filmlik serüvenler tek kelimeyle mükemmeldi. Tüm INETA ekibine, minibüs şoförümüze ve muavinlerimize teşekkür ediyorum bu yolculuk için:)
Etkinlikten bir hatıra fotoğrafı ve etkinliğimizi kısaca özetleyen süper bir videoyu aşağıda bulabilirsiniz.

20 Ekim 2008

ASP.NET MVC Framework Beta Duyuruldu

ASP.NET MVC ürün olma yolunda en önemli adımlardan birini gerçekleştirdi ve beta versiyonuyla piyasaya sürüldü. Özellikle veritabanı işlemlerinin yoğun şekilde yapıldığı orta ve büyük çaplı projelerde kullanılabilecek olan bu yapı önümüzdeki aylarda 1.0 sürümüyle artık resmen ASP.NET geliştiricilerinin kullanımına hazır olacak. Tabi ki ASP.NET MVC'nin tam anlamıyla stabil hale gelmesi için .NET Framework 4.0'ı beklemek gerekebilir.

Benim gözüme çarpan ilk yenilikler Visual Studio tarafına baktığımızda kod yazımını hızlandıracak bazı yeniliklerin gelmesi ve artık proje şablonuna eklenen Scripts klasörüne ASP.NET AJAX, jQuery gibi JavaScript kütüphanelerinin ekli olarak gelmesi. Yanılmıyorsam jQuery de resmi olarak ilk defa bir Microsoft ürünüyle ile birlikte anılmaya başlandı. (Ki gelecekte daha da fazla anılacak emin olabilirsiniz)

ASP.NET MVC Beta'yı bilgisayarınıza kurmak için bu linki
ASP.NET MVC ile ilgili detaylı bilgilere erişmek için http://www.asp.net/mvc linkini kullanabilirsiniz.

14 Ekim 2008

nedirtv v2.0 Beta Yayınına Başladı

nedirtvUzun süren çalışmalarımız sonucunda nedirtv?com'un yeni versiyonu test yayınlarına başladı. Yayın hayatına 2006 yılında başlayan, fakat gerek sunucudan kaynaklanan, gerekse altyapısındaki sorunlar nedeniyle tam istenilen şekilde işlemeyen nedirtv'nin artık daha sağlıklı ve kullanılabilir bir hale geldiğini söyleyebilirim. Ajax dışında tüm Web 2.0 nimetlerini kullandığımız bu arayüzün gerek tasarım gerekse işleyiş açısından çok daha kullanışlı olacağını düşünüyorum.

Gelişen editör ekibimiz ile yakında çok daha önemli gelişmelerle karşınızda olacağız. nedirtv v2.0 beta'yı http://www.nedirtv.com/ adresinden inceleyebilirsiniz. Beta aşamasında olduğu için elbetteki sorunlar ve eksiklikler mevcut. Sitede karşılaştığınız sorunlar olursa veya eleştirileriniz olursa üst kısımdaki Sorun Bildir linkinden bizleri haberdar edebilirsiniz.

Çok yakında nedirtv v2.0'ın release olmuş versiyonuyla sizlerde birlikte olmak dileğiyle...

Not: Bu projenin geliştirilmesinde çok büyük emeği geçen sevgili Serkan PEKTAŞ'a teşekkürlerimi bir de blogum aracılığıyla göndermek istiyorum.

09 Ekim 2008

İstanbul Ticaret Üniversitesi Bilişim Günleri Etkinliğinde Konuşmacıyım

İstanbul Ticaret Üniversitesi - Teknoloji Günleriİstanbul Ticaret Üniversitesi'nin bu yıl ilk kez düzenleyeceği Bilişim Günleri etkinliğinde ASP.NET Uygulamalarında LINQ başlıklı oturumda konuşmacı olarak yer alacağım. 17-18 Ekim 2008 tarihlerinde gerçekleşecek ve sektörümüzden önemli isimlerin yer alacağı bu etkinlikte değerli iş arkadaşlarım Bülent Sözge ve Burak Batur'unda sunumları gerçekleşecek. Bu önemli etkinliği kaçırmamanızı tavsiye ediyorum.

Aşağıda etkinlikte yer alan bazı oturumların bilgilerini bulabilirsiniz.


17 Ekim 2008 Cuma
15:15-16:15
ASP.NET Uygulamalarında LINQ (Uğur UMUTLUOĞLU)

18 Ekim 2008 Cumartesi
13:30-14:30
SQL Server 2008 (Bülent SÖZGE)

16:00-17:00
What is SharePoint? (Burak BATUR)

08 Ekim 2008

Mono 2.0 Resmen Duyuruldu

mono20_banner .NET Framework'ün platformdan bağımsızlığı adına oldukça önemli bir haber aslında bu. Zira Mono 2.0'ın resmi olarak duyuruldu, hem de sadece Linux işletim sistemleri için değil, Mac işletim sistemleri içinde! Evet yanlış duymadınız, .NET Framework uygulamaları artık Mono kurulu Linux ve Mac işletim sistemlerinde çalıştırılabilecek. Ayrıca Mono projesinin internet sitesinde yaptığım araştırmalarda Mono'nun IPhone üzerinde de çalıştırılabileceğine dair ibarelerde buldum ama net açıklama gözüme çarpmadığı için bu konuda kesin birşey söylemek doğru olmayabilir.

Projenin bu denli genişlemesinde elbetteki geçtiğimiz aylarda Microsoft ve Novell'in bazı konularda ortaklaşa çalışma kararı almalarının etkisi oldukça büyük. Zira Mono 2.0 projesi Novell'in desteğiyle geliştirilerek release olmuş durumda.

Mono kullanmayan birisi olarak sadece bu haberi sizlere duyurmak istedim. Test etme şansını bulanlar olursa bilgi ve tecrübelerini bizlerle paylaşmayı sakın unutmasınlar. Detaylı bilgi ve gerekli yüklemeler için Mono projesinin resmi web sitesini ziyaret edebilirsiniz.

05 Ekim 2008

INETA Capital Hit

Geçtiğimiz aylarda gerçekleştirdiğimiz ve yazın en sıcak günlerine rağmen yoğun ilgi alan INETA Summer Hit'in ardından bu kezde INETA Capital Hit ile Anadolu yollarındayız. INETA Türkiye olarak değişen içeriğimizle yine önemli konularındaki bilgi ve tecrübelerimizi 18-19 Ekim 2008 tarihlerinde Çankaya Üniversitesi'nde Ankara'daki katılımcılarla paylaşıyor olacağız. Sektörümüzde sezon başlangıcı olarak kabul edilen şu anki zaman diliminde sanırım ülkemiz adına muthiş bir etkinlikle bu sezonu açıyor olacağız :)

Silverlight 2.0, IIS 7.0, LINQ, WPF, Expression Blend, WCF, Internet Explorer 8.0 ve ADO.NET Data Services gibi oturumların gerçekleştirileceği etkinlikte ben yine LINQ sunumumla yer alacağım. Bu önemli etkinliğe yolu Ankara'ya düşen tüm yazılımcıları bekliyoruz. Kayıt işlemi için bu linki kullanabilirsiniz.

Ineta Capital Hit

01 Ekim 2008

jQuery Artık Visual Studio ile Bütünleşik Hale Gelecek!

jQuery Artık Visual Studio ile Bütünleşik Hale Geliyor Microsoft web uygulama geliştiricileri için önemli bir haberin duyurusunu geçtiğimiz günlerde gerçekleştirdi. jQuery adı verilen ve özellikle JavaScript ile uygulama geliştiren web programcılarının yakından tanıdığı ücretsiz JavaScript kod kütüphanesinin artık Visual Studio'nun bir parçası haline getirileceği ve ASP.NET programcılarının bu aracı çok daha kolay şekilde kullanabileceğini belirtti. Bu haberlere göre jQuery artık Visual Studio'nun bir parçası olacak, gerek uygulamalara entegre edilmesi, gerek intelli-sense penceresindeki yazım desteği, gerekse dokümantasyonu açısından tam desteklenir hale gelecek.

Aslında bu gelişmeye çokta şaşırdığımı söyleyemeyeceğim. Zira web dünyasındaki gelişmeleri yakından takip edenler jQuery kullanımının özellikle son aylarda çığ gibi büyüdüğünü, artık jQuery fanlarının dahi oluştuğunu görmüşlerdir. Bundan yaklaşık 2.5 ay önce yazdığım bir yazımda da ilerleyen zamanlarda ASP.NET AJAX'ın jQuery'den etkilenerek daha da gelişeceğini belirtmiştim. Artık jQuery tamamen yapıyla bütünleşerek ASP.NET AJAX'ı çok daha kullanılır hale getirecektir.

Peki nedir jQuery?

jQuery bir JavaScript kod kütüphanesidir. Ama öyle sıradan bir kütüphane değil, logodaki "write less, do more" yani "daha az yaz, daha fazla iş yap" sloganını hakkıyla yerine getiren bir kütüphane! Yapısını ve örneklerini incelediğinizde tek bir satırlık kod ile bile HTML kodlarınıza hükmedebileceğinizi, dinamik olarak istemci tarafında JavaScript ile ilgili bir çok işlemi kolayca yapabilmenizi sağlayan bir araçtır. Yapısındaki nesneler aracılığıyla çok basit şekilde zor işleri yapabilmenizi, grafiksel olarak sayfalarınıza efektler uygulayabilmenizi, yine basit şekilde sayfanızı AJAX destekli şekilde çalıştırabilmenizi sağlayan bu kütüphaneyi ASP.NET ile birleştirdiğimizde karşımıza şöyle bir sonuç çıkacaktır: ASP.NET sunucu tarafında yapacağımız bir çok işlemi basite indirgemiş ve kolay yapılabilir hale getirmişti. ASP.NET AJAX ve jQuery de istemci tarafında yapacağımız işlemleri çok daha pratik şekilde yapabilmemizi sağlayacaktır.

jQuery son yıllarda popüler hale gelen, hızlı ve az kod yazarak istemci tarafında işlemleri kolaylaştıran JavaScript kod kütüphaneleri furyasının en sevilen, en kullanılan ürünü olarak son bir yıl içerisinde adını oldukça duyurdu. Çok küçük boyutlu olmasına rağmen(15 Kb.) boyundan büyük işleri başarabilen bu kütüphane AJAX'ın hayatımıza fazlasıyla girmesinden sonra bu denli büyüdü ve artık ciddi bir marka haline geldi.

Özellikle uygulamalarında JavaScript ve AJAX kullanan arkadaşlara tavsiyem jQuery'nin resmi web sitesini ziyaret etmeniz ve Documentation ile Tutorials bölümlerini incelemeniz. Tabi ki bilgisayarınıza jQuery'i indirip ASP.NET uygulamalarınızda test etmeyi de unutmamak lazım:) Önümüzdeki günlerde fırsat bulursam jQuery ile ilgili yazılara blogumda daha sık yer vermeye çalışacağım.

25 Eylül 2008

Netron Techweek'deki Sunumlarım ve Örnek Kodlar

Bu hafta içerisinde gerçekleşen ve benimde iki oturumda konuşmacı olarak yer aldığım Netron Techweek her sene olduğu gibi sektördeki önemli gelişmeleri takip edebilmek adına herkes için güzel bir etkinlik oldu. Özellikle ASP.NET MVC Framework oturumumda, hala gelişme aşamasında olan ve henüz tam bir ürün kimliğine bürünmemiş bir yapının bile katılanların ciddi anlamda ilgisini çekmesi ve olumlu tepkiler alması, ilerleyen günlerde MVC uygulamalarındaki artacak eğilimin bir işaretiydi. LINQ'in büyüleyici ortamının özellikle bu ortamı yeni tanıyanlarda bıraktığı izlenimler hakkında yorum dahi yapmama gerek yoktur diye düşünüyorum :)

Aşağıdaki linklerde gerçekleştirdiğim sunumları ve örnek kod dosyalarını bulabilirsiniz.

ASP.NET MVC Framework - Sunum Dosyası
ASP.NET MVC Framework - Örnek Kodlar

LINQ Overview - Sunum Dosyası
LINQ Overview - Örnek Kodlar

16 Eylül 2008

Netron Techweek Etkinliğinde Konuşmacıyım

Netron Techweek Geleneksel hale gelen ve bilişim sektörünün en önemli etkinliklerinden olan Netron Techweek (Teknoloji Haftası) bu yıl 22-26 Eylül tarihleri arasında Netron Altunizade Genel Merkezi'nde gerçekleşecek. Infrastructure ve Development kategorilerinde yirminin üzerinde oturumun olacağı bu beş günlük etkinlikte benim de iki farklı konuda sunumlarım gerçekleşecek.

Gerçekleştireceğim sunum konuları ve zaman bilgilerini aşağıda bulabilirsiniz. Yine etkinlik ile ilgili detaylı bilgilere ve kayıt formuna erişmek için aşağıdaki linkleri kullanabilirsiniz. Bu önemli etkinliği kaçırmamanızı tavsiye ediyorum.

Konuşmacı olduğum oturumlar:

Konu Zaman
ASP.NET MVC Framework 23 Eylül 2008 Salı / 14:30-16:30
LINQ Overview 24 Eylül 2008 Çarşamba / 14:30-16:30

Etkinlik Takvimi
Kayıt Formu

09 Eylül 2008

LINQ to SQL'de Insert, Update ve Delete İşlemleri

LINQ to SQL ile Insert,Update,Delete İşlemleriBildiğiniz gibi LINQ adını verdiğimiz dile entegre sorgularla artık .NET ortamında koleksiyon tabanlı nesneleri sorgulayabiliyoruz. Buradaki sorgulamaların temel amacı normalde foreach döngüleri, if-else kontrol yapılarıyla yapabildiğimiz uzun ve karmaşık işlemleri tıpkı T-SQL'de olduğu gibi sade Select sorguları yazarak daha basit hale getirmektir. LINQ'in asıl çıkış noktası ise uygulama içerisinde büyük ve karmaşık olan veri nesnelerini (entity nesnelerini) kolay ve pratik şekilde sorgulanabilmesini sağlamak ve büyük çaplı projelerde yazılımcıların en büyük yüklerinden birisini hafifletmektir.

LINQ to SQL ile ilgili olarak en çok sorulan sorulardan birisi de Insert, Update ve Delete işlemlerinin nasıl gerçekleştirilebileceği. LINQ ifadelerinde Insert, Update ve Delete gibi anahtar kelimelerle sorgular yazılamadığını söylemeye gerek yok sanırım:) Dolayısıyla LINQ to SQL'de amaç veri nesneleriyle çalışmak ise bir şekilde bu tip işlemleri de gerçekleştirebilmek gerekecektir. LINQ to SQL Classes (.dbml) dosyaları veritabanında yer alan veri nesnelerini doğrudan uygulamamıza class'lar olarak aktarmamızı sağlamaktadır. Örneğin Northwind veritabanındaki Product tablosunu uygulamamızda veri class'ı olarak oluşturduğumuzda DataContext nesnesinin içerisindeki Products özelliği(property) Products tablosundaki ürünleri koleksiyon olarak döndürecektir. İşte bu property'nin bazı metotları bizim Insert, Update ve Delete gibi işlemleri gerçekleştirebilmemizi sağlayacaktır. Bu metotlardan;

- InsertOnSubmit, Insert işlemini
- DeleteOnSubmit, Delete işlemini

gerçekleştirebilmektedir. Peki Update işlemi nerede? Update işlemini ise LINQ sorgusu sonucundan gelen kayıt veya kayıtların değerlerini değiştirerek gerçekleştirebileceğiz. Buradaki her üç işleminde sonuçlarının veritabanına aktarılabilmesi için DataContext nesnesinin SubmitChanges isimli metodunun çalıştırılması yeterli olacaktır. Aşağıdaki kod parçalarında LINQ to SQL'de veri ekleme, silme ve güncelleme işlemlerinin nasıl yapılabileceği görülmektedir. Kodlarda yer alan northWind adındaki nesne DataContext nesnemizdir.

Product eklenecekUrun = new Product() { ProductName="Acer Aspire 5100", UnitPrice=1290, UnitsInStock=15, CategoryID=9 };
northWind.Products.InsertOnSubmit(eklenecekUrun); // Eklenecekler listesine yeni bir ürün eklendi

Product guncellenecekUrun = northWind.Products.First(u => u.ProductID == 69);
guncellenecekUrun.ProductName = "HP Pavilion 3355"; // Seçilen ürünün ProductName özelliği değiştirildi

Product silinecekUrun = northWind.Products.First(u => u.ProductID == 79);
northWind.Products.DeleteOnSubmit(silinecekUrun); // Seçilen ürünü silinecekler listesine at

northWind.SubmitChanges(); // Yukarıda yapılan güncellemeler veritabanına gönderildi

05 Eylül 2008

CLR SQL ile Hazırlanan Nesneyi Visual Studio'da Debug Etmek

SQL Server 2005 ve ADO.NET 2.0 ile gelen yeniliklerden sonra çoğunuzunda bildiği gibi .NET ortamında hazırladığınız nesneleri SQL Server sunucusu üzerinde CLR (Common Language Runtime) desteğiyle çalışmasını sağlayabiliyoruz. Oluşturulan bu nesnelerin IL çıktıları .dll'dir, dolayısıyla ilk bakışta nesneleri kodlama aşamasında nasıl debug işlemine tabi tutacağımız bizler için soru işareti olabilir. Bu başlıkta .NET tabanlı bir dilde yazdığımız CLR SQL kodlarımızın çalışmasını debug etmek, kodların takibini ve analizini yapmak için oluşturulan projede nasıl bir yol izleyeceğimizi anlatmaya çalışacağım.

Test.sql dosyasına eklenen SQL cümlesi"SQL Server Projects" şablonunu oluşturduğunuzda proje içerisinde Test Script adında bir klasör ve içerisinde örnek kodları içeren Test.sql adında bir dosya bulunmaktadır. Debug işlemi için öncelikli olarak nesneyi çalıştıracak bir SQL ifadesine ihtiyacımız olacaktır. Bu dosya SQL ifadesinin veya ifadelerinin saklanacağı yerdir. Nesneyi oluşturduktan sonra öncelikli olarak bu dosyaya nesneyi test etmemizi sağlayan SQL cümlesini ekliyoruz.

clrsql_debug_image3 Bu işlemin ardından Test.sql dosyasını projemizin varsayılan script dosyası olarak seçmemiz gerekiyor. Solution Explorer'da dosyanın üzerine sağ tıkladığımızda karşımıza çıkan Set as Default Debug Script seçeneğinden dosyayı varsayılan debug dosyası olarak belirliyoruz. İlgili seçenek sağ kısımda yer alan resimde görülmektedir.

Nesneyi oluşturduktan sonra debug işlemini başlatacağımız satıra breakpoint ekliyoruz. Bu işlemin ardından projemizi yayınlayıp IL çıktısını üretmemiz ve çalıştırmamız gerekecektir. Bu işlem için Solution Explorer'da projemizin üzerine sağ tıklayıp Deploy seçeneğini seçiyoruz.

Artık projeyi debug modunda çalıştırıp kodların adım adım takibini yapabiliriz. Bu işlem için yine Solution Explorer'dan az önce debug dosyası olarak ayarladığımız Test.sql dosyasına sağ tıklayıp Debug Script seçeneğine tıklıyoruz. Dosya içerisindeki sorgu çalıştırılacak ve derleyici seçtiğimiz satıra geldiğinde Visual Studio debug moda geçecektir.

clrsql_debug_image4

Bu şekilde bir CLR SQL nesnesini oluşturan kodların debug edilmesi sağlanabilir. Özellikle karmaşık User Defined Function, Stored Procedure ve Trigger oluşturduğumuz durumlarda nesneyi sürekli SQL Server'a taşımak, burada çalışma sonucuna göre tekrar Visual Studio'ya dönüp değişiklikleri yapmak uzun ve çözümü zor bir yol olabilir. İşte bu tip durumlarda nesnenin SQL Server'a gitmeden doğrudan CLR üzerinde çalışmasını debug edebilmek biz programcıların işini oldukça kolaylaştıracaktır.

06 Ağustos 2008

LINQ Sunumu ve Örnek Kodlar

Geçtiğimiz pazar günü INETA Summer Hit'in son gününde C# 3.0 ve LINQ sunumunu gerçekleştirdim. Sürenin az olması nedeniyle LINQ to SQL ve LINQ to XML konularını derinlemesine anlatma şansım olmadı ama güzel ve iyi izlenimler bırakan bir sunum gerçekleştirmişimdir diye umuyorum. Seminerde öyle bir kod arşivi üzerinden demolar gerçekleştirmişim ki; sadece bugün 4-5 farklı kişiden bu kodlara ulaşmak için mailler aldım :) Aşağıdaki linklerden etkinlikte kullandığım sunumu ve örnek kodları içeren demo dosyasını indirebilirsiniz.

LINQ Sunumu
LINQ Demolar

Ve etkinlikten kalan iki hatıra fotoğrafı...

ineta_summer_hit_cikis
ineta_summer_hit_sunum

Bu güzel etkinliği düzenleyen başta Daron Yöndem ile Ali Rıza Babaoğlan'a ve emeği geçen tüm arkadaşlara teşekkürlerimi buradan da sunmak isterim.

Not: Askerlik nedeniyle biraz uzak kaldığım yeni teknolojilere yeni yeni ısınmaya başlıyorum. Bundan sonra blogumda C# 3.0, LINQ, MVC ve WPF gibi konularda daha sık yazılar yazmaya çalışacağım. Beni takip etmeye devam edin...

26 Temmuz 2008

ASP.NET'te Gelecek WebForm'larında mı, Yoksa MVC'de mi?

WebForms vs. ASP.NET MVCSon yıllarda web programlama dünyasında yaygınlaşan MVC uygulama modeli yavaş yavaş ASP.NET uygulamalarında da yerini almaya başladı. .NET Framework ile birlikte web sitelerine getirilen Windows formlarının çalışma modeli giderek benimsenmiş ve web literatürüne oturmuşken birden çıkıveren MVC Framework kafalarımızda şu soruları da oluşturdu: Hangi modeli kullanmak daha avantajlı, hangisi daha verimli çalışır? Belki de en önemli soru "Gelecek hangisinde? WebForm'larında mı, yoksa MVC Framework'te mi?" Hatta benim kafamda oluşan önemli sorulardan birisi de "Acaba Microsoft gelecekte WebForm'larını bırakıp ASP.NET'te MVC modelini mi kullanabilir mi?" idi birkaç gün öncesine kadar...

Geçtiğimiz günlerde Joe Stagner'ın blogunda okuduğum bir haber aklımdaki bu soru işaretini biraz da olsun kaldırdı. Zira Joe Stagner yazısında WebForm'larının gelecekte de ASP.NET uygulamalarındaki ana platform olacağını, Microsoft'un bu strateji üzerinden ilerleyeceğini, fakat MVC Framework'ün de geliştiremeye devam edeceğinden bahsediyordu. Yani; gönül rahatlığıyla WebForm'ları üzerinde kontrolleri sürükleyip bırakıp, üzerine çift tıklayıp, olay tabanlı programlama yapmaya devam edebiliriz. Peki MVC bu noktada programlama anlayışımızın neresinde yer almalı?

Bu sorunun cevabını bulabilmek için öncelikle ASP.NET WebForm'larının ve ASP.NET MVC Framework'ün ne gibi özelliklere sahip olduğunu, avantaj ve dezavantajlarının neler olduğunu iyi çözümlemek gerekir. MVC Framework ASP.NET uygulamalarına şu anki anlayışa biraz aykırı gelebilecek, ASP'de olduğu gibi HTML ile içiçe ve daha fazla kod yazılmasını gerektiren, durum verisinin saklanmasını zorlaştıran, diğer yandan da programcının web sayfasına daha fazla hakim olmasını sağlayan, control-view mekanizmasını kendi istediği gibi geliştirebileceği ve arama motorlarının çok sevdiği az karmaşık URL'ler oluşturulmasını sağlayan bir uygulama modelidir. MVC Framework web programlama hayatımıza iyiden iyiye oturan olay tabanlı(event-driven) programlamadan, ViewState ve PostBack'ten uzak bir ortam sunuyor. Bu gelişme kimilerine göre çok olumlu iken, kimilerine ise "Aman benden uzak dursun" dedirtiyor. WebForm'ları bize o kadar rahat bir programlama ortamı sunuyor ki, MVC'ye geçiş biraz zor geliyor sanırım. Fakat MVC Framework'ün özellikle hız, performans, arama motorlarına tam uyumluluğun önemli olduğu, uzun soluklu kurumsal projelerde çok sık ihtiyaç olacağı da bir gerçek.

Konumuzun başlığına dönecek olursak; Gelecek WebForms da mı, yoksa MVC Framework'te mi, benim şahsi düşüncem gelecek dün olduğu gibi yine WebForm'larında(ki Microsoft'un dediklerini tercüme etmiş oluyorum), fakat MVC Framework önümüzdeki yıllarda iyi bir web programcısının mutlaka bilmesi gereken bir uygulama deseni olacaktır. Microsoft'un şu anki stratejisi ASP.NET WebForm'ların üzerinde gelişmeye ve zenginleşmeye devam edecektir, fakat MVC Framework'te programcılara ikinci bir seçenek olarak sunulacaktır.