Posts Tagged ‘pc magazine’

C# Dersleri – 7: Windows Forms Uygulamalari

Uzun süredir devam eden C# derslerimizde geçtiğimiz yazida temel programlama konularını geride bıraktık ve artık siyah beyaz konsol pencerelerinden kurtulup Windows Forms uygulamalarının renkli dünyasına adım atmaya hazırız. Grafiksel kullanıcı arabirimi (GUI) diye tabir edilen arayüzler farklı programlama dillerinin işletim sistemleriyle entegre olarak kullanıcıları metin tabanlı programların sıkıcı ve monoton yapısından kurtarırlar. Özellikle konsol uygulamaları için Visual Studio kullanmayı tercih etmemiş olabilirsiniz ancak Windows Forms tarafında uygulama geliştirmek istiyorsanız bu alışkanlığınızdan hemen vazgeçmenizi öneririm. Windows Forms uygulamaları geliştirmek için yine Visual Studio’nun ücretsiz Express sürümlerini kullanabilirsiniz.

GUI kütüphanelerinin desteklediği farklı öğeleri kullanarak uygulamalarımıza farklı özellikler kazandırmak da oldukça kolaydır. Butonlar, metin kutuları, ikon ve sekmeler gibi kullanıcıların aşina olduğu bu öğeler ile C# uygulamalarımız hem göze hitap edecek hem de daha işlevsel olacaklar. Yazının başında Windows Forms konusuna değineceğimizi belirtsek de burada yapacağımız örnekleri Linux altında Mono kullanarak da yapabilmeniz mümkün. Bildiğiniz gibi platformdan bağımsız olarak çalışan .NET uygulamaları Linux altında Mono Projesi kapsamında çalışıyor ve Mono çok güçlü GUI araçlarına sahip.

C# Dersleri – 6: Fonksiyonlar ve Sinif Yapilari

İlk derslerimizden itibaren hazırladığımız konsol uygulamaları ile C# temel yapılarını inceliyoruz. Bu dersimizde daha önce değinme fırsatı bulamadığımız fonksiyon, sınıf ve obje yapılarını inceleyerek eğitimimizin C# temellerine dair bölümünü tamamlayacağız. Önümüzdeki eğitimler içerisinde Visual Studio altında Windows Forms uygulamaları geliştirerek her ay farklı bir alanda uygulama geliştirme fırsatı yakalayacağız ve siyah komut satırı ekranına veda edeceğiz.

Veri yönetim biçimleri her programlama dilinde farklıdır. Nesne tabanlı programlama dillerinde ise çalışma sırasında bütün veriler nesnelere dönüşür ve referans ya da doğrudan bağlantıyla program akışı içerisinde kullanılırlar. C# altında da bütün veri tipleri ikiye ayrılır: temel tipteki nesneler ve sınıf referansı nesneleri. Temel tipteki nesneler önceki örneklerimizde bolca kullandığımız, byte, sayı, karakter veya metin değeri alan int, char veya string gibi C# içerisindeki dahili tiplerdir. Diğer veri tipleri ise bizim yazdığımız sınıflar (class) kullanılarak üretilen nesnelerdir.. Sınıflar nesne yönelimli programlamanın çekirdeğini oluşturan en küçük yapılar olarak projenizin sürdürülebilirliği, geliştirilebilir ve güvenliğine katkıda bulunur.

Ancak sınıf yapısına geçmeden önce, sınıfları oluşturan diğer bir önemli unsur olan fonksiyonlara değinmeliyiz. Programlama dillerinin en çok kullanılan özelliklerinden biri olan fonksiyonlar, belirli parametreler alarak çalışan ve kendi içinde belirlenen hesaplamayı yaparak cevabı çağrıldığı yere döndürebilen yapılardır. Özellikle uygulamamızın kodlarında birbirini tekrar eden yerler olduğunda veya birçok yerde kullanacağımız bir fonksiyonu defalarca yazmamız gerektiğinde fonksiyonlar yardımımıza koşar. ayrıca fonksiyon kullanmak, bu çok tekrar eden kodlarda herhangi bir değişiklik yapmamız gerekirse tek yerden bu değişikliği bütün uygulama çerçevesinde gerçekleştirmemize olanak verir.

C# Dersleri – 5: Diziler

Derslerimizin ilk konularından biri olan değişkenlerin programlarımızın bazı değerleri hafızasında tutmak istediği zaman kullanıldığını biliyoruz. Farklı tiplerde String, int gibi sayı veya metin değerleriyle oluşturduğumuz değişkenlerin yanı sıra, kendi yarattığımız nesnelerin de değişkenler vasıtasıyla bellekte saklanabildiğine de önceki aylarda şahit olmuştuk. Ancak hazırladığımız uygulamalardaki verileri tek tek işlemek genel olarak uzun zaman alan ve bu verilerin sayısı arttığında kontrol etmesi güç bir görev. Bu yazımda temel programcılık öğelerinden biri olan diziler konusuna değinerek birçok değeri bir değişken içerisinde kullanabilmeye değineceğim.

Programlama dillerinde dizileri kullanmak bizi birçok satırda yazacağımız kod satırlarından ve birçok değişkenin yarattığı karışıklıktan kurtararırken, aynı işlemleri tek satır bir koda dönüştürerek daha basite indirgenmiş anlaşılır bir hale getirir. Örneğin 10 tane değişkenle işlem yapabilen bir uygulamayı yazmak çok zor değildir, ancak binlerce sayı kullanarak hesaplama yapmamız gerektiğinde bütün değerler için yeni bir isim bularak yeni değişkenler yaratmamız tamamen bir vakit kaybıdır. Dizilerin kullanımı bize zamandan kazanç sağlar ve daha sağlıklı kodlar üretmemize olanak tanır. Temelde sıralı olmayan elemanların bir araya gelmesiyle oluşan diziler, belirli bir sayıda veriyi bir değişkene bağlar ve bu değişken üzerinden döngü yapılarıyla bütün verilere çok hızlı bir biçimde arama, sıralama, değiştirme gibi işlemleri uygulamanıza imkân verir. Dizi tipindeki bir değişken içerisinde istediğimiz kadar veri tutmamız mümkündür, ancak burada önemli nokta bütün verilerin tiplerinin aynı olması gerektiğidir.

C# Dersleri – 4: Döngü Yapilari

Programlamanın temellerini oluşturan if/else kontrol yapısını önceki yazımızda incelemiştik. Buraya kadar öğrendiklerimizle artık yazdığımız programın istediğimiz akışı takip edebilmesini ve belirlediğimiz koşullara göre farklı işlemler yapabilmesini sağlayabiliriz. Ancak bu koşullar bazen gerçekten fazla olabilir ve biz aynı kodu birçok kez çalıştırmak zorunda kalabiliriz. Bunun yanında birden fazla yapılacak işlem olduğunda aynı kod bloğunu sürekli tekrar yazmak programcıların çok tercih ettiği bir yöntem değildir. Tekrar edilen kodlar yazdığınız programı ileride modifiye etmenizi zorlaştırırken, karışık bir görüntü oluşturarak kodların okunaklığını azaltır. Örneğin 30 kişilik bir sınıfın notlarını girdiğiniz ve size not ortalamasını çıkaran bir programda, kullanıcıdan her notu almak için kod tekrarı yapmamız oldukça büyük zaman kaybına neden olur.

Üstelik karekök hesaplayan algoritmalarda olduğu gibi bazı durumlarda yapmamız gereken işin ne zaman tamamlanacağını önceden kestirmemiz de imkansızdır. İşte bu tip uzun tekrarlar ya da iştediğimiz şart oluşana kadar aynı işlemin yapılmasını istediğimiz durumlarda döngüleri kullanıyoruz. Önceki yazılarımızda bahsettiğimiz gibi, normalde uygulamamız çalışırken kodlar yukarıdan aşağıya satır satır işlenir ve son satır işlendikten sonra program sonlandırılır. Bizim kullanacağımız döngüler ise süslü parantezler kullanarak oluşturduğumuz kod bloğunun, belirli bir koşul sağlanmışken sürekli kendini başa alarak tekrar işlenmesine imkan tanıyor. C# içerisinde farklı tip döngüler olsa da bunların hepsi barındırdığı koşul sağlandıkça içerisindeki kod bloğunu çalıştırırlar ve koşul yanlış olduğunda sonlanırlar. Şimdi isterseniz bu döngü tiplerinin kullanımını örnekler ile inceleyelim.

