Visual Studio 2005Bugün 9:30 ile 11:45 arası Samsun Atakum Teknik Lisesinde C#.Net, Asp.Net ve SQL 2005 Seminerimiz vardı. Aslında video ve resim çekmeyi düşünüyorduk fakat unutkanlığa mı denk geldi yoksa başka birşey mi bilemem Video ve Resim çekemedik.

Biraz sizlere Seminer ile alakalı izlenimlerimden bahsetmek istiyorum. Umarım 9 Ekim'de ki seminerimizde video ve fotoğraf çekimi yapabiliriz.

Öncelikle gerekse ilk seminerimiz ve de eğitim gördüğümüz okula seminer vermek bizi heyecanlandırdı desek yalan olmaz. Fakat ortam ve seminer verdiğimiz öğrenci ve hocalarımız duruma hazır olduklarından heyecan denen şeyi 5-10 dakika içerisinde atmış olduk. Daha sonra da susmak bilmedi(k)m. Seminer'i 2 Oturum olarak ayırdık. Birinde C#.Net ve SQL 2005, 2.ci Oturumda ise Asp.net 2.0, Asp.net 3.5 ve SQL 2005 den bahsetmek niyetimizdi :) Fakat nedense bu süreyi bir türlü yetiremedik. Semineri Can Dostum güzel insan Erdem ile beraber verdik.

İlk Oturumda Seminer'e C#.Net ile başladık. C#.Net ve VB.Net arasındaki farklardan bahsettik. Visual Studionun kullanıcılarına sağladığı avantajlardan bahsettik. Daha sonra baktıkki zaman çok hızlı geçmiş ve 1.ci oturum için hazırladığımız bölümü bitiremeden zaman bitmiş :)

İkinci Oturumda ise zaman gerçekten çok hızlı geçti. Fakat hedeflediğimiz gibi olmadı pek. Aralarda Asp.net 3.5 getirdiği yeniliklere 1-2 değinsek de konuyu fazla dağıtmamak için girmedik. Allah'tan uygulamaları bitirmek için vaktimiz tamı tamına yetti :) (Öğrenci kardeşlerimizden çaldığımız 5 dakikayı saymazsak :)).

Son olarak da Visual Studio araçlarını kullanarak öğrencilerin kendilerini nasıl geliştirecekleri, hangi araçları kullanmaları onlar için yararlı olacağını onlara anlatmaya çalıştık. Visual Studio ile alakalı bilgileri biraz daha fazla olsaydı sanırım daha fazla verim alacakları kanaatindeyim.

Umarım bir dahaki Samsun ATL seminerinde daha uzun oturumlar düzenleyebilir hatta olabilirse 1 Haftalık Workshoplar düzenleyerek Öğrencilerin daha fazla bilgilenmesine yardımcı olabiliriz.

2 gün sonra tekrar görüşmek üzre Selametle...

Hata

Ben bu hata ile bugün tekrar karşılaştığım için yazma gereği duyuyorum sanırım sizler için de yararlı olacaktır. Bu hatayı almanızın muhtemel bir sebebi sağlayıcı makinanızda kurulu olmayabilir. Bu kurulumu gerçekleştirmek için aşağıdaki linki ziyaret edip size uygun olanını bilgisayarınıza kurmaktır. Bunun probleminizi çözmeyeceği de muhtemel olabilir.

http://support.microsoft.com/default.aspx?scid=kb;en-us;239114

Bir diğer sebebi ise Vista kullanıyor olmanız ki olma ihtimaliniz yüksek olabilir (64 Bit). Bu sebepten de bu hata ile karşılaşmış olabilirsiniz. Bu hatayı gidermek için ise sırası ile;

Projenize sağ tuş ile tıklayıp Properties'e tıklayın.
Daha sonra Build sekmesine geçin.
Platform Target bölümünden x86'yı seçin ve Apply butonuna basın.

Çözüm

Hatanız düzelecektir. Eğer daha farklı bir sorun ile karşılaşırsanız Makalenin altına yorum ekleyerek yazabilirsiniz.



Bir önceki makalede Asp.net ile mail göndermeyi anlatmıştık. Bunu yapmışken yine System.Net ve System.Net.Mail 'den faydalanarak toplu mail işlemi nasıl gerçekleştirilir onu öğreneceğiz. Ama bu sefer bu işlemi C#.Net ile yapacağız. İlk olarak yapacaklarımız tabiki System.Net ve System.Net.Mail'i eklemek. Aynı zamanda da Text dosyasından toplu mail adreslerini okumak için System.IO 'yu da kullanacağız. Gel gelelim işlemlerimize ilk olarak ekleme işlemlerimizi yapalım.

using

 

System.IO;
using System.Net;
using System.Net.Mail;

Evet. Namespacemize bunları ekledikten sonra geldi Nesnelerimizi eklemeye. Ben ekleyeceğiniz nesneleri ve onların özelliklerini yazıyorum.

5 Tane Textbox ekliyoruz. Bunların özellikleri ve isimleri şöyle olacak.

1.ci Textbox : Name = "txtSunucu"
2.ci Textbox : Name = "txtMailAdresi"
3.cü Textbox: Name = "txtParola" , PasswordChar = "*"
4.cü Textbox: Name = "txtKonu"
5.ci Textbox : Name = "txtMesaj" , Multiline = "true"

1 Tane Listbox : Name = "lblMailler"

2 Tane Button

1.ci Button : Name = "btnYukle"
2.ci Button : Name = "btnGonder"

Bütün bunları oluşturduktan sonra sıra geliyor ihtiyacımız olanlara. Ben süs olsun diye 3 tane de groupbox yaptım ve bunları grupladım. Bunu sizde gerçekleştirebilirsiniz. Daha sonra aşağıdaki kodları btnYukle ve btnGonder in Clik olayına yazdım. Kendinize göre düzenleyin.

 

private void btnYukle_Click(object sender, EventArgs e)
{
try
{
dlgOpenFile.ShowDialog();
if (dlgOpenFile.FileName != "")
{
lbMailler.Items.Clear();
StreamReader srRead = new StreamReader(dlgOpenFile.FileName);
while (srRead.EndOfStream==false)
{
lbMailler.Items.Add(srRead.ReadLine().ToString());
}
srRead.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("Hatalı Yükleme !\n\n" + ex.Message);
}
}

 

private void btnGonder_Click(object sender, EventArgs e)
{
try
{
SmtpClient MailSender = new SmtpClient(txtSunucu.Text);
MailSender.Credentials =
new NetworkCredential(txtMailAdresi.Text, txtParola.Text);
MailMessage Mail = new MailMessage();
Mail.Body = txtMesaj.Text;
// Mesajınız
Mail.IsBodyHtml = true; // Mail Formatı // Eğer Mailiniz Html Kodu içermeyecekse False olsun
Mail.Subject = txtKonu.Text; // Mailinizin Konusu
Mail.From = new MailAddress(txtMailAdresi.Text); // Gönderen Adresi
for (int i = 0; i < lbMailler.Items.Count; i++) // Gönderilecek Maillerin Yüklenmesi.
{
Mail.To.Add(lbMailler.Items[i].ToString());
}
MailSender.Send(Mail);
// Mailin Gönderilmesi

 

MessageBox.Show("Tüm Mailler Başarı İle Gönderildi");
}
catch (Exception ex)
{
MessageBox.Show("Hata Oluştu :\n\n" + ex.Message);
}
}

Daha sonra programı derleyip çalıştırabilirsiniz. Programın ekran görüntüsünü de vereyim :

Programın kaynak kodlarını indirmek içinde buraya tıklayabilirsiniz.

Yararlı bir makale olması dileği ile.

Selametle...



"Her yiğidin bir yoğur yeğişi vardır." derler. Doğru da derler. Aynı zamanda her programcının da bir kod yeğişi vardır desek yeri vardır yada yazışı mı desek bilemiyorum. Neyse konuya hemen girmekte yarar var. Birçok programcı büyük projelerle veya da komplex programlarla uğraşırken çoğu zaman kod içerisinde kaybolmuşluğu kafayı yemişliği hatta klavye sinirle vurmuşluğu bile olmuştur.

Böyle şeylere yer vermeden programcı olacak insanın yada olmuş olanının(ki olduktan sonra birçok programcının kod yazma stili standart bir hal alır) dikkat etmesi gereken bazı hususlar var. Dikkat etmesinden kastım kod yazarken yapacaklarıdır. Yapması gerekenlerdir aslında. Kod karmaşıklığı çocuğumuzun baş belası oluvermiştir. Bunu aşmanın tek yolu da değişken,nesne ya da tanımlamalarımıza anlaşılabilir isimler ve açıklamalar belirlememizden geçer. Aşağıda örnekleri ile beraber verdiğim kısımları incelemenizi istiyorum. Zira bir programcı iseniz ya da olacaksanız faydasını göreceğinize şüphem yok.

//Değişkenleri kullanırken başlarına onların ne tür bir değişken olduğunu belirtmek
//sizi kod karmaşıklığından kurtaracak ve değikenlerinizi çabuk tanımaya yardımcı olacak
//bir yöntemdir.
// Örnek
string strAd;
int intSayi;
float fltNumber;
//Tabiki bu işlem TextBox , Label, DropDownList, ComboBox vs. Tüm nesneler içinde geçerlidir
//textbox1,textbox2,textbox3 gibi isimler mi daha anlamlıdır yoksa txtAd,txtSoyad,txtMail
//gibi nesne isimleri mi daha anlamlıdır ? Yorum sizin.
//Buna da bir örnek verecek olursak.

TextBox txtAd;
TextBox txtSoyad;
TextBox txtMail;

//gibi tanımlamalar yine okunmayı kolaylaştıracaktır.
//Gelelim önemli noktalardan birine daha.
//Çok kod yazan birisiniz. Yada şöyle büyük bir kod parçacığınız var.
//İçinde birden fazla prosedür vs fonksiyon gibi tanımlamalar nesneler
//birikmiş de birikmiş. Bunları tanımlamanın en güzel yolu Commentlerdir.
//Şu anda benim yaptığım gibi. Hemen bir örnek gerçekleştirelim.

string strAd = "Default"; //Burada bunu kullanmamın sebebi falan filandan ötürü.
int intProgramSayisi = 0; //Burada programın kaç defa çalıştığını belirtmek için tutuyorum.

//gibi
//Böyle tanımlamalar işinizi tamamiyle kolaylaştıracak ve size büyük avantajlar sağlayacaktır.
//Ayrıca ekip çalışması yapıyorsanız bu gibi şeylere mutlak ve mutlak dikkat etmenizde fayda var.
//Zira takım arkadaşınız saatlerce sizin yazdığınız koda bakıp bu adam burda ne yapmak istemiş
//acaba diye düşünmesi Proje Müdürünüzün yada Danışmanınızın pek hoşuna gitmeyebilir :)

faydalı bir Makale olması dileği ile.

Selametle...



Microsoft bu tarihten bayaa bayaa bi önce Coderlerin daha iyi kod okuyabilmesi amacıyla olsa gerek bir font paketi yayınlamıştı. Benim de hoşuma giden birşeydi bu olay çünkü kodları daha net hale getiriyor. Neyse sözü fazla uzatmadan adı Consolas olan bu font paketinin linkini vereyim. Buradan indirebilirsiniz. Bu font paketini merak eden olursa diye aşağıda görünümünü koydum. Sonradan bu ne saçma birşeymiş indirttin bize felan deyip de kızmayın yani :)

Yüklemeden önce :

Yüklemeden sonra :

Hadi hayırlı kullanımlar ;)

Selametle...



Asp.net uygulamalarında Datalist, GridView ve benzeri kontrollerin içerisine eklenen kontrollere erişmek direk mümkün olmamaktadır. Bunu yapabilmek için Öncelikle kontrolün içerisindeki nesneyi bulmamız gerekiyor. Örnek kodumuzu inceleyelim.

(Datalist1.FindControl("Control ID'si") as Label).Text = "Yazı";

Burada Datalist1 kontrolümüz, FindControl komutumuz, as de tanımlayacağımız nesneyi belirteceğimiz ön komut, Label ise kontrolümüzün türü. Buraya Label,Textbox , Button vs gibi kontrol türleri gelebilir. Siz kontrolünüzün türü ne ise onu yazacaksınız.

İşlem bu kadar. Ayrıca unutmadan birden fazla item olduğunda o itemlerin altındakilere erişmek için Datalist1.Items.FindControl komutunu kullanmak yeterli olur.

Hepsi bu kadar.

Selametle...



".Net" teknolojileri ile alakalı olanlarımızdan yüzde 90'ımız duymuştur XNA'i. Ufaktan ufaktan oyun programlamaya başlayanlar için güzel bir kaynak XNA. Hergün geliştiricileri artıyor. İnternette dolaştığımızda görüyoruz XNA ile yapılmış irili ufaklı oyunları. Bunların yanında da tabiki XNA ile yapılan çok güzel oyunlar var. Bende bir ".Net" programcısı olarak sizinde bu işe ufaktan bi göz atmanız taraftarıyım. Bunun için tabi sizi yanlızda bırakacak değilim. Bende vakit buldukça ilgilenmeye çalışıyorum. İnternette XNA ile alakalı çok güzel dökümanlar var ama bildiğiniz üzere bu kaynakların yüzde 95 i ingilizce. Fakat sağolsun bu konu ile alakalı olan bir kardeşim kendisi araştırma yaparken bazı dökümanları türkçeleştirmenin yanında kendisi de tutoriallar hazırlamış. Ben kendisine şahsi olarak teşekkürlerimi sunuyorum. Olurda sizde XNA'e bir göz atayım derseniz dosyayı incelemenizi şiddetle tavsiye ediyorum :)

Aklıma gelmişken Sıkıştırılmış dosya içerisindeki Word Belgelerini saymakta yarar var.

  • XNA X-Engine
  • XNA Game Engine Parallax
  • XNA 3D Model Hareket
  • XNA 3D Model Yükleme
  • XNA Başlangıç
  • XNA Flat Red Ball
  • XNA İlk Oyun
  • XNA Quick Start Engine
  • XNA ile alakalı Kaynak Web Siteleri
  • XNA Texture Yükleme
  • XNA X-Engine 3D Model
  • XNA Yazı Yazmak

Word dökümanlarımız bunlar. Umarım yararlı olur hepiniz için. Soracağınız soru olursa dökümanları hazırlayan SkyLab kqardeşim sizlere yardımcı olacaktır.

Dökümanları İndirmek İçin buraya tıklayabilirsiniz.

Ayrıca Web Sitesine buradan erişebilirsiniz.

Teşekkürler SkyLab



Bazı komutlar basit ama çok yararlı hale gelebiliyorlar. Aklıma gelmişken geçenin bi yarısı sizde bilgilenin istedim. Diyelim ki bir yazının integer olup olmadığını yani sayısal mı değil mi kontrol ettirmek istiyorsunuz. Bu örnek için hemen formunuza 1 adet Textbox ve Button ekleyin. Textbox ın ismini txtDeger yapıp Button 1 in click olayına aşağıdaki kodu yazmanız yeterli.

int result;
if (int.TryParse(txtDeger.Text, out result))
{
   MessageBox.Show("Girdiğiniz Sayı İnteger : " + result.ToString());
}
else
{
   MessageBox.Show("Girdiğiniz Sayı İnteger Değil !!!");
}

işlem bu kadar. Çalıştırın sonucu görün :)



RSS 2.0
Sor Bakalım...
Arama
  Ara
Paylaş
| Diğer
Destek