EGE ÜN VERS TES FEN B L MLER ENST TÜSÜ (YÜKSEK L SANS TEZ ) WEB PART VE AJAX TEKNOLOJ LER LE K SELLE T R LEB L R PORTAL UYGULAMASI



Benzer belgeler
ÖĞRENME FAALĠYETĠ GELĠġMĠġ ÖZELLĠKLER

Web Part ve AJAX Teknolojileri ile Kişiselleştirilebilir Portal Uygulaması

Tasarım Raporu. Grup İsmi. Yasemin ÇALIK, Fatih KAÇAK. Kısa Özet

Xerox ConnectKey Teknolojisine sahip Çok Fonksiyonlu Yazıcılarla (MFP'ler) Kullanım İçin

AIMCO AIMCO. Kullanım Kılavuzu. Mayıs 2016

ÖĞRENME FAALĠYETĠ 6 ÖĞRENME FAALĠYETĠ NESNE ĠġLEMLERĠ

QR Kodu Tarayıcısı / Okuyucusuna Uygun Uygulamalarda Kullanım İçin

DOKÜMAN YÖNETİM SİSTEMİ KULLANIMI GELEN EVRAK

BQTEK SMS Asistan. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

B02.8 Bölüm Değerlendirmeleri ve Özet

Analiz aşaması sıralayıcı olurusa proje yapımında daha kolay ilerlemek mümkün olacaktır.


PERKON PDKS Kurulum ve hızlı başlangıç rehberi

BİT ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme (web tarayıcıları, eklentiler, arama motorları, ansiklopediler, çevrimiçi kütüphaneler ve sanal

Genel bilgiler Windows gezgini Kes Kopyala Yapıştır komutları. 4 Bilinen Dosya Uzantıları

YÜKSEKÖĞRETİM KURUMLARI ENGELLİLER DANIŞMA VE KOORDİNASYON YÖNETMELİĞİ (1) BİRİNCİ BÖLÜM. Amaç, Kapsam, Dayanak ve Tanımlar

İstemci Yönetimi ve Mobile Printing (Mobil Baskı) Çözümleri

Evrak Ekle. Kurum İçi Giden Evrak Ekleme. Kırmızı renker; doldurulması zorunlu alanları ifade etmektedir. İleri Geri tarihli işlem yapılamamaktadır.

OFİS 365 ÖĞRENCİ MAİL SİSTEMİ KULLANIM KLAVUZU. Office 365

ÖZEL GÜVEN TIP MERKEZİ

BİLGİ TEKNOLOJİLERİ VE İLETİŞİM KURULU KARARI

KolayOfis Başlangıç Rehberi Kısa Mesaj Yönetimi

EPKAS (ELEKTRONİK PROJE KONTROL ARŞİVLEME SİSTEMİ) WEB KULLANIM KILAVUZU

SÜREÇ YÖNETİMİ VE SÜREÇ İYİLEŞTİRME H.Ömer Gülseren > ogulseren@gmail.com

KAPSAMLI İÇERİK SADELEŞTİRİLMİŞ ARAMA MOTORU YENİLİKÇİ BİLGİ İŞLEME TEKNOLOJİSİ PRATİK GÖRÜNTÜLEME ARAÇLARI MOBİL ERİŞİM

TS7200 PLATFORMU ÜZERİNDE SERİ PORT-ETHERNET DÖNÜŞTÜRÜCÜ UYGULAMASI

MAKÜ YAZ OKULU YARDIM DOKÜMANI 1. Yaz Okulu Ön Hazırlık İşlemleri (Yaz Dönemi Oidb tarafından aktifleştirildikten sonra) Son aktif ders kodlarının

ATAÇ Bilgilendirme Politikası

AĞ ÜZERİNDEN YAZICI ve TARAYICI TANIMLAMA KLAVUZU

Şekil 1. Sistem Açılış Sayfası

YATIRIM FONU ALIM SATIM İŞLEMLERİ KULLANICI KILAVUZU

Tor Üzerinden VPN Servisi "Privatoria"

K12NET Eğitim Yönetim Sistemi

E-Fatura Sunucusu Kurulum Klavuzu

ACENTE PORTAL QUICKRES/TROYA ACENTE BAŞVURU KILAVUZU

C# Programlama. Visual Studio 2010 Arayüzü. Prof. Dr. Ümit KOCABIÇAK SAKARYA ÜNİVERSİTESİ

Kişisel Bilgiler ve Kişisel olmayan bilgiler Kişisel bilgiler sizi bir birey olarak tanımlayan veya tanımlanmanızı sağlayan bilgilerdir.

Etkinliklere katılım, ücretli ve kontenjan ile sınırlıdır.

Hackerlar'ın Gözünden Flash Uygulamaları

Bilgisayar Uygulamaları PSİ105

Android Uygulamalarında Güvenlik Testi

BİLGİ BELGE MERKEZİ VE YAYIN HİZMETLERİ

ULAKBİM Danışma Hizmetlerinde Yeni Uygulamalar: Makale İstek Sistemi ve WOS Atıf İndeksleri Yayın Sayıları Tarama Robotu

İMZALAMA ARACI. Kullanım Kılavuzu. Nisan 2016 ANKARA. İmzalama Aracı Kullanım Kılavuzu Nisan 2016 Versiyon : 1.0 1/15

ELEKTRİK ÜRETİM SANTRALLERİNDE KAPASİTE ARTIRIMI VE LİSANS TADİLİ

Q-BIZ VIEWER KULLANIM KILAVUZU

DEĞERLENDİRME NOTU: Mehmet Buğra AHLATCI Mevlana Kalkınma Ajansı, Araştırma Etüt ve Planlama Birimi Uzmanı, Sosyolog

BÖLÜM 7 BİLGİSAYAR UYGULAMALARI - 1

İZMİR KÂTİP ÇELEBİ ÜNİVERSİTESİ ENGELSİZ ÜNİVERSİTE KOORDİNATÖRLÜĞÜ VE ENGELLİ ÖĞRENCİ BİRİMİ ÇALIŞMA USUL VE ESASLARI BİRİNCİ BÖLÜM

SÜRE BİLİŞİM TEKNOLOJİLERİ ÜNİTE 1: : BİLGİ VE TEKNOLOJİ DERS SAATİ: 7

Ö RENME FAAL YET 9 Ö RENME FAAL YET 9

Örgün Öğrenci Sistemi Anadolu Üniversitesinde öğretim elemanlarının verdikleri

KOCAELİ İL MİLLİ EĞİTİM MÜDÜRLÜĞÜ EVRAK TAKİP SİSTEMİ

1. Mesaj Tipi ve Mesaj Fonksiyonu Bazında Bildirim Mail Adresi Tanımlama Đşlemleri

Yıllarca bu konuda çalışan görüntü işleme uzmanlarının önerisi. Artık ArcGIS ile entegre

Digifresh Kullanım Kılavuzu

Temel Bilgisayar Programlama

ve Menüleri Özelleştirmek, Sistem Ayarlarını Değiştirmek

Veri Toplama Yöntemleri. Prof.Dr.Besti Üstün

PHP ile İnternet Programlama

Facebook connect ile kullanıcı giriş çıkış

1 Aralık E-Beyanname Modülünde Yapılan İşlemler

PROSEDÜR DOKÜMAN HAZIRLAMA VE KONTROL

Gmail Outlook Ayarları (Türkçe Resimli Anlatım)

VEZNE PROGRAMINDA POSTA ÜCRETİ İLE İLGİLİ YAPILAN DÜZENLEMELER (Vezne Sürüm: )

Anonim Verilerin Lenovo ile Paylaşılması. İçindekiler. Harmony

META TRADER 4 MOBİL İŞLEM PLATFORMLARI KULLANMA KILAVUZU 1. KURULUM

Otizm lilerin eğitim hakkı var mıdır? Nedir ve nasıl olmalıdır?

Uzem Eğitmen Girişi. Şekil 1. Sisteme girdikten sonra Şekil 2 deki ekran karşımıza çıkacak. Bu ekrandaki adımları kısaca tanıyalım.

Resmi Gazete Tarihi: Resmî Gazete Resmi Gazete Sayısı: YÖNETMELİK ELEKTRONİK HABERLEŞME SEKTÖRÜNDE HİZMET KALİTESİ YÖNETMELİĞİ

ETKİLEŞİMLİ TAHTA KORUMA SİSTEMİ KURULUM

Çevrimiçi paylaşım 3.1. Baskı 1

in Kullanımı tamamlamış gerçekleştirmiş

Yedekleme ve Kurtarma Kullanıcı Kılavuzu

TEŞVİK BELGELİ MAKİNA VE TEÇHİZAT TESLİMLERİNE UYGULANAN KDV İSTİSNASINDA BİR SORUN

İTÜ GELİŞTİRME VAKFI ÖZEL Dr. NATUK BİRKAN İLKOKULU VE ORTAOKULU. OkulNET Kullanım Kılavuzu

SİİRT ÜNİVERSİTESİ UZAKTAN EĞİTİM UYGULAMA VE ARAŞTIRMA MERKEZİ YÖNETMELİĞİ BİRİNCİ BÖLÜM. Amaç, Kapsam, Dayanak ve Tanımlar. Amaç

İşletim Sisteminin Katmanları

İŞ SAĞLIĞI VE GÜVENLİĞİ UYGULAMALARI

T.C. NUH NACİ YAZGAN ÜNİVERSİTESİ YAZILIM KULÜBÜ TÜZÜĞÜ. BİRİNCİ BÖLÜM Kuruluş Gerekçesi, Amaç, Kapsam, Dayanak ve Tanımlar

PROJE TEKLİF FORMU. Haydi birlikte harika bir iş çıkartalım.

WEB SAP (ORION) STAJ BAŞVURU KULLANICI DÖKÜMANTASYONU. Süheyla GÜVEN

İçindekiler Hosting hizmeti için silme isteği oluşturulması Reseller Paketi altında hosting hizmetinin oluşturulması Kesintiyi en aza indirmek için

Kaynaştırma Uygulamaları Yrd. Doç. Dr. Emre ÜNLÜ.

Destekli Proje İşletme Prosedürü

MUŞ ALPARSLAN ÜNİVERSİTESİ UZAKTAN EĞİTİM UYGULAMA VE ARAŞTIRMA MERKEZİ YÖNETMELİĞİ

G R fi 1 Adobe AIR E BAfiLANGIÇ

DÜNYA EKONOMİK FORUMU KÜRESEL CİNSİYET AYRIMI RAPORU, Hazırlayanlar. Ricardo Hausmann, Harvard Üniversitesi

Bölgeler kullanarak yer çekimini kaldırabilir, sisli ortamlar yaratabilirsiniz.

Osmancık İsmail Karataş Sağlık Meslek Lisesi

VER TABANI VE STANDART DOSYA PLANI KURULUM KLAVUZU

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı

ANALOG LABORATUARI İÇİN BAZI GEREKLİ BİLGİLER

EBYS Eğitimi. Sisteme erişim adresi:

SPROGVURDERING OG SPROGSCREENING AF 3-ÅRIGE BØRN

İSTANBUL KEMERBURGAZ ÜNİVERSİTESİ ÖNLİSANS VE LİSANS PROGRAMLARI ARASINDA YATAY GEÇİŞ YÖNERGESİ. BİRİNCİ BÖLÜM Amaç, Kapsam, Dayanak ve Tanımlar

Medula Eczane Reçete ve Rapor Web Servisleri Kullanım Kılavuzu

Bellek Analizi ile Zararlı Yazılım Analizi

Eğitim No/Eğitim Adı: 14-E Tedarikçi Barkod Uygulaması

AĞRI İBRAHİM ÇEÇEN ÜNİVERSİTESİ FEN-EDEBİYAT FAKÜLTESİ BİTİRME TEZİ YÖNERGESİ

Transkript:

EGE ÜN VERS TES FEN B L MLER ENST TÜSÜ (YÜKSEK L SANS TEZ ) WEB PART VE AJAX TEKNOLOJ LER LE K SELLE T R LEB L R PORTAL UYGULAMASI ehra EN Bilgisayar Mühendisli i Anabilim Dal Bilim Dal Kodu : 619.01.00 Sunu Tarihi : 10.09.2008 Tez Dan man : Prof. Dr. Ata ÖNAL Bornova- ZM R

II

III ehra EN taraf ndan yüksek lisans tezi olarak sunulan Web Part Ve AJAX Teknolojileri ile Ki iselle tirilebilir Portal Uygulamas ba l kl bu çal ma E.Ü. Lisansüstü E itim ve Ö retim Yönetmeli i ile E.Ü. Fen Bilimleri Enstitüsü E itim ve Ö retim Yönergesi nin ilgili hükümleri uyar nca taraf m zdan de erlendirilerek savunmaya de er bulunmu ve 10.09.2008 tarihinde yap lan tez savunma s nav nda aday oybirli i/oyçoklu u ile ba ar l bulunmu tur. Jüri Üyeleri: mza Jüri Ba kan : Prof. Dr. Ata ÖNAL... Raportör Üye : Yrd. Doç. Dr. Murat Osman ÜNALIR... Üye : Yrd. Doç. Dr. Tu kan TU LULAR...

IV

V ÖZET WEB PART VE AJAX TEKNOLOJ LER LE K SELLE T R LEB L R PORTAL UYGULAMASI EN, ehra Yüksek Lisans Tezi, Bilgisayar Mühendisli i Bölümü Tez Yöneticisi: Prof. Dr. Ata ÖNAL A ustos 2008, 171 sayfa Gerçekle tirilmi olan uygulama kapsam nda ASP.NET 2.0 ve AJAX (Asynchronous JavaScript and XML) teknolojileri kullan larak verilerin ki iselle tirmeye izin verecek ba ms z birimler halinde sunuldu u bir portal tasar m n n ve gerçekle tirimi yap lm t r. Ayr ca Ege Üniversitesi web sitesi üzerinde yer alan egetel, egeduyuru isimli hizmetleri ve benzeri hizmetler web servislerine dönü türülerek portal üzerinde ki iselle tirilebilir ba ms z birimler olarak sunulmu tur. Projenin gerçekle tirim a amalar nda kullan lan teknolojilerin ve izlenen yöntemlerin anlat mlar n içeren bir yol haritas olu turulmu tur. Anahtar sözcükler: Portal, ASP.NET 2.0, AJAX, Web Servisi.

VI

VII ABSTRACT A PERSONALIZABLE PORTAL APPLICATION USING WEB PART AND AJAX TECHNOLOGIES EN, ehra MSc. in Computer Engineering Supervisor: Prof. Dr. Ata ÖNAL August 2008, 171 pages The goal of the project developed is to design and implement a personalizable portal using ASP.NET 2.0 and AJAX (Asynchronous JavaScript and XML) technologies. In this context the services named egetel, egeduyuru and similar services on the web site of Ege University were reimplemented as web services. These services are presented as personalizable, independant modules on the new portal. Furthermore, a roadmap including the technologies used at implementation is formed. Key words: Portal, ASP.NET 2.0, AJAX, Web Service.

VIII

IX TE EKKÜR Bu çal ma süresince dan manl m yapan ve deste ini esirgemeyen say n dan man m Prof. Dr. Ata ÖNAL a, bu çal man n olu mas nda büyük katk sa layan Yrd. Doç. Dr. M. Osman ÜNALIR a, aileme, her zaman çal malar m destekleyen sevgili arkada m Gürkan ÖZÇEL K e ve TÜB TAK a te ekkürü bir borç bilirim.

X

XI Ç NDEK LER ÖZET... V ABSTRACT...VII Ç NDEK LER... XI EK LLER D Z N... XV Ç ZELGELER D Z N...XIX S MGELER VE KISALTMALAR D Z N... XXV 1. G R...1 2. WEB SERV SLER...4 2.1. Visual Studio.NET ile bir Web Servisi Olu turmak...6 2.2. Visual Studio.NET ile Uygulamaya bir Web Servisi Eklemek...8 2.3. PHP ile bir Web Servisi Olu turmak...9 2.3.1. PHP ile mysql Veritaban Sunucusuna Ba lanmak...9 2.3.2. Kullan lacak Veritaban n Seçmek...11 2.3.3. Sorgunun Gönderilmesi ve Sonucun Al nmas...12 2.3.4. NuSOAP ve NuSOAP Kullanan Web Servisleri...15 3. WEB PART...23 3.1. Web Part lar n Yap Ta lar...25 3.2. Web Part lar Olu turmak...26 3.2.1. GenericWebPart Kontrolü...26 3.2.2. Kal t mla Özel Bir Sunucu Kontrolü Olu turmak...27 3.2.3. Kullan c Kontrollerini Kullanarak Web Part Olu turmak...30 3.3. Web Part S n f n n Yap s...31

XII 3.3.1. IWebPart...32 3.3.2. IWebActionable...34 3.3.3. IWebEditable...39 3.4. Web Part Tipleri...39 3.4.1. EditorZone...39 3.4.2. CatalogZone...44 3.5. Web Part Manager...48 3.5.1. Web Part lar zlemek...49 3.5.2. Ki iselle tirme Bilgisini Yönetmek...50 3.5.3. Ya am Döngüsü Olaylar n Kontrol Etmek...50 3.5.4. Sayfa Görünüm Modlar n De i tirmek...53 3.5.5. Web Part lar çe ve D a Aktarmak...56 3.5.6. WebPartManager Master Page ler ile Kullanmak...58 3.6. WebPartZone Kontrolü...61 3.6.1. Zone lar n S n fland r lmas...62 3.6.2. WebZone...64 3.6.3. Zone Görünümü...65 3.6.4. Zone lar n Yap s...68 3.6.5. Header, Body ve Footer n Gösterimi...69 3.6.6. Galerileri bir DropDownList Kontrolü çerisinde Göstermek...71 3.6.7. WebPartChrome u Kullanmak...75 3.7. Web Part Do rulama...75 4. K SELLE T RME...80 4.1. Ki iselle tirme için Saklanan Veriler...80 4.2. Ki iselle tirme Durumu...81 4.3. Ki iselle tirme Kapsam...83

XIII 4.4. WebPartPersonalization S n f...84 4.5. Ki iselle tirme Verilerinin Ya am Döngüsü...88 4.6. Ki iselle tirme Verilerinin Saklanmas...89 4.7. PersonalizationProvider S n f...90 4.8. PersonalizationProvider n Yap land r lmas...91 4.8.1. SqlPersonalizationProvider...92 4.8.2. Veritaban n n Kurulmas...93 4.8.3. Personalization Veritaban emas...97 4.9. Ki iselle tirme Verileri ile Çal mak...98 4.9.1. SetPersonalizationDirty...99 4.9.2. Ki iselle tirme Arayüzleri...103 5. ÜYEL K VE ÜYE YÖNET M...111 5.1. Kimlik Do rulama...111 5.1.1. Forms/Windows Kimlik Do rulamas...111 5.1.2. Kullan c lar S n rlama...112 5.1.3. Kullan c Özellikleri...113 5.1.4. Kilitli Kullan c simlerini Açmak...113 5.1.5. Kullan c Silmek...114 5.1.6. ifre De i tirmek...114 5.1.7. ifre Kurtarmak...114 5.1.8. Çevrimiçi Kullan c Say s...115 5.2. Yetkilendirme...115 5.2.1. Yetkilendirmeyi web.config Dosyas nda Tan mlamak...115 5.2.2. Rol Kavram...116 5.2.3. SqlRoleProvider...116 5.2.4. Rol Eklemek ve Kald rmak...117

XIV 5.2.5. Kullan c lar Rollere ve Rolleri Kullan c lara Eklemek...117 6. AJAX...120 6.1. AJAX Nedir?...120 6.2. AJAX ile Uygulama Olu turmak...122 7. UYGULAMANIN ANLATILMASI...128 7.1. EgeTel ve EgeDuyuru Web Servisleri...128 7.1.1. PHP ile EgeTel ve EgeDuyuru Web Servislerini Olu turmak..128 7.1.2. Uygulama çerisine Web Servislerini Eklemek...132 7.1.3. Web Servislerini Kullanan Uygulamay Olu turmak...132 7.1.4. EgeDuyuru Uygulamas n n Ki iselle tirmeye zin Vermesi...136 7.2. Uygulama çerisindeki Dosyalar n Tan t lmas...139 7.3. Ki iselle tirilebilir Sayfa Yap s...144 7.3.1. Sayfa Üzerindeki Web Part lar n Yönetilmesi...144 7.3.2. Sistem Yöneticisi Sayfas...153 7.3.3. Sekmeli Görünüm Yap s n Olu turmak...157 7.3.4. Uygulamaya Web Part lar n Eklenmesi...159 8. SONUÇ...165 KAYNAKLAR D Z N...167 ÖZGEÇM...171

XV EK LLER D Z N ekil 2.1 UDDI servisi istemciye web servisinin disco uzant l dosyas n n adresini döndürür...5 ekil 2.2 DISCO dosyas na yap lan istek ile web servisininin tan mlama dosyas na yönlenilir...5 ekil 2.3 WSDL dosyas na istek yap larak servis biçimi ö renilir....5 ekil 2.4 Proje çal t r ld ktan sonra web servisine ili kin metotlar n gösterildi i ekran görüntüsü...8 ekil 2.5 SOAP web servisinin NuSOAP arac l ile kullan lmas (Ayala D. ve Ark., 2002)...17 ekil 3.1 Web Part lar kullanan bir aspx sayfas n n mimarisi...24 ekil 3.2 Visual Studio 2005 te Web Part lar için olu turulan kontroller...24 ekil 3.3 Web Part kontrolünü olu turan ö eler...25 ekil 3.4 AppearanceEditorPart...41 ekil 3.5 BehaviorEditorPart...42 ekil 3.6 LayoutEditorPart...43 ekil 3.7 PropertyGridEditorPart...44 ekil 3.8 PageCatalogPart...45 ekil 3.9 DeclarativeCatalogPart...46 ekil 3.10 ImportCatalogPart...47 ekil 3.11 CatalogZone içerinde stiller taraf ndan etkilenebilecek alanlar...67 ekil 4.1 Ki iselle tirme süreci...88 ekil 4.2 Ki iselle tirme verilerinin nas l sakland ve yüklendi i (Neimke, 2006)..90 ekil 4.3 aspnet_regsql arac Windows GUI uygulamas...95 ekil 6.1 Klasik web uygulamas ve AJAX uygulamas n n kar la t r lmas (Garrett, 2005)...121 ekil 6.2 Bir AJAX uygulamas olu turmak...123

XVI ekil 6.3 AJAX Eklentileri...123 ekil 7.1 Egetel Web Servisinin taray c da görünümü...130 ekil 7.2 Egetel web servisinin GetName isimli metoduna ili kin bilgilerin görünümü...130 ekil 7.3 EgeDuyuru web servisinin taray c da görünümü...131 ekil 7.4 Egetel web servisinin GetAllAnnouncements isimli metoduna ili kin bilgilerin görünümü...131 ekil 7.5 EgeTel web servisini kullanan uygulama görünümü (metin kutusu kullan larak anahtar kelime ile arama)...132 ekil 7.6 EgeTel web servisini kullanan uygulama görünümü (bölüm s radüzeni içerisinde arama)...133 ekil 7.7 A aç yap s ndan eri ilen bölüme ili kin kay tlar...134 ekil 7.8 EgeDuyuru web servisini kullanan uygulama görünümü...135 ekil 7.11 SignUp.aspx sayfas n n görünümü...140 ekil 7.12 LogIn.aspx sayfas n n görünümü...140 ekil 7.13 PasswordChange.aspx sayfas n n görünümü...141 ekil 7.14 PasswordRecovery.aspx sayfas n n görünümü...142 ekil 7.15 ManageUsers.aspx...143 ekil 7.16 Admin rolündeki bir kullan c için UsersPage.aspx sayfas n n görünümü144 ekil 7.17 Ki iselle tirilebilir kullan c sayfas yap s...145 ekil 7.18 Yeni bir sekme eklenmesi Ad m-1...145 ekil 7.19 Yeni bir sekme eklenmesi Ad m-2...146 ekil 7.20 Yeni bir sekme eklenmesi Ad m-3...147 ekil 7.21 Seçili olan sekmenin isminin de i tirilmesi Ad m-1...147 ekil 7.22 Seçili olan sekmenin isminin de i tirilmesi Ad m-2...148 ekil 7.23 Seçili olan sekmenin isminin de i tirilmesi Ad m-3...148 ekil 7.24 Seçili olan sekmenin silinmesi Ad m-1...149

XVII ekil 7.25 Seçili olan sekmenin silinmesi Ad m-2...149 ekil 7.26 Catalog görünüm moduna geçilmesi...150 ekil 7.27 Catalog görünümü...150 ekil 7.28 Kullan c n n yapt tüm de i ikliklerin sistemden silinmesi...151 ekil 7.29 Yeni bir kullan c hesab yarat lmas...153 ekil 7.30 Rol yönetimi bölümü...154 ekil 7.31 Kullan c lara atanm bir rol silinmeye çal ld nda uyar mesaj verilir....154 ekil 7.33 Kullan c lara atanm bir grup silinmeye çal ld nda uyar mesaj verilir....155 ekil 7.35 Kullan lmayan kullan c hesaplar n n silinmesi...156 ekil 7.36 Kullan c bilgileri yönetim ekran...157 ekil 7.37 Düzenlenebilir kullan c bilgileri...157 ekil 7.38 Çevrimiçi kullan c say s...157

XVIII

XIX Ç ZELGELER D Z N Çizelge 2.1 C#.NET ile örnek web servisi olu turmak...7 Çizelge 2.2 Uygulamaya eklenen web servisi metotlar n n kullan lmas...9 Çizelge 2.3 Veritaban na ba lanmak...11 Çizelge 2.4 Veritaban n seçmek...11 Çizelge 2.5 mysql_result fonksiyonunun kullan m...13 Çizelge 2.6 mysql_fetch_array fonksiyonunun kullan m...14 Çizelge 2.7 NuSoap s n f n olu turulan script e dahil etmek...19 Çizelge 2.8 String bir de i ken tan mlamak...19 Çizelge 2.9 Parametreleri bir dizi olarak tan mlamak...19 Çizelge 2.10 soapclient nesnesinin ilklenmesi...19 Çizelge 2.11 Call metodu kullan larak soapclient nesnesine eri mek...20 Çizelge 2.12 geterror() metodu ile hatalar belirlemek...20 Çizelge 2.13 NuSOAP s n flar n uygulamaya dahil etmek...20 Çizelge 2.14 Sunucu nesnesini ilklemek...21 Çizelge 2.15 Fonksiyonu sunucu nesnesine kay tlamak...21 Çizelge 2.16 Servis olarak sunulan fonksiyon...22 Çizelge 2.17 Verilerin Soap sunucusunun servis metoduna aktar lmas...22 Çizelge 3.1 GenericWebPart kontrolü için örnek kod...26 Çizelge 3.2 GenericWebPart n ChildControl özelli ine eri mek...27 Çizelge 3.3 WebPart s n f ndan kal t mla bir web part olu turulmas...28 Çizelge 3.4 Özel sunucu kontrolleri için örnek Render metodu...29 Çizelge 3.5 Sunucu kontrolünün sayfaya tan t lmas...29 Çizelge 3.6 Özel web part kontrolünün kullan lmas...30 Çizelge 3.7 Günün tarihini gösteren kullan c kontrolü...30 Çizelge 3.8 Günün tarihini gösteren web part...31 Çizelge 3.9 IWebPart arayüzü gerçekle tirimi...34

XX Çizelge 3.10 IWebActionable arayüzü gerçekle tirimi...35 Çizelge 3.11 Üzerine t klan nca günün tarih bilgisini gösteren verb gerçekle tirimi...36 Çizelge 3.12 WebPartEventHandler arayüzünü gerçekle tiren metot...37 Çizelge 3.13 Verb ler için istemci taraf nda bir olay yakalay c belirlemek...38 Çizelge 3.14 stemci taraf nda bir olay yakalay c gerçekle tirimi...38 Çizelge 3.15 EditorZone belirtimi...40 Çizelge 3.16 Özellikleri WebBrowsable öz niteli i ile i aretlemek...44 Çizelge 3.17 WebPartManager belirtimi...48 Çizelge 3.18 Çal ma zaman nda bir web part n sayfaya eklenmesi...49 Çizelge 3.19 Bir kullan c kontrolü web part n n sayfaya eklenmesi...50 Çizelge 3.20 Zone lar aras nda web part ta may s n rland ran olay...51 Çizelge 3.21 Page s n f nda meydana gelen olaylar...52 Çizelge 3.22 Dinamik web zone eklemek...53 Çizelge 3.23 DisplayMode özelli inin de i tirilmesi...54 Çizelge 3.24 Sayfa görünüm modlar na ili kin i lemler...55 Çizelge 3.25 web.config dosyas n n d a aktar m için yap land r lmas...57 Çizelge 3.26 WebPartExportMode de erleri...58 Çizelge 3.27 Master page örne i...59 Çizelge 3.28 Master page e at fta bulunan içerik sayfas...60 Çizelge 3.29 StaticConnections eleman kullan larak static connection bildirimi...60 Çizelge 3.30 ProxyWebPartManager...61 Çizelge 3.31 WebPartZone belirtimi...62 Çizelge 3.32 CatalogZone ve EditorZone olu turmak için bildirimsel söz dizimi...64 Çizelge 3.34 CatalogZone u olu turmak için bildirimsel söz dizimi...68 ekil 3.12 CatalogZone kontrolü düzeni...69 Çizelge 3.35 RenderFooter metodunun ezilmesi...70 Çizelge 3.36 RenderCatalogPartLinks metodunu ezen kod...72

XXI Çizelge 3.37 CatalogZone yard mc metodunun kodu...74 Çizelge 3.38 Geri dönü olay n ele almak için gerekli olan kod...74 Çizelge 3.39 Web part do rulama özelli i...76 Çizelge 3.40 OnAuthorizeWebPart öz niteli inin kullan m...76 Çizelge 3.41 WebPartAuthorizationEventArgs s n f n n özellikleri...77 Çizelge 3.42 AuthorizationFilter n kullan m...78 Çizelge 3.43 OnAuthorizeWebPart metodunun ezilmesi...79 Çizelge 4.1 WebPartPersonalization s n f n n önemli genel parçalar...85 Çizelge 4.2 WebPartPersonalization s n f n n CanEnterSharedScope özelli inin kullan lmas...85 Çizelge 4.3 WebPartPersonalization s n f n n önemli korumal (protected) parçalar.87 Çizelge 4.4 OraclePersonalizationProvider isimli ki iselle tirme sa lay c s n yap land rmak...92 Çizelge 4.5 Uygulaman n SingleKeySqlPersonalizationProvider kullanmas için gerekli olan yap land rma giri i...93 Çizelge 4.6 Komut sat r de i kenleri...96 Çizelge 4.7 Örnek SQL Server kurulum arac n kullanan komutlar...97 Çizelge 4.8 Çal an verilerini yönetmek için kullan lan web part...100 Çizelge 4.9 Verileri ki iselle tirme arac l yla saklamak için yap lacak de i iklik.100 Çizelge 4.10 SetPersonalizationDirty metodunun atanmas için ça r mlar n yap lmas na izin verecek metot...101 Çizelge 4.11 Web part n üzerindeki SetDirty metodunu ça rmak...101 Çizelge 4.12 PortalUser özelli inin içinden SetPersonalizationDirty metoduna ça r mda bulunmak...103 Çizelge 4.13 SetPersonalizationDirty metodunun ki iselle tirme yükleme i lemi d ndaki i lemler için ça r lmas...103 Çizelge 4.14 Save ve Load metot tan mlar...105

XXII Çizelge 4.15 Bir web part ba lant listesi...105 Çizelge 4.16 Serile tirilebilir (serializable) veri tiplerini saklamak...106 Çizelge 4.17 IVersioningPersonalizabel Load metoduna ili kin imza...108 Çizelge 5.1 Sayfa yetkilendirme bildirimi...111 Çizelge 5.2 Form do rulama...112 Çizelge 5.3 Kullan c lar s n rlama...113 Çizelge 5.4 SMTP e-posta ayarlar...114 Çizelge 5.5 Rollerin yetkilendirilmesi...115 Çizelge 5.6 Belirli bir klasörün alt ndaki dosyalar veya belirli bir dosya için yetkilendirme...116 Çizelge 5.7 SqlRoleProvider tan m...117 Çizelge 6.1 Yeni bir WebPartManager s n f yaratmak...125 Çizelge 6.2 stemci script lerinin System.Web.UI.ScriptManager kullanarak gösterilmesi...125 Çizelge 6.3 Yükleme sonras ndaki de i ikliklerin görüntülenmesi...126 Çizelge 6.4 web.config dosyas na eklentiler...127 Çizelge 7.1 EgeTel web servisi ayarlar...128 Çizelge 7.2 Web servisi metodunun sunucu nesnesine kay tlanmas...128 Çizelge 7.3 Web servisi metodunun gövdesi...129 Çizelge 7.4 Son ad mda gönderilen veriler SOAP sunucusunun service metoduna aktar lmas...129 Çizelge 7.5 EgeDuyuru uygulamas için Etkinlik, Birim, Ba lang ç Tarihi ve Son Tarih seçimlerinin ki iselle tirilmesi...138 Çizelge 7.6 Verb menüsüne Settings ba l kl verb in eklenmesi...139 Çizelge 7.7 DeclarativeCatalogPart a web part lar n eklenmesi...152 Çizelge 7.8 Repeater kontrolüne uygulanabilecek ablonlar...158 Çizelge 7.9 GoogleMaps web part n n portala dahil edilmesi...160

XXIII Çizelge 7.10 GoogleMaps anahtar n n script içerisinde kullan lmas...161 Çizelge 7.11 GoogleMaps uygulamas n n yeniden yüklenmesini sa lamak için eklenti...161 Çizelge 7.12 API yi yükleyecek ve uygulamay ba latacak olan script...162 Çizelge 7.13 API üzerinden uygulaman n yüklenmesi...163 Çizelge 7.14 Sayfa üzerinde isimlendirilmi bir bölüme ilgili uygulama bile enlerinin yüklenmesi...163

XXIV

XXV S MGELER VE KISALTMALAR D Z N K saltmalar AJAX XML HTTP SOAP WSDL DISCO UDDI API Aç klamalar Asynchronous JavaScript and XML Extended Markup Language Hypertext Transfer Protocol Simple Object Access Protocol Web Service Description Language Discovery Protocol Universal Description, Discovery and Integration Application Programming Interface

XXVI

1 1. G R Günümüzde web siteleri büyük bilgi kaynaklar d r. Kötü tasarlanm web siteleri kullan c lar n n bilgi gereksinimlerini yeterince kar layamayabilmektedir. Bu nedenle günümüzde portallar, genellikle verileri belirli bir derecede ki iselle tirmeyi sa layacak biçimde ba ms z birimler olarak düzenlenmektedir. Portal kullan c lar na bu ba ms z birimleri kendi bireysel çal ma biçemlerine uygun olarak düzenleyebilme olana sunulmaktad r. Web ki iselle tirme bir web sitesinin sunumunun, web sitesi taraf ndan sa lanan bilgi veya servislerin bir veya bir küme kullan c n n aç k veya üstü kapal tercihlerine uygun biçimde de i tirilebilmesidir (Thomson, 2005) (Eirinaki, 2006). Web ki iselle tirme bir web kullan c s n n kendi portal web sayfas n n içeri ini ve görünümünü uyarlayabilme yetene idir. Günümüzdeki web yap s ile bilgiye eri im kullan c lar n siteler üzerinde gezinmesini gerektirmektedir. Oysa ki iselle tirilmi bir sayfa bilgiyi kullan c lara getirmektedir. Böylece kullan c istedi i bilgiye istedi i zamanda eri ebilmektedir. Ki iselle tirilmi bir sayfa ile web üzerinde da lm olan bilginin kullan larak kullan c ya özel bilgi alma kayna n n olu turabilmesi yetene i oldukça de erlidir (Kravatz, 2000). Ege Üniversitesi web sitesinin mevcut yap s ki iselle tirmeye izin vermemektedir. Proje kapsam nda ASP.NET 2.0 teknolojileri kullan larak Ege Üniversitesi web sitesi kullan c lar n n bilgi gereksinimlerini kar layabilmeleri için belirli bir oranda ki iselle tirmenin sa lanabildi i bir portal n tasarlanmas ve olu turulmas hedeflenmi tir. ASP.NET 2.0 n sa lam oldu u

2 yenilikler ile Google ig ve Live.com gibi sitelerin sa lam oldu u geli mi özelliklere sahip bir portal geli tirilebilecektir. AJAX teknolojisi kullan larak olu turulmu ba lang ç sayfalar özelle tirilebilir, kolayca kullan labilen ve genellikle taray c n n ba lang ç sayfas nda olmas gereken sayfalard r. AJAX ba lang ç sayfalar taray c aç ld nda kullan c n n tercihleri do rultusunda düzenlemi oldu u ekilde göstermektedir. Günümüzde birçok ba lang ç sayfas vard r. Bu sayfalardan bilinen baz lar ve sayfalar n özellikleri öyledir: - Netvibes: Netvibes alan ndaki liderlerden biridir. Arayüzü aç kt r, sayfa tasar m nda sayfan n kullan labilirli ine önem verilmi tir. - Pageflakes: Pageflakes de lider ba lang ç sayfalar ndan bir tanesidir. Sayfa kullan c lar na üst düzeyde özelle tirme seçenekleri sunmaktad r. - Live.com: Microsoft un sunmu oldu u, en popüler ba lang ç sayfalar ndan bir tanesidir. Aç k ve sade bir görünüme sahiptir. - igoogle: igoogle tüm seçenekler içerisindeki en basit ba lang ç sayfas d r. - My Yahoo: My Yahoo ortalama internet kullan c lar için tasarlanm t r. Arayüzü ortalama bir görünüme sahiptir ve i levselli i s n rland r lm t r. Ancak beta My Yahoo yeni ferah bir tasar ma ve daha düzgün etkile imli özelliklere (Ajax) sahiptir. AJAX teknolojisi ile a uygulamalar n n daha h zl yan t vermesi sa lanabilecektir. Ayr ca Ege Üniversitesi web sitesi üzerinde yer alan egetel isimli telefon rehberi, egeduyuru isimli duyuru hizmetleri

3 portal üzerinde ki iselle tirilebilir ba ms z birimler olarak sunulmak üzere web servislerine dönü türülmü tür. Böylece veritaban eri iminde soyutlama sa lanarak bu hizmetlerin farkl uygulamalar taraf ndan da kullan labilmesi sa lanm t r.

4 2. WEB SERV SLER Web servisleri platform ve programlama dilinden ba ms z, aç k nternet standartlar na dayanan, veri ve nesne payla abilmesini sa layan birimlerdir. Web servisleri HTTP, XML, SOAP, WSDL, DISCO, UDDI gibi standartlar üzerinde çal r. Web servisleri http (Hypertext Transfer Protocol) protokolü üzerinden bilgi al veri i yapmaktad r. Bu nedenle nternet üzerinden bir web servisine eri ilebilmektedir. XML (Extensible Markup Language), web servisleri ve servis istemcisi aras nda bilgi al veri inin sa lanmas nda kullan lan bir standartt r. SOAP (Simple Object Access Protocol) web servisine platformdan ba ms z ça r mlar yap labilmesini sa lamaktad r. WSDL (Web Service Description Language), web servisinde bulunan fonksiyonlar n ald parametrelerin ve sonuç olarak döndürdü ü bilginin türünü tan mlamak için kullan l r. DISCO (D scovery Protocol) bir sunucu üzerinde, UDDI (Universal Description, Discovery and Integration) ise nternet üzerinde payla ma aç lm bütün web servislerinin düzenlenmesinde kullan l r (Hung ve Ark.,2004). Web servisleri da t k yap daki uygulamalar n bir parças olarak geli tirilir. Bir web servisine eri mek ve servise ili kin metotlar n çal t r labilmesi için servis istemci rolündeki kullan c n n ilgili servisin sadece adresini bilmesi yeterlidir. Kullan lacak web servisinin adresi bilinmiyorsa bir UDDI dizini yard m ile bir web servisi bulunur. UDDI servisi istemciye web servisinin disco uzant l dosyas n n adresini döndürür (Bkz. ekil 2.1). DISCO dosyas içerisinde web servisini tan mlayan kaynaklara ba lant bulunmaktad r. DISCO dosyas na

5 yap lan istek ile web servisininin tan mlama dosyas na yönlenilir (Bkz. ekil 2.2). Web servisinin tan mlama dosyas olan WSDL dosyas na istek yap larak servis biçimi ö renilir (Bkz. ekil 2.3). Sonuç olarak web servisinin metotlar istemci taraf ndan çal t r lmaya haz rd r (Habegger ve Quafafou, 2004) (Sarang ve Ark., 2002). ekil 2.1 UDDI servisi istemciye web servisinin disco uzant l dosyas n n adresini döndürür. ekil 2.2 DISCO dosyas na yap lan istek ile web servisininin tan mlama dosyas na yönlenilir. ekil 2.3 WSDL dosyas na istek yap larak servis biçimi ö renilir.

6 2.1. Visual Studio.NET ile bir Web Servisi Olu turmak Visual Studio.NET ile yeni bir web servisi olu turmak için izlenmesi gereken ad mlar k saca öyledir: - File menüsünde New Project seçene ine t klan r. - Aç lan pencerede uygulama dili seçildikten sonra ASP.NET Web Service seçene ine t klan r ve seçim onaylan r. Visual Studio.NET yerel makinede web servisi için gerekli klasörleri otomatik olarak olu turacakt r. Bir web servis projesinde yer alan dosyalar ve s n flar n olu turulma amac na göre öyle özetlenebilir: - Global.asax ve Global.asax.cs : Uygulama ve oturum baz nda olay yönetimi yap labilmesini sa lar. - Service.asmx ve Service.asmx.cs :.asmx uzant l dosyalar web servisi uygulama dosyalar d r. Service.asmx in görevi IIS taraf nda web servisinin bulunabilmesini sa lamak ve web servisi için giri noktas olmakt r. Service.asmx.cs dosyas yaz lan program kodlar n içeren dosyad r. Web servisindeki metotlar n web metodu olarak alg lanmas için fonksiyonlar n ba nda [WebMethod] ifadesi yer almal d r. Aksi halde web o arayüzünde bu metot bulunmayacakt r. Çizelge 2.1 de örnek bir web servisi uygulamas gösterilmektedir.

7 Çizelge 2.1 C#.NET ile örnek web servisi olu turmak using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; [WebService(Namespace = "http://localhost/", Description = "E.Ü. Telefon rehberi ile ilgili metotlar içerir.", Name="egetelWS")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { [WebMethod(Description = "Kullan c ya ili kin telefon numaras n döndürür.")] public int GetPhoneNumber(string username) { int phonenumber; // lgili i lemler burada yap l r. return phonenumber; } } Web servisi için gerekli dll dosyas proje derlendi inde otomatik olarak bin klasörü içerisinde olu turulmaktad r. Olu turulan web servisini test etmek için projenin çal t r lmas gerekmektedir. Proje çal t r ld ktan sonra web servisine ili kin metotlar n gösterildi i bir pencere görüntülenir (Bkz. ekil 2.4). Web servisinin ilgili metodu, ilgili ba lant üzerine t klanarak çal t r labilir.

8 ekil 2.4 Proje çal t r ld ktan sonra web servisine ili kin metotlar n gösterildi i ekran görüntüsü Web servisini kullanacak uygulama bir Windows uygulamas, bir ASP.NET uygulamas veya bir mobil uygulama olabilir (Thomas ve Ark., 2003). 2.2. Visual Studio.NET ile Uygulamaya bir Web Servisi Eklemek Visual Studio.NET ile geli tirilen uygulamaya bir web servisi eklemek için izlenmesi gereken ad mlar k saca öyledir: - Solution Explorer da proje ö esinin üzerine sa t klan r. - Aç lan menüden Add Web Reference seçene ine t klan r. - Ekrana gelen web servisi ekleme seçenekleri sunan Add Web Reference diyalog penceresinde Web services on the local machine ba lant s na t kland nda localhost üzerindeki tüm web servislerinin bir listesini elde ederiz.

9 - Uygulamaya eklemek istenilen web servisi üzerine t kland ktan sonra Add Reference butonuna t klanarak web servisi uygulamaya eklenir. Web servisi uygulamaya eklendikten sonra metodu kullan lmak istenilen s n fa ili kin bir nesne olu turularak, ilgili s n f n metotlar na eri im sa lanmaktad r. Örnek kod Çizelge 2.2 de gösterilmektedir. Çizelge 2.2 Uygulamaya eklenen web servisi metotlar n n kullan lmas localhost.egetelws egetelws = new localhost.egetelws(); TextBox1.Text = egetelws.getphonenumber(username).tostring(); 2.3. PHP ile bir Web Servisi Olu turmak PHP ile veritaban i lemleri oldukça kolayd r. PHP her veritaban na özel fonksiyonlar bar nd r r. PHP ile mysql veritaban üzerinde i lem yapmak için yakla k 40 tane fonksiyon vard r. Ama genellikle birçok i lemi gerçekle tirmek için bunlar n ço una gereksinim duymay z. 2.3.1. PHP ile mysql Veritaban Sunucusuna Ba lanmak PHP uygulamalar nda veritaban ndan yararlanabilmek için öncelikle uygulaman n Web sunucusu arac l yla veritaban dosyas ile ba lant kurmas gerekmektedir. MySQL aç s ndan ise bu ba lant, veri sunucusunda yeni bir oturumun aç lmas anlam na gelmektedir (Demirkol, 2007). ki program aras ndaki bu ili ki PHP`nin mysql_connect() fonksiyonu ile sa lanmaktad r.

10 $baglanti = mysql_connect( veritaban sunucusunun ad, veritaban kullan c s n n ad ); $baglanti = mysql_connect( veritaban sunucusunun ad, veritaban kullan c s n n ad, kullan c ifresi ); Veritaban sunucusunun ad, localhost, www.ege.edu.tr gibi ba lant kurulacak veritaban sunucusunun ad d r. Veritaban kullan c s n n ad, mysql sunucusunda aç lacak oturumun kimin ad na aç laca ; kullan c ifresi ise mysql kurulumu s ras nda belirlenen, ilgili kullan c ad için tan mlanm olan ifre bilgisidir. E er kullan c için tan mlanm bir ifre yok ise fonksiyonun üçüncü parametre giri i yap lmaz. Veritaban na, kullan c ad ve ifre ile eri imin sa lanmas mysql veritaban na izinsiz eri imleri engellemektedir. Bu veritaban güvenli inin sa lanmas aç s ndan önemli bir özelliktir. Veritaban na ba lant sa layan fonksiyon sonucu $baglanti isimli bir de i kene atanm t r. mysql_connect fonksiyonu veritaban ba lant s n sa larsa sa lanan ba lant ya özel bir de er atayacak ve ilgili ba lant bilgilerini bu ba lant üzerinden izleyecektir. Ba lant n n sa lanamad durumlarda $baglanti de i kenine false de eri atanacakt r. Çizelge 2.3 te verilen örnek kodda yer alan if deyimi, $ba lanti de i keninin de er içerip içermedi ine bakmakta ve de i kende de er yok ise, ba lant kurma giri ini durdurarak, ziyaretçiye hata mesaj göndermektedir.

11 Çizelge 2.3 Veritaban na ba lanmak $ba lanti = mysql_connect("veritaban sunucusunun ad ", "veritaban kullan c s n n ad ", "kullan c ifresi"); if (!$ba lanti) { die("mysql ile veri ba lant s kurulamamaktad r.); } 2.3.2. Kullan lacak Veritaban n Seçmek Ba lant ba ar yla kurulduktan sonra PHP program, bu ba lant üzerinden veritaban sunucusuna, hangi veritaban dosyas ndan yararlanmak istedi ini bildirmelidir. Buna veritaban dosyas seçme i lemi denir ve mysql_select_db() fonksiyonu ile sa lan r: mysql_select_db("veritaban n n ad ", $baglanti); mysql_select_db fonksiyonunun birinci parametresi ba lant sa lanacak veritaban n n ad, ikinci parametresi ise kullan lacak mysql ba lant s n n belirtecidir. Ba lant belirteci mysql_connect fonksiyonu taraf ndan sa lanan de erdir. Çizelge 2.4 Veritaban n seçmek mysql_select_db("veritaban n ad ", $ba lanti) or die ("Veritaban aç lam yor!".mysql_error()); mysql_select_db fonksiyonunun ba ar yla çal t r l p çal t r lmad, fonksiyondan dönen de erin true veya false olmas ndan anla l r. Bu de er false ise bu deyimin die() bölümü çal t r lacak ve taray c penceresine veritaban n n aç lamad mesaj yla

12 birlikte MySQL`in hata mesaj da gönderilecektir. PHP`nin MySQL veritaban n seçememesi ço u zaman kullan c yetkilerinin nternet ziyaretçilerini kapsayacak biçimde düzenlenmemi olmas ndan kaynaklan r. Bu durum gerçek Web sunucusunda ortaya ç karsa, Web sunucusu yönetimine ba vurmak gerekecektir. 2.3.3. Sorgunun Gönderilmesi ve Sonucun Al nmas Veritaban na sorgu göndermek için mysql_query fonksiyonu kullan lmaktad r. $sonuc de i kenine ise mysql_query fonksiyonundan geri dönen kay t dizisine ili kin belirteç bilgisi atanmaktad r. $sonuc = mysql_query("select * FROM tablo ad "); mysql_query fonksiyonunun ça r lmas ndan sonra $sonuc de i kenine dönen kay t dizisindeki bilgileri almak için kullan labilecek birkaç fonksiyon vard r: - mysql_result ($sonuc) - mysql_fetch_array($sonuc) - mysql_fetch_row($sonuc) Bu üç fonksiyon da temelde $sonuc de i kenini parametre olarak almakta ve de i kenin tuttu u kay t dizisindeki kay tlara eri imi sa lamaktad r. Örne in a a da yer alan ifadede 0. kayd n, uye_adi alan ndaki de eri $uyeadi de i kenine atanmaktad r. Dizideki di er kay tlara indis de eri de i tirilerek ula labilir. $uyeadi = mysql_result ($sonuc, 0, "uye_adi");

13 Veritaban ndaki bir tablonun tüm fonksiyonlar listelenmek istendi inde mysql_num_rows($sonuc) fonksiyonu sorgu sonucunda dönen kay t dizisinde bulunan kay t say s n vermektedir. $toplam_kayit_sayisi= mysql_num_rows($sonuc); mysql_result fonksiyonu kullan larak veritaban ndaki uyeler adl tablodaki tüm kay tlar listeleyen örnek Çizelge 2.5 te gösterilmektedir. Çizelge 2.5 mysql_result fonksiyonunun kullan m <??> $baglanti = mysql_connect("localhost","uyeadi"," ifre"); mysql_select_db("veri", $baglanti); $sonuc = mysql_query("select * FROM uyeler"); $toplam_kayit_sayisi = mysql_num_rows($sonuc); for ($i=0; $i<$toplam_kayit_sayisi; $i++) { $uyeadi = mysql_result($sonuc,$i,"uye_adi"); $uyesoyadi = mysql_result($sonuc,$i,"uye_soyadi"); } mysql_fetch_row fonksiyonu, bir veritaban ndan elde edilen sonucu sat r sat r okumak için kullan lmaktad r. Fonksiyondan dönen de er $satir ad n verdi imiz dizi de i kenine yaz lmakta ve sonras nda printf fonksiyonu ile bu dizinin elemanlar s rayla taray c penceresine gönderilmektedir. $satir = mysql_fetch_row($sonuc)); mysql_fetch_array fonksiyonu kay t dizisinden kay tlar almada oldukça kullan l d r. $kayit = mysql_fetch_array($sonuc);

14 Fonksiyon kay t dizisinden bir kay t almaktad r. Kay t dizisindeki bütün kay tlar al nana kadar kay tlar alma i lemine devam edilebilir. Tüm kay tlar al nd ktan sonra fonksiyon false de erini geri döndürür. Böylece $kayit de i kenine bir kay tl k bilgi atan r. mysql_fetch_array fonksiyonunun her ça r l nda en son al nan kay ttan sonraki kay t al n r. Son kay ttan sonra yap lan ça r mda fonksiyon false de erini döndürür. mysql_fetch_array fonksiyonu kullan larak veritaban ndaki uyeler adl tablodaki tüm kay tlar listeleyen örnek Çizelge 2.6 da gösterilmektedir. Çizelge 2.6 mysql_fetch_array fonksiyonunun kullan m <??> $baglanti = mysql_connect("localhost","uyeadi"," ifre"); mysql_select_db("veri",$baglanti); $sonuc = mysql_query ("SELECT * FROM uyeler"); while ($kayit=mysql_fetch_array ($sonuc)) { $uyeadi =$kayit["uye_adi"]; $uyesoyadi = $kayit["uye_soyadi"]; } mysql_free_result($sonuc); mysql_close($baglanti); Örnekte gösterilen mysql_free_result($sonuc) fonksiyonu, sistem kaynaklar n n fazladan kullan lmamas için haf zada $sonuç de i kenine ili kin tutulan ve art k gereksinim duyulmayan kay t dizisi bilgilerini silmektedir. mysql_close fonksiyonu ise olu turulan veritaban ba lant s n kapatmaktad r.

15 Yukar da anlat lan fonksiyonlar n yan s ra mysql_error(), mysql_errno() fonksiyonlar ile veritaban i lemleri s ras nda (yeni kay t ekleme, kay t silme, kay t güncelleme vs.) olas hatalar izlenebilmekte; mysql_pconnect() fonksiyonu ile kal c veritaban ba lant lar olu turulabilmekte; mysql_create_db() fonksiyonu ile veritaban olu turulabilmekte; mysql_list_dbs(), mysql_list_tables(), mysql_list_fields() gibi fonksiyonlarla veritaban ile ilgili daha ayr nt l bilgiler dinamik olarak mysql den al nabilmektedir. PHP ile mysql sunucusu i lemlerinin neredeyse tamam n yönetilebilmektedir. 2.3.4. NuSOAP ve NuSOAP Kullanan Web Servisleri NuSOAP, PHP için bir SOAP araç kitidir. Bu araç kitini kullanmak, programc y bir SOAP servisine do rudan ba lanman n zorluklar ndan kurtarmaktad r. NuSOAP, kullan c lar n HTTP üzerinden SOAP mesaj göndermesine ve almas na izin veren PHP s n flar kümesidir. Önceleri SOAPx4 olarak bilinen NuSOAP NuSphere Corporation (http://www.nusphere.com) taraf ndan da t lm t r. Aç k kaynak kodludur ve GNULGPL lisans alt ndad r. SOAPx4 PHP için birçok Web Servisi araç kitinin çekirde i olarak kullan lm t r (PEAR-SOAP ve Active State yaz l m n n basit Web Services API s gibi) (Ayala D. ve Ark., 2002). NuSOAP n üstünlüklerinden bir tanesi bir PHP eklentisi olmamas na ra men sadece PHP ile yaz lm olmas d r. Bu neredeyse tüm PHP geli tiricilerinin NuSOAP kullanabilece i anlam na gelmektedir. NuSOAP bile en tabanl Web Servisi araç kitidir. Web servisi etkile imi soapclient olarak adland r lan üst seviye bir istemci s n f ile

16 sa lanmaktad r. Bu üst seviyeli s n f kullan c lara SOAP mesaj n n kendisinin gönderilmesi ve al nmas n n yönetmenin yan s ra HTTP yetkilendirme kimli i, HTTP proxy bilgileri gibi seçenekleri belirleme olana n sunmaktad r. SOAP i lemleri call() metoduna çal t r lmak istenen i lemin ad parametre olarak geçirilerek çal t r l r. Kullan lacak olan servis bir WSDL dosyas sa l yorsa soapclient s n f yap land r c metoduna WSDL dosyas n n URL sini parametre olarak al r ve WSDL dosyas n ayr t rmak için ve içerisindeki tüm verileri ç kartmak için wsdl s n f n kullan r. WSDL s n f i lem veya ba lama baz nda verileri ç kartan metotlara sahiptir (Ayala D. ve Ark., 2002). Soapclient, WSDL dosyas ndan ald bu bilgileri kullan c servise ça r da bulundu unda parametreleri ifrelemek ve SOAP zarf n olu turmak için kullan r. Ça r çal t r ld nda, soapclient s n f d ar ya giden mesaj göndermek ve gelen mesaj almak için soap_transport_http s n f n kullan r. Gelen mesaj soap_parser s n f kullan larak ayr t r l r. ekil 2.5 te SOAP web servisinin NuSOAP arac l ile kullan lmas anlat lmaktad r.

17 ekil 2.5 SOAP web servisinin NuSOAP arac l ile kullan lmas (Ayala D. ve Ark., 2002) Kullan lacak olan web servisi bir WSDL dosyas sa lam yorsa izlenen süreç farkl l k göstermektedir. Servise ili kin URL soapclient s n f n n yap land r c metoduna parametre olarak geçirilir. lemler yine soapclient nesnesinin call metodu kullan larak çal t r l r, ama WSDL dosyas taraf ndan sa lanan ayr nt lar parametre olarak geçirilmelidir. Özel tipte olan parametreler soapval s n f kullan larak gösterilir (Ayala D. ve Ark., 2002). 2.3.4.1. Kurulum ve Yap land rma NuSOAP n kurulumu oldukça basittir. Kurulum s ras nda izlenmesi gereken ad mlar u biçimde listelenebilir: - Dosyalar http://dietrich.ganx4.com/nusoap/index.php web adresinden indirin. - Nusoap.php dosyas n zip ten ç kar n. - Kolay eri im için s n flar tan ml olan bir konuma kopyalay n. - S n f script inize ekleyin.

18 include( nusoap.php ) Verilen örnekte nusoap s n f n olu turulan script e eklemek için include fonksiyonu kullan lm t r. Bu fonksiyon nusoap.php nin konumu do ru de ilse bir uyar mesaj üretecektir, ancak script in geri kalan n i letmeye devam edecektir. Bu fonksiyona alternatif olabilecek birkaç fonksiyon daha vard r (Ayala D. ve Ark., 2002): - require: bu fonksiyon include() fonksiyonuna benzerdir, ancak hatay script in çal mas n sonland ran ölümcül bir hata olu turarak ele al r. - require_once: bu fonksiyon require() fonksiyonuna benzerdir, ancak script e dahil edilecek olan dosya halihaz rda dahil edilmi se onu tekrar dahil etmeyecektir. - include_once: bu fonksiyon include() fonksiyonuna benzerdir, ancak script e dahil edilecek olan dosya halihaz rda dahil edilmi se onu tekrar dahil etmeyecektir. 2.3.4.2. Basit bir PHP SOAP stemci Örne i Bu bölümde bir SOAP istemcisi olu turmak için gereken temel i lemler anlat lmaktad r: bir SOAP servisinin ça r lmas, ona parametre gönderilmesi ve yan t n al nmas. Dosya ismi ornekistemci.php olarak belirlenmi tir (Ayala D. ve Ark., 2002). lk olarak NuSoap s n f olu turulan script e dahil edilir (Bkz. Çizelge 2.7). Servise gönderilmek istenen string için bir de i ken olu turulur (Bkz. Çizelge 2.8). Sonras nda parametreler SOAP istemcisine bir dizi olarak aktar l r (Bkz. Çizelge 2.9).

19 Çizelge 2.7 NuSoap s n f n olu turulan script e dahil etmek <?php require_once( nusoap.php ); Çizelge 2.8 String bir de i ken tan mlamak $mesaj = 'Mesaj!'; Çizelge 2.9 Parametreleri bir dizi olarak tan mlamak $parametreler = array($mesaj); Art k soapclient nesnesi ilklenebilir. Nesne yap land r c metodu, sunucunun URL sini parametre olarak al r (Bkz. Çizelge 2.10). Çizelge 2.10 soapclient nesnesinin ilklenmesi $s = new soapclient( http://localhost/../ornekistemci.php ); Call metodu kullan larak soapclient nesnesine eri ilmek istenen servisin ne oldu u belirtilir, sonra ona parametrelerden olu an dizi aktar l r, sonras nda metot geriye sunucunun yan t n döndürür (Bkz. Çizelge 2.11). Dönen yan t PHP ye özgü bir tiptedir (string, integer, array gibi).

20 Çizelge 2.11 Call metodu kullan larak soapclient nesnesine eri mek $sonuc = $->call( ornekmetot,$parametreler); NuSOAP geterror() metodu ile hatalar belirleme olana sa lar (Bkz. Çizelge 2.12). Bir hata olu tu unda bu metot hatay tan mlayan bir hata string i geri döndürür, aksi durumda false de erini geri döndürür. Çizelge 2.12 geterror() metodu ile hatalar belirlemek if(!$hata = $s->geterror()) echo Sonuc :.$sonuc else echo Hata :.$hata 2.3.4.3. Basit bir PHP SOAP Sunucu Örne i Bu bölümde, önceki bölümde olu turulan örnek istemci taraf ndan eri ilen, ornekmetot isimli sunucu servisi gerçekle tirimi anlat lmaktad r. Öncelikle NuSOAP s n flar uygulamaya dahil edilmelidir (Bkz. Çizelge 2.13). Çizelge 2.13 NuSOAP s n flar n uygulamaya dahil etmek <?php require_once( nusoap.php ); Sonras nda soap_server s n f n n sa lad sunucu nesnesi ilklenebilir (Bkz. Çizelge 2.14).

21 Çizelge 2.14 Sunucu nesnesini ilklemek $s = new soap_server; Fonksiyonun uzaktan ça r lmas na izin vermek için fonksiyon sunucu nesnesine kay tlanmal d r (Bkz. Çizelge 2.15). Bu yap lmazsa sunucu, bir istemci servise eri ti inde servisin mevcut olmad na dair bir hata olu turacakt r. Çizelge 2.15 Fonksiyonu sunucu nesnesine kay tlamak $s = register->( ornekmetot ); Art k servis olarak sunulan fonksiyon yaz labilir (Bkz. Çizelge 2.16). Öncelikle aktar lan de erin bir string olup olmad kontrol edilmelidir. E er parametre bir string de ilse, soap_fault s n f kullan larak istemciye bu fonksiyona bir string de eri aktarmas gerekti ini belirten bir hata mesaj döndürülür.

22 Çizelge 2.16 Servis olarak sunulan fonksiyon function ornekmetot($aktarilanstring) { if(is_string($aktarilanstring)) { return $aktarilanstring; } else { return new soap_fault('client', '', 'Bu servis için gönderilen parametre string tipinde olmal d r.') } } Son ad mda gönderilen veriler SOAP sunucusunun service metoduna aktar lmal d r (Bkz. Çizelge 2.17). Bu metot gelen iste i i ler ve uygun fonksiyonu ça r r. Sonras nda yan t biçimlendirir ve yazar. Çizelge 2.17 Verilerin Soap sunucusunun servis metoduna aktar lmas $s->service($http_raw_post_data);

23 3. WEB PART Bir portal sundu u seçeneklerle kullan c ya kendi sayfas n düzenleyebilme olana verir. Farkl firmalar n farkl portal çözümleri mevcuttur. ASP.NET 2.0 di er geli tirme ortamlar ndan farkl olarak kolay bir biçimde ki iselle tirilebilen portal uygulamalar geli tirmek için haz r kontroller ve ara birimler sunmaktad r. ASP.NET 2.0 da portal web part lardan olu ur. Bir web part görsel bir bile endir. ASP.NET 2.0 da bir web part bir sunucu kontrolü, kullan c kontrolü, kullan c taraf ndan olu turulmu özel bir kontrol veya ba kalar taraf ndan olu turulmu bir bile en olabilir (Demirkol, 2007). ASP.NET 2.0 WebPart kontrolleri kullan c lara web sayfalar n n içeri ini, görünümünü ve davran n do rudan bir taray c ile de i tirebilme olana sa layan bir küme tümle ik kontroldür. Yap lan de i iklikler kullan c bazl kaydedilmektedir. Portal sayfas na yap lan her ziyarette eklenmi ve düzenmi olan tüm web part lar b rak ld klar biçimde orada olacakt r. Tüm bu i levselli in sa lanmas çok fazla kodlamay gerektirmemektedir (Liu ve Ark., 2005). http://start.com Microsoft Research taraf ndan yarat lan web tabanl bir portald r. WebPart tipi soyut bir s n f olup, bir WebPart bile eni için gerekli tüm temel alt yap y sunmaktad r. WebPart kontrolleri WebPartZone kontrolleri içinde yer almaktad r. WebPartZone kontrolleri WebPartManager kontrolleri taraf ndan yönetilmektedir. Bu kontrolleri içeren bir aspx sayfas n n mimarisi ekil 3.1 de gösterilmektedir.

24 ekil 3.1 Web Part lar kullanan bir aspx sayfas n n mimarisi Visual Web Developer 2005 Express veya Visual Studio 2005 editörlerinde web part lar için olu turulan kontroller ekil 3.2 ekil 2.1 de gösterilmektedir. ekil 3.2 Visual Studio 2005 te Web Part lar için olu turulan kontroller

25 3.1. Web Part lar n Yap Ta lar Web part lar sayfalara eklenebilen hava durumu, son haberler, duyurular gibi bilgi niteli inde bile enlerdir. Web part lar bir portal uygulamas n n dinamik içeri ini gösteren temel yap ta lar olarak dü ünülebilir. ASP.NET 2.0 da web part lar ile çal labilmesi için WebPart sunucu kontrolü sa lanm t r. Bir web part genellikle bir ba l k çubu u, bir çerçeve ve dinamik içeri i gösteren bir gövdeden olu maktad r. Bir web part, kullan c ya web part uyarlama ve kullanma olana veren bir web kontrolü ile yönetilir. ekil 3.3 te standart bir web part kontrolünü olu turan temel elemanlar gösterilmektedir. ekil 3.3 Web Part kontrolünü olu turan ö eler

26 3.2. Web Part lar Olu turmak Web part lar yaratmak için temelde iki seçenek vard r. Kullan c veya sunucu kontrollerinin bir web zone içerisine sürüklenmesi ve sonras nda çat n n bu kontrolleri GenericWebPart olarak bilinen genel bir sarmalay c içine yerle tirmesiyle veya do rudan WebPart s n f ndan türetilen bir s n f yaratarak bir web part yarat labilir. 3.2.1. GenericWebPart Kontrolü Bir web part zone una standart ASP.NET sunucu kontrollerini ekledi imizde (Button, Calendar, Label vs.), bu kontroller bir dönü ümün sonucunda birer web part olurlar. Bu kontroller verb lere, title lara ve editör part lar taraf ndan çal ma zaman nda düzenlenebilecek özelliklere sahip olurlar. Standart ASP.NET sunucu kontrolleri bir web part zone a eklendi inde Çizelge 3.1 deki gibi bir kod olu maktad r. Çizelge 3.1 GenericWebPart kontrolü için örnek kod <asp:webpartzone ID="WebPartZone1" runat="server"> <ZoneTemplate> <asp:label ID="Label1" runat="server" Text="Label"> </asp:label> </ZoneTemplate> </asp:webpartzone> WebPartZone a eklemi oldu umuz Label kontrolü yeni bir tipteki kontrol ile yer de i tirir ve WebBrowsableObject özelli i ile sarmalan r. Gerekti inde Label kontrolüne GenericWebPart n ChildControl özelli i üzerinden eri ilebilir.

27 Çizelge 3.2 GenericWebPart n ChildControl özelli ine eri mek if (wp is GenericWebPart) { Type t = ((GenericWebPart)wp).ChildControl.GetType(); string typename = t.name; } Portal çat s, Label kontrolünü zone a eklemeden önce GenericWebPart sarmal y c içerisine koyarak bir web part statüsüne yükseltir. Bu, web part zone lara eklenen tüm web part olmayan kontroller için gerçekle ir. Web part lar do rudan WebPart s n f ndan kal t m yoluyla yaratmaktansa, kullan c kontrolleri yaratabilmek ve onlara web part gibi davran labilmesini sa lamak web part lar n h zl bir biçimde ve kolayca yarat labilmesini olanakl k lar (Neimke, 2006). 3.2.2. Kal t mla Özel Bir Sunucu Kontrolü Olu turmak Bu bölümde soyut bir web part s n f ndan kal t mla özel bir sunucu kontrolü (web part) olu turulmas ve sonras nda olu turulan bu web part n bir web sayfas na kaydedilerek eklenmesi anlat lmaktad r. Kullan c kontrollerini zone lar üzerine sürüklenmesi ve onlara web part m gibi davran lmas, web part lar n ba ka uygulamalarla payla lmas gerekmiyorsa iyi bir yöntemdir. Yeniden kullan labilirlikte kullan c kontrolleri özel kontrollerden daha üstün de ildir; çünkü özel kontroller uygulamalar aras nda payla labilmektedir. Web part lar n z kendi uygulamalar n z aras nda payla man z gerekiyorsa veya üçüncü partiler taraf ndan yeniden kullanmak üzere paketlemek istiyorsan z özel kontroller yaratmay tercih edebilirsiniz. Bunu yapmak için

28 do rudan WebPart s n f ndan türetilen özel s n flar yarat lmas gerekmektedir (Neimke, 2006). WebPart s n f System.Web.UI.WebControls.WebParts isim uzay nda ya maktad r ve tüm web part kontrolleri için temel s n f olarak hizmet vermektedir. GenericWebPart, WebPart s n f ndan türetilmi tir. WebPart s n f ise Part isimli temel bir s n ftan türetilmi tir. Part s n f tüm web part lara ili kin temel özelliklere -description, title gibisahiptir. Çizelge 3.3 WebPart s n f ndan kal t mla bir web part olu turulmas public class CustomWeatherPart : WebPart { public CustomWeatherPart() {... } } Özel sunucu kontrolleri ile çal ld nda kar la abilecek problemlerden biri kullan c arayüzü elemanlar n n kodlar arac l ile olu turulmas d r. Kod içerisinde bir kontrolün gösterilmesi, stil bilgileri dahil ona ili kin tüm özelliklerin kod içerisinde olu turulmas n gerektirmektedir. Bir kontrolün sunumu için gereken kod miktar artt kça özel sunucu kontrollerinin olu turulmas oldukça zorla abilmektedir. Kullan c kontrolleri kullan ld nda ise, kullan c kontrollerinin araç kutusu üzerinden istenilen yere sürüklenmesi için Visual Studio nun tasar m zaman araçlar kullan labilir. Ayr ca kontrolün özelliklerinin de i tirilmesi için Visual Studio içerisindeki özellik editörleri ve di er sihirbazlar kullan labilir.

29 Özel sunucu kontrolleri için arayüz elemanlar, kontrolün Render metodu boyunca çal an kodlar yaz larak olu turulmaktad r. Render metodu tüm web kontrolleri için ortak bir metottur. Her bir web kontrolünü göstermek için ASP.NET çal ma zaman taraf ndan ça r lmaktad r. Render metodunda kullan c arayüzü elemanlar do rudan HtmlTextWriter nesnesinin içerisine yaz l r. Bu nesne, ASP.NET çat s arac l yla parametre olarak Render metoduna geçirilir. Çizelge 3.4 özel sunucu kontrolleri için örnek bir Render metodu gösterilmektedir. Çizelge 3.4 Özel sunucu kontrolleri için örnek Render metodu protected override void Render(HtmlTextWriter writer) {... Image img = new Image(); img.imageurl = string.format("~/images/{0}.gif", todaysphoto.tostring()); img.alternatetext = "Today's Photo"; writer.addstyleattribute(htmltextwriterstyle.textalign, "center"); writer.renderbegintag(htmltextwritertag.div); img.rendercontrol(writer); writer.writebreak(); writer.write(todaysweather.tostring()); writer.renderendtag(); } Sunucu kontrolünün sayfaya kay tlanmas gerekmektedir (Bkz. Çizelge 3.5). Çizelge 3.5 Sunucu kontrolünün sayfaya tan t lmas <%@ Register TagPrefix="wp" Namespace="CustomWebPartNs" %>

30 Kontrol sayfaya kay tland ktan sonra olu turulmu olan özel web part bir ZoneTemplate içerisinde kullanabilir. Çizelge 3.6 da özel bir web part n ZoneTemplate içerisinde kullan m na bir örnek verilmektedir. Çizelge 3.6 Özel web part kontrolünün kullan lmas <asp:webpartmanager ID="WebPartManager1" runat="server"> </asp:webpartmanager> <asp:webpartzone ID="WebPartZone1" runat="server"> <ZoneTemplate> <wp:customweatherpart ID="CustomWeatherPart1" runat="server" Title="Todays Photo" /> </ZoneTemplate> </asp:webpartzone> 3.2.3. Kullan c Kontrollerini Kullanarak Web Part Olu turmak Kullan c kontrolleri ascx uzant l özel dosyalard r. Kullan c kontrolleri de web part olarak kullan labilmektedir. Benzer biçimde ascx dosyalar da web part zone lara eklenerek web part olarak kullan labilmektedir (Neimke, 2006). Günün tarihini gösteren bir web part olu turmak üzere haz rlanan bir kullan c kontrolü Çizelge 3.7 de gösterilmektedir. Çizelge 3.7 Günün tarihini gösteren kullan c kontrolü <div> <span style="width: 100px"> Todays Date: </span> <%= DateTime.Now.ToShortDateString() %> </div>

31 Haz rlanan kullan c kontrolü sayfa tasar m modundayken bir web part zone içerisine sürüklenip b rak ld nda kullan c kontrolü için Register ifadesinin ve kodun ZoneTemplate gövdesine eklendi i görülebilir. Çizelge 3.8 Günün tarihini gösteren web part <%@ Register Src="TodaysDate.ascx" TagName=" TodaysDate" TagPrefix="uc1" %> <asp:webpartzone ID="WebPartZone1" runat="server"> <ZoneTemplate> <uc1:todaysdate id=" TodaysDate" runat="server" Title="Todays Date" /> </ZoneTemplate> </asp:webpartzone> Özel sunucu kontrolleri kullan larak ve temel WebPart s n f ndan türetme yoluyla veya kullan c kontrolleri kullan larak web part lar olu turulabilmektedir. 3.3. Web Part S n f n n Yap s Bu bölümde WebPart s n f n n destekledi i arayüz ve özellikler, bu arayüz ve özelliklerin di er portal çat bile enlerinin onunla etkile mesine nas l olanak sa lad anlat lmaktad r. WebPart s n f 3 arayüzü gerçekle tirmektedir: - IWebPart: Bir web part n çekirdek özelliklerini tan mlar. Title, Description, Height ve Width gibi. - IWebActionable: Bir web part n sa lad verb leri tan mlar.

32 - IWebEditable: Web part n baz özelliklerini yönetmek için özel editör part lar sa layan bir web part tan mlar. WebPart s n f bu üç arayüzü gerçekle tirdi inden, portal çat s n n her bir parças tüm web part lar ile etkile imde bulunabilmektedir. Örne in, bir sayfa ilk görüntülendi inde her bir web part n yetkisi web part manager a verilir. Sonras nda web part manager bu arayüzleri bir web part n sahip oldu u yetenekleri belirlemede kullanmaktad r. Bu nedenle, web part manager bir web part n yetkisini ald nda, ilgili web part n özellikleri hakk nda herhangi bir ey bilmek zorunda de ildir. Ancak web part manager, kontrolün title ve verbs gibi ay rdedici özelliklere sahip oldu unu bilir. 3.3.1. IWebPart IWebPart arayüzü tüm web part lar için ortak olan özellikleri tan mlamaktad r (Neimke, 2006). - CatalogIconImageUrl: Web part bir web part katalo unda görüntülendi inde, web part için gösterilen resmin URL sidir. - Description: Bir web part, web part katalo unda görüntülendi inde, o web part hakk ndaki tan mlay c metindir. Bu özellik bir web part hakk nda araç bilgisi bilgisinin gösterilmesinde kullan l r. - Subtitle: Bir web part kontrolünün tam ba l n olu turmak için Title özelli i ile birlikte kullan l r. - Title: Bir web part kontrolünün ba l d r. - TitleIconImageUrl: Web part n ba l k çubu unda gösterilen resmin URL sidir.