Derya GUNDUZ

ESKİŞEHİR OSMANGAZİ ÜNİV. BİLGİSAYAR MÜHENDİSLİĞİ 4. sınıf öğrencisiyim.

Web ortamındaki gelişmeleri üç safhada inceleyebiliriz:

  1. Belge Web’i (Document Web) : Web’in en ilkel halidir. Bu web türünde bilgi sadece okunabiliyordu,bilgi      üzerinde değişiklik yapmak mümkün değildi.yani HTTP protokolü ile HTML dilinde biçimlendirilmiş statik belgelerin kullanıcılara sunuluyordu.
  2. Uygulama Web’i (Application Web) :dinamik HTML belgeleri ile kullanıcı ve iş uygulaması arasında etkileşim sağlandı.Bilgi üzerinde okuma ve bilgi yazma imkanı verdi.
  3. Servis Web’i (Services Web) : İşletmelerin diğer işletmelerle olan iş süreçlerini bütünleştirme gereksinimi sonucunda ortaya  çıkan ve gelişmekte olan yeni yapıdır.  Bu yapının temel taşı web servisleridir.

Web servisleri Nedir?

W3C  (World Wide Web Consortium)  tarafından yapılan resmi tanımıyla web servisi, bilgisayarlar arasında ağ üzerinden etkileşimi ve uyumluluğu sağlayacak yazılım sistemidir.Web servisleri programların etkileşimi sağlamaktadır.Web servisleri sayesinde farklı veri tabanındaki bilgiler çekilebilir.

Web servisler içinde metodlar barındırır ve client bir istekte bulunduğunda bu metodlar ile client isteğine yanıt vermiş olur.



Web servislerinin en büyük avantajı:Web servislerinin en büyük avantajı  Xml  (extensible Markup Language-genişletilebilir etiketleme dili) tabanlı olmasıdır.Xml, kişilerin kendi etiketlerini tanımlayarak bu etiketler ile hiyerarşik yapı kurabildikleri ,bunları istedikleri zaman değiştirebildikleri ; esnek, teknolojiden -platformdan bağımsız text tabanlı bir meta dilidir.Xml tabanlı olması beraberinde platform bağımsız olmayı da getirir.

Platformdan bağımsız derken ne kastettiğimi biraz daha açmak istiyorum:Günümüz teknolojisi o kadar zenginleşti ve çeşitlendi ki…..Farklı farklı işletim sistemleri,programlar… Bunlar bir yana bir programın bile birden çok farklı versiyonu var. Bu kadar çeşitliliğin olması şüphesiz yanında uyum problemlerini getirecektir.Bir dosyayı aynı programın farklı versiyonlarında çalıştırmak istediğimizde bile zaman zaman problem yaşamaktayız,kaldı ki farklı program ve işletim sistemlerinde yaşanmasın.Bütün teknolojilerde ortak olarak açılan ve çalışan tek dosya türü text dosyalarıdır(notepad).Ama notepad ile en basitinden bir tablo oluşturup bunun üzerinde çalışmak istediğimizde bile bu tabloyu organize etmek baya bir zor olacaktır:kolonların sırası kayabilir,karışabilir….Bunun yerine tablolarımızı hiyerarşik yapı ile xmle atmak işimizi bayağı bir kolaylaştıracaktır.Xml verinin hızlı bir şekilde sogulanmasını,değiştirilmesini,transfer edilmesini,verinin içerik bilgisi ile saklanmasını(bu noktada htmlden ayrılır) sağlar.Xmlin güzel yanlarından birtanesi de uluslararası bir standarttır ve evrensel bir formattır ve firewallara takılmaz(text tabanlı olmasından kaynaklı).

Web Servisinin İşleyişi :

1.       Eğer kullanılacak XML Web Servisinin adresi bilinmiyorsa bir UDDI dizini yardımı ile bir XML Web Servisi bulunur.

2.       Discovery dosyasına (.disco) yapılan istek ile web servisinin tanımlama dosyasına yönelinir.

3.       Web Servisinin açıklama dosyası olan WSDL dosyasına istek yapılır. Servis biçimi öğrenilir.

4.       Artık XML Web Servisinin metodları çalıştırılmaya hazır olarak istemcinin hizmetindedir. XML Web servisinin metodları çalıştırılır.

Web Servis Kullanımı:Web Servisi(metodları) yazıldıktan sonra proje referans olarak eklenir.Referans olarak ekledikten sonra web servis metodlarına projeden erişilip metodlar kullanılabilir.Küçük bir örnek ile web metodun nasıl göründüğü ile fikir edinmek gerekirse:

public class Service1 : System.Web.Services.WebService

{

[WebMethod]

public int Toplam(int a, int b)

{

return a+b;web

}

[WebMethod]

public int Cikarma(int a, int b)

{

return a – b;

}

.

.

.

Web servis çalıştırılınca şekildeki gibi görünür.

Web servis kullanmak için eklenmesi gereken kod parçası,

localhost.Service1 ws = new localhost.Service1();

Metodlar da şu şekilde kullanılır:

label1.Text = ws.Toplam(a, b).ToString();

Web servis eklendikten sonra şu şekilde görünür:

Web Servisi Standartları:

Web Servisi = SOAP + WSDL + UDDI

SOAP(Simple Object Access Protocol): SOAP distributed (dağıtık) uygulamalarda ve web servislerinin haberleşmesinde kullanılmak üzere tasarlanan, istemci/sunucu mantığına dayalıbir protokoldür.. SOAP protokolü sayesinde web servisleri, basit ve mesaj tabanlı bir iletişim sağlar. SOAP’ı benzeri protokollerden ayıran en belirgin ve üstün özelliği yapısının  SOAP’ı benzeri protokollerden ayıran en belirgin ve üstün özelliği yapısının  XML üzerine kurulu olmasıdır.

Soap’da header ve body kısımları vardır.Body kısmına mesajın ne olduğu yazılır.Güvenlik amacı ile Soap Headera kullanıcı adı ve şifre gömülebiliyor.

WSDL(Web Services Description Language):Bir uygulamada web servisini kullanabilmek için web servisinin hangi protocolleri içerdiğini,arayüzünün nasıl olduğunu,nasıl çağrılabileceğini bilmek gerekir.Bu noktada UDDI’ya ihtiyaç duyulur.UDDI web servisi tanımlamalarını tutn bir protokoldür.

UDDI(Universal Description Discovery and Integration): UDDI kurumların kendilerini ve sağladıkları servisleri yayınlayarak tanıtamalarını, ve bu bilgilerin daha sonra diğer kurumlarca taranıp bulunmasını sağlayan bir standarttır.

DERYA GÜNDÜZ

BİLGİSAYAR MÜHENDİSLİĞİ 4. SINIF

deryagunduz.blogspot.com

<map> tagı  bir resim ya da harita üzerinde tıklanabilir alanlar oluşmasını  sağlayan bir tagdir.<map>  tagında olması gereken attribute “name”dir.<map> tagı <img> tagının “usemap” attributesi ile birlikte kullanılır.

<map> tagı ile <area> tagı yardımıyla tıklanabilir alanlar oluştururuz. Tıklanabilir alanlar tıklandığı zaman başka bir image’a yönleniyor.Harita ve image arasında bağlantı sağlanmış oluyor.

w3school.com adlı siteden bir örnekle daha ayrıntılı bir şekilde anlatmaya çalışacağım.

Elimizde 3 tane gezegen resminin olduğu bir resim var.Bu resimde 3 tane  tıklnabiir alan var:sun,mercury,venus.

Kullanıcı hangisine tıklarsa o gezegenle ilgili resme  yönleniyor.

Tıklanabilir alan oluşturulan resim(harita):

güneş

mercur

venus

<map name=”planetmap”>

//burda yazılan name img tagınının “usemap” attributesinde kullanılacaktır

<area shape=”rect” coords=”0,0,82,126″ alt=”Sun” href=”sun.htm” />

<area shape=”circle” coords=”90,58,3″ alt=”Mercury” href=”mercur.htm” />

<area shape=”circle” coords=”124,58,8″ alt=”Venus” href=”venus.htm” />

</map>

<img src=”planets.gif” width=”145″ height=”126″ alt=”Planets” usemap=”#planetmap” />

Böylece hangi nesneye gidilirse onun resmi açılacaktır.

DERYA GÜNDÜZ

Javascript c ve benzeri dillerdeki fonksiyon işlevini görmektedir.Javacripte yazdığınız işlevleri html kısmında fonksiyon adı ile çağırırsınız,böylece fonksiyondan yapmasını istediğiniz şey uygulanmış olur.Javascript kodları <head> tagi arasına yazılır.Basit bir hesap makinası örneği ile Javascriptin genel mantığı ile ilgili bir fikriniz olabilir:

<html>

<head>

<title>Untitled</title>

<script type=”text/javascript”>

function   addition()

{

s1=document.getElementById(“textbox1″).value;

//textboxa verilen id değeri yardımıyla oraya yazılan değer alınıyor

s2=document.getElementById(“textbox2″).value;

textboxresult.value=parseInt(s1)+parseInt(s2);

//değerler var tipindedir,onlara işlem yaptırtmak için int çevirmek gerekiyor

}

function   subtraction()

{

s1=document.getElementById(“textbox1″).value;

s2=document.getElementById(“textbox2″).value;

textboxresult.value=parseInt(s1)-parseInt(s2);

}

function   multip()

{

s1=document.getElementById(“textbox1″).value;

s2=document.getElementById(“textbox2″).value;

textboxresult.value=parseInt(s1)*parseInt(s2);

}

function   division()

{

s1=document.getElementById(“textbox1″).value;

s2=document.getElementById(“textbox2″).value;

if(s2==0)

alert(“donomioater cant be ,change the value”)

else

textboxresult.value=parseInt(s1)/parseInt(s2);

}</script>

</head>

<body>

<input  type=”text”  id=”textbox1″ >

</br>

<input  type=”text”  id=”textbox2″ >

</br>

<input type=”button”  id=”buttonadd” value=”+” onclick=”addition()”>

<input type=”button”  id=”buttonasub” value=”-” onclick=” subtraction()”>

<input type=”button”  id=”buttonamul” value=”*” onclick=”multip()”>

<input type=”button”  id=”buttondiv” value=”/” onclick=”division()”>

</br>

<input  type=”text”  id=”textboxresult” >

</body>

</html>

Cell Array‘in türkçesi “Hücre Dizisi” demektir.Dizi oluştururken dizinin içine aynı tipten veriler atardık.Cell Arraylerde alışılmışın dışında tek tip veri yazmak zorunda değiliz, birbirinden farklı veri tiplerini içeren bir dizi oluşturabilme imkanı sağlar.Kullanımı şu şekildedir:

ca={4,[1 2 3;4 5 6],’derya’,'c’}  %   gördüğünüz gibi oluşturduğum dizide integer,matrix,string veri tiplerini bir arada kullandım.

matlab ekranına yukarda yazdığım kodu yazarsanız şöyle bir çıktı alırsınız:

ca =

[4]    [2x3 double]    ‘derya’    ‘c’

Diğer dizilerde olduğu gibi cell arraylerde istediğiniz elemana ulaşabilmeniz mümkündür,şu şekilde ulaşabilirsiniz:

ca{2}

Şöyle bir çıktısı olacaktır:

ans =

1     2     3

4     5     6

Eleman olan matrixin tek elemanına da ulşamak mümkündür:

ca{2}(2,2)

ans =

5

Hatta cell arraye eleman olarak başka bir cell array yazmak da mümkündür:

bigca={ 2,’derya’,ca,[1 2 3;3 4 5] }

bigca’den ca deki  elemanlara da ulaşabilmek mümkündür,ca deki matrixdeki herhangi bir elemana ulaşmak istersek:

bigca{3}{2}(2,2)

ans =

5

Bir de “cellplot” denen bir konut vardır bu da dizinizin şekilsel gösterimini verir,bizim oluşturduğumuz ca ve bigca in nasıl gözüktüğüne bir bakalım:

cellplot(ca)

cellplot(bigca)

Num2cell” adındaki komut da normal olarak yazılmış ifadeleri(matrix ya da integer tipinde veriler olabilir) cell arraylere çevirir,kullanımı şu şekildedir:

num2cell([1 2 3;4 5 6])

ans =

[1]    [2]    [3]

[4]    [5]    [6]

Cell array oluşmuş oldu.

DERYA GÜNDÜZ

Matlab’da kendimizin oluşturduğu fonksiyonları bir m-file’a kaydedip o şekilde kullanmak çoğu açıdan daha fonksiyoneldir.Bu m-file‘ı oluşturuken dikkat edilmesi gereken birkaç önemli nokta var,bunları maddeleyerek anlatmak istiyorum:

  • m-file’ı fonksiyona verdiğiniz ismi ile kaydetmelisiniz,örneğin fonksiyonun ismi “f” is “f.m”  şeklinde kaydetmelisiniz,
  • kod yazmaya “function” ile başlamalısınız, örneğin;

function y=f(x)

y=x+3

  • m-file içinde tanımladığınız tipler oranın içinde geçerlidir yani localdir,başka yerden ulaşmazsınız,
  • kaç tane input ve output kullanmak istediğinizi siz belirlersiniz,

function [x,y]=fon(a,b,c)                  %    burda fon fonksiyonu için 2 output ve 3 input vardır

x=a+b+c

y=30-x

command window’da fonksiyonu kullanırken de(birden fazla input ve outputu olanlar için)

x=fon(1,2,3)             %  x=6

ya da

[x,y]=fon(1,2,3)      % x=6 ve y=-24 sonucunu alırsınız

  • kendi oluşturduğunuz fonksiyonda yazdığınız yorum satırlarını “help fon” dediğinizde görüntüleyebilirsiniz,fonksiyonunuzu daha da fonksiyonel hale getirmiş olursunuz,fakat burda yazdığınız ilk blok help dediğiniz kısımda görünür,

  • nargin(number of input arguments) fonksiyonda kaç tane input kullanıldığını geri döner,çeşitli kontroller de yapılabilir.

function x=fon(a,b,c)

if nargin==3

x=a+b+c

else

disp(‘yazılan argumenler yetersiz’)

end

gibi bir örnek verilebilir.

  • nargout(number of output arguments),kaç tane output kullanıldığı bilgisini geri döner,
  • kullanılacak olan input ve output sayısını  varargout,varargin kullanarak tam  olarak belirtmesek de olur,

function varargout=fon(varargin)                %şeklinde tanımlama yapılır ve isteğe göre kontroller yapılabilir

DERYA GÜNDÜZ

Benim ihtiyaç duyduğum gibi siz de zaman zaman  diskinizi parçalara bölüp,birbirinden bağımsız işlerde kullanamak isteyebilirsiniz.Bu işlemleri şuan kullandığım işletim sistemi olan Windows Vista üzerinden resimler yardımıyla anlatmaya çalışacağım,birkaç basit işlemden sonra diskiniz parçalara bölünmüş olacaktır ve istediğniz şekilde kullanabileceksiniz:

ilk başta   bilgisayarımda iki tane disk var,biri işletim sistemimin kurulu olduğu disk,diğeri de E diski,E diskini ikiye bölüp birini yükleyeceğim programları kurmak için kullanmak istiyorum.







Bu işlemi başlatmak için Bilgisayarım/ters tıkla/Yönet diyorum:çıkan menüden Disk Yönetimi/bölmek istediğin disk ters tıkla/Birimi Küçült








Küçültmek istediğiniz miktarı yazdıktan sonra Küçült seçeneğini tıklayınız.Tıkladıktan sonra küçülttüğünüz miktar kadarı ayrılmış olyor fakat bunu biçimlendirmek gerekecektir.Ayrılmış ve harfi olmayan birimin üzerine gelip ters tıkla/Yeni basit birim seçeneği tıklanır








Gerisi Windowsun genel kurulum mantığındaki Next Next gibidir.








Diske verilecek harf seçilir







Son aşamaya da Son dedikten donra,biçimlendirme işlemi başlayacaktır








Biçimlendirme işlemi için bir süre beklemeniz gerekecektir ,bu süre yaklaşık 4-5 dakika kadardır






Birim küçültme işlemi sonlandıktan sonra,E diski,D ve E olmak üzere iki parçaya ayrılmış oldu.







İşte son hali:






Disk bölme işlemi,tamamen aynı olmasa bile windowsun diğer işletim sistemlerinde yaklaşık olarak bu şekildedir.

DERYA GÜNDÜZ

 

Bağımsız bir kuruluş olan W3C (World Wide Web Consortium) organizasyonu tarafından tasarlanan ve bağımsız bir yapıya sahip olan XML (extensible Markup Language),kişilerin kendi etiketlerini tanımlayarak bu etiketler ile hiyerarşik yapı kurabildikleri ,bunları istedikleri zaman değiştirebildikleri ; esnek, teknolojiden -platformdan bağımsız text tabanlı bir meta dilidir. Xml açılımının içerdiği “markup” onun tagler ile kullanıldığını,”exensible” de onun genişletilebildiği yani standart taglerin değil de kendimizin oluşturduğu farklı tagleri de kullanabileceğini ifade eder. Html de bir markup dilidir fakat Xmli Htmlden ayıran en önemli özellik standart taglerin değil de kişilerin tanımladıkları taglerin kullanabiliyor olmasıdır.

Şimdi teknolojiden-platformdan bağımsız derken ne kastettiğimi biraz daha açmak istiyorum:

Günümüz teknolojisi o kadar zenginleşti ve çeşitlendi ki…..Farklı farklı işletim sistemleri,programlar… Bunlar bir yana bir programın bile birden çok farklı versiyonu var. Bu kadar çeşitliliğin olması şüphesiz yanında uyum problemlerini getirecektir.Bir dosyayı aynı programın farklı versiyonlarında çalıştırmak istediğimizde bile zaman zaman problem yaşamaktayız,kaldı ki farklı program ve işletim sistemlerinde yaşanmasın.Bütün teknolojilerde ortak olarak açılan ve çalışan tek dosya türü text dosyalarıdır(notepad).Ama notepad ile en basitinden bir tablo oluşturup bunun üzerinde çalışmak istediğimizde bile bu tabloyu organize etmek baya bir zor olacaktır:kolonların sırası kayabilir,karışabilir….Bunun yerine tablolarımızı hiyerarşik yapı ile xmle atmak işimizi bayağı bir kolaylaştıracaktır.Xml verinin hızlı bir şekilde sogulanmasını,değiştirilmesini,transfer edilmesini,verinin içerik bilgisi ile saklanmasını(bu noktada htmlden ayrılır) sağlar.Xmlin güzel yanlarından birtanesi de uluslararası bir standarttır ve evrensel bir formattır ve firewallara takılmaz(text tabanlı olmasından kaynaklı).

Bir dosyanın xml dosyası olduğu dosyanın başında yazan <?xml version=”1.0″ encoding=”utf-16”?> ifadesinden anlaşılır.Htmldeki gibi açılan tag kapanmalıdır.Genel anlamda xml dosya akışı şu şekilde olur.

dosya akışı şu şekilde olur.

<?xml version=1.0 encoding=utf-8 ?>

<kategoriler>

  <kategori>

    <kategoriID>1</kategoriID>

    <kategoriAdi>meyveler</kategoriAdi>

  </kategori>

  <kategori>

    <kategoriID>2</kategoriID>

    <kategoriAdi>sebzeler</kategoriAdi>

  </kategori>

</kategoriler>

Veri tabanından veri çekerek xmle yazdırılabilir ve gerektikçe xmlden okunabilir.Bu şekil bir kullanım daha mantıklı olacaktır,çünkü veri tabanından bilgi almak istediğimizde program her defasında veri tabanına bağlanmak zorunda kalacaktır,oysa ki bir defa bağlanıp veri tabanındakileri xmle yazdırıp gerektikçe xmlden okumak performans,veri tabanını çok meşgul etme ve daha birçok açıdan daha olumlu sonuçlar yaratacaktır.Bu okuma ve yazdırmaları yapmak üzere tanımlanmış “ReadXml ve WriteXml” nesneleri vardır.

WriteXml şu şekilde kullanılır:

SqlConnection conn = new SqlConnection(“server=derya-pv\\sqlexpress;database=Northwind;integrated security=true”);

            SqlDataAdapter adp = new SqlDataAdapter(“select CategoryID,CategoryName from Categories”, conn);

            DataSet dt = new DataSet();

           adp.Fill(dt);

            dt.WriteXml(dosya);

Böylece veri tabanındaki bilgiler xmle yazılmış oldu.Her veri çekmek istediğimizde “ReadXml” ile verileri xmlden alıp işleyebiliriz.Yada satır satır okuma ve yazma yapmak için XmlTextReader ve XmlTextWriter da kullanılabilir.

Oluşturulan Xml üzerinde update,delete işlemleri için de “XmlDocument” ve “XmlNode” nesneleri oluşturulup kullanılır.

Kimi zaman belirli bir kısmı üzerinde değişiklik yapmak isteriz,bu durumda hepsini belleğe almak yerine sadece değiştirmek istediğimiz kısmı almalıyız.Bunun içinde şu nesneler kullanılmalı:

XPathDocument()-xml şemayı okuyacak nesne

XPathNavigator()-doküman üzerinde gezinecek nesne

XPathNodeNaveigator()-nodelar üzerinde tek tek gezinecek nesne

DERYA GÜNDÜZ

 

 

IIS kavramını ilk olarak ASP.NET de çalışmaya başladığım bugünlerde duydum.Staj yaptığım Bilgeadam kurumunda girdiğim derslerde hocalarımdan birkaç defa IIS duymam üzerine böyle bir araştırma yapma gereği duydum.ASP.NET deki projelerimizi çalıştırırken kullandığımız serverin IIS olduğunu söylemişlerdi.Şimdi de yaptığım araştırmaların toplamını sizlerle paylaşayım.

IIS nedir?

IIS Microsoft Windows tabanalı işletim sistemleri için kullanılan web sunucudur(server).IIS Windows sistemlerinde web tabanlı projelerin geliştirilip yayınlanabilmesi için gerekli bir altyapııdr.Client-server ilişkisinde client http protokolü üzerinden servera talepte bulunduğunda bu talebi bilgisayarınızda karşılayan yapı IIS olacaktır.

IIS Sürümleri:

Windows XP Home Edition işletim sisteminde IIS bulunmamaktadır.IIS kullanmak için Windows XP Pro işletim sistemi veya Windows’un daha üst işletim sistemlerinden birini kullanmak gerekir

İşletim sisteminizde IIS varsa ve siz Visual Studio .NET 2003’ü daha sonra kurduysanız, Visual Studio .NET 2003 sizin için IIS’i ayarlayacaktır ve .NET Framework’ü IIS’e yükleyecektir.

IIS yüklü olmayan sitemde visual Studio .NET 2003 kurarken sistem size IIS kurmanız gerektiği  ile ilgili hata verir,IIS kurduktan sonra Visual Studio .NET 2003 kurmak daha sağlıklı olacaktırr,VS’yi kurduktan sonra IIS kurarsanız hatalarla karşılaşabilirsiniz.

IIS Sürümleri:

 • Windows XP üzerinde IIS 5.1

• Windows 2000 Server üzerinde IIS 5.0

 • Windows 2003 Server üzerinde IIS 6.0

 • Windows 2008 Server üzerinde IIS 7.0

Visual Studio.NET 2005 ve daha üst sürümlerinde ASP.NET ve diğer web uygulamalarını IIS olmadan da geliştirebilirsiniz.Bu yeni gelen özellikle kullanılan server sanal IISdir,yani bizim extradan kurmamıza gerek kalmadı.Projemizi çalıştırken araç çubuğuna gelen icon sanal IISin çalıştığını gösterir,projeyi kapatana kadar orada görünür.Güvenlik amacı ile her derlemede farklı bir port üzerinden sanal IIS çalıştırılır.İconun görünümü şu şekildedir:

 

IIS Kurulumu:

Başlat/Ayarlar/Denetim Masası/Program-Kaldır/Windows Bileşenleri Yükleden Internet Information Services seçilir,işletim sistemi cdsini de taktıktan sonra IIS yüklenmiş olur.Artık yaptığınız projeler belirlenmiş dizinde(ya da siz de seçebilirsiniz) yeralır.IIS ayarlarına erişmek:

 IIS ile ilgili ayarları yapabilmek için,run(çalıştır)dan “inetmgr” yazarak IIS ayarlarına erişebiliriz,ya da denetim masasından “yönetim bileşenleri”den de erişip gerekli ayarlamaları yapabilirz.Ayar olarak örneğim session timeout   süresinin default değeri 20 dir.Biz bu değeri IIS ayarlarından değiştirebiliriz.

 

 

 

DERYA GÜNDÜZ

deryagunduz.blogspot.com

Diyelim ki c#da  bir sinema otomasyonu yapmanız gerekiyor.Formu dizayn ederken yapmanız gereken koltukları temsilen herhangi bir kontrol eklemektir.Bir sinema salonu 50 kişilik ve 4 tane de salon varsa toplamda formlarınız için 200 tane kontrol eklemeniz gerekmektedir.Oldukça uğraştırıcı ve zaman kaybettiren bir dizayn işlemi olacaktır sizin için.Programlama bilgisi çok iyi olmayan birinin yapacağı kontrolleri tek tek eklemek olacaktır,oysa ki object oriented programming(nesne yönelimli programlama)  dan ve nimetlerinden haberdar olan programlamacı ise kontrolleri tek tek eklemez onları kodu çalıştırırken yapabileceğini bilir.Benim bahsedeceğim de 2. seçenek,yani kontrolleri elle, tek tek değil de kod içerisinde oluşturup çalıştırmaktır, yani Run-Time(çalışma anında) nesne oluşturmak olacaktır.

Run-Time kontrol oluşturabilmek için o kontrolden bir nesne yaratmanız gerekecektir.

    Button btn = new Button();  diye tek bir nesne oluşturup döngüler yardımıyla istediğiniz kadar buton görüntüleyebilirsiniz.

Bu konuyla ilgili BilgeAdamda staj yaparken derste yazdığımız  şu  kodu beraber inceleyelim:

 

int x = 40; //başlangıç x koordinatı

 

int y = 40;//başlangıç y koordinatı

int b = 1; //yerleştirilen buton numarasının tutar

private void Form3_Load(object sender, EventArgs e) //işlemleri form yüklenirken yapsın

{

for (int i = 0; i < 10; i++)                          //matrix mantığı ile 100 tane buton oluşturacaz

{

        for (int j = 0; j < 10; j++)

{

Button btn = new Button();

                                  //butondan bir nesne oluşturmamız gerekecek

btn.Name = “btnNo” + b;

                           //her birinin adı oluşum sıralarının adını alacaktır

btn.Text = b.ToString();

btn.Size = new Size(40, 40);              //size her defasında 40-40 olacaktır

btn.Left = x;

x += 40;                                //x koordinatı tek bir satır için her defasında 40 yana kaymalı

btn.Top = y;                         //y koordinatı aynı satır aynı kalır alt satıra geçildiğinde 40 artar

b++;                             //butonun numarası her defasında bir artacaktır

btn.Click += new EventHandler(btn_Click);    //hatta isterrsek o butona event bile yazarız

                //butona basılma eventini tutar

                    //event olduğunu += gösterir

                               //bu formun kontrollerine oluşturduğun btn nesnesini eklemen gerek

this.Controls.Add(btn);                  //btn kontrolünün nereye ait olduğunu belirtmeiz gerekir,formun kontrolü

}

x = 40;                     //ilk 10 taneyi oluşturduktan sonra alt satıra geç ama lefti değişmeyecek

y += 40;                    //top üstten bir satır uzaklaştığı için +40 olmalı

}    }

void btn_Click(object sender, EventArgs e)

{

Button btn = sender as Button;

//sender içinde thisin verilerini tutar

MessageBox.Show(“Merhaba ” + btn.Text + ” im..”);

 

işte çıkan sonuç:

 

 

Butona tıkladığımızda da şöyle bir görüntü oluşur:

 

 

 

DERYA GÜNDÜZ

deryagunduz.blogspot.com

ADO.NET  teknolojisi ile veritabanından veri çekmenin 2 yolu vardır.

  • Connected Mimari
  • Disconnected Mimari

Connected Mimari:

Bu mimaride veri tabanından veri çekme süresi boyunca uygulama veritabanına bağlı kalır ve bilgiler bağlı kalma süresi boyunca çekilebilir.Veri çekmek için veritabanına sürekli bağlı olması zorunluluğundan dolayı sql server sürekli meşgul olur,bu bir dezavantajdır.Connected ile veri çekebilmek için SqlCommand ile ConnectionString yazılır ve veriler SqlDataReader ile okunur.SqlDataReader ile veriler tek tek okunur,bu da bir dezavantaj sayılabilir.Connected mimarinin güzel yönlerinden bir tanesi sqlden alınan verilerin daima en güncel veriler olmasıdır,yapılan  bütün değişikler direk veritabanına yansıdığı için veri alınacağı zaman da en güncel veriler gelir.Connected yapıda disconnected yapıya göre veriler daha  hızlı çekilir(datareaderden dolayı)

 

Disconnected Mimari:

Bu mimaride uygulama sqle bağlı olmaz,bağlı olmadan veriler çekilir.Peki nasıl oluyor da bağlı olmadığı halde veritabanından veri çekebiliyor?Uygulamanın veritabanına bağlı olmadan veri çekmesini sağlayan yapı SqlDataAdapterdır.Disconnected mimaride  SqlDataAdapter nesnesi oluşturulur ve bu aracı nesne sayesinde veri tabanından veri çekilir,bütün bağlantılar bunun üzerinden yapılır.Uygulama veritabanına hiç bağlanmadığı için de buna  disconnected yapı denilmiş.Disconnected mimaride bağlantı açılıp kapanmaz,SqlDataAdapter bağlantıyı kendisi açar kapatır.DataAdaptör üzerindeki sql verileri datatable ve datasetlere doldurulur(fill).Böylece sqldeki veriler kullanıma hazırdır.

DataTable—->bellek üzerindeki tablodur

DataSet——>bellek üzerindeki datatablelardır(oluşturulan datatablelar datasete atılır)

Disconnected yapıda uygulama veritabanına bağlı olmadığı için veritabanını meşgul etmek anlamında connected yapıdan daha iyidir.Ama disconnected yapı connected yapıya göre daha eski bilgiyi getirir,veritabanı üzerindeki değişiklikler direk veritabanına yansımadığı için en güncel veriye ulaşamıyor.Databasede yapılan değişikler biz istediğimiz zaman veritababnına yansır.

DERYA GÜNDÜZ

deryagunduz.blogspot.com

deryagunduz47@gmail.com

© 2010 bilyaz.com , Programlama Makaleleri, Yazılım Makaleleri , Örnek Kodlar , Eğitim Videoları , C#,ASP.NET,SQL,PHP Suffusion WordPress theme by Sayontan Sinha