Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015



Benzer belgeler
yeni_uye_kayit.ascx UserControl sayfamızda, kaydedilmek istenen üye eğer daha önce veritabanımızda kayıtlı ise bunu buldurup kullanıcıyı uyaralım;

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

C Sharp /Veri tabanı işlemleri

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

Swing ve JDBC ile Database Erişimi

A- VERİTABANI BAĞLANTISINI HAZIR NESNE KULLANARAK YAPMA

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

VeriTabanı Uygulamaları

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

1. VERİ TABANI ARAÇLARI

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Veritabanı İşlemleri

Masa üstünde vt34.mdb dosyası var, onu projemize eklemek için, App_Data ya sağ tıkla Add Existing Item vt34.mdb adlı dosyayı seç Add

Bölüm 10: PHP ile Veritabanı Uygulamaları

Kitap Ekle linki tıklandığında, admin.aspx sayfamızın görüntüsü aşağıdaki şekilde olacaktır.

Yazılım Mühendisliği 1

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

İNTERNET TABANLI PROGRAMLAMA- 10.ders GRIDVIEW İÇERİSİNDE YENİ KAYIT EKLEME, FOTOGRAF LİSTELEME, SIRALAMA YAPMA VE DROPDOWN EKLEME

Veritabanı. Ders 2 VERİTABANI

ÖZGÜR YAZILIMLAR İLE J2EE

Veritabanı Uygulamaları Tasarımı

Client Server Database

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi.

Asp.Net Veritabanı İşlemleri

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

İNTERNET TABANLI PROGRAMLAMA

Değerlendirme Soruları 140. Şerit Kullanımı 124 Şerit Sekmeleri 124 Şeridi Gizleme 125 Eklentiler 125

STORED PROCEDURE LER (Saklı Yordamlar)

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

COM API v2.0 Belge sürümü : 2.0.3

İNTERNET TABANLI PROGRAMLAMA- 8.ders VERİTABANI İLE İLGİLİ BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME

VERİ TABANI İŞLEMLERİ (NESNE TABANLI PROGRAMLAMA TEKNİĞİ İLE)

BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME İŞLEMLERİNİN BİRLİKTE ANLATIMI

PERSONEL BANKA IBAN BİLGİSİ DEĞİŞİKLİĞİ UYGULAMA KILAVUZU

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

Doç. Dr. Cüneyt BAYILMIŞ

JAVA API v2.0 Belge sürümü: 2.0.2

ADO.NET VERİTABANINA BAĞLANTI. Bir web formu üzerinden veritabanına bağlantımızı anlatacağım. UYGULAMA 1

SINIF İÇİ UYGULAMA KODLARI

Ağ Yönetiminin Fonksiyonel Mimarisi

08225 AĞ TEMELLERĠ. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 20 EKi Salı, Çarşamba

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

GENETİK ALGORİTMA GEZGİN SATICI ÖDEVİ

Balon & Banka Teslim tarihi: 17 Kasım 2008

İNTERNET TABANLI PROGRAMLAMA- 9.ders BİLGİLERİN GRIDVIEW İÇERİSİNDE EKLENMESİ, DÜZENLENMESİ VE SİLİNMESİ

Java Temel Özellikleri

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

PROGRAMLAMA DERSİ 1. İNTERNET

NETWORK BÖLÜM-5 OSI KATMANLARI. Öğr. Gör. MEHMET CAN HANAYLI CELAL BAYAR ÜNİVERSİTESİ AKHİSAR MESLEK YÜKSEKOKULU 1/27

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Veri Merkezli Uygulamalar Bağlantılı (Connected) Veri Ortamları

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT

Ders 8: Metotlar. barisgokce.com

11.DERS Yazılım Testi

İŞLETİM SİSTEMLERİ. (Operating Systems)

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

İLİŞKİSEL VERİTABANLARI

Üst Düzey Programlama

1-) Veritabanımıza bağlanmak için bir SqlConnection nesnesi, 2-) Veritabanındaki bilgileri kullanmak (seçme, kaydetme, silme, güncelleme) için

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

ALGORİTMA VE PROGRAMLAMA I

Veritabanı İşlemleri

Hızlı Başlangıç Kılavuzu

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

İNTERNET TABANLI PROGRAMLAMA- 11.ders FORM UYGULAMASI (DROPDOWN BİLGİ YÜKLEME, VALIDATION KONTROLLERI, PAREMETRELİ KAYIT YAPMA)

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

