Osman KURT

Kendime Not

ASP.Net le Bilgisayarda ki Yazıcı Bilgilerine Ulaşmak ve Listelemek

Bilgisayarımızda yüklü yazıcı bilgilerine ulaşmak yada kullanıcının bu bilgilere ulaşmasını sağlamak gerekebilir bazen. Bende bu yüzden bu çok kodcuğu sizinle paylaşmak istedim. Kodcukdiyorum çünkü gerçekten küçük bir kod.

İlk önce default.aspx sayfamıza bir adet dropdownlist atıyoruz ki yazıcılarımızı orada listeleyelim.Sonra Default.aspx.cs sayfamıza geliyoruz ve page load olayımıza

DropDownList1.DataSource = System.drawing.Printing.PrinterSettşngs.InstalledPrinters;
DropDownList1.DataBind

Bu kodu yazdıktan sonra ekranımız da yazıcılarımızın görüntüsünü görebiliriz. 

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

Asp.net session time out problemi

Asp.net ile web uygulaması geliştirirken üye girişi , kimlik doğrulama işlemleri yaparız ve bu bilgileri session veya cookie de saklarız..Session da tuttuğumuz bu bilgileri sayfalar içinde coğu kez kullanırız.

Fakat Session olsun Cookie olsun time out süreleri vardır ve bu süreyiz sizin belirleyebildiğiniz gibi default olarak da değer alabiliyorlar.

Bu süre sonra erdiğinde yani Session time out olduğunda kullanıcı  tekrar giriş sayfasına yönlendiririz ve giriş yapmasını isteriz.Ama burda kullanıcı açısından can sıkıcı bir durum oluşur.

Nedir bu durum derseniz  session düştüğü sayfaya tekrar yönlendirmek...

if (Request.UrlReferrer != null)
            {
                if (!IsPostBack)
                {
                    Session["referer"] = Request.UrlReferrer.AbsoluteUri;
                }
            }

            if (Session["referer"] != null)
            {
                Response.Redirect(Session["referer"].ToString());
            }

Bu olayı sayfanın load kısmına yazıyoruz ve problem çözüldü.

Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Garfiker

İsim Alanları ve .NET Sınıf Kütüphanesi

Bu yazımızda C# dilindeki namespace ler hakkında geniş bir bilgi edineceğiz. Bildiğiniz gibi programlama dillerinde, programcıların işlerini kolaylaştırmak için bir takım hazır kütüphaneler mevcuttur, bu kütüphanelerden bazıları standart olmakla birlikte bazıları programcılar tarafından sonradan geliştirlmiş ve kullanıcların hizmetine sunulmuştur. Mesela MFC ve ATL gibi kütühanelerin kendilerine has amaçları vardır, MFC kütüphanesi ile bir takım hazır C++ sınıflarına ulaşarak temelde zor olan bir takım Windows platformuna özgü işlemleri (forms, dialog box vs.) yapabiliriz. Bu da MFC programcılarına çalışır bir uygulama yapmak için daha az zaman harcatır. Bu tür kütüphaneler Visul Basic te ve Java dilinde de vardır. Fakat bu dillerin aksine C# dili ile gelen hazır bir takım sınıf kütüphaneleri bulunmamaktadır, kısacası standart bir C# kütüphanesi mevcut değildir. Bu demek değildir C# ile işimiz daha zor olacak, aslında daha kolay, .NET Framework dediğimiz altyapının bize veya diğer programlama dillerini kullanan programcılara sunduğu bir takım temel türler ve sınıflar mevcuttur. Bütün bu sınıfları ve türleri binary düzeyde iyi oırganize edebilmek için .NET, namespace kavramını sıklıkla kullanmaktadır. Demekki .NET teki sınıf kütüphaneleri bir dilden bağımsız bir yapıdadır. MFC gibi sadece C++ için yada başka bir dil için geliştirilmemiştir. Çok normal olarak Visual Basic.NET kullanıcısı ile C# kullanıcısı aynı kütüphaneden faydalanırlar.

Namespace ler .NET Framework sınıf kütüphanesindeki veri türlerini ve sınıfları kullanabilmemiz için C# dilinde using anahtar sözcüğü ile birlikte kullanılır ve derleyiciye bildirilir. Diğer dillerde ise bu isimalanları farklı şekilde derleyiciye bildirilir, ama temelde yapılan iş .NET Framework sınıf kütüphaneslerini kullanma hakkı almaktır. (Her yönüyle C# 4.0 – Sefer ALGAN)

Microsoft.CSharp : C#.Net dilini kullanarak derlemeyi ve kodlamayı sağlayan sınıfları içerir.
Microsoft.JScript : JScript dilini kullanarak derlemeyi ve kodlamayı sağlayan JScript Runtime ile sınıflarını içerir.
Microsoft.VisualBasic : Visual Basic, .Net Rumtime’ı içerir.Bu runtime, visualbasic.net dili tarafından kullanılır. Bu ad uzayı aynı zamanda visual basic programlama dili için derlemeyi ve kodlamayı sağlayan sınıfları da içerir.
Microsoft.Vsa : .Net Framework için, runtime’da kullanılmak üzere script motorlarını uygulamalarımıza yerleştirmeyi sağlayan arayüzleri içerir.
Microsoft.Win32 : Bu namespace bize 2 farklı sınıf sunar. Bunlardan birincisi işletim sistemince üretilen olayları işleyen, ikincisi ise sistem registry işleyen sınıflardır.
System : Ortak kullanıma sahip değerleri, referans edilen veri türlerini, olayları ve bu olayların işleyişlerini, çeşitli arayüzleri, özellikleri ve işlem hatalarını tanımlayan temel sınıfları içerir.
System.CodeDom.Compiler : Yazdığımız programa (çalışan programa) kod veya script ekleyebilmemizi sağlayan sınıftır.
System.Collections : Çeşitli nesne koleksiyonlarını tanımlayan arayüz ve sınıfları içerir. Örnek olarak; list, arraylist ve binnary’i verebiliriz.
System.Configuration : Yazdığımız programın içinden .net framework konfigürasyon ayarlarına erişmemizi sağlayan arayüz ve sınıfları içerir.
System.Configuration.Assembly : Bir assembly konfigürasyonunu değiştirmeyi sağlayan sınıfları içerir.
System.Data : Veritabanı kullanan projelerimizde çok işimize yarayacak olan sınıftır. Ado.Net mimarisinin temelini içinde barındıran sınıflardan oluşur.
System.Data.OleDb : .Net Data Provider’ı içerir. Bu namespace, veritabanı gibi verikaynaklarına erişim için bir sınıflar koleksiyonu sağlar.
System.Data.SqlClient : .Net Data Provider’ı içerir. Bu namespace’te oledb namespace’ine benzer bir şekilde, veritabanı gibi verikaynaklarına erişim için bir sınıflar koleksiyonu sağlar.
System.Data.SqlTypes : Sql Server içindeki veri türleri için çeşitli sınıflar tanımlar. Bu sınıflar diğer veri türlerine göre daha güvenli ve hızlıdır. Bu sınıfların kullanılmasıyla birlikte, olası tip dönüşümü sorunları ortadan kalkmaktadır.
System.Diagnotics : Sistem süreçleri, olay logları ve performans sayaçları ile etkileşim için gerekli sınıfları içerir. Bu namespace ek olarak, yazdığımız kodun adım adım işlenimi yada hata ayıklama sistemi için özel sınıflara da sahiptir.
System.Drawing : GDI+ (Graphics Device Interface) temek grafik işlevlerine erişim sağlar. Bu tip işlevlere örnek olarak; design, imaging ve printing verilebilir.
System.EnterpriseServices : COM+ servis mimarisi içerir. Bu namespace .Net Framework nesnelerini kurumsal uygulama ve projeler için daha pratik bir hale getirir.
System.Globalization : Kültürel bilgileri tanımlayan sınıfları içerir. Örnek olarak; dil, ülke, takvim, tarih, para birimi, ve sayılarla alakalı bilgiler verilebilir.
System.IO : Dosyalar üzerinden okuma ve yazmayı sağlayan veri türlerini içerir.
System.Net : Bilgisayar ağlarında kullanılan protokoller için arayüz sağlar. WebRequest ve WebResponse sınıfları, internet kaynaklarını kullanan ağ servislerinin gelişimi için temel oluşturur.
System.Net.Sockets : Ağ erişimi için önemli ve dikkat edilmesi gereken kontrollere ihtiyaç duyan yazılım geliştiricileri için, Windows Sockets (WinSock) arayüzüne olanak tanıyan sınıftır. Soket programlama için önemli özellikler içerir.
System.Object : Tüm .Net yönetimli sınıflar system.object sınıfından kalıtımla gerçekleşir. Bu kalıtım visual basic ve c# gibi dillerde compiler tarafından otomatik olarak algılanır. Object sınıfı, hiyerarşinin en üstünde yer aldığından bu tipteki bir değişkene diğer nesne referansları da atanabilir. Object sınıfı diğer tüm sınıflar içinde kalıtımla ortak hale gelen; equals, finalize, gettype, gethashcode, memberwiseclone ve tostring metotlarını içerir.
System.Runtime.Remoting : Dağıtık uygulamalar yaratmak için gereken hertürlü sınıf ve arayüzü içerir.
System.Runtime.Remoting.Channels : Uzaktaki bir nesnenin metotunun, bir istemci tarafından çağırımında kullanılan ulaştırma sisteminin, kanal ve kanal havuzlarını işleyen, destekleyen bütün sınıflarını içerir.
System.Runtime.Remoting.Channels.Http : HyperText Transfer Protokolünü kullanan tüm kanalları içerir.
System.Runtime.Remoting.Channels.Tcp : Transmission Control Protokolünü kullanan tüm kanalları içerir.
System.Security : CLR (Common Language Runtime) güvenlik sisteminin altında bulunan yapıyı sağlayan ve izinler için temel sınıfları içeren sınıftır.
System.Security.Cryptography : Şifreleme sınıflarını içinde barındırır. 3 çeşit algoritması vardır. Bunlar ; simetrik anahtar algoritması (DES, IDEA, RC5 vb.), asimetrik anahtar algoritması (RSA), karışık algoritma (PGP)’dır. Bu sınıf; sayı üretimi, hashing ve şifreleme gibi güvenli encoding ve decoding içeren servisleri içerir.
System.Security.Permissions : Algoritmaya bağımlı kalarak, işlemlere ve kaynaklara erişimi kontrol eden sınıfları içerir.
System.ServiceProcess : Windows servis uygulamaları gerçekleştirmeyi, kurmayı, yönetmeyi ve denetlemeyi sağlayan tüm sınıfları içerir.
System.Text : ASCII, Unicode, UTF-7 ve UTF-8 gibi karakter encodingi sağlayan tüm sınıfları içerir.
System.Text.RegularExpressions : .Net Framework regular expressions engine için hertürlü erişimi sağlayan sınıfları içerir. Bu namespace ise .net framework ile çalışabilen her programlama dili yada platformdan kullanılabilen regular expressions işlevselliği sağlar.
System.Threading : Thread bir işlemcinin birden çok iş yapması için yaratılan kod parçasıdır. Bu çoklu iş parçacıklarını programlamayı sağlayan sınıf ve arayüzleri ise system.threading sınıfı içerir.
System.Timers : Bu sınıf belli aralıklardaki olayları tetiklemeyi sağlayan timer bileşenini içerir.
System.Web : İstemci/sunucu iletişimini sağlayan sınıf ve arayüzleri içerir. Bu namespace, http isteğiyle bilgi içeren http request sınıfını, istemciye giden çıktıyı yöneten http response sınıfını ve sunucu taraflı zamanlar için erişim sağlayan HttpServerUtility nesnesini içerir. Bu namespace aynı zamanda cookie işleme, dosya transferi, exception information (istisna bilgisi) ve çıktı ön bellekleme denetimlerini de içerir.
System.Web.Caching : Sunucudaki kaynaklardan en sık kullanılanları ön belleğe almayı sağlayan sınıfları içerir.
System.Web.Mail : CDOSYS mesaj sistemini kullanarak, mesaj oluşturma ve göndermeyi sağlayan sınıfları içerir.
System.Web.Security : Web sunucu uygulamalarında, ASP.Net teknolojisinin güvenliğinin sağlanabilmesi için kullanılan sınıfları içerir.
System.Web.Services : Web servislerinin oluşturulması ve kullanımı için gereken sınıfları içerir. Web servisleri, internet üzerinde bulunan sunucular tarafından sağlanan ve standart internet protokelleri üzerinden çalışan, programlanabilir birimlerdir.
System.Web.SessionState : Sunucudaki bir web uygulaması içinde tek bir istemciye özel verinin tutulmasını sağlayan arayüz ve sınıfları içerir. Session state yani oturum durum verisi, kullanıcıya uygulamayla sürekli bir bağlantı varmış hissini verir.
System.Web.UI : Bir web sayfası üzerinde kullanıcı ara yüzünü oluşturan kontrollerin yaratılması için gereken sınıf ve arayüzleri sağlar. Bu namespace ortak bir işlevsellikle HTML yada web kullanıcı kontrolleri olmak üzere tüm kontrolleri içeren control sınıfına sahiptir. Ayrıca web uygulamasında bir sayfaya istem olduğu anda oluşturulan page kontrolünü de içerir.
System.Web.UI.HtmlControls : Bir web sayfası üzerinde HTML sunucu kontrolleri yaratmayı sağlayan sınıfları içerir. HTML sunucu kontrolleri sunucuda çalışır ve her tarayıcı tarafından desteklenen HTML tagleriyle temsil edilirler. Bu durum, bir web sayfasındaki HTML elemanlarının, program içinden kontrol edilebilmesini sağlar.
System.Web.UI.WebControls : Bir web sayfası üzerinde web sunucu kontrolleri yaratabilmeyi sağlayan sınıfları içerir. Web kontrolleri sunucuda çalışır ve calendar gibi özel amaçlı kontrollerle beraber button ve textbox gibi form kontrollerini de içerir. Bu namespace aynı zamanda bir web sayfası üzerindeki kontrollere, program içinden erişebilmeyi de sağlar. Web kontrolleri, HTML kontrollerinden daha farklı ve bağımsızdır. Nesne modelleri, HTML sözdizimiyle alakasızdır.
System.Windows.Forms : Windows tabanlı, Microsoft Windows işletim sisteminin sahip olduğu, zengin kullanıcı arayüzü olanaklarını kullanan uygulamaları yaratabilmek için gereken tüm sınıfları içerir.
System.Xml : Xml (extensible markup language) dili için standartlara dayalı destek sağlar.
System.Xml.Schema : Standartlara dayalı xml şemaları (xsd) için destek sağlar.
System.Xml.Serialization : Xml biçimindeki dökümanlara nesnelerin belli zamanlardaki halinin saklanmasını sağlayan sınıfları içerir.
System.Xml.XPath: Xpath ayrıştırıcısı ve değerlendirme motorunu içerir.
System.Xml.Xsl : Xslt (Extensible S. Transformation) için destek sağlar.

Görüşmek Üzere;

Osman KURT
Yazılım Geliştirici ve Grafiker

Jamshid Hashimi