Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » .NET makaleleri » net » Nedir bu Asp.Net
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

Text Box a giriş yaparken diğer TextBox larda değişsin

Yazar: vbfatih

Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 5067
Yayın Tar:22.11.2005
Yazar : studioturk
Hit :5562

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

ASP.NET NEDİR ?
ASP.NET yani Active Server Pages .Net ; Microsoft?un yeni vizyonu .Net ile duyurmuş olduğu internet uygulamaları ve web servisleri için sunucu taraflı yazılım geliştirmeyi kolay, güvenli ve genişleyebilir yapıda sağlayan teknolojidir.

.Net Nedir?
.Net?in basit ve kısa bir açıklaması yoktur. Geçmişte DNA(Distributed iNternet applications Architecture) yani dağıtık internet uygulamaları mimarisi olarak adlandırılan yapının devam mıdır? Tabiki hayır, .Net?i üç ana kategoride incelemekte fayda var; .Net Vizyonu, .Net Framework ve .Net Kurumsal Sunucuları.

Öncelikle .Net Vizyonuna bakacak olursak, bir gün tüm araçların birbiri ile bağlı olacağı ve bu bağlantı altyapısının internet ile gerçekleşeceği düşüncesine dayanır. Ve artık yazılım bu altyapı üzerine kurulacak servislerden oluşacaktır. Aradaki haberleşme uygulama ve platform bağımsız olmalıdır ki, bu XML teknolojisinin veri değişimi için tanımıdır. .Net?in ikinci kategorisi ise .Net Framework. Bu altyapının içerdiği teknolojiler ile örneğin ASP.NET ile web servisleri ve uygulamaları geliştirmek kolay ve hızlı bir hal alıyor. Son olarak .Net Kurumsal Sunucularından bahsedecek olursak; bunların çoğu bize yabancı olmayan sunucular örneğin SQL Server, Biztalk Server . Kurumsal sunucu ailesinde birçok yeni isim de var; Host Integration Server, Internet Security and Acceleration Server, Mobile Information Server gibi.

Yeni bir teknolojinin iyi bir sektörel başarısı olması için çok ciddi altyapı desteği ile birlikte sunulması gerekmektedir. .Net?e baktığımızda çok geniş kurumsal sunucu ailesi ile çok büyük bir destek sağladığı görülmektedir. SQL Server ile veri tabanlarımızı en etkin biçimde yönetirken, Biztalk Server ile firmalar arasında veri aktarımını XML teknolojisi kullanarak çok kolay gerçekleştirebiliyoruz. Internet Security and Acceleration Server ile güvenlik ve internet altyapımızda hızlanma sağlarken, Content Management Server ile sitelerimizin içeriğini kolayca yönetebiliyoruz. Mobile Information Server sayesinde tüm yaptığımız geliştirmeleri günümüzün çok geniş teknoloji ürünleri yelpazesinden herhangi biri üzerinde kolayca çalıştırabiliyoruz. Microsoft?un geliştirmiş olduğunu sunucuları sayısı her geçen gün artıyor, .Net daha güçlü bir altyapıya taşınıyor. Sunucu çeşitliliği sayesinde işler daha modüler bir yapıda gerçekleşiyor ve bir anlamda bu sunucular ile birlikte .Net tamamlanıyor; Vizyon + Altyapı + Sunucular.

ASP.NET?in Özellikleri
ASP.NET, .Net Framework altında işletim sistemi ile bütünleşik çalışan bir mimaridedir. Klasik uygulamaların kullanabildiği nesneleri aynen kullanabildiği gibi, .Net?in sahip olduğu tüm nesnelere erişebilir ve türetebilir. ASP.NET sunucu ve istemci tarafını çok iyi bir şekilde birleştirir. İstemcinin kullandığı sistem özelliklerine özgü içeriği sunar, böylelikle istemci tarafında bazı işlemlerin gerçekleşmesi işi hızlandırıyorsa bunu tespit eder ve uygular. İşin güzel yanı bunu yaparken yazılım geliştiricinin ayrıca bir işlem yapmasına gerek kalmaz, bunu otomatik tespit eder ve uygular.

ASP sunucu tarafında interpret edilen bir teknoloji iken ASP.NET compile ediler yani derlenir. Derlenen kod çok büyük bir performans artışı sağladığından uygulamalar çok daha hızlı çalışacaktır. ASP.NET bileşen mimarisine yeni bir boyut getirmektedir. Artık sisteme nesne yüklerken regsvr32 kullanmak yerine .Net ile gelen ve bundan sonraki bölümde detaylı olarak inceleyeceğimiz metadata sayesinde dll dosyaları kendi açıklamalarını kendi üzerlerinde taşımaktadırlar. Bu yüzden ayrıca bir kayıt işlemine, sunucuyu yeniden başlatmaya gerek yoktur.

Oturum yönetiminde ise sunucu belleği üzerinde yoğunlaşan bir oturum mimarisi yerini dağıtık internet uygulamalarına dönüşmüş, oturum bilgileri SQL Server?da da olmak üzere State Server gibi yeni sunucular kullanılarak sunucunun belleği üzerinden ayrılmıştır. Bu şekilde sunucular arası veri paylaşımı sağlanmış, güvenli ve dengeli bir yapıda sistem kurulmuş olmaktadır. ASP?de cookie?lere dayanan mimari yüzünden yaşanan sorunlar aşılmış, istenirse cookieless yani cookie teknolojisi kullanılmadan da oturum yönetimi sağlanabilir hale gelmiştir.

ASP.NET ile içerik program kodundan tamemen ayrılmıştır. Kullanıcı kontrolleri, codebehind gibi özellikler sayesinde görsel içerik ile uğraşan kişiler sadece görsellikle, programlama kısmı ile ilgili kişilerin de sadece program kodu ile çalışmasına olanak tanımaktadır. İstemci-sunucu mimarisi oldukça başarılı bir şekilde ASP.NET?de uygulanmış, yazılım geliştiricinin arka planda neler olduğunu bilmesine gerek kalmadan uygulamalarda önbellekleme ve performans düzenlenmiştir. ASP.NET tamamen nesneye yönelik programlamayı kullanabilmemizi sağlayan bir teknolojidir. ASP?de JavaScript veya VbScript kullanabiliyorken ASP.NET?de uygulama geliştirmede kullandığımız diller olan Visual Basic, C# gibi dilleri kullanmamız mümkündür. Böylelikle bir programlama dili kullanmanın tüm avantajlarını uygulamalarımızda kullanabiliriz.

Kısaca ASP.NET sunucu taraflı yazılım geliştirmeye farklı bir boyut getiriyor. Umuyorum ki Türkiye?de ASP.NET teknolojisi kullanılarak birçok proje gerçekleştirilecektir. Sizlere bu makale ile birşeyler aktarabildiysem ne mutlu bana...
Bu sözü ilk nerde duydum, sahibi kimdir bilmiyorum ama her an her yerde karşıma çıkıyor ne kadar doğru bir söz olduğunu kantılarcasına. Evet sonunda web programlama diye anılan bir programlama kolunda hatrı sayılır yer edinmiş ASP de değişti. Modaya uyup sonuna bir X koydular ASPX oldu.

Peki değişim sadece bu kadar mı ? Tabii ki hayır. Aslında değişim kelimesi ASPX ile ASP arasındaki farkları tanımlamaya yetmiyecek bir kelime. Devrim desek daha yerinde bir kullanmış oluruz. Sakın devrim kelimesi gözünüzü korkutmasın. Hiç mi tanıdık bir şeylere rastlamayacağız, şimdiye kadar ki ASP bilgimizi hiçe sayıp yepyeni bir mantık mı inşa ettiler diye de düşünmeyin.

Standart bir ASP.NET uygulaması 4 temel maddeden oluşuyor

Uygulamanın çalışacağı IIS dizini
ASPX dosyaları
Global.asax dosyası
Web.config dosyası

ASP.NET, uygulamamızı daha yetenekli ve kullanışlı hale getirecek bir çok dosyayıda beraberinde getirdi. Bunlar : .ascx, .asmx, .vb, .cs . Bu dosyaları kısaca yüzeysel tanımları şöyledir.

.ascx : Kullanıcı kontrollerinin barındıran dosya türüdür.
.asmx : XML Web hizmetlerini uygulamak için kullanılmaktadır.
.vb : Visual Basic .NET kod modüllerinin uzantısıdır. Code-Behind yöntemi kullandığınıldığında kullanılan aspx dosyaından aynı ismi taşıyan bir de vb dosyası oluşturulur.
.cs : C# Visual Studio .NET kod modüllerinin uzatısıdır. Code-Behind yöntemi kullanıldığında C# dili kullanılıyorsa aynı isimi taşıyan bir de cs dosyası oluşturulur.

Yukarıda bahsettimiğimiz Global.asax ve Web.config ise uygulamanın temeli işlevlerini üstlenir.

Global.asax : Eski ASP deki global.asa nın görevini üstlenir.

Web.config : Uygulamanın yapılandırılmasını sağlar. XML veri içerir. Hiyerarşik yapıya sahiptir. Yani içinde bulunduğu klasör ve alt klasörlerini etkiler. Fakat alt klsasörlerden birinde web.config dosyası daha bulunursa bir üstteki web.config dosyası geçersiz olur.