14. HİSSE SENETLERİ PİYASASI BİLGİSAYARLI ALIM - SATIM SİSTEMİNİN İŞLEYİŞİ

Magic Pass Parmak İzi & RFID Kart Okuyucu

Fatura Dinamik Kodlama İyileştirmeleri

VERİTABANINA BİLGİ KAYDEME, DÜZENLEME, LİSTELEME İŞLEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ

Veritabanı. SQL (Structured Query Language)

DERS TANITIM BİLGİLERİ. Dersin Adı Kodu Yarıyıl Teori (saat/hafta) Laboratuar (saat/hafta) Uygulama (saat/hafta) AKTS. Yerel Kredi

İl İlçe uygulaması. : Seçilen ile ait ilçeleri listeleyen program. //İl değişkeni için kodu aşağıdaki sayfadan kopyalayınız.

Mobil Cihazlardan Web Servis Sunumu

MAPINFO PROFESSIONAL TEMEL VE İLERİ SEVİYE KURS İÇERİĞİ

TC KİMLİK NO SMS GÖNDERİM XML API

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

KOD PARÇACIKLARI 1 / 5

Bilgiyi Keşfedin! Özelleştirme, Eklenti ve Veri Entegrasyonu Kurumsal Seviyede Yönetim ve Performans

VERİ TABANI UYGULAMALARI

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

AJANS İLETİŞİM API XML API v İçindekiler. 1. AMAÇ - Sayfa 2

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

Güvenlik Java ve Web Uygulama Güvenliği

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

Veritabanı Tasarımı. Tablo Oluşturma

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design

Sunum İçeriği. Programlamaya Giriş

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

ÜCRET BORDROSUNDA DEĞĐŞEN SAHALAR

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Ecat 8. Hakbim Bilgi İşlem A.Ş. Versiyon

Üst Düzey Programlama

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Transkript:

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

KONU BAŞLIKLARI 1. Yazılım Mimarisi nedir? 2. Yazılımda Karmaşıklık 3. Üç Katmanlı Mimari nedir? 4. Üç Katmanlı Mimari nin katmanları nelerdir? 5. C#.NET üzerinde Üç Katmanlı Mimari nin yazılımsal yapısı 6. Yazılımı Üç Katmanlı Mimari yi kullanarak geliştirmekle kullanmadan geliştirmek arasındaki farklar

YAZILIM MİMARİSİ NEDİR? Bir yazılımın veya bilgisayar sisteminin yazılım mimarisi demek sistemi oluşturan yazılım bileşenleri ve görünür dış özellikler ile bunlar arasındaki ilişkiler demektir. Bilgisayar mühendisliği ve yazılım mühendisliğinde karmaşıklık önemli bir konudur. Mühendisler önceleri bu sorunu düzgün veri yapılarını kullanarak aştı. Ancak 1980'lerden beri yazılım mimarisi yazılım mühendisi öncüleri tarafından kullanılmaktadır. 1990'lardan itibaren tasarım şablonları, formal dilleri vb. geliştirildi.

YAZILIMDA KARMAŞIKLIK NEDİR? Yazılımda karmaşıklık, bir yazılımı geliştirirken karşılaşılacak zorlukları ifade eder. Bu zorluklar 2 türlüdür: 1. Yazılımı geliştirirken yaşanan zorluklar 2. Yazılımın performansı konusunda yaşanan zorluklar

YAZILIMI GELİŞTİRİRKEN YAŞANAN ZORLUKLAR Problemin Karmaşıklığı: Bir yazılımın ne tür ihtiyaçları karşılayacağı problemin karmaşıklığını ifade eder. Bu ihtiyaçları karşılamak için yazılımda gerekli iyileştirme ve geliştirmelerin yapılması gerekir. Böylece sorun çözülecektir. Yazılım geliştirme sürecini yönetme güçlüğü: Yazılım geliştirme süreci, saha araştırması, analiz, planlama, geliştirme ve test gibi aşamalardan oluşur. Deneyimli bir ekip lideri ve işlerinde uzman bir yazılımcı ekibiyle bu sorunun üstesinden gelinecektir.

