Microsoft uzmanlarından online ücretsiz eğitimler

Microsoftvirtualacademy.com’dan ücretsiz olarak yayınlanan eğitimler sayesinde Microsoft ürün ve teknoloji bilgilerinizi tazeleyebilir, öğrenebilirsiniz. Konulara göre; C# / XAML, Aspiring Technologists, HTML5, Virtualization,Managing Desktop & Devices, Server Infrastructure, Windows, Windows Server, System Center, Windows Azure, Visual Studio, SQL Server gibi kurs videolarını ücretsiz olarak izleyebilirsiniz. Canlı etkinlikler, kursiyerler arası puanlandırma rekabeti, öğrenme planlaması gibi ek olarak bu aktivitelerden faydalanabiliyorsunuz.

ucretsiz-microsoft-egitimleri

Ücretsiz Microsoft eğitimlerinden faydalanmak için microsoftvirtualacademy.com tıklayın.

Xml kaydet güncelle silme işlemleri

Xml dosya yapısı, veri saklamak için uygun olduğu için ufak çapta projeler için xml teknolojisi vazgeçilmez oluyor. Gelin birlikte windows form ile xml dosyasına takla attıralım…

Windows form ile yapacağımız örnek uygulamada Xml dosyasına veri kayıt etme, güncelleme, silme gibi işlemlerin yanında kontrolleri kullanarak işlemleri yaptıralım. Örneğimizde; xml dosyası oluşturup dosya içine kayıt id numarası otomatik artacak şekilde veri kayıt etme, kayıt ettiğimiz verileri listview kontrolünde gösterme, kayıt edilip listelenen verileri güncelleme ve kayıt edilmiş seçilen veriyi silme işlemi yapılacak. Bunun yanında xml dosyasından combobox kontrolüne veri çekip, bu kontrolde seçilen elemana ilişkili olan verileri listview kontrolünde gösterecek.

[viral-lock][wpdm_file id=23][/viral-lock]

xml-kaydet-guncelle-sil

Resimdeki gibi bir form ekranı tasarlayıp aşağıda açıklamanı kod kısmına geçebilirsiniz;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
private void Form1_Load(object sender, EventArgs e)
{
if (!File.Exists("xmldosyam.xml")) // Daha önceden dosyanın var olduğunu kontrol ettik. Dosya yoksa .xml uzantılı xmldosyam adında dosya oluşturma işlemine başladık.
{
XmlTextWriter xmlolustur = new XmlTextWriter("xmldosyam.xml", null); // XmlTextWriter sınıfından oluşturacağımız dosya özellikleri için nesne oluşturduk.

xmlolustur.WriteStartDocument();

xmlolustur.WriteComment("Oluşturulan xml hakkında bilgi"); // Dosya hakkında bilgi ekledik.

xmlolustur.WriteStartElement("Baslangic"); // Başlangıç elementi gibi özellikleri ekledik.

xmlolustur.WriteEndDocument();

xmlolustur.Close();
}

//xml dosyasında veri varsa başlangıçta çekiyoruz
listele();
}

private void listele()
{
if (File.Exists("xmldosyam.xml"))
{
listView1.Items.Clear();

XmlDocument doc = new XmlDocument();

doc.Load("xmldosyam.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList kayitlar = root.SelectNodes("/Baslangic/Kisiler");

foreach (XmlNode secilen in kayitlar)
{
ListViewItem lv = new ListViewItem();
lv.Text = secilen["id"].InnerText;
lv.SubItems.Add(secilen["adi"].InnerText);
lv.SubItems.Add(secilen["soyadi"].InnerText);
lv.SubItems.Add(secilen["sehir"].InnerText);
listView1.Items.Add(lv);

// combobox içine xml dosya içindeki şehileri ekliyoruz.
// Fakat burada aynı şehirden birden fazla olmaması için indexof özelliğinden yararlanarak combobox içine benzersiz eleman eklemiş oluyoruz.
if (comboBox1.Items.IndexOf(secilen["sehir"].InnerText) == -1)
{
comboBox1.Items.Add(secilen["sehir"].InnerText);
}

}
}
}

private void btnKaydet_Click(object sender, EventArgs e)
{
bool varmi = false;
int enBuyukId;

XmlDocument doc = new XmlDocument(); // Xml dosyamızı okumak için XmlDocument sınıfından yararlanıyoruz.
doc.Load("xmldosyam.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList kayitlar = root.SelectNodes("/Baslangic/Kisiler"); // Xml içindeki istediğimiz kayıtlara ulaşabilmek için yolu tanımlıyoruz. Bunu veritabanı içindeki
// tablo olarak düşünebilirsiniz. Bu yol ile Kullanicilar tablosuna yani listesine ulaşıp kayıtları XmlNodeList sınıfından oluşturduğumuz kayitlar isimli

if (kayitlar.Count > 0) // Her yeni kayıta otomatik farklı id numarası verebilmek için bir önceki kayıtın id numarasına göre işlem yapmamız gerekecek. Burada ilk kayıt varmı kontrol ediyoruz. Varsa, kayıtlar içinde en büyük idyi yani numarayı bulup üzerine 1 ekletip yeni kayıt için hazırlıyoruz. Yoksa, daha önce kayıt oluşturulmamışsa ilk kayıt numarasını 0 atayıp kayıt için gönderiyoruz.
{
varmi = true;
}

if (varmi == true)
{
int[] kayittakiSayilar = new int[kayitlar.Count]; // Kayıt sayısı kadar dizi tanımaldık.

int i = 0; // Diziyi arttırmak için sayı tanımladık.
foreach (XmlNode secilen in kayitlar)
{
kayittakiSayilar[i] = Convert.ToInt32(secilen["id"].InnerText); // Kayıtlardaki tüm id yani numaraları kayittakiSayilar dizisi içine ekledik.
i = i + 1;
}

Array.Sort(kayittakiSayilar); // kayittakiSayilar dizisi içinde bulunan sayılardan en büyüğünü bulabilmek için Array sınıfını kullandık. Bulunan en büyük sayıya 1 ekledik.
enBuyukId = kayittakiSayilar[kayittakiSayilar.Length - 1];
enBuyukId = enBuyukId + 1;

}
else
{
enBuyukId = 0;
}

if (File.Exists("xmldosyam.xml")) // Xml dosyamıza kayıt eklemede hata almamak için dosyanın var olup olmadığını kontrol ediyoruz.
{

XmlElement UserElement = doc.CreateElement("Kisiler"); // Veritabanından tablo ismi gibi düşünbebilirsiniz.

XmlElement id = doc.CreateElement("id"); //Oluşturulan xml içindeki Kullanicilar elementine id isimli element (DB deki gibi düşünürsek Kullanicilar tablosuna id kolonunu ekliyoruz.)
id.InnerText = enBuyukId.ToString();
UserElement.AppendChild(id);

XmlElement adi = doc.CreateElement("adi"); // İkinci elementi ekliyoruz.(Yani ikinci kolonu)
adi.InnerText = txtAdi.Text;
UserElement.AppendChild(adi);

XmlElement soyadi = doc.CreateElement("soyadi");
soyadi.InnerText = txtSoyAdi.Text;
UserElement.AppendChild(soyadi);

XmlElement sehir = doc.CreateElement("sehir");
sehir.InnerText = txtSehir.Text;
UserElement.AppendChild(sehir);

doc.DocumentElement.AppendChild(UserElement);

XmlTextWriter xmleekle = new XmlTextWriter("xmldosyam.xml", null);
xmleekle.Formatting = Formatting.Indented;
doc.WriteContentTo(xmleekle);
xmleekle.Close();

}
listele();

}
string id = null;
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem li = listView1.SelectedItems[0];
lblId.Text = li.SubItems[0].Text;
txtAdi.Text = li.SubItems[1].Text;
txtSoyAdi.Text = li.SubItems[2].Text;
txtSehir.Text = li.SubItems[3].Text;
id = li.SubItems[0].Text;

}
}

private void btnSil_Click(object sender, EventArgs e)
{
try
{

XDocument xDoc = XDocument.Load("xmldosyam.xml");
XElement deletedElement = xDoc.Root.Elements().FirstOrDefault(xe => xe.Element("id").Value == id);

deletedElement.Remove();
xDoc.Save("xmldosyam.xml");

//listeyi güncellemek için xmlden verileri listview1 çekiyoruz
listele();
}
catch (Exception)
{

MessageBox.Show("Silinecek eleman yok veya seçilmemiş.");
}
}

