ASP.Net | Masterpage

Posted by mezo | Posted in ASP.Net, C#, Yazılım | Software | Posted on 21-02-2012-05-2008

0

Asp.Net de kullanılan ve çok önemli bir konu olan Masterpage konusunun netten indirilen bir hazır CSS template üzerinde uygulanışı ile alakalı ayrıntılı bir video iyi seyirler dilerim ;)

Formlar Arası Veri Transferi

Posted by mezo | Posted in C#, Introduction | Posted on 12-02-2012-05-2008

1

C# da form uygulamalarında formlar arasında veri aktarımı nedir nasıl yapılır ? ;)

Formlar Arasi Veri Transferi from M.Zeki Osmancık on Vimeo.

Sınırsız Ağaç Yapısı ve Treeview Kullanımı

Posted by mezo | Posted in ADO.Net | Posted on 24-01-2012-05-2008

0

Merhaba arkadaşlar

Bu yazımda çokça bahsedilen çokça kullanılacak olan bir kontrol yapısı ve bunun database den gelen verilerle nasıl çalıştığını göstermek isterim sizlere…

Bahsettiğimiz kontrolümüz Treeview denilen bir nesne bu nesne bizlere ağaç yapısı bulunan bilgileri rahatlıkla ve tek ekranda görmemizde bizlere kolaylık sağlayan bir kontrol peki ama nasıl bu kontrole birşeyler ekler kullanılabilir hale getirebiliriz…

Öncelikle bir DB ye ve tabloya ihtiyacım var sırası gelmişken birde SQL tablosunda sınırsız ağaç yapısından bahsetmeden olmaz heralde.  Şekildeki gibi bir veritabanı oluşturdum…

 

Buradaki mantık aslında basit eğer bir kayıt root kayıtsa yani kök kayıtsa o zaman AltKategoriID si NULL olmalıdır. Eğer girdiğimiz kategori başka bir kategori altında duruyorsa o halde hangi kategori üst ise AltKategoriID sine o kaydın ID değerini girmeliyiz. Zaten resimdeki birbirine bağlı yapıda bunu temsil eder. Birde girdiğimiz verileri inceleyin bakalım nasıl birşey varmış :D

Burada Elektronik root yani ana kategori Bilgisayar onun altında bulunduğu için Bilgisayar kaydının AltKategoriID si Elektronik kaydının ID sine eşit Bilgisayarın altında olanlarda Bilgisayar kaydının ID sine sahip olacaktır böylelikle alt alta uzayıp giden sınırsız bir ağaç yapısına sahip olabiliriz.

Peki tablomuz tamam verilerimizide girdik e hani Treeview  derseniz onuda şöyle özetleyelim

Yeni bir Windows formuma Treeview ve button nesnemi yerleştirdim

Ardından button nesnesinin Click olayına gelerek dedim ki  :

DataRelation baglanti;private void btnListele_Click(object sender, EventArgs e){SqlConnection cnn = new SqlConnection(“Data Source = .; Initial Catalog = Deneme; User = sa; Password = 1234567?;”);SqlDataAdapter adp = new SqlDataAdapter(“Select * From Kategoriler”,cnn);

DataSet ds = new DataSet();

adp.Fill(ds,”Kategoriler”);

 

baglanti = new DataRelation(“baglan”,ds.Tables["Kategoriler"].Columns["KategoriID"],

ds.Tables["Kategoriler"].Columns["AltKategoriID"]);

 

ds.Relations.Add(baglanti);

 

foreach (DataRow dr in ds.Tables["Kategoriler"].Rows)

{

if (dr["AltKategoriID"] == DBNull.Value)

{

TreeNode root = new TreeNode(dr["KategoriAdi"].ToString());

root.Tag = dr["KategoriID"];

tvAgac.Nodes.Add(root);

AltKategorileriGetir(dr,root);

}

}

tvAgac.ExpandAll();

}

 


Kodlara bakacak olursak klasik bir ADO.net ile verilerimi alıp bir DATASET e eklemişim biliyorsunuzki DATASET nesnesi içine birden