YAZILIMIN PERFORMANSI KONUSUNDA YAŞANAN ZORLUKLAR Performans ve kaplanan alan açısından karmaşıklık: Performans açısından karmaşıklık, bir yazılımın kullanımı sırasında kendisinden beklenen görevleri yerine getirirken ne kadar süre harcadığını ifade eder. Bunun ifadesi için döngüsel karmaşıklık(cyclomatic complexity) ve büyük O notasyonu O(n) kullanılabilir. Döngüsel karmaşıklık: Bir yazılımın herhangi bir işlevini çalıştırmak için bir harekette bulunduğumuzda bu işlevi yerine getirirken bir kod parçacığını kaç kere çalıştırdığımızla alakalıdır.

YAZILIMIN PERFORMANSI KONUSUNDA YAŞANAN ZORLUKLAR Büyük O notasyonu: Büyük O notasyonu O(n) ile ifade edilir. N tane verinin işlenmesi için N cinsinden kaç komutun yerine getirilmesi gerektiğini ifade eder. Örnek olarak bir bubblesort sıralama algoritmasını düşündüğümüzde n tane sayının sıralanması için n2 kadar yer değiştirme yapılması gerekir. Bu da bizim notasyonumuzun O(n2) olduğunu gösterir. Kaplanan Alan Açısından Karmaşıklık: Bir yazılımda belli bir işlevin yerine getirilmesi için kaç satır kod yazdığımızla veya kod satırı üzerinde belirttiğimiz algoritmanın ne kadar uzun olduğuyla alakalıdır.

YAZILIMIN PERFORMANSI KONUSUNDA YAŞANAN ZORLUKLAR Kaplanan Alan Açısından Karmaşıklık: Bir yazılımda belli bir işlevin yerine getirilmesi için kaç satır kod yazdığımızla veya kod satırı üzerinde belirttiğimiz algoritmanın ne kadar uzun olduğuyla alakalıdır. Bilgisayar dünyasında her ne kadar büyük yer kaplayan disklerin ortaya çıkmasıyla alan açısından problem azalmış gibi görünse de büyük yazılımlar geliştirildiği, verilere milyonlarca kişinin ulaştığı, her ay milyarlarca veri üzerinde değişiklik yapıldığı ve bunlar için çok büyük veri merkezleri(data center) kurulduğu düşünüldüğünde oldukça önemli bir kavram halini alır. Çeşitli yazılım mimarileri kullanılarak ve işlemleri daha basit bir şekilde yerine getiren algoritmalar kullanılarak bu sorunlar çözülebilir.

YAZILIMI GELİŞTİRİRKEN YAŞANAN ZORLUKLAR Hata Açısından Karmaşıklık: Yazılımın ilk geliştirildiği zamandan günümüze doğru gelindiğinde daha gelişmiş yazılım teknolojileriyle beraber daha ileri seviye yazılımlar geliştirilmektedir. Bu yazılımların seviyesi arttıkça daha farklı ve sofistike hatalar ortaya çıkmaktadır. Bu hataların ne kadar çeşitli bir biçimde ortaya çıktığı da hata açısından karmaşıklığı ifade eder. Yazılımı geliştirirken ve geliştirdikten sonra ne kadar az hata ile karşılaşırsak, hata açısından karmaşıklığımız da o kadar düşük olacaktır.

ÜÇ KATMANLI MİMARİ Üç katmanlı mimari; fonksiyonel işlem mantığı (iş kuralları), kullanıcı arayüzü(sunum), veri saklama ve veri erişiminin bağımsız modüller olarak ve farklı platformlar üzerinde geliştirildiği ve sürdürüldüğü bir istemci-sunucu mimarisidir denebilir. Cambridge, Massachussets te bulunan bir cihaz şirketi olan OEC(Open Environment Corporation) dan John J. Donovan tarafından geliştirilmiştir.

ÜÇ KATMANLI MİMARİNİN KATMANLARI NELERDİR? Üç Katmanlı Mimari nin katmanları ve işlevleri kısaca aşağıdaki gibidir: 1. Veri Katmanı(Data Layer): Veri Katmanı, bir programda verilerin depolandığı ve aynı zamanda komutlardan etkilenen kısmıdır. Veritabanı tabloları, XML dosyaları vs. bu katmana dahildir. 2. Sunum Katmanı(Presentation Layer): Bu katman, programın kullanıcının gördüğü ve işlem yaptığı kısmıdır. Butonlar, metin kutucukları, veri gösteren satırlar, mesaj pencereleri bu katmana dahildir. 3. İş Katmanı(Business Layer): Bu katman ise, kullanıcının yapmak istediği işlemlere göre programın işleyişini sağlar. Veri katmanı üzerinde değişiklik yapan nesneler, kullanıcı arayüzüne veri gönderen ve veri alan kodlar bu katmandadır.

