Ana içeriğe atla

Web Yazılıma Başlangıç Rehberi - 2

Merhaba; tarafıma gelen sorular üzerine böyle bir yazı dizisi hazırlamak istedim.umarım faydalı olur.Ülkemizde ne yazık ki birçok arkadaşımız; özellikle programlama eğitimi veren lise veya yüksekokul vb. dengi okullarda temel düzeyde eğitim alıp,okul bitişi farklı hayaller kurmalarına rağmen hiç beklemedikleri sonlar ile karşılaşıyor,bir çoğu yazılım veya bilgisayar ile dahi ilgisi olmayan işlerde kariyer yapmaya başlıyor.Yazılımcı olarak piyasada faaliyet gösteren arkadaşlar'da ya çok düşük ücretler alarak çok yoğun çalışmak zorunda bırakılıyor veya kendilerini geliştirme fırsatı bulamıyor.Bu durumun farkında olan Firmalar da resmen balık avlar gibi yazılımcı çalıştırma uğraşı içerisindeler. 'Nasılsa piyasada çok var','bu kadar paraya senden daha iyi birisini çalıştırabiliriz', vb. cümlelerle zaten diken üstünde olan arkadaşları zor şartlarda çalışmak durumunda bırakıyorlar.Herşeyden en önemlisi bozuk eğitim sisteminin yarattığı karmaşadır.Eğitim gördüğümüz kurumlarda örnek vermek gerekirse 3 saatlik dersin 1 saatinde PIC Programlama,1 Saatinde Web Tasarım,Kalan 1 Saatinde de WinForms uygulamaları anlatılmaktadır.haliyle her konudan azar azar bilgi sahibi olabiliyoruz.Oysa yapmamız gereken kendimize bir alan seçmek (Web Programlama,WinForms vs.) ve bu alanda uzmanlaşmaya çalışmaktır.Örneğin 1 Saat Javascript,1 Saat ASP.NET 1 Saat'de T-SQL Öğrenmiş olsa arkadaşlarımız eminim çok daha iyi işler başarabiliriz. aslında bu konu bu makale için çok uzun.akşama kadar yazsak anca biter diye düşünüyorum o yüzden fazla uzatmadan konuya girmek istiyorum.bu yazı dizisinde tecrubelerime dayanarak web programlama konusunda kendimizi nasıl daha verimli şekilde geliştirebiliriz bu konuyu ele almak istiyorum.Kendimizi ASP.NET Konusunda geliştirmek istediğimizi varsayalım;


Yeni bir projeye nasıl başlamalıyız ve hangi yolları izlemeliyiz?
yeni bir ASP.NET projesine başlamadan önce projenizin hangi işlevleri barındıracağını kesinleştirin.nerelerde hangi teknolojilerden yararlanacağınızı belirleyin.Yapacağınız işlem ile ilgili hangi teknoloji daha verimli çalışacaksa onu tercih edin.Dışarıdan bir kütüphane kullanacaksanız o kütüphanenin kararlı çalıştığından,özellikle sık kullanıldığından vs. emin olun ki daha sonradan problemler yaşamayın.projenize başlamadan önce öngördüğünüz tüm kütüphaneleri hazırlayın.Kullanacağınız en uygun veri tabanı seçiminizi yapın ve tablo yapınızın diyagramını oluşturup veri tabanını hazır hale getirin.Elinizde mutlaka ASP.NET için Server-Side kütüphane bulunsun.Özellikle veritabanı işlemlerini fonksiyonlar şeklinde gerçekleştirin.Kütüphaneniz ne kadar çok işleve destek verirse o kadar faydasını görürsünüz.Hem geliştirme aşamasında hemde daha sonrasında size çok büyük fayda sağlar.Tüm bunları problemsiz olarak gerçekleştirdiyseniz Bismillah diyip yeni projenize başlayabilirsiniz.

Code Behind ve Inline ne demektir? Hangisini tercih etmemiz gerekir?
Inline çalışma yöntemi; ASP.NET üzerinde proje geliştirirken Sayfanızın HTML Kodlarının içerisinde server-side kodlarınızın bulunması anlamına gelir.Çalıştığınız sayfadaki tüm kodlar tek bir sayfadan yönetilir ve çalıştırılır.Code behind yönteminde ise tam tersi HTML Kodlarınız ile Server-Side kodlarınız ayrı dosyalarda tutulur.Benim görüşüm her zaman için Code-behind yöntemini tercih etmenizdir.Bu hem yazımı,hem bakımı kolaylaştırır.Kodlarınızın okunabilirliğini ve erişimini hızlandırmış olursunuz.