fazla DATATABLE nesnesi barındırabilen bir nesne yani sanal veritabanı gibide düşünebiliriz aslında. Peki database de bağlantılar olurda bunda olmazmı ? Olmamı tabikide olur bu bağlantıyıda DATARELATION nesnesi sağlar işte tam burada bende verilerimi çektikten sonra içindeki hangi veri ile hangi verinin eşleşeceği yani hangisinin ana ID hangisinin ona bağlı olan Altkategori olduğunu belirtip bağlantımı tamamladım. Ardından bir foreach ile Dataset içersine attığım Datatable içindeki satırları tek tek almaya başladım ve bu foreach içersinde sadece AltKategorisi NULL olanları aldım yani Root olan kök olan kayıtları aldım ve Treeview nesneme ekledim.

Peki bunun altında bişi yokmu ? Altındakini hatta onun altındaki kayıtları nasıl alacağız derseniz ondada bir metotun yardımını isteyip o metodu kendi içersinde çağırarak işimizi çözeceğiz…

 

private void AltKategorileriGetir(DataRow dr,TreeNode pNode){foreach(DataRow row in dr.GetChildRows(baglanti)){TreeNode childNode = new TreeNode(row["KategoriAdi"].ToString());childNode.Tag = row["KategoriID"];

pNode.Nodes.Add(childNode);

AltKategorileriGetir(row,childNode);

}

}

 

Bu metodu çalıştırırkende biraz once kontrol ettiğimiz root kaydı ve oluşturulan TreeNode nesnesini parametre olarak yolladıktan sonra oluşturduğumuz bağlantı nesnesi ile Altkategorideki değerleri kontrol ediyoruz ve varsa yine TreeNode oluşturup mevcut Node altına ekliyoruz. Vee sonra kategori ve altındaki elemanları tek tek karşıma geliyor

Umarım yararlı olur

Görüşmek Üzere

M.Zeki Osmancık

 

VMWare Windows 8 Kurulumu

Posted by mezo | Posted in Teknoloji | Posted on 26-09-2011-05-2008

2


Merhaba arkadaşlar
Windows 8 Developer Preview çıktı biliyorsunuz. Merak edip kurdum ve kurarken bazı sorunlarla karşılaştım. Genel manada pek beğendim denilemez ama incelemek isteyen arkadaşlar için kurulum ile alakalı birkaç not aktarmak isterim…
Öncelikle buradan indiriyorsunuz http://msdn.microsoft.com/en-us/windows/apps/br229516

Daha sonra VMWare programımızı çalıştırıyorsunuz henüz windows 8 uyumu yok ama Windows 7 seçerek sağlıklı şekilde kurulabilir

VMWare ile standart kurulum yapmaya çalıştığımızda kurulum başladıktan sonra dil ekranını beklerken böyle bir hata ile karşılaşıyoruz. ilk girişte key de girsek ne yapsak kar etmiyor.

Bunun sebebi standart kurulum yaparken oluşturulan sanal makinede Disket sürücüsününde bulunması ilk kurulum yaparken bu disketten key bilgisini okumaya çalışıyor hiç birşey bulamadığı içinde key ile ilgili hata veriyor.  Çözümü sanal makinenin ayarlarını açıp disket sürücüsünü silmek. bundan sonra hiç sorun kalmıyor…

Bundan sonrası klasik windows kurulumu.

Kurulum tamamlandıktan sonra bizden windows hesap bilgilerimizi istiyor ve internete bağlanarak bilgilerimizi alarak bizim için bir oturum oluşturuyor.

Veee Microsoft un en son Windows Mobile 7 de kullandığı çokda kullanışlı olmayan menüsü bizi karşılıyor.

İçersinde Internet Explorer 10  Visual Studio 11 ve Expression 5 yüklü olarak geliyor. Bunları inceledikçe notlarımı yine sizlerle paylaşacağım.

Şimdilik bu kadar sonraki yazılarda görüşmek üzere….

M.Zeki Osmancık

GDI

Posted by mezo | Posted in C# | Posted on 21-07-2011-05-2008

4


Merhaba arkadaşlar

GDI  = Graphical Design Interface  ile ilgili ufak bir bilgi vermek istiyorum sizlere. GDI, Windows uygulamaları üzerinde çizim işlemleri gerçekleştirmemize olanak tanıyan sınıflardır.

Bu sınıflar ile Windows formlar üzerine veya print nesneleri ile kağıt üzerine bazı çizimler yapabilmemiz mümkün.