private void btnGuncelle_Click(object sender, EventArgs e)
{
XDocument xDoc = XDocument.Load("xmldosyam.xml");

// gelen id ye göre güncelleme yapılmakta
XElement currentElement = xDoc.Root.Elements().FirstOrDefault(xe => xe.Element("id").Value == id);

// Guncellenecek verinin koşulu fazla ise, yani hem adı hemde sehiri koşulu sağlayan verilerin güncellemek istediğimizde aşağıdaki gibi kullanırız.
// XElement currentElement = xDoc.Root.Elements().FirstOrDefault(xe => xe.Element("adi").Value =="ali" && xe.Element("sehir").Value == "istanbul");

currentElement.SetElementValue("adi", txtAdi.Text);
currentElement.SetElementValue("soyadi", txtSoyAdi.Text);
currentElement.SetElementValue("sehir", txtSehir.Text);
xDoc.Save("xmldosyam.xml");

//listeyi güncellemek için xmlden verileri listview1 çekiyoruz
listele();
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

// combobox dan seçilen şehir e göre listeleme işlemi yapıyoruz.
listView1.Items.Clear();

XmlDocument doc = new XmlDocument();

doc.Load("xmldosyam.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList kayitlar = root.SelectNodes("/Baslangic/Kisiler");

foreach (XmlNode secilen in kayitlar)
{
//seçilen şehri gösterebilmek için burada filtreliyoruz
if (secilen["sehir"].InnerText == comboBox1.Text)
{

ListViewItem lv = new ListViewItem();
lv.Text = secilen["id"].InnerText;
lv.SubItems.Add(secilen["adi"].InnerText);
lv.SubItems.Add(secilen["soyadi"].InnerText);
lv.SubItems.Add(secilen["sehir"].InnerText);
listView1.Items.Add(lv);

}

}
}

2013 yılının en popüler yazılım dilleri

ABD’de kurulmuş olan CodeEval platformunun 25 bin yazılım geliştiriciden topladığı veriler sonucu hazırladığı raporda 2013 yılının en popüler yazılım dillerini açıkladı. Blogumda daha önceden jobstractor.com’un hazırlamış olduğu 2013 yılında öğrenilmesi gereken programlama dilleri arasında gösterilen liste ile biraz çelişmekte. Buradaki liste ve oradaki listeyi karşılaştırıp kendi yolunuzu belirleyebilirsiniz.

populer-yazilim-dilleri

İşte 2013 yılının en popüler yazılım dilleri;

2013-en-populer-programlama-dilleri

Kaynak : http://blog.codeeval.com/codeevalblog/2014#.UvdRcdJP6FC

Microsoft dan ücretsiz e-kitap lar

Microsoft ürünleri için hazırladığı introduciong(başlangıç) seviyesinde, ücretsiz e-kitapları Microsoft Press’den indirebilirsiniz.

microsoft-ucretsiz-e-kitap-indir

Microsoft Sysyem Center, Windows Server, Windows Store(Apps, JavaScript, Css, Html), Sql Server, Visual Studio, Windows Phone, Office gibi bir çok ürününün başlangıç seviyesindeki e-kitapları aşağıdaki bağlantıdan indirebilirsiniz.

[viral-lock]Microsft E-kitap indir [/viral-lock]

Datagridview ve grafik chart ilişkisi


Deprecated: Function create_function() is deprecated in /var/www/vhosts/digitaldunyam.net/coder.digitaldunyam.net/wp-content/plugins/codecolorer/lib/geshi.php on line 4698

Datagridview içindeki verileri grafik üzerinden gösterebilmek için .Net 4.0 ile birlikte gelen toolbox da Data sekmesi içinde Chart kontrolü sayesinde yapabilirsiniz. Bu örnek uygulamada Datagridview kontrolündeki verileri göstermeye çalıştık. Listview gibi benzeri kontroller ile de verileri grafik olarak gösterebilirsiniz.

datagridview-grafik

Resimdeki örnek uygulama için forma bir datagridview ve chart kontrolü ekleyin. Chart kontrolü Series özelliğinden resimdeki gibi name adına sonuc olarak değiştirin.(Bunu neden yaptığımızı kod içinde anlayacaksınız.) Bunları yaptıktan sonra load olayına aşağıdaki kodları yazabiliriz;

chart-kontrolu-kullanimi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void Form1_Load(object sender, EventArgs e)
{
try
{
dataGridView1.Rows.Add("ali", 85);
dataGridView1.Rows.Add("veli", 60);
dataGridView1.Rows.Add("ayşe", 50);
dataGridView1.Rows.Add("ahmet", 75);
dataGridView1.Rows.Add("mehmet", 55);

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
this.chart1.Series["sonuc"].Points.AddXY(dataGridView1.Rows[i].Cells[0].Value.ToString(), Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value.ToString()));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

[viral-lock][wpdm_file id=22][/viral-lock]

Datagridview yazıcıdan yazdırmak

Datagridview kontrolü içindeki verilerle birlikte yazdırmak yani yazıcıdan çıktı almak çok kolay. Resimdeki gibi forma; Datagridview, buton, printDocument ekleyip kod kısmına geçebiliriz.

datagridview-yazdirma

1
2
3
4
5
6
7
8
9
10
11
12
 private void button1_Click(object sender, EventArgs e)
        {
            printDocument1.Print();
        }

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);

            dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
            e.Graphics.DrawImage(bm, 0, 0);
        }

