Veysel Ugur Kizmaz Gazi Universitesi Bilgisayar Muhendisligi mezunu. Bir yazilim firmasinda Yazilim Muhendisi olarak ozellikle .Net ve Php tabanli yazilim sistemlerinin gelistirilmesi üzerinde çalışıyor.

Devamını oku

C# ile Registry İşlemleri

Öncelikle Registry’nin tanımından başlayalım.

Registry, Windows işletim sisteminin tüm ayarlarının, teknik bilgilerinin tutulduğu yerdir. Başlat -> Çalıştır’dan regedit yazdığımız zaman Windows’un registry kullanıcı arayüzünü görebiliyoruz.

Registry kayıtları, Windows içinde USER.DAT ve SYSTEM.DAT isimli dosyalarda bulunmaktadır.

Yapı olarak da şekilde de görüleceği gibi bir ağaç yapısına sahiptir. Bilgisayardaki klasör-dosya mantığı burada anahtar-değer olarak kullanılmaktadır.

C# ile Registry işlemlerinin nasıl yapılacağını inceleyelim.

Öncelikle using bölümüne
using Microsoft.Win32;
namespace’ini ekliyoruz.

Registry’e Veri Yazma

Bir program yazdınız ve bu programın şifresinin bilgisayar içerisinde kaydedilmesini istiyorsunuz. O zaman şifrenizi şifreleyerek bilgisayarda registry kaydı olarak bulundurabilirsiniz. Bunun için öncelikle registry’nin iç yapısına bir göz atalım.

Registry’de (Windows XP ve Vista) 5 adet root bulunmaktadır. Bunlara ulaşabilmek için isimlerini kullanmamız gerekmektedir.

Root
CurrentUser
CurrentConfig
ClassesRoot
LocalMachine
Users

Root’lara Veri Yazma

 Registry.CurrentUser.SetValue("KullaniciAdi", "ugur");

 Registry içerisinde "Current User" root’una "KullaniciAdi" isminde bir değer value ve buna "uğur" değerini atadık.
 
 
 

 Alt Anahtar Ekleme

Bilgisayardaki klasör mantığı, registry’de anahtar ismiyle kullanılıyor demiştik. Şimdi Registry’e anahtar ekleme işlemini inceleyelim.

 Registry.CurrentUser.CreateSubKey("Zirvedeki Beyinler");

 Current user root’unun içine "Zirvedeki Beyinler" isimli anahtarı ekliyoruz.
 
 
Alt Klasör Veri Ekleme
 
Registry.CurrentUser.CreateSubKey("Zirvedeki Beyinler").SetValue("KullaniciAdi","ugur");
 
İç İçe Klasör Oluşturma
Registry.CurrentUser.CreateSubKey("Zirvedeki Beyinler").CreateSubKey("Bodrum");
 
Registry’den Veri Okuma
string veri = Registry.CurrentUser.GetValue("KullaniciAdi").ToString();
this.Text = veri;
 
Alt Klasör Silme
 
Registry.CurrentUser.CreateSubKey("Zirvedeki Beyinler").DeleteSubKey("Bodrum");
 
Klasör içindeki Değeri Silme
 
Registry.CurrentUser.DeleteValue("KullaniciAdi");
 
Alt Anahtar Sayısını Öğrenme
 
int adet = Registry.CurrentUser.SubKeyCount;
 
Değer Sayısını Öğrenme
 
int adet = Registry.CurrentUser.ValueCount;
 
 
 
Veysel Uğur KIZMAZ
veysel.ugurkizmaz.com

Kategori:C#

Silverlight ile Video Yayınlama

 

Silverlight’ın kullanılmaya başlandığı andan itibaren en önemli özelliğinin kaliteli video oynatabilmesi söylenmektedir. Özellikle HD(High Definition – Yüksek Çözünürlük) kalitesinde video ve canlı yayını desteklemesi, kendisini rakiplerinden üstün kılan en önemli özelliği olarak gösterilmektedir. Peki Silverlight içerisine video ekleme işlemini nasıl yapabiliriz? Bu makalede bu konuya giriş yapacağız.

