Enable-Migrations
Add-Migration [DatabaseAdi]
Update-Database
14 Kasım 2014 Cuma
8 Kasım 2014 Cumartesi
ASP.NET MVC Cache Dependency Kullanımı
Merhaba arkadaşlar,
Bu yazıda sizlere Dependency Cache kullanımını göstereceğim. Dependency Cache herhangi bir fiziksel bir dosyada txt,xml,doc,xls vs.. değişiklik olduğu zaman Cache'in bozulup yeniden oluşturulmasını sağlar. ufak bir örnek ile gösterelim
1)Öncelikle Cache adında bir Controller oluşturalım.
2)Entitiy Framework ile veritabanı bağlantımızı yapalım.
3)Yeni bir Model oluşturalım
Modelimize aşağıdaki gibi kodlarımızı yazalım.

Bu aşamada neler yaptığımızı kısaca anlatayım. Öncelikle cache'in null olup olmadığını kontrol ediyorum eğer cache boş ise veritabanına gidip buradaki 47658 tane mahalleyi bir listeye atıyorum. Daha sonra bizim cache ile bağlılığımızı kontrol edilmesini sağlaması amacıyla bir tane cacheKir.txt dosyası oluşturuyorum eğer bu dosyada bir değişiklik olduğu zaman bu CacheDependency bizim cachemizi bozup yeniden oluşturmasını sağlayacaktır.
Daha sonra MahalleCache keyi adı altında veritabanından gelen bilgilerimizi 1 yıllık cache tutması amacıyla yapılandırıyoruz peki veritabanında yeni bir mahalle eklediğimizde,sildiğimizde veya güncellediğimizde sayfada görüntülenmesi için 1 yıl bekliyecek miyiz? İşte bu aşamada CacheDependency işin içine girmiş oluyor. CacheDependency'in referans olarak aldığı CacheKir.txt adlı dosyada değişiklik yaptığımız zaman artık yeni bilgilerin görüntülenmesi için 1 yıl beklememiş olacağız. :)
Şimdi Controller daki kodlarımızı aşağıdaki gibi yazalım...
Şimdi View kodlarımızı yazalım.

Şimdi Model deki kodlarıma Break Point koyuyorum.
Görmüş olduğunuz gibi projemi ilk kez çalıştırdığım için veritabanına gidip verileri Cache yazdı artık programımız 1 yıl boyunca verileri cache'den okuyacak.
Verilerimin geldiği sayfada F5 yapıyorum.

Evet görmüş olduğunuz gibi artık else düşüyor ve artık verileri cache den okuyor
ve biz CacheKir dosyasında değişiklik yapmadığımız sürece 1 yıl boyunca cache den okumaya devam edecek.

Şimdi veritabanında bir değişiklik yaptığım için bu verileriminde cache yansıması için CacheKir adlı dosyada değişiklik yapıyorum gördüğünüz gibi dosyada değişiklik olduğu için cache yeniden oluşturuluyor...
Anlamadığınız yer olursa sorun cevaplamaya çalışırım
herkese bol kodlu günler.
Bu yazıda sizlere Dependency Cache kullanımını göstereceğim. Dependency Cache herhangi bir fiziksel bir dosyada txt,xml,doc,xls vs.. değişiklik olduğu zaman Cache'in bozulup yeniden oluşturulmasını sağlar. ufak bir örnek ile gösterelim
1)Öncelikle Cache adında bir Controller oluşturalım.
2)Entitiy Framework ile veritabanı bağlantımızı yapalım.
3)Yeni bir Model oluşturalım
Modelimize aşağıdaki gibi kodlarımızı yazalım.

Bu aşamada neler yaptığımızı kısaca anlatayım. Öncelikle cache'in null olup olmadığını kontrol ediyorum eğer cache boş ise veritabanına gidip buradaki 47658 tane mahalleyi bir listeye atıyorum. Daha sonra bizim cache ile bağlılığımızı kontrol edilmesini sağlaması amacıyla bir tane cacheKir.txt dosyası oluşturuyorum eğer bu dosyada bir değişiklik olduğu zaman bu CacheDependency bizim cachemizi bozup yeniden oluşturmasını sağlayacaktır.
Daha sonra MahalleCache keyi adı altında veritabanından gelen bilgilerimizi 1 yıllık cache tutması amacıyla yapılandırıyoruz peki veritabanında yeni bir mahalle eklediğimizde,sildiğimizde veya güncellediğimizde sayfada görüntülenmesi için 1 yıl bekliyecek miyiz? İşte bu aşamada CacheDependency işin içine girmiş oluyor. CacheDependency'in referans olarak aldığı CacheKir.txt adlı dosyada değişiklik yaptığımız zaman artık yeni bilgilerin görüntülenmesi için 1 yıl beklememiş olacağız. :)
Şimdi Controller daki kodlarımızı aşağıdaki gibi yazalım...

Şimdi View kodlarımızı yazalım.

Şimdi Model deki kodlarıma Break Point koyuyorum.

Görmüş olduğunuz gibi projemi ilk kez çalıştırdığım için veritabanına gidip verileri Cache yazdı artık programımız 1 yıl boyunca verileri cache'den okuyacak.
Verilerimin geldiği sayfada F5 yapıyorum.

Evet görmüş olduğunuz gibi artık else düşüyor ve artık verileri cache den okuyor
ve biz CacheKir dosyasında değişiklik yapmadığımız sürece 1 yıl boyunca cache den okumaya devam edecek.