Öncelikle bir çizim yapabilmek için de ilk gereken bir kağıt yada çizim yapılacak alandır öncelikle bunu belirtmemiz gerekiyor

Form üzerine çizim yapabilmek için:

Graphics grp = this.CreateGraphics();

 

PictureBox üzerine çizim yapabilmek için:

Graphics grp = pictureBox1.CreateGraphics();

 

Çizim alanımızı oluşturduktan sonra ile form veya picturebox üzerine ne çizdireceğimizi seçmemiz gerekiyor ama bunu seçmeden öncede çizmek için gerekli olan kalem veya içi dolu bir şekil çizeceksek fırça gerekiyor. Bunu da şu şekilde tanımlayabiliriz;

Pen kalem = new Pen(Color.Blue);

kalem.Width = 5;

 

Brush firca = new SolidBrush(Color.Red) ;

 

Bu şekilde tanımladığımızda kalem ve fircanin özelliklerini değiştirebilir durumda oluyoruz. Kalemin kalınlığı vs gibi özelliklerini ayarlayabiliyoruz. Ya bunlara ihtiyacımız yoksa bunlarla uğraşmadan nasıl yaparız derseniz onun çözümüde şu şekilde…

Pens.Blue

 

Brushes.Red

 

Hemen belirteyim bu şekilde kullanım tek başına mümkün olmuyor ancak gerekli kodlar içersinde bu şekilde kullanabilirsiniz biraz aşağıda bunun örneklerini göreceksiniz zaten ;)

Çizim alanı tamam kalem tamam firça tamam eee ne kaldı geriye ??? Sadece çizmek kaldı ;)

Çizim yapabilmek içinde ilk başta örneğini (instance) aldığımız Graphics nesnesini kullanacağız. Ve içersindeki çizim metotları ile form üzerine şekiller çizeceğiz….

grp.DrawLine(Pen nesnesi, X1, Y1, X2, Y2);

grp.DrawLine(kalem, 50, 50, 150, 50);

Formun üzerine Line çizerken verilen koordinatlar 2 tane x ve y noktalarıdır bu iki noktayı belirtiriz ve DrawLine metodu bizim yerimize bu iki noktayı birleştirir ve şekildeki gibi bir görüntü ortaya çıkar.

Birde Dikdörtgen Yuvarlak bişiler çizelim.

grp.DrawEllipse(Pen nesnesi, X, Y, Genişlik, Yükseklik);

grp.DrawEllipse(kalem, 100, 100, 100, 100);

 

grp.DrawRectangle(Pen nesnesi, X, Y, Genişlik, Yükseklik);

grp.DrawRectangle(Pens.Blue, 200, 100, 100, 100);

 

Bu şekilleri çizerkende gerekli olan veriler önce bir kalem sonra X ve Y noktası ardından çizilecek olan şeklin yükseklik ve genişlik bilgileridir.

Son olarak Pie yani kekden bahsetmek istiyorum :D evet sizi keklemiyorum pasta grafik olarak adlandırdımız şekli nasıl çizeriz ona bakalım…

grp.DrawPie(Pen nesnesi, X, Y, Genişlik,Yükseklik , Başlangıç Açısı, Yay Açısı);

 

grp.DrawPie(kalem, 50, 200, 100, 100, 0, 270);

Şimdi birde bunların içi dolu olanları nasıl yazılıyor aralarında ne fark var görelim ;)

grp.FillEllipse(firca, 100, 100, 100, 100);

grp.FillRectangle(firca, 200, 100, 100, 100);

grp.FillPie(Brushes.Purple, 50, 200, 100, 100, 0, 270);

 

 

 

GDI nesnesi sadece bu işemi yarar diyebilirsiniz :D Bu sadece başlangıç bir sonraki yazıda GDI nin asıl nasıl kullanılabildiğini göreceğiz ;)

Görüşmek Üzere…

 

 

Windows Mobile 7 Yenilikleri

Posted by mezo | Posted in Teknoloji | Posted on 16-10-2010-05-2008

0