Silverlight projelerimizi oluşturabilmemiz için bilgisayarımızda Microsoft Expression ailesinden Expression Blend 2 programının bulunması gerekmektedir.

Öncelikle Expression Blend 2′de yeni bir Silverlight 1.0 projesi başlatalım.


Projemizde Page.xaml dosyası ile çalışacağız. XAML uzantılı dosya, Silverlight animasyonunu hazırlayacağımız proje dosyamızdır.

Öncelikle video dosyalarımızı projemize dahil edebilmemiz için bir adet MediaElement eklemememiz gerekmektedir. MediaElement’i, sağ bölümde bulunan >>(Asset Library) seçeneğinden seçiyoruz. Açılan ekranda Search bölümünde arama yapıp MediaElement’i projemizde istediğimiz bölgeye ekliyoruz.



MediaElement kontrolü seçiliyken Properties -> Media -> Source seçeneğinden, projemize video dosyamızı ekliyoruz.




Bu işlemden sonra projemizi F5 ile çalıştırdığımız zaman sayfamızda videomuzu görebileceğiz.

Şu ana kadar yaptığımız işlemlerin kodlarını görmek için de üst bölümde Design, XAML, Split seçenekleri bulunmaktadır. Design tasarım ekranını; XAML, kod ekranını; Split ise yarı tasarım yarı kod ekranını göstermektedir. Buradan da görebiliyoruz ki Microsoft, Silverlight için yepyeni bir programlama dili geliştirmiş : XAML . . .

Veysel Uğur KIZMAZ
veysel.ugurkizmaz.com

 

Kategori:Genel

Regular Expressions

Regular Expressions(düzenli ifadeler), metin düzenlemek veya belirlediğimiz düzene uyan alt metin parçacıkları oluşturmak için kullanılır.

Metin düzenleme olarak tanımladığımız bölüm, var olan bir metnin tamamının, belirlediğimiz düzene uymasıdır. Alt metin parçacıkları ise, metnin içinde bulmak istediğimiz ve belirlediğimiz düzene uyan bir metin olup olmadığını kontrol eder.

System.Text.RegularExpressions kütüphanesinin üyesidir.

Regular Expression Oluşturma Kuralları ve Özel Simgeler

Kural 1: Using satırına System.Text.RegularExpressions’ı ekleyelim.

Kural 2: Eğer string içerisinde \ karakterini kullanıyorsak “” dışına @ karakterini veya \ yerine \\ kullanacağız.

string desen = @”^[1-5] \ [6-9]$”
veya
string desen = ”^[1-5] \\ [6-9]$”

Özel Simgeler

1. . Simgesi: Metin içerisinde bir karakterin olup olmadığını kontrol eder. “.”nın olduğu yerde en fazla bir karakter olabilir.
ÖRNEK: Zirvedeki.Beyinler -> ZirvedekiBeyinler = Zirvedeki Beyinler

2. + Simgesi: Kendisinden önce gelen karakterin en az bir kere tekrarlanması gerektiğini belirtir.
ÖRNEK: Zirvedeki +Beyinler -> Zirvedeki Beyinler = Zirvedeki   Beyinler = Zirvedeki    Beyinler

3. ? Simgesi: Kendisinden önce gelen karakterin en fazla bir kere gelmesi gerektiğini belirtir.
ÖRNEK: Veysel+Kizmaz -> VeyselKizmaz= VeyseKizmaz(Kalıba Uyan Başka String Yoktur)

4. * Simgesi: Kendisinden önce gelen karakterin sıfır veya daha fazla kere tekrarlanması gerektiğini belirtir.
ÖRNEK: Veysel* -> Veyse= Veysel= Veyselll
ÖRNEK: (Veysel)* Kizmaz-> Kizmaz = Veysel Kizmaz = VeyselVeysel Kizmaz

5. [] Simgesi: [] içindeki karakterlerden birinin geleceğini belirtir.
ÖRNEK: 20[0-9]8 -> 2008 = 2018 = 2028  … =  2098

6. {} Simgesi: Kendisinden önce gelen karakterin {} içinde yazıldığı sayıda tekrar edeceğini belirtir.
ÖRNEK: (ZirvedekiBeyinler){2} -> ZirvedekiBeyinlerZirvedekiBeyinler

7. ^ Simgesi: Metin başını ifade eder.
ÖRNEK:
^Zirvedeki Beyinler -> String’in başında “Z” olup olmadığını kontrol eder.
ÖRNEK: ^(Zirvedeki) Beyinler. -> String’in başında “Zirvedeki” olup olmadığını kontrol eder.

8. $ Simgesi: Metin sonunu ifade eder.
ÖRNEK: (Bitti)$ -> String’in sonunda “Bitti” olup olmadığını kontrol eder.

9. \s: Metin içerisinde boşluk olması gerektiğini kontrol eder [space].
ÖRNEK:
Zirvedeki\sBeyinler -> Zirvedeki Beyinler

10. \S: Metin içerisinde boşluk olmamasını kontrol eder.

Regular Expressions’daki özel karakterler bu kadarla sınırlı değildir. En çok kullanılanları yukarıda yer almaktadır.

Örnek: Şimdi genel bir cep telefonu numarası desenlerini yapalım.
Genel özellikleri: 05 ile başlayacak, 5. Karakter 0 olmayacak, toplam 11 karakterden oluşacaktır.

Cep Telefonu Regular Expression’ının son hali: ^(05) [0-9][0-9] [1-9] ([0-9]){6}$
Açıklama:
05 ile başlayacak.
Üçüncü karakter 0-9 arasında bir değer alacak.
Dördüncü karakter 0-9 arasında bir değer alacak.
Beşinci karakter 1-9 arasında bir değer alacak (0 almayacak).
Sonraki 6 karakter 0-9 arasında değerler alacak ve 6. karakterden sonra string tamamlanacak.

Bu yazdığımız desenleri kontrol etmek için küçük bir program yazalım. Lütfen aşağıdaki kodları açıklamalarıyla inceleyiniz.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace DuzenliIfadeler
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
/*Telefon desenini belirledik.*/
string telefonDeseni = ”^(05)[0-9][0-9][1-9]([0-9]){6}$”;

/*Telefon desenine uygun RegularExpression değişkenini oluşturduk.*/
Regex rxTelefon = new Regex(telefonDeseni);

/*textbox’a girilen değer, telefonDeseni’ne uyuyorsa uyarı ver.*/
if (rxTelefon.Match(textBox1.Text).Success)
MessageBox.Show(“Telefon numarası, desene uygundur”);
}
}
}

Veysel Uğur KIZMAZ

Kategori:C#

Entity Framework DataGridView Doldur

Entity Framework ile alınan veriyi DataGridView’a doldurma işlemini inceleyelim.
Bu makaleden önce Entity Framework ile Select işlemini incelemenizi tavsiye ederim.
1. StoreDBEntities entity = new StoreDBEntities();
2. var products = from c in entity.Products
select c.Name;
3.  dataGridView1.DataSource = products;
Örnek uygulamamızda Products tablosundaki bir ürünlerin isimlerini alacağız. İşlem adımları aşağıdaki gibidir.
1.       Veritabanımız olan StoreDB’den oluşturduğumuz Entity’i tanımlıyoruz. Tüm işlemleri bu entity üzerinden gerçekleştireceğiz.
2.       Almak istediğimiz ürünleri LINQ kullanarak veritabanından alıyoruz.
3. Aldığımız ürünleri (products) gridview’ın datasource’u olarak gösterip ekranda görünmesini sağlayabiliyoruz.

Veysel Uğur KIZMAZ

Bilgisayar Mühendisi
veysel@ugurkizmaz.com

Entity Framework Delete