Şimdi veritabanında bir değişiklik yaptığım için bu verileriminde cache yansıması için CacheKir adlı dosyada değişiklik yapıyorum gördüğünüz gibi dosyada değişiklik olduğu için cache yeniden oluşturuluyor...
Anlamadığınız yer olursa sorun cevaplamaya çalışırım
herkese bol kodlu günler.
1 Kasım 2014 Cumartesi
MSSQL - INNER JOIN,GROUP BY,ORDER BY,TOP,HAVING Kullanımı (En Çok Satılan Ürün Sorgusu)
Merhaba arkadaşlar,
sizlere bu makalede INNER JOIN , GROUP BY, ORDER BY, TOP ve HAVING kullanarak en çok satılan ürün sorgusu yazmayı göstereceğim.
Öncelikle bu ifadeleri açıklayalım.
INNER JOIN : 1 den fazla tablo da eşleşen kayıtların listesini getirir.
GROUP BY : Gruplama işlemlerinde kullanılan fonksiyondur eğer örneğimizde olduğu gibi bir ürünün kaç defa satıldığını, veya bir ülkedeki çalışan sayısı vb. sorgu türlerinde kullanılır
ORDER BY : bir ifadeye göre sırlama işlemi yapar DESC ve ASC kullanılır. DESC tersten sıralama, ASC ise düz sıralama işlemi yapar.
TOP : Kayıtların kaç tane gösterileceğini belirler
HAVING : Grupladığımız kolona şart koşmak için kullanılır örnek olarak 50 den fazla satılan ürünlerin listesi
4 Satır ) Kaç adet kayıt gösterileceğini belirliyoruz.
6 Satır ) Ürün adımızı ve o ürünün kaç defa satıldığını Count ifadesi ile hesaplıyoruz ve hesaplanan sütuna KacAdetSatildi adinda takma isim veriyoruz.
8 Satır) Satılan ürünlerin tablosunu seçiyoruz ve OD adında takma isim veriyoruz.
10 Satır) Order Details tablosu ile Produtcs tablosunun birleştirerek sorgulayacağımızı söylüyoruz.
12 Satır )Produtcs tablosunu seçiyoruz ve P adında takma isim veriyoruz.
14 Satır ) İki tabloda da ProductID kolonu olduğu için her iki tabloda da bu kolon üzerinden eşleşen kayıtları getir diyoruz.
16 Satır ) Burada gruplama işlemi yapıyoruz. Görüntülenecek alanları burada grupluyoruz biz ProductName ve ProductID kolonlarının gösterileceğini 6 satırda yapmıştık biz ProductDetails kolonunda göstermiş olsaydık eğer, onuda bu satırda gruplayacaktık.
18 Satır) 50 den fazla satılan ürünlerin gelmesini istiyoruz.
20 Satır ) Ve artık kayıtlarımızı tersten sıralıyoruz(büyükten kücüğe) 54,51....

Evet arkadaşlar tek bir örnek üzerinde 5 adet farklı özellik görmüş olduk kolay gele :)
sizlere bu makalede INNER JOIN , GROUP BY, ORDER BY, TOP ve HAVING kullanarak en çok satılan ürün sorgusu yazmayı göstereceğim.
Öncelikle bu ifadeleri açıklayalım.
INNER JOIN : 1 den fazla tablo da eşleşen kayıtların listesini getirir.
GROUP BY : Gruplama işlemlerinde kullanılan fonksiyondur eğer örneğimizde olduğu gibi bir ürünün kaç defa satıldığını, veya bir ülkedeki çalışan sayısı vb. sorgu türlerinde kullanılır
ORDER BY : bir ifadeye göre sırlama işlemi yapar DESC ve ASC kullanılır. DESC tersten sıralama, ASC ise düz sıralama işlemi yapar.
TOP : Kayıtların kaç tane gösterileceğini belirler
HAVING : Grupladığımız kolona şart koşmak için kullanılır örnek olarak 50 den fazla satılan ürünlerin listesi
4 Satır ) Kaç adet kayıt gösterileceğini belirliyoruz.
6 Satır ) Ürün adımızı ve o ürünün kaç defa satıldığını Count ifadesi ile hesaplıyoruz ve hesaplanan sütuna KacAdetSatildi adinda takma isim veriyoruz.
8 Satır) Satılan ürünlerin tablosunu seçiyoruz ve OD adında takma isim veriyoruz.
10 Satır) Order Details tablosu ile Produtcs tablosunun birleştirerek sorgulayacağımızı söylüyoruz.
12 Satır )Produtcs tablosunu seçiyoruz ve P adında takma isim veriyoruz.
14 Satır ) İki tabloda da ProductID kolonu olduğu için her iki tabloda da bu kolon üzerinden eşleşen kayıtları getir diyoruz.
16 Satır ) Burada gruplama işlemi yapıyoruz. Görüntülenecek alanları burada grupluyoruz biz ProductName ve ProductID kolonlarının gösterileceğini 6 satırda yapmıştık biz ProductDetails kolonunda göstermiş olsaydık eğer, onuda bu satırda gruplayacaktık.
18 Satır) 50 den fazla satılan ürünlerin gelmesini istiyoruz.
20 Satır ) Ve artık kayıtlarımızı tersten sıralıyoruz(büyükten kücüğe) 54,51....

Evet arkadaşlar tek bir örnek üzerinde 5 adet farklı özellik görmüş olduk kolay gele :)
26 Ekim 2014 Pazar
C# Encapsulation Kullanımı
Merhaba arkadaşlar sizlere bu makalede Kapsülleme(Encapsulation) kullanımını göstereceğim.
Encapsulation nedir ona ufak bir değinelim.
Encapsulation ; Bir class içersindeki field'a kontrolsüz erişimi engellemektir.
İsterseniz örnek yaparsak daha iyi anlayacağınız kanaatindeyim.

Resimde görmüş olduğunuz gibi -1 adet stok girildi. Kullanıcı bu tarz yanlış bilgiler girebilir bunun önüne geçmek için field'ı kapsülleyeceğiz binevi koruma altına alacağız.

Görmüş olduğunuz gibi kullanıcı eğer eksili değerler girerse bunun kontrolünü yapıp 0 olarak yazdırıyoruz.
İsterseniz başka bir örnek daha yapalım..