Form içinde kontrol boyutlandırma

Çalışma anında form boyutunu arttırdıkça kontrollerin yeri kayarak tasarımı bozulmaktadır. Bu gibi durumlar için form içinde ki kontrollerin özelliklerinde bulunan çapa özelliğini kullanarak çözebilirsiniz.

[wpdm_file id=21]

Örnek olarak resimdeki gibi forma bir kaç tane kontrol ekleyip aşağıdaki kodları uygulayın.

1
2
3
4
5
6
 private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
            button1.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);
            groupBox1.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right);
        }

form-kontrol-boyutlandir

Panel kontrolünü resim olarak yazdırma

Up uzuunn süreden sonra merhaba… Windows form da panel kontrolü yazıcıdan yazdırmak için kontrolün görüntüsünü resim olarak kayıt edip, kayıt edilen o resmi yazdırabiliriz. Diğer VS kontrollerini bu şekilde yazdıra bilirmiyiz ? sorusunu soracak olursanız cevabım evet.

Örnek de panel kontrolünü kullanmamın sebebi; runtime da veya çalıştırmadan önce panel kontrolü içine eklediğimiz zamazingoları direk yazdırabilmek için kullandım. Mesela reçete programında panel içine yazdırılan ürünleri yazıcıdan çıktı almak için döngülerle dönecek yerine resim olarak alıp yazıcıdan basit bir şekilde yazdırabiliriz.

panel-resim-yazdirma

Sözü(yazıyı) fazla uzatmadan örneğe geçecek olursak. Resimdeki gibi forma; panel, button ve panel içine yazdırılması için bir kaç tane label sallayın. Buton clik olayına gelerek aşağıdaki kodları yapıştırın. Gerekli açıklamalar kodlar içinde verilmiştir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 private void btnYazdir_Click(object sender, EventArgs e)
        {
            int genislik = panel1.Size.Width;
            int yukseklik = panel1.Size.Height;

            using (Bitmap bmp = new Bitmap(genislik, yukseklik))
            {
                panel1.DrawToBitmap(bmp, new Rectangle(0, 0, genislik, yukseklik));
                bmp.Save("resim.png", ImageFormat.Png);
            }

            // buraya kadar olan kısımda Panel'in resmini oluşturuyoruz.

            PrintDocument prt = new PrintDocument();
            prt.PrintPage += new PrintPageEventHandler(resmiYazdir);
            prt.Print();

            // Oluşturduğumuz resmi burada aşağıdaki metod yardımı ile yazdırıyoruz.
           

        }

        void resmiYazdir(object o, PrintPageEventArgs e)
        {
            System.Drawing.Image i = System.Drawing.Image.FromFile("resim.png");
            Point p = new Point(0, 0);
            e.Graphics.DrawImage(i, p);

           
        }

[wpdm_file id=20]