Merhaba arkadaşlar
Sizlerle yeni çıkmış olan bir teknoloji ile alakalı bazı bilgileri paylaşmak istiyorum. Herkesin bildiği gibi Microsoftun çokda kullanışlı olmayan bir Windows Mobile işletim sistemi mevcut ne kadar uğraşsalarda normal kullanıcılara erişemediler. Bilgisayar bilgisi olanların tercih ettiği bir telefon işletim sistemi şuanda.
Microsoft bu durumu değiştirmek istiyor ve rakiplerine son kullanıcıyada ulaşabileceğini ıspat edebilmek için bir devrim ile geliyor .
Windows Mobile 7

İnternette dolaşan haberlere göre Microssoft WM7 yi devrim olarak nitelendiriyor. Bir çok telefon firması WM7 ile ilgili çalışmalarını bitirmişler bile bunların arasında Dell, Garmin-Asus, HTC Corp., HP, LG, Samsung, Sony Ericsson, Toshiba ve Qualcomm gibi firmalar var . Üreticiler dışında WM7 ye destek veren operatörlerde var bunlarda ilk etapda Orange, O2, Vodafone, T-Mobile ve Three adlı firmalar.
Windows Mobile 7 işletim sisteminin en büyük kozlarından biri şüphesiz oyun teknolojisi Game Hub denilen yeni bir özellikle gelen WM7 ,Xbox Arcade oyunlarını WM7 ye port edebilecek . Ayrıca XNA Framework geliştiricilerinede müjde artık sizde WM7 için Xbox Arcade oyunları gibi oyunlar geliştirebileceksiniz. Geliştiriciler kolaylıkla çoklu dokunmatik, kamera, GPS, uyarılar, ivmeölçer gibi özelliklerden ve Silverlight geliştirici platformundan faydalanabiliyorlar.

Artık  mobile cihazımızı bilgisayara bağlarken Windows Mobile Center kullanılmayacak bunun yerine Dorado adında bir Zune yazılımı kullanılarak tüm senkronizasyon işlemleri bu yazılım aracılığı ile gerçekleşecek.Ekran çözünürlüğü olarak şuan WVGA yani 800×480 çözünürlüğü destekliyor ilerleyen günlerde bu HVGA 480×320 de eklenecekmiş. Toast isimli bir platform üzerinden reklam erişimi sağlanabiliyor Microsoft reklamdan para kırmayıda düşünmüş :D Donanım olarakda sağlam özelliklere hitap edecek olan WM7 1Ghz işlemcili cihazlarda çalışabiliyor.

Şimdiye kadar güzel ve fark yaratan özelliklerinden bahsettik şimdide saçmalayan özelliklerinden bahsedelim . WM7 işletim sisteminde daha düşük sürümlerde olan ama 7 versiyonunda ilk etapta bulunmayacak özellikler var. Bunlardan ilki Copy –Paste . evet yanlış okumuyorsunuz WM7 içersinde Copy-Paste yok. Bazı sitelerde bu tür özelliklerin sonradan ekleneceği yönünde söylentiler var ama ilk etapda olmaması büyük bir negatif düşünce bir soru işareti . Gelelim diğer eksiğe MultiTasking!!! En büyük kayıp bence. Standart bir kaç uygulama var müzik ,mesaj falan bunlarda birden fazla uygulama çalışırken sorun yok ama 3. Parti yazılımları aynı anda çalıştırmak imkansız hale gelmiş sanki biraz iphone kokuyor gibi birazda saçmalama var. Güzel yapacaz derken fazla abartmışlar.  Ha unutmadan birde sadece telefon üzerindeki hafızayı kullanmak zorunda kalıyoruz ayrıca SD kart vs gibi genişletme seçeneklerini desteklemiyor bu özellikte Copy-Paste gibi sonradan eklenebilecekler listesindeymiş.

Son olarak uygulamalarına gelelim büyük bir uygulama mağazası oluşturulmuş WM7 için bu mağazada geliştiriciler için abonelikler ,tek seferde kredi kartı üzerinden alımlar ve reklam sponsorlu uygulamalar destekleniyor. Ayrıca uygulamalar ücretsiz ve ücretli sürümler olarak bir arada sunuluyor, deneme sürümleri daha iyi değerlendirilebilir hale getirilebilecek.
Umarım Microsoft WM7 yi daha kullanılabilir hale getirir de senelerdir alışageldiğim Windows işletim sistemli telefonlardan vazgeçmek zorunda kalmam .

Bilgiyle Kalın…
M.Zeki Osmancık

Windows Phone 7 Features Video from John on Vimeo.