Entity Framework ile Delete işlemi LINQ’ya çok benzemektedir.
Bu makaleden önce LINQ ile Delete işlemini incelemenizi tavsiye ederim.
1.  StoreDBEntities entity = new StoreDBEntities();
2.  Products product = (from p in entity.Products where p.Id == 2select p).SingleOrDefault();
3.  entity.DeleteObject(product);
4.  entity.SaveChanges();
Örnek uygulamamızda Products tablosundaki bir ürünlerin isimlerini alacağız. İşlem adımları aşağıdaki gibidir.
1.       Veritabanımız olan StoreDB’den oluşturduğumuz Entity’i tanımlıyoruz. Tüm işlemleri bu entity üzerinden gerçekleştireceğiz.
2.       Silmek istediğimiz ürünü LINQ kullanarak veritabanından alıyoruz.
3.       Ürünü Entity’den siliyoruz.
4.       Entity’in son halini veritabanıyla senkronize ediyoruz.

Veysel Uğur KIZMAZ

Bilgisayar Mühendisi
veysel@ugurkizmaz.com

Entity Framework Select

Entity Framework ile Select işlemi LINQ’ya çok benzemektedir.
Bu makaleden önce LINQ ile Select işlemini incelemenizi tavsiye ederim.
1. StoreDBEntities entity = new StoreDBEntities();
2. var products = from c in entity.Products
select c.Name;
3. List<string> productNames = products.ToList();
Örnek uygulamamızda Products tablosundaki bir ürünlerin isimlerini alacağız. İşlem adımları aşağıdaki gibidir.
1.       Veritabanımız olan StoreDB’den oluşturduğumuz Entity’i tanımlıyoruz. Tüm işlemleri bu entity üzerinden gerçekleştireceğiz.
2.       Almak istediğimiz ürünleri LINQ kullanarak veritabanından alıyoruz.
3.       Ürünleri List türüne dönüştürüyoruz. Bu işlemden sonra verileri istediğimiz controlde ya da prosedürde kullanabiliriz.

Veysel Uğur KIZMAZ

Bilgisayar Mühendisi
veysel@ugurkizmaz.com

Entity Framework Update

Entity Framework ile Update işlemi LINQ’ya çok benzemektedir.
Bu makaleden önce LINQ ile Update işlemini incelemenizi tavsiye ederim.
1. StoreDBEntities entity = new StoreDBEntities();
2. Products product = (from p in entity.Products where p.Id == 2 selectp).SingleOrDefault();
3. product.Name = ”Yeni İsim”;
product.Price = 25;
4. entity.SaveChanges();
Örnek uygulamamızda Products tablosundaki bir ürünü güncelleyeceğiz. İşlem adımları aşağıdaki gibidir.
1.       veritabanımız olan StoreDB’den oluşturduğumuz Entity’i tanımlıyoruz. Tüm işlemleri bu entity üzerinden gerçekleştireceğiz.
2.       Güncellemek istediğimiz ürünü veritabanından LINQ kullanarak alıyoruz.
3.       Üründe istediğimiz değişiklikleri yapıyoruz.
4.       Son olarak entity’i kaydediyoruz.

Veysel Uğur KIZMAZ

Bilgisayar Mühendisi
veysel@ugurkizmaz.com

Entity Framework – Model Oluşturma

Ado.Net Entity Framework, Visual Studio 2008 SP1 ve üst sürümlerde yer almaktadır. Bu sebeple öncelikle Visual Studio’nuzun sürümünü kontrol ediniz.
Herhangi bir .Net projesine Entity Framework’ü entegre edebiliriz. Bu örnek uygulamada Windows Applicaion üzerinde çalışacağız. Aynı işlemleri Web Application için de gerçekleştirebilirsiniz.
Projemizi açtıktan sonra projemize Ado.Net Entity Data Model ekliyoruz.
Ekleme işlemi tamamlandıktan sonra karşımıza çıkan sihirbazda ister boş veri modeliyle çalışabilir, istersek de veritabanı bağlantısı kurarak bu veritabanı üzerinden model oluşturabiliriz. Uygulamamızı veritabanı ile entegre edeceğiz. Bu yüzden “Generate from database” seçeneğini seçiyoruz.
Şimdi bizden bir veritabanı bağlantısı kurmamızı istiyor. Hazırda bağlantımız varsa onu kullanabileceğimiz gibi yeni bir bağlantı oluşturarak da ilerleyebiliriz.
Bağlantı bilgileri seçildikten sonra veritabanı yapımız tablo view ve stored procedure’ler ile karşımıza gelmektedir. Projemize entegre etmek istediğimiz nesneleri seçip sihirbazımızı tamamlıyoruz.
Sihirbaz tamamlandıktan sonra aşağıda göründüğü gibi her Products nesnemiz oluştu. Bu andan itibaren Products isimli tabloyla ilgili tüm işlemleri LINQ’da yaptığımız gibi Object – Property şeklinde kolaylıkla gerçekleştirebiliyoruz.

Veysel Uğur KIZMAZ

Bilgisayar Mühendisi
veysel@ugurkizmaz.com

Silverlight Uygulamasına Kodla Event Ekleme

Merhaba arkadaşlar.

Silverlight uygulamalarımıza Visual Studio içerisinden C# kodlarıyla event oluşturma nasıl olur inceleyeceğiz.

Öncelikle yeni bir Silverlight 2 projesi başlatalım.

Projede Properties ekranında proje adına sağ tıklayıp Edit in Visual Studio seçeneğini seçelim.

Page.xaml.cs dosyası içerisinde Page_Load event’ının prosedürünü oluşturalım.

 private void Page_Load(object sender, RoutedEventArgs e)

{
     MessageBox.Show("Merhaba");
}

 

Şimdi Visual Studio içerisinde Page.xaml.cs dosyasının içinde Page sınıfının constructor’ında bulunan InitializeComponent() prosedürüne gidelim. Bu prosedür Page.g.cs dosyası içerisinde yer almaktadır.

InitializeComponent metodunun kodları aşağıdaki şekilde olacaktır.

 public void InitializeComponent() {

     if (_contentLoaded) {
          return;
     }
     _contentLoaded = true;
     System.Windows.Application.LoadComponent(this, new System.Uri("/PageLoadEkle;component/Page.xaml", System.UriKind.Relative));
     this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
}
 

Metodumuz içine Form_Load event’ını ekliyoruz.

 this.Loaded += new RoutedEventHandler(Page_Load);

 
Projemizi çalıştıralım. Sayfamız açılırken "Merhaba" mesajıyla karşılaşacağız.
 
 
 
Veysel Uğur KIZMAZ
veysel.ugurkizmaz.com

 

Kategori:Silverlight

Entity Framework Insert

Entity Framework – Insert
Entity Framework ile Insert işlemi LINQ’ya çok benzemektedir.
Bu makaleden önce LINQ ile Insert işlemini incelemenizi tavsiye ederim.
1.     StoreDBEntities entity = new StoreDBEntities();
2.     Products product = new Products();
3.     product.Name = ”İsim”;
product.Description = ”Açıklama”;
product.Price = 45;
4.     entity.AddToProducts(product);
5.     entity.SaveChanges();
Örnek uygulamamızda Products tablosuna ürün ekleyeceğiz. İşlem adımları aşağıdaki gibidir.
1.       Veritabanımız olan StoreDB’den oluşturduğumuz Entity’i tanımlıyoruz. Tüm işlemleri bu entity üzerinden gerçekleştireceğiz.
2.       Yeni ürün oluşturacağımız için Products türünden bir ürün oluşturuyoruz.
3.       Bu ürünün adı, açıklaması ve fiyatını yazıyoruz.
4.       Ürünün tüm özelliklerini belirttikten sonra entity’nin Products tablosuna yeni ürünü kaydediyoruz.
5.       Son olarak entity’i kaydediyoruz.

Veysel Uğur KIZMAZ

Bilgisayar Mühendisi
veysel@ugurkizmaz.com