ASP.NET Üzerinde client-side tarafında JavaScript ile yaptığımız tüm işlemleri yapabiliriz.Karşımıza çıkan tüm problemleri yanlızca CSharp.NET veya VB.NET kullanarak mı çözmeliyiz? Yoksa javascript,JQuery vb. diğer dilleri ve kütüphaneleri de öğrenmemiz gerekir mi?
Benim bu soruya cevabım öncelikle ne yapılmak istendiği ile ilgili.eğer bir form post etmemiz gerekiyorsa,işin içinde session,viewstate,statebag gibi kavramlar varsa,mutlak suretle server-side tarafından yapılması uygundur.Client-side tarafından bu işlemler hem uzun zaman alır,daha az güvenlik barındırır,hata yakalama mekanizmasını (server-side olmadığı için intellisense ve debug yapamazsınız) kullanamamış olursunuz. Eğer yapacağınız bir işlemde veritabanı bağlantısı gerekiyorsa zaten Server-Side çalışmaktan başka yol düşünmemenizi öneririm.Bunun haricinde form kontrolü,regexp,hata veya bilgi gösterimi vs. gibi işlemleri veya varsa animasyon vs. zaten bunları javascript veya jquery kullanarak yapmalısınız.

Tasarım işini nasıl halledebiliriz?
tasarım işini iki şekilde çözebilirsiniz.Ya bir template bulup onu düzenleyecek,yada sıfırdan yapmamız gerekecek.Günümüz Web teknolojisinde örneğin BootStrap bu iş için gayet uygun.Yeni Şablonlar yapmak istiyorsanız bootstrap kullanabilirsiniz.Bu sayede her çözünürlüğe ve her cihaza uygun tasarımlar gerçekleştirebilirsiniz.Tasarım ile ilgili bilginizi arttırmak için renk uyumlarını,sıcak soğuk renkleri öğrenebilir ve bol bol farklı siteleri gezerek bilgi edinebilirsiniz.İlk başlarda beğendiğiniz bir sitenin benzerini yapmaya çalışın.Daha sonra zaten devamı gelecektir.veya ben hiç böyle şeylerle uğraşamam derseniz binlerce template arasından istediğinizi seçip indirebilirsiniz.Yanlız unutmayın template'lerin sadece son kullanıcıya görünecek kısımlarını değil diğer bölümlerini de değiştirmeyi unutmayın.Google'a 'free web template' yazıp karşınıza gelen sitelerden aramaya başlayabilirsiniz.

Devexpress gibi araçların kullanımının Avantaj ve Dezavantajları nelerdir?
Devexpress,Telerik gibi 3. parti yazılımlar sizin az kod ile çok iş yapmanızı ve daha iyi görsellik sağlamak için geliştirilmiştir.Özellikle devexpress bu konuda oldukça başarılı.ayrıca sahip olduğu temalar sayesinde hem görünüm anlamında güzel işler çıkartıyor hemde kodlama alanında oldukça rahatlatıyor sizi.Dezavantajlarına gelirsek bu bileşenler yüksek ücretlerle satılmaktadır.Lisanssız kullanım başınıza iş açabilir.Ayrıca kodlamaları ASP.NET'in standart kontrollerinden farklı olduğu için yeni başlıyorsanız problem yaratabilir.öncelikle ufak projelerde,deneme çalışmalarında bilgi edinip o şekilde kullanmanızı tavsiye ederim.


Kodlamanızı kısaltmaya çalışmak
Daha az kod ile daha çok iş yapabilme mantığından yola çıkarak ne kadar çok işi ASP.NET ile birlikte gelen hazır kontrollere yaptırırsak o kadar rahat ederiz mantığı bana göre yanlıştır.Kendiniz için bir sınıf oluşturup mümkün olduğunca bu sınıftan işlemleri gerçekleştirmeniz en doğrusu olacaktır.örneğin gridcontrol için ekleme ve silme işlemlerini kendi kütüphanenizden yapın,gridcontrol üzerinde yanlızca veri gösterin.

