20 Ağustos 2008 Çarşamba

Popüler Programlama Dilleri

Tiobe software ın yaptığı bir araştırma. Popüler programlama dillerini araştırmışlar. Kriterleri de güzel aslında, o dille toplamda kaç satır yazıldığına bakılmamış google,yahoo gibi popüler arama motorları kullanılmış, o dilde yazılmış olan 3rd party yazılımlara ve o dili kullanan dünya çapında bulunan mühendislerin sayıları gibi kavramlar ile dilin popülerliğini artırmışlar.
Listeyi görmek için buraya tıklayın.
Ben ilk gördüğümde çok şaşırdım C ve C++ ilk 4 te fakat C# yok. Ama grafiklerine bakılınca C# yükselişte. Her ay güncelleniyormuş bu liste. İleride ne olacak göreceğiz. Yine de Javanın bu popülerliğini kaybedeceğine inanmıyorum.

19 Ağustos 2008 Salı

C#'ta Transaction işlemi

Veri tabanından bildiğimiz transaction işlemlerini C# üzerinde veriTabanı bağlantılı projelerimizde de kullanabiliyoruz.
İlk önce nedir bu transaction sen neden bahsediyon kardeşim diyen olur kısaca, veri tabanı üzerinde yaptığımız değişikliklerde bir hata oluşması durumunda veya oluşmaması durumunda :) size kalmış o anda yapılan değişikleri geri alabiliyorsunuz (rollback tran) veya yapılan değişikleri artık veri tabanında gerçek yerine kaydet diyebiliyorsunuz (commit). Çünkü yapılan işlemler ram üzerinde olur commit derseniz veri tabanında ilgili yerlerde güncelleme yapılır rollback derseniz güncelleme yapılmaz eski hali kalır.

sp_calisanSil stored procedure
create proc [dbo].[sp_calisanSil]
@calisanID int

AS

delete from siparisDetaylari where siparisID IN(select siparisID from siparisler where calisanID = @calisanID)

delete from siparisler where calisanID = @calisanID

delete from calisanMemleket where calisanID = @calisanID

delete from calisanlar where calisanID = @calisanID

[C# kodu]
SqlConnection con = new SqlConnection("Data source=.; Initial Catalog=Northwind;Integrated Security=SSPI;");
SqlCommand cmd = new SqlCommand("sp_calisanSil", con);

cmd.CommandType = CommandType.StoredProcedure;

con.Open();

SqlTransaction tr = con.BeginTransaction();

cmd.Transaction = tr;
cmd.Parameters.AddWithValue("@calisanID", int.Parse(txtCalisanID.Text));
try
{
cmd.ExecuteNonQuery();

tr.Commit();
}
catch (Exception ex) {
tr.Rollback();
MessageBox.Show(ex.Message);

}

finally {
if (con.State != ConnectionState.Closed)

con.Close();
}
Burada görüldüğü gibi bir çalışanı silmek için ilk önce siparisDetaylari, siparisler, calisanMemleket ve calisanlar tablosundaki silinmek istenen calisana ait bilgiler silinmelidir. Eğer bu sırayı yanlış yaparsak örneğin siparisDetaylari, calisanMemleket, siparisler, calisanlar diye siparisDetaylari ndaki veri silinir calisanMemleket teki veri silinmez ve sp bundan ileriye gitmez hata verir bu şekilde veri bütünlüğü bozulmuş olur. Bizim örneğimizde eğer bu şekilde hata olursa yapılan işlemler geri alınır (tr.Rollback()). Eğer hata oluşmazsa değişikler veri tabanı üzerine yazılır (tr.Commit())
Normal bağlantıdan farkı SqlTransaction nesnesi. Bu nesneyi, connection nesnesi ile transaction başlatıp eşitliyoruz, command nesnesinin transaction özelliğine transaction nesnesini veriyoruz ve gereken yerlerde commit ve rollback kullanıyoruz.

11 Ağustos 2008 Pazartesi

Connection Strings

Where do you want to connect today?
.net kullanıcıları için herhangi bir bağlantı oluştururken ihtiyacı olan bağlantı string lerini buluduran bir site. Çok başarılı. www.connectionstrings.com

10 Ağustos 2008 Pazar

Bilgisayar Mühendisi çalışma alanları

Daha önce bir partını paylaşmıştım. Bilal Akçay'ın sitesinden şimdi bilgisayar Mühendisliği ne iş yapar adı altında yazdığı bütün başlıklarını burada paylaşacağım. Gayet güzel ve açıklayıcı yazılar.
Bilgisayar Mühendisi ne yapar?
1-- Yazılım
2-- VeriTabanı yönetimi
3-- Bilişim Güvenliği
4--
5-- Donanım
6-- Teknik Destek
7-- Web
8-- Multimedia
9-- Diğer

7 Ağustos 2008 Perşembe

F1 Help! C#

C# ta kod yazarken F1 in kullanımıyla ilgili bir örnek yapacağım, çok kolay ama önemli. Yapılan projelerde kullanıcıya bilgi vermek isteyebilirsiniz.
Öncelikle formun HelpButton özelliğini true olarak ayarlayıp kodumuzu da formun HelpRequested event ine yazacağız.
Örnekte mouse ile üzerinde olduğunuz kontrolü F1 tuşuna basarak o kontrolün adını öğrenebilirsiniz. Here is the sample..
Point pt = this.PointToClient(e.MousePos);
Control ctr = GetChildAtPoint(pt);
if (ctr == null) return;
MessageBox.Show("Bu kontrol: " + ctr.Name.ToString());
Bu kadar ;). Ne yapacağım kontrol adını öğrenipte :D
O zaman F1 tuşuna basıldığında program tarafından bir .html sayfası açtırın.
string file = Path.GetFullPath("xxx.html");
Help.ShowHelp(this, file);
Artık bundan sonrası hayal gücüne ve kullanım değişikliğine bakar. Değişik bir sürü şey yaplabilir.

1 Ağustos 2008 Cuma

Biraz gülelim :)

Bilal abinin web sitesinden alıntıdır. Gerçekten hoşuma gittiler. Paylaşayım dedim :)

-