Osman KURT

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

ASP.Net Hava Durumu Çekmek

Bu yazımda asp.net de google apilerini kullanarak hava durumunu çekmeyi paylaşacağım. İşinize yarayacak bir işlev olarak düşünüyorum.

<div style="text-align: center;">
<asp:DropDownList ID="ddlSehirler" CssClass="bultentxt" runat="server">
<asp:ListItem>ADANA</asp:ListItem>
<asp:ListItem>ADIYAMAN</asp:ListItem>
<asp:ListItem>AFYONKARAHİSAR</asp:ListItem>
<asp:ListItem>AĞRI</asp:ListItem>
<asp:ListItem>AKSARAY</asp:ListItem>
<asp:ListItem>AMASYA</asp:ListItem>
<asp:ListItem>ANKARA</asp:ListItem>
<asp:ListItem>ANTALYA</asp:ListItem>
<asp:ListItem>ARDAHAN</asp:ListItem>
<asp:ListItem>ARTVİN</asp:ListItem>
<asp:ListItem>AYDIN</asp:ListItem>
<asp:ListItem>BALIKESİR</asp:ListItem>
<asp:ListItem>BARTIN</asp:ListItem>
<asp:ListItem>BATMAN</asp:ListItem>
<asp:ListItem>BAYBURT</asp:ListItem>
<asp:ListItem>BİLECİK</asp:ListItem>
<asp:ListItem>BİNGÖL</asp:ListItem>
<asp:ListItem>BİTLİS</asp:ListItem>
<asp:ListItem>BOLU</asp:ListItem>
<asp:ListItem>BURDUR</asp:ListItem>
<asp:ListItem>BURSA</asp:ListItem>
<asp:ListItem>ÇANAKKALE</asp:ListItem>
<asp:ListItem>ÇANKIRI</asp:ListItem>
<asp:ListItem>ÇORUM</asp:ListItem>
<asp:ListItem>DENİZLİ</asp:ListItem>
<asp:ListItem>DİYARBAKIR</asp:ListItem>
<asp:ListItem>DÜZCE</asp:ListItem>
<asp:ListItem>EDİRNE</asp:ListItem>
<asp:ListItem>ELAZIĞ</asp:ListItem>
<asp:ListItem>ERZİNCAN</asp:ListItem>
<asp:ListItem>ERZURUM</asp:ListItem>
<asp:ListItem>ESKİŞEHİR</asp:ListItem>
<asp:ListItem>GAZİANTEP</asp:ListItem>
<asp:ListItem>GİRESUN</asp:ListItem>
<asp:ListItem>GÜMÜŞHANE</asp:ListItem>
<asp:ListItem>HAKKARİ</asp:ListItem>
<asp:ListItem>HATAY</asp:ListItem>
<asp:ListItem>IĞDIR</asp:ListItem>
<asp:ListItem>ISPARTA</asp:ListItem>
<asp:ListItem>İSTANBUL</asp:ListItem>
<asp:ListItem>İZMİR</asp:ListItem>
<asp:ListItem>KAHRAMANMARAŞ</asp:ListItem>
<asp:ListItem>KARABÜK</asp:ListItem>
<asp:ListItem>KARAMAN</asp:ListItem>
<asp:ListItem>KARS</asp:ListItem>
<asp:ListItem>KASTAMONU</asp:ListItem>
<asp:ListItem>KAYSERİ</asp:ListItem>
<asp:ListItem>KIRIKKALE</asp:ListItem>
<asp:ListItem>KIRKLARELİ</asp:ListItem>
<asp:ListItem>KIRŞEHİR</asp:ListItem>
<asp:ListItem>KİLİS</asp:ListItem>
<asp:ListItem>KOCAELİ</asp:ListItem>
<asp:ListItem>KONYA</asp:ListItem>
<asp:ListItem>KÜTAHYA</asp:ListItem>
<asp:ListItem>MALATYA</asp:ListItem>
<asp:ListItem>MANİSA</asp:ListItem>
<asp:ListItem>MARDİN</asp:ListItem>
<asp:ListItem>MERSİN</asp:ListItem>
<asp:ListItem>MUĞLA</asp:ListItem>
<asp:ListItem>MUŞ</asp:ListItem>
<asp:ListItem>NEVŞEHİR</asp:ListItem>
<asp:ListItem>NİĞDE</asp:ListItem>
<asp:ListItem>ORDU</asp:ListItem>
<asp:ListItem>OSMANİYE</asp:ListItem>
<asp:ListItem>RİZE</asp:ListItem>
<asp:ListItem>SAKARYA</asp:ListItem>
<asp:ListItem>SAMSUN</asp:ListItem>
<asp:ListItem>SİİRT</asp:ListItem>
<asp:ListItem>SİNOP</asp:ListItem>
<asp:ListItem>SİVAS</asp:ListItem>
<asp:ListItem>ŞANLIURFA</asp:ListItem>
<asp:ListItem>ŞIRNAK</asp:ListItem>
<asp:ListItem>TEKİRDAĞ</asp:ListItem>
<asp:ListItem>TOKAT</asp:ListItem>
<asp:ListItem>TRABZON</asp:ListItem>
<asp:ListItem>TUNCELİ</asp:ListItem>
<asp:ListItem>UŞAK</asp:ListItem>
<asp:ListItem>VAN</asp:ListItem>
<asp:ListItem>YALOVA</asp:ListItem>
<asp:ListItem>YOZGAT</asp:ListItem>
<asp:ListItem>ZONGULDAK</asp:ListItem>
</asp:DropDownList>
<br />
<span id="spnIkon" class="ikon" runat="server"></span>
<br />
<span id="spnDerece" class="derece" runat="server"></span>
<br />
<span id="spnDurum" class="durum" runat="server"></span><span id="spnNem" class="nem"
runat="server"></span>
<br />
<span id="spnRuzgar" class="ruzgar" runat="server"></span>
</div>

 