ÜÇ KATMANLI MİMARİNİN KATMANLARI NELERDİR? Resim-1: Üç Katmanlı Mimari nin mantıksal yapısı ve çalışma prensibi

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-2: C#.NET te Üç Katmanlı Mimari nin mantıksal yapısı

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI dbconnection: dbconnection komponenti, genel olarak veritabanı üzerinde Select(veri çekme), Insert(veri ekleme), Update(veri düzenleme) ve Delete(veri silme) işlemlerinin nasıl yapılacağının belirtildiği komponenttir. Veritabanı bağlantısının yapılıp yapılmadığını da kontrol eder. Eğer açık değilse bağlantıyı açar ve veritabanı sorgusunu yerine getirir. Alınan sonuçlar DataTable nesnesine aktarılır.

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-3: dbconnection kod satırı-1

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-4: dbconnection kod satırı-2

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-5: dbconnection kod satırı-3

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-6: dbconnection kod satırı-4

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI DAO(Database Access Object): Bu komponent, Business Logic Layer dan gerekli verileri parametre olarak aldıktan sonra bunları dbconnection komponentine veritabanı üzerinde işlem yapması için gönderir. Burada yer alan kodlar veritabanından verilerin çekilmesi için özel sorguların belirtildiği kodlardır.

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-7: DAO kod satırı-1

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-8: DAO kod satırı-2

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI VO(Value Object): Bu nesne, veritabanı tablolarının iş katmanındaki temsilidir. Veritabanında hangi isimde tablolar ve o tabloların hangi isimde ve veritipinde sütunları varsa burada belirtiriz. Veriyi sunum katmanında kullanacağımızda bu nesneyi göndeririz ve sunum katmanı bu nesneden gerekli verileri ayrıştırarak kullanıcıya sunar.

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-9: VO kod satırı-1

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-10: VO kod satırı-2

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Business Logic Layer: Bu katman Presentation Layer ve DAO arasında bir köprü görevi üstlenir. Kullanıcı veriyi sunum katmanı aracılığıyla bu katmana gönderir. Bu katman da DAO daki veri çekme fonksiyonlarına erişir ve oradan gelen sonuçları toparlayarak yeniden sunum katmanına gönderir.

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-11: Business Logic Layer kod satırı-1

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-12: Business Logic Layer kod satırı-2

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Presentation Layer: Bu katman kullanıcıya verileri onun istediği gibi sunan ve verileri de kullanıcıdan onun istediği şekilde alan katmandır. Bu katman, verileri parametre olarak Business Logic Layer a gönderir ve VO nesnesi şeklinde ondan kendisine sunulan veriyi düzenleyerek kullanıcıya gösterir.

C#.NET TE ÜÇ KATMANLI MİMARİNİN YAZILIMSAL YAPISI Resim-13: Presentation Layer kod satırı

FARKLAR void soru() { OleDbCommand veri_1 = new OleDbCommand("SELECT soru_2 FROM soru_2", conn); OleDbDataReader okut; okut = veri_1.executereader(); while (okut.read()) { label1.text = (okut[0].tostring()); } okut.close(); conn.close(); } Üç Katmanlı Mimari olmadanc# Access SELECT kullanımı

FARKLAR public void view_offers_load(object sender, EventArgs e) { offers.datasource = new teklifdao().selectoffers(id_num, null, 0, true); isimler_gizle = new string[] { "Sahibi", "Tipi", "Markasi", "Modeli", "Fiyati", "Id", "UrunId", "TeklifYapanId", "Durumu", Varlik" }; isimler_goster = new string[] { "TeklifYapan", "TeklifMiktari", TeklifTarihi" }; yeni_isim = new string[,] { { "TeklifYapan", "TEKLİF YAPAN" }, { "TeklifMiktari", "TEKLİF MİKTARI" }, { "TeklifTarihi", "TEKLİF TARİHİ" } }; Edit_Grid(offers, isimler_goster, isimler_gizle, yeni_isim); } Üç Katmanlı Mimari Kullanılarak C# MSSQL Select kullanımı

FARKLAR 3-KTM İle 3-KTM olmadan Performans Karmaşıklığı Çok hızlı Hızlı Alan Karmaşıklığı Daha Az Daha Fazla Hata Karmaşıklığı Daha Az Daha Fazla