Evet görmüş olduğunuz gibi İsmimizin tersini yazdıran program kodu yazdık aslında olaya sadece kapsülleme olarak bakmayın istedim çünkü SET metodu içersinde program içersinde kod olarak yazacağımız herşeyi yazabiliyoruz:) GET metodu ise sadece bize SET metodundaki en son değeri döndürmekle mükellef herkese kolay gelsin :)
Encapsulation nedir ona ufak bir değinelim.
Encapsulation ; Bir class içersindeki field'a kontrolsüz erişimi engellemektir.
İsterseniz örnek yaparsak daha iyi anlayacağınız kanaatindeyim.

Resimde görmüş olduğunuz gibi -1 adet stok girildi. Kullanıcı bu tarz yanlış bilgiler girebilir bunun önüne geçmek için field'ı kapsülleyeceğiz binevi koruma altına alacağız.

Görmüş olduğunuz gibi kullanıcı eğer eksili değerler girerse bunun kontrolünü yapıp 0 olarak yazdırıyoruz.
İsterseniz başka bir örnek daha yapalım..

Evet görmüş olduğunuz gibi İsmimizin tersini yazdıran program kodu yazdık aslında olaya sadece kapsülleme olarak bakmayın istedim çünkü SET metodu içersinde program içersinde kod olarak yazacağımız herşeyi yazabiliyoruz:) GET metodu ise sadece bize SET metodundaki en son değeri döndürmekle mükellef herkese kolay gelsin :)
24 Ekim 2014 Cuma
SQL SERVER - Entitiy Framework ile Store Procedure Kullanarak Geriye Değer Döndürmek
Merhaba arkadaşlar,
Sizlere bu makalede Store Procedure den geriye deger döndürmeyi göstereceğim bu uygulamayı sizlere Entitiy Framework kullanarak göstereceğim.
Yapacağımız şey veri ekleme olacak yani eger X adında birisi varsa veriyi Store Procedure eklemiycek bize 0 degeri döndürecek eğer yok ise veriyi ekleyecek ve bize 1 degeri döndürecek bizlerde bu degerleri program içersinde yakalayarak işlemlerimizi yapacağız yani degerimiz bize 0 gelirse kullanıcı zaten var, 1 gelirse kullanıcı eklendi yazısı göstereceğiz.
Öncelikle aşağıdaki gibi Store Procedure oluşturalım.

Console Uygulaması oluşturalım ve Entitiy Framework ile veritabanımızdaki ilgili tabloları seçelim SAKIN STORE PROCEDURELERI seçmeyi unutmayın yoksa programdan neden store procedure ulaşamıyorum ben ya??? dersiniz :)
Şimdi kodlarımızı yazalım.

Evet görmüş olduğunuz gibi Burak isimli kullanıcıyı ekledik. Şimdi tekrar çalıştırayım bakayım ekleyecek mi ?

Evet görmüş olduğunuz gibi tekrar çalıştırdım ve eklemedi veritabanımda daha önceden eklenmiş olan Burak kullanıcısı mevcut :)
görüşmek üzere herkese kolay gele :)
Sizlere bu makalede Store Procedure den geriye deger döndürmeyi göstereceğim bu uygulamayı sizlere Entitiy Framework kullanarak göstereceğim.
Yapacağımız şey veri ekleme olacak yani eger X adında birisi varsa veriyi Store Procedure eklemiycek bize 0 degeri döndürecek eğer yok ise veriyi ekleyecek ve bize 1 degeri döndürecek bizlerde bu degerleri program içersinde yakalayarak işlemlerimizi yapacağız yani degerimiz bize 0 gelirse kullanıcı zaten var, 1 gelirse kullanıcı eklendi yazısı göstereceğiz.
Öncelikle aşağıdaki gibi Store Procedure oluşturalım.

Console Uygulaması oluşturalım ve Entitiy Framework ile veritabanımızdaki ilgili tabloları seçelim SAKIN STORE PROCEDURELERI seçmeyi unutmayın yoksa programdan neden store procedure ulaşamıyorum ben ya??? dersiniz :)
Şimdi kodlarımızı yazalım.

Evet görmüş olduğunuz gibi Burak isimli kullanıcıyı ekledik. Şimdi tekrar çalıştırayım bakayım ekleyecek mi ?

Evet görmüş olduğunuz gibi tekrar çalıştırdım ve eklemedi veritabanımda daha önceden eklenmiş olan Burak kullanıcısı mevcut :)
görüşmek üzere herkese kolay gele :)
Etiketler:
Entitiy Framework,
Entitiy Framework kullanarak store procedurenden değer döndürmek,
Entitiy Framework Store Procedure,
how to return value with store procedure,
sql server,
Store Procedure,
Store Procedure den deger döndürmek,
store procedure retun value
SQL Server Tablo Verilerini XML'e Çevirme
Merhaba arkadaşlar, sizlere bu makalede veritabanındaki herhangi bir tablodaki verileri nasıl xml e dönüştüreceğimizi göstereceğim. Gayet basit bir yöntem sadece FOR XML RAW kodunu yazmak yeterli oluyor
Hemen yapalım.

Sonuc

Open Containing Folder diyerek xml dosyamızı dosya konumunda açabilirsiniz.
herkese kolay gelsin.
Hemen yapalım.

Sonuc

Open Containing Folder diyerek xml dosyamızı dosya konumunda açabilirsiniz.
herkese kolay gelsin.
C# - Class Yapılarımızı Json'a Cevirime
Merhaba arkadaşlar , sizlere bu makalede class yapılarımızı json'a nasıl çeviririz onu göstereceğim. Öncelikle bir console uygulaması oluşturalım.
1) Tools -> Library Package Manager -> Manage NuGet Packages for Solution... a geliyoruz. Json.NET'i kuruyoruz.

2) Şimdi aşağıda gösterildiği gibi kütüphanelerimizi ekleyelim ve Ogrenci sınıfı oluşturalım.. ve aşağıdaki işlemleri yapalım kodları açıklamaya gerek duymuyorum zaten yeteri kadar temel seviyede.

Sonuc

herkese bol kodlu günler :)
1) Tools -> Library Package Manager -> Manage NuGet Packages for Solution... a geliyoruz. Json.NET'i kuruyoruz.

2) Şimdi aşağıda gösterildiği gibi kütüphanelerimizi ekleyelim ve Ogrenci sınıfı oluşturalım.. ve aşağıdaki işlemleri yapalım kodları açıklamaya gerek duymuyorum zaten yeteri kadar temel seviyede.

Sonuc

herkese bol kodlu günler :)
23 Ekim 2014 Perşembe
C# Gercek Manada Recursive Fonksiyon Kullanımı
Merhaba arkadaşlar,
Sizlere bugün Recursive fonksiyon nedir , ne gibi durumlarda kullanılır onu göstereceğim. C# yeni başlayanlar bu fonksiyonu illaki duymuşlardır ve genelde bu fonksiyonu bir sayının faktoriyelini alarak göstermişlerdir ki bizede öyle öğretmişlerdi ben sizlere akılda daha kalıcı bir yöntem ile göstermeye çalışacağım.
Öncelikle Recursive fonksiyon ne gibi durumlarda kullanılır bir kaç madde halinde yazalım
Örneğin;
1) bir kategorilendirme sisteminde kullanabilirsiniz yani sınırsız sayıda alt kategori yapabilirsiniz genelde yazılımcıların bir kısmının sıkça karşılaştığı bir durumdur her bir kategori için yeni bir tablo açarak parent kategori oluşturmaya çalışır :)
2) Bir çok yazılımcı C veya D diskindeki bütün dizinlerin veya klasörlerin tamamını bir Tree View ( Agaç Görünümünde) listelemek istemiştir :) sanırım bu listeleme merakı bizlere anti virüs programlarının bütün dizin ve klasörleri taramasından kaynaklanıyor olsa gerek :)
3)Bizlere gösterilen bir sayının faktöriyelini alma hesabı...
Şuan aklıma gelen bunlar arkadaşlar isterseniz sınırsız kategorilendirme yaparak örneğimizi yapalım bir web site tasarlarken gerçekten çok işe yarıyor...
Öncelikle bir adet tablo oluşturuyorum

Şimdi ise ben verilerimi girdim her bir satır herhangi bir satırın üst kategorisi olacak sekilde Giyim ve Teknoloji benim ana kategorim oldugu için onun kategori ID sini -1 verdim. Ben örnek olarak basit bir kategorilendirme sistemi yaptım dikkat ederseniz kategorilerimi karışık yazdım uygulamamda bu kategoriler hepsi bir üst kategorinin altına gelecek sekilde olacak.

Şimdi Console uygulaması oluşturup, Entitiy Framework ile veritabanımıza bağlanalım ve kodlarımızı aşağıdaki gibi yazalım.

Görmüş olduğunuz gibi bütün kategorilerim sıralı bir şekilde geldi pek fazla kafa karıştırmaması için Tree görünüm yapmadım umarım yardımcı olabilmişimdir herkese bol kodlu günler.
Sizlere bugün Recursive fonksiyon nedir , ne gibi durumlarda kullanılır onu göstereceğim. C# yeni başlayanlar bu fonksiyonu illaki duymuşlardır ve genelde bu fonksiyonu bir sayının faktoriyelini alarak göstermişlerdir ki bizede öyle öğretmişlerdi ben sizlere akılda daha kalıcı bir yöntem ile göstermeye çalışacağım.
Öncelikle Recursive fonksiyon ne gibi durumlarda kullanılır bir kaç madde halinde yazalım
Örneğin;
1) bir kategorilendirme sisteminde kullanabilirsiniz yani sınırsız sayıda alt kategori yapabilirsiniz genelde yazılımcıların bir kısmının sıkça karşılaştığı bir durumdur her bir kategori için yeni bir tablo açarak parent kategori oluşturmaya çalışır :)
2) Bir çok yazılımcı C veya D diskindeki bütün dizinlerin veya klasörlerin tamamını bir Tree View ( Agaç Görünümünde) listelemek istemiştir :) sanırım bu listeleme merakı bizlere anti virüs programlarının bütün dizin ve klasörleri taramasından kaynaklanıyor olsa gerek :)
3)Bizlere gösterilen bir sayının faktöriyelini alma hesabı...
Şuan aklıma gelen bunlar arkadaşlar isterseniz sınırsız kategorilendirme yaparak örneğimizi yapalım bir web site tasarlarken gerçekten çok işe yarıyor...
Öncelikle bir adet tablo oluşturuyorum

Şimdi ise ben verilerimi girdim her bir satır herhangi bir satırın üst kategorisi olacak sekilde Giyim ve Teknoloji benim ana kategorim oldugu için onun kategori ID sini -1 verdim. Ben örnek olarak basit bir kategorilendirme sistemi yaptım dikkat ederseniz kategorilerimi karışık yazdım uygulamamda bu kategoriler hepsi bir üst kategorinin altına gelecek sekilde olacak.

Şimdi Console uygulaması oluşturup, Entitiy Framework ile veritabanımıza bağlanalım ve kodlarımızı aşağıdaki gibi yazalım.

Görmüş olduğunuz gibi bütün kategorilerim sıralı bir şekilde geldi pek fazla kafa karıştırmaması için Tree görünüm yapmadım umarım yardımcı olabilmişimdir herkese bol kodlu günler.
22 Ekim 2014 Çarşamba
C# Lock Kullanımı
Merhaba arkadaşlar sizlere bu yazıda C# da lock kullanımını göstermeye çalışacağım öncelikle lock ne işe yarar neden kullanılır buna bir değinelim.
Lock : Multi Thread programlamada Thread'lerin senkronize bir şekilde çalışmasını sağlar.Yani bir kaynağa 1 den fazla Threadin aynı anda erişmesini engellemektir.Bir thread bir dosyaya bir şey yazarken, diğer threadin yazma işlemi bitmeden bu kaynaktan veri okumasını engellemektir. Zaten engellemesek bile 1 dosya aynı anda sadece 1 işleme cevap verebileceği icin bu noktada programımız hata vericektir.
Öncelikle Lock kullanmadan bir örnek yapalım
2 farklı Thread oluşturup biri dosyaya veri yazarken diğeride bu dosyadan veri okumaya çalışsın öncelikle kodlarımızı aşağıdaki gibi yazalım.

Şimdi ise çalıştıralım.

Evet programımız hata verdi okuma Threadi ile Yazma Threadi çakıştı ve hatamızı aldık peki bu durumdan dosyamızın yolunu kilitleyerek 1 den fazla Threadin dosyamıza aynı anda erişmemesini sağlayalım

Benim yazma döngüm 30 bine kadar sayıyordu ekranda iki Threadin de sonuçlarının gözükmesi için 30 bini 10 a indirdim bilginiz olsun öncelikle :)
Evet görmüş olduğunuz gibi yazma threadim yazma işini bitirmeden okuma threadim okumaya geçemedi Lock bu gibi durumlarda çok kullanışlı bir fonksiyondur umarım yardımcı olabilmişimdir
herkese kolay gelsin.
Lock : Multi Thread programlamada Thread'lerin senkronize bir şekilde çalışmasını sağlar.Yani bir kaynağa 1 den fazla Threadin aynı anda erişmesini engellemektir.Bir thread bir dosyaya bir şey yazarken, diğer threadin yazma işlemi bitmeden bu kaynaktan veri okumasını engellemektir. Zaten engellemesek bile 1 dosya aynı anda sadece 1 işleme cevap verebileceği icin bu noktada programımız hata vericektir.
Öncelikle Lock kullanmadan bir örnek yapalım
2 farklı Thread oluşturup biri dosyaya veri yazarken diğeride bu dosyadan veri okumaya çalışsın öncelikle kodlarımızı aşağıdaki gibi yazalım.

Şimdi ise çalıştıralım.

Evet programımız hata verdi okuma Threadi ile Yazma Threadi çakıştı ve hatamızı aldık peki bu durumdan dosyamızın yolunu kilitleyerek 1 den fazla Threadin dosyamıza aynı anda erişmemesini sağlayalım

Benim yazma döngüm 30 bine kadar sayıyordu ekranda iki Threadin de sonuçlarının gözükmesi için 30 bini 10 a indirdim bilginiz olsun öncelikle :)
Evet görmüş olduğunuz gibi yazma threadim yazma işini bitirmeden okuma threadim okumaya geçemedi Lock bu gibi durumlarda çok kullanışlı bir fonksiyondur umarım yardımcı olabilmişimdir
herkese kolay gelsin.
19 Ekim 2014 Pazar
ASP.NET MVC - Ajax İle Sayfa Yenilenmeden Veri Gönderme
Merhaba,
Bu yazı da sizlere ASP.NET MVC - Ajax ile sayfa yenilenmeden veri gönderimi kullanımı göstereceğim. Ajax html formlarının sayfa yenilenmeden sunucu tarafına veri göndermek veya almak için kullanılır günümüzde bir çok site artık bu yöntem ile kullanıcı kayıtlarını,sepete ekleme işlemlerini, mesaj gönderim işlemlerini bu yöntem ile yapmaktadır.Hakkında daha detaylı bilgiye sahip olmak isteyenler google da daha iyi bilgiye ulaşabilir.
Evet şimdi işlemlerimize geçelim...
Yeni bir controller oluşturdum ve içinde KullaniciEkle metodu oluşturdum.

View kısmında aşağıdaki kodları yazıyoruz. commentlerde açıklamalar mevcut.

Projemizi çalıştıralım ismizi yazıp butona basalım. Alttaki resimde görmüş olduğunuz gibi butona bastıgımızda verinin geldiğini görüyoruz.

Sonuç :

İşlemlerimiz bu kadar gayet basit ve kullanışlı bir yöntem :)
Bu yazı da sizlere ASP.NET MVC - Ajax ile sayfa yenilenmeden veri gönderimi kullanımı göstereceğim. Ajax html formlarının sayfa yenilenmeden sunucu tarafına veri göndermek veya almak için kullanılır günümüzde bir çok site artık bu yöntem ile kullanıcı kayıtlarını,sepete ekleme işlemlerini, mesaj gönderim işlemlerini bu yöntem ile yapmaktadır.Hakkında daha detaylı bilgiye sahip olmak isteyenler google da daha iyi bilgiye ulaşabilir.
Evet şimdi işlemlerimize geçelim...
Yeni bir controller oluşturdum ve içinde KullaniciEkle metodu oluşturdum.

View kısmında aşağıdaki kodları yazıyoruz. commentlerde açıklamalar mevcut.

Projemizi çalıştıralım ismizi yazıp butona basalım. Alttaki resimde görmüş olduğunuz gibi butona bastıgımızda verinin geldiğini görüyoruz.

Sonuç :

İşlemlerimiz bu kadar gayet basit ve kullanışlı bir yöntem :)
18 Ekim 2014 Cumartesi
C# TcpListener,TcpClient Kullanımı (Sunucu-İstemci Uygulaması)
Merhaba arkadaşlar
Sizlere Sunucu-İstemci uygulaması nasıl yapılır onu göstereceğim.
Öncelikle server kodlarımızı yazalım.

Şimdi client kodlarımızı yazalım.

Ve çalıştıralım.

Sonuç görmüş olduğunuz gibi çalışmakta fakat şuanda çoklu kullanıcı bağlanamaz. Coklu kullanıcı yapabilmemiz için Class yapıları kullanmamız lazım. Veya Socket kodları ile asekron şekilde yapabiliriz. Geliştirmesi size kalmış ben yol gösterdim :)
Sizlere Sunucu-İstemci uygulaması nasıl yapılır onu göstereceğim.
Öncelikle server kodlarımızı yazalım.

Şimdi client kodlarımızı yazalım.

Ve çalıştıralım.

Sonuç görmüş olduğunuz gibi çalışmakta fakat şuanda çoklu kullanıcı bağlanamaz. Coklu kullanıcı yapabilmemiz için Class yapıları kullanmamız lazım. Veya Socket kodları ile asekron şekilde yapabiliriz. Geliştirmesi size kalmış ben yol gösterdim :)
C# Linq Kullanımı
Merhabalar,
Linq ; dizilerde,koleksiyonlarda ve listelerde sorgulama işlemi yapan .NET 3.5 ile ortaya çıkan bir teknolojidir.Linq in kullanımı sql sorgulama diline çok benzer o yüzden sql bilen birisi çok rahatlıkla linq yazabilir. Ayrıca linq veritabanı işlemlerinde de kullanılarak programcıya çok büyük bir katkı sağlar şimdi ufaktan Linq nasıl kullanılır bir göz atalım.
Tersten sıralama işlemi :

En büyük sayı ve en kücük sayı

Adında kücük i VEYA büyük İ gecenler

Eleman sayısı bulma

Sayıların Toplamı

Sayıların Ortalaması

Aynı kayıtları teke indirip, tersten sıralama

Evet arkadaşlar ufaktan da olsa linq kullanımını gördünüz genelde basit şekilde anlatmaya gayret gösteriyorum çünkü bir insana karmaşık kodlar yazıp kafasını karıştırmaktansa işin temelini verip kendisinin üzerine koyması daha mantıklı diye düşündüm yardımcı olabildiysem ne mutlu bana kolay gelsin :)
Linq ; dizilerde,koleksiyonlarda ve listelerde sorgulama işlemi yapan .NET 3.5 ile ortaya çıkan bir teknolojidir.Linq in kullanımı sql sorgulama diline çok benzer o yüzden sql bilen birisi çok rahatlıkla linq yazabilir. Ayrıca linq veritabanı işlemlerinde de kullanılarak programcıya çok büyük bir katkı sağlar şimdi ufaktan Linq nasıl kullanılır bir göz atalım.
Tersten sıralama işlemi :

En büyük sayı ve en kücük sayı

Adında kücük i VEYA büyük İ gecenler

Eleman sayısı bulma

Sayıların Toplamı

Sayıların Ortalaması

Aynı kayıtları teke indirip, tersten sıralama

Evet arkadaşlar ufaktan da olsa linq kullanımını gördünüz genelde basit şekilde anlatmaya gayret gösteriyorum çünkü bir insana karmaşık kodlar yazıp kafasını karıştırmaktansa işin temelini verip kendisinin üzerine koyması daha mantıklı diye düşündüm yardımcı olabildiysem ne mutlu bana kolay gelsin :)
C# Kendi Asenkron Methodlarımızı Oluşturalım ( Async, Await)
Merhabalar,
Bu yazıda sizlere C# da Asenkron metodlar nedir, neden kullanılır ve kendi asenkron
metodlarımızı oluşturmayı göstereceğim.
Asenkron metodlar birden fazla işin eş zamanlı çalışmasını sağlar örnek vericek olursak bir windows form programınızın olduğunu farz edin ve üzerinde 2 tane buton olsun. teki sms yoluyla müşterilere bilgi gönderiyor diğeride mail yoluyla bilgi gönderiyor varsayalım. Mail yoluyla bilgi göndermek için butona bastınız diyelim mailler gönderilene kadar sms ile bilgi gönder butona basamazsınız ve hatta formu hareket bile ettiremezsiniz işte bu noktada Asenkron metodlar yardımımıza koşuyor eğer biz işlemlerimizi asenkron olarak tanımlamış olsaydık bir işi yapmak için diğer bir işin bitmesini beklemeyecektik.
Şimdi ufak bir uygulama yapalım bir tane formumuz olsun ve üzerinde 2 adet buton olsun biri 100.000 den geriye doğru saysın diğeri 1 den 100.000 kadar saysın. Öncelikle işlemlerimizi asenkron metod kullanmadan yapalım.

Evet resimde görmüş olduğunuz gibi 1'den 100.000'e kadar say butonuna bastım işlem başladı bu işlem yürütülürken 100.000'den geriye dogru say butonuna basamadım çünkü program ilk iş bitmeden bu işe geçmeme izin vermedi. Peki bunları asekron bir şekilde yazıcak olsaydık nasıl yazardık hemen ona bir göz atalım.
Oncelikle butonlarımızın imzasının önüne async koyuyoruz bu butonun click eventinin içindeki metodun asekron şekilde çalıştırılacağı anlamına geliyor.
Ve imzası Task olan metodlarımızı oluşturuyoruz İleriSay(), GeriSay() adında...
Bu metodların da imzası Task olduğu için geriye Task değer döndüren işlem yapacağız.
İleriSay, ve GeriSay metodlarımızı butonların içinde çağıralım ancak çağırırken metodun önüne await ifadesini koymak zorundayız bu metodun asenkron şekilde bekleneceği anlamına gelmektedir.
Yalnız formumuzun constructor kısmına "CheckForIllegalCrossThreadCalls = false;" kodunu ekliyoruz yoksa programımız
"Çapraz iş parçacığı işlemi geçerli değil: 'listBox1' denetimine oluşturulduğu iş parçacığı dışında başka bir iş parçacığından erişildi." şeklinde hata verecektir.
Evet artık işlemlerimizi yaptığımza göre sıra geldi çalıştırmaya ekran görüntüsünde olduğu gibi artık işlemlerimizin ikisinde aynı anda çalıştırabiliriz :)

Benden bu kadar kolay gelsin :)
Bu yazıda sizlere C# da Asenkron metodlar nedir, neden kullanılır ve kendi asenkron
metodlarımızı oluşturmayı göstereceğim.
Asenkron metodlar birden fazla işin eş zamanlı çalışmasını sağlar örnek vericek olursak bir windows form programınızın olduğunu farz edin ve üzerinde 2 tane buton olsun. teki sms yoluyla müşterilere bilgi gönderiyor diğeride mail yoluyla bilgi gönderiyor varsayalım. Mail yoluyla bilgi göndermek için butona bastınız diyelim mailler gönderilene kadar sms ile bilgi gönder butona basamazsınız ve hatta formu hareket bile ettiremezsiniz işte bu noktada Asenkron metodlar yardımımıza koşuyor eğer biz işlemlerimizi asenkron olarak tanımlamış olsaydık bir işi yapmak için diğer bir işin bitmesini beklemeyecektik.
Şimdi ufak bir uygulama yapalım bir tane formumuz olsun ve üzerinde 2 adet buton olsun biri 100.000 den geriye doğru saysın diğeri 1 den 100.000 kadar saysın. Öncelikle işlemlerimizi asenkron metod kullanmadan yapalım.

Evet resimde görmüş olduğunuz gibi 1'den 100.000'e kadar say butonuna bastım işlem başladı bu işlem yürütülürken 100.000'den geriye dogru say butonuna basamadım çünkü program ilk iş bitmeden bu işe geçmeme izin vermedi. Peki bunları asekron bir şekilde yazıcak olsaydık nasıl yazardık hemen ona bir göz atalım.
Oncelikle butonlarımızın imzasının önüne async koyuyoruz bu butonun click eventinin içindeki metodun asekron şekilde çalıştırılacağı anlamına geliyor.
Ve imzası Task olan metodlarımızı oluşturuyoruz İleriSay(), GeriSay() adında...
Bu metodların da imzası Task olduğu için geriye Task değer döndüren işlem yapacağız.
İleriSay, ve GeriSay metodlarımızı butonların içinde çağıralım ancak çağırırken metodun önüne await ifadesini koymak zorundayız bu metodun asenkron şekilde bekleneceği anlamına gelmektedir.
Yalnız formumuzun constructor kısmına "CheckForIllegalCrossThreadCalls = false;" kodunu ekliyoruz yoksa programımız
"Çapraz iş parçacığı işlemi geçerli değil: 'listBox1' denetimine oluşturulduğu iş parçacığı dışında başka bir iş parçacığından erişildi." şeklinde hata verecektir.
Evet artık işlemlerimizi yaptığımza göre sıra geldi çalıştırmaya ekran görüntüsünde olduğu gibi artık işlemlerimizin ikisinde aynı anda çalıştırabiliriz :)

Benden bu kadar kolay gelsin :)
12 Ekim 2014 Pazar
C# Üzerinde MongoDB ile kayıt ekleme,güncelleme,listeleme ve silme işlemleri
Merhabalar,
Bu yazıda C# üzerinde mongoDB nasıl kullanıldığına dair ufak bir giriş yapacağız. mongoDB kurulumunu bilmeyenler
http://gumusburak.wordpress.com/2014/10/12/windows-uzerinde-mongodb-kurulumu buradan bakabilir
İlk olarak
http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/
adresinden mongoDB nin C# driverlerini indirelim ve driverleri projemize referans olarak ekleyelim.

Ben Linq ve classlar ile ekleme,güncelleme,silme ve listeleme işlemlerini yapacağım.
İlk önce insert ve listeleme işlemini yapalım.

Şimdi ise güncelleme işlemini yapalım.

Şimdi silme işlemi yapalım.

işlemlerimiz bu kadar umarım yardımcı olabilmişimdir.
herkese kolay gelsin :)
Bu yazıda C# üzerinde mongoDB nasıl kullanıldığına dair ufak bir giriş yapacağız. mongoDB kurulumunu bilmeyenler
http://gumusburak.wordpress.com/2014/10/12/windows-uzerinde-mongodb-kurulumu buradan bakabilir
İlk olarak
http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/
adresinden mongoDB nin C# driverlerini indirelim ve driverleri projemize referans olarak ekleyelim.

Ben Linq ve classlar ile ekleme,güncelleme,silme ve listeleme işlemlerini yapacağım.
İlk önce insert ve listeleme işlemini yapalım.

Şimdi ise güncelleme işlemini yapalım.

Şimdi silme işlemi yapalım.

işlemlerimiz bu kadar umarım yardımcı olabilmişimdir.
herkese kolay gelsin :)
Windows Üzerinde MongoDB Kurulumu
Merhabalar,
Bu yazıda Windows 8 İşletim sistemi üzerinde MongoDB kurulumunu göstermeye çalışacağım. Öncelikle http://www.mongodb.org/downloads adresinden kendi işletim sistemi özelliklerimize uygun MongoDB yi indiriyoruz. Ben 64 bit olanı indiriyorum. Kurulum yapacağınız yeri belirleyin
C:\Users\Tufan\Desktop\Burak
dizininde kurulum yapmayı uygun gördüm. Bu dizin de MongoDB adında bir klasör oluşturup bu klasor içinde de logs ve data klasörleri oluşturuyorum indirmiş olduğumuz zipteki dosyaları zipten çıkarıp bin klasörünüde logs ve data klasörlerinin olduğu dizine kopyalıyoruz. ve logs dizini altında mongolog.txt adında bir dosya oluşturuyoruz.

Şimdi cmd ekranını sağ tıklayıp, yönetici olarak çalıştırıyoruz. ve aşağıdaki cmd komutlarını kendi dizinimize göre yazıyoruz. Benim dizinim biraz uzun olduğu için kod kalabalığı oldu biraz ..

Şimdi MongoDB Servisini çalıştıralım.
Çalıştır ekranına services.msc yazalım ve ekranımıza gelen servislerden mongodb olanı bulalım ve durumunu otomatik olarak değiştirelim.

hizmetin durumunu değiştirdikten sonra logs klasörü altında bizim mongolog dosyasından farklı olarak mongologs dosyası oluşturacak. bu mongologs dosyasını açalım. ve içinde port adı geçen bir kelime arıyalım ve karşısındaki port numarasını alalım.

daha sonra tarayıcı ekranımızı açalım ve localhost:27017 yazıp servisimizin doğru çalışıp çalışmadığını kontrol edelim. ben logs dosyamdan buldugum portu yazıyorum ben bu sizde belki farklılık gösterebilir diye sizden bu dosya içersinde port numarası arayın diye bu nedenden dolayı dedim.

İşte sonuç şuan da mongoDB servisim aktif. Aktif olmama durumunda sayfa yüklenemeyecek ve bu web kullanılamıyor standart ulaşım hatası alacaktık.
Herkese kolay gelsin.
Bu yazıda Windows 8 İşletim sistemi üzerinde MongoDB kurulumunu göstermeye çalışacağım. Öncelikle http://www.mongodb.org/downloads adresinden kendi işletim sistemi özelliklerimize uygun MongoDB yi indiriyoruz. Ben 64 bit olanı indiriyorum. Kurulum yapacağınız yeri belirleyin
C:\Users\Tufan\Desktop\Burak
dizininde kurulum yapmayı uygun gördüm. Bu dizin de MongoDB adında bir klasör oluşturup bu klasor içinde de logs ve data klasörleri oluşturuyorum indirmiş olduğumuz zipteki dosyaları zipten çıkarıp bin klasörünüde logs ve data klasörlerinin olduğu dizine kopyalıyoruz. ve logs dizini altında mongolog.txt adında bir dosya oluşturuyoruz.

Şimdi cmd ekranını sağ tıklayıp, yönetici olarak çalıştırıyoruz. ve aşağıdaki cmd komutlarını kendi dizinimize göre yazıyoruz. Benim dizinim biraz uzun olduğu için kod kalabalığı oldu biraz ..

Şimdi MongoDB Servisini çalıştıralım.
Çalıştır ekranına services.msc yazalım ve ekranımıza gelen servislerden mongodb olanı bulalım ve durumunu otomatik olarak değiştirelim.

hizmetin durumunu değiştirdikten sonra logs klasörü altında bizim mongolog dosyasından farklı olarak mongologs dosyası oluşturacak. bu mongologs dosyasını açalım. ve içinde port adı geçen bir kelime arıyalım ve karşısındaki port numarasını alalım.

daha sonra tarayıcı ekranımızı açalım ve localhost:27017 yazıp servisimizin doğru çalışıp çalışmadığını kontrol edelim. ben logs dosyamdan buldugum portu yazıyorum ben bu sizde belki farklılık gösterebilir diye sizden bu dosya içersinde port numarası arayın diye bu nedenden dolayı dedim.

İşte sonuç şuan da mongoDB servisim aktif. Aktif olmama durumunda sayfa yüklenemeyecek ve bu web kullanılamıyor standart ulaşım hatası alacaktık.
Herkese kolay gelsin.
7 Ekim 2014 Salı
Android Sensör Kullanımı
Merhaba arkadaşlar,
Bu yazıda sizlere android üzerinde sensör kullanımını göstereceğim sensörün farklı kullanım alanları var örneğin ortamdaki sıcaklıgı ölçme veya ortamdaki ışığın miktarını ölçme vs. bu konu hakkında google üzerinde search yaparak daha detaylı bilgiye ulaşabilirsiniz. Biz telefonumuzun x,y ve z koordinatlarını alacağız mesela bir motosiklet yarışı oyunu yapacağınızı farz edin telefonu sağa doğru yatırdığınızda motosikletin sağa dönmesi ya da sol tarafa yatırdığınızda sola dönmesi veya z koordinatı ile oynadığınızda ön kaldırması vs..
Öncelikle projemize 3 adet EditText ekleyelim bunların isimleri sırasıyla x,y ve z olsun.

Daha sonra MainActivity.java dosyamızı açalım
Aşağıdaki gibi kodlarımızı yazalım kod açıklamaları ekran görüntüsünde mevcut.

ve sonuç :)

Herkese kolay gelsin.
Bu yazıda sizlere android üzerinde sensör kullanımını göstereceğim sensörün farklı kullanım alanları var örneğin ortamdaki sıcaklıgı ölçme veya ortamdaki ışığın miktarını ölçme vs. bu konu hakkında google üzerinde search yaparak daha detaylı bilgiye ulaşabilirsiniz. Biz telefonumuzun x,y ve z koordinatlarını alacağız mesela bir motosiklet yarışı oyunu yapacağınızı farz edin telefonu sağa doğru yatırdığınızda motosikletin sağa dönmesi ya da sol tarafa yatırdığınızda sola dönmesi veya z koordinatı ile oynadığınızda ön kaldırması vs..
Öncelikle projemize 3 adet EditText ekleyelim bunların isimleri sırasıyla x,y ve z olsun.

Daha sonra MainActivity.java dosyamızı açalım
Aşağıdaki gibi kodlarımızı yazalım kod açıklamaları ekran görüntüsünde mevcut.

ve sonuç :)

Herkese kolay gelsin.
Kaydol:
Yorumlar (Atom)
JavaScript
JavaScript Nedir? JavaScript web tabanlı bir programlama dilidir. Mayıs 1995 yılında Brendan Eich tarafından tasarlanmıştır. Kullanıcı et...
-
Selamlar, Eğer Web APİ de Custom Authorize Attirebute kullanıcaksanız, System.Web.Http.AuthorizeAttribute sınıfından kalıtım yapmalısınız D...
-
Merhaba Arkadaşlar, Bu yazıda sizlere bazı temel git komutlarını anlatmaya çalışacağım. git pull origin master remote code repo...
-
Eğer hazır olarak Drawer Nagivation Layout kullanıyorsak ve drawer layouttaki textView da ki yazıyı degistirmek istiyorsak Drawer Navigation...