AJAX Kullanımı Hakkında
AJAX Teknolojisi sayfanın post edilmeden yenilenmesini sağlayan bir teknolojidir.Günümüzde web sayfalarının %90'ında kullanılmaktadır.AJAX'I doğru kullanmak gerekir.Doğrudan kastım; işlemler esnasında kullanıcıya bilgi vermeniz,timeout sürelerini doğru şekilde belirlemeniz vs. gibi özel durumlardır.Ayrıca Bildiğim kadarıyla AJAX Google'ın sitenizi indexlemesinde negatif bir özelliğe sahip.Yani web sitenizde ne kadar fazla AJAX Kullanırsanız sitenizin Google gözündeki değeri o kadar düşük oluyor.


Şimdilik bu kadar.Bir sonraki makalede görüşmek üzere.Soru,Görüş ve Önerilerinizi Bekliyorum...

Yorumlar

Bu blogdaki popüler yayınlar

PAYTR SANAL POS ASP.NET C# Entegrasyonu

merhaba, bu makalede sizlere PAYTR Sanal pos yapısını .NET üzerinde nasıl çalıştıracağımız ile ilgili bilgi aktarmaya çalışacağım. Ücretsiz başlangıç sağlaması ve sabit ödeme almaması sebebiyle düşük bütçeli e-ticaret yapmak isteyen kişilerin tercih ettiği PAYTR Sanal pos entegrasyonu temelde PHP üzerine kurulmuş. Dolayısıyla .net ile e-ticaret yazmaktaysanız bu sizi bir hayli zorluyor zira firma ile birçok görüşme yapmama rağmen sağlıklı bir .net örneklemesi bulamadım. Baktım olacak gibi değil, sonunda oturdum kendi entegrasyonumu kendim yazdım :). aşağıda detaylı olarak bulabilirsiniz. //using satırlarımızı ekleyelim; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Data; using System.Linq; using System.Net; using System.Security.Cryptography; using System.Text; using System.Web; using System.Web.Script.Serialization; using System.Web.UI; using System.Web.UI.WebControls; //aşağıdaki sabit PAYTR Fonksiyon

ASP.NET Sayfalar arası veri taşıma işlemleri

merhaba; bu yazımda sizlere asp.net üzerinde sayfalar arasında veri taşıma işlemlerinden bahsetmek istiyorum.hepimizin bildiği gibi uygulamarımızda sayfalarımız arası haberleşmeler büyük önem arzetmektedir.bazı sayfalarda bazı işlemlerin yerine getirilebilmesi için diğer sayfalardan gelecek verilere ihtiyaç duyulabilir(GET).ASP.NET üzerinde veri taşıma işlemleri aşağıdaki şekillerde yapılabilir. 1-)QueryString : en yaygın ve basit kullanıma sahip olanıdır.istenilen verileri sayfayı post ettiğiniz zaman yönlendirildiğiniz sayfaya URL üzerinden taşır. Kullanımı : a sayfasından b sayfasına isim taşıyalım. a sayfasında linkinizi şu şekilde değiştirirseniz: Response.Redirect("gidileceksayfa.aspx?isim=can"); Tarayıcınızın URL kısmına baktığınızda: www.siteadi.com/b.aspx?isim=can olarak görürsünüz.a sayfasından veri aktarımı tamamlanmıştır.bundan sonraki adım b sayfasından gelen veriyi almaktan ibarettir.o da şu şekilde yapılır: b sayfasında "isim" adında b

ASP.NET - Aynı anahtara sahip bir girdi zaten var.

Eğer ASP.NET ile uğraşırken böyle bir hata aldıysanız aşağıdaki paragraf tam size göre; " Aynı anahtara sahip bir girdi zaten var."  hatasının sebebi sayfanızdaki birden çok nesne için  ClientIDMode Özelliğini " Static " olarak ayarlamanızdan kaynaklanmaktadır.Normal şartlarda sayfa içerisindeki her kontrolün ID si birbirinden farklı olmalıdır.bu tanımı düzelttiğinizde sorununda çözüldüğünü göreceksiniz.Burdaki problem şu ki visual studio hatayı farklı satırlarda veriyor.buda özellikle ilk defa böyle bir hata ile karşılaşıyorsanız çözümü inanılmaz zorlaştırıyor.