C# Dersleri – 3: Program Kontrolleri

C# dilinin yapıtaşlarından sayılan değişkenlere önceki yazımızda değinmiştik. Farklı kullanımlar için çeşitli tipleri bulunan değişkenleri inceledikten sonra, yazdığımız programın akışına yön verecek karar verme mekanizmalarından bahsetmenin zamanı geldi. Program kodları yorumlanmaya başladıktan sonra düz bir akışı takip ederek satır satır işlenirler. Ancak programın gerektirdiği bazı kararlar, girdiler ve mantıksal nedenlerden ötürü bu akışın dallara ayrılarak farklı yönlere gitmesini sağlamak isteyebiliriz. Bu durumda program yürütülürken önceki satırlara geri dönebilir veya ilerideki kod parçalarını çalıştırabilir.

Öncelikle şunu söylemek gerekir ki program akışının yön değiştirmesini sağlayan karar ve kontrol mekanizmaları olmasaydı, bilgisayarların pahalı bir metal yığınından farkı kalmazdı. Programların çeşitli koşullara göre farklı işlemler yapabilmesi, insanların gerçek hayatta farklı koşullar altında farklı davranışlar göstermesi gibidir. Gerçekleştireceği bir eylemde birçok seçenek arasından bulunduğu koşula uygun olanını seçerek tamamlamasına neden olur. Örneğin sabah uyandığınızda nasıl kıyafet seçtiğimizi düşünelim. Dolabımızda birçok çeşit kıyafet olabilir, ancak biz dışarıdaki hava durumuna bakıp karar verir, güneşli ve sıcak bir günde kazak ya da yağmurluk yerine ince bir t-shirt giymeyi tercih ederiz. Bilgisayar programları da amacı doğrultusunda değişik koşulları göz önünde bulundurarak çalışmasını sürdürür.

Karar verme mekanizmalarının çalışması, belli bir koşulun mantık değeri olarak doğru veya yanlış olarak değerlendirilmesiyle ilgili kod bloğunun işlenmesine dayanır. Mantıksal ifadelerin koşul içerisinde değerlendirilmesi, önceki yazımızda bahsettiğimiz mantıksal (boolean) değişkenler kullanılarak yapılır. Hatırlatmak gerekirse, doğru (true) veya yanlış (false) olabilen bu ifade türleri, koşullarını durumunu belirlemek için kullanılır. Bir ifadenin doğru veya yanlış olduğu, programcılar tarafından tanımlanan boolean değişkenler ile belirlenebildiği gibi, mantık öğeleri veya ilişkisel operatörler kullanılarak da belirlenebilir

C# Dersleri – 2: Programciliga Giris

Önceki yazımda C# dilinin temelinde yer alan .NET çatısının yapısını incelemiş, 2000’li yıllardan sonraki tarihi süreci sizlere aktarmıştım. Söz dizimi C/C++ dillerine benzeyen C# özellikle bu dillerden birini veya JAVA kullanmış deneyimli programcılar için alışması çok kolay bir dil. Bu sebeple daha önceden farklı dillerde program yazmış okurlarımız söz dizimine alıştıktan sonra .NET çatısının bizlere sunduğu kütüphaneleri kullanarak farklı uygulamalar geliştirmeye kolayca başlayabilirler. Ancak biz yazı dizimizde programlama dünyasına yeni adım atacak okurlarımızı da düşünerek sayfalarımızda programlama dilinin detaylarına da değinmeye çalışacağız.

Web Sayfaniza Virtual Earth Haritalari Ekleyin

Günümüzde yoğun ilgi gören harita uygulamaları artık üç boyutlu görüntülenebilen, trafik yoğunluğunu bildiren, afet bölgelerindeki hasarı gösterebilen, Microsoft Live Local gibi servislerle bazı şehirlerde gezinmeye imkan veren özelliklere kavuştular. Hatta Dünya’da dolaşmaktan sıkıldıysanız, Google Sky veya bu ay incelediğimiz Microsoft Virtual Telescope gibi uygulamalar ile uzayı keşfetmeye başlayabilirsiniz. Gelişim süreci devam ederken firmalar web programcılarını da unutmuyor; SDK ve API’leri sürekli güncelleyerek uygulamaların başka sayfalara kolayca entegre edilebilmesi için uğraş veriyorlar. Bizde şimdi kullanımı giderek artan Microsoft Virtual Earth kütüphanelerinin yardımıyla web sitemiz için bir harita uygulaması hazırlayacağız.

Ajax Extender nesnelerinin kullanimi

Web programcılarının en çok vaktini çalan unsur, hiç şüphesiz sayfalarda ki küçük ayrıntılarla uğraşmaktır. Ancak detaylara verdiğiniz önem, web sitenizin kullanım kolaylığını arttırırken kullanıcıların sitenizi tercih etme sebebi de olabilir. Hatırlarsanız, geçtiğimiz aylarda projelerimizde kullandığımız “Ajax Control Toolkit” araçları, değişik alanlarda bünyesinde bulundurduğu öğeler ile bizleri büyük bir zaman kaybından kurtarıyordu. Ajax ile entegre gelen Visual Studio 2008 ise Control Toolkit araçlarının kullanımını daha da kolaylaştırarak sayfamızdaki ASP.NET nesnelerini doğrudan bu araçlara bağlamamıza imkan veriyor.

ASP.NET Ajax kullanarak iletisim formu hazirlamak

Ziyaretçilerinizin web sitenizi önemsemesini istiyorsanız, siz de onlara önem verdiğinizi göstermelisiniz. Birçok sitede bulunan iletişim formları, kullanıcıların öneri, istek ve şikayetlerini hızlı bir şekilde ilgililere iletebilmesine imkan tanır. Bizde bu ay ASP.NET Ajax’ın yeteneklerinden faydalanarak şık ve hızlı çalışan bir iletişim formu oluşturacağız. Genel olarak kullanıcıların yazdıklarını belirlenen bir kişiye mail atarak ulaştıran iletişim formları, bizim yapacağımız örnekte bir adım öteye giderek bu işlemin hatasız bir biçimde sonlanmasını sağlayacak.

Senaryoyu biraz daha genişletip, iletişime geçilecek insan sayısını arttırmak da mümkün. Biz örneğimizde dergimiz yazarlarının listesine sahip bir formda kullanıcının istediği yazara hitap edebileceği bir uygulama dizayn edeceğiz. Buradaki problem yazarların aldığı eleştirilere cevap verebilmesi için mesajı yazan kullanıcının iletişim bilgilerinin de iletilmesi gerekliliği. Mesaj göndermek isteyen kullanıcının kendisine cevap verilebilmesi için adı, soyadı ve e-mail adresi gibi bilgilerinin mutlaka girilmesini bekliyoruz. ASP.NET’in formlardaki alanları kontrol edip geçerliliğini onaylayan bazı “Validator” nesneleri bu konuda bize yardım edebilirler. Bu nesneler bir yazı kutusunun (text-box) boş bırakılmaması gerektiğini, yada girilen e-mail adresinin formata uymadığını kullanıcıya hoş bir dille hatırlatıp iletişim problemleri yaşanmasını engelliyorlar.

Blogumu takip eden yada Ajax ile ilgilenen biriyseniz, salt ASP.NET formlarının ne kadar can sıkıcı olduğunu düşünebilirsiniz. Özellikle alanların hatalarını kontrol eden bir form olduğu için, böyle durumlarda sayfanın yenilenmesi ve bilgilerin kaybolması gibi sorunlar sizinle iletişime geçmek isteyen kullanıcınız için iyi bir deneyim olmayacaktır. Ajax ile klasik formları daha interaktif hale getirmek için yapmanız gereken ilk iş kullandığınız Visual Studio 2005 yada Web Developer Express Edition’a gereken http://ajax.asp.net adresindeki “Ajax Extensions” paketini indirerek kurmak. Eğer VS 2008 versiyonuna terfi ettiyseniz, ilgili kütüphaneler hazır geldiği için bir sonraki adıma geçebilirsiniz.

ASP.NET Ajax Kullanarak Facebook Uygulamasi Gelistirmek

Türk halkı olarak gösterdiğimiz ilgi, İngiliz The Sunday Times gazetesine bile haber olan; kullanıcı sayımızı bir ayda %466 artırarak özel bir rekor kırdığımız ve şu anda 3 milyona yaklaşan Türk üyesi bulunan Facebook üzerinde ASP.NET AJAX kullanarak uygulama geliştirebilmek hakkında yazmak istiyorum :)