Salı, Temmuz 31, 2007

Expression Makale

Merhabalar.

26 Temmuz 2007 tarihinden itibaren http://www.csharpnedir.com ' da Expression Studio ile ilgili makaleler yazmaya başladım.İlgilenen arkadaşlar siteye girip okuyabilirler.

Google GAF


Google' ın kelime düzeltme ve tamamlama arayüzü dikkatinizi çekmiştir.Fakat benim dikkatimi gafları çekiyor nedendir bilinmez ama.


Bilgisayar terimlerinden olan MyHandler' ı aratıyordum ve bana demek stediğin meyhaneciler mi diye bir yazı gelince şoke oldum. bakalım sizler ne diyeceksiniz bu durumu.
İyi günler.

Cuma, Temmuz 27, 2007

Visual Studio 2008 Beta 2

Merhabalar...
VisualStudio Artık CodeName ORCAS değil Beta2 sürümü ile gerçek adı olacak olan
Visual Studio 2008 ile karşımızda indirmek için aşağıdaki linki kullanabilirsiniz.
İyi Kodlamalar.
Çünkü VisualStudio ile çok zevkli

Çarşamba, Temmuz 25, 2007

SQL SERVER 2008(Code Name KATMAI)



Microsoft'un yeni SERVER derleyicisi Sql Server 2008 Katmai'yi deneme şansı buldum.
Yaklaşık 1 saat kadar deneybilme imkanım sırasında tablolarda kullanabileceğimiz değişken tiplerinde ki artış direk olarak gözüme çarptı.
Çok kolaylık sağlayacak bu değişkener bize özelliklede veri tabanında grafik objelerini XML veri olarak tutabilmemiz mümkündür.
Ayrıca XML veri kayıtlarını SQL SERVER 2005 ile de yapabiliyorduk. Performansı biraz daha artış durumu Sql Server 2008 ile gerçekleşti.
Sizlerinde yükleyip çalışmanız dileğiyle.
İyi günler...

Salı, Temmuz 24, 2007

Transaction

Aynı zamanda birbiriyle ilişkili işlemler bütünlüğü anlamına gelir.Bütünlük, biri işlemlerden bir bile olmadan bütün işlemlerin var olamayacağı, geçerli olmayacağı anlamına gelir.Bir bankada ki hesabından ötekine para transferi yapılacak olsun.İlk işlem bir hesaptan para çekmek, sonraki işlem de diğerine para yatırmaktır.Bir aksilik oldu ilk hesaptan çekildi bağlantı koptu ve diğerine para yatırılamadı.Bu durumda hesaplada dengesizlik olacaktır.Yatırma işlemi gerçekleşmediyse para çekme işleminin de geçersiz olması gerekir.İşte bu şekilde bir bütün halinde değerlendirilmesi sağlayan işlemler transaction anlamına gelir.
Veritabanına veya veritabanına erişen kütüphaneler hangi veritabanı işlemlerinin kendi aralarında bir bütün oluşturduğu anlayamaz.Programcı işlem başlayacağı zaman begin() komutunu kullanır.İşlem bittiğinde ise commit(). Bir hata olursa da geriyedönebilmesi için rollback() denir.Transaction ile ilgili örnek kod aşağıdadır.

try{
transaction.begin();
do_operations();
transaction.commit();
}
catch (System.Exception ex)
{
transaction.rollback();
throw ex;
}

Session & Scope

Sunucu tarafından oluşturulan oturum olarak tanımlanabilir.Herhangi bir ziyaretçi sitemize ilk girdiği anda,onunla ilgili session başlatılmış olur.Ziyaretçi,bir sayfadan diğerine geçse bile,eğer bazı session değişkenlerine onunla ilgili bilgi atamışsak,bu bilgilier silinmez.Genel olarak kullanılacak olan sessionların bir kere tanımlanması yeterli olacaktır.Sessionlar sitemizi dolaşan ziyaret aktif olarak sistemde kaldığı sürece devam etmektedir.Sonlanabilmesi ya bizim ya da veri tabanının belirleyeceği süre içerisinde olabilmektedir.Fakat aklımıza gelen bir soru eğer kullanıcı sistemden signout ile çıkış yaptığı zamanda damı bu şekilde bir süre geçmesi beklenecek.Beklenme süresi bu durumda ortadan kalkmakta ve ziyaretçinin tuttuğumuz kullanıcısını boşaltığımız için direk sonlanma gerçekleşmiş olacaktır.
Bizim kullandığımız sessionlarıda kendi içlerinde iki grupta sınıflandırabiliriz.Session Scope ve Request Scope.

Bir HTPPSession temsil edilmesini sağlamaktadır.Tuttuğumuz session bütün login evresi oyunca devam etmektedir.

HTTPServletRequest temsil edilmekte ve servis çağırımı tetiklenmektedir.
Daha basitçe açıklamak gerekirse ,kullandığımız session lar ziyaretçinin sitede bulunduğu sürece devam etmektedir.Bu da veritabanımız tarafından sessionların tutulduğu sanal tabloda aşırısı kayda sebep olacaktır.Bu durumda istenmeyen durumlar arasında yer almaktadır.Bu durumu önleyebilmek için ise request scope kullanılmaktadır.Request scope ,eğer bütün ziyaret boyunca kullanılmayacak olan bir session tutmak istersek bunu request scope yöntemi ile sağlayabiliriz.
Aralarında ki farkları örnekler ile açıklamak gerekirse;Session Scope bir alışveriş sitesinde kullanılan alışveriş sepeti olarak anlatılabilir.

Request Scope ise kullandığımız sayfada anlık değerler tutmak istiyorsakta request scope kullanılabiliyor.

Authentication & Authorization

En kısa tanımı sanırım Güvenlik&Doğrulama olur.
Web sitesimizin güvenliği olarak kısaca tanımlayabiliriz.
Ufak bir örnekle neden sorun olduğunu anlatmak çok daha mantıklı olabilir.Bizim web sitemizde www.mywebsite.com/login.jsp adında bir giriş sayfamız varsa ve bu sitede de benim sevmediğim bir insan olduğu için onun kişisel sayfasına girmek ve değiştirmek istiyorum.Url tarafına(User yerine ‘aaa’ gibi kullanıcı isimleri yazılıyor) www.mywebsite.com/user yazarsam eğer doğrulama yoksa içerdeyim.Çok kötü bir durum bu aynı zamanda istenmeyen bir durumda.Çünkü doğrulama kontrolü yapmadığımız taktirde, kullanıcıdan yapmasını istediğimiz kullanıcı adı ve şifre girilmesi tamamiyle anlamsız olur.Doğrulama kontrolünü yaparsak büyük ihtimalle herhangi bir sorun kalmayacaktır.Nasıl uygulandığını gelmek gerekirse;Web sitelerinde account’u sürekli olarak taşımak için kullanılan “Session” adında bir metodumuz var.Session ne yapar.Biz session’a kayıdı tut dediğimiz andan kaydı tutmaya başlar.Bu bize en basitinden yukarıda örneğini verdiğim kayıtlı kullanıcı olmadığı halde o kullanıcının sayfasına girip değişikler yapabilmesi olayı gerçeklememiş olacak.Çünkü Login.jsp sayfasından tutacağımız Session’u kullanıcının girişine göre alırsak sonucunda istenmeyen bir durum ile karşılaşıldığı zaman çok küçük bir doğrulama yapacak.Bu doğrulamada,eğer login gerektiren bir sayfaya erişim yapılıyorsa ilk başta login.jsp’de session ile tutmasını belirttiğimiz kullanıcıyı kontrol eder.Eğer bu kullanıcı sessionda bulunan kullanıcılara denk değil ise hata sayfasına yönlendirerek iş çözülmüş olur.Peki session’larda kayıtlar nasıl tutulacak veya bizim login olduğumuz nasıl bilinecek.Bizim yapacağımız çok kolay bir çözüm yolu var.O da eğer bir kişi kullanılan internet tarayıcısından login olmadıysa session tutulmayacaktır.Login sayfasından giren kişilerin sessionları tutuldukları için rahatlıkla sitede dolaşabilecekler.

Thread


Bir programın kendini eş zamanlı birden fazla iş parçasına ayırabilmesinin bir yoludur.Thread ve işlem arasındaki fark bir işletim sisteminin diğerine değişmekle birlikte genel olarak thread oluşturuluşu kaynakların paylaştırılması açısından process’den ayrılır.Çoklu thread’ler paralel olarak pek çok bilgisayar sisteminde uygulanabilir.Tek işlemci kullanıldığı durumlarda çok thread’li uygulama zaman dilimleme ile gerçekleştirilir;tek işlemci farklı thread’ler arasında çok hızlı geçiş yapar ve bu durumda işlemler gerçekte olmasa bile iş zamanlı koşuluyormuş izlemini verir.Çok işlemcili sistemlerde farklı thread’ler farklı işlemciler üzerinde eş zamanlı olarak çalışabilmektedir.

Thread Öncelikleri
Hepimiz windows işletim sistemlerinde görev yöneticisinde işlemlere öncelik atamayı muhakkak yapmışızdır.Bu işlemlere öncelik atamanın arka planında neler olduğuna bir bakacak olursak eğer;

Thread.MAX_PRIORITY = 10;
Thread.MIN_PRIORITY = 1;
Thread.NORM_PRIORITY = 5;
Görüldüğü gibi Thread enum değerleri olmasına karşın öncelik atanmasında standart 1-10 arasında tam sayı değerler kullanabilirsiniz.
İyi Günler...

Thread & Global Değişkenler

Global değişkenlerin Thread'lere ne yapıyor olabilir.Ya Thread Safety'ye.
Araştırmak gerekiyordu.Çünkü kullanılması gereken bir durumdu.Ve araştırmaları en basit şekilde anlatmaya çalışacağım.
Code içersindeki thread güvenliği fonksiyonel doğruluk ile çoklu thread ile gerçekleşmekte-dir.Çoklu thread’lerde girilen değerler için veri paylaşımını en iyi şekilde sağlamaktır.Ek olarak Thread Safety işletim sisteminin kendisine göre ayarladığı thread sıralamasını düzenlemek için kullanır.

Thread’leri araştırdık inceledik peki thread’lerin kullanılma sebepleri nelerdir.Yazılımcılar ne için thread kullanmaya neden gerek duymuşlardır.Bu tamamiyle işletim sisteminden kaynaklanan bir durumdur.Örnek vermek gerekirse;

İki farklı kriterde değer alan bir kod parçacığını düşünelim, ek olarak birinci kriter sağlanıyorsa sisteme girsin değilse de sisteme girmesin şeklinde de bir yapısı olsun.Bütün bunlar göz önünde tutularak.Bu kod bloğuna bir thread gönderdik, sisteme girilecek kriter ile kabul edildi ve işlemini sürdürürken sonlanmadan işletim sistemi çalışan thread’i durdurdu ve yeni bir thread daha gönderdi.Bu ise sistemde bulunmaması gereken bir durum olduğu için ikinci kriterde yer aldı.Bu durumda en sonda oluşacak sonuç birinci kritere göre şekillenmiş iken ikinci kritere göre şekillenmiş oldu.İlk giren thread işleme başladığı zaman ise sisteme girmesi gerekirken ikinci thread’in son blok satırındaki yapıyı değiştirdiği için sisteme girmek yerine sistem dışında kaldı.
Peki bunun sebebi neydi.Değişkenlerin global olarak tanınmasıydı.Eğer o kod blokları ile ilişki değişkenler try bloğu ile bu yapının içerisinde tanımlanmış olsaydı.Böyle bir sorunla karşılaşılmamış olacaktır.Sebebi ise Her thread isteğinde o kod parçacığına tek değer gönderilecek ve demin açıkladığım bir şekilde karmaşıklık yaşanmamış olacaktır.Kısaca açıklamak gerekirse;Java ile thread özelliğini kullanmak istiyorsak, elimizden geldiğince global değişkenlerden kaçıp yerel değişkenler ile işlemlerimizi bitirmeye çalışmamız, oluşturacağımız sistemin tam anlamıyla düzenli çalışabilmesi ideal durum olarak karşımıza çıkmaktadır.
Umarım bu bilgiler yararlı olmuştur.Benim başıma sorun çıkamıştı çünkü belli bir süre.Türkçe kaynak olmadığını görünce de yardım etmek istedim.
İyi günler...

Windows Home Server RC1 çıktı


Yeni Windows işletim sisteminin aday sürümü 50.000$'lık ödüllü yarışmasıyla tüm kullanıcılara açıldı.

Windows Home Server (WHS) işletim sistemi bir süredir resmi olarak "beta kullanıcısı" kaydı yaptıranlar tarafından test ediliyordu. Önceki gün herkesin test edebilmesi için kullanıma açılarak duyurusu yapılan yeni işletim sistemi, aday sürüm 1 olarak tanıtıldı. Önceki beta sürümlerine nazaran biraz daha fazla geliştirmeye sahip olduğu ifade edilen sürümle ilgili detaylı açıklamalar ise ürünün blog sayfalarından yapıldı.Programcılar için bir de fırsat var. Code2Fame yarışması çerçevesinde WHS için sıradışı kodlar yazmayı başaran bir programcı, 50.000$'lık ödülün de sahibi olacak. Detaylar için Code2Fame duyuru sayfasını ziyaret edebilirsiniz.

Perşembe, Temmuz 19, 2007

eclips(Open Source Development Tools)


Eclipse? Nedir bu acaba diye ilk duyduğumda kendime sormuştum.

Daha sonra mentor'üme sordum ve aldığım yanıt çok ilginçti.Açık kaynak dedi sadece.Nasıl yani diye ikinci sorumda ise içeriğini anlatmaya başladı.Visual Studio.net 'i biliyorsun dedi.İşte o platformun ücretsiz olanı.Onun "BABASI" belkide dedesi diyede ekledi.Sonrada merak ediyorsan ' etmemde gerekiyordu çünkü onunla proje yapacaktım.:) ' http://www.eclipse.org/ 'u aç ve yükle dedi.Sonrada kendi kendime kaldım.

Yüklediğim zaman çok ilkel gibi bir platform geldi.Desktop app yapabiliyoruz.Fakat ne yaptığımızı derleyince görebiliyorduk.Sonra bana söylenen bir söz aklıma geldi.Java görüntüde değil özde çok sağlam bir dildir.Bu sözden yararlanarak code yazmayı denedim.Doğal olarak yazamadım.Daha doğrusu ekranda görüntü alamadım.Ben console.writeln(); yazarken o benden system.out.println(); yazmam gerekiyormuş.Onuda makaleler ile çözüme kavuşturduk.

Using system leri otomatik tanımlaması çok iyi.nerede exception çıkabileceğini bulup söylemesi ilgiçti doğrusu.Özelliklede exception bulduktan sonra çözüm yolunuda söyleyip.Sen yapmak istemezsen kendi yapıyor.

Daha bir çok marifeti var ama reklam yapmış gibi olsun istemiyorum.İndirip bi deneyin bence farklı techs bize yarar sağlar unutmayın.

İyi günler...

Iyiki DOGDUM...

Bu sefer herhangi bir konu ile bilgi vermeyeceğim.

Bugün önem noktası kendim çünkü.Doğum günüm.:)20 yaşında oldum.Büyüdün kocaman oldun diye söyleniyorum kendi kendime.

17 yaşındayken üniversiteye gittiğimde kendimi çok küçük hissetmiştim.Sınıf arkadaşlarım genellikle 20 yaşına girmiş veya da girmek üzerelerdi.Artık bende 20 oldum.Ne mutlu bana.

Şimdi tek bir dileğim var 21 yaşında üniversite mezunu olmak.Daha sonrada hayalimde olan bir kaç şirketten birinde FullTime çalışmaya başlamak.Umarım olur.

Mutlu Yıllar Turhal (Her ne kadar kendi kendimin doğum gününü kutlamış olsam da).

Salı, Temmuz 17, 2007

VS.NET & SQLSERVER Video

Merhabalar;

Bana uzun süredir gelen mailler hakkında genel bir bilgilendirme yapmak istedim.

Visual Studio.net ile MSSQL Server yazılımlarını öğrenmek için iyi bir kaynak ben şahsen bilmiyorum.Kurslarına Microsoft sertifikasyonlu kurslara gitmenizi tavsiye ederim.Fakat fiyatları çok yüksek diye de gidemiyorum diye çok fazla cevap aldım.

Herkes video izleyerek bir şeyler öğrenebileceği kanısındayım.Bu sebepten ötürü sizlere ücretsiz olarak indirip izleyebileceğiniz video siteleri vereceğim

Umarım yararlı olur.

Visual Studio .Net 2005 /Asp.Net 2.0 - Bedava Eğitim Videoları Için
https://www.microsoftelearning.com/visualstudio2005/

Sql Server 2005 - Bedava Eğitim Videoları Için
https://www.microsoftelearning.com/sqlserver2005/

Türkçe Video için...
http://www.csharpnedir.com/netvideo.asp

İyi çalışmalar...

SQLSERVER 2008 ( JUNE CTP )



Merhaba arkadaşlar.

Size bu sefer staj yaptığım yerden bir bilgi vermek istedim.

Yurtİçi Kargo stajımda oracle veri tabanını kullandım.Hızı gerçekten SqlServer 2005 'e göre çok hızlı fakat 2008 sürümünü test edince bu düşüncemden vaz geçtim.

Bence fazla söze gerek yok denemek isterseniz aşağıdaki linkten indirip kurabilirsiniz...
http://www.microsoft.com/sql/prodinfo/futureversion/default.mspx

İyi eğlenceler...