Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

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

Asp.net ile Sayfaya Dinamik Olarak Css ve JavaScript Dosyaları Ekleme

Asp.net ile geliştirdiğimiz web projelerinde Css ve Javscript dosyalarımızı sayfamıza eklerken design tarafından ekleriz genelde.Bu yazımızda ise cs tarafında kod yardımı ile nasıl ekleyebiliriz ona değineceğim.Bu yönetimn artısı şu şekilde düşünebilir.Örneğin urlrewrite kullanıyorsa zaman zaman javascript hatası alabiliyoruz.Bu hataları minimum seviyeye çekmek için kod yardımı ile script ve css dosyalarını yükleyebiliriz.

Dosyanın yolunu ve adını belirterek sayfamıza dinamik olarak pageload olayında aşağıdaki fonksiyon ile ekleyebiliriz.

public void css()
    {
        System.Web.UI.HtmlControls.HtmlLink css = new System.Web.UI.HtmlControls.HtmlLink();
        css.Href = "~/style.css";
        css.Attributes.Add("type", "text/css");
        css.Attributes.Add("rel", "stylesheet");
        this.Header.Controls.Add(css);
    }

Bu kodlarımızı yazdıktan sonra işlemimiz sona ermiş bulunmakta.

Not: Bu kodlarımızı eğer masterpage sayfasında kullanmah istersek this.Header.Controls.Add(css) şeklinde yapmamız lazım aksi takdirde hata verecektir.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net de Mail ile Dosya,Resim Göndermek

Evet arkadaşlar bir çoğumuzun işine lazım olmuştur yada olucaktır. iletişim formlarında yazının yanı sıra herhangi bir dosya göndermeyi yapan bir kod yazıcam size. Eminim ki işinize yarıcaktır. Şimdi iletişim formumuzu oluşturduktan sonra  gönder butonumuzun altına kodlarımızı yazmaya başlayalım.

SmtpClient mailClient = new SmtpClient("mail.sietadi.com", 111); //Bu kısma port nosunu yazın
                NetworkCredential cred = new NetworkCredential("mail adresi", "şifre");
                mailClient.Credentials = cred;

                MailMessage contact = new MailMessage();
                contact.From = new MailAddress(txtmail.Text);
                contact.Subject = "Başlık";
                contact.IsBodyHtml = true;
                contact.Body = "<table><tr><td>Firma Adı :</td><td>" + txtfirmaadi.Text + "</td></tr><tr><td>İlgili Kişi :</td><td>" + txtilgilikisi.Text + "</td></tr><tr><td>Tel No :</td><td>" + txttelno.Text + "</td></tr><tr><td>Fax No :</td><td>" + txtfaks.Text + "</td></tr><tr><td>Adres :</td><td>" + txtadres.Text + "</td></tr></table>";
                if (FileUpload1.HasFile)
                {
                    Attachment a = new Attachment(FileUpload1.FileContent, FileUpload1.FileName);
                    contact.Attachments.Add(a);
                }
                contact.To.Add(gidicem mail adresi);
                mailClient.Send(contact);

contact.body alanını kendinize göre düzenleyin formunuz ne var ne yok bilmediğim için bişey diyemiyorum ben kendime göre yaptım.

Kodlarımız bu kadar arkadaşlar umarım faydalı olur.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net de Server Üzerinde ki Resimi Tamamen Silme

Arkadaşlar bu kodumuzda çok önemli gerçekten bir önceki yazımda server üzerinde ki resimleri listelemeyi göstermiştim. Bu yazımda listelediğimiz resimlerden gereksiz olanını silmemize yaran kodumuzu vericem.

default.aspx sayfamıza ilk olarak alt kısımda ki kodu ekleyelim isterseniz.

<asp:Button ID="Button2" runat="server" Text="Sil" onclick="Button2_Click" />
        <asp:DropDownList ID="DropDownList1" runat="server">
        </asp:DropDownList>

sonra default.aspx.cs sayfamıza gelelim ve kodlarımızı yazmaya başlayalım. Ben burda resim silme işlemini dropdownlist den isimlerini seçerek yaptım siz isterseniz buraya bir textbox koyabilir ve resim ismini elle girerek silme işlemini gerçekleştirebilirsiniz.

default.aspx.cs sayfamıza alt kısımda bulunan kodlarımızı yazıyoruz.


File.Delete(Server.MapPath("~/Resim/"+DropDownList1.SelectedValue));

Evet arkadaşlar işlemimiz sonlanmıştır kodlarımız hayırlı uğurlu olsun :D

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

 

ASP.Net de Klasör İçinde ki Dosyaları Sayfa da Görüntüleme

Sevgili programcı arkadaşlarım bu yazımda size kullandığımız bir klasör içinde bulunan image dosyalarını sayfada görüntüleme konusunda yardımcı olacağım. İsterseniz hiç vakit kaybetmeden kodlarımızı yazmaya geçelim. Bu nerde işimize yarayacak derseniz sınırlı hosting kullanımlarında çok yer kaplayan image dosyalrımızı sağlıklı bir şekilde yönetmemize yarayacaktır diye düşünüyorum.

İlk Olarak bir proje oluşturuyoruz ve gelen default.aspx dosyamıza bir adet panel atıyoruz.

<asp:Panel ID="Panel1" runat="server">
</asp:Panel>

Panelimizi attıktan sonra kod kısmımıza geçelim ve kodlarımızı yazmaya başlayalım.

default.aspx.cs dosyamıza geliyoruz ve alt kısımda görüdüğünüz kodları yazmaya başlıyoruz.

 DirectoryInfo klasorBilgisi = new DirectoryInfo(@"C:\Users\osmankurt\Desktop\ResimeYaziYazma\Resim");

        foreach (FileInfo dosya in klasorBilgisi.GetFiles("*.*"))
        {
            Literal ltr = new Literal();
            Panel1.Controls.Add(ltr);

            ltr.Text = "<a href='Resim/"
                + dosya.Name + "'/><img src='Resim/"
                + dosya.Name + "' width='100px' height='100px' border='0'></img></a>" + "<br/>Resim/" + dosya.Name + "<br/>";
        }

Bu kodlarımızın çalışması için sayfanın en üst kısmına

using System.IO;

Kütüphanemizi ekliyoruz.

Bu kodlarımızı ben sayfamın page_load olayına yazdım sayfa yüklendiğinde otomatik olarak linklerini ve resimlerin görüntüledim.

Umarım faydalı bir yazı olmuştur.

Görüşmek üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net de Resime Boyut Verme

Birçok projemizde kullanmamız gerekn bir olay bu. Yaptığımız projede resim galerisi yapıyoruz ama galerideki resimleri listelediğimizde o sayfaya giren kişinin bilgisayarı çok fena kasılıyo ve buda web sayfanızın ziyaretçi kitlesini hızlı bir şekilde aşşağıya çekebiliyor. Buda normal bir olay. Çünkü siz tutup 1027x768 px lik bir resmi 100x100 px bir boyutta gösteriyosunuz tmm ama resmin orjinal boyutu büyük olduğu için hem yüklenirken hemde gösterilirken pc yi kasacaktır. Bende bu hatayı çok yaptım. O yüzden bu kodu yazmaya başladım. Boşuna dememişler yazılım ihtiyaçtan doğar diye.

Şimdi ilk olarak Boyut.aspx dosyası oluşturalım ve içini alt kısımdaki gibi dolduralım.

<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<asp:Button ID="Button1" runat="server" Text="İşlem Yap"
onclick="Button1_Click" /><br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button2" runat="server" Text="Sil" onclick="Button2_Click" />

Bu kısmı oluşturduktan sonra isterseniz asıl kod kısmımızı yazma başlayalım. hemen boyut.aspx.cs dosyamıza geçiyoruz ve kodlarımızı yazıyoruz.

private void boyutlandir(string fileName)
{
Bitmap orjinalResim = new Bitmap(Server.MapPath(fileName));
int resimGenislik = 600;
int resimYukseklik = 450;
Size yeniResimBoyut = new Size(Convert.ToInt32(resimGenislik), Convert.ToInt32(resimYukseklik));
Bitmap boyutlandirResim = new Bitmap(orjinalResim, yeniResimBoyut);
boyutlandirResim.Save(Server.MapPath("~/Resim/" + fileName), ImageFormat.Jpeg);
}
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string resimAd = FileUpload1.FileName;
FileUpload1.SaveAs(Server.MapPath(FileUpload1.FileName));
boyutlandir(resimAd);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
try
{
File.Delete(Server.MapPath("~/Resim/"+TextBox1.Text));
Response.Write(alarmVer.msjBox("Resim Başarıyla Silinmiştir","boyut.aspx"));
//ya classı oluşturun yada bu satırı yazmayın...
}
catch (Exception)
{
Response.Write(alarmVer.msjBox("Hata Oluştu", "boyut.aspx")); //ya classı oluşturun yada bu satırı yazmayın...
}

}

Bu kodlarımızı yazdıktan sonra işlemimizi sonlandırıyoruz.

Ha Unutmadan boyut.aspx.cs dosyamızın en üst kısmına alt kısımdaki kütüphaneleri ekliyoruz yoksa projemiz çalışmıyacaktır.

using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

Sonraki yazımızda Görüşmek Üzere;

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

Not: Bu projenin çalışması için http://www.osmankurt.net/post/ASPNet-de-MesajBox-Uygulamasc4b1.aspx linkinde ki class dosyamızı oluşturmanız lazım. Yada mesaj kodlarını kaldırınız.

KucukResimOlusturma.rar (606,19 kb)

ASP.Net de Resim Üzerine Kod İle Yazı Yazma

Evet arkadaşlar bu yazımız da günümüz medyasının çok çok kullandığı bir şeyi göstereceğim size. Sahibi olduğumuz resim üzerine başkalarının kullanmasını yada resmimizin üzerinden fayda sağlamasını bir nevze olsun engellemek için kullanabileceğimiz bir yöntem. Gelin şimdi kodlarımızı yazmaya başlayalım.

İlk Olarak default.aspx dosyamıza kodlarımızı yazmaya başlayalım.

<asp:FileUpload ID="FileUpload1" runat="server" /><br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Resime Yazı Yaz" onclick="Button1_Click" /> 

Ve şimdide default.aspx.cs dosyamıza kodlarımızı yazmaya geçelim.

protected void Button1_Click(object sender, EventArgs e)
    {
        System.Drawing.Image Image = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);
        Bitmap b = ResmeYaz(Image, Image.Width, Image.Height, TextBox1.Text, 20);
        b.Save(Server.MapPath("~/Resim/" + FileUpload1.FileName));
    }

İşlemimizi gerçekleştirmek için yazacağımız fonksiyon aşşağıdaki gibidir.


    private Bitmap ResmeYaz(System.Drawing.Image Resim, int ResimGenisligi, int ResimYuksekligi, string Yazi, float FontBoyutu)
    {
        Bitmap resmim = new Bitmap(Resim, ResimGenisligi, ResimYuksekligi);
        System.Drawing.Graphics Resims = System.Drawing.Graphics.FromImage(resmim);
        System.Drawing.SolidBrush Brushes = new SolidBrush(System.Drawing.Color.White);
        System.Drawing.Font FontTipBoyut = new Font("verdana", FontBoyutu);
        System.Drawing.SizeF Boyut = new SizeF(0,0);
        System.Drawing.PointF YaziNoktasi = new PointF(310,310);
        System.Drawing.RectangleF Regtngl = new RectangleF(YaziNoktasi, Boyut);
        StringFormat YaziFormati = new StringFormat();
        YaziFormati.FormatFlags = StringFormatFlags.DisplayFormatControl;
        Resims.DrawString(Yazi, FontTipBoyut, Brushes, Regtngl, YaziFormati);
        return resmim;
    }

İşlemimizin sonuna gelmiş bulunmaktayız.

Sonuç:

Sonraki Makalemizde Görüşmek Üzere;

Osman kurt

ASP.Net de RSS Okuma

Evet arkadaşlar günümüz web dünyasının vazgeçilmezlerinden biri olan xml lerimize değincem bugün ve asp.net de nasıl xml okuduğumuzu göstercem. İşe ilk olarak default.aspx sayfamızdan başlıyoruz ve alt kısımda verdiğim kodların aynısını kendi default sayfamızda da yapıyoruz.

Default.aspx

<asp:TextBox ID="TxtRss" runat="server" Width="649px"></asp:TextBox>
        <asp:Button ID="BtnRss" runat="server" Text="RSS Load" Width="90px"
            onclick="BtnRss_Click" />
        <br />

        <asp:Panel ID="PanelContent" runat="server"
            Width="100%">

            <asp:DataList ID="DataListRSS" runat="server" BackColor="#CCCCCC"
            BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4"
            CellSpacing="2" ForeColor="Black" GridLines="Both" Width="100%">
                <FooterStyle BackColor="#CCCCCC" />
                <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                <ItemStyle BackColor="White" />
                <ItemTemplate>
                    <%# Eval("title") %>
                    <br />
                    <%# Eval("description")%>
                    <br />
                    <%# Eval("link")%>
                    <br />                   
                    <%# Eval("pubDate")%>
                    <br />
                </ItemTemplate>
                <SelectedItemStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            </asp:DataList>

        </asp:Panel>

Default.aspx dosyamızı oluşturduktan sonra şimdi Btnrss butonumuzun altına verecğim kodumuzu yazıyoruz.

protected void BtnRss_Click(object sender, EventArgs e)
    {
        XmlTextReader xreader;
       
        // Textbox'ın validasyon işlemini kod tarafında kontrol ediyoruz.
        if (!string.IsNullOrEmpty(TxtRss.Text))
        {
            // textbox'a girilen URL nesneye aktarılıyor
            xreader = new XmlTextReader(TxtRss.Text);
            DataSet dset = new DataSet();
            dset.ReadXml(xreader);

            // XML dosyası okunduktan sonra dataliste kaynak olarak belirtiliyor ve bağlanıyor.
            DataListRSS.DataSource = dset.Tables["item"];
            DataListRSS.DataBind();
        }

    }

Bu kodlarımızı da sorunsuz şekilde yazdıktan sonra sıra son işlemimiz olan xml sayfamıza geldi. İlk olarak RSS.xml adında bir xml sayfası oluşturuyoruz ve içine alt kısım da ki kodlarımızı yazıyoruz.

<?xml version="1.0" encoding="UTF-8"?>

<channel>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
 
<item>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
</item>

<item>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
</item>

<item>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
</item>

<item>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
</item>
 
</channel>
   

Sayfamızı çalıştırdığımızda artık istediğimiz adresten RSS okuyabiliriz.

Görüşmek Üzere;

Osman KURT