Navigation

Search

Categories

On this page

Microsoft.NET Framework 2.0, AJAX Examples
Word 2007 Adds Blog Posting Tool
20 Questions About Windows Vista
How To Draw Line On Windows Forms With Two Mouse Clicks
Design Patterns
How to Start Programs Inside Windows Form Applications With C#
Multi Versioning Of Oracle
Personalization of Applications
Selecting Radio Button In A DataGrid
Certification

Archive

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 291
This Year: 0
This Month: 0
This Week: 0
Comments: 0

Sign In
Pick a theme:

# Sunday, May 28, 2006
Sunday, May 28, 2006 1:23:35 PM (GTB Daylight Time, UTC+03:00) ( AJAX )

Microsoft.NET Framework 2.0 İle Yapılmış AJAX örnekleri

Buradan erişebilirsiniz.Güzel çalışmalar.İncelemekte yarar var.

Comments [0] | | # 
# Friday, May 19, 2006
Friday, May 19, 2006 3:07:46 PM (GTB Daylight Time, UTC+03:00) ( IT )

Word 2007 ile Birlikte Blog Aracı Geliyor...


Blogseverlerin eminim ki çok hoşuna gidecek bu haber

Comments [0] | | # 
Friday, May 19, 2006 3:06:08 PM (GTB Daylight Time, UTC+03:00) ( IT )

Windows Vista Hakkında 20 Soru


Geçenlerde gördüm bu haberi belki benim gibi Vista sevenler vardır diye buraya aktarmak istedim.

Comments [0] | | # 
# Monday, May 15, 2006
Monday, May 15, 2006 10:35:29 PM (GTB Daylight Time, UTC+03:00) ( C# | Tips )

İki Mouse Tıklaması ile Form Üzerinde Çizgi Çizdirme


CeTURK'te sorulmuştu. Buraya da aktarmak istedim. Mouse ile iki tıklama ile düz çizgi çizilmesini sağlıyor program.
Programın genel hatları aşağıdadır. Programı indirmek için
MouseClick1.zip (22,34 KB)

private Point FirstPoint;
private Point LastPoint;
private bool IsFirstPoint;


private void DrawLine()
{
    Graphics FormGraphics = this.CreateGraphics();
    Pen BlackPen = new Pen( Color.Black );
    FormGraphics.DrawLine( BlackPen, FirstPoint, LastPoint );
}

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
    if( IsFirstPoint == true )
    {
        FirstPoint.X = e.X;
        FirstPoint.Y = e.Y;
        IsFirstPoint = false;
    }
    else
    {
        LastPoint.X = e.X;
        LastPoint.Y = e.Y;
        DrawLine();
        IsFirstPoint = true;
    }
}
private void Form1_Load(object sender, System.EventArgs e)
{
    FirstPoint = new Point( 0, 0 );   
    LastPoint = new Point(0,0);
    IsFirstPoint = true;
}




Comments [0] | | # 
# Tuesday, May 09, 2006
Tuesday, May 09, 2006 11:17:36 PM (GTB Daylight Time, UTC+03:00) ( IT )

Tasarım Kalıpları


Pattern, bir diğer adıyla Design Pattern, kavramı yazılım mühendisliğinde kullanılan bir kavramdır. Bu kavram ile birtakım problemlerin çözümü kolaylaştırılmış, ortak karşılaşılan sorunlara, konusunda uzman kişilerin çözüm üretmesi sonucunda netice kazandırılmıştır.

Genellikle soyut olan işlemleri anlatmak için somutlaştırmadan yararlanılır.Kısaca metafor olarak adlandırılır bunlar. Yazılım mühendisliği konuları anlatılırken sıkça inşaat mühendisliğinden örnekler verilir, metaforlardan faydalanılır. Ben de buna uygun bir örnek ile açıklamaya çalışayım. Her evin bir kapısı vardır. Bu kapının eni, boyu, kapı kolunun yere uzaklığı, kapının açılış yönü gibi çeşitli özellikleri bulunur. Mimarlar her inşaat için bu kapı ölçülerini tekrardan oluşturmazlar. Var olan bir kalıptan yararlanarak, yeni kapının modelini çizerler. Burada mimarlar bellirli bir kalıptan yani pattern den yararlanır.

Sistem tasarlamanın, kodlamadan daha önemli olduğunu düşünüyorsanız, bu konuya eğilmelisiniz.Bu konu hakkında bir çok şey yazılabilir. İmkanlar dahilinde bunları söyleyebilirim.

Bu konuda en önemli design pattern ler Gang Of Four olarak adlandırılan GoF ve GRASP pattern leridir.

Detay bilgi için tıklayınız... 


Comments [0] | | # 
Tuesday, May 09, 2006 7:47:33 PM (GTB Daylight Time, UTC+03:00) ( C# | Tips )

C# ile Windows Uygulaması İçinden Harici Bir Uygulama Nasıl Çağırılır?


Bütünleşik sistemler üzerinde çalışan uygulamalar, çalışma süreçlerinde dışarda bulunan bazı programları çağırmak isteyebilirler. Zamanınızda uygulmaların birbirlerine ihtiyaçları da göz önüne alındığında, kendi programlarımızın içinden başka uygulamaları çağırmak kaçınılmaz olacaktır.En basitinden bir log dosyasını kullanıcıya gösterirken bir text editörünü kullanmak isteyebiliriz. CeTURK te bu konu hakkında sorulan sorular üzerine ufak bir uygulama yapma ihtiyacı hissettim. Aşağıda bu projenin kodlarını indirip, inceleyebilirsiniz.

.NET framework, bu işlem için bize gerekli isim uzaylarını ve sınıflarını sunmuştur. Bize kalan, ilgili parametreler ile bu sınıfları kullanmaktır. System.Diagnostics.Process sınıfı içinde ilgili fonksiyon ve metotlar soyutlanmıştır.

En temelde çağırılan fonksiyon altta belirtilmiştir.

        private void StartProcess( string _processPath )
        {
            System.Diagnostics.Process.Start( _processPath );
        }





İndirmek için(  ProcessSample.zip (24,96 KB)    )
Comments [0] | | # 
# Monday, May 08, 2006
Monday, May 08, 2006 10:53:30 PM (GTB Daylight Time, UTC+03:00) ( Articles | Oracle )

Oracle'yi Oracle yapan çok sevdiğim özelliklerden biri. Türkçeye çoklu versiyonlama gibi ilginç bir şekilde çevrilebilir. Aynı anda veritabanının farklı görünüşleri olarak ifade edilmesi daha güzel olacaktır kanaatimce. Oracle içinde herhangi bir işlem yapmak istediğiniz zaman, commit veya rollback yapmayıncaya kadar, diğer kullanıcılar tarafından görülmeyecektir. Aslında bir update yaptığınızı zannedip commit etmediğiniz için dış kullanıcıların bunu görmemesini sağlayabilirsiniz. O nedenle önemli bir konu olarak değerlendirlmelidir.

Şimdi bir örnekle daha iyi ifade etmeye çalışalım.2 tane  SQL Plus açılmalı öncelikle. İlki için bir tane tablo oluşturalım:

create table t1(
   plaka number,
   sehir nvarchar2(32)
)


Tabloyu dolduralım:

DECLARE
   i NUMBER;
BEGIN
   i := 0;
   WHILE (i < 100)
   LOOP
      INSERT INTO t1 (plaka, sehir) VALUES (i*100, 'Sehir_' || to_char(i));
      i := i + 1;
   END LOOP;
END;


Tabloyu kontrol edelim:

SELECT * FROM t1


Verilerimiz:

0    Sehir_0
100 Sehir_1
200 Sehir_2
300 Sehir_3
400 Sehir_4


En sonunda onaylayalım yaptıklarımızı:

commit


Şimdi ise ikinci SQL Pus ı açalım.Bir update yapalım:

UPDATE t1 SET plaka = plaka * 100


Tabloyu kontrol edelim:

SELECT * FROM t1

Verilerimiz:

0       Sehir_0
10000 Sehir_1
20000 Sehir_2
30000 Sehir_3
40000 Sehir_4


Şimdi kilit noktaya geliyoruz. Bu update’i commit etmeden, ilk SQL Plus ekranından tabloyu kontrol ediyoruz:

SELECT * FROM t1

Verilerimiz:

0    Sehir_0
100 Sehir_1
200 Sehir_2
300 Sehir_3
400 Sehir_4


ilginç değil mi? Oysa az önce bunu update etmiştik. İşte Oracle bu noktada sizin veritabanına bağlandığınız andan sonra commit edilmemiş hiç bir veriyi size göstermiyor.Bu sayede tutarlı bir okuma sağlamış oluyor. İkinci SQL Plus tan bir commit cümlesi ile yaptıklarımızı onaylayalım:

commit

Artık Oracle biliyor ki, veriler onaylandı herkes yeni verilere ulaşabilir.İlk SQL Plus ekranından şimdi bir okuma yaparsak:

SELECT * FROM t1

Verilerimiz:

0       Sehir_0
10000 Sehir_1
20000 Sehir_2
30000 Sehir_3
40000 Sehir_4


Yeni verileri görmüş oluruz.

Comments [0] | | # 
Monday, May 08, 2006 8:38:56 PM (GTB Daylight Time, UTC+03:00) ( Tips )

Uygulamaların Kişiselleştirilmesi


Soru: Projemde bir color dialog kutusu kullanarak kullanıcının kendi zevkine göre form,label,text renklerini değiştirmesi istiyorum.Renk bilgilerini bir database de saklamak istiyorum. Hangi tipte saklamam gerek veya nasıl dönüşümler yapmak gerek bilmiyorum.

Cevap :

Yapmaya çalıştığınız işlem en temelde, kullanıcı tercihlerinin belirli bir formatta ve yerde tutulması, programın tekrar açılması sırasında ise öncelikle o bilgilerin okunup gerekli tercihlerin yüklenmesi işlemidir.Bu yapı, kendini kabul ettirmiş birçok yazılımda bulunur.Örneğin, programın varsayılan olarak hangi dilde açılacağı, ekranın neresinde konumlanacağı, varsa hangi pencereler ile açılacağı bunlara örnek verilebilir.

Bunun için yapmış olduğum bir projeden örnek vermek istiyorum.Bir görüntü işleme programı olan projede, Application.config adlı bir XML dosyası bulunmakta idi.Bu dosyanın bir kesiti şöyle idi:

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

<language>English</language>

Program başlarken LoadAppConfiguration() adlı metoda girer, burada belirlenen dosyayı okur, orada bulunan değişkenlere göre kişiselleştirmeleri yapardı.Program sonlnınca ise SaveAppConfiguration() metodu ile ilgili tercihleri kaydederdi.

Size tavsiyem, bu tur kişisellştirmeye yönelik özellikleri veritabanı yerinde XML ve benzeri dosyalar ile sağlamaktır.Bu sayede daha etkin çözüme ulaşmış olacağınızı düşünüyorum.

Bu noktada yapmanız gereken dosya okuma ve yazma işlemlerine hakim olmanızdır.Bunun da zor olmayacağını düşünüyorum.


Comments [0] | | # 
# Sunday, May 07, 2006
Sunday, May 07, 2006 5:41:02 PM (GTB Daylight Time, UTC+03:00) ( ASP.NET | C# | Tips )

DataGrid içinde Radio Button Seçimi


Soru :Geliştirdigim asp.net  projesinde asp kodu içine gömdügüm template kolon aracılıgı ile her satırında birer radiobutton olan sütun yaratıyorum. Ancak aynı anda bir sütunda tek bir radiobuton secmeyi istememe ragmen her seferinde birden fazla radiobutonu secebiliyorum. Bunu engelemem icin ne  yapmam gerekir?


Cevap: Bunu engellemek için ek işlemler yapmanız gerekir.Datagrid içine eklenen her bir kontrol, yeni bir kontrol larak değerlendirilir.Bu da radio button kontrolleri için sorun çıkarır.Radio button larının doğası gereği belirli bir grup olarak kümelenmelidirler.Bu da ,sizin de uygulamanızda yaşadığınız şekilde, seçim işleminde sorun çıkarır.

Bunu aşmak için kimi yöntemler geliştirlmiştir.Mesela, template column olarak doğrudan radio yerine, label oluşturup, ItemDataBound olayını override edip, yerine HTML olarak radio button oluşturmak için gerekli string i yazabilirsiniz.Bundan başka kimi datagrid kontrollleri(MetaBuilder olacak sanırım veya SPDataGrid )bunu sağlayan yaılar sunmaktadır size.Bunlar da incelenebilir.

En kısa çözüm olarak size, radio button ların AutoPostBack özeliklerini true yapıp her seçimde server tarafına gelmesini burada kontrol edilmesini sağlayabilirsiniz.Bu ilk bakışta, her seçim için server tarafına gidileceği ve bu sayede server tarafına gereksiz yük getireceğini çağrıştırabilir.Ama radio button ların yapısı gereği(ki genellikle bunlar master-detail formlarda daha çok kullanılır) bir seçimden sonra, eklenen submit benzeri buton ile server tarafına gitmesini gerektirir.Bu sayede kullanıcıların ikinci bir radio button seçmesine imkan vermeden işleminizi gerçekleştirmiş olursunuz.

Template olarak oluşturduğunuz radio button un OnCheckChanged olayına bir fonksiyon yazıp, o fonksiyon içinde seçili radio button un değerini alıp Response.Rediect ile ilgili sayfaya get değişkeni olarak aktarabilirsiniz.

Comments [0] | | # 
Sunday, May 07, 2006 8:52:28 AM (GTB Daylight Time, UTC+03:00) ( IT )

Sertifikasyon Nedir?


Sertifika, bildiklerini bir belge ile kanıtlamaya çalışıp, kariyer ve maddi açıdan güzel yerlere gelmeyi amaçlayan insanların almaya çalıştıkları belgedir.

Sertifikasyon konusunda bazı tartışmalar yapılagelmiştir.Bir açıdan bakılırsa, sertifakasyon, birçok kişiye cazip gelmektedir.Ama -kanaatime göre- bu durum bir MUST değil MIGHT tır.

Birara Microsoft içinde uzun yıllar danışmanlık yapmış bir Beyden bunu sormuştum. Artık şirket yöneticilerinin sertifikasyondan çok yapılan projelere baktığını, buradan da sertifikasyonun sanıldığı kadar olmazsa olmaz bir olay olmadığını çıkarmanın mumkun olduğunu ifade etmiş, alınan sertifikaların yapılan projelerle süslenmesinin kişiyi öne çıkaracak bir yön olduğunu belirtmişti.

Gerek Microsoftun, gerek Cisconun gerekse de Oraclenin sertifikasyon için verilen eğitim ve sınavların o kadar da ucuz olmadığını herkes bilir.O nedenle bu konu analiz edilirken, geniş çaplı düşünmenin faydalı olacağına inanmaktayım.

Son olarak benim bu konudaki fikrime gelirsem, sertifikasyon tabiiki güzel birşeydir. Eğitim alıp kendine birşeyler katmak insanı emsallerinden ayıran en önemli farklardandır.Yanlız burada şu da unutulmamalıdır, sertifikasyon herşey değildir. Önemli olan varolan bilginizi pratik hayatta uygulayabilmeniz, sorunlara çözüm üretebilme yeteneğinizdir.Bu ikisini aynı potada eritebilirseniz, hiç durmadan başlayın derim.Buraya vereceğiniz birkaç paranın geri dönüşü, böylesi bir unvana sahip olduktan kısa bir zaman sonra yapılacaktır.

Comments [0] | | #