ASP.NET bir çok yenilikle geliyor demiştik. Bunlardan biride ASP ile yaptığımız uzun ve zahmetli işlerin Visual Studio.NET ile çok daha kolay ve hızlı bir şekilde yapılabilmesi. Bir veritabanındaki bilgileri görüntülemek için yaptığımız veritabanı bağlantısı, recordset oluşturma ve bu recordset teki bilgileri bir döngü ile döndürüp html etiketleri arasına sıkıştırma işlemi Visual Studio.NET ve ASP.NET in getirdiği yeniliklerden DataGrid ile 30 saniye süren bir işleme dönüyor.

Eski ASP aslında o kadar kötü değildi. ASP yazan kişinin farkına varmadan bazı yetenekler kazanmasına neden oluyordu. Bazen günde 40-50 yi bulan Server.CreateObject ifadesini kullanmak ve buna benzer rutin işleri yapmak size ekrana ve klavyeye bakmadan arkadaşınızla muhabbet etmek, milli maç seyretmek gibi yetenekler kazandırıyordu. Aynı sayfada kod yazmaya alışmış ve kolay kolay bırakamayacak olanlarda düşünülmüş ve ASPX sayfaları Code-Behind çalıştığı gibi ASP.NET kodlarınızı aynı ASP.NET sayfasında yazabilme imkanı verilmiş.

Peki nedir bu Code-Behind ?
Türkçeye Arka-Kod olarak çevirebilir. Yani arkada çalışan kod. Yukarıda bahsettiğimiz .vb ve .cs uzantılı dosyalar Arka-Kod un bulunduğu dosyalar. Uygulamanın tüm kodları bu dosyada bulunur ve burdan çalıştırılır. Diyelimki ASPX sayfamızda bulunan bir Label1 isimli bir etiketimiz var ve uygulamamızı Visual Basic.NET ile geliştiriyoruz. .vb uzantılı dosyamızda Page_Load isimli fonksiyonumuzun içine Label1.Text ="Merhaba Dünya" yazdık. .aspx sayfamızı çağırdımız zaman aynı ismi taşıyan .vb uzantılı dosyasındaki Page_Load fonksiyonu çalışır ve .aspx sayfamızda bulunan Label1 isimli etiketimizin Text özelliğine "Merhaba Dünya" değişkenini atar ve karşımızda bize merhaba diyen bir sayfa çıkar.

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MyBase.Load

Label1.Text = "Merhaba Dünya"

End Sub

İyi de uslu uslu aynı sayfada çalışmak varken neden kodlarımızı ayrı bi dosyada tutalım ki ? Bunu bana be gibi bir getirisi olur ? Aslında bir değil bir çok getirisi var. Code-Behind kavramını görsel işleri üstlenen HTML işe uygulamayı üstlenen ASPX kodunun birbirinden ayırmayı sağlayan bir yöntemdir diye kısaca tanımlayabiliriz. Getirisine gelince de


Görsel ve uygulama kodlarının birbirinden ayırarak daha sağlıklı bir uygulama geliştirme olanağı sağlar.
Farklı projelerde kullanılacak ASPX dosyasının yeni projelere daha kolay adapte edebilme imkanı verir.
Uygulama kodu HTML den ayrıldığı için daha kolay okunur.
Telif haklarının korunmasına olanak sağlar. Code-Behind sayesinde derlenmiş kod kullarak yazdığımız kodun saklı olmasını sağlayabiliriz
-----------------------------------------------------

Microsoft Visual Studio .NET ile birlikte, projelerin geliştirme süreçlerinde gözle görülür kısalmalar oldu. Yeni geliştirilecek olan uygulamalar .NET ile yazılmaya, var olanlar ise bu yeni teknolojiye dönüştürülmeye başlandı. Peki bu dönüşüm sizin için ne kadar gerekli? Hangi durumlarda, hangi projelerin dönüştürülmesi tavsiye ediliyor? Bu soruların cevaplarını bu yazımızda bulmaya çalışacağız.

Öncelikle eğer Microsoft dünyasında yaşıyorsanız, .NET yaşam biçimini kabullenmeniz gerekir. Fakat bu, bütün projelerinizi bir seferde .NET?e dönüştüreceksiniz demek değil. İlk adım olarak projelerinizin geliştirme süreçlerini göz önüne alacağız. Yeni başlanacak olan projelerin .NET ile başlanması doğru karar olacaktır. Halen geliştirilmesi sürmekte olan projeler için ise, bir sonraki sürümlerine kadar dönüştürme işleminin rafa kaldırılması öneriliyor. Çünkü bu işlem gereksiz yere zaman ve para kaybına neden olacaktır. İlk olarak dönüşümden etkilenecek bileşenler, geliştirmeye yeni başlanmış projeler ve .NET ortamında çalışan projelerinizde kullanacağınız bileşenler olmalıdır. Çünkü .NET Managed Code?dan, Unmanaged COM bileşenlerini çağırmak performans kaybına neden olacaktır. Sonuç olarak, şu anda işinizi gören ve çalışmakta olan uygulamalarınızı ve bileşenlerini orta vadede dönüştürmeyi düşünmeyin.

.NET dönüşümde göz önüne alacağınız ikinci kriter, programların çalışacağı işletim sistemidir. Eğer Windows XP, Windows 2000 veya Windows 2003 kullanıyorsanız, .NET Framework?ün bütün özelliklerinden yararlanabileceksiniz demektir. Bu sebeple, kullanıcılarınızın bu sistemlerden birine terfi ettiği zamanı, uygulamalarınız için dönüşüm zamanı olarak belirleyebilirsiniz. Bunların yanında, Windows 98 ve Wimdows Me üzerinde .NET Framework çalıştığı halde, tüm özellikleri desteklenmemektedir. Örneğin; .NET uygulamaları Windows 98 ve Windows Me üzerine COM+ desteği olmadan yüklenmektedirler. Aynı zamanda bu iki işletim sisteminde, .NET Framework?ün Internet yetenekleri de kısıtlanmaktadır. Sunucu işletim sistemlerine rağmen, eğer ASP.NET Web Uygulama mimarisine dönüşüm düşünüyorsanız, istemcilerinizin durumu bu süreçde etkili olmayacaktır.

En önemli konulardan birisi de personelin bu geçişe hazır olup olmadığıdır. Kadronuzdaki yazılım geliştiricilerin .NET?le ilgili olup olmadıklarının araştırılması gerekir. XML teknolojine ne kadar yakın olduklarının tesbit edilmesi gerekir. Çünkü ASP.NET Web uygulamalarınızda yoğunlukla kullanacağınız teknolojinin adı ve aynı zamanda konfigürasyon doslarının formatı da XML?dir. Sistem yöneticilerinizin Windows .NET Server hakkında gerekli eğitimleri alması gerekebilir. Hatta Sistem yöneticileriniz .NET uygulamarı ile entegre çalışacak şekilde geliştirilen diğer Enterprise .NET Server ailesindeki ISA Server 2000, Applicaton Server 2000 gibi ürünler hakkında da bilgilendirilmesi doğru olacaktır.

Dönüşümden önce göz önünde bulundurmanız gereken önemli hususlardan birisi de uygulamalarınızın dağıtımı. ASP.NET, Web tabanlı uygulama geliştirme platformu olduğu için, daha önce geliştirmiş olduğunuz istemci-sunucu tabanlı uygulamalarınızı Web destekli hale dönüştürmeyi göze almanız gerekir. Çünkü .NET'in tam olarak desteklemediği Distributed Component Object Model'i (DCOM) kullanan bileşenlerinizi Web Servis haline dönüştürmeniz gerekecektir. Visual Studio bu dönüşümü de kolaylaştırmaktadır. Projenize bazı sınıfları ekledikten ve yeniden derledikden sonra, bileşeniniz Web Servis halini alacaktır. Zamanla, Web Servislerinin projelerinizde ne kadar kullanışlı olduğunu göreceksiniz. İstemci-Sunucu mimarisinde firewall'lar büyük bir sorundur. Fakat Web servisleri için firewall, sorun olmaktan kalkmıştır. Ayrıca Web tabanlı bir uygulama geliştirdiğinizde, bu uygulamayı farklı platformlara taşımak için tek yapmanız gereken arayüzü hazırlamak. Yazmış olduğunuz kodlar yeni arayüzünüzde (örneğin PDA'larda) sorunsuz olarak çalışacaktır.

Geleneksel ASP Web sayfaları ile ASP.NET Web uygulamaları aynı sunucuda çalışabilmelerine rağmen, güvenlik sorunlarına yol açabileceğinden bu durum tavsiye edilmez. Örneğin ASP.NET; sisteme tüm girişlerin tek bir sayfadan yapıldığı ve doğrulama mekanizmasının merkezileşmesini sağlayan Form-Based Authentication'ı desteklemektedir. Fakat malesef geleneksel ASP ile sisteminizi güvenli hale getirmek için sistemden ayrı bir güvenlik mekanizması geliştirmeniz gerekir.

Dönüşüm sürecinde, .NET size kullanmanız için çok geniş bir dil ailesi sunmaktadır. Geliştiricileriniz halen kullanmakta oldukları dilleri .NET ortamında da bulabilecektirler. Uygulama geliştiriciler tarafından en çok kullanılan dil olan Visual Basic, .NET'de Visual Basic.NET olarak anılmaktadır. Fakat VB kullanan projelerin VB.NET'e dönüşümü biraz sancılı olmaktadır. Bunun yanında eğer C++ veya Java dilini kullanan uygulama geliştiricilerdenseniz, Microsoft'un yeni uygulama dili olan C#'la tanışmak için geç kalmamanızı öneririm. NET dilleri çok değişik olabilir fakat önerilen, projelerinizde bir veya iki dile odaklanmanızdır.

.NET'e geçmenizde rol oynayacak diğer bir neden ise, Nesne Tabanlı (Object Oriented) mimarinin yeni özellikleri. Bu yenilikler kendini en çok VB dilinde gösteriyor. VB.NET de, Nesne Tabanlı Programlamanın vazgeçilmezlerinden olan Inheritance, Interfaces ve Polimorfism kullanılabilmektedir. Projenizin nesne tabanlı yapısını gözden geçirip, kodun büyük çoğunluğunun çıkarılıp yeniden yazılmamasını sağlayabilirsiniz. Ayrıca VB.NET'e eklenen fonksiyonların aşırı yüklenmesi (function overloading) özelliği sayesinde, tek bir parametrenin farklı olması yüzünden, aynı fonksiyonun defalarca yazılması da önlenmektedir.

VS.NET ile isimlendirme formatları da değişmiştir. Değişkenlern isimlendirilmesinde, ismin ilk kelimesinin küçük harflerden oluşması, ikinci kelimeden itibaren kelimenin baş harflerinin büyük olması kuralı kullanılmaktadır. Sınıfların, özelliklerin, metotların ve olayların isimlendirilmesinde ise, ismi oluşturan her kelimenin baş harfi büyük olmaktadır. Uygulama geliştiricilerin isimlendirmelerinde bu biçimi seçmeleri bir kural değildir. Fakat .NET Framework'un kullandığı isimlendirme sistemini kullanmak şüphesiz kodunuzun görünüm bakımından sistemle bütünlüğünü artıracaktır.

COM dünyasında, nesneler sistem yöneticisi tarafından manuel olarak kayıt edilirlerdi. COM+ paketlerini import/export edebiliyordunuz fakat gerçekten sorunlu bir işlemdi. .NET Framework ise, geliştiricilere sınıf tanımlarını farklı niteliklerle süslemelerine olanak sağlıyor. Ayrıca nesnelerin import/export olayları kolaylaştırılmış durumda.

COM dünyasında, farklı uygulama geliştiriciler tarafından paylaşılabilecek kod miktarı sınırlanmıştır. Eğer bir proje, paylaşımdaki bileşene yeni bir özellik eklemişse veya var olan özelliğini değiştirmişse, bu paylaşımdaki bileşeni kullalan uygulamalar risk altındadır demektir. .NET'in Side-by-Side adıyla anılan işleme mekanizması bu sorunu ortadan kaldırmaktadır. Çünkü aynı bileşenin farklı sürümlerinin aynı bilgisayarda hatta aynı uygulama alanında bulunması artık mümkündür. Kodunuzda nesnenin ilgili versiyonunu kullanmanız size kodunuzu diğer projelerle paylaşmanızı ve proje içinde bağımlılığı önlemenizi sağlayacaktır.

.NET ortamında nesnelerin haberleşmesi için birçok seçeneğe sahip olacaksınız. Genel anlamda DCOM?un Web Servis ile değiştirilmesi önerilmektedir. Fakat siz Web Servislerini, DCOM?u tamamlayıcı olarak da kullanabilirsiniz. Ayrıca .NET Remooting, network ortamında yordamların çağrılmasında büyük performans kazançları sağlamaktadır. Remooting?in DCOM?a göre avantajlarından biri, konfigürasyon doslarının okunabilir dosyalar olmasıdır. Konfigürasyon değişikliklerini farklı bir araçla değil, herhangi bir text editörle yapabilirsiniz. Örneğin Internet Information Servis metabase?i bu yöntemle konfigüre edebilirsiniz. Ayrıca .NET Framework, asenkron mesajlaşmaya olanak tanıyan Microsoft Message Queue?yle de entegre çalışmaktadır.

Yeni bir geçiş döneminde en çok düşünülen konulardan birisi de veriye erişim, verinin yönetim kolaylığı ve güvenliğidir. Microsoft gelecek nesil veri arayüzünü sizlere sunuyor; ADO.NET. ADO.NET?in sınıfları XML aracılığıyla, SOAP kullanılarak Web servisler üzerinden veri transferine olanak tanımaktadır. ADO.NET ayrıca SQL Server ve ORACLE için doğal veri haberleşme dillerini kullanan veri arayüzlerini de desteklemektedir. Bu arayüzler sayesinde, OLEDB?de gözle görülür performans artışları elde edilmektedir.

.NET dönüşümünün bir parçası da, XML?in yapabileceklerinin farkına varmaktır. Örneğin, uygulamanızda SQL Server?ın sorgu sonucunu XML olarak geri döndürmesini isteyebilirsiniz. .NET?in XML sınıflarını kullanarak, veritabanı sorgu sonuçlarını XML formatına döndürebilir ve görüntüleyebilirsiniz. Veya, bu sınıfları kullanarak ADO.NET Data Set?in XML biçiminde işlenmesini sağlayabilirsiniz.
ASP.NET Formdan Veri Gönderme

<script language="VB" runat="server">
Sub Page_Load(Src As Object, E As EventArgs)
gosterge.visible=false
End Sub
Sub Kaydet_Click(sender As Object, e As EventArgs)
gosterge.visible=true
gosterge.Text="Kaydınızı yapıldı!"
End Sub
Sub Terket_Click(sender As Object, e As EventArgs)
gosterge.visible=true
gosterge.Text="Ayrıldınız!"
End Sub
</script>
<html><head>
<title>TextBoxes</title>
</head>
<body bgcolor="#FFFFFF">
<asp:Label ID="gosterge" forecolor="red" Font-Name="Verdana" Font-Size="10" runat=server />

<form runat="server">
Adınız
<ASP:TextBox id=Ad runat=server /><br>
Soyadınız
<ASP:TextBox id=Soyad runat=server /><br>
Email Adresi
<ASP:TextBox id=Email runat=server /><br>

<ASP:Button id=kaydet text="Kaydet" OnClick="Kaydet_Click" runat=server />
<ASP:Button id=terket text="Terket" OnClick="Terket_Click" runat=server />

</form>
</body></html>

ASP.Net ile veri tabanına kayıt eklemek

<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

Sub ekle(sender As Object, e As EventArgs)
dim db_baglanti as OleDbConnection
dim ad1 as string
dim soyad1 as string



ad1=ad.text
soyad1=soyad.text



db_baglanti = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DATA Source=" & Server.MapPath("ProjeTL-4Akayit.mdb"))
db_baglanti.Open()

dim db_komut as OleDbCommand
db_komut= New OleDbCommand( "Insert INTO deneme ( numara, gorus) Values( '"& ad1 &"','"& soyad1 &"')", db_baglanti )
db_komut.ExecuteNonQuery
msgbox("Görüşleriniz Eklendi.")
ad1=""
soyad1=""
db_baglanti.Close()

end sub



</script>
<html>
<head>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
<style type="text/css">
<!--
.style1 {
font-family: Verdana;
font-size: 14pt;
}
-->
</style>
</head>
<body>
<div id="Layer1" style="position:absolute; left:121px; top:15px; width:801px; height:31px; z-index:1">
<table width="804" border="1">
<tr>
<td><span class="style1">1001 Fikret Öztürk </span></td>
</tr>
</table>
</div>
<div id="Layer2" style="position:absolute; left:122px; top:57px; width:802px; height:362px; z-index:2">
<table width="800" height="361" border="1" id="table1">
<tr>
<td> </td>
</tr>
</table>
</div>
<p><img src="1001.jpg" width="96" height="112" border="2"></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<form runat="server">
Numaranız:
<asp:TextBox id="ad" runat="server"></asp:TextBox>
<br />
<br />
Gorusunuz:
<asp:TextBox id="soyad" runat="server" TextMode="MultiLine" Height="25"></asp:TextBox>
<br />
<asp:Button id="Button1" onclick="ekle" runat="server" Text="Bilgileri Ekle"></asp:Button>
<br />
</form>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</body>
</html>


ASP.NEt ile Sayfanızdan E-Mail göndermek


Imports System.Web.Mail
Imports System.Web.Mail.SmtpMail
Imports System.Web.Mail.MailMessage
-----------------------------------------------

' butonun click ine yazın forma 3 adet textbox, 2 adet Label bırakın

Try
Dim a, b, c As String
a = Textbox12.Text
b = Textbox11.Text
c = Textbox10.Text
Dim m
m = Server.CreateObject("CDONTS.NewMail")
m.from = "gonderen_adres@hotmail.com"
m.to = "gidecegi_adres@hotmail.com"
m.subject = "Konuyu yazınız"
m.body = a & ChrW(13) & b & ChrW(13) & c
m.send()

L1.Text = "Mesajın Başarı ile gönderildi.."
L2.Text = "En Kısa Zamanda Aranacaksınız.. İyi Çalışmalar Dileriz."
Textbox12.Text = ""
Textbox11.Text = ""
Textbox10.Text = ""

Catch ex As Exception
L1.Text = "Hata : " & ex.Message
End Try

Kayıt yapan kullanıcıya onay maili gönderme

---- kayit.aspx ------

<%@ page language=?vb? src=?kay.vb? inherits=?kay? AutoEventWireUp=?False? %>
<html>
<head>
<title>Mail denemesi</title>
</head>
<body>
<form id="formkay" runat="server">
<asp:label id=?txtad? runat=?server?>Adynyz:</asp:label><asp:textbox id="ad" runat="server" /><br>
<asp:label id=?txtmail? runat=?server?>Mail Adresi:</asp:label><asp:textbox id=?email? runat=?server? /><br>
<asp:label id=?txtusern? runat=?server?>Kullanycy Adynyz:</asp:label><asp:textbox id=?usern? runat=?server? /><br>
<asp:label id=?txtsifre? runat=?server?>?ifreniz:</asp:label><asp:textbox id=?sifre? runat=?server? /><br>
<asp:button id="cmdkay" runat="server" text="kayyt" />
</form>
</body>
</html>

Basit bir kayyt sayfasy olu?turduktan sonra ?imdi arkaplanda çaly?acak olan kay.vb dosyamyzy olu?turalym.

------ kay.vb -----

Imports System.Data.OleDb
Imports System.Data
Imports System.Web
Imports System.Web.UI
Imports system.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.Web.Mail
Public Class kay
Inherits System.Web.UI.Page

Protected WithEvents ad as System.Web.UI.WebControls.Textbox
Protected WithEvents email as System.Web.UI.WebControls.Textbox
Protected WithEvents usern as System.Web.UI.WebControls.Textbox
Protected WithEvents sifre as System.Web.UI.WebControls.Textbox
Protected WithEvents cmdkay as System.Web.UI.WebControls.Button

Private strconnection As String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("veritabanim.mdb") &";Persist Security Info=False"
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

end sub

sub SendIntroMail
Dim msgIntro as New MailMessage
msgIntro.BodyFormat = MailFormat.HTML
msgIntro.To = email.text
msgIntro.From = "www.sitem.com"
msgIntro.Headers.Add("Reply-To","emailadresim")
msgIntro.Priority = MailPriority.High
msgIntro.Subject = "Sitemize Ho?geldiniz"
msgIntro.Body = "www.sitem.com adresine kaydynyz ba?ary ile yapyldy.Ylginize Çok te?ekkürler"
SmtpMail.Send(msgIntro)
end sub
Private sub cmdkay_Click(Byval Sender as System.Object, Byval e as System.EventArgs) Handles cmdkay.Click

Dim strSelect As String
strSelect = "SELECT * FROM tbluser "
Dim con as New OleDBConnection(strConnection)
Dim cmd As New OleDBCommand(StrSelect, con)
Dim adapter as New OledbDataAdapter(cmd)
Dim dsvt As New DataSet()

Try

con.Open()


adapter.FillSchema(dsvt, SchemaType.Mapped, "tbluser")

Finally
If not con is nothing then con.close()
End try

Dim rownew As DataRow
rownew = dsvt.Tables("tbluser").NewRow
rownew("ad") = ad.Text
rownew(?email?) = email.Text
rownew(?usern?) = usern.Text
rownew(?sifre?) sifre.Text

dsvt.Tables("tbluser").Rows.Add(Rownew)

Dim intAdded As Integer
Try
Dim cb As New OleDBCommandBuilder(adapter)
adapter = cb.DataAdapter
con.Open()
intAdded = adapter.Update(dsvt, "tbluser")
Finally
If not con Is Nothing Then con.Close()
End Try

if intAdded > 0 Then
SendIntromail
end if
End sub
End class

Burada normal kayyttan farkly olarak yukaryda gördü?ünüz gibi kayyt ba?aryly oldu?unda SendIntromail komutu ile kullanycynyn vermi? oldu?u mail adresine mail gönderiyoruz. SendIntroMail komutunu incelersek;

sub SendIntroMail
? Mesajymyzy tanytyyoruz
Dim msgIntro as New MailMessage

? Mail formatyny belirliyoruz
msgIntro.BodyFormat = MailFormat.HTML

? mailin gidece?i adresi email textbox?yndan alyyoruz
msgIntro.To = email.text

? mailin kim tarafyndan gönderildi?i
msgIntro.From = "www.sitem.com"

? E?er cevaplanyrsa kime gelece?i
msgIntro.Headers.Add("Reply-To","emailadresim")

? mailimizin önem derecesi
msgIntro.Priority = MailPriority.High

? Mail konumuz
msgIntro.Subject = "Sitemize Ho?geldiniz"

?gönderdi?imiz mailin içeri?i
msgIntro.Body = "www.sitem.com adresine kaydynyz ba?ary ile yapyldy.Ylginize Çok te?ekkürler"
SmtpMail.Send(msgIntro)
end sub

Burada gönderdi?imiz mail?in içeri?ine üye olan kullanycyn adyny da ilave etmek isterseniz (Örn. Sayyn Ali ) typky gidecek mail adresinde oldu?u gibi ad.text komutunu ekleyebilirsiniz. Ve son olarak syra geldi üye kaydy yapaca?ymyz veritabanyna.Onu da download edebilirsiniz. Yada kendiniz olu?turabilirsiniz.Yapmanyz gerekenler oldukça basit.
Ylk önce yeni bir Access veritabany olu?turun ve veritabanim.mdb adyny verin. Daha sonra bu veritabanynyn içine tbluser adly bir tablo olu?turun ve içine 4 sütun ekleyin.Bunlaryn adlary da ad, email, usern, sifre olacak

Kullanıcı Girişi ? 1

Bilindiği gibi çoğu internet sitesi üyelik kendi üyelik sistemlerini kuruyorlar ve örneğin bir makale okumak için bile kullanıcı adı ve şifre isteyen formlar karşımıza çıkıyor.Asp.Net?te yazılmış olan bu basit login page üyelerin girdiği kullanıcı adı ve şifre?yi access veritabanından kontrol edip sisteme giriş izni veriyor.

------ Login.aspx -----

<%@ page language="VB" debug="true" Explicit="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OLEDB" %>
<script runat="server" language="VB">

? giris tusuna basty?ymzda olmasyny istedi?imiz olay

Sub OK_OnSubmit(Sender As Object, E As EventArgs)
Dim DBConn as OleDbConnection
Dim DBCommand As OleDbDataAdapter
Dim DSPageData as New DataSet
DBConn = New OleDbConnection("provider=" _
& "Microsoft.Jet.OLEDB.4.0;" _
& "DATA SOURCE=" _
& Server.MapPath("db.mdb;"))
DBCommand = New OleDbDataAdapter _
("Select * From uyeler Where " _
& "kad = '" & kad.Text & "' " _
& "And sifre = '" & sifre.Text & "'" _
, DBConn)
DBCommand.Fill(DSPageData, _
"uyeler")
If DSPageData.Tables("uyeler").Rows.Count = 0 Then
hata.Text = "Kullanycy Adynyzy veya ?ifrenizi Yanly? Girdiniz"
Else
Session("id") = DSPageData.Tables("uyeler"). _
Rows(0).Item("id")
Session("id") = kad.Text ? Kullanycy adymyz session bilgimiz olsun
response.Redirect("default.aspx")
End If
End Sub
</script>

<html>
<head>
<title>Login Form</title>
</head>
<body>
<form id="form1" runat="server">

<center>
<br>
.:: Üye Giri? ::.<br><br>
Kullanycy Ady: <asp:textbox id="kad" runat="server"/>
<br><br> ?ifre : <asp:textbox id="sifre" runat="server" textmode="password" />
<br><asp:Button runat="server" id="runat" Text="Giri?" OnClick="OK_OnSubmit" />

<br><asp:label id="hata" runat="server" />
</form>
</body>
</html>

?imdi default.aspx sayfamyzy yazalym.

<%@ page language="VB" debug="true" Explicit="True" %>

<script runat="server" language="VB">

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
?Burada kullanycy adyny istiyoruz e?er kullanycy ady yoksa geri gönder diyoruz
If Len(session("id")) = 0 Then
Response.Redirect("login.aspx")
Else
? Request.ServerVariables(?Auth_user?) olayy sayfaya authenticate olan
?kullanycynyn bilgisini bildiriyor
bilgi.text = Request.ServerVariables("Auth_user")
end if
End Sub

? Session.Clear session bilgilerimizi temizliyor ve login.aspx sayfasyna yönlendiriyor.

Sub cikis_OnSubmit(Sender As Object, E As EventArgs)
Session.Clear()
response.Redirect("login.aspx")
end sub
</script>
<html>
<head>
<title>Login Form</title>
</head>
<body>
<form id="form1" runat="server">
<center>
<br>
.:: Üye Durumu ::.<br><br>
<br><asp:label id="bilgi" runat="server" />
<br>
<br>
<asp:button id="cikis" runat="server" Text="Çyky?" OnClick="cikis_OnSubmit" />
</form>
</body>
</html>

Kullanıcı Girişi ? 2

Merhabalar;

Asp .NET ile Login sayfasının nasıl yapıldığını anlatacağım.

Öncelikle yeni bir Asp.NET (Aspx) sayfası açalım ve adını Login.Aspx olarak değiştirelim.

Sayfamıza 2 adet textbox (txtKullaniciadi, txtSifre), 1 adet Label(LabelHata) ve 1 adet Button (Button1) ekleyelim.

Şimdi butona çift tıklayarak kod sayfasına geçelim.

İlk önce SqlVeritabanına bağlantı ve kuracağız ve burada bulunan bir tabloda girilen Kullanıcı adı ve şifreyi kontrol edeceğiz.
Dönen değer 1 ise kullanıcı ve şifre doğru değilse hata mesajı verdirerek yeniden giriş isteyeceğiz.

Şimdi KullaniciKontrol isimli bir fonksiyon oluşturalım.

#Region " Login ve database bağlantı kodları "

'Kullanıcı Kontrol Fonksiyonu
'Veritabanına bağlanıyor ve ilktablo'dan ad ve soyadı karşılaştırıp dönen sonuç 1 ise login
'tamam değilse hatalı kullanıcı adı ve şifre
Function KullaniciKontrol(ByVal ad As String, ByVal soyad As String) As System.Data.DataSet
Dim connectionString As String = "server='(localhost)'; user id='Deneme'; password='xxxx'; database='database_adi'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString)


'Burada tablo adı olarak 'ilktablo', sütunlar olarak 'ad' ve 'soyad' olarak belirledim. Siz bunları
'kullanıcı adı ve şifre olarak değiştirebilirsiniz.

Dim queryString As String = "SELECT [ilktablo].* FROM [ilktablo] WHERE (([ilktablo].[ad] = @ad) AND ([ilktablo" & _
"].[soyad] = @soyad))"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_ad As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_ad.ParameterName = "@ad"
dbParam_ad.Value = ad
dbParam_ad.DbType = System.Data.DbType.StringFixedLength
dbCommand.Parameters.Add(dbParam_ad)
Dim dbParam_soyad As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_soyad.ParameterName = "@soyad"
dbParam_soyad.Value = soyad
dbParam_soyad.DbType = System.Data.DbType.StringFixedLength
dbCommand.Parameters.Add(dbParam_soyad)

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)

Return dataSet
End Function
#End Region


Fonksiyonumuzu oluşturduktan sonra Butona tıklandığı zaman fonksiyonu harekete geçirelim ve tablodan kayıt varmı kontrol edelim.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Page.IsValid Then

'Burada yeni bir dataset tanımlandı
Dim userDS As New System.Data.DataSet
'KullaniciKontrol fonksiyonu ile kullanıcı adı ve şifresi kontrol edildi.
userDS = KullaniciKontrol(txtKullaniciAdi.Text, txtSifre.Text)
'Dönen değer bir ise
If userDS.Tables(0).Rows.Count = 1 Then
'Oturum açıldı ve Default.aspx sayfasına yönlendirildi.
Session("Login") = True
Response.Redirect("Default.aspx")
Else
'Dönen değer '0' ise hata mesajı verdirildi.
Labelhata.Text = "Hatalı kullanıcı adı ve şifre. Tekrar deneyin."
End If
End If

End Sub

Burada Session("Login") = True ifadesini biraz açalım.
Bu ifade asp sayfalarında bulunan Session'ların(yani oturumların) durumunu belirleyen ifadedir.

Siteye girenler Default.aspx sayfasından çıktıkları anda Session("login") = False oluyor ve kullanıcı Çıkış (Logout) yapmış oluyor.

Bunu isteğe göre Güvenli Çıkış olarak siz belirleyebilirsiniz.

İşte Asp.NET ile login sayfasının nasıl yapılacağını görmüş olduk.


Hüseyin DEMİRA?
» Zor halledilir, imkansız zaman alır
» Impossible takes time, difficulties can be handled.


Mail Gönderme ? 3

Asp .NET ile mail göndermek gerçekten çok basit bir olay. Yeni bir Asp .NET projesi açın ve kod kısmına aşağıdaki kodları girin.

Not: txtkime, txtbilgi, txtkonu,txtmesaj,txtkimden ve lbldurum kontrollerini sayfaya ekleyin.

Private Sub cmdGonder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGonder.Click
Dim Mesaj As New Mail.MailMessage
Mesaj.To = txtKime.Text
Mesaj.Cc = txtilgi.Text
Mesaj.Subject = txtKonu.Text
Mesaj.Body = txtMesaj.Text
Mesaj.From = txtKimden.Text

SmtpMail.SmtpServer = "Buraya mail server adı veya ip si gelecek"
SmtpMail.Send(Mesaj)

lblDurum.Text = "Mesaj gönderildi"
End Sub

Bu kadar basit.


» Impossible takes time, difficulties can be handled.

SQL Veri Tabanına bağlanma ? Formda verileri gösterme

SQL Databse den veri çekip bunları Form üzerindeki nesnelere ekleyebilir, silebilir, güncelleyebilirsiniz.


Dim sayac As Integer

Dim con As New SqlClient.SqlConnection
Dim adp As New SqlClient.SqlDataAdapter
Dim cmd As New SqlClient.SqlCommand
Dim dts As New DataSet
Sub dose()
Txtcustomerid.Text = dts.Tables("deneme").Rows(sayac)(0)
Txtcompanyname.Text = dts.Tables("deneme").Rows(sayac)(1)
txtcontactname.Text = dts.Tables("deneme").Rows(sayac)(2)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
con.ConnectionString = "server=.;database=Northwind;integrated security=SSPI" ' userid=sa; password=123 olsaydı sqlserver authendication olurdu.
cmd.CommandText = "select * from customers"
cmd.Connection = con
adp.SelectCommand = cmd
adp.Fill(dts, "deneme")
' database tanımlamaları buraya kadar bitti bundan sonra forma yazdırmayı yazıyoruz
dose()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If sayac = dts.Tables("deneme").Rows.Count - 1 Then
MsgBox("Son Kayıt")
Exit Sub
End If
sayac += 1
dose()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If sayac = 0 Then Exit Sub
sayac -= 1
dose()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
sayac = dts.Tables("deneme").Rows.Count - 1
dose()
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
sayac = 0
dose()
End Sub
End Class

.Net Nedir ? Microsoft .NET Nedir ? Teorik Bilgiler.

Microsoft .NET ilk olarak lanse edildiğinden bugüne kadar yazılım geliştiriciler tarafından bir çok soru soruldu, yorumda bulunuldu. Bu kadar çok soru sorulmasının ve tam olarak anlaşılamamasının altında yatan sebep .NET'in sadece "Bir Şey" den ibaret olmaması, altında yatan teknoloji ve sunduğu olanaklarla bir bütün olarak değerlendirilmemesidir.

.NET'i açıklamaya başlamadan önce derleyicinin (Compiler) ne olduğu, hangi mantık çerçevesinde çalıştığı hakkında bilgi verelim.

Derleyicinin en kısa tanımı "Kaynak kodu (Source Code) makine koduna (Machine Code) çeviren uygulama" olarak yapılabilir. Kaynak kod, belirli bir bilgisayar dilinin kurallarına uyularak yazılan koddur. Makine kodu, belirli donanım(lar) tarafından çalıştırılabilen komutların (Instructions) bulunduğu yapıdır. Örneğin Intel veya Risc (Reduced Instruction Set Computer) tabanlı işlemciler.

Hangi derleyici olursa olsun, derleyici teknolojisinin geldiği son noktada tüm derleyiciler kaynak kodun makine koduna çevrimi aşamasında aşağıdaki adımları izlerler.

Aşama
Açıklama

Lexical Analiz
Kaynak kod şekilsel olarak analiz edilir. Örneğin anlatımlar sabitler, tamsayılar, belirleyiciler (Identifiers) şeklinde parçalanır.

Syntax Analiz
Kaynak kod cümle yapısı bazında kontrol edilir. Örneğin anlatımlar operatörler bazında parçalanır.

Semantic Analiz
Kaynak kod mantıksal olarak kontrol edilir. Örneğin bir dizi (Array) ile bir tamsayının toplanması bu aşamaya kadar geçerli bir işlemken, bu aşamadan sonra geçersiz sayılır.

Ara (Intermediate) Kod Oluşturma
Gerek şekilsel, gerek cümlesel, gerek mantıksal olarak kontrol edilen kaynak kod ara bir dile çevrilir. Çevrilen bu dilin yapısı derleyici üreticisinin belirlediği yapıdadır.

Kod Optimizasyonu
Ara dile çevrilen kodun optimizasyonu yapılır. Bu aşama derleyici kalitesinin etkili olduğu bir aşamadır.

Kod Oluşturma
Optimize edilmiş ve hata bağımsız kaynak kod hedef dile (Örneğin makine diline) çevrilir.

Bugüne kadar her derleyici firması tarafından ilgili derleyici firmasına özgü oluşturulan Ara Kod'un standart bir yapıya kavuşturulması için bazı çalışmalar yapıldıysa da programlama dillerinin ve kullanılan tiplerin birbirinden çok farklı olması sebebiyle başarı sağlanamamıştı.

.NET ile Microsoft, Microsoft Intermediate Language (MSIL) standardını tanımlayarak tüm programlama dilleri ve derleyici firmaları tarafından kaynak kodun standart bir Ara Kod'a çevrimini sağlayacak alt yapıyı kurmuş oldu.

Böylece temel olarak iki büyük hedef başarılmış oldu. Birincisi, birbirinden farklı programlama dilleri kullanarak tip uyuşmazlığı gibi problemlerin olmadığı bir zeminde standart ara kodun oluşturulması, ikincisi, standart yapıda olan ara kodun optimizasyonunun ve hedef dile çevriminin tek noktadan yapılabilmesi.

Bütün bu işlemlerin sağladığı olanaklar ise; Daha güvenli işletim sistemi, dil bağımsızlığı, donanım bağımsızlığı olarak özetlenebilir.

Not: Rakip teknoloji olan Java ile yukarıda anlatılan yapı teorik bilginin yetersiz olması sebebiyle bazen karıştırılmaktadır. Java, yukarıdaki işlemlerin tamamını hedef dil JVM (Java Sanal Makinesi - Java Virtual Machine) olarak yapmakta, yaratılan byte kodlar JVM tarafından farklı platformlar için (Intel, RISC vb.) makine diline çevrilmektedir. Dolayısıyla kod optimizasyonu Java derleyicisi tarafından derleme anında yapılmakta, farklı programlama dilleri desteklenmemektedir.
Yukarıda anlatılan işlemler ve bazı kavramları daha iyi kavramak için Temel Kavramlar başlıklı bölümü okumanızı öneririz.

.NET ile gerek derleyici firmaları, gerek programcıların temel alışkanlıkları radikal olarak değişmektedir. Buna en güzel örnek kullanılan dilin ve derleyicinin önemini büyük ölçüde yitirmiş olmasıdır. Dolayısıyla ister C#, ister VB.NET isterseniz şu ana kadar desteklenen 25'in üzerinde programlama dili ile uygulamanızı geliştirmiş olun, öncekine göre kullanılan derleyici ve dilin etkisi çok daha az olacaktır.

Hemen akla bunun bir tekelleşme çabası olduğu gelebilir. Tekelleşme vardır ancak ara kodun standartlaştırılması tekelleşmeyi beraberinde getiren doğal bir sebep olarak görülmelidir.


.NET ile ilgili merak edilen diğer bazı konuları burada açıklamak yerine Sıkça Sorulan Sorular ve Temel Kavramlar bölümlerine eklemeyi uygun gördük.
Microsoft .NET. Temel Kavramlar.

Microsoft .NET Windows sistemler üzerinde yapılan programlama mantığını radikal olarak değiştiren özellikler ve yapılar içermektedir. Bu değişimin temel bazı yapı taşları ve teknolojiler aşağıda açıklanmıştır.

Microsoft .NET. Temel Kavramlar.

Microsoft .NET Windows sistemler üzerinde yapılan programlama mantığını radikal olarak değiştiren özellikler ve yapılar içermektedir. Bu değişimin temel bazı yapı taşları ve teknolojiler aşağıda açıklanmıştır.

Kavram / Teknoloji Açıklama
Common Language Infrastructure (CLI) European Computer Manufacturer's Association tarafından belirlenen programlama dillerinin ortaklaşalığı standardı.

Bu standart aşağıdaki alanları içermektedir.

- Common Type System (CTS): Tiplerin ve nesnelerin farklı programlama dilleri tarafından paylaşımını sağlayan standart.

- Common Language Specification (CLS): Derleyicilerin ürettikleri kütüphanelerin yapısını belirten standart.

- Metadata: CLI uyumlu derleyiciler için assembly'ler içinde bulunan modüllerin kendilerini anlatmaları zorunludur. Modüller içerisinde bulunan metadata kullanılan tipleri vr özelliklerini içeren bilgidir.

- Common Intermediate Language (CIL): .NET derleyicileri tarafından üretilen, yüksek seviyeli, donanım bağımsız ara dil. Daha fazla bilgi için .NET Nedir ? klavuzuna başvurunuz.

- Virtual Execution System (VES): CIL'in derlemesini sağlayan sistem.
Common Language Runtime (CLR) Microsoft tarafından geliştirilen ve tasarlanan CLI.
.NET Framework Class Library Geniş ve zengin sınıflara sahip nesne tabanlı kütüphane.
ADO.NET .NET veri giriş standardı.
XML Web Hizmetleri XML (Extended Markup Language) kullanılarak farklı sistemler tarafından veri alışverişinin standart protokollerle yapılmasını sağlayan sistem.













Nesne Yönelimli Yaklaşım
Merhaba,

İlk makalemizde nesne yönelimli programlama (Object Oriented Programming) ve yaklaşım hakkında bazı temel bilgiler vereceğim.

Öncelikle .NET platformunda uygulama geliştirmeye başlamadan önce öğrenilmesi ve kavranılması gereken en temel konulardan birisi nesne yönelimli yaklaşımdır. Konu oldukça geniş ve detayları çok fazla olduğu için bu makalede sadece genel kavramlar üzerinde duracağım.

Programlama dillerini iki gruba ayırabiliriz. Birinci grup fonksiyon tabanlı (Function Based), ikinci grup ise nesne tabanlı diller olacaktır. Bu gruplar dışında ML, Scheme, Lisp, Prolog gibi farklı yaklaşımların sergilendiği diller de mevcuttur ancak bunlar bizim konumuzun dışında.

.NET platformunu destekleyen diller tamamen nesne yönelimli olduğu için bu konuya hakim olmanız farklı dillere geçişleri veya yeni bir dil öğrenmenizi oldukça kolaylaştıracaktır.

Bir projenin yaşam süresini 5 adımda değerlendirebiliriz. Bunlar

1. Çözümleme (Analysis)
2. Tasarım (Design)
3. Geliştirme (Development)
4. Test (Testing)
5. Bakım (Maintenance)

Bu aşamaların her birinde nesne yönelimli yaklaşım aktif rol oynamakla birlikte özellikle çözümleme, tasarım ve geliştirme bölümlerinde büyük önem kazanmaktadır. Bu adımların detaylarını bir başka makelemizde inceleyeceğiz.

Nesne yönelimli çözümleme (Object Oriented Analysis) ile problemlerin, kullanıcıların, hareketlerin genel yapısı nesnesel olarak ifade edilebilir.

Tasarım aşamasında temel olarak çözümlenen problemlerin detaylarına inilebilir, belirlenen nesnelerin özellikleri, metotları çıkartılabilir.

Geliştirme aşamasında tasarımı yapılmış olan nesneler herhangi bir programlama dili ile yazılabilir.

3 aşamada da aktif rol oynayabilen nesne yönelimli yaklaşım hiç bir zaman sadece geliştirme aşaması ile sınırlı kalmamalıdır. Aksi durumda projenin geliştirilme, test ve bakım süresi öngörülenden daha uzun olabilecektir.


Programlamaya Giriş

Programlama Dili Seçimi
--------------------------------------------------------------------------------

Nasıl tek bir dil bilmek yetmiyorda insanlar ingilizce, almanca öğreniyorsa bilgisayar dünyasında da tek bir dil bilmek yetmiyor. Günümüz programlama ortamlarında farklı dillerle yazılmış parçaları beraber calıştırabilmek mümkün olduğu için, en az iki programlama dili bilmeniz iyi olur. Dilinizi seçerken soracağınız sorular:
1- Ürününüz birden fazla işletim sistemini destekleyecek mi?
2- Ürününüz web, istemci/sunucu, tek başına calişabilecek biçimde dizayn edilecek mi?
3- Ürününüz en son yazılım tekniklerini ve teknolojilerini uygulayabilir mi?
4- Kullanmayı düşündüğünüz veritabanlarını destekliyor mu?
5- Yazılım aracı/dili için eğitim verecek kuruluş var mı?
6- Diploma, sertifika veriliyor mu?
7- Dünyada başka kimler kullanıyor?
8- Örütbağında arama yaptığınızda kaç tane sonuç dönüyor?
9- İş bulma sitelerinde, sizin düşündüğünüz yazılım aracı/dili ile ilgili ne kadar iş ilanı var.
10- Ürününüzü dünya genelinde satmayı düşünüyor musunuz?
11- Araç/dil bu dizayna izin veriyor mu?
12- Yazılım aracı/dili üreten firma ile birlikte başka hangi firmalar bu araca/dile destek veriyor.
13- Ne kadar para harcamayı düşünüyorsunuz.?

Buradaki araştırmaların hepsini Türkiye çapında değil dünya çapında yapın. En son versiyonları ve teknolojileri satın almaya bakın.

İkinci dil ile ilgili olarak tamamen karşıt bir firma/teknoloji seçin. Mesela VB ve Delphi, Java ve C++, C# ve Perl, PHP ve XML vs. İşletim sisteminide değiştirebilirsiniz. Mesela Linux/Kylix ve Windows/C++, Unix/Python ve Windows/XML, Linux/PHP ve Windows/HTML vs. Listeleri uzatmak mümkün.

Nasıl Başlanır
--------------------------------------------------------------------------------

Dilinizi seçtikten sonra ilk yapacağınız iş, ortama olan göz alişkanlığınızı kazanmak için menülerde ve ekranlarda gezinmeniz olacaktır. Burada ortam dediğimiz programlama yaptığınız dilin arayüzü olan IDE (Integrated Development Environment, Tümleşik Geliştirme Ortamı) hakkında bilgi sahibi olmak ve menülerde ne nerede bilgisini oluşturmak içindir. Eğer ingilizce biliyorsanız menüler üzerindeyken F1 tuşu ile yardim alabilir ve ne işe yaradığını öğrenebilirsiniz. Bundan sonra başlangıç seviyesi kitapları ile yola çıkarak adım adım dili öğrenmeye başlarsınız. Kitap dışında deneme-yanılma yolu ile küçük projeler yapıp, dilinizin nelere imkan verdiğini öğrenebilirsiniz. İlk başlarda cok fazla zaman harcayarak mümkün olan her şeyi deneyin. Belli bir seviyeye geldikten sonra, belli konuları daha derin öğrenmeye başlarsınız. Dili biraz öğrendikten sonra bıranşlaşma için, veritabanı, donanım, sistem, ticari programlama gibi konulara eğilebilirsiniz.

Kitaplar
--------------------------------------------------------------------------------

Her yeni başlayana tavsiye ettiğim yazarlar, İhsan Karagülle, Memik Yanık, Zeydin Pala dışında kullandığınız dilin üreticisinin kitapları yada 3. parti firmaların kitaplari çok yararlı olabilir. İlgilendiğiniz konularda referans kitaplarınızın bulunması ve ihtiyacınız olduğunda konu başlıklarını kullanarak yardım almanız çok iyi olur. Eger merkezlere uzak yerlerde oturuyorsanız örütbağ üzerinde sipariş verebileceğiniz yerler oldukça fazla. Aldığınızın kitapların yayınevlerinin sitelerinden kitapla ilgili düzeltme var mı kontrol edin.

Örütbağ Üzerinde
--------------------------------------------------------------------------------

E-posta listeleri çok yararlıdır ve teknolojileri günlük takip etmenizi sağlar. Özellikle Microsoft, Rational, IBM, CA, Inprise gibi büyük firmaların gazete e-postalarına üye olmanızı tavsiye ederim. Bu sayede yeni ürünler çıktığında veya seminerler olduğunda hemen haberiniz olur, ayrıca gidip bu firmaların sitelerinde debelenmekten kurtulursunuz. Haber sunucuları, programlamaya özel siteler'de işinizi görür. Önemli olan bir şekilde teknolojileri takip etmek ve güncel konulardan haberdar olmak. Yahoo gibi sitelerin gruplarına da bakabilirsiniz. Hangisinde daha fazla üye ve mesaj varsa ona üye olun.

Teknolojiler
--------------------------------------------------------------------------------

Seçtiğiniz programlama dili ile son teknolojileri uygulamak mümkün mü? Fazla kod değişikliği yapmadan hem internet ortamını hem istemci/sunucu yapılarını destekleyebiliyor musunuz? Yada daha da önemlisi seçtiğiniz dil ile, bitmek tükenmek bilmeyen müşteri isteklerine cevap verebilecek misiniz. Platformlar arası veri alisverişi konularına destek veriyor mu? Hangi veritabanlarını destekliyor? Yada sizin istediğiniz veya kullanmayı düşündüğünüz veritabanını tam olarak destekliyor mu? Teknoloji demekle neyi kastediyoruz. ActiveX, SOAP, COM, DCOM, COM+, .NET, Web Services, RMI, IIOP, TCP/IP vs. gibi pek çok metod bahsettiğimiz teknoloji alanina girer. Seçtiginiz dil ile bu teknolojilerden bazılarını desteklemek istiyor musunuz?

Analiz
--------------------------------------------------------------------------------

Program yazarken kullanacaginiz analiz metodolojileri en az kodlama yapmak kadar önemlidir. İster yolun başında bir programcı adayı olun ister programlama konusunda uzman olun metodoloji ve o metodolojiyi doğru uygulamak çok önemlidir. İyi yazılım, iyi bir analiz ile başlar. Analiz sizin programınızla neler yapacağınızın ve müşterinin problemlerine nasıl çözüm getireceğinizin bir taslağıdır. Analiz iş senaryolarınızı ortaya çıkarmanıza ve müşteri isteklerine daha iyi cevap vermenizi sağlar. Analiz Metodolojileri nelerdir? Ornegin Modül Tabanlı Analiz (CBD, Component Based Development), Nesne Tabanli Analiz (OOA, Object Oriented Analyse), Unified Modelling Analiz (bunun Türkçe'sine UM Analiz diyelim, pek iyi olmadi ama!), eXtreme Programming (Yazılım dünyasında XP olarak biliniyor fakat Windows XP ile çakışıyor). Bu metodolojileri doğru biçimde projelerinizde uygularsanız verimlilik ve zamanında yetiştirmek açısından pek sorununuz olacağını zannetmiyorum. Yukarıda bahsettiğim konuları tek tek açiklayan makalelerde yazacağım.

Düzenli Çalışma
--------------------------------------------------------------------------------

Kendinize bir hedef vermeden bilgisayarın başına oturmayın. Hedefinizi belirleyip ona göre yol alın. Projelerinize hep bir isim verin ve anlamlı bir isim verilmiş bir dizine kaydedin. Form'larınızın isimlerini ve başlıklarını muhakkak değiştirin. Bu sayede farklı formları farklı projelerde kullanmak istediğinizde isim çakışmaları olmaz. İsimlerden formlarınızın ne işe yaradığını kolayca anlayabilirsiniz. Her yiğidin bir yoğurt yiyişi olduğu gibi ordularında uyulması gereken kuralları vardır. Bir yazılım firmasında çalışmaya başladığınızda, ilk yapacağınız şey firma standartlarını öğrenmektir. Bu sayede ekip içi bilgi alış verişi hızlı ve kesin olur.

Dökümantasyon
--------------------------------------------------------------------------------

Yaptığınız çalışmaları, ufak projeleri kısacası ileride kullanabileceğiniz her kod parçasını yazıya dökün ve ne işe yaradığını, nasıl calıştığını, amacının ne olduğunu ister kodun içine yorum satırı olarak, ister bir word dosyasına yazarak saklayın. Hangisi pratik geliyorsa. Bu tür bir çalışma ileride bir kod parçasına ihtiyacınız olduğunda kolayca bulmanızı sağlar.

İngilizce Kaynaklar
--------------------------------------------------------------------------------

Yabancı dil bilmek pek çok konuda işimize yaradiği gibi, programlama konusunda da işimize yarayacaktır. Fakat öyle sular seller gibi bilmeye veya konuşurken aksanlı konuşucam diye ağzımızı burnumuzu bükmenin anlamı yok. Sonuçta bizler Türk'üz ve konuşurken yabancı olduğumuzun anlaşılmasıda gayet doğal ve gereklidir. Yabancı dil bilgimiz, konumuzdaki yabancı yayınları takip edecek ve derdimizi anlatabilecek kadar olsa yeter. Bu nasihatlerden sonra gelelim yabanci yayınlara, örütbağ üzerinde bir arama ile pek çok yayına ulaşabilirsiniz. Bunların dışında Microsoft yayınları ve kitapları, Wrox yayinevinin kitapları, Visual Studio ile gelen MSDN (Microsoft Developer Network, Microsoft Gelişitirici Aği) tıkızları çok işinize yarayabilir. Inprise ürünleri ile birlikte gelen yardım dosyalarıda çok yararlı olabilir. Ek olarak firmaların sitelerinde her zaman deneme sürümlerinin tıkızlarının adresinize postalanması için gerekli formları bulup doldurabilirsiniz. Ayrıca pek çok teknik dokumanı, gerçek projeleri, eğitimle ilgili yazıları bilgisayariniza indirebilirsiniz. Firmaların Türkiye temsilciliklerinden birer bağlantıya sahip olmanızda iyi olur.

Kurslar
--------------------------------------------------------------------------------

Kursların piyasa tarafından tanınmış ve verdikleri sertifikaların dünya çapında geçerli olmasına dikkat edin. Çalışmalarınızın kurs ile sınırlı kalmaması için, evinizde de bazı projeler geliştiriyor olmanız gerekir. Türkiye'de çoğu büyük şehirlerde pek çok kurs mevcut. Kurs ile birlikte çevrenizde oluşacak arkadaş grubu iyi bir yönlendirme ile birlikte iyi projelere imza atabilir. Unutmayın çevrenizdeki grup ileride iş arkadaşlığına dönüşebilir.

Amatör Ruhu
--------------------------------------------------------------------------------

Hangi işle uğraşıyor olursanız olun, dünyanın en kötü şeyi, uğraştığınız alanda her şeyi bildiğinizi iddia etmek olacaktır. İşte bu tür adamlardan uzak duracaksınız. Hayat zaten kendi içinde bir okul bizlerde bu okulun öğrencileriyiz. Her zaman öğrenecek yeni şeyler olacak. Bazen hiç ummadığınız bir çıraktan birşeyler kapabilirsiniz. Yada artık kendinizi programlama hakkında ermiş olarak gördüğünüz anda bir çırak çıkıp algoritmalarınızın şöyle şöyle yaparsanız daha hızlı çalışacağını söylemesi sizi yerin dibine sokabilir. Ne yapmak gerekir, çırağı karşınıza alıp teoremleri hakkında konuşursunuz ve sonuçta gerçekten haklıysa dediklerini uygulayıp dersinizi alırsınız. Daha sonra bu dersi başka çıraklara aktarmak üzere tabii. Öğrenmekten ve doğru bildiğiniz şeylerin aslında yanlış olduğunu anladığınızda değiştirmekten çekinmeyin. Yanlışları bulan kişileri tebrik edin ve daha fazla yanlış bulmaları için yönlendirin. Ancak bu şekilde ilerleme kaydedebiliriz.

Ben Neler Yapiyorum
--------------------------------------------------------------------------------

Gelelim bu kadar bilgiden sonra ben bunları ne kadar uyguluyorum. Dil olarak seçimlerim VB.NET ve C#. Bunlarla birlikte XML ve SOAP, Web Services gibi teknolojileri öğrenmeye çalışıyorum. İşletim sistemi olarak, Windows ve Red Hat Linux ortamlarını seçtim. Web Sunucu için Linux üzerinde Apache Web Server, Windows üzerinde IIS kullanıyorum, bir yandan ASP ile takılırken diğer yandan Linux üzerinde Java Bean ve EJB nasıl yayınlanır araştırıyorum. İlerde Java dilini de oğrenme planım var. Veritabani olarak Linux/IBM DB2 ve Windows/SQL Server kullanmaya calşıyorum. UML, OO, CBD metodolojilerinde de calışmalarım var. Araç olarak, Rational, CA, Microsoft, IBM, BEA ürünlerini kullanıyorum. Tabii ki tek bilgisayar yetmiyor. En az 3 adet lazım, bir tanesi çift işletim sistemli ve hepsi ağ ile birbirine bağlı. Bilgisayarlardan birini çöpten buldum.

Sizde böyle bir sistemi bir kaç arkadaş birleşip kurabilirsiniz. Birde rahatça girip çıkabileceğiniz bir oda buldunuzmu, iş proje bulmaya kalıyor. Mahallenizdeki esnaf ile hiç bu konuları konuştunuz mu? Toplumumuzun gelişmesi ve yeni şeyleri öğrenmesi birazda size bağlı. Mahalle esnafına bilgisayardan ve özel yapılmış programların yararlarından bahsettiniz mi? E-posta, internet, işletim sistemi gibi konularda onları bilgilendirmeyi hiç düşündünüz mü? Birazda misyonerlik gibi bir göreviniz var aslında. Etrafınızdaki insanlara bildiklerinizi aktarmayı hiç düşündünüz mü?

Sonuç
--------------------------------------------------------------------------------

Yukarıda anlattığım yöntemler her yazılımcının alet çantasını geliştirmesi için çok güzel yöntemler. Fakat nasıl evinizde bir tamirata giriştiğinizde alet çantasındaki her aracı kullanmıyorsanız, yazılımcı olarak alet çantanızı da o şekilde kullanacaksınız. Öğreneceğiniz her bilgi alet çantanızda yerini alacak ve yeri geldiğinde çıkarıp kullanmaktan çekinmeyeceksiniz. Bu arada aletlerinizde gelişmelerde olabilir, zaman içersinde bazılarıda yok olabilir. Önemli olan sürekli devinim içinde öğrenmeye ve gelişmeye açık olmaktır.

Hepinize kolay gelsin

Formdan veri okuma

<script language="VB" runat="server">
Sub Page_Load(Src As Object, E As EventArgs)
gosterge.visible=false
End Sub
Sub Kaydet_Click(sender As Object, e As EventArgs)
gosterge.visible=true
gosterge.Text="Kaydınızı yapıldı!"
End Sub
Sub Terket_Click(sender As Object, e As EventArgs)
gosterge.visible=true
gosterge.Text="Ayrıldınız!"
End Sub
</script>
<html><head>
<title>TextBoxes</title>
</head>
<body bgcolor="#FFFFFF">
<asp:Label ID="gosterge" forecolor="red" Font-Name="Verdana" Font-Size="10" runat=server />

<form runat="server">
Adınız
<ASP:TextBox id=Ad runat=server /><br>
Soyadınız
<ASP:TextBox id=Soyad runat=server /><br>
Email Adresi
<ASP:TextBox id=Email runat=server /><br>

<ASP:Button id=kaydet text="Kaydet" OnClick="Kaydet_Click" runat=server />
<ASP:Button id=terket text="Terket" OnClick="Terket_Click" runat=server />

</form>
</body></html>

Veri Tabanı Bağlantısı

ASP ve Visual Basic dillerinde görmeye alışık olduğumuz veri tabanı bağlantı şekli .NET?in hayatımıza girmesiyle birlikte çok daha anlamlı ve kolay bir şekil aldı.

Artık .NET?in getirdiği bu yenilikleri kullanarak .NET altında yer alan tüm dillerde ortak bir bağlantı şekli kullanabiliriz. Bunun anlamı veri tabanı işlemleri için kullandığınız bir class?ı ister web uygulaması olsun ister windows uygulaması olsun tüm programlarınızda rahatlıkla kullanabilirsiniz.

.NET? de Veri Tabanı Bağlantı Şekilleri


ADO.Bu kelimeye asp ve visual basic ile uğraşan çoğu kişi aşikardır.

ADO ile tüm veri tabanı işlemlerimizi tek bir çatı altında toplayabiliriz.Mssql,oracle,odbc ve diğerleri.Bu yazıda Sql bağlantısı ve OLE Provider bağlantıları üzerinde duracağım.

Bu işlemler için öncelikle Data adalanını programımıza eklememiz gerekir.

using System.Data;
sonrasında iki farklı bağlantı şeklinden birini seçeceğiz.

SqlClient

Adından da anlaşılacağı gibi bu bağlantı şekli sadece Msqql Server?a bağlanıp işlemler gerçekleştirmemizi sağlayan class?ları içerir.

OleDbConnection

Bu bağlantı şekli ile Mssql ve diğer veri tabanlarına bağlantı sağlayabiliriz.Access,Excel, gibi. Makinamızda yüklü olan odbc sürücüleri ileride göreceğimiz provider parametresini oluşturacaktır.

Komut yapısı olarak pek fark yoktur.Sadece komutların başlangıçları değişiktir.

OledbConnection
SqlConnection
gibi.

Bunun yanında SqlConnection kullanacak isek ilgili adalanını projemize dahil etmemiz gerekecektir.

using System.Data.SqlClient;
Aynı tanım OleDbConnection için şu şekildedir.

using System.Data.OleDb;
OleDbConnection


using System;
using System.Data;
using System.Data.OleDb;
tanımlamaları ile programımıza gerekli classları dahil ediyoruz. İzlememiz gereken yolu genel olarak aşağıdaki gibi sıralayabiliriz.

Database ile Connection kurmak
Database bağlantısını açmak
Bir komut isteği oluşturmak.
İsteği Database?e yollamak ve sonucu almak
1) OleDbConnection baglanti=new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:veriveritabani.mdb");
2) baglanti.Open();
3) OleDbCommand cmd=new OleDbCommand("select * from ogrenci",baglanti);
4) OleDbDataReader rdr=cmd.ExecuteReader();

1) Yukarıdada bahsettiğimiz gibi Database ile bir connection kuruyoruz.Bu bağlantıyı SqlServer için yapsaydık,

OleDbConnection baglanti=new OleDbConnection(@"Provider=SQLOLEDB;Persist Security
Info=False;User ID=KULLANICIADI;Current Language=Türkçe;
Initial Catalog=DATABASE_ADI;Password=DATABASE_ŞİFRESİ;Data Source=SERVER_ADI
ya da SERVER_IP");
şeklinde olacaktı.

2) Oluşturduğumuz bağlantı açılıyor. Bağlantıyı açmadan diğer işlemleri yapamayız.Artık bağlantı bilgimiz baglanti değişkenimizde saklıdır.

3) Yeni bir komut isteği oluşturup sql cümleciğini database?e iletiyoruz.

4) Son olarak ta database?e yolladığımız komutun sonucunu alıyoruz. Burada izlenen üç farklı yol vardır.Aslında bu farklılığın nedeni database üzerine yolladığımız sql cümleciğinin şeklidir.

Bu farkları şöyle sıralayabiliriz.

ExecuteReader():Bir ya da birden fazla satır-sutun şeklinde bilgi dönüyorsa
Genellikle SELECT komutunu uyguladığımızda bu şekilde sonuç döner.

ExecuteScalar():Geriye sadece tek kolon tek satırlık bilgi dönüyorsa
Bu komutu genellikle max(),min(),sum() gibi sql fonksiyonları kullanıldığında ya da tek satır ve sutun halinde bilgi döndüren sql komutlarında kullanabiliriz.

ExecuteNonQuery():Geriye bilgi dönüşü yok ise
Bu komutu da geriye bilgi döndürmeyen UPDATE,DELETE gibi sql komutlarıyla kullanabiliriz.

ExecuteReader() şeklinde bilgi alıyorsak bu sonucu OleDbDataReader() tipinde bir değişkene aktarmalıyız.

OledbDataReader rdr=cmd.ExecuteReader();
Bundan sonrası bildiğimiz ADO işlemlerinden biraz farklıdır. Kayıt başına konumlanma ya da bulunduğun satırı bir arttırma gibi işlemlerin hepsi artık tek bir komutla yapılmakta. while




Bu sayfa için henüz yorum eklenmemiş.

© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin