Tweet

Makaleler » C#

FileSender - Tcp

Selam arkadaşlar.. Windows sisteme uzun süre ara vermiştim.Bu süre zarfında linux sistemleri yakından inceleme fırsatım oldu.Özellikle programlama alt yapımı linux mimarisine uydurma çabalarıyla geçti zamanım..C# dilinin esnek yapısıyla soket programlama uygulamalarına farklı olarak tcp üzerinden dosya transferlerinin nasıl gerçekleştirildiğini inceleyeceğiz..
Oguzz | 5 Kasim 2007 17:23 | Yorum(0) | devamı »

Md5 Kullanımı

Merhaba.

Md5 algoritmasının sanırım girmediği bir platform hemen hemen yok.Bizde c# dili üzerinden md5 algoritmasını nasıl oluşturacağımızı anlatacağız.Açıklamalar kodların arasındadır.
Oguzz | 28 Eylul 2007 10:35 | Yorum(0) | devamı »

C# SQL Bağlantı Örneği

Bu yazıda C# ile SQL servere bağlanıp bir SQL sorgusu çalıştırmayı göreceğiz. Yazdığım kodlarda elimden geldiğince yardımcı notlar kullanmaya çalıştım. Dilerseniz kodumuza geçelim.

CODE:
// Bu örnek System.Data.SqlClient 
// kütüpanesine gereksinim duyacaktır.

# ilk olarak bir connection string(bağlantı metini) tanımlayacağız.

string Server = "localhost";
string Username = "my_username";
string Password = "my_password";
string Database = "my_database";

string ConnectionString = "Data Source=" + Server + ";";
ConnectionString += "User ID=" + Username + ";";
ConnectionString += "Password=" + Password + ";";
ConnectionString += "Initial Catalog=" + Database;

#buraya kadar olan kısımda bağlantı metnimiz tanımladık.


#Şimdi bir SQL connection tenemsi yapacağız bu denemede daha önceden tanımlamış olduğumuz "connection string" imizi kullanacağız.

SqlConnection SQLConnection = new SqlConnection();

try
{
SQLConnection.ConnectionString = ConnectionString;
SQLConnection.Open();


}
catch (Exception Ex)
{
// Bir hata durumunda bağlantıyı sonlandırmak için gerekli kodlarımız hazırlıyoruz.
if (SQLConnection != null)
SQLConnection.Dispose();

// Bilgilendirici bir hata mesajı hazırlıyoruz.
string ErrorMessage = "SQL Server ile bağlantı kurulurken bir hata ile karşılaşıldı.";
ErrorMessage += Environment.NewLine;
ErrorMessage += Environment.NewLine;
ErrorMessage += Ex.Message; // Hata mesajımızın son kısmına catch ile yakalanan mesajıda ekliyoruz.

// Hazırladığımız mesaj kutusunu bir dialog kutusu ile gösteriyoruz.
MessageBox.Show(this, ErrorMessage, "Bağlantı hatası", MessageBoxButtons.OK, MessageBoxIcon.Error);


return;
}

#Buraya kadar yazdığımız kodlar $SQL servere bağlanmak içindi sadece bağlanmak içindi.


#Şimdide bir sql query çalıştıralım.

string SQLStatement = "SELECT * FROM ornekTablo";

// Sorgumuzun sonuçlarını alabilmemiz için bir SqlDataAdapter nesnesi yaratıyoruz.
SqlDataAdapter SQLDataAdapter = new SqlDataAdapter(SQLStatement, SQLConnection);

// Boş bir veri tablosu yaratıyoruz.
DataTable dtResult = new DataTable();

// Veri tablomuzu sql sorgumuzdan dönen kayıtlar ile dolduruyoruz.
SQLDataAdapter.Fill(dtResult);

// Tüm kayıtları bir döngü ile gösterbililiriz.
foreach (DataRow drRow in dtResult.Rows)
{
// Bir mesaj kutusu ile ornekTablo muzda yer aldığını
// var saydığımız isim alanın daki verileri yazdıryoruz.
MessageBox.Show(drRow["isim"].ToString());
}

// Artık SQLDataAdapter nesnesine ihtiyacımız yok bu nedele nesnemizi sonlandırıyoruz.
SQLDataAdapter.Dispose();

#Buraya kadar yazdığımız kodlarda veri tabanına bağlandık ve sogumuzu çalıştırdık.


#Son olarak veri tabanı nesnemizi bağlantıyı bitidiktan sonra yok ediyoruz.

SQLConnection.Close();//bağlantıyı sonlandırıyor.
SQLConnection.Dispose();//nesneyi yok ediyor.



Başlangıç aşamasında yardımcı olacağını düşünüyorum. Herkese kolay gelsin.
Dia | 10 Mart 2007 13:56 | Yorum(7) | devamı »

C# ve .NET Framework İlişkisi

Aslında C# kendi başına bir programlama dilidir. Fakat .NET Framework ile direkt olarak ilişkilidir. Çünkü C# in çalışma zamanı ortamını .Net Framework sağlar. Microsoft C# dilini .NET Framework için kod geliştirmek için oluşturmuştur ve C# da kullanılan kütüphanelerin tümü .NET Framework'ün kütüphaneleridir. Aslında Framework ün kütüphaneleri tüm .NET dillerinde ortak olarak kullanılır. .NET in gücüde buradan gelir.