C# Kısmında ise;

 

try
            {
                string strGelenIl = Request.QueryString["Il"];
                if (string.IsNullOrEmpty(strGelenIl))
                {
                    strGelenIl = "KONYA";
                }
                WebClient webClient = new WebClient();
                string strKaynak = webClient.DownloadString("http://www.google.com/ig/api?weather=" + strGelenIl + "&hl=tr");
                TextReader trOkuyucu = new StringReader(strKaynak);
                webClient.Dispose();

                ddlSehirler.Attributes.Add("onchange", "location.href='?Il='+this.value+''");
                ddlSehirler.SelectedValue = strGelenIl;

                XmlTextReader rdr = new XmlTextReader(trOkuyucu);
                XmlDocument myxml = new XmlDocument();
                myxml.Load(rdr);
                XmlNodeList xnlHedef = myxml.SelectNodes("xml_api_reply/weather/current_conditions");

                string strDerece = xnlHedef.Item(0).SelectSingleNode("temp_c").Attributes["data"].InnerText;
                string strDurum = xnlHedef.Item(0).SelectSingleNode("condition").Attributes["data"].InnerText;
                string strNem = xnlHedef.Item(0).SelectSingleNode("humidity").Attributes["data"].InnerText;
                string strIkon = "<img src=\"http://www.google.com/" + xnlHedef.Item(0).SelectSingleNode("icon").Attributes["data"].InnerText + "\" alt=\"" + strGelenIl + "\" />";
                string strRuzgar = xnlHedef.Item(0).SelectSingleNode("wind_condition").Attributes["data"].InnerText;
                spnIkon.InnerHtml = strIkon;
                spnDurum.InnerText = strDurum;
                spnDerece.InnerText = strDerece + " °C";
                spnNem.InnerText = strNem;
                spnRuzgar.InnerText = strRuzgar;

                trOkuyucu.Dispose();
                rdr.Close();
                rdr = null;
                myxml = null;
                xnlHedef = null;
            }
            catch (Exception)
            {

            }

 

Kaynak Kod GoogleHava_OsmanKURT.rar (63,52 kb)

Kaynak Kod Yahoo: havadurumuYahoo.rar (750,71 kb)

Yazımız bu kadar arkadaşlar görüşmek üzere

Osman KURT

Yazılım geliştirici ve grafiker

ASP.Net de Dosyaların İçeriğini Okuma Değiştirme ve Kaydetme

Bu yazımda asp.net projelerimizde hiçbir şekilde ftp ye müdahale etmeden belirlediğimiz dosyalar üzerinde değişiklik yapma imkanı sağlayan kod bloğumuzu göstereceğim. Bu kod bloğunun bize şöyle faydası olabilir. Bitmis bir proje üzerinde ani bir değişiklik yapma durumumuz oldu diyelim. Ne yapıcaz? Ftp bilgilerininde olmadığını varsayarsak daha önceden projemize entegre ettiğimiz bir sayfada listeden değişiklik yapacağımız sayfayı seçmek suretiyle sayfa üzerinde her türlü değişikliği yapabiliriz.

Kod bloğumuz alt kısımda ki gibidir.

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DirectoryInfo dosyalar = new DirectoryInfo(Server.MapPath("~/"));
            Repeater1.DataSource = dosyalar.GetFiles("*.htm");
            Repeater1.DataBind();
            if (Request.QueryString["degistir"] != null)
            {
                duzeltme.Visible = true;
                string degistirilecek = Request.QueryString["degistir"];
                StreamReader oku = new StreamReader(Server.MapPath("~/" + degistirilecek), System.Text.Encoding.Default);
                TextBox1.Value = oku.ReadToEnd();
                oku.Close();
                oku.Dispose();
            }
        }
    }
    protected void Button_kaydet_Click(object sender, EventArgs e)
    {
        string yazilacak = Request.QueryString["degistir"];
        StreamWriter yaz = new StreamWriter(Server.MapPath("~/" + yazilacak), false, System.Text.Encoding.Default);
        yaz.Write(TextBox1.Value);
        yaz.Close();
        yaz.Dispose();
        Label1.Text = "Değiştirme Başarılı.";
    }


Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net de Açılır Menu Yapımı

Arkadaşlar bu yazımda sizler için asp.net de yaptığım bir dinamik açılır menü örneği göstereceğim. Eminim ki birçok arkadaşın işine yarayacak bir kod. Zaten bugün içinde aldığım bir mailden dolayı bu kodu paylaşma gereği duydum.
Alt tarafta genel görünümle alakalı bir resim paylaşıyorum. Kodlar gayet açık bir adet default ve bir adet sayfadetay sayfası mevcut. Access veri tabanı kullandım ve içinde birkaç örnek veri mevcut. Yararlanan arkadaşlardan görüş dönüş bekliyorum.

 

AcilirMenu.rar (124,21 kb)

Görüşmek üzere,

Osman KURT

Yazılım Geliştirici ve Grafiker | İneta K12 Speaker

ASP.Net de Dinamik Web Sayfası Yapımı Videolu Anlatım

Yazdığım yazıların yanı sıra videolu anlatımın sizler için daha anlamlı ve öğrenmesi kolay bir hal alacağını düşünüyorum bu yüzden asp.net de dinamik bir site yapımını en baştan itibaren anlatmaya karar verdim. Şimdi zaten internet de bir sürü video mevcut ne gerek var diyebilirsiniz. Fakat internet de çekilen videolar hem başlangıç seviyesinde anlatılmış performans ve güvenlik yoksunu anlatımlar hemde eski teknoloji yazılımlar. Çeleceğim video da kurumsal bir web sayfasından istenilen bütün özellikleri bulabileceksiniz.Kısaca içerik;
 


• Sınırsız Dinamik Menü Ekleyebilme
• Sınırsız Dinamik Kategori Ekleyebilme
• Sınırsız Duyuru / Haber Ekleyebilme
• Dinamik Banner Yapısı (Resim+ Slogan)
• Sınırsız Kategorize Resim Galerisi Oluşturabilme ve Animasyonlu Gösterim
• Sınırsız Kategorize Video Galerisi Oluşturabilme ve Oynatma
• Online İletişim Sayfası
• Çoklu tema Desteği
• Çoklu Dil Desteği
• Ziyaretçi Defteri
• Sayfa içi Font Size Ayarlama
• Sayfalarda Dosya Yönetimi(Word,excel,pdf ,vb)
• Sosyal Ağlar
• Arkadaşına Tavsiye Et
• Üye Kayıt,Login,Panel
• Bülten Kayıt, Toplu Mail Gönderimi
• Site İçi Arama
• SEO Yönetimi

Umarım Faydalı olur.

Görüşmek üzere,

Osman KURT

Yazılım Geliştirici ve Grafiker | İneta K12 Spekaer

*ineta gurubu ile yapılan bir görüşmede videolu anlatım yerine 2 günlük bir kamp yapılma kararı gündemimizdedir. Bu yüzden gecikmeler meydana gelmiştir. İlginiz,sabrınız ve attığınız mailleriniz için çok teşekkür ederim sizler için en iyisini yapmaya çalışıyorum...

Ajax Toolkit Türkçeleştirme

Projelerimizde sıkça kullandığımız ajax toolkiteleri bazı müşterilerimiz özellikle tarih olaylarında tükçe kullanmak istemekteler haklı olarak. Biz yazılımcıların en büyük yardımcılarından bu toolkitler zaten farklı dil destekleri sunmaktalar. Yapacağımız tek şey;

<asp:ScriptManager ID="ScriptManager1" EnableScriptGlobalization="true" runat="server">
</asp:ScriptManager>

Kalın olarak gösterilmiş yeri eklediğimiz takdirde herhangi bir ek işleme gerek kalmadan işlemimiz tamamlanacaktır. Artık eklediğimiz companentler türkçe formatında çalışacaktır.

Görüşmek üzere,

Osman KURT

Yazılım Gelişitirici ve Grafiker | İneta K12 Speaker

Asp.Net de Toplu Mail Göndermek

Bu yazımda sizlere asp.net de toplu mail göndermeyi göstereceğim. Bu kod yaptığımız projelerde lazım olabilir. Örnek vermek gerekirse sayfanız da bülten kaydı tutuyorsunuz ve kayıt olan kişilere mail gönderme ihtiyacı duydunuz. Hepsine tek tek gönderecek değilsiniz. Böyle bir işlem ile karşı karşıya kaldığınız da bu kod bloğunu kullanabilirsiniz.

Kısaca mantığını anlatmak gerekirse normal bir mail gönderme formu ve tablomuzda tutuğumuz mail listesini döngüye sokarak tek tek okutmak.

 

using System.Net.Mail;
using System.Net;
using System.Data;
using System.Data.SqlClient;
SmtpClient mailClient = new SmtpClient(server, port);
        NetworkCredential cred = new NetworkCredential(mail, sifre);
        mailClient.Credentials = cred;
        MailMessage contact = new MailMessage();
        contact.From = new MailAddress(mail);
        contact.Subject = txtkonu.Text;
        contact.IsBodyHtml = true;
        contact.Body = EditorIcerik.Content;

        SqlConnection cnn = new SqlConnection(@"yol");
        SqlCommand bulten = new SqlCommand("Select * from tabloadi", cnn);
        if (ConnectionState.Closed == cnn.State)
            cnn.Open();
        SqlDataReader bdr = bulten.ExecuteReader();
            while (bdr.Read())
            {
                contact.Bcc.Add(bdr["Mail"].ToString());
            }
        mailClient.Send(contact);
        bdr.Close();
        cnn.Close();

Proje Linki; OsmanKURT_TopluMail.rar (71,36 kb)

Kodlarımız bu kadar arkadaşlar.

Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker  | INETA K12 Speaker

Asp.Net de Table'yi Kod Taraflı Kontrol Etmek

Asp.net de proje geliştiriyorsunuz ve html tarafında table kullanıyorsunuz. Herhangi bir veriyi göstereceğiniz yada saklayacağınız zaman panel kullanıp panelin visible kısmını true,false diyerek kontrol ediyorsunuz. Ama bunu yapmanıza gerek yok.
Çünkü html tarafında table kullanırken <table> kısmı yerine <table id="osmankurt" runat="server"> dediğimiz takdirde aynı panel gibi işlev görecektir. Hem daha performanslı hem karşıklığı önleyen bir kullanım bence.

Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net de Cookies Kullanarak Login Kontrolü Yapma

Asp.net de yapılan çoğu projede kullanıcı kontrolü bu admin paneli de olabilir, kullanımaktadır. Buralar da session dediğimiz olayı kullanabilir fakat hata vermeye müsait bir yapıdır. Sebebi session ölmesidir. Session öldüğünde yapılacak işlemler tamamlanmaz ve hata verir. Bu hatayı sayfayı belli aralıklarla refresh ederek giderebiliriz.

Şimdi anlatacağım olayda ise cookies dediğimiz olayı kullanacağız. Bu web sayfasının bilgisayar localine bir adet dosya atması ile çalışır. Bu dosya adminin ayarladığı süre boyunca localinizde kalır ve siz silmedikçe o müddet dolana kadar işlev görecektir. Bu olay hem daha mantıklı hemde performans açısından daha kullanışlıdır.

Bağlantı classımız;

 

public class baglan
    {
        public static SqlConnection baglanti = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=EntityDenemedb;Integrated Security=True");
    }

İlk olarak login.aspx sayfamızı tasarlayalım ve 2 adet textbıox 1 adet buton atayalım sayfaya.Butonun click olayına ise;

 

SqlConnection cnn=new SqlConnection("");
SqlCommand cmd = new SqlCommand("select * from SiteAyarlari", cnn);
if (ConnectionState.Closed == baglan.baglanti.State)
baglan.baglanti.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
if (txtKullanici.Text == dr["KullaniciAdi"].ToString() && txtSifre.Text == dr["Sifre"].ToString())
{
HttpCookie myCookie = new HttpCookie("osmankurt");
myCookie["Adı"] = txtKullanici.Text;
myCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(myCookie);
Response.Redirect("Default.aspx");
}
else
{
Response.Write(alarmVer.msjBox("Hatalı Giriş"));
}
}
dr.Close();
cnn.Close();

 

Şimdi ise default sayfamıza gelelim ve kontrolümüzü yapalım bakalım doğru çalışıyor mu?, çalışmıyor mu?

if (Request.Cookies["osmankurt"] == null)
{
Response.Redirect("Login.aspx");
}

 

Şimdi ise çıkış sayfamızın yapımına geçelim. Bir adet buton atıyoruz ve click olayına alt kısımda ki kodlarımızı yazıyoruz.

Response.Cookies["osmankurt"].Expires = DateTime.Now.AddDays(-1);
Response.Redirect("Login.aspx");

 

Kodlarımız bu kadar arkadaşlar ;

Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net de Performans Artışı Sağlamak (1.Bölüm)

Asp.net de proje geliştiriyorsak performansın ne kadar önemli bir etken olduğunu söylememe gerek yok sanırım. Çünkü kullanıcı her ekstra süre için siteden bir adım daha uzaklaşır.

Bu yazımda size ufak bir tavsiyede bulunacağım. Biliyorsunuz ki çoğu yaptığımız işlemlerde verileri geçici şekilde browser larımızda saklanır. Ne kadar çok veri saklanırsa browser'ın verimi de o kadar düşer. İşte bu yazının amacı birazda olsa browser ları bu yükten kurtarmak. Mesela sayfamızda 2 adet textbox'ımız olsun ve bu 2 textbox daki değeri lblsonuc adlı labelimizin text ekranına yan yana yazdıralım. Bu işlem çok kolay bir işlem ve bu işlemi tamamladığımız da label ekranına sonucu yazdırırken aslında 2 textboxın içinde ki değerlerinde aynı kaldığını gördük. Bu yazılar nasıl oldu da sayfa yenilendiği halde textboxların içinde yazılı kaldı. İşte burada viewstate dediğim cache ortaya çıkıyor ve verileri belleğinde saklıyor. Bunlarda projeye ekstra yük oluyor. Bunun gibi işlemleri yaptığımız sayfalarda verilerin viewstate de salanması çok saçma bu yüzden bunu engellemek gerek. Bunu da sayfamızın en yukarasında ki;

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

kısmından yapıyoruz.(Benim Örneğim bu sizin ki farklılk gösterbilir, MasterPage sayfası referans alınmış bir Default.aspx sayfası.)

Bu satıra ek olarak alt kısımda ki çizgili alan gibi yapmamız yeterli olacaktır.

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" EnableViewState="false" Inherits="_Default" %>

 

 Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker 

ASP.Net de Tabloya Veri Eklerken Son Id Değerini Yakalama

Bu yazımda asp.net de tabloya veri eklerken son id yi yakalamyı göstereceğim arkadaşlar. Bu son id nerede işimize yaracayak. Örnek vermek gerekirse bir eticaret sitesi yapıyorsunuz. Elimizde 2 adet tablomuz var ve kullanıcı kayıt olduğu zaman iki tablomuza da aynı anda kayıt yapmamız gerek ve bu tablomuzda uye ID sinin de aynı olması lazım. İşte son ID olayımız buradadevreye giriyor. İlk tabloya kaydımızı yaptıktan sonra eklenen son ID yakalayarak diğer tabloda da kullanabiliyoruz.

Örnek kodlarımız alt kısımda ki gibi burada veriyi eklme işlemini gerçekleştiriyoruz ve eklenen Son ID yi sonuc adında ki değişkenimize atıyoruz.

SqlCommand komut = new SqlCommand("insert into Birinci_Tablomuz (Deger) values(@Deger); select @@identity;", baglan.baglanti);

//Ms Sql için farklı bir sorgu olarak aşağıdaki sorguyu kullanabiliriz.
// "insert into dersler_tablosu (
Deger) values(@Deger); select scope_identity();"
komut.Parameters.AddWithValue("@
Deger ", "osmankurt");

baglanti.Open();

int sonuc = Convert.ToInt32(komut.ExecuteScalar());

Response.Write(sonuc.ToString());

baglanti.Close(); 

Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker