27
Apr

Neden C#?

NET Teknolojilerine Giriş

Günümüzde bilgisayar dünyasında internet olmazsa olmaz derecede önemli bir yer edinmeye başladı. Artık insanlar ev ve işyerlerinde kullandıkları uygulamalarına da internet üzerinden erişip kullanmak istiyorlar. Bu internetin getirdiği özgürlüğün kaçınılmaz bir sonucudur.Peki yazılım dünyası buna hazırmıydı? Geliştirilen her programı kolayca internet ormanında da çalıştırabilirmiydik? Bu soruların cevapları bir sene öncesine kadar hayır, olamaz veya şu andaki sistemler bu denli özgürlüğü bize sağlamıyor türündendi.
Microsoft’un ASP’si ile veya PHP ile yapılan uygulamalar tam olarak insanların isteklerine cevap veremiyordu. Her ne kadar iyi ve gelişmiş web uygulamalarını bir yere kadar yapabiliyorduksa da belirli bir noktadan sonra C++,Delphi veya VB ile geliştirdiğimiz modülleri web uygulamamıza ekleyerek sorunlarımızı halletmeye çalışyorduk. Tabi bu tür yöntemler programın gelişme süresini uzatıyordu. Zamanın giderek önem kazandığı bir devirde haliyle programlarımızı da hızlı bir şekilde geliştirmemiz gerekiyor(du). Hızlı uygulama geliştirme(Rapid Application Development- RAD) geleneksel programlama araçlarıyla ve prgramcının yetenekleriyle çözüm bulunacak bir mesele değil. Artık programlama dilleri, dille birlikte gelen kütüphaneler ve bunlar hakkındaki dokümantasyonları ile birlikte değerlendiriliyor.
.NET ile birlikte programcının hizmetine sunulan 3400′den fazla sınıf, modern anlamda çok güzel bir geliştirme ortamı sunuyor. Bu sayede programlamları daha hızlı bir şekilde geliştirme imkanına sahip bulunuyoruz. .NET kullanarak yazdığımız ASP.NET, Windows Forms veya mobil cihazlar için geliştirdiğimiz bir uygulamayı birinden diğerine dönüştürmek işi çok kolay bir şekilde yapılabiliniyor. Bu sayede aynı anda hem windows hem de web uygulamaları geliştirmek çok hoşunuza gidecektir :-).
.NET framework’unun bize sunduğu diğer güzel bir özellik ise platform bağımsızlığıdır. Artık yazdığınız Windows uygulamaları sadece Windows yüklü sistemlerde değil, .NET framework’unun kurulu olduğu tüm platformlarda çalışabilecektir. Her ne kadar şimdilik bu alt yapının sadece Windows versiyonuna sahip olsak da Linux grupları tarafından bu alt yapının Linux versiyonunu çıkartma yönündeki çabalar uzun bir süredir devam etmektedir.
Peki bunca hoş özellikleri bize sağlayan .NET alt yapısında program yazarken hangi dili veya dilleri kullanmak zorundayız? Bu konuda Microsoft çok radikal bir karar alarak gelecek için hazırlanmış yeni alt yapıda Common Language Runtime (CLR) ile uyumlu her .NET dilini kullanmamıza olanak sağlıyor. .NET ile gelen SDK’da C#,VB.NET ve Js.NET kullanarak program yazabiliyoruz. Diğer taraftan 30′un üzerinde programlama diliyle .NET uygulaması geliştirebilirsiniz.
CLR denen şey tam olarak nedir? .NET altyapısında programların çalışmasını kontrol eden ve işletim sistemi ile programımız arasında yer alan arabirimdir. Normalde yazdığımız programlar derlenirken makine diline çevrilirdi ve program bu şekilde işletim sistemi ile direkt bağlantı kurarak çalışırdı. Fakat platform bağımsız bir geliştirme ve yürütme ortamı istiyorsanız ne olacak? İşte tam bu anda CLR devreye girer ve .NET programlarını farklı platformlarda makineye ve işletim sistemine göre programımızı çalıştırır. Normalde bir Windows, Linux veya MACOS kurulu sistemler aynı programın kodunu çalıştıramazlar. Bu platformlar için programın ayrı ayrı yazılıp, onlara göre hazırlanmış derleyicilerde derlenmesi gerekir. Dünyada çok sayıda yaygın platform olduğunu düşünürsek, bunların herbiri için ayrı ayrı derleme işlemini tek bir işletim sisteminde yapmamız imkansız gibidir. Bu durumda çözüm , ortak bir aradil kullanmak ve herbir platform için bu aradile çevrilmiş programın kodunu çalıştıracak altyapıları hazırlamaktır.
Şimdi şu soruya sıra geldi: “İyi de .NET hangi aradili kullanıyor?” Sorumuzun cevabı MSIL(Microsoft intermediate Language) .NET platfomunda hangi dili kullanırsak kullanalım yazdığımız programın kodu direkt olarak makine diline değil de MSIL’e çevrilir. Bu sadece programı çalıştırdığımız sistemde kurulu olan CLR çalışma anında MSIL kodlarını çevirerek programımızı çalıştırır, çalışma anında derleme işlemini ise JIT derleyicileri (Just in Time compilers) üstlenir.

.NET’in CLR, CTS ve JIT derleyicileri

Burada daha detaylı olarak .NET kavramlarını inceleyeceğiz ve .NET’le Java’nın karşılaştırıldığı bir testin sonuçlarına yer vereceğiz.
.NET platformunda istediğimiz programlama dili ile program yazabileceğimizi önceki yazımızda söylemiştik. Bunun için tek şart, kullandığımız dilin .NET için yazılmış olan bir derleyicisine ihtiyacımız olduğudur. .NET uyumlu programlama dili oluştururken belirli standartlara uyulması gerekir. Bu standartlar CLS (Common Language Specifications - Dillerin ortak özellikleri) ile belirlenmiştir. CTS(Common Type System) ise veri tipleri, nesneler, arayüzler ve programlama dillerine ait özellikleri tanımlar ve CLS’in bir parçası olarak karşımıza çıkar. CLS’de tanımlanmış kurallara uymak şartı ile istersek kendi programlama dilimizi dahi geliştirebiliriz veya herhangi bir dili .NET platformunda uygulama geliştirmek üzere değiştirebiliriz.
CLR ,programlarımızı değişik şekilde derleyebilir. Varsayılan derleme türü JIT(Just IN TIME- çalışam anında derleme) ‘dır. Program çalışırken daha önce derlenmemiş bir parçasına gelince hemen o kısmı da derler ve bunu hafızda chach’e koyar. Tekrar aynı program parçasını çalıştırmak gerekirse burayı hafızadan çalıştırır. Eğer RAM ‘imizi yeteri kadar büyükse, programın tamamı derlenmiş ve hafızada depolanmış durumda olabilir. Bu durumda programımız çok hızlı çalışır.
Hafızamızın yeteri kadar büyük olmadığı durumlarda EconoJIT (Ekonomik JIT) derleyicisini kullanabiliriz. Bu derleyici ile programın derlenmiş kısımları hafızada depolanmaz ve her seferinde aynı program parçası derlenir. Tabi ki bu derleyici normal JIT’e göre programlarımızı daha yavaş çalıştırır. Ama RAM ‘imizi çok daha az kullanır.
CLR ile gelen üçüncü derleyicimiz PreJIT(ön JIT derleyicisi) ise derleme işini program çalışmadan önce yapar ve tüm makine kodlarını bir yerde saklar. Çalışma anında çok hızlı olan programımız diğer JIT derleyicileriyle derlenmiş olanlara nazaran çok hızlı çalışır.
Kolayca görebileceğimiz birkaç noktaya da parmak basmak istiyorum. .NET ile yazdığınız programlar diğerlerine göre yavaş çalışır. Çünkü iki defa derleme aşamasından geçerler, program kodu MSIL’ye, MSIL ise makine koduna çevrilir. Diğer taraftan .NET ile programlarımız platform bağımsız olacak, .NET uyumlu herhangi bir dil ile program geliştirebileceğiz ve programımız CLR altında daha güvenli bir şekilde çalışacaktır.
.NET perfromans testindeki sonuçlara göre : Genelde C# Java’dan 3.30 kat daha hızlı. C# Visual C++ 6.0′dan ise 3.11 kat daha hızlı çalışıyor. Hatta VB.NET kodu VB 6.0′a nazaran 46.45 kat daha hızlı çalışıyor.

C ve C++ bakış açısıyla C# dili

Bildiğimiz gibi bilgisayarları programlamak için programlama dillerine ihtiyaç duyulur.Bu dillerden en popülerleri Basic,C,C++,Pascal,Java ve Assembler ‘dır.Makina dili ise donanımı kontrol etmek için donanımı üreten firma tarafından tanımlanan komutlar kümesidir. Bazı programlama dilleri derleyicilere ihtiyaç duymasına karşın bazıları ise yorumlayıcılara ihtiyaç duyarlar, mesela bir c++ programını çalıştırabilmek için C++ derleyicisine ihtiyacımız varken, Perl ile yazılmış bir CGI scripti için komut yorumlayıcısına ihtiyacımız vardır. Derleyiciler programı çalıştırmadan önce kodları makina komutlarına çevirirler fakat yorumlayıcılar bir grup kodu satır satır ya da bloklar halinde yorumlayarak çalıştırırlar.

Aslında derleyiciler de, komut yorumlayıcıları da birer bilgisayar programından başka birşey değildirler.Yani c ve c++ dilleri bir giriş bekleyen ve çıkış veren birer bilgisayar programları gibi düşünülebilir.Giriş olarak kaynak kodu veren bu programlar çıkış olarak ise makina kodu üretirler.

C ve C++ dillerine kısa bir bakış:

C dili en popüler yapısal programlama dilidir.C dili Dennis Ritchie tarafından, Martin Richards ve Ken Thompson tarafından geliştirilen BCBL ve B dillerinin temelleri üzerine kuruldu.

C dili “The C Programming Language by Brian Kernighan and Dennis Ritchie” kitabıyla büyümüştür.C dili için, 1983 yılının büyük önemi vardır.Çünkü 1983 yılında ANSI standartlar komitesi C standartları için toplanmıştır.Bu standartlaşma süreci tam 6 yıl sürmüştür.Ve tabi ki şu anki standartların oluşumuna katkıda bulunan ANSI 99 standartları da diğer önemli bir gelişmedir.

C programcılar tarafından herhangi bir tür program geliştirmek için yazılmış genel amaçlı bir dildir. C ile bir düşük seviyeli sistem için program yazabileceğimiz gibi, yüksek seviyeli bir GUI(Grafik Arabirimi) tasarlamamız da mümkündür.Ve elbette kendi kütüphanemizi de C ile oluşturabiliriz.C dilinin ortaya çıkmasından bunca yıl geçmesine rağmen popülaritesini hiçbir zaman kaybetmemiştir. Günümüz programcıları çeşitli amaçlar için programlarını geliştirirken C dili ile yazılmış kaynak kodlarını kullanırlar.

Bjarne Stroustrup 1980 yıllında C++ dilini ortaya çıkarmıştır. C++ dili C temelli ve C nin bir üst kümesi olarak düşünülebilir. C++ en popüler nesne temelli programlama dilidir. C++ dilinin ilk ismi “C with Classes”(C ile sınıflar) idi. C++ dili C diline nazaran daha etkili ve güçlüdür.Ve en önemli özellği ise C ‘den farklı olarak nesne temelli bir dildir.Şu anda C++ dili ANSI ve ISO kuruluşları tarafından standartlaştırılmıştır. Bu standartların son versiyonu 1997 yılında yayınlanmıştır.

C# diline kısa bir bakış:

C#, güçlü, modern, nesne tabanlı ve aynı zaman type-safe(tip-güvenli) bir programlama dilidir.Aynı zamanda C#, C++ dilinin güçlülüğünü ve Visual Basic’ in ise kolaylığını sağlar.Büyük olasılıkla C# dilinin çıkması Java dilinin çıkmasından bu yana programcılık adına yapılan en büyük gelişmedir. C#, C++ ‘ın gücünden , Visual Basic ‘in kolaylığından ve Java ‘nın da özelliklerinden faydalanarak tasarlanmış bir dildir. Fakat şunu da söylemeliyiz ki, Delphi ve C++ Builder ‘daki bazı özellikler şimdi C# ‘da var. Ama Delphi ya da C++ Builder hiçbir zaman Visual C++ ya da Visual Basic ‘in popülaritesini yakalayamamıştır.

C ve C++ programcıları için en büyük sorun, sanırım hızlı geliştirememedir. Çünkü C ve C++ programcıları çok alt seviye ile ilgilenirler.Üst seviyeye çıkmak istediklerinde ise zorlanırlar.Ama C# ile artık böyle bir dert kalmadı.Aynı ortamda ister alt seviyede isterseniz de yüksek seviyede program geliştirebilirsiniz.C# dili Microsoft tarafından geliştirilen .NET paltformunun en temel ve resmi dili olarak lanse edilmiştir.C# dili Turbo Pascal derleyicisini ve Delphi ‘yi oluşturan takımın lideri olan Anders Heljsberg ve Microsoft’da Visual J++ takımında çalışan Scott Wiltamuth tarafından geliştirilmiştir.

.NET framework’ünde bulunan CLR (Common Language Runtime), JVM (Java Virtual Machine)’ ye, garbage collection, güvenilirlik ve JIT (Just in Time Compilation) bakımından çok benzer.

CLR, .NET Framework yapısının servis sağlama ve çalışma zamanının kod organizasyonu yapan ortamıdır. CLR, ECMA standartlarını destekler.

Kısacası C# kullanmak için CLR ve .NET Framework sınıf kütüphanesine ihtiyacmız vardır. Bu da demek oluyor ki C#, JAVA, VB ya da C++ değildir. C,C++ ve JAVA ‘nın güzel özelliklerini barındıran yeni bir programlama dilidir. Sonuç olarak C# ile kod yazmak hem daha avantajlı hem daha kolay hem de etkileyicidir.

alıntıdır

26
Apr

Programlarım: My Tel Pad

Basit bir dijital telefon defteri. Ek olarak kişi notu ekleyebilirsiniz. Proje SQL komutları ile bir Access veritabanı dosyasına DAO 3.6 Nesne Kütüphanesi ile bağlantı kuruyor. Basit fakat çok hızlıdır. Extra özellik olarak ise arama kutusuna view all yazdığınızda tüm kayıtları gösteriyor. Telefonunuzdaki kayıtları yedeklemek için birebir.

Türkçe sürüm için bizle irtibata geçebilirsiniz : xspgroup@gmail.com

Programı http://rapidshare.com/users/KTEKK4 Rapidshare klasörümüzden indirebilirsiniz. Projeyi kullanma sorumluluğu size aittir. Oluşabilecek hatalardan dolayı yazar sorumlu tutulamaz. İndirdiğiniz dosyayı anti-virüs ile taratmanızı tavsiye ederiz.

My Tel Pad
26
Apr

Programlarım: !E

Bu bir parola oluşturma ve saklama yazılımıdır. Basitçe, bir ana parola belirliyorsunuz. Program bu ana parolaya dayanarak size parola oluşturuyor ve bu parolayı oluşturduğu kodları saklıyor. Yani veritabanınızı ele geçiren herhangi bir kimse ana parolayı bilmeden hiçbir şekilde parolalarınızı göremez. Şifrelemede MD5 algoritması kullanıldı.

Program şu şekilde çalışıyor: Sizden bir ana parola istiyor. Bu parolayı kullanacağınız site adresini ve site kullanıcı adını da girdikten sonra bu alanlara dayanarak program bir MD5 kodu üretiyor. İşte bu ürettiği MD% kodundan bir başlangış karakteri seçiyor ve bundan itibaren 13 karakteri sizin parolanız olarak veriyor.

Veritabanı için Microsoft DAO 3.6 Database Bağlantısı kullanıldı.

Türkçe sürüm için bizle irtibata geçebilirsiniz : xspgroup@gmail.com

Programı http://rapidshare.com/users/KTEKK4 Rapidshare klasörümüzden indirebilirsiniz. Projeyi kullanma sorumluluğu size aittir. Oluşabilecek hatalardan dolayı yazar sorumlu tutulamaz. İndirdiğiniz dosyayı anti-virüs ile taratmanızı tavsiye ederiz.

Password Generator MD5

26
Apr

Programlarım: Kill Proc

Bu programla zaman ayarlı olarak istediğiniz bir işlemi silebilirsiniz. Program Enabled konumuna getirildiğinde kendini küçültür ve zamanı geldiğinde çalışan exe’yi kapatıp kendini kapatır.

Türkçe sürüm için bizle irtibata geçebilirsiniz : xspgroup@gmail.com

Programı http://rapidshare.com/users/KTEKK4 Rapidshare klasörümüzden indirebilirsiniz. Projeyi kullanma sorumluluğu size aittir. Oluşabilecek hatalardan dolayı yazar sorumlu tutulamaz. İndirdiğiniz dosyayı anti-virüs ile taratmanızı tavsiye ederiz.

Kill Proc

26
Apr

SLQ Manager’da tüm harfleri büyütme

TR
MS SQL Server için kullandığımız SQL Manager’da seçili metindeki tüm harfleri büyük yapmak istiyorsak ekstra programa ihtiyacımız yok. Tek yapmanız gereken metni seçip Ctrl+Shift+U’ya basmak. Artık Özel ifadeleri yazarken Shift’e basmama ya da Caps Lock’u açmama gerek kalmadı :) .. Aynı şey Visual Studio, Notepad++ ve benzeri programlarda da geçerlidir.

EN
To convert upper case all letters in a selected text in VS or SQL Manager or Notepad++ just push Ctrl+Shift+U ;)

26
Apr

ilginç karikatürler

bandit hırsız suicide crazy man çılgın adam intihar baby kavanoz bebek crazy general çılgın general octopus clown ahtopot palyaço stupid cat aptal kedi creature yaratık illusionist fat king şişman kral criminal hapishane kaçkını

24
Apr

SQL Server 2005′te Query Analizer Nerde?

Eğer daha öncesinde MS-SQL Server’i kullandıysanız ve şimdi 2005′e geçtiyseniz (Ya da Visual Studio 2008/2005 ile gelen SQL Server 2005 Express’e sahipseniz) eski araçların otomatik yüklenmediğini görürsünüz. Eğer bu araçlara ihtiyaç duyuyorsanız .: http://www.microsoft.com/downloads/ adresinden Microsoft SQL Server Management Studio Express’i indirebilirsiniz. Kurduktan sonra Tüm Programlar/Microsoft SQL Server 2005/SQL Server Management Studio Express’de yönetim aracını bulabilirsiniz.

Microsoft SQL Server Management Studio Express

21
Apr

Neden IsPostBack kontrolüne gerek duyarız?

Asp.net’te bir sayfanızda CheckBoxList nesneniz ve bir de butonunuz var ve Page_Load’da bu listeye nesne ekliyorsunuz.

CheckBoxList1.Items.Add("C++")
CheckBoxList1.Items.Add(”Visual Basic 6.0″)
CheckBoxList1.Items.Add(”VB.NET”)
CheckBoxList1.Items.Add(”Pascal”)

Eğer bu blok bu şekilde ise her butona basışınızda sayfa yenilenip liste aşağıya doğru büyümeye başlayacaktır. Bunu önlemek için IsPostBack metodunu kullanabiliriz. Kodumuz aşağıdaki gibi olacaktır.

If Me.IsPostBack = False Then
CheckBoxList1.Items.Add(”C++”)
CheckBoxList1.Items.Add(”Visual Basic 6.0″)
CheckBoxList1.Items.Add(”VB.NET”)
CheckBoxList1.Items.Add(”Pascal”)
End If

20
Apr

x-ray görünümleri

Çeşitli parçaların x-ray görünümleri

scorpion x-ray walkman x-ray bilard table x-ray spider x-ray cpu x-ray x-ray truck x-ray sceleton x-ray heart x-ray

19
Apr

asp.net 3.5 sorunu

Bir forumda birkaç şey yazmıştım fakat formumun gerektiği gibi iş yapmamasından dolayı yazımı buraya geçirmeye karar verdim.

  • Kendi sunucumuza .net framework 3.5′i kurduk. Fakar asp.net hala 2.0…. versiyonunda gözüküyor. 3.5 sadece bir yama mı yoksa kurulumdan sonra yapılması gereken işlemler mi var?
  • Benim araştırmalarıma göre asp.net 3.5 asp.net 2.0..’ın devamı (güncelleştirmesi) niteliğinde. Yani sunucu kısmında 3.5 diye gözükmez. Fakat bizi aydnlatacak biri varsa lütfen paylaşsın ;)
  • Katıldığım Microsoft seminerinde ve birkaç kitapta okuduğuma göre .net 3.5 yeni bir çekirdek (core) içermediği için yani .net 2′nin çekirdeğini kullandığı için site ayarlamalarında bir değişiklik görülmüyor. Siz sitenizi upload ederken, site kök dizinindeki ayarlarda (web.config dosyasındaki) sadece gerekli yerlerde Version=3.5.0.0 olup olmamasına bakın. Sunucu bu ayarı görünce zaten siteyi buna göre derleyecektir. En akıllıcası tasarladığınız sitenin kendi web.config dosyasını upload etmektir.

<sectionGroup name=”scripting” type=”System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″>




My Feed
Lütfen sayfadaki yazıları forum vb.'ne kopyalarken doğru kaynağı belirtiniz. Yani bu blogdan aldıysanız xspgroup.wordpress.com dan alıntıdır diye belirtiniz. Any questions? contact me at xspgroup@gmail.com

Statsistics

  • 13,675 browsers feel my hypertext
visitor stats

Haftanın resimleri