.NET Framework Nedir?

.NET Framework çatısı farklı dillerin aynı ortamda çalışmasını sağlar. Yani bir projenin bir bölümü VB.NET diğer bölümü C# ile kodlanmışlabilir. .NET Framework barındırdığı ortak dil çalışma zamanı (Common Language Runtime) sayesinde, .NET in deslektediği diler ile yazılmış kodları makine diline çevirerek. Yazılımlarda çoklu dil kullanmaya olanak sağlar.

Peki bu tam olarak nasıl sağlanıyor. Çalışma Zamanı derleyicisi kodları derlerken çeşitli bileşenler kullanır. Bu bileşenler CLR (Common Language Runtime) ye bağlıdır. Bu bileşenler den bazıları şunlardır.

MSIL(Microsoft Intermediate Language) to native compiler : MSIL kodu makine diline çevirir.

Code Menager: Kodu uygulayarak kontrol eder.

Garbage Collector : Objelerin yaşam sürelerini otomatik olarak denetler.

.NET Framework Class Libary Support: Kodda yer alan classları .NET Framework ile birleşirir.



Bu saydıklarımız en önemli leridir. Şimdi gelelim çoklu dil kullanımının nasıl gerçekleştiğine. Her kod öncelikle kendine ait derleyicisinde derlenir. Mesela Visual J# ile yazılmış kod önce Visual J# derleyicisinde derlenir. Kendi derleyicisinde derlenen kod MSIL (Microsoft Intermediate Language) ye göre yeniden derlenir. Elde ettiğimiz MSIL kodu kendi başına çalıştırılabilir bir kod değildir. MSIL birtakım özel taşınabilir assembly koddan oluşur. Program çalıştırıldığında MSIL olarak derlenmiş kodu çalıştırılabilir bir kod haline CLR getirir. Bu işlem tüm .NET dilleri için aynı şekilde uygulandığı için .NET dilleri arasında performans farkı yok denecek kadar azdır. Bu yok sayılabilecek farkta dillerin kendi derleyicilerinin performans farklarından doğabilir.

Derleme Süreci
C# Kodu -> C# Derleyicisi -> MSIL Derleyicisi -> (Taşınabilir Assembly kod) MSIL Kod

Çalıştırma Süreci
MSIL Kod -> CLR(Common Language Runtime) -> Makine Dili

.NET Framework Hangi Dilleri Destekler?
.NET Sınırsız sayıda dili destekleyecek yapıda tasarlanmıştır fakat Şu anda 20 dili desteklemektedir. Bu diller.

C#
Visual Basic.NET
Visual J#.NET
Visual C++
Jscript.NET
C
COBOL
Python
Pascal
Perl
ADA
Oberon
Scheme
ML
Eiffel
APL
SmallTalk
Mercury
CAML
Haskell


.NET bu saydığımız dilleri desteklemektedir. Çoklu dil desteğini ne gibi faydaları var? Biraz akıl yürütelim mesela bir yazılım şirketimiz var ve yazılımcı elemanımız 5 kişi, bunlardan ikisi C# ve üçü Visual Basic.NET uzmanı. Fakat çok büyük bir proje geliştirmeniz gerekli. Ne yapıcaz? C# uzmanları iki kişi onlara VS mi öğreteceğiz. Yoksa işten çıkarıp yerine VS bilen eleman mı alacağız? Tabi ki hayır bırakın herkes bildiği dilde yazsın #:) .NET sizin yeriniz aynı dile çevirecektir.
Dia | 9 Mayis 2006 18:12 | Yorum(0) | devamı »

C# | Jenerikler

Tam manası ile parametrelendirilmiş tip anlamına geliyor. Oluşturduğumuz nesneleri tiplerden bağımsız hale getirmemizi sağlıyor. Böylece kodlarımızı yeniden kulama yeteneğimiz arttırıyor. Bu işlemi yaparken tip güvenliğini de elden bırakmıyor. Önceki sürümde Object sınıfı tüm sınıflar için temel sınıf olduğu için, tipi object olarak olarak belirlenen nesneye diğer tiplere değerler atanabiliyordu. Fakat sorun tip güvenliğinin sağlanamaması idi.

Örnek:

CODE:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
class Jenenrik<tip>
{
tip deger;
public Jenenrik(tip deg)
{
deger = deg;
}
public tip getDeger()
{
return deger;
}
public void tipGoster()
{
Console.WriteLine("tip in tipi " + typeof(tip));
}
}
class Tipkullan
{
public static void Main()
{
Jenenrik<int> obje;
obje = new Jenenrik<int>(354);
obje.tipGoster();
Console.WriteLine("Değeri :" + obje.getDeger());
Console.WriteLine();
Jenenrik<string> obje2;
obje2 = new Jenenrik<string>("Jenrikler bu işe yarar");
obje2.tipGoster();
Console.WriteLine("Degeri :" + obje2.getDeger());
Console.WriteLine();

}

}
}


Örneği çalıştırısanız Jenerikler hakkındaki fikriniz daha somut olarak oturacaktır. İyi çalışmalar.
Dia | 4 Mayis 2006 21:12 | Yorum(0) | devamı »


Online Coders
  Online (0)
  Ziyaretçi (0)

Desteklediklerimiz

Teknoloji


MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg