SlideShare une entreprise Scribd logo
1  sur  54
İÇİNDEKİLER
ŞEKİLLER DİZİNİ..............................................................................................................................2
TABLOLAR DİZİNİ............................................................................................................................3
ÖZET....................................................................................................................................................4
SUMMARY..........................................................................................................................................5
ÖNSÖZ................................................................................................................................................5
BÖLÜM I...............................................................................................................................................6
  GİRİŞ...............................................................................................................................................6
BÖLÜM II..............................................................................................................................................7
  2.1. PROJEDE KULLANILAN TEKNOLOJİLER........................................................................8
     2.1.1. ASP.NET Ve .NET Framework........................................................................................8
        2.1.1.1. .NET FRAMEWORK .............................................................................................8
        2.1.1.2. Server Kontrol ..........................................................................................................8
        2.1.1.3. Web.Config ...............................................................................................................8
        2.1.1.4. State Management.....................................................................................................9
        2.1.1.5. XML........................................................................................................................10
        2.1.1.6. Master Page.............................................................................................................11
        2.1.1.7. Web User Control ...................................................................................................15
             2.1.1.7.1 Özellikleri ........................................................................................................15
     2.1.2.SQL Ve MSSQL...............................................................................................................16
        2.1.2.1. SQL Veri Tanımlama Deyimleri..............................................................................16
        2.1.2.2. SQL Deyimleri........................................................................................................17
        2.1.2.3. DML (Data Manipulation Language) Deyimleri....................................................18
        2.1.2.4. DCL (Data Control Language) Deyimleri...............................................................23
        2.1.2.5. SQL FONKSİYONLARI........................................................................................23
             2.1.2.5.1. Gruplama Fonksyonları...................................................................................23
     Değerlerin toplamlarını verir. SUM fonksiyonu sadece sayısal alanlarda kullanılır................25
  2.2. Kodlama Standartları..............................................................................................................26
     2.2.1. Tanımlar ve Kısaltmalar..................................................................................................26
        2.2.1.1. PascalCase...............................................................................................................26
        2.2.1.2. CamelCase...............................................................................................................26
        2.2.1.3. UpperCase...............................................................................................................26
        2.2.1.4. LowerCase...............................................................................................................26
     2.2.2. C# İsimlendirme Standartları..........................................................................................26
        2.2.2.1. Değişken Tanımlama Standartları...........................................................................27
        2.2.2.2. Genel Hata Yönetimi...............................................................................................27
        2.2.2.3. Programlama Pratikleri............................................................................................27
        2.2.2.4. Veritabanı Nesne Adlandırma Kuralları..................................................................28
        2.2.2.5. Tabloların İsimlendirilmesi.....................................................................................28
        2.2.2.6. Saklı Prosedürlerin İsimlendirilmesi.......................................................................29
        2.2.2.7. Tetikleyicilerin (Trigger) İsimlendirilmesi..............................................................30
        2.2.2.8. Birincil Anahtarlar (Primary Keys).........................................................................30
        2.2.2.9. Sekanslar(Sequences)..............................................................................................30

                                                                           1
2.2.3. PROJE İÇERİĞİNİN ANLATILMASI..........................................................................30
      2.2.3.1.UYGULAMA KISMI...............................................................................................30
         2.2.3.1.1. Öğrenci Kısmı..................................................................................................32
         2.2.3.1.2. Öğretim Üyesi Kısmı........................................................................................37
         2.2.3.1.3. Admin Kısmı....................................................................................................40
      2.2.3.1. VERİTABANI KISMI.............................................................................................44
         2.2.3.1.1. Saklı Yordamlar - Stored Procedures...............................................................44
         2.2.3.1.2. Tablolar............................................................................................................47
SONUÇ VE ÖNERİLER...................................................................................................................52
KAYNAKLAR...................................................................................................................................53




ŞEKİLLER DİZİNİ

Şekil 2.1. State Management olmadığı durum
Şekil 2.2. State management olduğu durum
Şekil 2.3. Master Page ve aspx sayfalarının ortak çalışma mimarisi
Şekil 2.4. Master page oluşturma
Şekil 2.5. Master Page oluşturma


                                                                      2
Şekil 2.6. Saklı yordamların avantajları
Şekil 2.7. Projeye ait solution explorer görüntüsü
Şekil 2.8. Tüm kullanıcıların giriş yaptığı anasayfa
Şekil 2.9. Randevu Al sayfası.
Şekil 2.10. Randevu Al sayfasında öğrenci bilgilerinin girilmesi ve dosya ekleme işlemi
Şekil 2.11. Randevu Al sayfası tüm bilgilerin girilmiş hali
Şekil 2.12. Randevu Sil sayfasında randevuların listelenmesi
Şekil 2.13. Randevu Sil sayfasında randevu silindikten sonraki uyarı ekranı
Şekil 2.14. Öğretim üyelerinin sisteme giriş yaptıkları sayfa.
Şekil 2.15. Şifre Hatırlatma Sayfası
Şekil 2.16. Öğretim görevlilerine ait anasayfa
Şekil 2.17. Ofis Saatleri sayfasında uygun randevu saatlerinin listelenmesi ve ayarlanması.
Şekil 2.18. Öğretim görevlisine ait randevu görüntüleme ve düzenleme sayfası
Şekil 2.19. Sistem yöneticisi giriş sayfası
Şekil 2.20. Sistem yöneticisi anasayfası
Şekil 2.21. Sistem yöneticisinin bölüm eklemek ve silmek için kullandığı sayfa
Şekil 2.22. Sistem yöneticisinin fakülte eklemek ve silmek için kullandığı sayfa
Şekil 2.23. Sistem yöneticisinin başka bir sistem yöneticisi eklediği sayfa
Şekil 2.24. Sistem yöneticisinin öğretim üyesi kaydı yaptığı sayfa
Şekil 2.25. Sistem yöneticisi tarafından kullacıların listelenmesi ve silinmesi işlemleri sayfası




TABLOLAR DİZİNİ
Tablo 2.1. Bölümler Tablosu
Tablo 2.2. Fakülteler Tablosu
Tablo 2.3. Kullanıcı Bilgileri Tablosu


                                                   3
Tablo 2.4. Kullanıcı Bilgileri Tablosu
Tablo 2.5. Eklenen randevular tablosu
Tablo 2.6. Randevu Saatleri Tablosu




ÖZET

Online Okul Web Otomasyon Sistemi; ilköğretim, Lise, Yüksekokul ve Özel eğitim kurumları için
hazırlanmış bir otomasyon sistemidir.


Bu sistem ile okullara ait her türlü bilgi, duyuru, doküman, resim gibi içerikleri online bir şekilde
web sitesinde yayınlanabilmektedir.

Sistem sadece web üzerinden yayınlanan içeriklerden öte, öğrenci bilgi sistemini de içermektedir.
Bu sistem ile öğrenci ve veliler not, devamsızlık, öğretmen görüşleri ve ödevlerini internet
üzerinden takip edebilirler.


                                                   4
Okulda kullanılan programa girilen bilgilerin ayrıca web not sistemine girilmesine gerek kalmadan
tüm bilgiler web sayfasına aktarılabilmektedir.. Bu işlem sayesinde büyük bir kolay sağlanmakta,
bilgilerin teker teker girilerek işlemlerin zorlaşması önlenmektedir.

Öğretmenler internet erişimi olan her bilgisayardan öğrenci notları, ödevleri ve öğrenciler
hakkındaki görüşleri sisteme girebilirler. Ayrıca öğretmenlerin genel ihtiyaçları arasında olan sınıf
listeleri, öğrenci not durumu, devamsızlıklık durumu gibi listelere sistem üzerinden ulaşabilirler.

Sistemin en büyük amacı öğrenci-Veli-Öğretmen-İdareci işbirliğini arttırmak ve bunun sonucu
olarak eğitimde kaliteyi yükseltmeyi hedeflemektedir. Sistemin kolay kullanılması, web üzerinden
güncellenebilmesi, sistemi kullanmak için ekstra internet bilgisine gerek kalmaması öğrenci ,veli ve
öğretmenlerin işlemlerini kolaylaştırması büyük önem taşımaktadır.




SUMMARY




    ÖNSÖZ


Sunmuş olduğumuz proje online bir Okul Otomasyon sistemidir. Sistem okullara ait her türlü bilgi,
doküman, duyuru gibi bilgilerin paylaşılmasına, öğretmenlerin, ilgili öğrencilerinin notlarını kolay
bir şekilde sisteme kaydedebilmesi, yönetebilmesi ve değerlendirebilmesine, öğrencilere ait
bilgilerin kolayca erişilebilmesine, öğrencilerin kendilerine ait not listesi, devamsızlık listesi gibi bir
takım bilgilere ulaşabilmesine olanak sağlamaktadır. Ayrıca idareciler de kendileri ile ilgili
sorumlulukları dahilindeki alanlara veri girme,                   güncelleme işlemlerini kolayca
gerçekleştirebilmektedir. Bu proje ile öğrenci-Veli-Öğretmen-İdareci işbirliğini arttırmak ve bunun
sonucu olarak eğitimde kaliteyi yükseltmeyi hedeflemiştir.


                                                                         Saygılarımızla,

                                                    5
Enes ÇAĞLAR - Şeyda YILMAZ




BÖLÜM I




GİRİŞ


Online Okul Web Otomasyon Sistemi; ilköğretim, Lise, Yüksekokul ve Özel eğitim kurumları için
hazırlanmış bir otomasyon sistemidir.


Bu sistem ile okulunuza ait her türlü bilgi, duyuru, doküman, resim gibi içerikleri online bir şekilde
web sitenizde yayınlayabilirsiniz.

                                                  6
Sistem sadece web üzerinden yayınlanan içeriklerden öte, öğrenci bilgi sistemini de içermektedir.
Bu sistem ile öğrenci ve veliler not, devamsızlık, öğretmen görüşleri ve ödevlerini internet
üzerinden takip edebilirler.

Okulda kullandığınız programa girdiğiniz bilgileri ayrıca web not sistemine girmenize gerek
kalmadan tüm bilgileri web sayfasına aktarabilirsiniz. Bu işlem sayesinde büyük bir kolay
sağlanmakta, bilgilerin teker teker girilerek işlemlerin zorlaşması önlenmektedir.

Öğretmenler internet erişimi olan her bilgisayardan öğrenci notları, ödevleri ve öğrenciler
hakkındaki görüşleri sisteme girebilirler. Ayrıca öğretmenlerin genel ihtiyaçları arasında olan sınıf
listeleri, öğrenci not durumu, devamsızlıklık durumu gibi listelere sistem üzerinden ulaşabilirler.

Sistemin en büyük amacı öğrenci-Veli-Öğretmen-İdareci işbirliğini arttırmak ve bunun sonucu
olarak eğitimde kaliteyi yükseltmeyi hedeflemektedir. Sistemin kolay kullanılması, web üzerinden
güncellenebilmesi, sistemi kullanmak için ekstra internet bilgisine gerek kalmaması öğrenci ,veli ve
öğretmenlerin işlemlerini kolaylaştırması büyük önem taşımaktadır.

Okul otomasyon sistemi .Net kullanılarak hazırlanmıştır. Veritabanı olarak MSSQL veritabanı
kullanılmıştır. ASP.NET ile üç katmanlı mimari ile hazırlanmış olup veritabanı işlemleri için stored
procedur ler kullanılarak güvenlik sağlanmıştır.
Proje dört ana kısımda incelenebilir. Bunlar öğrenci, öğretmen, editör ve idareci kısımlarıdır. Her
bir kullanıcının görevleri ayrıdır ve sistemden bu görevleri yerine getirebilirler. Her bir kullanıcı
kendilerine ait kullanıcı adı ve şifrelerini kullanarak sisteme giriş yaparlar ve kendilerine ait alanları
görebilirler. Aşağıda her bir kullanıcı için kullanıcının yapabileceği işlevler belirtilmiştir.
Öğrenci ve Veliler internet üzerinden öğrencinin derslerine ait yazılı, sözlü ve ödev notlarını
görebilir, Öğrencinin yapmış olduğu devamsızlıklık durumunu sistemden öğrenebilirler. Ayrıca ders
öğretmenleri tarafından verilen ödevleri ve öğretmenlerin öğrenci hakkındaki görüşlerini sistemden
takip edebilirler.




BÖLÜM II

PROJEDE KULLANILAN TEKNOLOJİLER

KODLAMA STANDARTLARI

PROJE İÇERİĞİNİN ANLATILMASI




                                                    7
2.1. PROJEDE KULLANILAN TEKNOLOJİLER


Proje ASP.NET ve C# yazılım dilleri kullanılarak yazılmıştır. Veritabanı sunucusu olarak ise
Microsoft SQL Server 2005 veritabanı sunucusu kullanılmıştır. ASP.NET teknolojisi çok geniş bir
alana yayılmaktadır. Aşağıda bu teknolojinin projede kulanılan bazı kısımlarına değinilmektedir.

2.1.1. ASP.NET Ve .NET Framework

2.1.1.1. .NET FRAMEWORK

.Net Framework, .Net platformunun bir dayanak noktasıdır. .Net Framework gücünü içerisinde
barındırdığı yüzlerce sınıf (class) kütüphanesinden alır. .Net framework, sunucu tarafında çalışan bir
yapı kurulabilmesini sağlar, olaya dayalı programlama modeli sayesinde daha hızlı ve verimli
uygulamalar geliştirebilmesini ve bunları istenilen programlama diliyle yazabilmesini sağlar.

                                    .Net’in destek verdiği diller
Visual Basic       C#                 Microsoft         Microsoft Jscript Microsoft Visual C++
.Net                                  Visual J# .NET    .Net
 Pyhton             Oberon            Perl              Haskell            APL
Cobol               Scheme            Pascal             ML                Eiffel
Mercury            Ada                SmallTalk         Caml               C

Çoklu dil desteğinin avantajları:

   •    • Kod modülleri yeniden kullanılabilir. Bir kod modülü, bir dil içinde yazılıp farklı diller
        içinde kullanılabilir.
   •    Tüm diller için object kütüphanesi aynıdır ve aynı object modeli kullanılır.
   •    Eski dillerde yazılmış programlar güncellenebilir.
   •    .NET Framework içindeki tüm diller eşit performansa sahiptir. Bütün .NET tabanlı diller
        Microsoft Intermediate Language (MSIL)’a derlenir. Tüm MSIL ler native kod’a derlenir.
        Bu run-time’dır ve hepsi aynı derleyici kullanır.


2.1.1.2. Server Kontrol

Kullanıcı arabirimi veya diğer ilişkisel fonksiyonlar oluşturmak üzere Server üzerinde çalışan
componentlere server kontrol denir. Server kontroller runat= “server” özelliğine sahiptirler.


2.1.1.3. Web.Config

Asp.Net’in yeniliklerinden olan web.config dosyası aslında bir ayar dosyasıdır. Ayarları bir XML
formatında oluşturur ve ona göre kullanıcı işlemleri gerçekleştirilir. Web.config dosyası Asp.Net

                                                  8
çalışmalarında mutlaka olmalıdır. Web.Config olmadığı durumlarda daha üst bir seviyede
olan machine.config dosyası bulunmaktadır. Web.Config olmadığı durumlarda bu dosyadan ayarlar
okunur.

Bir web site oluşturulduğunda Soution Explorer'da web.config dosyasının eklendiğini görülür.
Web.Config dosyamızın birimleri aşağıdaki gibidir.

Birim Adı                                          Tanımı
<trace>                                            Asp.Net trace ayarlarının yapılmasını sağlar.
<globalization>                                    Uygulada herhangi bir hata verdiğinde ne
                                                   yapılması gerektiği belirlenebilir. Hata sayfasına
                                                   git, mesaj iletisi ver gibi işlemler yapılabilir.
<authentication>                                   Üyelik sistemlerinde kullanıcıların geçerliliğini
                                                   sağlamak için kullanılır.
<sessionState>                                     Session state ayarlarını bulundurur.
<webservices>                                      Web servisleri ile ilgili ayarları tutar.
<securityPolicy>                                   Kullunılabilecek güvenlik ayarlarını içerir.

Örnek verilecek olursa; KOURYS projesinde veritabanına bağlanmak için tanımlanan connection
string nesnesi, webconfig dosyasında şu şekilde tanımlanmıştır.

<appSettings>
  <add key="systemConnectionString" value="Data Source=SEYDA-PCSQLEXPRESS; Initial
Catalog=OkulOtomasyon; Integrated Security=sspi"></add>
 </appSettings>


2.1.1.4. State Management

Web sayfalarında en çok kullanılan yöntemlerden biriside bir bilginin sayfalar arasın geçiş
yapmasıdır.
Bunun en iyi örneği üye girişi yapan bir kullanıcının web sitesinde dolaşabilmesidir. Asp.Net
teknolojisi sayfalar arasında kullanıcı bilgilerini tutmayı (state) sağlar. Bu tarz uygulamalar
windows uygulamalarda rahatlıkla yapılırken, her isteği sürekli olarak server’a post edilmesinden
dolayı Asp.Net uygulamalarından biraz farklıdır.
State management yok ise gönderilen bilgileri diğer sayfalar algılayamayacaktır.




                                                  9
Şekil 2.1. State Management olmadığı durum




                                Şekil 2.2. State management olduğu durum

Kullanıcı bilgilerini saklamak ve kullanmak için kullanabilecek yöntemler vardır. Bunlar:

    •   View State
    •   Session State
    •   Application State


View State kontrolü kendisine verilen bilgiyi gizli bir alanda tutar. Bu bilgi hafızaya Base64
formatında bir karakter dizisi olarak yazılır ve her geri postalamada(postback) sunucuya getirilir.
Ancak viewstate özelliği sunucu kontrolleriyle sınırlıdır. Yüklenen bilgi ya sizin tarafınızdan
oluşturlan bir custom object ya da basit bir bilgi türü olmak zorundadır.

Session State kontrolü HttpSessionState sınıfını kullanır. Kullanıcıların bilgilerini içeren kod
bilgileri, 120‐bit’lik Session ID’de tutulur. Bilgileri tespit etmek, Session ID yardımı ile olur.
Session tanımlama ASP.NET'te şu şekilde olabilir:

Session["OgrenciNo"] = reader["OgrenciAdi"].ToString();

Burada veritabanından dönen bir değer Session[“OgrenciNo”] isimli session a atılmıştır. Diğer
sayfalara geçiş yapıldığında bu nesne kullanılabilecektir.
Application State web uygulaması içindeki türm sayfalar için global bir sistemdir. Ziyaretçi sayısını
tutulması Application üzerinden kullanılır.

2.1.1.5. XML

Bağımsız bir kuruluş olan W3C (World Wide Web Consortium) organizasyonu tarafından tasarlanan
ve herhangi bir kurumun tekelinde bulunmayan XML (eXtensible Markup Language), kişilerin
kendi sistemlerini oluşturabilecekleri, kendi etiketlerini tanımlayarak çok daha rahat ve etkin
programlama yapabilecekleri ve bu belirlenen etiketleri kendi yapıları içerisinde standardize

                                                          10
edebilecekleri esnek, genişleyebilir ve kolay uygulanabilir bir meta dildir.

Çok farklı tipteki verileri orjinal formatlarında tek bir havuzda tutabilen XML, bilgiye hızlı, kolay
ve ortamdan bağımsız olarak erişebilme imkanı sunar. Günlük yaşantımızda kullanmakta
olduğumuz verilerin %80'ini oluşturan ve "unstructured" olma özellikleri nedeniyle kendi
bulundukları medya dışında veri özelliklerini koruyamayan (kelimeişlem, elektronik tablo çıktıları,
PDF dokümanları, ses,resim vb) farklı tipteki verilerin, oryantasyona gerek duymadan hiyerarşik bir
yapıda kullanılabilmelerine olanak vermekte ve bu verilerin hızlı bir şekilde sorgulanabilmelerini
sağlamaktadır. Öncelikle veri transferinin kolaylaşmasını ve verinin içerik bilgisiyle
saklanabilmesini hedefleyen XML, içerik ve sunum bilgilerini birbirinden ayırır. Bu özelliği ile de
HTML'den farklılaşır.

   •   XML bir document'in(belgenin) yapısını ve görünümünü tanımlamak için kullanılan
       uluslararası bir standartdır.
   •   XML (Extensible Markup Language - Genişletilebilir İşaretleme Dili) yapılandırılmış belge
       ve verilerin evrensel formatıdır
   •   XML text tabanlı markup dilidir ve data alış verişinde kullanılan bir standard'ır
   •   XML bilginin yapısını tanımlamak için kullanılan bir teknolojidir.
   •   XML bilgiyi tanımlayan ve web'te bilgi alış verişi için kullanılan standard bir biçimdir.
   •   XML markup dillerini tanımlayan bir metadilidir.
   •   XML verinin yapılandırılması ve tanımlanması için kullanılan bir teknolojidir.

XML herhangi bir verinin biçimlenmesi,tanımlanması için kullanılan bir teknolojidir.
Yukarıdaki tanımlar birbirine benzemektedir. Bazı kelimeler veri, tanımlama,standart vs.. gibi çok
fazla kullanılmış. Tanımlardaki bir farklılık XML'in hem bir teknoloji hem de bir dil olmasından
doğmaktadır. Bazı tanımlar sadece XML teknolojisini tanımlarken bazıları dil olarak XML'i
tanımlamışlardır.

Bütün bu tanımlardan şu sonuçlar çıkarılabilir:

   •   XML hem bir teknolojidir hem de bir dildir.
   •   XML dil olarak markup dil'leri yaratmaya yarar.
   •   XML verileri tanımlamak için kullanılan bir teknolojidir.
   •   XML verileri tanımlamak için bir standart oluşturmak için yaratılmıştır.
   •   XML verileri standart bir şekilde tanımladığından web'te veya herhagi iki program arasında
       veri alış verişi kolaylaştırmaktadır.

     XML dil olarak markup dil'i yaratmaya yarar. Markup dillerine örnek olarak HTML,WML gibi
örnekler verilebilir. Bu dillerde veriler bazı işaretlerle (etiket) işaretlenirler. Örneğin bir HTML
kodunda bir başlık yazısı <h1> etiketi ile işaretlenir. Sonuç olarak bir belgedeki verileri
işaretlemeye yarayan dillere markup dilleri denir.

2.1.1.6. Master Page

Internet siteleri göz önüne aldındığında, siteye ait sayfaların sıklıkla aynı şablonları kullandığı
görülmektedir. Özellike, header, footer, navigasyon ve advertisement alanları, çoğunlukla siteye ait
tüm sayfalarda aynı yerlerde kullanılır. Bu, siteye ait sayfaların standart olarak aynı görünümde
olmasını sağlamakla kalmaz, değişen içeriğinde ortak bir şablon üzerinde durmasına imkan tanır.


                                                  11
Html’ in ilk zamanlarında, bu tarz işlemleri gerçekleştirmek için, ortak olan alanlar kopyalanarak
diğer sayfalara yapıştırılırdı. Ya da, ana şablonu ihtiva eden bir sayfadan diğer sayfalar "save as"
metodu ile oluşturulur ve içerikleri değiştirilirdi. Bu tekniğin en büyük dezavantajı, şablondaki
herhangi bir değişikliğin diğer sayfalara yansıtılması sırasında ortaya çıkmaktadır. Nitekim yüzlerce
alt sayfaya aynı şablon uygulanıyorsa, bu gerçekten büyük bir problemdir.

Bu soruna çözüm Asp ile gelmiştir. Asp, include takılarını kullanarak, sayfalarda tekrar eden
içeriklerin kolayca kullanılabilmesini ve değişikliklerin tüm sayfalarda görünebilmesini sağlamıştır.
Ancak elbetteki include takısınında bir takım sorunları vardır. Bunlardan birisi, tasarım zamanında
include takısının işaret ettiği içeriğin görünememesidir. Dolayısıyla sayfanın bütünün nasıl
göründüğünü inceleyebilmek için mutlaka çalıştırmak gerekmektedir. Diğer yandan, include tekniği
takılar üzerine kurulu olduğundan, özellikle açık unutulan takılar sayfalarda istenmeyen Html
çıktılarının oluşmasına yol açmaktadır.

Asp.Net, bu tip ortak içeriklerin kullanılmasına daha güçlü ve etkin bir yaklaşımı getirmiştir. User
Controls (Kullanıcı tanımlı kontroller), normal aspx içeriğine sahip olabilmekte ve .Net mimarisinin
güçlü özelliklerini kullanabilmektedir. Her ne kadar etkili bir teknik olsada, user control’'ler içinde
tek bir sorun öne çıkmaktadır. Bu sorun, tasarım zamanında user control içeriğinin
görülememesidir.

Asp.Net 2.0, Master Page yaklaşımı ile, yukarıda bahsedilen dezavantajları ortadan kaldırmayı
başarmıştır. Bir Master Page, uygulandığı diğer aspx sayfalarının nasıl görünmesi gerektiğine karar
veren bir şablon gibidir. Ancak, sağladığı ContentPlaceHolder bileşeni sayesinde, Master Page’ leri
uygulayan diğer aspx sayfalarının, istenilen içeriğe sahip olmasınıda sağlamaktadır. En güzel yanı
ise, normal bir aspx sayfası gibi tasarlanabilmesi, yani html, image, server control gibi üyeleri
içerebilmesidir. Bunlara ek olarak, olay güdümlü programlama modelinide destekler. Dolayısıyla
bir Master Page aslında bir aspx sayfasından farksızdır.

Ancak asıl fark, bir Master Page bir aspx sayfasına uygulandığında ortaya çıkar. Master Page’ i
uygulayan bir aspx sayfası tarayıcıda açıldığında tarayıcıya gelen sayfa, Master Page ile aspx
sayfasının birleştirilmesi sonucu ortaya çıkan başka bir aspx sayfasıdır. Bu, .net framework’ ün
getirdiği partial class tekniği sayesinde gerçekleşebilmektedir. Bunun, Master Page’ i uygulayan
aspx sayfalarına getirdiği değişik kodlama etkileride vardır.

Projede kullanılan Master Page'in oluşturulma aşamalarına değinildiğinde, ilk olarak, Visual
Studio.Net 2008'de bir web sitesi açılmalıdır. Siteye Master Page eklemek için tek yapılması
gereken, Solution’'a sağ tıklamak ve Add New Item’ den gelen pencerede, Master Page tipini
seçmektir. Master Page’ ler master uzantılı dosyalardır.




                                                  12
Şekil 2.4. Master page oluşturma

Masterpage'i oluşturduktan sonra bu sayfalara her bir yeni sayfa türetildiğinde eklenecek yeni
özellikler için bir alan ayrılmalıdır. Bu da ContentPlaceHolder bileşeni ile gerçekleştirilmektedir.
Burada ContentPlaceHolder bileşeni, bu Master Page’ i uygulayacak olan sayfaların serbestçe
erişebilecekleri ve içerik oluşturabilecekleri alanları tanımlamaktadır. Master Page’ lerde, normal
aspx sayfaları gibi tasarlanabilirler. Bir başka deyişle, Html kodları, aspx bileşenleri vb.
içerebilirler.

Projeye ait MasterPage.master isimli masterpage, image, menu ve ContentPlaceHolder ve
PlaceHolder bileşenlerinden oluşmaktadır.




                                                13
Şekil 2.5. Master Page oluşturma

Burada standart olarak bir web sayfasının tasarlanmasından farklı bir işlem yapılmamıştır. En
önemli nokta Master Page’ i uygulayacak sayfaların içeriklerini yazabilecekleri ContentPlaceHolder
bileşeninin kullanılmasıdır. Dilersek bir Master Page içinde, birden fazla ContentPlaceHolder
bileşeninede yer verebiliriz. Master Page’ in aspx kodlarına bakıldığında normal aspx sayfalarına
göre en önemli değişik page direktifi yerine master direktifinin kullanılmasıdır. Master direktifi
sayfanın bir Master Page olduğunu belirtmektedir.

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="AnaSayfa" %>

ContentPlaceHolder bileşeni ise,

<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>

Anasayfanın masterpage tabanlı oluşturulması için anasayfaya yazılması gerek kod şu şekilde
olmaktadır:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="OkulOtomasyon-AnaSayfa.aspx.cs" Inherits="AnaSayfa" Title="OkulOtomasyon-Anasayfa" %>

Yukarıda bulunan tek satır aslında çok şey ifade etmektedir. Herşeyden önce, MasterPageFile
özelliği, sayfaya uygulanan Master Page’ in yolunu belirtir. Bu, sayfanın bir Master Page’ i
uyguladığını başka bir deyişle master page’ den türetilerek üretildiğini gösterir. Kendi sınıfı ve
code-behind dosyası vardır.

Eğer sayfadaki Content alanı içerisinde düzenleme yapmak istenirse bunu sağlayabilmek için,
Master Page’ de yer alan ContentPlaceHolder bileşeninin, bu sayfada bir Content bileşeni ile
eşleştirilmesi gerekmektedir. Bunun için, web sayfasına aşağıdaki aspx kodları yazılmalıdır.
Content bileşeninin, ContentPlaceHolderID özelliği, uygulanan Master Page’ deki hangi
ContentPlaceHolder bileşenini eşleştireceğini belirtmektedir. Bu özelliğin değeri, birden falza
ContentPlaceHolder’ ın, Master Page’ i uygulayan sayfalarda eşleştirilmesinde önem kazanır.


                                                     14
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="server">   </asp:Content>

Projede kullanılan diğer bir master page ise master isimli master page'tir. Bu master page'in içeriği
örnek verilerek hem contentPlaceHolder hem de masterpage'in diğer özellikleri açıklanabilir:

Eklenmiş olan tüm kontroller ve diğer içerikler, ContentPlaceHolder bileşenine ait takılar içerisinde
yer almaktadır. Diğer taraftan ContentPlaceHolder takıları dışında herhangibir içerik oluşturmayı
sağlayacak bileşenleri kullanma imkanı yoktur. Bir diğer önemli özellik de, içeriğin herhangi bir
form takısı içerisinde yer almıyor oluşudur. Bunun sebebi, form takısının zaten Master Page’ de
uygulanmış olmasıdır. Dolayısıyla web sayfası, Master Page’ den kalıtımsal olarak türetildiği için
form           takılarının        burada           kullanılmasına          gerek             yoktur.

2.1.1.7. Web User Control

Daha önceden varolan bazı server ve HTML componentlerini kullanarak yeni bir görünüş
yapmamıza yararlar. Yaptığımız bu controller .ascx dosyalarında saklanır ve nerede kullanılmak
istenirse orada sayfaya eklenebilir.
Oluşturulan bir Web User Control sayfanın istenilen yerine koyulabilir ve orada onun görünmesi
sağlanabilir.

2.1.1.7.1 Özellikleri

Web user controller proje içerisinde yaratılan ascx dosyalarıdır. Bu dosyalar içerisinde daha
önceden var olan HTML ve server componentleri kullanılarak yeni bir görünüm oluşturulabilir.
Web User Controller kullanıldıkları her proje içerisinde mutlaka bulunmalıdırlar. Bunun nendeni ise
bunların compile edilememesidir..Yani Web User Controller derlenerek bir dll yapılıp bu DLL
istenilen projede kullanılma imkanı yoktur. User Controller VS toolbox ında yani araç çubuğunda
bulunmazlar. Onları herhangi bir projeye eklemek için Solution Explorer dan ascx dosyasını
tutarak sayfada istenilen yere bırakılmalıdır. User Control kodları ise Web Formlar load edildikten
sonra yüklenir. Page_Load eventi User Controlü yuklenmesinden önce gerçekleşmektedir. Bu
özellikler .NET deki diğer componentlerde olmayan özelliklerdir.

2.1.1.7.2 Web User Control Oluşturma

VS editöründe Solution Explorer da projeye sağ tıklanır ve Add New Item seçeneğini seçilir.
Buarad açılan pencereden Web USer Controlü seçilip adı verilerek onaylanır. Böylelikle yeni bir
ascx dosyası projenize eklenmiş olacaktır.

User kontrole örnek olarak menü örneği verilebilir. Örneğin bir menü kontrolü var ve bu menü
projenin her sayfasında kullanılıyor. Ve bu menude bazen değişiklikler yapılması gerekiyorsa bu
durumda her sayfada bu işin tek tek yapılması yerine tek bir menü sayfası oluşturup bunu her
sayfada kullanmak daha mantıklı olacaktır. Bu kullanım için bir user control oluşturulabilir.
Menü de herhangi bir değişiklik yapılmak istendiğinde sadece bir yerde değişiklik yapılması yeterli
olacaktır. Bu değişiklikler user control ün kullanılmış olduğu tüm sayfalarda geçerli olacaktır.




                                                    15
2.1.2.SQL Ve MSSQL
SQL, (İngilizce "Structured Query Language", Türkçe: Yapılandırılmış Sorgu Dili) verileri
yönetmek ve tasarlamak için kullanılan bir veritabanı yönetim sistemidir. SQL, kendisi bir
programlama dili olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL
herhangi bir veritabanı ortamında kullanılan bir alt dildir. KOURYS sisteminde kullanılan MSSQL
de SQL dilini kullanan bir veritabanıdır. Bu yüzden KOURYS sisteminde kullanılan SQL komutları
aşağıda anlatılmıştır. SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir. SQL'e özgü cümleler
kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan
listeler oluşturulabilir.
SQL veri tanımlama deyimlerinden başlıcaları şunlardır:
CREATE TABLE tablo_adı
    Yeni bir tablo oluşturmak için kullanılır.

CREATE TABLE tabloilceler (
  ilceNo mediumint(8) unsigned DEFAULT '0' NOT NULL,
  ilce varchar(30) NOT NULL,
  postakodu varchar(5),
  ilceTel char(3),
  plakaKodu char(2) NOT NULL
)

2.1.2.1. SQL Veri Tanımlama Deyimleri


2.1.2.1.1. ALTER TABLE tablo_adı: Yeni bir sütun eklemek, sütunun tipini veya uzunluğunu
değiştirmek vb. yapısal değişiklikler yapılması için kullanılır.

2.1.2.1.2. DROP TABLE tablo_adı

Tabloyu fiziksel olarak siler.

2.1.2.1.3. TRUNCATE TABLE tablo_adı

Tablodaki tüm verileri siler (tablo yapısı kalır)

2.1.2.1.4. CREATE VIEW görüş_adı

Görüntü oluşturmak için kullanılır.

2.1.2.1.5. DROP VIEW görüş_adı

Görüntüyü siler.

2.1.2.1.6. CREATE INDEX indeks_adı

Tablonun (en azından bir) sütun adı üzerinde indeks oluşturmak için kullanılır.

                                                    16
2.1.2.1.7. DROP INDEX indeks_adı

Yaratılan indeksleri veri tabanından kaldırmak için kullanılır..

2.1.2.1.8. SELECT deyimi

SELECT ilce, postakodu FROM tabloIlceler WHERE plakaKodu = '06'
Ankara'nın ilçeleri ile posta kodlarını gösterir.

2.1.2.1.9. UPDATE deyimi

UPDATE tabloIlceler SET postakodu = '06720' WHERE ilce = 'Bala'
Bala'nın posta kodunu değiştirir.

2.1.2.1.10. INSERT deyimi

INSERT INTO tabloIlceler VALUES (, 'Yenişehir', , , '53') Yeni veriler
ekler

2.1.2.1.11. DELETE deyimi

DELETE FROM tabloIlceler WHERE plakaKodu = '53' plakaKodu 53 olan bütün
verileri siler

MSSQL de projede kullanılan veritabanıdır. MSSQL de SQL dilini kullanan bir veritabanıdır.
2.1.2.2. SQL Deyimleri
SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından sorgulama
yapmak için SELECT, ekleme yapmak için INSERT güncelleme yapmak için UPDATE, silme
yapmak için DELETE, yeni tablo oluşturmak için CREATE TABLE gibi komutlara sahiptir. Bu
komutlar işlevlerine göre şu şekilde kategorilendirilir:

     DDL (Data Definition Language): Veri tanımlama deyimleri.
     DML (Data Manuplation Language) : Veri düzenleme dili.
     DCL (Data Control Language): Veri kontrol dili.

DDL deyimleri veritabanı üzerinde nesne yaratmak için kullanılırlar. En yaygın kullanılan DDL
deyimleri şunlardır: CREATE , ALTER, DROP

Create deyimi tablo ve view gibi bir veritabanı nesnesi yaratmayı sağlar.
Tablo Yaratmak:
Veritabanı üzerinde bir tablo yaratmak için CREATE deyimi kullanılır.
Yapısı: CREATE <tablo adı>

Alter Deyimi daha önce yaratılmış nesnenin değiştirilmesini sağlar. Örneği bir tablonun tasarımını
değiştirmek gibi.

Örnek: ALTER TABLE Musteri


                                                  17
ADD tel varchar(20) NOT NULL
Yukarıdaki deyimde müşteri tablosunun alanlarına tel adlı bir alan daha eklenmiştir.

Drop deyimi bir nesnesin silinmesini sağlar.
Örnek: DROP TABLE MUSTERI
Müşteri tablosunun verilerini ve tabloyu siler.

2.1.2.3. DML (Data Manipulation Language) Deyimleri
Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir.
            1. SELECT
            2. INSERT
            3. UPDATE
            4. DELETE
2.1.2.3.1. Select Deyimi

Veritabanındaki verilere erişmenin, diğer bir deyişle onları görmenin ya da onları elde etmenin en
sık kullanılan yöntemidir. Genellikle bir ya da daha çok tablonun bütün alanlarıya da belli alanları
için SELECT deyimi yazılır.

Temel Yapısı:

SELECT [ALL] [DISTINCT] liste [INTO yeni tablo] FROM [tablo]
     [WHERE ifade]
     [GROUP BY ifade]
     [HAVING ifade]
     [ORDER BY ifade]
     [COMPUTE ifade]

Seçeneklerin Anlamları:

All sözcüğü bütün satırların sonuç listesinde görünmesini sağlar.

Distinct sözcüğü sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar.
liste parametresi veriden seçilecek kolonu (sütunu) belirtir.

Into sözcüğü yeni bir tablo yaratmayı sağlar.
yeni tablo parametresi sorgu sonucu yaratılacak tabloyu belirtir.

From sözcüğü belli bir tablonun seçilmesini sağlar.
tablo parametresi ise sorgulanacak olan tablo ya da tabloları, görünümleri belirtir.

Where bir koşulu belirterek sadece o kuşula uyan kayıtların seçilmesini sağlar.

Group By Kayıtların gruplanmasını sağlar. HAVING deyimiyle de ara toplamların alınmasını
sağlar.

Having sözcüğü de kayıtlarda kısıtlama yapar ancak hesaplamayı etkilemez.




                                                  18
Order Bysözcüğü ise belirtilen kolona göre listelenen kayıtları sıralamayı sağlar. Sıralama artan
(ASC) ya da azalan (DESC) olabilir

Compute sözcüğü ise hesaplama yapar. Tipik olarak SUM, AVG, MIN, MAX, COUNT gibi
fonksiyonları kullanarak hesaplama yapar.

Örnek: SELECT * FROM musteri

Yukarıdaki deyim ile musteri tablosundaki bütün bilgiler elde edilir. SELECT deyiminin ardından
kullanılan * (asterisk) işareti bütün kayıtlar anlamına gelir. Bu deyimin aynısı (aynı sonucu vereni)
şu şekilde de yapılabilir:

Örnek: SELECT kod, ad, soyad, grup, il, bakiye FROM musteri


Müşteri tablosu:
kodu Ad                Soyad       grup            il               bakiye
1       Ahmet          Uzun        ithal           İZMİR            300000
2       Ayşe           Yılmaz      ithal           ANKARA           400000
3       Mehmet         Yılmaz      ihraç           ANKARA           100000
4       Hüseyin        Uzun        ihraç           İZMİR            600000
5       Nuri           Gezer       ithal           İZMİR            900000
6       Fatma          Örnek       ihraç           İSTANBUL         300000

Sorgunun sonucu:

1       Ahmet          Uzun        ithal           İZMİR            300000
2       Ayşe           Yılmaz      ithal           ANKARA           400000
3       Mehmet         Yılmaz      ihraç           ANKARA           100000
4       Hüseyin        Uzun        ihraç           İZMİR            600000
5       Nuri           Gezer       ithal           İZMİR            900000
6       Fatma          Örnek       ihraç           İSTANBUL         300000

SELECT deyimi ile sadece belli kolonlar (alanlar) da seçilebilir:
ARAMA : Tablo: Arama Kriterleri:
Karşılaştırma operatörleri       (=, >, <, >=, <>, !=, !<, !>
Aralık belirtme                  BETWEEN ve NOT BETWEEN
Liste                            IN ve NOT IN
String karşılaştırma             LIKE ve NOT LIKE
Bilinmeyen değerler              IS NULL ve IS NOT NULL
Koşulların birleştirilmesi       AND, OR
Olumsuzlaştırma                  NOT
Örnek: SELECT * from musteri WHERE bakiye BETWEEN 100000 AND 3000000
Aynı anlamda: SELECT * from musteri WHERE bakiye <= 100000 AND>= 3000000


                                                 19
Örnekler: SELECT * FROM MUSTERI WHERE borcu BETWEEN 100 AND 2000 AND
grup='özel'
Yukarıdaki sorgulamada grubu 'özel' olan ve ayrıca da borcu değerinin 100 ile 200 arasında olanı
listelenir.

2.1.2.3.2. Aritmetik İşlemler

Aritmetik işlemleri gerçekleştirmek için belli operatörler kullanılır:

2.1.2.3.2.1. Operatör Açıklamaları
+ Toplama ,
-Çıkarma
/Bölme ,
*Çarpma
SELECT borcu, borcu*2 FROM MUSTERI
2.1.2.3.3.Verileri Sıralamak: SELECT deyimi ile elde edilen veriler istenirse sıralanabilir.
Sıralama belirtilen bir ya da daha fazla kolona göre yapılır. Bunun dışında sıralama ASC
(ascending-artan) ya da DESC (descending-azalan) olarak belirtilebilir.

Kullanım Biçimi: SELECT kolon_listesi
ORDER BY kolon adı ASC ya da DESC
ORDER BY sözcüğü ise verilerin istenilen alan göre sıralı olarak listelenmesini sağlar.
SELECT * FROMmusteri ORDER BY ad
Yukarıdaki deyim ile müşteri tablosundaki bütün kayıtlar ad alanına göre sıralı olarak listelenirler.

2.1.2.3.4. Gruplandırma İşlemleri

Gruplama seçenekleri tablo satırlarının belli alanlarına göre gruplandırılmasını sağlar.

GROUP BY sözcüğü ise yapılan bir gruplandırma işlemine göre listeleme sağlar.
Örnek: SELECT grup, sum(bakiye) FROM musteri
GROUP BY grup
Yukarıdaki örnekte müsteri tablosundaki bakiye alanı grup kodu bazında toplanır.
GROUP BY ile yapılan gruplandırma (alt toplamlar) işlemi içinde ayrıca HAVING sözcüğü
kullanılarak bir koşul da verilebilir.

SELECT grup, sum(bakiye) FROM musteri
GROUP BY grup
HAVING il = 'İZMİR'
Yukarıdaki deyim ile müşteri tablosundaki bütün kayıtların bakiye bilgiler gruplarına göre ara
toplam alınır, bir de il bilgisine göre filtrelenir.

Not: Gruplama yapılmayan her sütun GROUP BY deyiminde kullanılması gerekir:

Örnek: SELECT PRODUCTID, CATEGORYID, SUM (UNITPRICE) FROM PRODUCTS
GROUP BY PRODUCTID, CATEGORYID



                                                   20
2.1.2.3.5.Compute Sözcüğü: COMPUTE sözcüğü toplama fonksiyonunun kullanarak query
sonucunda bir toplam satırı üretir. COMPUTE BY sözcüğü ise ek toplam satırları yaratır.

Kullanım Biçimi: COMPUTE fonksiyon (kolon_adı)

Örnek: Sipariş tablosu:
tarih      Mkodu ürün               adet        fiyatı
1/1/1999 1            X-TV          10          100000
2/1/1999 1            X-TR          10          100000
2/1/1999 2            X-TV          15          100000
2/1/1999 3            X-KT          10          200000
3/1/1999 3            X-KT          20          150000
2/2/1999 1            X-TV          22          400000

SELECT ürün, adet
FROM siparis
ORDER BY ürün
COMPUTE SUM(adet)
Yukarıdaki örnekte adet kolonunun toplamı alınır.

Sonucu:
 ürün adet
 X-KT 10
 X-KT 20
 X-TR 10
 X-TV 10
 X-TV 15
 X-TV 22
Sum
87

2.1.2.3.6. Insert Deyimi

Tabloya veri girmek için kullanılır. INSERT INTO <tablo adı> (sütunlar listesi) VALUES (değerler
listesi)

Örnek: INSERT INTO CARIANA
(kodu, adi, grubu, adresi)
VALUES ('600', 'FARUK', 'A', '76 sokak no 5')

Örnek: INSER INTO deyimi ile bir tabloyu diğer bir tablodan doldurmak:

use ornek
INSERT INTO cariyedekf
(kodu, adi, grubu, adresi)
(SELECT kodu, adi,
case grubu



                                                21
when 'A' THEN 'ITHAL'
when 'B' THEN 'YERLİ'
ELSE 'DİĞER'
end,
adresi from cariana)

2.1.2.3.7.Update Deyimi

Tablodaki verileri güncellemek için kullanılır. Genellikle güncelleştirilecek satırı belirtmek için
WHERE sözcüğüyle kullanılır.
Mevcut bir tablodaki satırları değiştirmek için UPDATE deyimi kullanılır. UPDATE deyimi sadece
bir tablo üzerinde kullanılmalıdır. UPDATE deyimi ile SET ve WHERE sözcüğü kullanılır.
SET sözcüğü değiştirilecek kolonları ve değerleri belirtir. WHERE sözcüğü ise değiştirilecek satırı
belirtir.


Update deyiminin kullanım biçimi:

UPDATE tablo
SET kolon = ifade
WHERE arama_koşulu
Örnek: Aşağıdaki örnekte fiyat değerini %10 artırır.
UPDATE siparis
SET fiyatı= fiyatı * 1.1
Örneğin bir kaydı düzeltmek istersek ;
UPDATE Musteri
SET Ad = 'Nuri Yılmaz'
WHERE kod='1';
Örneğin tüm musterilerin bakiyesini %10 artırmak istediğimizde;
UPDATE Musteri
SET bakiye=bakiye*1.1;

2.1.2.3.8. Delete Deyimi

Bir tablodaki verileri silmek için DELETE komutu kullanılır. Örneğin Öğrenci tablosundaki tüm
verileri silmek için;

DELETE * from musteri;
Tabloda, bakiyesi 1000'den küçük olan müşterilerin satırlarını silmek için:
DELETE * FROM musteri WHERE bakiye <=1000

Kullanım biçimi:

DELETE tablo
WHERE arama_koşulu
Örnek: Tablodan satır silmek

Aşağıdaki örnekte müşteri tablosundan 'B' grubuna sahip olan müşteriler silinir.
DELETE musteri
WHERE grubu = 'B'


                                                 22
2.1.2.4. DCL (Data Control Language) Deyimleri
Veritabanındaki kullanıcı haklarını düzenlemek için kullanılan deyimlerdir. Örneğin GRANT,
DENY, REVOKE gibi.
Örnek: USE Northwind
GRANT SELECT ON Stok TO PUBLIC

Adı geçen ve telif haklı olan ürünler bilgi amaçlı olarak kullanılmıştır.

Grant Deyimi

Aşağıdaki örnek Ayşe adlı kullanıcı veritabanı ve tablo oluşturma izni verilir:

GRANT CREATE DATABASE, CREATE TABLE TO SEYDA

2.1.2.5. SQL FONKSİYONLARI

SQL Server'da Fonksiyonlar, hesaplamalarda ve özellikle sistem hakkında bilgi almada yaygın
olarak kullanılan araçlardır. Transact-SQL (T-SQL) programlama dilinde değişik kategorilerle
adlandırılan fonksiyonlar vardır. Bunlardan en yaygını veriler üzerinde işlem yapan toplama ya da
gruplama olarak adlandırabileceğimiz aggregate fonksiyonlarıdır.


2.1.2.5.1. Gruplama Fonksyonları

Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç değer
döndürürler. Toplama ya da gruplama fonksiyonları olarak adlandırabileceğimiz bu fonksiyonlar
genellikle GROUP BY deyimi ile kullanılırlar.
Gruplama fonksiyonları aşağıdaki ifadeler içinde kullanılabilirler.

   SELECT deyiminin listesinden (bir subquery olarak)
   Bir COMPUTE ya da COMPUTE BY sözcüğü ile.
   Bir HAVING sözcüğü ile.

Transact-SQL programlama dilinde şu aggregate fonksiyonları kullanılır:
     AVG
     COUNT
     GROUPING
     MAX
     MIN
     SUM
     STDEV
     STDEVP
     VAR
     VARP


                                                  23
2.1.2.5.1.1. AVG (T-SQL) Fonksiyonu: Bir grup içindeki değerlerin ortalamasını döndürür. Null
değerler dikkate alınmaz.
Kullanım Biçimi: AVG([ALL | DISTINCT] ifade)

Argümanları

All: Ortalama fonksiyonunu bütün değerlere uygular.

Distinct: İşlemin her tek değer için uygulanacağını belirtir. Diğer bir deyişle tekrar eden değerlerin
yerine birisi kullanılır.
İfade : Say ısal bir değeri olan ifade ya da kolon adı.

Örnek: Aşağıdaki örnekte satış miktarları toplanmakta ve ortalaması alınarak iki ayrı sonuç değeri
verilmektedir:

USE Northwind
GO
SELECT AVG(quantity), SUM(quantity)
FROM [Order Details]
GO
COUNT (T-SQL) Fonksiyonu
Bir grup içindeki eleman sayısını verir.
Kullanım Biçimi:
COUNT({[ALL | DISTINCT] ifade] | *})

Argümanları:

All: Fonksiyonunu bütün değerlere uygular.
Distinct: İşlemin her tek değer için uygulanacağını belirtir. Diğer bir deyişle tekrar eden değerlerin
yerine birisi kullanılır.
İfade: Bir ifade ya da kolon adı.
*: Bir tablodaki bütün satırların sayısını döndürmek için kullanılır. COUNT(*) herhangi bir
paratmetre ile kullanılmaz ve DISTINCT ile kullanılmaz.
Count(*) ile null ve tekrar eden değerler dahil bütün elemanlar sayılır.

Örnek: Aşağıdaki örnekte ürünler tablosundaki ürünler sayılır. DISTINCT ile tekrara izin verilmez.

USE Northwind
GO
SELECT COUNT(DISTINCT productname)
FROM products
GO




                                                   24
2.1.2.5.1.2. Max (T-SQL) Fonksiyonu: İfade içindeki maksimum değeri döndürür.

MAX([ALL DISTINCT] ifade)
Argümanları:

All: Fonskiyonunu bütün değerlere uygular.

2.1.2.5.1.3. Min (T-SQL) Fonksiyonu: İfade içindeki minimum değeri döndürür.

Kullanım Biçimi MIN([ALL | DISTINCT] ifade)
Argümanları:
All: Fonskiyonunu bütün değerlere uygular.
Örnek:
Aşağıdaki örnekte en küçük satış adedi elde edilmektedir:
USE Northwind
GO
SELECT MIN(quantity)
FROM [Order Details]
GO

2.1.2.5.1.4. Sum Fonksiyonu

Değerlerin toplamlarını verir. SUM fonksiyonu sadece sayısal alanlarda kullanılır.
Kullanım Biçimi: SUM ([ALL DISTINCT] ifade)
Argümanları:
All: Toplama (aggregate) fonksiyonunu bütün değerlere uygular. ALL seçeneği varsayım olarak
kullanılır.
Distinct: SUM fonksiyonunu tek değerlerin (unique) toplamını vermesini sağlar.
İfade: Bir sabit, bir kolon, fonksiyon ya da bir aritmetik işlem.
Örnek: USE pubs
GO
-- Satır toplamları
SELECT type, price, advance
FROM titles
ORDER BY type
COMPUTE SUM(price), SUM(advance) BY type

MicroSoft SQL Server bir veritabanı sunucu yazılımıdır. Veritabanlarının oluşturulmasını ve
yönetilmesini sağlar. Dünyadaki en güçlü ve en güvenilir veritabanı denilebilir. Verilerin
organizasyonunu merkezi olarak yapan Sql Server client uygulamaların server üzerindeki verilere
erişmesinide sağlar. Yani Ağrı'da bulunan bir şubeden İstanbul merkezde olan kayıtlara
ulaşabilirsiniz.
Microsoft SQL Server 2008, en kritik uygulamalarınızı çalıştırabilmenizi, uygulamaların geliştirme
ve yönetimi için gerekli olan sure ve maliyeti azaltmanızı ve organizasyonunuzun tamamına,
eyleme geçirilebilir kavrayışlar sunmanızı mümkün kılan, güvenilir, verimli ve zeki bir veri
platformu sunmaktadır.



                                                   25
2.2. Kodlama Standartları
2.2.1. Tanımlar ve Kısaltmalar
2.2.1.1. PascalCase

İlk karakterin ve içerisinde yer alan tüm kelimelerin ilk harfinin büyük, diğer harflerin küçük
olduğu isimdir. Örnek : MusteriNo

2.2.1.2. CamelCase

İlk karakterin küçük, içerisinde yer alan tüm kelimelerin ilk harfinin büyük, diğer harflerin küçük
olduğu isimdir. Örnek : musteriNo


2.2.1.3. UpperCase

Tüm karakterleri büyük harf olan isimdir. Örnek : MUSTERINO

2.2.1.4. LowerCase

Tüm karakterleri küçük harf olan isimdir. Örnek : musterino

2.2.2. C# İsimlendirme Standartları

   •   Tüm class, method, property, vb. tüm isimler Türkçe verilmeli, isim içerisinde Türkçe
       karakter(‘ıİçÇğĞşŞöÖüÜ’) kesinlikle kullanılmamalıdır.
   •   Tüm isimler, anlamlı, açıklayıcı olmalı ve içerisinde kısaltma kullanılmamalıdır.
   •   Finart katman bileşenleri (entity, facade vs.) dışındaki public class isimleri ile tüm public
       member (metod, property, vb.) isimleri PascalCase verilmelidir.
   •   Tüm private değişkenler ve metodların parametreleri camelCase isimlendirilmelidir.
   •   Constant’lar UPPERCASE ve kelimeler arasında ‘_’ kullanılacak şekilde
       isimlendirilmelidir.
   •   Member Variables isimleri için (kontroller dışında) ‘m_’ ön eki kullanılmalıdır.
   •   Değişken isimleri için i, j, a, vb. gibi tek karakterler, döngülerdeki iterasyonlar dışında
       kullanılmamalıdır.
   •   Metodlar için, bir emir ifade eden isimler (Oku, Getir, Kaydet, İptal, Sil vs.) seçilmesi
       tavsiye edilmektedir.
   •   Form ve üzerinde kullanılan kontrollerin isimlendirilmesi için aşağıdaki standartlara
       uyulmalıdır.




                  .Net Bileşenleri                  Ön Ek


                                                  26
Label                             Lbl
                 TextBox                           Txt
                 ComboBox                          Cmb
                 CheckBox                          Chk
                 NumericUpDown                     Nud
                 GroupBox                          Grp
                 Buton                             Btn
                 Panel                             Pnl
                 Form                              Form
                 ListView                          Lvw
                 RadioButton                       Rdb
                 ContextMenu                       Cm
                 TabControl                        Tbc
                 TabPage                           Tbp
                 ListBox                           Lbx
                 PictureBox                       Pbx
                                      Tablo.. .Net Bileşenleri
2.2.2.1. Değişken Tanımlama Standartları

   •   Her satırda bir değişken tanımlanmalıdır. Bu şekilde yapılan tanımlama, açıklama girişini
       kolaylaştırmaktadır.
   •   Değişkenlere, tanımlandığı anda değer atanmasına özen gösterilmelidir.
   •   Tanımlanan her değişken mutlaka kullanılmalıdır.
   •   Her değişken sadece bir amaç için kullanılmalıdır.
          Örnek: int musteriNo = musteri.No; // Müşteri Numarası

2.2.2.2. Genel Hata Yönetimi

   •   Yakalanan exception sonrası kullanıcıya, anlayabileceği ve yönlendirici bir mesaj
       verilmelidir.
   •   Çok büyük try-catch blokları oluşturulmamalı, bunun yerine her farklı iş için ayrı bir blok
       kullanılmalı ve blok spesifik bir kod bölümünü kapsamalıdır. Bu şekilde hangi kod
       parçaçığının exception’ı oluşturduğunu kolaylıkla bulunabilir.
   •   Static bir class’ın, constructor’ında alınan hata sebebiyle initialize işlemi gerçekleştirilemez
       ise, constructor bir daha çalışmayacak olduğu için uygulamada beklenmeyen hatalar
       oluşabilir. Constructor’a sahip statik class kullanımları için kontrol yöntemleri
       oluşturulmalıdır.

2.2.2.3. Programlama Pratikleri

   •   Kod tekrarından kaçınılmalı, belirli bir işi yapan kod parçaları ayrı bir metod içerisine

                                                 27
alınmalıdır.
   • Tasarım sırasında, kod birimlerinin tek başına iş yapabilirliğinin yüksek, diğer birimler ile
        olan bağımlılığının düşük olmasına dikkat edilmelidir.
   • Dış girdiler ve dış kaynaklardan gelen veri (kullanıcı girdisi, dosya, vb.) için girdi
        kontrolleri oluşturulmalı, girdinin doğruluğu kontrol edilmelidir.
   • Değişkenler mümkün olan en küçük yaşam döngüsüne sahip olmalıdır.
   • En sık kullanılan case’ler ilk olarak kontrol ediliyor olmalıdır.
   • System namespace’i altında tanımlı tipler yerine C# spesifik tipler kullanılmalıdır.
               int yas; // Int32
               string musteriAd; // String
               object kulaniciBilgi; // Object
Beklenmeyen değerlerin/durumların oluşma olasılığı her zaman düşünülmeli ve gerekli kontrol
yapısı kurulmalıdır.

2.2.2.4. Veritabanı Nesne Adlandırma Kuralları

Bu bölüm, veritabanı nesnelerinin adlandırılmasında kullanılacak standartları içermektedir. Bu
standartların uygulanması sonucunda, veritabanı üzerinde işlem yapması (değişiklikler yapma,
sorun giderme, kod yazımı gibi) gerekli olabilecek tüm teknik personelin rahatlıkla anlayabileceği
bir veritabanı oluşmuş ve yönetilmiş olacaktır. Bu bölüm, aşağıdaki başlıklarda tercih edilen
adlandırma kurallarını içermektedir:

   •   Tablolar – Tables
   •   Geçici Tablolar – Temporary Tables
   •   Görünümler - Views
   •   Saklı prosedürler - Stored procedures
   •   Kullanıcı tanımlı fonksiyonlar - User defined functions
   •   Tetikleyiciler - Triggers
   •   İndeksler – Indexes
   •   Sütunlar – Columns
   •   Kullanıcı tanımlı veri türleri - User defined data types
   •   Primary keys
   •   Foreign keys
   •   Default bilgileri ve Kontrol kısıtları - Default and Check constraints
   •   Değişkenler - Variables
   •   Paketler – Packages
   •   Sekanslar – Sequences

İsimlendirmelerde 30 karakter olarak bir sınırlandırma getirilmiştir. Bu sınırlandırma çerçevesinde
veritabanı nesneleri isimlendirilmelidir. Nesne isimleri tüm harfleri büyük olacak şekilde, yani
“UPPERCASE” formatında yazılmalıdır. Türkçe harflere yazımda yer verilmemelidir.


2.2.2.5. Tabloların İsimlendirilmesi

Tablolar, herhangi bir varlığın anlık bilgilerini sunmaktadır. Örneğin, tüm müsteri bilgileri bir
tabloda saklanmaktadır. Burada “müsteri” bir varlık niteliğindedir, ve müsteri tablosunun tüm


                                                 28
satırları “müsteri” varlığının anlık bilgilerini sunmaktadır. Bu durumda, tabloyu, bilgilerini sunduğu
varlığın ismi uyarınca adlandırmak gereklidir – yani “Musteriler”. Tabloda müsterilerin farklı
anlardaki bilgileri sunulduğu için, tablo isminin çoğul olarak belirlenmesi gereklidir.

Yazım Formatı:

tbl(3 karakter)AmacaYonelikKısım
Örn: tblKullaniciBilgileri
şeklinde olacaktır.

2.2.2.6. Saklı Prosedürlerin İsimlendirilmesi

Saklı prosedürler, iyi tanımlanmıs ve spesifik görev üstlenirler ve eylem/hareket odaklıdırlar. Bu
nedenle, isimlerinin üstlendikleri görevleri ifade ediyor olması gereklidir. Üstlenilen görevi
betimlemek için “fiil” yapısındaki kelimeler kullanılmalıdır.

Yazım Formatı:

sp_AmacaYonelikFiiller

Örn: sp_getUsersInformation
şeklinde olacaktır.

Kelime dizgesinin başında stored procedure olduğunu belirten sp kelimesi kullanılacaktır.
Prosedür yazım formatında ISLEM olarak belirtilen kelime yerine islemin amacına göre:

         insert islemleri için “INS”,
         delete islemleri için “DEL”
         update islemleri için “UPD”
         select gibi sorgulama islemleri için “SEL”
         yukarıda belirtilen “UPD” ve “SEL” lerin beraber kullanıldığı durumlarda veya
         scheduled işlemlerde “BAT”

kelimeleri kullanılacaktır.

Saklı Yordamlar yardımıyla tablolara veri eklemek son derece kolay, hızlı ve etkilidir. Bununla
birlikte Saklı Yordamlar sağladıkları güvenlik kazanımları nedeni ilede tercih edilirler. Saklı
Yordamları geliştirmek son derece kolaydır. İstediğiniz sql işlemini, satır silmek, satır aramak gibi
işlemler kolayca gerçekleştirilmektedir.




                              Şekil 2.6. Saklı yordamların avantajları


                                                 29
2.2.2.7. Tetikleyicilerin (Trigger) İsimlendirilmesi

Yazım Formatı:

MODULKODU(3 karakter)_AMACAYONELIKISIM_ISLEM(3 karakter)_TRG

Örn: RYS_KULLANICI_INS_TRG
seklinde olacaktır.

Amaca Yönelik olarak kullanılan Kelimeler arasında “_” karekteri kulanılmayacaktır.
Kelime dizgesinin sonuna triger olduğunu belirten TRG kelimesi kullanılacaktır.
Tetikleyici yazım formatında ISLEM olarak belirtilen kelime yerine islemin amacına göre:
       insert (ekleme) için “INS”
       update (güncelleme) için “UPD”
       delete (silme) için “DEL”
kelimeleri kullanılacaktır.

2.2.2.8. Birincil Anahtarlar (Primary Keys)

        Birincil anahtar sütun(lar)ı, tablodaki her bir satırı birincil (unique) olarak belirleyen
sütun(lar)dır.Bu nedenle, Birincil anahtar adlandırma kuralı olarak, tablo isminin önüne 'PK_'
eklenmelidir.

Yazım Formatı:

  PK_TABLOADI

2.2.2.9. Sekanslar(Sequences)

   Ardışık sırada numara üretmek için kullanılan yapılardır. Burada isimlendirmeler :

Yazım Formatı:

   MODULKODU(3 karakter)_AMACAYONELIKISIM_SEQ                      şeklinde olmalıdır.

2.2.3. PROJE İÇERİĞİNİN ANLATILMASI

Projenin uygulama kısmı ve veritabanı tasarımı aynı eş zamanlı tasarlanmıştır. Fakat anlaşılır
olması açısından bu aşamalar uygulama kısmı ve veritabanı kısmı olarak iki kısımda anlatılacaktır.

2.2.3.1.UYGULAMA KISMI

Projeye başlamadan önce projenin kullanıcılarının kimler olacağı belirlenmiştir. Bunlar:

   i) Öğrenciler

                                                30
ii) Öğretmenler
    iii) Editör
    iv) İdareci

Her bir kullanıcının görevleri ayrıdır ve sistemden bu görevleri yerine getirebilirler. Her bir
kullanıcı kendilerine ait kullanıcı adı ve şifrelerini kullanarak sisteme giriş yaparlar ve kendilerine
ait alanları görebilirler. Aşağıda her bir kullanıcı için kullanıcının yapabileceği işlevler belirtilmiştir.

Uygulama kısmında projenin oluşturulduğu yazılım programında projenin bileşenlerinin
görebileceği solution explorer kısmında projenin 3 katmanlı bir yapıya sahip olduğu görülmektedir.
Bu katmanlardan ilki Blog isimli bir website kısmıdır. Diğer katmanlar ise metotların bulunduğu
DAL isimli project katmanı ve nesnelerin bulunduğu PROPERTY katmanıdır. Solution explorerda
website katmanında web page, user controls, style dosyaları ve masterpage nesneleri bulunmaktadır.
Project kısmında ise nesnelere ait sınıflar bulunmaktadır. Bu sınıflar içinde web controls tarafından
kullanılan metotlar bulunmaktadır. Web sayfaları masterpage ve user controls kullanılarak
oluşturulmuştur. Masterpage, aynı özelliklerin ya da menülerin kullanıldığı benzer sayfaları
oluştururken büyük kolaylık sağlamaktadır. Aşağıda projenin oluşturulduğu programda, projeye ait
solution explorer'ın ekran görüntüsü mevcuttur:




                           Şekil 2.7. Projeye ait solution explorer görüntüsü

                                                    31
Şekil 2.8. Tüm kullanıcıların giriş yaptığı anasayfa




2.2.3.1.1. Öğrenci Kısmı

Öğrenci kısmında randevu alma ve randevu iptal etme işlemleri gerçekleştirilmektedir.

2.2.3.1.1.1. Randevu Alma

Öğrenciler randevu almak için randevu al menüsüne tıkladıklarında Randevu Al isimli sayfaya
yönlendirilirler. Bu sayfada, randevu almak için fakülte, bölüm ve öğretim üyesi isimlerini seçip, bir
sonraki adıma geçmek için girdikleri bilgileri onaylarlar.




                                   Şekil 2.9. Randevu Al sayfası.

Öğrenciler öğretim görevlisini seçtikten sonra bilgilerini girecekleri sayfaya yönlendirilirler. Bu
sayfada öğretim görevlileri ile görüşmek istedikleri uygun gün ve saatleri seçip, istenilen bilgileri
girip, dilerlerse dosya da ekleyip devam butonuna bastıklarında randevuları sisteme kaydolmaktadır.




                                                 32
Şekil 2.10. Randevu Al sayfasında öğrenci bilgilerinin girilmesi ve dosya ekleme işlemi




              Şekil 2.11. Randevu Al sayfası tüm bilgilerin girilmiş hali




                                          33
2.2.3.1.1.2. Randevu İptal Etme

Öğrenciler aldıkları randevuları iptal etmek isteyebilirler. Bunun için de ayrı bir sayfa tasarlanmıştır.
Öğrenciler Randevu İptal sayfasında öğrenci numarasını girerek tüm randevularını
listeleyebilmektedir. Daha sonra bu randevularından silmek istediklerini seçerek randevularını
sistemden silebilmektedirler.




                                                   34
35
36
Şekil 2.12. Randevu Sil sayfasında randevuların listelenmesi

            Şekil 2.13. Randevu Sil sayfasında randevu silindikten sonraki uyarı ekranı




2.2.3.1.2. Öğretim Üyesi Kısmı

Öğretim üyeleri kendilerine ait programları görebilmek ve düzenlemek için önce sisteme giriş
yapmalıdırlar. Öğretim üyeleri, sicil numaralarını ve şifrelerini girerek sisteme giriş yapmaktadırlar.




                                                  37
Şekil 2.14. Öğretim üyelerinin sisteme giriş yaptıkları sayfa.

Öğretim üyeleri şifrelerini hatırlamadıkları takdirde Şifremi Unuttum linki üzerinden şifre
Hatırlatma sayfasına yönlendirilip, o sayfada sicil numaralarını girdikleri takdirde maillerine şifre
bilgileri ulaşmaktadır.




                                 Şekil 2.15. Şifre Hatırlatma Sayfası
Öğretim görevlileri doğru sicil numarası ve şifrelerini girdikten sonra kendilerine ait anasayfaya
yönlendirilirler. Bu sayfada dört adet menü bulunmaktadır. Bu menüler KOURYS anasayfasına
dönüş, ofis saati ayarlama, randevu görüntüleme ve çıkış menüleridir.




                                                  38
Şekil 2.16. Öğretim görevlilerine ait anasayfa




2.2.3.1.2.1. Ofis Saatleri Ayarlama

Ofis saatleri menüsü ile kullanıcı, haftalık randevu gün ve saatlerini ayarlayabilmektedir. Ayrıca
seçtiği uygun gün ve saatleri aynı sayfada görebilmektedir. Haftalık gün ve saatler ayarlanırken
çeşitli kontroller yapılarak kullanıcının, aynı gun ve saate birden fazla uygunluk vermesi
engellenmektedir.




    Şekil 2.17. Ofis Saatleri sayfasında uygun randevu saatlerinin listelenmesi ve ayarlanması.


                                                39
Projede Obout.Suite adlı programın dll.'leri projeye referans olarak gösterilmiştir ve böylece
gridview'lara daha estetik bir görünüm kazandırılmıştır. Uygun randevu saatlerinin gösterilmesi bu
sayede kullanıcıya daha kolay ve daha fonksiyonel kullanma olanağı sağlamıştır.

2.2.3.1.2.2. Randevu Görüntüleme

Randevu Görüntüle menüsü ise öğretim üyesini, randevularını görüntülediği ve düzenlediği sayfaya
yönlendirir. Bu sayfada kullanıcı, hangi gün ve saatte kimlerle randevusu olduğunu görüntüler,
öğrenciler eğer randevu konusuyla ilgili dosya eklemişse, bu dosyaları bilgisayarına indirebilir.
Öğretim görevlisi randevulardan uygun olmayanları sebep belirterek ya da belirtmeksizin iptal
edebilir. Randevunun iptal edilmesi halinde öğrenciye bu durumla ilgili sistem tarafından randevu
iptal maili yollanmaktadır.




          Şekil 2.18. Öğretim görevlisine ait randevu görüntüleme ve düzenleme sayfası


2.2.3.1.3. Admin Kısmı

Sistem yöneticileri anasayfadan Admin Girişi menüsü üzerinden kendi giriş sayfalarına
yönlendirilirler. Bu sayfada kullanıcı adı ve şifre girerek sisteme giriş yaparlar.




                                               40
Şekil 2.19. Sistem yöneticisi giriş sayfası


Sistem yöneticisi sisteme giriş yaptıktan sonra kendisine ait anasayfaya yönlendirilir. Bu anasayfada
Fakülte Ekle, Bölüm Ekle, Kullanıcı Ekle, Kullanıcıları Listele ve Çıkış menüleri bulunmaktadır.




                              Şekil 2.20. Sistem yöneticisi anasayfası

2.2.3.1.3.1. Bölüm Ekle Menüsü

Bölüm ekle menüsü ile kullanıcı seçtiği fakültenin altına yeni bölüm ekleyebilmektedir. Ayrıca


                                                 41
sistemde kayıtlı olan tüm bölümleri ve bağlı oldukları fakülteleri de görebilmektedir ve varolan
bölümlerden silinmesi gerekenleri de silebilmektedir.




          Şekil 2.21. Sistem yöneticisinin bölüm eklemek ve silmek için kullandığı sayfa

2.2.3.1.3.2. Fakülte Ekle Menüsü

Sistem yöneticisi bölüm ekleyebildiği gibi sisteme yemi fakülte de ekleyebilmektedir. Bu işlemi
Fakülte Ekle menüsü üzerinden gerçekleştirmektedir. Fakülte ekleme sayfasına yönetici sistemde
varolan fakülteleri görüntüleyebilmekte ve silinmesi gereken fakülteleri silebilmektedir.




         Şekil 2.22. Sistem yöneticisinin fakülte eklemek ve silmek için kullandığı sayfa

2.2.3.1.3.3.Kullanıcı Ekle Menüsü



                                               42
Sistem yöneticisi kullanıcı da ekleyebilmektedir. Kendisi gibi sistem yöneticisi ya da öğretim
görevlisi ekleyebilmektedir. Sistem yöneticisi eklerken kullanıcı adı ve şifre bilgilerini sisteme
kaydeder ve bunu kullanıcıya kendisi bildirir. Öğretim üyesi kaydederken ise, öğretim görevlisine
ait kişisel bilgiler, Bağlı olduğu fakülte ve bölüm, mail adresleri, sicil numarası gibi bilgileri sisteme
kaydeder.




              Şekil 2.23. Sistem yöneticisinin başka bir sistem yöneticisi eklediği sayfa




                                                   43
Şekil 2.24. Sistem yöneticisinin öğretim üyesi kaydı yaptığı sayfa

2.2.3.1.3.4. Kullanıcı Listele Menüsü

Sistem yöneticileri sistemde kayıtlı olan tüm öğretim görevlileri ve bu öğretim görevlilerine ait bazı
bilgileri görüntüleyebilmektedirler. Bu işlemi Kullanıcı Listele menüsü üzerinden
gerçekleştirmektedirler. Listeledikleri kullanıcıları ayrıca silme hakkına da sahiptirler.




   Şekil 2.25. Sistem yöneticisi tarafından kullacıların listelenmesi ve silinmesi işlemleri sayfası
2.2.3.1. VERİTABANI KISMI

Projede veritabanı sunucusu olarak Microsoft SQL Server 2005 kullanılmıştır. Veritabanı kısmında
stored procedureler ve tablolar bulunmaktadır. Stored procedure ve tabloların ne işe yaradığı önceki
bölümlerde anlatılmıştır. Bu bölümde bu stored procedure ve tabloların içeriklerine ve ne işe
yaradıklarına değinilecektir.

2.2.3.1.1. Saklı Yordamlar - Stored Procedures

Projede güvenliğin arttırılması ve hızın arttırılması amacı ile stored prosedürler kullanılmıştır.
Aşağıda bu sp ler ve sp lerin hangi amaç için kullanıldıkları ne işe yaradıkları açıklanmıştır.

2.2.3.1.1.1 sp_addRandevu: Bu stored procedure randevu ekleme işleminde kullanılır. Randevu
alma işleminde kullanıcıdan alınan bilgileri tblEklenenRandevular tablosuna eklemek için bu sp
kullanılır. İlk başta sp içerisinde kullanılacak olan değişkenler tanımlanmıştır daha sonra ise bu
değişkenlere programdan gelen değerer aktarılmıştır. En son olarak ise bu değerler tabloya
yazılmıştır.

Create proc sp_addRandevu
(
@konu nvarchar(50),
@icerik nvarchar(150),
@ogrUyeID int,
@ogrNo nvarchar(50),


                                                   44
@ogrAdý nvarchar(50),
@ogrMail nvarchar(50),
@randSaat nvarchar(50),
@randGun nvarchar(50),
@randDate datetime,
@ogrUyeAd nvarchar(50),
@filename nvarchar(50),
@_RandevuGun nvarchar(50),
@_RandevuSaat nvarchar(50)
)as

INSERT INTO
tblEklenenRandevular(RANDEVU_KONU,RANDEVU_ICERIK,OGRUYE_ID,OGR_NO,OGR_ADI,OGR_MAIL,R
ANDEVU_SAATI,RANDEVU_GUNU,RANDEVU_TARIHI,OGRUYE_ADI,RANDEVU_DOSYA,_RANDEVUGU
N,_RANDEVUSAAT) VALUES
(@konu,@icerik,@ogrUyeID,@ogrNo,@ogrAdý,@ogrMail,@randSaat,@randGun,@randDate,@ogrUyeAd,@filenam
e,@_RandevuGun,@_RandevuSaat)

2.2.3.1.1.2. sp_BolumEkle: Bu stored procedure, yeni bir bölüm ekleme işleminde kullanılır.
Yönetici KOURYS ye yeni bir bölüm eklediğinde değerler alınarak sp_BolumEkle sp si tarafından
tblBolumler tablosuna yazılır.

create proc sp_BolumEkle
(
@fakulteid int,
@bolumadi nvarchar(50)
)as
INSERT INTO tblBolumler (FAKULTE_ID,BOLUM_ADI) VALUES (@fakulteid,@bolumadi)


2.2.3.1.1.3. sp_getID: Bu stored procedure, adı verilen öğretim üyesinin id değerini geri döndürür.
Daha önce her öğretim üyesinin kendisine ait özel bir id si olduğunu belirtmiştik. Bu sp de bu
değeri istenilen yerde geri döndürür.

Create proc sp_getID
(
@username nvarchar(50)
)as
SELECT OGRUYE_ID FROM tblKullaniciBilgileri WHERE OGRUYE_ADI = @username

2.2.3.1.1.4. sp_insertFakulte: Bu stored procedure sisteme yeni bir fakulte eklenmek
istenildiğinde kullanılır. Sistem yöneticisi yeni bir fakülte eklediğinde sp tarafından fakulteye ait
değerler programdan alınır ve tblFakulteler tablosuna kaydedilir.

create proc sp_insertFakulte
(
@fakulteadi nvarchar(50)
)as
INSERT INTO tblFakulteler (FAKULTE_ADI) VALUES (@fakulteadi)

2.2.3.1.1.5. sp_Randevu_Listele: Bu sp sisteme giriş yapmış olan bir öğretim üyesinin kendisinden
alınan randevuları görmesiini sağlar. Sistemden aldığı öğretim üyesi id sine göre o id li öğretim
üyesinin randevularını listeler.

Create proc sp_Randevu_Listele
(


                                                   45
@ogrID int
)as
SELECT RANDEVU_KONU,OGR_NO,OGR_ADI,OGR_MAIL,RANDEVU_TARIHI,RANDEVU_SAAT FROM
tblEklenenRandevular WHERE OGRUYE_ID= @ogrID

2.2.3.1.1.6. sp_selectBolum: Bu sp randevu alma ekranında kullanıcı fakülteyi seçtiğinde o
fakülteye bağlı bölümleri listelemek amaçlı kullanılır. Sistemden o fakültenin id sini alır ve o id ye
bağlı bölümlerisisteme geri döndürür.

create procedure sp_selectBolum
@fakulte_id int
as
select BOLUM_ADI FROM tblBolumler where (FAKULTE_ID=@fakulte_id)

2.2.3.1.1.7. sp_selectBolumler: Bu sp tblBolumler tablosundaki tüm bölümlerin bilgisini alma
amaçlı kullanılır. Bu liste sisteme yönetici olarak giriş yapıldığında yeni bölüm ekleme ekranında
yöneticiye sunulur.

Create proc sp_selectBolumler
as
SELECT BOLUM_ADI FROM tblBolumler

2.2.3.1.1.7. sp_selectFakulteler: bu sp tblFakulteler tablosundaki tüm bölümlerin bilgisini alma
amaçlı kullanılır. Bu liste sisteme yönetici olarak giriş yapıldığında yeni fakülte ekleme ekranında
yöneticiye sunulur.
create procedure sp_selectFakulteler
as
select FAKULTE_ADI FROM tblFakulteler
2.2.3.1.1.8. sp_selectUser: Bu sp kullanıcı tablosundan öğretim üyelerinin sicil numara bilgilerini
alır.

Create proc [dbo].[sp_selectUser]
as
select OGRUYE_SICILNO FROM tblKullaniciBilgileri

2.2.3.1.1.9. sp_selectUsers: Bu sp tblKullaniciBilgileri tablosundaki tüm bölümlerin bilgisini alma
amaçlı kullanılır. Bu liste sisteme yönetici olarak giriş yapıldığında yeni kullanıcı ekleme ekranında
yöneticiye sunulur.
Create proc [dbo].[sp_selectUsers]
as
SELECT * FROM tblKullaniciBilgileri

2.2.3.1.1.10. sp_UserControl: bu sp sistemden aldığı öğretim üyesi sicil numarasına göre o öğretim
üyesinin id sini sisteme geri döndürür.

create proc sp_userControl
(
@sicilno nvarchar(15)
)as
select OGRUYE_ID from tblKullaniciBilgileri where OGRUYE_SICILNO=@sicilno

2.2.3.1.1.11. sp_getDepartments: Bu sp ile veritabanından tüm fakülte ve tüm bölümler çekilir.



                                                   46
create proc sp_getDepartments
as
select F.FAKULTE_ADI, B.BOLUM_ADI
FROM tblFakulteler as F
inner join tblBolumler B
on B.FAKULTE_ID=F.FAKULTE_ID

2.2.3.1.1.12. sp_insertAdmin: Sistem yöneticisi sistemin yönetm panelinden kendisi dışında
sisteme başka yönetici de ekleyebilir. Bu yöneticiyi eklerken sp_insertAdmin sp si kulanılmaktadır.
Gerekli parametreleri alarak admin tablosuna kullanıcı ve şifre bilgisini yazar.
create proc [dbo].[sp_insertAdmin]
(
@name nvarchar(50),
@password nvarchar(50)
)as
insert into tblAdmin(YoneticiAdi, YoneticiSifre) values (@name,@password)

2.2.3.1.1.13. sp_getUsersInformation: Bu sp ile veritabanından kullanıcı bilgileri çekilir. Bu
bilgiler admin panelinde kullanıcıları listlemek için kullanılır. Sistem yöneticisi yönetim panelinden
kullanıcı listesini görmek istediğinde bu sp kullanılarak admin e bu bilgiler sunulur.

create proc sp_getUsersInformation
AS
select
F.FAKULTE_ADI,B.BOLUM_ADI,K.OGRUYE_ADI,K.OGRUYE_MAIL, K.OGRUYE_SICILNO
FROM tblKullaniciBilgileri AS K
 join tblBolumler B
ON K.OGRUYE_BOLUMID=B.BOLUM_ID
 join tblFakulteler F
ON K.OGRUYE_FAKULTEID=F.FAKULTE_ID
2.2.3.1.2. Tablolar


2.2.3.1.2.1. Bölümler Tablosu


Tablo 1.1 de bölümler tablosu görülmektedir. Bu tabloda 3 adet sütün bulunmaktadır.
FAKULTE_ID, BOLUM_ID, BOLUM_ADI. FAKULTE_ID bölümün hangi fakülteye bağlı
olduğunu göstermektedir. BOLUM_ID bölümün numarasıdır ve her bölümün kendine özel
numarası vardır. BOLUM_ADI ise o bölümün adıdır.




                                                       47
48
Tablo 2.1. Bölümler Tablosu


2.2.3.1.2.2. Fakülteler Tablosu
Tablo 1.2. fakülte kayıtlarını tutan tablodur. FAKULTE_ID o fakültenin numarasıdır ve her
fakültenin ayrı bir numarası vardır. Bu numaralar otomatik olarak atanmaktadır. FAKULTE_ADI
ise fakültenin ismidir.




                                   Tablo 2.2. Fakülteler Tablosu




2.2.3.1.2.3. Kullanıcı Bilgileri Tablosu
Bu tabloda kullanıcı bilgileri yani öğretim üyelerinin bilgileri tutulmaktadır. Öğretim üyeleri
KOURYS sistemini kullanabilmeleri için bu sisteme öncelikle kayıt olmalıdırlar. Bu kayıt işlemi
esnasında öğretim üyesinden bir takım bilgiler istenmektedir. Bu tabloda bu bilgiler tutulmaktadır.




                                                 49
Tablo 2.3. Kullanıcı Bilgileri Tablosu


2.2.3.1.2.4. Eklenen Randevular Tablosu
Bu tablo öğrenciler tarafından alınan randevu kayıtlarını tutar. Bu randevular bir haftalıktır. Alınan
randevu saati ve randevu günü hem gerçek değerler olarak (Pazartesi 09:00-09:15) hem de üzerinde
işlem yapılması için sayısal değerler olarak (0,0) olarak tutulur. Burada ilk 0 pazartesi gününü diğer
0 ise randevu alınabilecek ilk aralık olan 09:00-09:15 aralığını temsil etmektedir. Ayrıca öğrenci
randevu alırken randevu konusu ile ilgili herhangi bir döküman ekleyebilmektedir. Bu dökümanlar
da yine bu tabloda tutulmaktadır.




                                Tablo 2.4. Eklenen randevular tablosu


2.2.3.1.2.5. Öğretim Üyesi Randevu Bilgileri Tablosu
Bu tablolar her öğretim üyesi için öğretim üyesinin id sine göre oluşturulmaktadır. Her öğretim
üyesine ait kendi tablosu vardır. Bu tablolar kullanıcı kaydı yapıldığında yani öğretim üyesi
KOURYS'ye üye olduğunda oluşturulmaktadır. İçerisinde de öğretim üyesinin ofis saatleri bilgisini
tutmaktadır.
Öğretim üyesi kendi sayfasından girerek ofis saatlerini ayarladığında veriler bu tabloya yazılır. Yine
tblEklenenRandevular tablosunda olduğu gibi (Tablo1.4.) randevu gün ve saat değerleri hem gerçek
değerleri ile hem de sayısal değerler olarak tutulur.




                                                   50
Tablo 2.5. Randevu Saatleri Tablosu




                51
SONUÇ VE ÖNERİLER

Kocaeli Üniversitesi Randevu Yönetim Sistemi'nin amacı öğretim üyelerinin ofis saatlerini daha
verimli bir şekilde kullanmasını amaçlamaktadır. Bu amaç doğrultusunda sistem geliştirilmiştir. Bu
saatlerin en verimli şekilde kullanılabilmesi için sistem en detaylı şekilde gerçeklenmeye
çalışılmıştır.

Yazılım geliştirmenin temel amaçları iş yükünün hafifletilmesi ve mevcut sistemin daha kolay, daha
sağlıklı ve daha verimli bir şekilde iyileştirilmesidir. Bu hususlar göz önüne alındığında Kocaeli
Ünversitesi Randevu Yönetim Sistemi öğretim üyeleri ve öğrenciler arasında randevu saatlerinin
daha önceden belirlenmesi hem öğretim üyesi için hem öğrenci için zaman kaybının önüne
geçmektedir ve sistemin daha verimli bir şekilde çalışmasını sağlamaktadır. Sistem de ayrıca bir
yönetici kısmı vardır ve yönetici sisteme yeni bileşenler ekleyebilmektedir. Bu da sistemin dinamik
bir yapı da olmasını sağlamaktadır. Randevular sistemde bir haftalık olarak ayarlanmaktadır.
Öğrenciler haftaiçi günlerinde öğretim üyelerinin belirlediği ofis saatleri aralığında randevularını
alabilmektedirler. Fakat öğretim üyesinin sistemi kullanabilmesi için sistem yöneticisinin öğretim
üyesini sisteme kaydetmesi gerekmektedir. Sisteme kayıt olan öğretim üyesi kendi kullanıcı adı ve
şifresi ile sisteme giriş yaptıktan sonra ofis saatlerini ayarlayarak sistemi kullanmaya başlayabilir.

Sonuç olarak, oluşturulan sistem ile öğretim üyesi ve öğrenci arasındaki görüşmeler daha kolay ve
verimli bir şekilde sağlanmıştır.
KAYNAKLAR

[1] http://www.nedirtv.com/video/Webiner-ASPNET-AJAX.aspx

[2] Her Yönüyle C# Sefer ALGAN Pusula Yayıncılık

[3] asp ile web programcılığı ve elektronik ticaret zafer demirkol

[4] Building web solutions with ASP.NET and ADO.NET
Yazar Esposito, Dino
ISBN-ISSN 0735615780
Yayın Yeri : Yayınlayan Reymond, Washington : Microsoft Press
Yayın Tarihi 2002


[5]


Eser Adı ASP.NET
Yazar Çankaya, Mehmet Nuri
ISBN-ISSN 9753474970
Yayın Yeri :
Yayınlayan Ankara : Seçkin
Yayın Tarihi 2002

[6] Eser Adı Designing microsoft ASP. NET applications
Yazar Reilly, Douglas J.
ISBN-ISSN 0735613486
Yayın Yeri : Yayınlayan Redmond, Washington : Microsoft Press
Yayın Tarihi c2002


[7]


Eser Adı Programming Microsoft.Net
Yazar Prosise, Jeff
ISBN-ISSN 0735613761
Yayın Yeri : Yayınlayan Redmont, Washington : Microsoft
Press
Yayın Tarihi 2002

[8] C# ile ASP.NET - Zafer Demirkol - Pusula Yayınları

[9] ASP.NET Unleashed / Web Programcılığı - Stephen Walther - Sistem
Yayıncılık

[10]ASP.NET ve C# Web Programcılığı - A.Russell Jones - Alfa Yayınları

[11]Adım Adım Microsoft ASP.NET - G.Andrew Duthie - Arkadaş
Yayınları

[12] http://www.w3schools.com/SQl/default.asp
[13] http://www.connectionstrings.com/sql-server-2005

[14] http://msdn.microsoft.com/en-us/library/aa174792(SQL.80).aspx

[15] http://www.asp.net/learn/ajax-videos/

[16] http://quickstarts.asp.net/QuickStartv20/aspnet/Default.aspx

[17] http://www.asp.net/learn/

[18] http://www.sqlcourse.com/

[19] http://www.obout.com/inc/download.aspx

[20] http://www.obout.com/inc/tu_add_component.aspx

[21] http://www.zirvedekibeyinler.net/Videolar-144-asp-net-de-masterpage-
yapisi.aspx

Contenu connexe

Tendances

Hoàn thiện công tác kế toán tập hợp chi phí và tính giá thành dịch vụ du lịch...
Hoàn thiện công tác kế toán tập hợp chi phí và tính giá thành dịch vụ du lịch...Hoàn thiện công tác kế toán tập hợp chi phí và tính giá thành dịch vụ du lịch...
Hoàn thiện công tác kế toán tập hợp chi phí và tính giá thành dịch vụ du lịch...https://www.facebook.com/garmentspace
 
Luận Văn Hoàn Thiện Hệ Thống Kế Toán Quản Trị Tại Công Ty Visual Merchandising
Luận Văn Hoàn Thiện Hệ Thống Kế Toán Quản Trị Tại Công Ty Visual MerchandisingLuận Văn Hoàn Thiện Hệ Thống Kế Toán Quản Trị Tại Công Ty Visual Merchandising
Luận Văn Hoàn Thiện Hệ Thống Kế Toán Quản Trị Tại Công Ty Visual MerchandisingHỗ Trợ Viết Đề Tài luanvanpanda.com
 
Оцветявки за 1 клас
Оцветявки за 1 класОцветявки за 1 клас
Оцветявки за 1 класVili Dimova
 
Registru cu constatarile din serviciu rond
Registru cu constatarile din serviciu rondRegistru cu constatarile din serviciu rond
Registru cu constatarile din serviciu rondPompierii Români
 
Hoàn thiện công tác kế toán tại các trường công lập trực thuộc phòng Giáo duc...
Hoàn thiện công tác kế toán tại các trường công lập trực thuộc phòng Giáo duc...Hoàn thiện công tác kế toán tại các trường công lập trực thuộc phòng Giáo duc...
Hoàn thiện công tác kế toán tại các trường công lập trực thuộc phòng Giáo duc...Man_Ebook
 
Зелена книга "Залізничні вантажні перевезення"
Зелена книга "Залізничні вантажні перевезення"Зелена книга "Залізничні вантажні перевезення"
Зелена книга "Залізничні вантажні перевезення"Better Regulation Delivery Office
 
входно ниво човек и общество ііі клас
входно ниво човек и общество ііі класвходно ниво човек и общество ііі клас
входно ниво човек и общество ііі класDani Parvanova
 
Luận Văn Nghiên Cứu Về Mối Quan Hệ Giữa Chất Lượng Phần Mềm Kế Toán Với Hoạt ...
Luận Văn Nghiên Cứu Về Mối Quan Hệ Giữa Chất Lượng Phần Mềm Kế Toán Với Hoạt ...Luận Văn Nghiên Cứu Về Mối Quan Hệ Giữa Chất Lượng Phần Mềm Kế Toán Với Hoạt ...
Luận Văn Nghiên Cứu Về Mối Quan Hệ Giữa Chất Lượng Phần Mềm Kế Toán Với Hoạt ...Hỗ Trợ Viết Đề Tài luanvanpanda.com
 

Tendances (20)

Ligar es facil
Ligar es facilLigar es facil
Ligar es facil
 
Hoàn thiện công tác kế toán tập hợp chi phí và tính giá thành dịch vụ du lịch...
Hoàn thiện công tác kế toán tập hợp chi phí và tính giá thành dịch vụ du lịch...Hoàn thiện công tác kế toán tập hợp chi phí và tính giá thành dịch vụ du lịch...
Hoàn thiện công tác kế toán tập hợp chi phí và tính giá thành dịch vụ du lịch...
 
Luận Văn Hoàn Thiện Hệ Thống Kế Toán Quản Trị Tại Công Ty Visual Merchandising
Luận Văn Hoàn Thiện Hệ Thống Kế Toán Quản Trị Tại Công Ty Visual MerchandisingLuận Văn Hoàn Thiện Hệ Thống Kế Toán Quản Trị Tại Công Ty Visual Merchandising
Luận Văn Hoàn Thiện Hệ Thống Kế Toán Quản Trị Tại Công Ty Visual Merchandising
 
Agatha操作ガイド 応用編
Agatha操作ガイド 応用編Agatha操作ガイド 応用編
Agatha操作ガイド 応用編
 
прилаг. име 2 група
прилаг. име 2 групаприлаг. име 2 група
прилаг. име 2 група
 
Оцветявки за 1 клас
Оцветявки за 1 класОцветявки за 1 клас
Оцветявки за 1 клас
 
Kế toán bán hàng và kết quả kinh doanh tại Công ty ô tô Nisun, 9đ
Kế toán bán hàng và kết quả kinh doanh tại Công ty ô tô Nisun, 9đKế toán bán hàng và kết quả kinh doanh tại Công ty ô tô Nisun, 9đ
Kế toán bán hàng và kết quả kinh doanh tại Công ty ô tô Nisun, 9đ
 
Đề tài: Kiểm toán thuế trong kiểm toán báo cáo tài chính tại Công ty
Đề tài: Kiểm toán thuế trong kiểm toán báo cáo tài chính tại Công tyĐề tài: Kiểm toán thuế trong kiểm toán báo cáo tài chính tại Công ty
Đề tài: Kiểm toán thuế trong kiểm toán báo cáo tài chính tại Công ty
 
Registru cu constatarile din serviciu rond
Registru cu constatarile din serviciu rondRegistru cu constatarile din serviciu rond
Registru cu constatarile din serviciu rond
 
Đề tài: Hoàn thiện tổ chức công tác kế toán tại xã Mai Đình, HAY
Đề tài: Hoàn thiện tổ chức công tác kế toán tại xã Mai Đình, HAYĐề tài: Hoàn thiện tổ chức công tác kế toán tại xã Mai Đình, HAY
Đề tài: Hoàn thiện tổ chức công tác kế toán tại xã Mai Đình, HAY
 
Hoàn thiện công tác kế toán tại các trường công lập trực thuộc phòng Giáo duc...
Hoàn thiện công tác kế toán tại các trường công lập trực thuộc phòng Giáo duc...Hoàn thiện công tác kế toán tại các trường công lập trực thuộc phòng Giáo duc...
Hoàn thiện công tác kế toán tại các trường công lập trực thuộc phòng Giáo duc...
 
Зелена книга "Залізничні вантажні перевезення"
Зелена книга "Залізничні вантажні перевезення"Зелена книга "Залізничні вантажні перевезення"
Зелена книга "Залізничні вантажні перевезення"
 
гласни звукове 2 гр
гласни звукове   2 гргласни звукове   2 гр
гласни звукове 2 гр
 
Kho 200 Đề Tài Báo Cáo Thực Tập Ngành Kiểm Toán, Từ Sinh Viên Khá Giỏi
Kho 200 Đề Tài Báo Cáo Thực Tập Ngành Kiểm Toán, Từ Sinh Viên Khá GiỏiKho 200 Đề Tài Báo Cáo Thực Tập Ngành Kiểm Toán, Từ Sinh Viên Khá Giỏi
Kho 200 Đề Tài Báo Cáo Thực Tập Ngành Kiểm Toán, Từ Sinh Viên Khá Giỏi
 
входно ниво човек и общество ііі клас
входно ниво човек и общество ііі класвходно ниво човек и общество ііі клас
входно ниво човек и общество ііі клас
 
Đề tài: Thuế GTGT ở Việt Nam - Thực trạng và giải pháp, HAY
Đề tài: Thuế GTGT ở Việt Nam - Thực trạng và giải pháp, HAYĐề tài: Thuế GTGT ở Việt Nam - Thực trạng và giải pháp, HAY
Đề tài: Thuế GTGT ở Việt Nam - Thực trạng và giải pháp, HAY
 
Kiểm toán chi phí bán hàng và quản lý doanh nghiệp tại Công ty AASC
Kiểm toán chi phí bán hàng và quản lý doanh nghiệp tại Công ty AASCKiểm toán chi phí bán hàng và quản lý doanh nghiệp tại Công ty AASC
Kiểm toán chi phí bán hàng và quản lý doanh nghiệp tại Công ty AASC
 
Nâng Cao Chất Lượng Công Tác Văn Thư Lưu Trữ Tại Ủy Ban Nhân Dân Cấp Xã, Huyệ...
Nâng Cao Chất Lượng Công Tác Văn Thư Lưu Trữ Tại Ủy Ban Nhân Dân Cấp Xã, Huyệ...Nâng Cao Chất Lượng Công Tác Văn Thư Lưu Trữ Tại Ủy Ban Nhân Dân Cấp Xã, Huyệ...
Nâng Cao Chất Lượng Công Tác Văn Thư Lưu Trữ Tại Ủy Ban Nhân Dân Cấp Xã, Huyệ...
 
Luận Văn Nghiên Cứu Về Mối Quan Hệ Giữa Chất Lượng Phần Mềm Kế Toán Với Hoạt ...
Luận Văn Nghiên Cứu Về Mối Quan Hệ Giữa Chất Lượng Phần Mềm Kế Toán Với Hoạt ...Luận Văn Nghiên Cứu Về Mối Quan Hệ Giữa Chất Lượng Phần Mềm Kế Toán Với Hoạt ...
Luận Văn Nghiên Cứu Về Mối Quan Hệ Giữa Chất Lượng Phần Mềm Kế Toán Với Hoạt ...
 
Đề tài: Hoàn thiện công tác kế toán hàng hóa tại Công ty VOSCO
Đề tài: Hoàn thiện công tác kế toán hàng hóa tại Công ty VOSCOĐề tài: Hoàn thiện công tác kế toán hàng hóa tại Công ty VOSCO
Đề tài: Hoàn thiện công tác kế toán hàng hóa tại Công ty VOSCO
 

En vedette

Okul otomasyon rapor
Okul otomasyon raporOkul otomasyon rapor
Okul otomasyon raporEnes Caglar
 
Tasarım Analiz Raporu: Üniversite Web Sitesi
Tasarım Analiz Raporu: Üniversite Web SitesiTasarım Analiz Raporu: Üniversite Web Sitesi
Tasarım Analiz Raporu: Üniversite Web Sitesitrkaplan
 
DeğişİK Modül Notları
DeğişİK Modül NotlarıDeğişİK Modül Notları
DeğişİK Modül NotlarıMUSTAFA BAYINDIR
 
Sistem analizi ve tasarımı(final)
Sistem analizi ve tasarımı(final)Sistem analizi ve tasarımı(final)
Sistem analizi ve tasarımı(final)Ahmet Yanik
 
Yaşam, Sorumluluklarımız ve Yeteneklerimiz Üzerine Tavsiyeler
Yaşam, Sorumluluklarımız ve Yeteneklerimiz Üzerine TavsiyelerYaşam, Sorumluluklarımız ve Yeteneklerimiz Üzerine Tavsiyeler
Yaşam, Sorumluluklarımız ve Yeteneklerimiz Üzerine Tavsiyelerinal aydinoglu
 
Pda mutlu bir yasam i̇cin altın kurallar
Pda mutlu bir yasam i̇cin altın kurallarPda mutlu bir yasam i̇cin altın kurallar
Pda mutlu bir yasam i̇cin altın kurallarPDAdanismanlik
 
Sağlık kurumlarında kalite yönetimi unite 21-hizmet kalitesinin değerlendiril...
Sağlık kurumlarında kalite yönetimi unite 21-hizmet kalitesinin değerlendiril...Sağlık kurumlarında kalite yönetimi unite 21-hizmet kalitesinin değerlendiril...
Sağlık kurumlarında kalite yönetimi unite 21-hizmet kalitesinin değerlendiril...Prof. Dr. Halit Hami Öz
 
Use of hog descriptors in phishing detection
Use of hog descriptors in phishing detectionUse of hog descriptors in phishing detection
Use of hog descriptors in phishing detectionSelman Bozkır
 
Yönetim final çalışması
Yönetim final çalışmasıYönetim final çalışması
Yönetim final çalışmasıEmrullah Baran
 
Blowfish Şifreleme Algoritması
Blowfish Şifreleme AlgoritmasıBlowfish Şifreleme Algoritması
Blowfish Şifreleme AlgoritmasıEnes Caglar
 
2 baglanti katman_1_6s
2 baglanti katman_1_6s2 baglanti katman_1_6s
2 baglanti katman_1_6sEnes Caglar
 

En vedette (20)

Gereksinim Analizi Dokümanı Hazırlama
Gereksinim Analizi Dokümanı HazırlamaGereksinim Analizi Dokümanı Hazırlama
Gereksinim Analizi Dokümanı Hazırlama
 
Yazılım Gereksinim Mühendisliği Semineri
Yazılım Gereksinim Mühendisliği SemineriYazılım Gereksinim Mühendisliği Semineri
Yazılım Gereksinim Mühendisliği Semineri
 
Hastane Poliklinik Otomasyonu
Hastane Poliklinik OtomasyonuHastane Poliklinik Otomasyonu
Hastane Poliklinik Otomasyonu
 
Okul otomasyon rapor
Okul otomasyon raporOkul otomasyon rapor
Okul otomasyon rapor
 
UML ile Modelleme
UML ile ModellemeUML ile Modelleme
UML ile Modelleme
 
Tasarım Analiz Raporu: Üniversite Web Sitesi
Tasarım Analiz Raporu: Üniversite Web SitesiTasarım Analiz Raporu: Üniversite Web Sitesi
Tasarım Analiz Raporu: Üniversite Web Sitesi
 
DeğişİK Modül Notları
DeğişİK Modül NotlarıDeğişİK Modül Notları
DeğişİK Modül Notları
 
Sistem analizi ve tasarımı(final)
Sistem analizi ve tasarımı(final)Sistem analizi ve tasarımı(final)
Sistem analizi ve tasarımı(final)
 
Yaşam, Sorumluluklarımız ve Yeteneklerimiz Üzerine Tavsiyeler
Yaşam, Sorumluluklarımız ve Yeteneklerimiz Üzerine TavsiyelerYaşam, Sorumluluklarımız ve Yeteneklerimiz Üzerine Tavsiyeler
Yaşam, Sorumluluklarımız ve Yeteneklerimiz Üzerine Tavsiyeler
 
Pda mutlu bir yasam i̇cin altın kurallar
Pda mutlu bir yasam i̇cin altın kurallarPda mutlu bir yasam i̇cin altın kurallar
Pda mutlu bir yasam i̇cin altın kurallar
 
Fırtınada nefes molası
Fırtınada nefes molasıFırtınada nefes molası
Fırtınada nefes molası
 
Sağlık kurumlarında kalite yönetimi unite 21-hizmet kalitesinin değerlendiril...
Sağlık kurumlarında kalite yönetimi unite 21-hizmet kalitesinin değerlendiril...Sağlık kurumlarında kalite yönetimi unite 21-hizmet kalitesinin değerlendiril...
Sağlık kurumlarında kalite yönetimi unite 21-hizmet kalitesinin değerlendiril...
 
Use of hog descriptors in phishing detection
Use of hog descriptors in phishing detectionUse of hog descriptors in phishing detection
Use of hog descriptors in phishing detection
 
Yönetim final çalışması
Yönetim final çalışmasıYönetim final çalışması
Yönetim final çalışması
 
Srs Ornek
Srs OrnekSrs Ornek
Srs Ornek
 
Blowfish Şifreleme Algoritması
Blowfish Şifreleme AlgoritmasıBlowfish Şifreleme Algoritması
Blowfish Şifreleme Algoritması
 
Wimax Sunum
Wimax SunumWimax Sunum
Wimax Sunum
 
Dns security
Dns securityDns security
Dns security
 
2 baglanti katman_1_6s
2 baglanti katman_1_6s2 baglanti katman_1_6s
2 baglanti katman_1_6s
 
Işik ve madde
Işik ve maddeIşik ve madde
Işik ve madde
 

Similaire à Kocaeli Üniversitesi Randevu Yönetim Sistemi Raporu

Teknik resim ve çizim teknolojileri 520 tc0029 (2)
Teknik resim ve çizim teknolojileri 520 tc0029 (2)Teknik resim ve çizim teknolojileri 520 tc0029 (2)
Teknik resim ve çizim teknolojileri 520 tc0029 (2)Iklimlendirme Sogutma
 
Teknik resim ve çizim teknolojileri 520 tc0005 (1)
Teknik resim ve çizim teknolojileri 520 tc0005 (1)Teknik resim ve çizim teknolojileri 520 tc0005 (1)
Teknik resim ve çizim teknolojileri 520 tc0005 (1)Iklimlendirme Sogutma
 
Kelime işlemci (bilişim teknolojileri)
Kelime işlemci (bilişim teknolojileri)Kelime işlemci (bilişim teknolojileri)
Kelime işlemci (bilişim teknolojileri)Erol Dizdar
 
Nesne tabanlı programlama 2
Nesne tabanlı programlama 2Nesne tabanlı programlama 2
Nesne tabanlı programlama 2Erol Dizdar
 
1 sunucu isletim sistemi
1 sunucu isletim sistemi1 sunucu isletim sistemi
1 sunucu isletim sistemiFatih Tüzen
 
T.C. BARTIN ÜNİVERSİTESİ 2013-2017 DÖNEMİ STRATEJİK PLANI
T.C. BARTIN ÜNİVERSİTESİ 2013-2017 DÖNEMİ STRATEJİK PLANIT.C. BARTIN ÜNİVERSİTESİ 2013-2017 DÖNEMİ STRATEJİK PLANI
T.C. BARTIN ÜNİVERSİTESİ 2013-2017 DÖNEMİ STRATEJİK PLANIMehmet Erturk
 
Balikcilikvesu urunleri mevzuati
Balikcilikvesu urunleri mevzuatiBalikcilikvesu urunleri mevzuati
Balikcilikvesu urunleri mevzuatiByNeo
 
Elektronik tablolama
Elektronik tablolamaElektronik tablolama
Elektronik tablolamaErol Dizdar
 
Görüntü işleme
Görüntü işlemeGörüntü işleme
Görüntü işlemeErol Dizdar
 

Similaire à Kocaeli Üniversitesi Randevu Yönetim Sistemi Raporu (20)

Teknik resim ve çizim teknolojileri 520 tc0029 (2)
Teknik resim ve çizim teknolojileri 520 tc0029 (2)Teknik resim ve çizim teknolojileri 520 tc0029 (2)
Teknik resim ve çizim teknolojileri 520 tc0029 (2)
 
Teknik resim ve çizim teknolojileri 520 tc0005 (1)
Teknik resim ve çizim teknolojileri 520 tc0005 (1)Teknik resim ve çizim teknolojileri 520 tc0005 (1)
Teknik resim ve çizim teknolojileri 520 tc0005 (1)
 
Teknik resim 520 tc0005 (1)
Teknik resim 520 tc0005 (1)Teknik resim 520 tc0005 (1)
Teknik resim 520 tc0005 (1)
 
Kelime işlemci (bilişim teknolojileri)
Kelime işlemci (bilişim teknolojileri)Kelime işlemci (bilişim teknolojileri)
Kelime işlemci (bilişim teknolojileri)
 
Nesne tabanlı programlama 2
Nesne tabanlı programlama 2Nesne tabanlı programlama 2
Nesne tabanlı programlama 2
 
7-Post(İlk Açılış)
7-Post(İlk Açılış)7-Post(İlk Açılış)
7-Post(İlk Açılış)
 
Visual studio
Visual studioVisual studio
Visual studio
 
1 sunucu isletim sistemi
1 sunucu isletim sistemi1 sunucu isletim sistemi
1 sunucu isletim sistemi
 
T.C. BARTIN ÜNİVERSİTESİ 2013-2017 DÖNEMİ STRATEJİK PLANI
T.C. BARTIN ÜNİVERSİTESİ 2013-2017 DÖNEMİ STRATEJİK PLANIT.C. BARTIN ÜNİVERSİTESİ 2013-2017 DÖNEMİ STRATEJİK PLANI
T.C. BARTIN ÜNİVERSİTESİ 2013-2017 DÖNEMİ STRATEJİK PLANI
 
Balikcilikvesu urunleri mevzuati
Balikcilikvesu urunleri mevzuatiBalikcilikvesu urunleri mevzuati
Balikcilikvesu urunleri mevzuati
 
213 gim016
213 gim016213 gim016
213 gim016
 
Elektronik tablolama
Elektronik tablolamaElektronik tablolama
Elektronik tablolama
 
Metotlar
MetotlarMetotlar
Metotlar
 
Görüntü işleme
Görüntü işlemeGörüntü işleme
Görüntü işleme
 
Fireworks 1
Fireworks 1Fireworks 1
Fireworks 1
 
482 bk0080
482 bk0080482 bk0080
482 bk0080
 
482 bk0083
482 bk0083482 bk0083
482 bk0083
 
Flash 2
Flash 2Flash 2
Flash 2
 
Havalandırma sistemleri 522 ee0203
Havalandırma sistemleri 522 ee0203Havalandırma sistemleri 522 ee0203
Havalandırma sistemleri 522 ee0203
 
Sunu hazırlama
Sunu hazırlamaSunu hazırlama
Sunu hazırlama
 

Plus de Enes Caglar

Dijital i̇mza ve ssl
Dijital i̇mza ve sslDijital i̇mza ve ssl
Dijital i̇mza ve sslEnes Caglar
 
Ethernet arp anahtarlar yönlendiriciler ppp
Ethernet arp anahtarlar yönlendiriciler pppEthernet arp anahtarlar yönlendiriciler ppp
Ethernet arp anahtarlar yönlendiriciler pppEnes Caglar
 

Plus de Enes Caglar (6)

Web Crawlers
Web CrawlersWeb Crawlers
Web Crawlers
 
Dijital i̇mza ve ssl
Dijital i̇mza ve sslDijital i̇mza ve ssl
Dijital i̇mza ve ssl
 
IIS
IISIIS
IIS
 
Diffie hellman
Diffie  hellmanDiffie  hellman
Diffie hellman
 
Wimax sunum
Wimax sunumWimax sunum
Wimax sunum
 
Ethernet arp anahtarlar yönlendiriciler ppp
Ethernet arp anahtarlar yönlendiriciler pppEthernet arp anahtarlar yönlendiriciler ppp
Ethernet arp anahtarlar yönlendiriciler ppp
 

Kocaeli Üniversitesi Randevu Yönetim Sistemi Raporu

  • 1. İÇİNDEKİLER ŞEKİLLER DİZİNİ..............................................................................................................................2 TABLOLAR DİZİNİ............................................................................................................................3 ÖZET....................................................................................................................................................4 SUMMARY..........................................................................................................................................5 ÖNSÖZ................................................................................................................................................5 BÖLÜM I...............................................................................................................................................6 GİRİŞ...............................................................................................................................................6 BÖLÜM II..............................................................................................................................................7 2.1. PROJEDE KULLANILAN TEKNOLOJİLER........................................................................8 2.1.1. ASP.NET Ve .NET Framework........................................................................................8 2.1.1.1. .NET FRAMEWORK .............................................................................................8 2.1.1.2. Server Kontrol ..........................................................................................................8 2.1.1.3. Web.Config ...............................................................................................................8 2.1.1.4. State Management.....................................................................................................9 2.1.1.5. XML........................................................................................................................10 2.1.1.6. Master Page.............................................................................................................11 2.1.1.7. Web User Control ...................................................................................................15 2.1.1.7.1 Özellikleri ........................................................................................................15 2.1.2.SQL Ve MSSQL...............................................................................................................16 2.1.2.1. SQL Veri Tanımlama Deyimleri..............................................................................16 2.1.2.2. SQL Deyimleri........................................................................................................17 2.1.2.3. DML (Data Manipulation Language) Deyimleri....................................................18 2.1.2.4. DCL (Data Control Language) Deyimleri...............................................................23 2.1.2.5. SQL FONKSİYONLARI........................................................................................23 2.1.2.5.1. Gruplama Fonksyonları...................................................................................23 Değerlerin toplamlarını verir. SUM fonksiyonu sadece sayısal alanlarda kullanılır................25 2.2. Kodlama Standartları..............................................................................................................26 2.2.1. Tanımlar ve Kısaltmalar..................................................................................................26 2.2.1.1. PascalCase...............................................................................................................26 2.2.1.2. CamelCase...............................................................................................................26 2.2.1.3. UpperCase...............................................................................................................26 2.2.1.4. LowerCase...............................................................................................................26 2.2.2. C# İsimlendirme Standartları..........................................................................................26 2.2.2.1. Değişken Tanımlama Standartları...........................................................................27 2.2.2.2. Genel Hata Yönetimi...............................................................................................27 2.2.2.3. Programlama Pratikleri............................................................................................27 2.2.2.4. Veritabanı Nesne Adlandırma Kuralları..................................................................28 2.2.2.5. Tabloların İsimlendirilmesi.....................................................................................28 2.2.2.6. Saklı Prosedürlerin İsimlendirilmesi.......................................................................29 2.2.2.7. Tetikleyicilerin (Trigger) İsimlendirilmesi..............................................................30 2.2.2.8. Birincil Anahtarlar (Primary Keys).........................................................................30 2.2.2.9. Sekanslar(Sequences)..............................................................................................30 1
  • 2. 2.2.3. PROJE İÇERİĞİNİN ANLATILMASI..........................................................................30 2.2.3.1.UYGULAMA KISMI...............................................................................................30 2.2.3.1.1. Öğrenci Kısmı..................................................................................................32 2.2.3.1.2. Öğretim Üyesi Kısmı........................................................................................37 2.2.3.1.3. Admin Kısmı....................................................................................................40 2.2.3.1. VERİTABANI KISMI.............................................................................................44 2.2.3.1.1. Saklı Yordamlar - Stored Procedures...............................................................44 2.2.3.1.2. Tablolar............................................................................................................47 SONUÇ VE ÖNERİLER...................................................................................................................52 KAYNAKLAR...................................................................................................................................53 ŞEKİLLER DİZİNİ Şekil 2.1. State Management olmadığı durum Şekil 2.2. State management olduğu durum Şekil 2.3. Master Page ve aspx sayfalarının ortak çalışma mimarisi Şekil 2.4. Master page oluşturma Şekil 2.5. Master Page oluşturma 2
  • 3. Şekil 2.6. Saklı yordamların avantajları Şekil 2.7. Projeye ait solution explorer görüntüsü Şekil 2.8. Tüm kullanıcıların giriş yaptığı anasayfa Şekil 2.9. Randevu Al sayfası. Şekil 2.10. Randevu Al sayfasında öğrenci bilgilerinin girilmesi ve dosya ekleme işlemi Şekil 2.11. Randevu Al sayfası tüm bilgilerin girilmiş hali Şekil 2.12. Randevu Sil sayfasında randevuların listelenmesi Şekil 2.13. Randevu Sil sayfasında randevu silindikten sonraki uyarı ekranı Şekil 2.14. Öğretim üyelerinin sisteme giriş yaptıkları sayfa. Şekil 2.15. Şifre Hatırlatma Sayfası Şekil 2.16. Öğretim görevlilerine ait anasayfa Şekil 2.17. Ofis Saatleri sayfasında uygun randevu saatlerinin listelenmesi ve ayarlanması. Şekil 2.18. Öğretim görevlisine ait randevu görüntüleme ve düzenleme sayfası Şekil 2.19. Sistem yöneticisi giriş sayfası Şekil 2.20. Sistem yöneticisi anasayfası Şekil 2.21. Sistem yöneticisinin bölüm eklemek ve silmek için kullandığı sayfa Şekil 2.22. Sistem yöneticisinin fakülte eklemek ve silmek için kullandığı sayfa Şekil 2.23. Sistem yöneticisinin başka bir sistem yöneticisi eklediği sayfa Şekil 2.24. Sistem yöneticisinin öğretim üyesi kaydı yaptığı sayfa Şekil 2.25. Sistem yöneticisi tarafından kullacıların listelenmesi ve silinmesi işlemleri sayfası TABLOLAR DİZİNİ Tablo 2.1. Bölümler Tablosu Tablo 2.2. Fakülteler Tablosu Tablo 2.3. Kullanıcı Bilgileri Tablosu 3
  • 4. Tablo 2.4. Kullanıcı Bilgileri Tablosu Tablo 2.5. Eklenen randevular tablosu Tablo 2.6. Randevu Saatleri Tablosu ÖZET Online Okul Web Otomasyon Sistemi; ilköğretim, Lise, Yüksekokul ve Özel eğitim kurumları için hazırlanmış bir otomasyon sistemidir. Bu sistem ile okullara ait her türlü bilgi, duyuru, doküman, resim gibi içerikleri online bir şekilde web sitesinde yayınlanabilmektedir. Sistem sadece web üzerinden yayınlanan içeriklerden öte, öğrenci bilgi sistemini de içermektedir. Bu sistem ile öğrenci ve veliler not, devamsızlık, öğretmen görüşleri ve ödevlerini internet üzerinden takip edebilirler. 4
  • 5. Okulda kullanılan programa girilen bilgilerin ayrıca web not sistemine girilmesine gerek kalmadan tüm bilgiler web sayfasına aktarılabilmektedir.. Bu işlem sayesinde büyük bir kolay sağlanmakta, bilgilerin teker teker girilerek işlemlerin zorlaşması önlenmektedir. Öğretmenler internet erişimi olan her bilgisayardan öğrenci notları, ödevleri ve öğrenciler hakkındaki görüşleri sisteme girebilirler. Ayrıca öğretmenlerin genel ihtiyaçları arasında olan sınıf listeleri, öğrenci not durumu, devamsızlıklık durumu gibi listelere sistem üzerinden ulaşabilirler. Sistemin en büyük amacı öğrenci-Veli-Öğretmen-İdareci işbirliğini arttırmak ve bunun sonucu olarak eğitimde kaliteyi yükseltmeyi hedeflemektedir. Sistemin kolay kullanılması, web üzerinden güncellenebilmesi, sistemi kullanmak için ekstra internet bilgisine gerek kalmaması öğrenci ,veli ve öğretmenlerin işlemlerini kolaylaştırması büyük önem taşımaktadır. SUMMARY ÖNSÖZ Sunmuş olduğumuz proje online bir Okul Otomasyon sistemidir. Sistem okullara ait her türlü bilgi, doküman, duyuru gibi bilgilerin paylaşılmasına, öğretmenlerin, ilgili öğrencilerinin notlarını kolay bir şekilde sisteme kaydedebilmesi, yönetebilmesi ve değerlendirebilmesine, öğrencilere ait bilgilerin kolayca erişilebilmesine, öğrencilerin kendilerine ait not listesi, devamsızlık listesi gibi bir takım bilgilere ulaşabilmesine olanak sağlamaktadır. Ayrıca idareciler de kendileri ile ilgili sorumlulukları dahilindeki alanlara veri girme, güncelleme işlemlerini kolayca gerçekleştirebilmektedir. Bu proje ile öğrenci-Veli-Öğretmen-İdareci işbirliğini arttırmak ve bunun sonucu olarak eğitimde kaliteyi yükseltmeyi hedeflemiştir. Saygılarımızla, 5
  • 6. Enes ÇAĞLAR - Şeyda YILMAZ BÖLÜM I GİRİŞ Online Okul Web Otomasyon Sistemi; ilköğretim, Lise, Yüksekokul ve Özel eğitim kurumları için hazırlanmış bir otomasyon sistemidir. Bu sistem ile okulunuza ait her türlü bilgi, duyuru, doküman, resim gibi içerikleri online bir şekilde web sitenizde yayınlayabilirsiniz. 6
  • 7. Sistem sadece web üzerinden yayınlanan içeriklerden öte, öğrenci bilgi sistemini de içermektedir. Bu sistem ile öğrenci ve veliler not, devamsızlık, öğretmen görüşleri ve ödevlerini internet üzerinden takip edebilirler. Okulda kullandığınız programa girdiğiniz bilgileri ayrıca web not sistemine girmenize gerek kalmadan tüm bilgileri web sayfasına aktarabilirsiniz. Bu işlem sayesinde büyük bir kolay sağlanmakta, bilgilerin teker teker girilerek işlemlerin zorlaşması önlenmektedir. Öğretmenler internet erişimi olan her bilgisayardan öğrenci notları, ödevleri ve öğrenciler hakkındaki görüşleri sisteme girebilirler. Ayrıca öğretmenlerin genel ihtiyaçları arasında olan sınıf listeleri, öğrenci not durumu, devamsızlıklık durumu gibi listelere sistem üzerinden ulaşabilirler. Sistemin en büyük amacı öğrenci-Veli-Öğretmen-İdareci işbirliğini arttırmak ve bunun sonucu olarak eğitimde kaliteyi yükseltmeyi hedeflemektedir. Sistemin kolay kullanılması, web üzerinden güncellenebilmesi, sistemi kullanmak için ekstra internet bilgisine gerek kalmaması öğrenci ,veli ve öğretmenlerin işlemlerini kolaylaştırması büyük önem taşımaktadır. Okul otomasyon sistemi .Net kullanılarak hazırlanmıştır. Veritabanı olarak MSSQL veritabanı kullanılmıştır. ASP.NET ile üç katmanlı mimari ile hazırlanmış olup veritabanı işlemleri için stored procedur ler kullanılarak güvenlik sağlanmıştır. Proje dört ana kısımda incelenebilir. Bunlar öğrenci, öğretmen, editör ve idareci kısımlarıdır. Her bir kullanıcının görevleri ayrıdır ve sistemden bu görevleri yerine getirebilirler. Her bir kullanıcı kendilerine ait kullanıcı adı ve şifrelerini kullanarak sisteme giriş yaparlar ve kendilerine ait alanları görebilirler. Aşağıda her bir kullanıcı için kullanıcının yapabileceği işlevler belirtilmiştir. Öğrenci ve Veliler internet üzerinden öğrencinin derslerine ait yazılı, sözlü ve ödev notlarını görebilir, Öğrencinin yapmış olduğu devamsızlıklık durumunu sistemden öğrenebilirler. Ayrıca ders öğretmenleri tarafından verilen ödevleri ve öğretmenlerin öğrenci hakkındaki görüşlerini sistemden takip edebilirler. BÖLÜM II PROJEDE KULLANILAN TEKNOLOJİLER KODLAMA STANDARTLARI PROJE İÇERİĞİNİN ANLATILMASI 7
  • 8. 2.1. PROJEDE KULLANILAN TEKNOLOJİLER Proje ASP.NET ve C# yazılım dilleri kullanılarak yazılmıştır. Veritabanı sunucusu olarak ise Microsoft SQL Server 2005 veritabanı sunucusu kullanılmıştır. ASP.NET teknolojisi çok geniş bir alana yayılmaktadır. Aşağıda bu teknolojinin projede kulanılan bazı kısımlarına değinilmektedir. 2.1.1. ASP.NET Ve .NET Framework 2.1.1.1. .NET FRAMEWORK .Net Framework, .Net platformunun bir dayanak noktasıdır. .Net Framework gücünü içerisinde barındırdığı yüzlerce sınıf (class) kütüphanesinden alır. .Net framework, sunucu tarafında çalışan bir yapı kurulabilmesini sağlar, olaya dayalı programlama modeli sayesinde daha hızlı ve verimli uygulamalar geliştirebilmesini ve bunları istenilen programlama diliyle yazabilmesini sağlar. .Net’in destek verdiği diller Visual Basic C# Microsoft Microsoft Jscript Microsoft Visual C++ .Net Visual J# .NET .Net Pyhton Oberon Perl Haskell APL Cobol Scheme Pascal ML Eiffel Mercury Ada SmallTalk Caml C Çoklu dil desteğinin avantajları: • • Kod modülleri yeniden kullanılabilir. Bir kod modülü, bir dil içinde yazılıp farklı diller içinde kullanılabilir. • Tüm diller için object kütüphanesi aynıdır ve aynı object modeli kullanılır. • Eski dillerde yazılmış programlar güncellenebilir. • .NET Framework içindeki tüm diller eşit performansa sahiptir. Bütün .NET tabanlı diller Microsoft Intermediate Language (MSIL)’a derlenir. Tüm MSIL ler native kod’a derlenir. Bu run-time’dır ve hepsi aynı derleyici kullanır. 2.1.1.2. Server Kontrol Kullanıcı arabirimi veya diğer ilişkisel fonksiyonlar oluşturmak üzere Server üzerinde çalışan componentlere server kontrol denir. Server kontroller runat= “server” özelliğine sahiptirler. 2.1.1.3. Web.Config Asp.Net’in yeniliklerinden olan web.config dosyası aslında bir ayar dosyasıdır. Ayarları bir XML formatında oluşturur ve ona göre kullanıcı işlemleri gerçekleştirilir. Web.config dosyası Asp.Net 8
  • 9. çalışmalarında mutlaka olmalıdır. Web.Config olmadığı durumlarda daha üst bir seviyede olan machine.config dosyası bulunmaktadır. Web.Config olmadığı durumlarda bu dosyadan ayarlar okunur. Bir web site oluşturulduğunda Soution Explorer'da web.config dosyasının eklendiğini görülür. Web.Config dosyamızın birimleri aşağıdaki gibidir. Birim Adı Tanımı <trace> Asp.Net trace ayarlarının yapılmasını sağlar. <globalization> Uygulada herhangi bir hata verdiğinde ne yapılması gerektiği belirlenebilir. Hata sayfasına git, mesaj iletisi ver gibi işlemler yapılabilir. <authentication> Üyelik sistemlerinde kullanıcıların geçerliliğini sağlamak için kullanılır. <sessionState> Session state ayarlarını bulundurur. <webservices> Web servisleri ile ilgili ayarları tutar. <securityPolicy> Kullunılabilecek güvenlik ayarlarını içerir. Örnek verilecek olursa; KOURYS projesinde veritabanına bağlanmak için tanımlanan connection string nesnesi, webconfig dosyasında şu şekilde tanımlanmıştır. <appSettings> <add key="systemConnectionString" value="Data Source=SEYDA-PCSQLEXPRESS; Initial Catalog=OkulOtomasyon; Integrated Security=sspi"></add> </appSettings> 2.1.1.4. State Management Web sayfalarında en çok kullanılan yöntemlerden biriside bir bilginin sayfalar arasın geçiş yapmasıdır. Bunun en iyi örneği üye girişi yapan bir kullanıcının web sitesinde dolaşabilmesidir. Asp.Net teknolojisi sayfalar arasında kullanıcı bilgilerini tutmayı (state) sağlar. Bu tarz uygulamalar windows uygulamalarda rahatlıkla yapılırken, her isteği sürekli olarak server’a post edilmesinden dolayı Asp.Net uygulamalarından biraz farklıdır. State management yok ise gönderilen bilgileri diğer sayfalar algılayamayacaktır. 9
  • 10. Şekil 2.1. State Management olmadığı durum Şekil 2.2. State management olduğu durum Kullanıcı bilgilerini saklamak ve kullanmak için kullanabilecek yöntemler vardır. Bunlar: • View State • Session State • Application State View State kontrolü kendisine verilen bilgiyi gizli bir alanda tutar. Bu bilgi hafızaya Base64 formatında bir karakter dizisi olarak yazılır ve her geri postalamada(postback) sunucuya getirilir. Ancak viewstate özelliği sunucu kontrolleriyle sınırlıdır. Yüklenen bilgi ya sizin tarafınızdan oluşturlan bir custom object ya da basit bir bilgi türü olmak zorundadır. Session State kontrolü HttpSessionState sınıfını kullanır. Kullanıcıların bilgilerini içeren kod bilgileri, 120‐bit’lik Session ID’de tutulur. Bilgileri tespit etmek, Session ID yardımı ile olur. Session tanımlama ASP.NET'te şu şekilde olabilir: Session["OgrenciNo"] = reader["OgrenciAdi"].ToString(); Burada veritabanından dönen bir değer Session[“OgrenciNo”] isimli session a atılmıştır. Diğer sayfalara geçiş yapıldığında bu nesne kullanılabilecektir. Application State web uygulaması içindeki türm sayfalar için global bir sistemdir. Ziyaretçi sayısını tutulması Application üzerinden kullanılır. 2.1.1.5. XML Bağımsız bir kuruluş olan W3C (World Wide Web Consortium) organizasyonu tarafından tasarlanan ve herhangi bir kurumun tekelinde bulunmayan XML (eXtensible Markup Language), kişilerin kendi sistemlerini oluşturabilecekleri, kendi etiketlerini tanımlayarak çok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri kendi yapıları içerisinde standardize 10
  • 11. edebilecekleri esnek, genişleyebilir ve kolay uygulanabilir bir meta dildir. Çok farklı tipteki verileri orjinal formatlarında tek bir havuzda tutabilen XML, bilgiye hızlı, kolay ve ortamdan bağımsız olarak erişebilme imkanı sunar. Günlük yaşantımızda kullanmakta olduğumuz verilerin %80'ini oluşturan ve "unstructured" olma özellikleri nedeniyle kendi bulundukları medya dışında veri özelliklerini koruyamayan (kelimeişlem, elektronik tablo çıktıları, PDF dokümanları, ses,resim vb) farklı tipteki verilerin, oryantasyona gerek duymadan hiyerarşik bir yapıda kullanılabilmelerine olanak vermekte ve bu verilerin hızlı bir şekilde sorgulanabilmelerini sağlamaktadır. Öncelikle veri transferinin kolaylaşmasını ve verinin içerik bilgisiyle saklanabilmesini hedefleyen XML, içerik ve sunum bilgilerini birbirinden ayırır. Bu özelliği ile de HTML'den farklılaşır. • XML bir document'in(belgenin) yapısını ve görünümünü tanımlamak için kullanılan uluslararası bir standartdır. • XML (Extensible Markup Language - Genişletilebilir İşaretleme Dili) yapılandırılmış belge ve verilerin evrensel formatıdır • XML text tabanlı markup dilidir ve data alış verişinde kullanılan bir standard'ır • XML bilginin yapısını tanımlamak için kullanılan bir teknolojidir. • XML bilgiyi tanımlayan ve web'te bilgi alış verişi için kullanılan standard bir biçimdir. • XML markup dillerini tanımlayan bir metadilidir. • XML verinin yapılandırılması ve tanımlanması için kullanılan bir teknolojidir. XML herhangi bir verinin biçimlenmesi,tanımlanması için kullanılan bir teknolojidir. Yukarıdaki tanımlar birbirine benzemektedir. Bazı kelimeler veri, tanımlama,standart vs.. gibi çok fazla kullanılmış. Tanımlardaki bir farklılık XML'in hem bir teknoloji hem de bir dil olmasından doğmaktadır. Bazı tanımlar sadece XML teknolojisini tanımlarken bazıları dil olarak XML'i tanımlamışlardır. Bütün bu tanımlardan şu sonuçlar çıkarılabilir: • XML hem bir teknolojidir hem de bir dildir. • XML dil olarak markup dil'leri yaratmaya yarar. • XML verileri tanımlamak için kullanılan bir teknolojidir. • XML verileri tanımlamak için bir standart oluşturmak için yaratılmıştır. • XML verileri standart bir şekilde tanımladığından web'te veya herhagi iki program arasında veri alış verişi kolaylaştırmaktadır. XML dil olarak markup dil'i yaratmaya yarar. Markup dillerine örnek olarak HTML,WML gibi örnekler verilebilir. Bu dillerde veriler bazı işaretlerle (etiket) işaretlenirler. Örneğin bir HTML kodunda bir başlık yazısı <h1> etiketi ile işaretlenir. Sonuç olarak bir belgedeki verileri işaretlemeye yarayan dillere markup dilleri denir. 2.1.1.6. Master Page Internet siteleri göz önüne aldındığında, siteye ait sayfaların sıklıkla aynı şablonları kullandığı görülmektedir. Özellike, header, footer, navigasyon ve advertisement alanları, çoğunlukla siteye ait tüm sayfalarda aynı yerlerde kullanılır. Bu, siteye ait sayfaların standart olarak aynı görünümde olmasını sağlamakla kalmaz, değişen içeriğinde ortak bir şablon üzerinde durmasına imkan tanır. 11
  • 12. Html’ in ilk zamanlarında, bu tarz işlemleri gerçekleştirmek için, ortak olan alanlar kopyalanarak diğer sayfalara yapıştırılırdı. Ya da, ana şablonu ihtiva eden bir sayfadan diğer sayfalar "save as" metodu ile oluşturulur ve içerikleri değiştirilirdi. Bu tekniğin en büyük dezavantajı, şablondaki herhangi bir değişikliğin diğer sayfalara yansıtılması sırasında ortaya çıkmaktadır. Nitekim yüzlerce alt sayfaya aynı şablon uygulanıyorsa, bu gerçekten büyük bir problemdir. Bu soruna çözüm Asp ile gelmiştir. Asp, include takılarını kullanarak, sayfalarda tekrar eden içeriklerin kolayca kullanılabilmesini ve değişikliklerin tüm sayfalarda görünebilmesini sağlamıştır. Ancak elbetteki include takısınında bir takım sorunları vardır. Bunlardan birisi, tasarım zamanında include takısının işaret ettiği içeriğin görünememesidir. Dolayısıyla sayfanın bütünün nasıl göründüğünü inceleyebilmek için mutlaka çalıştırmak gerekmektedir. Diğer yandan, include tekniği takılar üzerine kurulu olduğundan, özellikle açık unutulan takılar sayfalarda istenmeyen Html çıktılarının oluşmasına yol açmaktadır. Asp.Net, bu tip ortak içeriklerin kullanılmasına daha güçlü ve etkin bir yaklaşımı getirmiştir. User Controls (Kullanıcı tanımlı kontroller), normal aspx içeriğine sahip olabilmekte ve .Net mimarisinin güçlü özelliklerini kullanabilmektedir. Her ne kadar etkili bir teknik olsada, user control’'ler içinde tek bir sorun öne çıkmaktadır. Bu sorun, tasarım zamanında user control içeriğinin görülememesidir. Asp.Net 2.0, Master Page yaklaşımı ile, yukarıda bahsedilen dezavantajları ortadan kaldırmayı başarmıştır. Bir Master Page, uygulandığı diğer aspx sayfalarının nasıl görünmesi gerektiğine karar veren bir şablon gibidir. Ancak, sağladığı ContentPlaceHolder bileşeni sayesinde, Master Page’ leri uygulayan diğer aspx sayfalarının, istenilen içeriğe sahip olmasınıda sağlamaktadır. En güzel yanı ise, normal bir aspx sayfası gibi tasarlanabilmesi, yani html, image, server control gibi üyeleri içerebilmesidir. Bunlara ek olarak, olay güdümlü programlama modelinide destekler. Dolayısıyla bir Master Page aslında bir aspx sayfasından farksızdır. Ancak asıl fark, bir Master Page bir aspx sayfasına uygulandığında ortaya çıkar. Master Page’ i uygulayan bir aspx sayfası tarayıcıda açıldığında tarayıcıya gelen sayfa, Master Page ile aspx sayfasının birleştirilmesi sonucu ortaya çıkan başka bir aspx sayfasıdır. Bu, .net framework’ ün getirdiği partial class tekniği sayesinde gerçekleşebilmektedir. Bunun, Master Page’ i uygulayan aspx sayfalarına getirdiği değişik kodlama etkileride vardır. Projede kullanılan Master Page'in oluşturulma aşamalarına değinildiğinde, ilk olarak, Visual Studio.Net 2008'de bir web sitesi açılmalıdır. Siteye Master Page eklemek için tek yapılması gereken, Solution’'a sağ tıklamak ve Add New Item’ den gelen pencerede, Master Page tipini seçmektir. Master Page’ ler master uzantılı dosyalardır. 12
  • 13. Şekil 2.4. Master page oluşturma Masterpage'i oluşturduktan sonra bu sayfalara her bir yeni sayfa türetildiğinde eklenecek yeni özellikler için bir alan ayrılmalıdır. Bu da ContentPlaceHolder bileşeni ile gerçekleştirilmektedir. Burada ContentPlaceHolder bileşeni, bu Master Page’ i uygulayacak olan sayfaların serbestçe erişebilecekleri ve içerik oluşturabilecekleri alanları tanımlamaktadır. Master Page’ lerde, normal aspx sayfaları gibi tasarlanabilirler. Bir başka deyişle, Html kodları, aspx bileşenleri vb. içerebilirler. Projeye ait MasterPage.master isimli masterpage, image, menu ve ContentPlaceHolder ve PlaceHolder bileşenlerinden oluşmaktadır. 13
  • 14. Şekil 2.5. Master Page oluşturma Burada standart olarak bir web sayfasının tasarlanmasından farklı bir işlem yapılmamıştır. En önemli nokta Master Page’ i uygulayacak sayfaların içeriklerini yazabilecekleri ContentPlaceHolder bileşeninin kullanılmasıdır. Dilersek bir Master Page içinde, birden fazla ContentPlaceHolder bileşeninede yer verebiliriz. Master Page’ in aspx kodlarına bakıldığında normal aspx sayfalarına göre en önemli değişik page direktifi yerine master direktifinin kullanılmasıdır. Master direktifi sayfanın bir Master Page olduğunu belirtmektedir. <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="AnaSayfa" %> ContentPlaceHolder bileşeni ise, <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> Anasayfanın masterpage tabanlı oluşturulması için anasayfaya yazılması gerek kod şu şekilde olmaktadır: <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="OkulOtomasyon-AnaSayfa.aspx.cs" Inherits="AnaSayfa" Title="OkulOtomasyon-Anasayfa" %> Yukarıda bulunan tek satır aslında çok şey ifade etmektedir. Herşeyden önce, MasterPageFile özelliği, sayfaya uygulanan Master Page’ in yolunu belirtir. Bu, sayfanın bir Master Page’ i uyguladığını başka bir deyişle master page’ den türetilerek üretildiğini gösterir. Kendi sınıfı ve code-behind dosyası vardır. Eğer sayfadaki Content alanı içerisinde düzenleme yapmak istenirse bunu sağlayabilmek için, Master Page’ de yer alan ContentPlaceHolder bileşeninin, bu sayfada bir Content bileşeni ile eşleştirilmesi gerekmektedir. Bunun için, web sayfasına aşağıdaki aspx kodları yazılmalıdır. Content bileşeninin, ContentPlaceHolderID özelliği, uygulanan Master Page’ deki hangi ContentPlaceHolder bileşenini eşleştireceğini belirtmektedir. Bu özelliğin değeri, birden falza ContentPlaceHolder’ ın, Master Page’ i uygulayan sayfalarda eşleştirilmesinde önem kazanır. 14
  • 15. <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="server"> </asp:Content> Projede kullanılan diğer bir master page ise master isimli master page'tir. Bu master page'in içeriği örnek verilerek hem contentPlaceHolder hem de masterpage'in diğer özellikleri açıklanabilir: Eklenmiş olan tüm kontroller ve diğer içerikler, ContentPlaceHolder bileşenine ait takılar içerisinde yer almaktadır. Diğer taraftan ContentPlaceHolder takıları dışında herhangibir içerik oluşturmayı sağlayacak bileşenleri kullanma imkanı yoktur. Bir diğer önemli özellik de, içeriğin herhangi bir form takısı içerisinde yer almıyor oluşudur. Bunun sebebi, form takısının zaten Master Page’ de uygulanmış olmasıdır. Dolayısıyla web sayfası, Master Page’ den kalıtımsal olarak türetildiği için form takılarının burada kullanılmasına gerek yoktur. 2.1.1.7. Web User Control Daha önceden varolan bazı server ve HTML componentlerini kullanarak yeni bir görünüş yapmamıza yararlar. Yaptığımız bu controller .ascx dosyalarında saklanır ve nerede kullanılmak istenirse orada sayfaya eklenebilir. Oluşturulan bir Web User Control sayfanın istenilen yerine koyulabilir ve orada onun görünmesi sağlanabilir. 2.1.1.7.1 Özellikleri Web user controller proje içerisinde yaratılan ascx dosyalarıdır. Bu dosyalar içerisinde daha önceden var olan HTML ve server componentleri kullanılarak yeni bir görünüm oluşturulabilir. Web User Controller kullanıldıkları her proje içerisinde mutlaka bulunmalıdırlar. Bunun nendeni ise bunların compile edilememesidir..Yani Web User Controller derlenerek bir dll yapılıp bu DLL istenilen projede kullanılma imkanı yoktur. User Controller VS toolbox ında yani araç çubuğunda bulunmazlar. Onları herhangi bir projeye eklemek için Solution Explorer dan ascx dosyasını tutarak sayfada istenilen yere bırakılmalıdır. User Control kodları ise Web Formlar load edildikten sonra yüklenir. Page_Load eventi User Controlü yuklenmesinden önce gerçekleşmektedir. Bu özellikler .NET deki diğer componentlerde olmayan özelliklerdir. 2.1.1.7.2 Web User Control Oluşturma VS editöründe Solution Explorer da projeye sağ tıklanır ve Add New Item seçeneğini seçilir. Buarad açılan pencereden Web USer Controlü seçilip adı verilerek onaylanır. Böylelikle yeni bir ascx dosyası projenize eklenmiş olacaktır. User kontrole örnek olarak menü örneği verilebilir. Örneğin bir menü kontrolü var ve bu menü projenin her sayfasında kullanılıyor. Ve bu menude bazen değişiklikler yapılması gerekiyorsa bu durumda her sayfada bu işin tek tek yapılması yerine tek bir menü sayfası oluşturup bunu her sayfada kullanmak daha mantıklı olacaktır. Bu kullanım için bir user control oluşturulabilir. Menü de herhangi bir değişiklik yapılmak istendiğinde sadece bir yerde değişiklik yapılması yeterli olacaktır. Bu değişiklikler user control ün kullanılmış olduğu tüm sayfalarda geçerli olacaktır. 15
  • 16. 2.1.2.SQL Ve MSSQL SQL, (İngilizce "Structured Query Language", Türkçe: Yapılandırılmış Sorgu Dili) verileri yönetmek ve tasarlamak için kullanılan bir veritabanı yönetim sistemidir. SQL, kendisi bir programlama dili olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veritabanı ortamında kullanılan bir alt dildir. KOURYS sisteminde kullanılan MSSQL de SQL dilini kullanan bir veritabanıdır. Bu yüzden KOURYS sisteminde kullanılan SQL komutları aşağıda anlatılmıştır. SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir. SQL'e özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir. SQL veri tanımlama deyimlerinden başlıcaları şunlardır: CREATE TABLE tablo_adı Yeni bir tablo oluşturmak için kullanılır. CREATE TABLE tabloilceler ( ilceNo mediumint(8) unsigned DEFAULT '0' NOT NULL, ilce varchar(30) NOT NULL, postakodu varchar(5), ilceTel char(3), plakaKodu char(2) NOT NULL ) 2.1.2.1. SQL Veri Tanımlama Deyimleri 2.1.2.1.1. ALTER TABLE tablo_adı: Yeni bir sütun eklemek, sütunun tipini veya uzunluğunu değiştirmek vb. yapısal değişiklikler yapılması için kullanılır. 2.1.2.1.2. DROP TABLE tablo_adı Tabloyu fiziksel olarak siler. 2.1.2.1.3. TRUNCATE TABLE tablo_adı Tablodaki tüm verileri siler (tablo yapısı kalır) 2.1.2.1.4. CREATE VIEW görüş_adı Görüntü oluşturmak için kullanılır. 2.1.2.1.5. DROP VIEW görüş_adı Görüntüyü siler. 2.1.2.1.6. CREATE INDEX indeks_adı Tablonun (en azından bir) sütun adı üzerinde indeks oluşturmak için kullanılır. 16
  • 17. 2.1.2.1.7. DROP INDEX indeks_adı Yaratılan indeksleri veri tabanından kaldırmak için kullanılır.. 2.1.2.1.8. SELECT deyimi SELECT ilce, postakodu FROM tabloIlceler WHERE plakaKodu = '06' Ankara'nın ilçeleri ile posta kodlarını gösterir. 2.1.2.1.9. UPDATE deyimi UPDATE tabloIlceler SET postakodu = '06720' WHERE ilce = 'Bala' Bala'nın posta kodunu değiştirir. 2.1.2.1.10. INSERT deyimi INSERT INTO tabloIlceler VALUES (, 'Yenişehir', , , '53') Yeni veriler ekler 2.1.2.1.11. DELETE deyimi DELETE FROM tabloIlceler WHERE plakaKodu = '53' plakaKodu 53 olan bütün verileri siler MSSQL de projede kullanılan veritabanıdır. MSSQL de SQL dilini kullanan bir veritabanıdır. 2.1.2.2. SQL Deyimleri SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından sorgulama yapmak için SELECT, ekleme yapmak için INSERT güncelleme yapmak için UPDATE, silme yapmak için DELETE, yeni tablo oluşturmak için CREATE TABLE gibi komutlara sahiptir. Bu komutlar işlevlerine göre şu şekilde kategorilendirilir:  DDL (Data Definition Language): Veri tanımlama deyimleri.  DML (Data Manuplation Language) : Veri düzenleme dili.  DCL (Data Control Language): Veri kontrol dili. DDL deyimleri veritabanı üzerinde nesne yaratmak için kullanılırlar. En yaygın kullanılan DDL deyimleri şunlardır: CREATE , ALTER, DROP Create deyimi tablo ve view gibi bir veritabanı nesnesi yaratmayı sağlar. Tablo Yaratmak: Veritabanı üzerinde bir tablo yaratmak için CREATE deyimi kullanılır. Yapısı: CREATE <tablo adı> Alter Deyimi daha önce yaratılmış nesnenin değiştirilmesini sağlar. Örneği bir tablonun tasarımını değiştirmek gibi. Örnek: ALTER TABLE Musteri 17
  • 18. ADD tel varchar(20) NOT NULL Yukarıdaki deyimde müşteri tablosunun alanlarına tel adlı bir alan daha eklenmiştir. Drop deyimi bir nesnesin silinmesini sağlar. Örnek: DROP TABLE MUSTERI Müşteri tablosunun verilerini ve tabloyu siler. 2.1.2.3. DML (Data Manipulation Language) Deyimleri Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir. 1. SELECT 2. INSERT 3. UPDATE 4. DELETE 2.1.2.3.1. Select Deyimi Veritabanındaki verilere erişmenin, diğer bir deyişle onları görmenin ya da onları elde etmenin en sık kullanılan yöntemidir. Genellikle bir ya da daha çok tablonun bütün alanlarıya da belli alanları için SELECT deyimi yazılır. Temel Yapısı: SELECT [ALL] [DISTINCT] liste [INTO yeni tablo] FROM [tablo] [WHERE ifade] [GROUP BY ifade] [HAVING ifade] [ORDER BY ifade] [COMPUTE ifade] Seçeneklerin Anlamları: All sözcüğü bütün satırların sonuç listesinde görünmesini sağlar. Distinct sözcüğü sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar. liste parametresi veriden seçilecek kolonu (sütunu) belirtir. Into sözcüğü yeni bir tablo yaratmayı sağlar. yeni tablo parametresi sorgu sonucu yaratılacak tabloyu belirtir. From sözcüğü belli bir tablonun seçilmesini sağlar. tablo parametresi ise sorgulanacak olan tablo ya da tabloları, görünümleri belirtir. Where bir koşulu belirterek sadece o kuşula uyan kayıtların seçilmesini sağlar. Group By Kayıtların gruplanmasını sağlar. HAVING deyimiyle de ara toplamların alınmasını sağlar. Having sözcüğü de kayıtlarda kısıtlama yapar ancak hesaplamayı etkilemez. 18
  • 19. Order Bysözcüğü ise belirtilen kolona göre listelenen kayıtları sıralamayı sağlar. Sıralama artan (ASC) ya da azalan (DESC) olabilir Compute sözcüğü ise hesaplama yapar. Tipik olarak SUM, AVG, MIN, MAX, COUNT gibi fonksiyonları kullanarak hesaplama yapar. Örnek: SELECT * FROM musteri Yukarıdaki deyim ile musteri tablosundaki bütün bilgiler elde edilir. SELECT deyiminin ardından kullanılan * (asterisk) işareti bütün kayıtlar anlamına gelir. Bu deyimin aynısı (aynı sonucu vereni) şu şekilde de yapılabilir: Örnek: SELECT kod, ad, soyad, grup, il, bakiye FROM musteri Müşteri tablosu: kodu Ad Soyad grup il bakiye 1 Ahmet Uzun ithal İZMİR 300000 2 Ayşe Yılmaz ithal ANKARA 400000 3 Mehmet Yılmaz ihraç ANKARA 100000 4 Hüseyin Uzun ihraç İZMİR 600000 5 Nuri Gezer ithal İZMİR 900000 6 Fatma Örnek ihraç İSTANBUL 300000 Sorgunun sonucu: 1 Ahmet Uzun ithal İZMİR 300000 2 Ayşe Yılmaz ithal ANKARA 400000 3 Mehmet Yılmaz ihraç ANKARA 100000 4 Hüseyin Uzun ihraç İZMİR 600000 5 Nuri Gezer ithal İZMİR 900000 6 Fatma Örnek ihraç İSTANBUL 300000 SELECT deyimi ile sadece belli kolonlar (alanlar) da seçilebilir: ARAMA : Tablo: Arama Kriterleri: Karşılaştırma operatörleri (=, >, <, >=, <>, !=, !<, !> Aralık belirtme BETWEEN ve NOT BETWEEN Liste IN ve NOT IN String karşılaştırma LIKE ve NOT LIKE Bilinmeyen değerler IS NULL ve IS NOT NULL Koşulların birleştirilmesi AND, OR Olumsuzlaştırma NOT Örnek: SELECT * from musteri WHERE bakiye BETWEEN 100000 AND 3000000 Aynı anlamda: SELECT * from musteri WHERE bakiye <= 100000 AND>= 3000000 19
  • 20. Örnekler: SELECT * FROM MUSTERI WHERE borcu BETWEEN 100 AND 2000 AND grup='özel' Yukarıdaki sorgulamada grubu 'özel' olan ve ayrıca da borcu değerinin 100 ile 200 arasında olanı listelenir. 2.1.2.3.2. Aritmetik İşlemler Aritmetik işlemleri gerçekleştirmek için belli operatörler kullanılır: 2.1.2.3.2.1. Operatör Açıklamaları + Toplama , -Çıkarma /Bölme , *Çarpma SELECT borcu, borcu*2 FROM MUSTERI 2.1.2.3.3.Verileri Sıralamak: SELECT deyimi ile elde edilen veriler istenirse sıralanabilir. Sıralama belirtilen bir ya da daha fazla kolona göre yapılır. Bunun dışında sıralama ASC (ascending-artan) ya da DESC (descending-azalan) olarak belirtilebilir. Kullanım Biçimi: SELECT kolon_listesi ORDER BY kolon adı ASC ya da DESC ORDER BY sözcüğü ise verilerin istenilen alan göre sıralı olarak listelenmesini sağlar. SELECT * FROMmusteri ORDER BY ad Yukarıdaki deyim ile müşteri tablosundaki bütün kayıtlar ad alanına göre sıralı olarak listelenirler. 2.1.2.3.4. Gruplandırma İşlemleri Gruplama seçenekleri tablo satırlarının belli alanlarına göre gruplandırılmasını sağlar. GROUP BY sözcüğü ise yapılan bir gruplandırma işlemine göre listeleme sağlar. Örnek: SELECT grup, sum(bakiye) FROM musteri GROUP BY grup Yukarıdaki örnekte müsteri tablosundaki bakiye alanı grup kodu bazında toplanır. GROUP BY ile yapılan gruplandırma (alt toplamlar) işlemi içinde ayrıca HAVING sözcüğü kullanılarak bir koşul da verilebilir. SELECT grup, sum(bakiye) FROM musteri GROUP BY grup HAVING il = 'İZMİR' Yukarıdaki deyim ile müşteri tablosundaki bütün kayıtların bakiye bilgiler gruplarına göre ara toplam alınır, bir de il bilgisine göre filtrelenir. Not: Gruplama yapılmayan her sütun GROUP BY deyiminde kullanılması gerekir: Örnek: SELECT PRODUCTID, CATEGORYID, SUM (UNITPRICE) FROM PRODUCTS GROUP BY PRODUCTID, CATEGORYID 20
  • 21. 2.1.2.3.5.Compute Sözcüğü: COMPUTE sözcüğü toplama fonksiyonunun kullanarak query sonucunda bir toplam satırı üretir. COMPUTE BY sözcüğü ise ek toplam satırları yaratır. Kullanım Biçimi: COMPUTE fonksiyon (kolon_adı) Örnek: Sipariş tablosu: tarih Mkodu ürün adet fiyatı 1/1/1999 1 X-TV 10 100000 2/1/1999 1 X-TR 10 100000 2/1/1999 2 X-TV 15 100000 2/1/1999 3 X-KT 10 200000 3/1/1999 3 X-KT 20 150000 2/2/1999 1 X-TV 22 400000 SELECT ürün, adet FROM siparis ORDER BY ürün COMPUTE SUM(adet) Yukarıdaki örnekte adet kolonunun toplamı alınır. Sonucu: ürün adet X-KT 10 X-KT 20 X-TR 10 X-TV 10 X-TV 15 X-TV 22 Sum 87 2.1.2.3.6. Insert Deyimi Tabloya veri girmek için kullanılır. INSERT INTO <tablo adı> (sütunlar listesi) VALUES (değerler listesi) Örnek: INSERT INTO CARIANA (kodu, adi, grubu, adresi) VALUES ('600', 'FARUK', 'A', '76 sokak no 5') Örnek: INSER INTO deyimi ile bir tabloyu diğer bir tablodan doldurmak: use ornek INSERT INTO cariyedekf (kodu, adi, grubu, adresi) (SELECT kodu, adi, case grubu 21
  • 22. when 'A' THEN 'ITHAL' when 'B' THEN 'YERLİ' ELSE 'DİĞER' end, adresi from cariana) 2.1.2.3.7.Update Deyimi Tablodaki verileri güncellemek için kullanılır. Genellikle güncelleştirilecek satırı belirtmek için WHERE sözcüğüyle kullanılır. Mevcut bir tablodaki satırları değiştirmek için UPDATE deyimi kullanılır. UPDATE deyimi sadece bir tablo üzerinde kullanılmalıdır. UPDATE deyimi ile SET ve WHERE sözcüğü kullanılır. SET sözcüğü değiştirilecek kolonları ve değerleri belirtir. WHERE sözcüğü ise değiştirilecek satırı belirtir. Update deyiminin kullanım biçimi: UPDATE tablo SET kolon = ifade WHERE arama_koşulu Örnek: Aşağıdaki örnekte fiyat değerini %10 artırır. UPDATE siparis SET fiyatı= fiyatı * 1.1 Örneğin bir kaydı düzeltmek istersek ; UPDATE Musteri SET Ad = 'Nuri Yılmaz' WHERE kod='1'; Örneğin tüm musterilerin bakiyesini %10 artırmak istediğimizde; UPDATE Musteri SET bakiye=bakiye*1.1; 2.1.2.3.8. Delete Deyimi Bir tablodaki verileri silmek için DELETE komutu kullanılır. Örneğin Öğrenci tablosundaki tüm verileri silmek için; DELETE * from musteri; Tabloda, bakiyesi 1000'den küçük olan müşterilerin satırlarını silmek için: DELETE * FROM musteri WHERE bakiye <=1000 Kullanım biçimi: DELETE tablo WHERE arama_koşulu Örnek: Tablodan satır silmek Aşağıdaki örnekte müşteri tablosundan 'B' grubuna sahip olan müşteriler silinir. DELETE musteri WHERE grubu = 'B' 22
  • 23. 2.1.2.4. DCL (Data Control Language) Deyimleri Veritabanındaki kullanıcı haklarını düzenlemek için kullanılan deyimlerdir. Örneğin GRANT, DENY, REVOKE gibi. Örnek: USE Northwind GRANT SELECT ON Stok TO PUBLIC Adı geçen ve telif haklı olan ürünler bilgi amaçlı olarak kullanılmıştır. Grant Deyimi Aşağıdaki örnek Ayşe adlı kullanıcı veritabanı ve tablo oluşturma izni verilir: GRANT CREATE DATABASE, CREATE TABLE TO SEYDA 2.1.2.5. SQL FONKSİYONLARI SQL Server'da Fonksiyonlar, hesaplamalarda ve özellikle sistem hakkında bilgi almada yaygın olarak kullanılan araçlardır. Transact-SQL (T-SQL) programlama dilinde değişik kategorilerle adlandırılan fonksiyonlar vardır. Bunlardan en yaygını veriler üzerinde işlem yapan toplama ya da gruplama olarak adlandırabileceğimiz aggregate fonksiyonlarıdır. 2.1.2.5.1. Gruplama Fonksyonları Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç değer döndürürler. Toplama ya da gruplama fonksiyonları olarak adlandırabileceğimiz bu fonksiyonlar genellikle GROUP BY deyimi ile kullanılırlar. Gruplama fonksiyonları aşağıdaki ifadeler içinde kullanılabilirler. SELECT deyiminin listesinden (bir subquery olarak) Bir COMPUTE ya da COMPUTE BY sözcüğü ile. Bir HAVING sözcüğü ile. Transact-SQL programlama dilinde şu aggregate fonksiyonları kullanılır: AVG COUNT GROUPING MAX MIN SUM STDEV STDEVP VAR VARP 23
  • 24. 2.1.2.5.1.1. AVG (T-SQL) Fonksiyonu: Bir grup içindeki değerlerin ortalamasını döndürür. Null değerler dikkate alınmaz. Kullanım Biçimi: AVG([ALL | DISTINCT] ifade) Argümanları All: Ortalama fonksiyonunu bütün değerlere uygular. Distinct: İşlemin her tek değer için uygulanacağını belirtir. Diğer bir deyişle tekrar eden değerlerin yerine birisi kullanılır. İfade : Say ısal bir değeri olan ifade ya da kolon adı. Örnek: Aşağıdaki örnekte satış miktarları toplanmakta ve ortalaması alınarak iki ayrı sonuç değeri verilmektedir: USE Northwind GO SELECT AVG(quantity), SUM(quantity) FROM [Order Details] GO COUNT (T-SQL) Fonksiyonu Bir grup içindeki eleman sayısını verir. Kullanım Biçimi: COUNT({[ALL | DISTINCT] ifade] | *}) Argümanları: All: Fonksiyonunu bütün değerlere uygular. Distinct: İşlemin her tek değer için uygulanacağını belirtir. Diğer bir deyişle tekrar eden değerlerin yerine birisi kullanılır. İfade: Bir ifade ya da kolon adı. *: Bir tablodaki bütün satırların sayısını döndürmek için kullanılır. COUNT(*) herhangi bir paratmetre ile kullanılmaz ve DISTINCT ile kullanılmaz. Count(*) ile null ve tekrar eden değerler dahil bütün elemanlar sayılır. Örnek: Aşağıdaki örnekte ürünler tablosundaki ürünler sayılır. DISTINCT ile tekrara izin verilmez. USE Northwind GO SELECT COUNT(DISTINCT productname) FROM products GO 24
  • 25. 2.1.2.5.1.2. Max (T-SQL) Fonksiyonu: İfade içindeki maksimum değeri döndürür. MAX([ALL DISTINCT] ifade) Argümanları: All: Fonskiyonunu bütün değerlere uygular. 2.1.2.5.1.3. Min (T-SQL) Fonksiyonu: İfade içindeki minimum değeri döndürür. Kullanım Biçimi MIN([ALL | DISTINCT] ifade) Argümanları: All: Fonskiyonunu bütün değerlere uygular. Örnek: Aşağıdaki örnekte en küçük satış adedi elde edilmektedir: USE Northwind GO SELECT MIN(quantity) FROM [Order Details] GO 2.1.2.5.1.4. Sum Fonksiyonu Değerlerin toplamlarını verir. SUM fonksiyonu sadece sayısal alanlarda kullanılır. Kullanım Biçimi: SUM ([ALL DISTINCT] ifade) Argümanları: All: Toplama (aggregate) fonksiyonunu bütün değerlere uygular. ALL seçeneği varsayım olarak kullanılır. Distinct: SUM fonksiyonunu tek değerlerin (unique) toplamını vermesini sağlar. İfade: Bir sabit, bir kolon, fonksiyon ya da bir aritmetik işlem. Örnek: USE pubs GO -- Satır toplamları SELECT type, price, advance FROM titles ORDER BY type COMPUTE SUM(price), SUM(advance) BY type MicroSoft SQL Server bir veritabanı sunucu yazılımıdır. Veritabanlarının oluşturulmasını ve yönetilmesini sağlar. Dünyadaki en güçlü ve en güvenilir veritabanı denilebilir. Verilerin organizasyonunu merkezi olarak yapan Sql Server client uygulamaların server üzerindeki verilere erişmesinide sağlar. Yani Ağrı'da bulunan bir şubeden İstanbul merkezde olan kayıtlara ulaşabilirsiniz. Microsoft SQL Server 2008, en kritik uygulamalarınızı çalıştırabilmenizi, uygulamaların geliştirme ve yönetimi için gerekli olan sure ve maliyeti azaltmanızı ve organizasyonunuzun tamamına, eyleme geçirilebilir kavrayışlar sunmanızı mümkün kılan, güvenilir, verimli ve zeki bir veri platformu sunmaktadır. 25
  • 26. 2.2. Kodlama Standartları 2.2.1. Tanımlar ve Kısaltmalar 2.2.1.1. PascalCase İlk karakterin ve içerisinde yer alan tüm kelimelerin ilk harfinin büyük, diğer harflerin küçük olduğu isimdir. Örnek : MusteriNo 2.2.1.2. CamelCase İlk karakterin küçük, içerisinde yer alan tüm kelimelerin ilk harfinin büyük, diğer harflerin küçük olduğu isimdir. Örnek : musteriNo 2.2.1.3. UpperCase Tüm karakterleri büyük harf olan isimdir. Örnek : MUSTERINO 2.2.1.4. LowerCase Tüm karakterleri küçük harf olan isimdir. Örnek : musterino 2.2.2. C# İsimlendirme Standartları • Tüm class, method, property, vb. tüm isimler Türkçe verilmeli, isim içerisinde Türkçe karakter(‘ıİçÇğĞşŞöÖüÜ’) kesinlikle kullanılmamalıdır. • Tüm isimler, anlamlı, açıklayıcı olmalı ve içerisinde kısaltma kullanılmamalıdır. • Finart katman bileşenleri (entity, facade vs.) dışındaki public class isimleri ile tüm public member (metod, property, vb.) isimleri PascalCase verilmelidir. • Tüm private değişkenler ve metodların parametreleri camelCase isimlendirilmelidir. • Constant’lar UPPERCASE ve kelimeler arasında ‘_’ kullanılacak şekilde isimlendirilmelidir. • Member Variables isimleri için (kontroller dışında) ‘m_’ ön eki kullanılmalıdır. • Değişken isimleri için i, j, a, vb. gibi tek karakterler, döngülerdeki iterasyonlar dışında kullanılmamalıdır. • Metodlar için, bir emir ifade eden isimler (Oku, Getir, Kaydet, İptal, Sil vs.) seçilmesi tavsiye edilmektedir. • Form ve üzerinde kullanılan kontrollerin isimlendirilmesi için aşağıdaki standartlara uyulmalıdır. .Net Bileşenleri Ön Ek 26
  • 27. Label Lbl TextBox Txt ComboBox Cmb CheckBox Chk NumericUpDown Nud GroupBox Grp Buton Btn Panel Pnl Form Form ListView Lvw RadioButton Rdb ContextMenu Cm TabControl Tbc TabPage Tbp ListBox Lbx PictureBox Pbx Tablo.. .Net Bileşenleri 2.2.2.1. Değişken Tanımlama Standartları • Her satırda bir değişken tanımlanmalıdır. Bu şekilde yapılan tanımlama, açıklama girişini kolaylaştırmaktadır. • Değişkenlere, tanımlandığı anda değer atanmasına özen gösterilmelidir. • Tanımlanan her değişken mutlaka kullanılmalıdır. • Her değişken sadece bir amaç için kullanılmalıdır. Örnek: int musteriNo = musteri.No; // Müşteri Numarası 2.2.2.2. Genel Hata Yönetimi • Yakalanan exception sonrası kullanıcıya, anlayabileceği ve yönlendirici bir mesaj verilmelidir. • Çok büyük try-catch blokları oluşturulmamalı, bunun yerine her farklı iş için ayrı bir blok kullanılmalı ve blok spesifik bir kod bölümünü kapsamalıdır. Bu şekilde hangi kod parçaçığının exception’ı oluşturduğunu kolaylıkla bulunabilir. • Static bir class’ın, constructor’ında alınan hata sebebiyle initialize işlemi gerçekleştirilemez ise, constructor bir daha çalışmayacak olduğu için uygulamada beklenmeyen hatalar oluşabilir. Constructor’a sahip statik class kullanımları için kontrol yöntemleri oluşturulmalıdır. 2.2.2.3. Programlama Pratikleri • Kod tekrarından kaçınılmalı, belirli bir işi yapan kod parçaları ayrı bir metod içerisine 27
  • 28. alınmalıdır. • Tasarım sırasında, kod birimlerinin tek başına iş yapabilirliğinin yüksek, diğer birimler ile olan bağımlılığının düşük olmasına dikkat edilmelidir. • Dış girdiler ve dış kaynaklardan gelen veri (kullanıcı girdisi, dosya, vb.) için girdi kontrolleri oluşturulmalı, girdinin doğruluğu kontrol edilmelidir. • Değişkenler mümkün olan en küçük yaşam döngüsüne sahip olmalıdır. • En sık kullanılan case’ler ilk olarak kontrol ediliyor olmalıdır. • System namespace’i altında tanımlı tipler yerine C# spesifik tipler kullanılmalıdır. int yas; // Int32 string musteriAd; // String object kulaniciBilgi; // Object Beklenmeyen değerlerin/durumların oluşma olasılığı her zaman düşünülmeli ve gerekli kontrol yapısı kurulmalıdır. 2.2.2.4. Veritabanı Nesne Adlandırma Kuralları Bu bölüm, veritabanı nesnelerinin adlandırılmasında kullanılacak standartları içermektedir. Bu standartların uygulanması sonucunda, veritabanı üzerinde işlem yapması (değişiklikler yapma, sorun giderme, kod yazımı gibi) gerekli olabilecek tüm teknik personelin rahatlıkla anlayabileceği bir veritabanı oluşmuş ve yönetilmiş olacaktır. Bu bölüm, aşağıdaki başlıklarda tercih edilen adlandırma kurallarını içermektedir: • Tablolar – Tables • Geçici Tablolar – Temporary Tables • Görünümler - Views • Saklı prosedürler - Stored procedures • Kullanıcı tanımlı fonksiyonlar - User defined functions • Tetikleyiciler - Triggers • İndeksler – Indexes • Sütunlar – Columns • Kullanıcı tanımlı veri türleri - User defined data types • Primary keys • Foreign keys • Default bilgileri ve Kontrol kısıtları - Default and Check constraints • Değişkenler - Variables • Paketler – Packages • Sekanslar – Sequences İsimlendirmelerde 30 karakter olarak bir sınırlandırma getirilmiştir. Bu sınırlandırma çerçevesinde veritabanı nesneleri isimlendirilmelidir. Nesne isimleri tüm harfleri büyük olacak şekilde, yani “UPPERCASE” formatında yazılmalıdır. Türkçe harflere yazımda yer verilmemelidir. 2.2.2.5. Tabloların İsimlendirilmesi Tablolar, herhangi bir varlığın anlık bilgilerini sunmaktadır. Örneğin, tüm müsteri bilgileri bir tabloda saklanmaktadır. Burada “müsteri” bir varlık niteliğindedir, ve müsteri tablosunun tüm 28
  • 29. satırları “müsteri” varlığının anlık bilgilerini sunmaktadır. Bu durumda, tabloyu, bilgilerini sunduğu varlığın ismi uyarınca adlandırmak gereklidir – yani “Musteriler”. Tabloda müsterilerin farklı anlardaki bilgileri sunulduğu için, tablo isminin çoğul olarak belirlenmesi gereklidir. Yazım Formatı: tbl(3 karakter)AmacaYonelikKısım Örn: tblKullaniciBilgileri şeklinde olacaktır. 2.2.2.6. Saklı Prosedürlerin İsimlendirilmesi Saklı prosedürler, iyi tanımlanmıs ve spesifik görev üstlenirler ve eylem/hareket odaklıdırlar. Bu nedenle, isimlerinin üstlendikleri görevleri ifade ediyor olması gereklidir. Üstlenilen görevi betimlemek için “fiil” yapısındaki kelimeler kullanılmalıdır. Yazım Formatı: sp_AmacaYonelikFiiller Örn: sp_getUsersInformation şeklinde olacaktır. Kelime dizgesinin başında stored procedure olduğunu belirten sp kelimesi kullanılacaktır. Prosedür yazım formatında ISLEM olarak belirtilen kelime yerine islemin amacına göre: insert islemleri için “INS”, delete islemleri için “DEL” update islemleri için “UPD” select gibi sorgulama islemleri için “SEL” yukarıda belirtilen “UPD” ve “SEL” lerin beraber kullanıldığı durumlarda veya scheduled işlemlerde “BAT” kelimeleri kullanılacaktır. Saklı Yordamlar yardımıyla tablolara veri eklemek son derece kolay, hızlı ve etkilidir. Bununla birlikte Saklı Yordamlar sağladıkları güvenlik kazanımları nedeni ilede tercih edilirler. Saklı Yordamları geliştirmek son derece kolaydır. İstediğiniz sql işlemini, satır silmek, satır aramak gibi işlemler kolayca gerçekleştirilmektedir. Şekil 2.6. Saklı yordamların avantajları 29
  • 30. 2.2.2.7. Tetikleyicilerin (Trigger) İsimlendirilmesi Yazım Formatı: MODULKODU(3 karakter)_AMACAYONELIKISIM_ISLEM(3 karakter)_TRG Örn: RYS_KULLANICI_INS_TRG seklinde olacaktır. Amaca Yönelik olarak kullanılan Kelimeler arasında “_” karekteri kulanılmayacaktır. Kelime dizgesinin sonuna triger olduğunu belirten TRG kelimesi kullanılacaktır. Tetikleyici yazım formatında ISLEM olarak belirtilen kelime yerine islemin amacına göre: insert (ekleme) için “INS” update (güncelleme) için “UPD” delete (silme) için “DEL” kelimeleri kullanılacaktır. 2.2.2.8. Birincil Anahtarlar (Primary Keys) Birincil anahtar sütun(lar)ı, tablodaki her bir satırı birincil (unique) olarak belirleyen sütun(lar)dır.Bu nedenle, Birincil anahtar adlandırma kuralı olarak, tablo isminin önüne 'PK_' eklenmelidir. Yazım Formatı: PK_TABLOADI 2.2.2.9. Sekanslar(Sequences) Ardışık sırada numara üretmek için kullanılan yapılardır. Burada isimlendirmeler : Yazım Formatı: MODULKODU(3 karakter)_AMACAYONELIKISIM_SEQ şeklinde olmalıdır. 2.2.3. PROJE İÇERİĞİNİN ANLATILMASI Projenin uygulama kısmı ve veritabanı tasarımı aynı eş zamanlı tasarlanmıştır. Fakat anlaşılır olması açısından bu aşamalar uygulama kısmı ve veritabanı kısmı olarak iki kısımda anlatılacaktır. 2.2.3.1.UYGULAMA KISMI Projeye başlamadan önce projenin kullanıcılarının kimler olacağı belirlenmiştir. Bunlar: i) Öğrenciler 30
  • 31. ii) Öğretmenler iii) Editör iv) İdareci Her bir kullanıcının görevleri ayrıdır ve sistemden bu görevleri yerine getirebilirler. Her bir kullanıcı kendilerine ait kullanıcı adı ve şifrelerini kullanarak sisteme giriş yaparlar ve kendilerine ait alanları görebilirler. Aşağıda her bir kullanıcı için kullanıcının yapabileceği işlevler belirtilmiştir. Uygulama kısmında projenin oluşturulduğu yazılım programında projenin bileşenlerinin görebileceği solution explorer kısmında projenin 3 katmanlı bir yapıya sahip olduğu görülmektedir. Bu katmanlardan ilki Blog isimli bir website kısmıdır. Diğer katmanlar ise metotların bulunduğu DAL isimli project katmanı ve nesnelerin bulunduğu PROPERTY katmanıdır. Solution explorerda website katmanında web page, user controls, style dosyaları ve masterpage nesneleri bulunmaktadır. Project kısmında ise nesnelere ait sınıflar bulunmaktadır. Bu sınıflar içinde web controls tarafından kullanılan metotlar bulunmaktadır. Web sayfaları masterpage ve user controls kullanılarak oluşturulmuştur. Masterpage, aynı özelliklerin ya da menülerin kullanıldığı benzer sayfaları oluştururken büyük kolaylık sağlamaktadır. Aşağıda projenin oluşturulduğu programda, projeye ait solution explorer'ın ekran görüntüsü mevcuttur: Şekil 2.7. Projeye ait solution explorer görüntüsü 31
  • 32. Şekil 2.8. Tüm kullanıcıların giriş yaptığı anasayfa 2.2.3.1.1. Öğrenci Kısmı Öğrenci kısmında randevu alma ve randevu iptal etme işlemleri gerçekleştirilmektedir. 2.2.3.1.1.1. Randevu Alma Öğrenciler randevu almak için randevu al menüsüne tıkladıklarında Randevu Al isimli sayfaya yönlendirilirler. Bu sayfada, randevu almak için fakülte, bölüm ve öğretim üyesi isimlerini seçip, bir sonraki adıma geçmek için girdikleri bilgileri onaylarlar. Şekil 2.9. Randevu Al sayfası. Öğrenciler öğretim görevlisini seçtikten sonra bilgilerini girecekleri sayfaya yönlendirilirler. Bu sayfada öğretim görevlileri ile görüşmek istedikleri uygun gün ve saatleri seçip, istenilen bilgileri girip, dilerlerse dosya da ekleyip devam butonuna bastıklarında randevuları sisteme kaydolmaktadır. 32
  • 33. Şekil 2.10. Randevu Al sayfasında öğrenci bilgilerinin girilmesi ve dosya ekleme işlemi Şekil 2.11. Randevu Al sayfası tüm bilgilerin girilmiş hali 33
  • 34. 2.2.3.1.1.2. Randevu İptal Etme Öğrenciler aldıkları randevuları iptal etmek isteyebilirler. Bunun için de ayrı bir sayfa tasarlanmıştır. Öğrenciler Randevu İptal sayfasında öğrenci numarasını girerek tüm randevularını listeleyebilmektedir. Daha sonra bu randevularından silmek istediklerini seçerek randevularını sistemden silebilmektedirler. 34
  • 35. 35
  • 36. 36
  • 37. Şekil 2.12. Randevu Sil sayfasında randevuların listelenmesi Şekil 2.13. Randevu Sil sayfasında randevu silindikten sonraki uyarı ekranı 2.2.3.1.2. Öğretim Üyesi Kısmı Öğretim üyeleri kendilerine ait programları görebilmek ve düzenlemek için önce sisteme giriş yapmalıdırlar. Öğretim üyeleri, sicil numaralarını ve şifrelerini girerek sisteme giriş yapmaktadırlar. 37
  • 38. Şekil 2.14. Öğretim üyelerinin sisteme giriş yaptıkları sayfa. Öğretim üyeleri şifrelerini hatırlamadıkları takdirde Şifremi Unuttum linki üzerinden şifre Hatırlatma sayfasına yönlendirilip, o sayfada sicil numaralarını girdikleri takdirde maillerine şifre bilgileri ulaşmaktadır. Şekil 2.15. Şifre Hatırlatma Sayfası Öğretim görevlileri doğru sicil numarası ve şifrelerini girdikten sonra kendilerine ait anasayfaya yönlendirilirler. Bu sayfada dört adet menü bulunmaktadır. Bu menüler KOURYS anasayfasına dönüş, ofis saati ayarlama, randevu görüntüleme ve çıkış menüleridir. 38
  • 39. Şekil 2.16. Öğretim görevlilerine ait anasayfa 2.2.3.1.2.1. Ofis Saatleri Ayarlama Ofis saatleri menüsü ile kullanıcı, haftalık randevu gün ve saatlerini ayarlayabilmektedir. Ayrıca seçtiği uygun gün ve saatleri aynı sayfada görebilmektedir. Haftalık gün ve saatler ayarlanırken çeşitli kontroller yapılarak kullanıcının, aynı gun ve saate birden fazla uygunluk vermesi engellenmektedir. Şekil 2.17. Ofis Saatleri sayfasında uygun randevu saatlerinin listelenmesi ve ayarlanması. 39
  • 40. Projede Obout.Suite adlı programın dll.'leri projeye referans olarak gösterilmiştir ve böylece gridview'lara daha estetik bir görünüm kazandırılmıştır. Uygun randevu saatlerinin gösterilmesi bu sayede kullanıcıya daha kolay ve daha fonksiyonel kullanma olanağı sağlamıştır. 2.2.3.1.2.2. Randevu Görüntüleme Randevu Görüntüle menüsü ise öğretim üyesini, randevularını görüntülediği ve düzenlediği sayfaya yönlendirir. Bu sayfada kullanıcı, hangi gün ve saatte kimlerle randevusu olduğunu görüntüler, öğrenciler eğer randevu konusuyla ilgili dosya eklemişse, bu dosyaları bilgisayarına indirebilir. Öğretim görevlisi randevulardan uygun olmayanları sebep belirterek ya da belirtmeksizin iptal edebilir. Randevunun iptal edilmesi halinde öğrenciye bu durumla ilgili sistem tarafından randevu iptal maili yollanmaktadır. Şekil 2.18. Öğretim görevlisine ait randevu görüntüleme ve düzenleme sayfası 2.2.3.1.3. Admin Kısmı Sistem yöneticileri anasayfadan Admin Girişi menüsü üzerinden kendi giriş sayfalarına yönlendirilirler. Bu sayfada kullanıcı adı ve şifre girerek sisteme giriş yaparlar. 40
  • 41. Şekil 2.19. Sistem yöneticisi giriş sayfası Sistem yöneticisi sisteme giriş yaptıktan sonra kendisine ait anasayfaya yönlendirilir. Bu anasayfada Fakülte Ekle, Bölüm Ekle, Kullanıcı Ekle, Kullanıcıları Listele ve Çıkış menüleri bulunmaktadır. Şekil 2.20. Sistem yöneticisi anasayfası 2.2.3.1.3.1. Bölüm Ekle Menüsü Bölüm ekle menüsü ile kullanıcı seçtiği fakültenin altına yeni bölüm ekleyebilmektedir. Ayrıca 41
  • 42. sistemde kayıtlı olan tüm bölümleri ve bağlı oldukları fakülteleri de görebilmektedir ve varolan bölümlerden silinmesi gerekenleri de silebilmektedir. Şekil 2.21. Sistem yöneticisinin bölüm eklemek ve silmek için kullandığı sayfa 2.2.3.1.3.2. Fakülte Ekle Menüsü Sistem yöneticisi bölüm ekleyebildiği gibi sisteme yemi fakülte de ekleyebilmektedir. Bu işlemi Fakülte Ekle menüsü üzerinden gerçekleştirmektedir. Fakülte ekleme sayfasına yönetici sistemde varolan fakülteleri görüntüleyebilmekte ve silinmesi gereken fakülteleri silebilmektedir. Şekil 2.22. Sistem yöneticisinin fakülte eklemek ve silmek için kullandığı sayfa 2.2.3.1.3.3.Kullanıcı Ekle Menüsü 42
  • 43. Sistem yöneticisi kullanıcı da ekleyebilmektedir. Kendisi gibi sistem yöneticisi ya da öğretim görevlisi ekleyebilmektedir. Sistem yöneticisi eklerken kullanıcı adı ve şifre bilgilerini sisteme kaydeder ve bunu kullanıcıya kendisi bildirir. Öğretim üyesi kaydederken ise, öğretim görevlisine ait kişisel bilgiler, Bağlı olduğu fakülte ve bölüm, mail adresleri, sicil numarası gibi bilgileri sisteme kaydeder. Şekil 2.23. Sistem yöneticisinin başka bir sistem yöneticisi eklediği sayfa 43
  • 44. Şekil 2.24. Sistem yöneticisinin öğretim üyesi kaydı yaptığı sayfa 2.2.3.1.3.4. Kullanıcı Listele Menüsü Sistem yöneticileri sistemde kayıtlı olan tüm öğretim görevlileri ve bu öğretim görevlilerine ait bazı bilgileri görüntüleyebilmektedirler. Bu işlemi Kullanıcı Listele menüsü üzerinden gerçekleştirmektedirler. Listeledikleri kullanıcıları ayrıca silme hakkına da sahiptirler. Şekil 2.25. Sistem yöneticisi tarafından kullacıların listelenmesi ve silinmesi işlemleri sayfası 2.2.3.1. VERİTABANI KISMI Projede veritabanı sunucusu olarak Microsoft SQL Server 2005 kullanılmıştır. Veritabanı kısmında stored procedureler ve tablolar bulunmaktadır. Stored procedure ve tabloların ne işe yaradığı önceki bölümlerde anlatılmıştır. Bu bölümde bu stored procedure ve tabloların içeriklerine ve ne işe yaradıklarına değinilecektir. 2.2.3.1.1. Saklı Yordamlar - Stored Procedures Projede güvenliğin arttırılması ve hızın arttırılması amacı ile stored prosedürler kullanılmıştır. Aşağıda bu sp ler ve sp lerin hangi amaç için kullanıldıkları ne işe yaradıkları açıklanmıştır. 2.2.3.1.1.1 sp_addRandevu: Bu stored procedure randevu ekleme işleminde kullanılır. Randevu alma işleminde kullanıcıdan alınan bilgileri tblEklenenRandevular tablosuna eklemek için bu sp kullanılır. İlk başta sp içerisinde kullanılacak olan değişkenler tanımlanmıştır daha sonra ise bu değişkenlere programdan gelen değerer aktarılmıştır. En son olarak ise bu değerler tabloya yazılmıştır. Create proc sp_addRandevu ( @konu nvarchar(50), @icerik nvarchar(150), @ogrUyeID int, @ogrNo nvarchar(50), 44
  • 45. @ogrAdý nvarchar(50), @ogrMail nvarchar(50), @randSaat nvarchar(50), @randGun nvarchar(50), @randDate datetime, @ogrUyeAd nvarchar(50), @filename nvarchar(50), @_RandevuGun nvarchar(50), @_RandevuSaat nvarchar(50) )as INSERT INTO tblEklenenRandevular(RANDEVU_KONU,RANDEVU_ICERIK,OGRUYE_ID,OGR_NO,OGR_ADI,OGR_MAIL,R ANDEVU_SAATI,RANDEVU_GUNU,RANDEVU_TARIHI,OGRUYE_ADI,RANDEVU_DOSYA,_RANDEVUGU N,_RANDEVUSAAT) VALUES (@konu,@icerik,@ogrUyeID,@ogrNo,@ogrAdý,@ogrMail,@randSaat,@randGun,@randDate,@ogrUyeAd,@filenam e,@_RandevuGun,@_RandevuSaat) 2.2.3.1.1.2. sp_BolumEkle: Bu stored procedure, yeni bir bölüm ekleme işleminde kullanılır. Yönetici KOURYS ye yeni bir bölüm eklediğinde değerler alınarak sp_BolumEkle sp si tarafından tblBolumler tablosuna yazılır. create proc sp_BolumEkle ( @fakulteid int, @bolumadi nvarchar(50) )as INSERT INTO tblBolumler (FAKULTE_ID,BOLUM_ADI) VALUES (@fakulteid,@bolumadi) 2.2.3.1.1.3. sp_getID: Bu stored procedure, adı verilen öğretim üyesinin id değerini geri döndürür. Daha önce her öğretim üyesinin kendisine ait özel bir id si olduğunu belirtmiştik. Bu sp de bu değeri istenilen yerde geri döndürür. Create proc sp_getID ( @username nvarchar(50) )as SELECT OGRUYE_ID FROM tblKullaniciBilgileri WHERE OGRUYE_ADI = @username 2.2.3.1.1.4. sp_insertFakulte: Bu stored procedure sisteme yeni bir fakulte eklenmek istenildiğinde kullanılır. Sistem yöneticisi yeni bir fakülte eklediğinde sp tarafından fakulteye ait değerler programdan alınır ve tblFakulteler tablosuna kaydedilir. create proc sp_insertFakulte ( @fakulteadi nvarchar(50) )as INSERT INTO tblFakulteler (FAKULTE_ADI) VALUES (@fakulteadi) 2.2.3.1.1.5. sp_Randevu_Listele: Bu sp sisteme giriş yapmış olan bir öğretim üyesinin kendisinden alınan randevuları görmesiini sağlar. Sistemden aldığı öğretim üyesi id sine göre o id li öğretim üyesinin randevularını listeler. Create proc sp_Randevu_Listele ( 45
  • 46. @ogrID int )as SELECT RANDEVU_KONU,OGR_NO,OGR_ADI,OGR_MAIL,RANDEVU_TARIHI,RANDEVU_SAAT FROM tblEklenenRandevular WHERE OGRUYE_ID= @ogrID 2.2.3.1.1.6. sp_selectBolum: Bu sp randevu alma ekranında kullanıcı fakülteyi seçtiğinde o fakülteye bağlı bölümleri listelemek amaçlı kullanılır. Sistemden o fakültenin id sini alır ve o id ye bağlı bölümlerisisteme geri döndürür. create procedure sp_selectBolum @fakulte_id int as select BOLUM_ADI FROM tblBolumler where (FAKULTE_ID=@fakulte_id) 2.2.3.1.1.7. sp_selectBolumler: Bu sp tblBolumler tablosundaki tüm bölümlerin bilgisini alma amaçlı kullanılır. Bu liste sisteme yönetici olarak giriş yapıldığında yeni bölüm ekleme ekranında yöneticiye sunulur. Create proc sp_selectBolumler as SELECT BOLUM_ADI FROM tblBolumler 2.2.3.1.1.7. sp_selectFakulteler: bu sp tblFakulteler tablosundaki tüm bölümlerin bilgisini alma amaçlı kullanılır. Bu liste sisteme yönetici olarak giriş yapıldığında yeni fakülte ekleme ekranında yöneticiye sunulur. create procedure sp_selectFakulteler as select FAKULTE_ADI FROM tblFakulteler 2.2.3.1.1.8. sp_selectUser: Bu sp kullanıcı tablosundan öğretim üyelerinin sicil numara bilgilerini alır. Create proc [dbo].[sp_selectUser] as select OGRUYE_SICILNO FROM tblKullaniciBilgileri 2.2.3.1.1.9. sp_selectUsers: Bu sp tblKullaniciBilgileri tablosundaki tüm bölümlerin bilgisini alma amaçlı kullanılır. Bu liste sisteme yönetici olarak giriş yapıldığında yeni kullanıcı ekleme ekranında yöneticiye sunulur. Create proc [dbo].[sp_selectUsers] as SELECT * FROM tblKullaniciBilgileri 2.2.3.1.1.10. sp_UserControl: bu sp sistemden aldığı öğretim üyesi sicil numarasına göre o öğretim üyesinin id sini sisteme geri döndürür. create proc sp_userControl ( @sicilno nvarchar(15) )as select OGRUYE_ID from tblKullaniciBilgileri where OGRUYE_SICILNO=@sicilno 2.2.3.1.1.11. sp_getDepartments: Bu sp ile veritabanından tüm fakülte ve tüm bölümler çekilir. 46
  • 47. create proc sp_getDepartments as select F.FAKULTE_ADI, B.BOLUM_ADI FROM tblFakulteler as F inner join tblBolumler B on B.FAKULTE_ID=F.FAKULTE_ID 2.2.3.1.1.12. sp_insertAdmin: Sistem yöneticisi sistemin yönetm panelinden kendisi dışında sisteme başka yönetici de ekleyebilir. Bu yöneticiyi eklerken sp_insertAdmin sp si kulanılmaktadır. Gerekli parametreleri alarak admin tablosuna kullanıcı ve şifre bilgisini yazar. create proc [dbo].[sp_insertAdmin] ( @name nvarchar(50), @password nvarchar(50) )as insert into tblAdmin(YoneticiAdi, YoneticiSifre) values (@name,@password) 2.2.3.1.1.13. sp_getUsersInformation: Bu sp ile veritabanından kullanıcı bilgileri çekilir. Bu bilgiler admin panelinde kullanıcıları listlemek için kullanılır. Sistem yöneticisi yönetim panelinden kullanıcı listesini görmek istediğinde bu sp kullanılarak admin e bu bilgiler sunulur. create proc sp_getUsersInformation AS select F.FAKULTE_ADI,B.BOLUM_ADI,K.OGRUYE_ADI,K.OGRUYE_MAIL, K.OGRUYE_SICILNO FROM tblKullaniciBilgileri AS K join tblBolumler B ON K.OGRUYE_BOLUMID=B.BOLUM_ID join tblFakulteler F ON K.OGRUYE_FAKULTEID=F.FAKULTE_ID 2.2.3.1.2. Tablolar 2.2.3.1.2.1. Bölümler Tablosu Tablo 1.1 de bölümler tablosu görülmektedir. Bu tabloda 3 adet sütün bulunmaktadır. FAKULTE_ID, BOLUM_ID, BOLUM_ADI. FAKULTE_ID bölümün hangi fakülteye bağlı olduğunu göstermektedir. BOLUM_ID bölümün numarasıdır ve her bölümün kendine özel numarası vardır. BOLUM_ADI ise o bölümün adıdır. 47
  • 48. 48
  • 49. Tablo 2.1. Bölümler Tablosu 2.2.3.1.2.2. Fakülteler Tablosu Tablo 1.2. fakülte kayıtlarını tutan tablodur. FAKULTE_ID o fakültenin numarasıdır ve her fakültenin ayrı bir numarası vardır. Bu numaralar otomatik olarak atanmaktadır. FAKULTE_ADI ise fakültenin ismidir. Tablo 2.2. Fakülteler Tablosu 2.2.3.1.2.3. Kullanıcı Bilgileri Tablosu Bu tabloda kullanıcı bilgileri yani öğretim üyelerinin bilgileri tutulmaktadır. Öğretim üyeleri KOURYS sistemini kullanabilmeleri için bu sisteme öncelikle kayıt olmalıdırlar. Bu kayıt işlemi esnasında öğretim üyesinden bir takım bilgiler istenmektedir. Bu tabloda bu bilgiler tutulmaktadır. 49
  • 50. Tablo 2.3. Kullanıcı Bilgileri Tablosu 2.2.3.1.2.4. Eklenen Randevular Tablosu Bu tablo öğrenciler tarafından alınan randevu kayıtlarını tutar. Bu randevular bir haftalıktır. Alınan randevu saati ve randevu günü hem gerçek değerler olarak (Pazartesi 09:00-09:15) hem de üzerinde işlem yapılması için sayısal değerler olarak (0,0) olarak tutulur. Burada ilk 0 pazartesi gününü diğer 0 ise randevu alınabilecek ilk aralık olan 09:00-09:15 aralığını temsil etmektedir. Ayrıca öğrenci randevu alırken randevu konusu ile ilgili herhangi bir döküman ekleyebilmektedir. Bu dökümanlar da yine bu tabloda tutulmaktadır. Tablo 2.4. Eklenen randevular tablosu 2.2.3.1.2.5. Öğretim Üyesi Randevu Bilgileri Tablosu Bu tablolar her öğretim üyesi için öğretim üyesinin id sine göre oluşturulmaktadır. Her öğretim üyesine ait kendi tablosu vardır. Bu tablolar kullanıcı kaydı yapıldığında yani öğretim üyesi KOURYS'ye üye olduğunda oluşturulmaktadır. İçerisinde de öğretim üyesinin ofis saatleri bilgisini tutmaktadır. Öğretim üyesi kendi sayfasından girerek ofis saatlerini ayarladığında veriler bu tabloya yazılır. Yine tblEklenenRandevular tablosunda olduğu gibi (Tablo1.4.) randevu gün ve saat değerleri hem gerçek değerleri ile hem de sayısal değerler olarak tutulur. 50
  • 51. Tablo 2.5. Randevu Saatleri Tablosu 51
  • 52. SONUÇ VE ÖNERİLER Kocaeli Üniversitesi Randevu Yönetim Sistemi'nin amacı öğretim üyelerinin ofis saatlerini daha verimli bir şekilde kullanmasını amaçlamaktadır. Bu amaç doğrultusunda sistem geliştirilmiştir. Bu saatlerin en verimli şekilde kullanılabilmesi için sistem en detaylı şekilde gerçeklenmeye çalışılmıştır. Yazılım geliştirmenin temel amaçları iş yükünün hafifletilmesi ve mevcut sistemin daha kolay, daha sağlıklı ve daha verimli bir şekilde iyileştirilmesidir. Bu hususlar göz önüne alındığında Kocaeli Ünversitesi Randevu Yönetim Sistemi öğretim üyeleri ve öğrenciler arasında randevu saatlerinin daha önceden belirlenmesi hem öğretim üyesi için hem öğrenci için zaman kaybının önüne geçmektedir ve sistemin daha verimli bir şekilde çalışmasını sağlamaktadır. Sistem de ayrıca bir yönetici kısmı vardır ve yönetici sisteme yeni bileşenler ekleyebilmektedir. Bu da sistemin dinamik bir yapı da olmasını sağlamaktadır. Randevular sistemde bir haftalık olarak ayarlanmaktadır. Öğrenciler haftaiçi günlerinde öğretim üyelerinin belirlediği ofis saatleri aralığında randevularını alabilmektedirler. Fakat öğretim üyesinin sistemi kullanabilmesi için sistem yöneticisinin öğretim üyesini sisteme kaydetmesi gerekmektedir. Sisteme kayıt olan öğretim üyesi kendi kullanıcı adı ve şifresi ile sisteme giriş yaptıktan sonra ofis saatlerini ayarlayarak sistemi kullanmaya başlayabilir. Sonuç olarak, oluşturulan sistem ile öğretim üyesi ve öğrenci arasındaki görüşmeler daha kolay ve verimli bir şekilde sağlanmıştır.
  • 53. KAYNAKLAR [1] http://www.nedirtv.com/video/Webiner-ASPNET-AJAX.aspx [2] Her Yönüyle C# Sefer ALGAN Pusula Yayıncılık [3] asp ile web programcılığı ve elektronik ticaret zafer demirkol [4] Building web solutions with ASP.NET and ADO.NET Yazar Esposito, Dino ISBN-ISSN 0735615780 Yayın Yeri : Yayınlayan Reymond, Washington : Microsoft Press Yayın Tarihi 2002 [5] Eser Adı ASP.NET Yazar Çankaya, Mehmet Nuri ISBN-ISSN 9753474970 Yayın Yeri : Yayınlayan Ankara : Seçkin Yayın Tarihi 2002 [6] Eser Adı Designing microsoft ASP. NET applications Yazar Reilly, Douglas J. ISBN-ISSN 0735613486 Yayın Yeri : Yayınlayan Redmond, Washington : Microsoft Press Yayın Tarihi c2002 [7] Eser Adı Programming Microsoft.Net Yazar Prosise, Jeff ISBN-ISSN 0735613761 Yayın Yeri : Yayınlayan Redmont, Washington : Microsoft Press Yayın Tarihi 2002 [8] C# ile ASP.NET - Zafer Demirkol - Pusula Yayınları [9] ASP.NET Unleashed / Web Programcılığı - Stephen Walther - Sistem Yayıncılık [10]ASP.NET ve C# Web Programcılığı - A.Russell Jones - Alfa Yayınları [11]Adım Adım Microsoft ASP.NET - G.Andrew Duthie - Arkadaş Yayınları [12] http://www.w3schools.com/SQl/default.asp
  • 54. [13] http://www.connectionstrings.com/sql-server-2005 [14] http://msdn.microsoft.com/en-us/library/aa174792(SQL.80).aspx [15] http://www.asp.net/learn/ajax-videos/ [16] http://quickstarts.asp.net/QuickStartv20/aspnet/Default.aspx [17] http://www.asp.net/learn/ [18] http://www.sqlcourse.com/ [19] http://www.obout.com/inc/download.aspx [20] http://www.obout.com/inc/tu_add_component.aspx [21] http://www.zirvedekibeyinler.net/Videolar-144-asp-net-de-masterpage- yapisi.aspx