Kategori arşivi: C#, VB.NET, ASP.NET

Asp.Net, C#, Vb.Net uygulama örnekleri, ipuçları, .Net Framework 1.1 – 2.0 – 3.0 – 3.5 – 4.0 ile ilgili notlar

Program ayarlarının dinamik kaydedilmesi

Özellikle desktop uygulamalarda kullanıcı veya uygulama bazlı bazı ayarları korumak isteriz. Örneğin kullanıcının bir formu en son hangi modda, hangi büyüklükte veya renk ayarlarında kapattığı bilgilerini saklayıp kullanıcının programı bir sonraki açışında bu ayarları yüklememiz her zaman ihtiyaç duyduğumuz bir durumdur. Framework 2.0, bu amaçla System.Configuration.ApplicationSettingsBase sınıfı ve en önemlisi bu işlemleri yapmamız için settings designer ekranı sunar. Okumaya devam et

Uygulamanın Idle Modunu Yakalamak(C#, VB.NET)

“Idle” kavramı, bir uygulamanın tüm işlerini(process) bitirip atıl moda geçmesini temsil eder. Aynı kavram, işletim sistemleri için de kullanılarak işletim sisteminin tüm işlemlerini bitirip bekleme moduna geçmesi anlamına gelir. Birçoğumuzun kullandığı GTalk programında uzun süren bir hareketsizlik olduğu zaman kullanıcı idle durumuna geçirilir. Programımızın atıl durumdayken bazı özel işler yapmasını sağlamak için Idle olayı kullanılır. Programın atıl durumda olması demek, üzerinde herhangi bir klavye, mouse hareketi olmadığı için arka tarafta da kuyrukta herhangi bir processin işlenmiyor veya beklenmiyor olmasıdır. Kısacası programın tamamen, durağan moda geçmesidir. Windows uygulamaları, ne zaman Idle moduna geçtiklerini bilecek yeteneğe sahiptir. Özellikle gelişmiş programlama dillerinde uygulamanın Idle modunu yakalamak için belli componentler sunulur. Bu amaçla VB.NET, C# tarafında Windows formunu temsil eden Application nesnesinin Idle eventi mevcuttur. Uygulama tüm processlerini bitirip hareketsiz duruma geçtiği anda bu event tetiklenir. Bu event, herhangi bir kontrol tarafından değil doğrudan Windows tarafından tetiklenir. Okumaya devam et

C# & VB.NET’te String veri türü

Birçoğumuz için sadece bir veri türü olmakla sınırlı “string” tipini için özel bir başlık altında işlemek ilginç gelmiş olabilir. Bu başlığın amacı okuyucuda bir merak uyandırmak yerine programlarımızda en çok kullandığımız “string” veri türünün diğer veri türlerinden farklı bir konuma sahip olduğunu anlatmaktır. Özellikle string tabanlı ekleme, kesme, değişim, öteleme gibi işlemlerde string veri türünün karakterini bilmekte fayda vardır.
Bilindiği gibi .NET platformunda iki tür veri tipi kullanılabilir; değer veri türleri(value data type) ve referans veri türleri(reference data type). Bu iki veri türünü birbirinden ayıran özellik, değer türlerin sabit uzunluklu olduğu ve memory’nin stack alanı üzerinde depolanmaları, referans türlerinin de genellikle değişken büyüklüğe sahip olmaları ve kendilerinin memory’nin heap alanı, referanslarının ise stack üzerinde depolanmalarıdır. int, datetime, decimal gibi tipler, değer türü, class, array gibi nesne tabanlı tipler de referans türü olarak örneklendirilebilir. Bir çok yazılımcı tarafından string veri tipi de değer türüymüş gibi algılanmaktadır. Okumaya devam et

Interface üyelerinin explicit uygulanması(VB.NET & C#)

Nesne tabanlı programlamayı destekleyen dillerin temel karakterinden biri de inheritance(kalıtım) olayı destekliyor olmasıdır. Fakat multiple inheritance olarak tanımlanan çoklu kalıtım, C++ tarafından destekleniyorken Java, .NET tarafından desteklenememektedir. CLR tabanlı diller, çoklu kalıtım işlemini interface yapılarıyla gerçekleştirir. Böylece bir sınıfın birden fazla arabirimi uygulamasını sağlamış oluruz. Bu uygulama işlemi implicit(gizli, bilinçsiz) ve explicit(açık, bilinçli) olarak gerçekleşir. Implicit yöntemi, klasik bir şekilde bir veya daha fazla arabirimin, sınıfa uygulanması ve arabirim üyelerinin sadece isimleriyle kullanılmasıdır. Fakat özellikle aynı isimde üye içeren birden fazla arabirimin uygulanması durumunda sıkıntı yaşanır. Bunu aşmak için arabirim üyeleri explicit yöntemiyle kullanılır.VB.NET tarafından otomatik olarak explicit yöntemi kullanılır. Okumaya devam et

ASP.NET’te genel hata yönetimi

Web uygulamalarında, kullanım alanlarının geniş olması, tanımlı tanımsız binlerce ziyaretçiye hizmet veriyor olması ve bu ziyaretçilerin farklı kullanım seviyelerine sahip olmaları sebebiyle hata oluşma ihtimali yüksektir. Bu ihtimali aza indirgemek için kullanıcı ile sunucu arasında çift yönlü aktarılan verilerin daima doğrulama işlemlerinden geçirilmesi gerekmektedir. Böylece kullanıcının, uygulamaya zarar vermesi veya sunucunu ziyaretçiye doğru olmayan bilgiyi gönderme ihtimali azaltılmış olur. Buna rağmen örneğin sistemde olmayan bir sayfanın istenmesi gibi bazen düşündüğümüz ihtimallerin dışında da hatalar oluşabilir. Bu nedenle sitenin herhangi bir alanında meydana gelen tüm hataları yönetiyor olmamız lazım. Bunu yapmanın farklı yolları olsa da ASP.NET, bu amaçla etkili bir hata yönetimi(error handling) sunmaktadır. Okumaya devam et

Döviz Kurlarının MB’den alınması

Muhasebe, ERP, portal gibi uygulamalarda vazgeçilmez içeriklerinden biri de Merkez Bankası(MB) günlük döviz kurları konusunda kullanıcının bilgilendirilmesidir. Bu küçük ihtiyacı karşılamak için MB, kendi sitesinde günlük kurları, XML formatında sunuyor. Bizim yapacağımız işlem, bu xml dosyasını okuyup ilgili parse işlemlerini yapmaktır. Bunun için .NET Framework’ün, System.Net kütüphanesi kullanılır. Bu kütüphane, Internet uygulamalarını daha kısa sürede ve kolayca geliştirmek için gerekli sınıfları içermektedir. Bu bölümde HttpWebRequest ve HttpWebResponse sınıflarını kullanacağız. Okumaya devam et

GridView’de alfabetik sayfalama

Datagrid, GridView kontrollerde sayfalama yaparken default olarak Numeric veya NextPrevious modları sunulur. Bununla beraber bu kontroller, özel bir sayfalama şekli oluşturmamıza da izin vermektedir. Bu yazıda özellikle cari hesap kartlarının, üyelerin listelendiği sayfalarda desktop uygulamalarından kalma bir alışkanlık olan alfabetik sıralamanın nasıl yapılacağını göreceğiz. Okumaya devam et

Bir uygulamayı aynı anda birden fazla çalıştırmamak

Bir .NET uygulamasının aynı anda sadece bir örneğini(single instance) çalıştırmak için birçok yöntem kullanılır. Burada bu yöntemlerden en çok kullanılan ve en hızlı olan mutex metodunu kullanımını örneklendireceğiz. Mutex(Mutual Exclusion) fonksiyonu, belli kaynakların yalnızca bir thread tarafından kullanılmasını sağlayan böylece processlerin birbirini engelleme sorununu ortadan kaldıran threading işleminde önemli rol oynayan bir işletim sistemi nesnesidir. Bir mutex’i, programların bir t zamanında sadece bir kere çalışmasını sağlamak amacıyla geliştirilmiş senkronizasyon tabanlı kilit yapısı olarak düşünebiliriz. Okumaya devam et

Web Servisin URL adresi değişirse

Bir web servisi yazdık ve bunu bir client uygulamasında referans olarak kullanmaya başladık. Fakat bir süre sonra bu web servisinin(*.asmx) yayın yaptığı Urladresi değişti. Bu durumda bilindiği gibi bu servisi kullanan uygulamada yeniden “Add Web Reference” menüsünden yeni Url adresini güncellememiz ve uygulamamızı recompile etmemiz gerekir. Bu işlemi yaptığımızda VS.NET, otomatik olarak gerekli proxy nesnesini oluşturur. (Ve client uygulamamız, bu proxy nesnesi üzerinden web servisiyle haberleşir.)
Her Url adresi değişikliğinde client uygulamasını yeniden derlemek deployment açısından pek mantıklı bir fikir değildir. .NET Framework, bu yönteme alternatif olarak değişikliğin kolayca yapılacağı bir yol sunar; Okumaya devam et

SQL Server Language ve Collation kavramı

SQL Server Language ve Collation Nedir ?

Bu makalede SQL Server’da language ve collation kavramlarının farklılıklarından bahseceğiz. Language kavramı, mesajlar, date/time, ay/gün isimleri, para formatı ve birimi gibi yerel bilgileri desteklemekle sınırlıdır. SQL Server, kendi içerisinde birçok dile ait yerel bilgileri taşır. Bu bilgiler, kullanıcıların oturumlarına bağlı olarak uygulamalarda farklı dil değerlerini göstermelerini sağlamaktadır.
SQL Server’in desteklediği dil veya diller hakkında ayrıntılı bilgi almak için sp_helplanguage procedure kullanılabilir. Bu procedure, @language parametresi girilmezse tüm dillerin ayrıntısı listelenir. Language tanımlamaları, sys şemasına bağlı syslanguages tablosunda saklıdır.

--Bütün dilleri listeleyelim.
EXEC sp_helplanguage
--Sadece Türkçe dilinin bilgilerini görelim
EXEC sp_helplanguage turkish
--Doğrudan syslanguages tablosunu sorgulayalım.
SELECT * FROM sys.syslanguages WHERE alias='turkish'

SQL Server’da dil ayarı sunucu ve kullanıcı(oturum) bazında etkili olur. SQL Server’in instanceni kurarken language değerini de set edebiliriz. Sunucunun default dil değerini Sever Properties penceresindeki Advanced sekmesindeki Default Language bölümünden görebilir ve değiştirebiliriz. Programatik olarak T-SQL ile değiştirmek için sp_configure yordamı kullanılır. Okumaya devam et