Ana içeriğe atla

Kayıtlar

2009 tarihine ait yayınlar gösteriliyor

SQL Sorgu Optimizasyonuna Yardımcı Araçlar

Sorgu optimizasyonu yaparken, her değişiklikten sonra performans bilgisini gözlemleme işlemini tekrarlamak gerekir. Bu gözlem, yapılan değişikliğin performansı iyi mi kötü etkilediğini belirlemeye yardımcı olur. 1. Elapsed TimeBir sorgunun çalışmak için aldığı zaman uzunluğu ‘Elapsed Time’ olarak adlandırılır. Sorgunun tamamlanma süresini birçok şey etkileyebilir. Tamamlanma süresi en iyi değerlendirme ölçüsüdür, çünkü bu değere kullanıcının sorgu çalışırken bekleyeceği zamandır. Tamamlanma süresini görebileceğimiz ilk yer SQL Server Management Studio’ da sorgu penceresidir. Aşağıdaki gibi görülür. Tamamlanma süresini görebileceğimiz diğer seçenek SET STATISTICS komutunu kullanmaktır. Aşağıda bu komut ile çalıştırılmış sorgu ve sonuç penceresi görünüyor.

Cluster ve clustering nedir? Cluster oluşturmanın faydaları nelerdir? (Bölüm I)

Cluster, basit anlamda benzer bir amaç için belirli bir konfigürasyon yapılarak aynı görevi birlikte ya da yedekli çalışmasını sağlayan servistir. Cluster farklı amaçlarla oluşturulabilir fakat son kullanıcı tarafından her zaman tek bir bilgisayar gibi gözükecektir. Bir cluster oluşturmak için en azından iki adet sunucuya ihtiyaç vardır ve bir cluster içindeki her bir sunucu “node” olarak adlandırılır. İhtiyaç olan hizmete göre çeşitli sayıda nodelar bir araya gelerek clusterları oluşturmaktadır. Bir cluster oluşturmak için gerekli sebepler daha fazla performans ihtiyacı, yüksek erişilebilirlik (high availability) ya da her ikisi birlikte olabilir. Şimdi cluster çeşitlerini çok fazla ayrıntıya girmeden biraz daha yakından inceleyelim. Yüksek erişilebilirlik (High-availability) clusterlarıBu tip cluster yapısında öncelik erişilebilirliği arttırmadır. Bunu tek bir sunucunun görevini herhangi bir donanım yada yazılım problemi oluştuğunda diğer bir sunucunun otomatik olarak devralması olara…

JOIN Türüne Göre SQL Optimizer Çalışma Mantığı

SQL Optimizer, Joinler için 3 farklı yöntem kullanmaktadır:
1.Nested Loop : Bir tablonun (outer table) tüm satırlarını döner ve her satır için diğer tablonun(inner table) satırlarını dönerek eşleştirmeye çalışır. Kayıt sayıları az olduğunda en iyi performansı verir. Right ve Full Outer Join bu yöntemi kullanmaz. Input tablonun büyüklüğü çarpı Output tablonun büyüklüğü maliyetle orantılıdır. Algoritma mantığı aşağıdaki gibidir: for each row R1 in the outer table
    for each row R2 in the inner table
        if R1 joins with R2
            return (R1, R2)2. Merge Join : Aynı anda iki tablonun birer satırını okuyup karşılaştırarak eş zamanlı çalışır. Ancak iki tablonun join keylerinin sıralı olması zorunludur. “T1.a = T2.b” şeklinde bağlandıysa t1 in a, t2 nin de b kolonuna göre sıralı olması gerekmektedir. Tüm join tiplerini destekler. Kayıt sayısıyla maliyeti orantılıdır. Büyük kayıtlar için iyi sonuç verir. Input tablonun büyüklüğü maliyetle orantılıdır. Algo…

Aynı SQL Veritabanını Birden Fazla Sunucuda Kullanma

Zaman zaman gerek performans açısından, gerekse farklı nedenlerle aynı veritabanına farklı sql sunuculardan erişme ihtiyacı doğar. Burada karşımıza farklı seçenekler çıkar. Bunlara kısaca bakacak olursak: 1. Mirroring
2 (principal, mirror) veya 3 sunucu ile (principal, mirror, witness) kurulur. Principal ve mirror sunucular sql standard veya enterprise edition olmalıdır. Witness olan sunucu ise sql express edition bile olabilir. Ancak witness sunucu varsa yüksek bulunurluk olabilir. Üç farklı şekilde kurulabilir: Yüksek bulunurluk (witness sunucu ile senkron veritabanı)Yüksek koruma (witness sunucu kullanmadan senkron veritabanı)Yüksek performans (witness sunucu kullanmadan asenkron veritabanı)Mirror olan veritabanına erişilemez (aktif olmadığı sürece recovering statüsünde kalır Bir veritabanının sadece bir tane mirror kopyası olabilir. Mirror olan veritabanından sadece okuma yapmak için snapshot alınabilir. Özellikle uzak lokasyona mirror alınıyorsa uygun bir çözümdür.

UML ve Modelleme – Bölüm 4 (Class (Sınıf) Diyagramları)

Bir önceki makalemizde UML modellemede kullanılan ilk diyagram olan Use Case diyagramını incelemiştik. Bu makalemizde nesne tabanlı programlamada kullanılan sınıflar ve sınıfların arasındaki ilişkileri modelleyebileceğimiz diyagramlar olan Class(Sınıf) diyagramlarını inceleyeceğiz. UML’de sınıflar, nesne tabanlı programlama mantığı ile tasarlanmıştır. Sınıf diyagramının amacı bir model içerisinde sınıfların tasvir edilmesidir. Nesne tabanlı uygulamada, sınıfların kendi özellikleri (üye değişkenler), işlevleri (üye fonksiyonlar) ve diğer sınıflarla ilişkileri bulunmaktadır. UML’de sınıf diyagramlarının genel gösterimi aşağıdaki gibidir. Şekil 1. Class Diyagram Şekil1’de görüldüğü üzere bir dikdörtgeni 3 parçaya bölüyoruz. En üst bölüm sınıf adını, orta kısım özellik listesini (üye değişkenler) ve en son kısım, işlev listesini (üye fonksiyonlar) göstermektedir. Çoğu diyagramlarda alt iki bölüm çıkarılır. Genelde tüm özellik ve işlevler gösterilmemektedir. Amaç, diyagramın sadece belirli k…

Exchange Server 2010 ve Genel Avantajları Üzerine

Microsoft Exchange Server 2010 kurularak; izleme, filtreleme, kota koyma vs. gibi bir çok yönetimsel özellik sayesinde, gerek Bilgi Teknolojileri departmanı için gerekse şirket çalışanlarına, daha üretken, etkili, verimli ve güvenli bir iş ortamının sağlanmasını hedeflenir. Genel avantajları aşağıdaki gibidir; Gelişmiş spam mail koruması Intelligent-Defense  özelliği ile spam e-postaların toplam hacmini azaltılması.  Bu yol ile mail sunucu spam epostaları toplu olarak ortadan kaldırır, eposta için kullanılan kaynağı düşürür, harcanan band genişliğini azaltır ve gereksiz depolanmanın önüne geçer. Exchange sunucu ile birlikte Outlook üzerinde Sharepoint ile entegrasyon Gelen kutusu, takvim, görev listesi gibi kullanıcı alanlarının istenilen kişilerle paylaşılarak ortak ve etkin bir çalışma alanı yaratılabilmesi Sharepoint üzerinde depolanan bilgilere herhangi bir zamanda her hangi bir yerden ulaşabilme imkânın olması

“Response.Redirect”, “Server.Transfer”, “Response.RedirectParmanent” Karşılaştırma

ASP.NET uygulamalarında bir sayfadan diğer sayfaya geçişte kullanılan bu methodların çalışma mantıkları oldukça farklıdır. Detayları bilinmediği zaman birbirleri yerine kullanılabilirler ve beklenmedik/istenmeyen maliyetlere neden olurlar. Dolayısı ile ihtiyaca göre doğru yerde kullanılmaları önemlidir. 1. Response.Redirect(“New.aspx”)
Bir sonraki sayfaya geçiş için sunucu-tarayıcı arasında fazladan bir tur atılır. Toplam tarayıcı-sunucu arasındaki tur sayısı (roundtrip) 2’dir. İlk sayfa tarayıcıdan tamamen kaybolur. Eğer session, cache, querystring veya serialization benzeri yöntemlerle bilgileri taşımadıysanız, ilk sayfadaki hiç bir bilgiye ulaşamazsınız. Tarayıcınızda yeni sayfanın URL bilgisi yazar. Roundtrip artsa da daha “temiz” bir yöntemdir. Response status olarak 302 (Found- “Asked resource is temporarily moved to other location”) bilgisi döner (tarayıcı eski URL’den yeni resource’u sormaya devam eder). Yeni sayfada oluşabilecek F5/page refresh problemlerini önlenir ve daha kar…

Applocker İle Daha Güvenli Bir Ağ

Bu makalemizde Windows 7 ile birlikte gelen yeniliklerden biri olan applocker uygulamasından bahsedeceğiz. Applocker ağ yöneticilerine kullanıcılarının istemli ya da istemsiz bir şekilde bilgisayara herhangi bir sebepten ötürü kurabileceği yazılımlara kısıt getirilebilmesini sağlar. Bu kısıtlamada amaç sistem bütünlüğüne zarar verebilecek her türlü programın bilgisayara yüklenmesinin önüne geçerek ileride ağ yöneticileri için oluşabilecek sorunları meydana gelmeden ortadan kaldırmaktır. Ek olarak paylaşım programlarıyla şirket internet bant genişliğinin azalmasının yada bilgisayardaki gereksiz yazılımda oluşabilecek performans düşüşünün önüne geçilmiş ve BT masasına gelecek yardım telefonlarının oranında azalma ve daha verimli çalışma ortamı sağlanmış olmaktadır. Bu da demektir ki zararlı diye tabir edebileceğimiz yazılımın kurulması engellenerek hem ağ yöneticisinin sorunu gidermesi esnasında hem de kullanıcının bu sırada bilgisayarını kullanamamasından ötürü oluşan zaman ve iş gücü …

Teknoloji ve Yazılımla İlgili Özlü Sözler

İnternette dolaşırken bulduğum bir takım güzel sözleri biraraya getirip sizlerle paylaşmak istedim. Benim çok hoşuma gitti, hepsi farklı şekilde yorumlanabilir, tartışılabilir :) No code is faster than no code.
Merb Core Tenent Software: do you write it like a book, grow it like a plant, accrete it like a pearl, or construct it like a building?
Jeff Atwood I will not break my back or my sanity on Windows troubleshooting any more.
Jamis Buck Premature parameterization is the square root of all evil.
Sean McGrath I do believe I have post-traumatic Java syndrome.
Renae Blair Deleted code is debugged code.
Jeff Sickel Good software architects are like condoms… bad software architects are like Viagra.
Sidan Nobody hates software more than software developers.
Jeff Atwood Longevity is a big part of credibility.

HttpWatch ile Sniffing

Tüm web uygulamaları, Http veya Https protokolleri üzerinden çalışırlar. En basit uygulamada bile HTML sayfasının üzerindeki grafikler ve scriptler için web sunucusuna birden fazla Http Request gönderilir. Dolayısı ile profesyonel uygulamalarda, tarayıcı ile web sunucusu arasındaki Http paketlerinin incelenebilmesi oldukça önemlidir. En çok kullanım alanları; Arıza arama (Trouble shooting) Performans ayarlama (Perfermance tuning)  Web sitesinden akan bilgilerin güvenliği olup olmadığını inceleme HttpWatch programı, Internet Explorer ve Firefox gibi tarayıcılarla entegre çalışarak, web sayfalarına her erişimde gelen-giden Http paketlerinin izlenmesini sağlar. Eğer https üzerinden güvenli bir siteye bağlanırsanız, kullanıcıların göreceği şekilde paketleri otomatik olarak decrypt eder. Geleneksel network izleme programları sadece düşük seviye network verilerinin (low-level data) izlenmesini sağlarken, HttpWatch programı optimize edilmiş Http verilerinin hızlı ve anlaşılabilir şekilde gör…

OPENXML ile SQL Veritabanında XML Verilerinin İşlenmesi

OPENXML, bir XML belgesi için bize bir rowset görünümü sunarak, Sql Server’da XML verilerinin parse edilebilmesini sağlamaktadır. Parse sonrasında, bu verileri sql sorgularımızda kolaylıkla kullanmamız mümkündür. Özetle; XML içerisindeki verilerin tıpkı veritabanı tablolarındaki satırlar ve sütunlar gibi davranmasını sağlamış oluyoruz. OPENXML fonksiyonu “sp_xml_preparedocument” sistem stored procedure’ü ile birlikte kullanılmaktadır. Bu prosedür, verilen xml içerisindeki düğümlerin ağaç şeklindeki görünümünü bellek üzerinde oluşturur ve bu çıktı OPENXML fonkiyonu için girdi olarak kullanılır. Bu işlem sırasında  kullanmak isteğimiz XML elementlerine ilişkin derinliği yani XPATH’i belirtmemiz gerekmektedir. OPENXML komutunun avantaj ve dezavantajları aşağıdaki gibidir; Avantajları:
Openxml ile xml’den verileri işlemek hızlıdır. XML belgelerini stored procedurelerde datasource olarak kullanmak içinde oldukça kullanışlıdır.

Uzaktan Eğitim ve Avantajları

Uzaktan eğitim, özel öğretim teknikleri kullanılarak, değişik lokasyonlar üzerinden, farklı teknolojilerle iletişim sağlayan, kurumsal yapılanmayı gerektiren, planlanmış öğrenme sürecidir. Günümüzde, teknolojinin gelişmesi ile birlikte, internet üzerinden de eğitim verilmesi mümkün hale gelmiştir. Çeşitli kaynaklarda, Online Eğitim, Web Eğitimi, E-Eğitim,Distance Learning olarak da geçmektedir. Avantajlarını aşağıdaki gibi sıralayabiliriz; Genel olarak maliyetleri düşürür. İlk yatırım maliyetlerinden sonra, alınan araç-gereçlerden, oluşturulan öğretme-öğrenme sistemlerinden ve standart eğitim paketlerinden çok kişi yararlandığından, eğitim veren ve eğitimi alan açısından maliyetler minimize edilmektedir. Uzaktan eğitim, genel eğitim masraflarında önemli yer tutan yol masraflarını ve diğer harcamaları önemli derecede azaltmaktadır. Uzaktan eğitim sayesinde zaman ve mekandan bağımsız hale gelinir. Kullanıcılar istedikleri zaman, istedikleri yerden eğitim alabilmektedirler.

Web Servisleri – Bölüm 2

İlk yazımızda bir web servisi yaratmış ve Sample_Dataset isimli bir fonksiyon eklemiştik. Bu yazımızda, web servisinin istemciler tarafından çağrılması ile ilgili bilgiler vereceğiz. Web Servisleri için İstemciler
Bir web servisini oluşturulduktan sonra bu servisi kullanarak, servisin sunduğu işlevleri kullanacak istemciler olacaktır. İstemcinin Web servisiyle haberleşerek yaptığı seçenekler veya yolladığı veriler serviste işlenerek istemciye geri yollanmaktadır. Web servisine bağlı istemci sayısı birden fazla da olabilir. Bir istemci oluşturduğumuzda bu bir Windows uygulaması, web sayfası veya başka bir Web servisi olabilir. Bir istemci öncelikle Web servisine nasıl ulaşacağı bilgisine sahip olmalıdır. Daha sonra istemci WSDL ile sayfanın bilgilerine ulaşıp iletişimi sağlayacak "proxy" sınıfını oluşturur ve buradan türettiği nesneler yardımıyla Web servisinin sunduğu hizmetlere erişebilir.

XML’in Özellikleri ve Yaklaşımlar

İlk yazımızda, XML’in tarihteki varoluş sürecinden bahsetmiştik. Bu yazımızla birlikte yavaş yavaş teknoloji detaylarına girmeye başlıyoruz.
1. XML yapısal bir text formatına sahiptir
Avantajları:
Bu doğal özelliği sayesinde, içerik bilgisinin yanı sıra, içeriğin ne anlam taşıdığını (metadatasını) yapısal bir formatta tutar. Örneğin bir kitabı tanımlayan elemanları; başlığı, yazarı, bölümleri, bölüm yazıları ve kataloğudur. Bir bölüm yazısını tanımlayan elemanlar ise paragrafları, satırları ve dipnotlarıdır. Kitabı bu şekilde yapısal tanımlayan bir döküman yaratmak, hem makine hem de insan tarafından okunabilirlik sağlar. Eğer yazardan, kitabın katalog bölümünde bahsedilirse, yapısallık bozulmuş olur. Çoğu metin dosyası bu önemli avantaja sahip değildir. Sadece içerik bilgisini ya da en fazla, buna ek olarak, ini uzantılı dosyalardaki gibi, tek seviyeli metadata bilgisini tutarlar. Sadece içerik bilgisi tutan dosyalarda verileri ayırmak için virgül ve benzeri karakterler kullanılır. Y…

XML Teknolojisi Tarihçe

1967 yılında Kanada Hükümeti Baskı Ofisinde düzenlenen bir toplantıda, William Tunnicliffe, dökümanlarda, iç içe geçmiş içerik ve format bilgilerinin, birbirinden ayrılması gerektiğini anlatan bir konuşma yaptı. 1968’de New York’lu bir kitap yayımcısı, Stanley Rice, kitap yazarları için, döküman formatlarını standart haline getirmek amacıyla bir etiket seti hazırladı. Bu çalışmaya, Grafik Haberleşme Derneği (GCA , Graphic Communications Association), sponsor oldu ve etiket seti kavramının geliştirilmesini sağladı. GCA GenCode komitesi, etiketleme ile işaretleme mantığını birleştirerek, dökümanların, hiyerarşik yapıya sahip olacağını gösterdi. İlk resmi işaretleme dili olarak gösterilen GML (Generalized Markup Language), 1969 yılında, yasal belgelerin kolay bir şekilde paylaşılabilmesi ve taşınabilmesi amacıyla, IBM’den Goldfarb, Mosher ve Lorie üçlüsünün yaptığı araştırma geliştirme çalışmaları sonucunda ortaya çıkmıştır. GML’in temeli, GCA GenCode komitesinin yaptığı çalışmalara dayan…

Build Automation and Continuous Integration

Başta XP (eXtreme Programming) olmak üzere, çevik yazılım geliştirme süreçlerinde; set otomasyonu ve sürekli tümleştirme (Build Automation and Continuous Integration) işlemleri önemli bir yer tutmaktadır. Bu işlemlerin temel amacı, set yapımı ve kod entegrasyonu maliyetlerini düşürmektir. Ek olarak, ileride yapılacak geliştirmelere bağlı olarak değişim maliyetlerini düşürmek hedeflenmektedir. Büyük ve kapsamlı projelerin set yapım süreçleri de aynı derecede karmaşıktır. Farklı birçok kişi ya da grupların çalışmış olduğu projelerin ve dosyaların bir araya getirilmesi, entegre edilmesi ve uygulamaların test edilmesi yüksek maliyetler oluşturmaktadır. Bu işlemlerin süreklileştirilmesi ve otomatikleştirilmesi, ayrıca yazılım geliştirme süreçlerinin bir parçası haline getirilmesi, önemli kazanımlar getirecektir. İşte tam da bu noktada FinalBuilder gibi çeşitli uygulamalar kullanılmaktadır. FinalBuilder, Vsoft Technologies firmasının geliştirmiş olduğu görsel olarak oluşturulabilen scriptler…

UML ve Modelleme – Bölüm 3 (Use Case Diyagramlar)

Önceki iki makalemizde (1, 2) UML’e genel olarak değinip ve modellemede kullanacağımız dokuz diyagram hakkında bilgiler vermiştik. Bu makalemizde Use Case diyagramından detaylı bahsedeceğiz. Öncelikle, genel Use case diyagramının tanımını hatırlayalım. “Bir kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğudur.” Ivar Jacobson Senaryo tanımı için der ki:
“Aktörle sistem arasında gerçekleştirilen, sonucunda aktöre farkedilir getirisi/ faydası oluşan etkileşimli diyalogdur. ” UML Use Case Diyagramları  sistemin işlevselliğini açıklamak amacıyla kullanılır. Sistemin birbirinden ayrı özelliklerinin detaylarını göstermekten ziyade, Use Case Diyagramlar, tüm mevcut işlevselliği göstermek için kullanılabilir. Buradaki en önemli noktalardan biri,   Use Case Diyagramlar temelde sequence diyagram ve akış diyagramlarından farklıdır. Use Case diyagramlar dört ana elemandan oluşmaktadır. Aktörler, Sistem (Proje kapsamını belirtir), Use Caseler ve bunlar arasındaki ilişkiler. Şekil…

FMEA (Failure Mode Effect Analysis) – Bölüm 2

İlk makalemizde FMEA’ya genel giriş yapmıştık. Bu makalemizde FMEA türlerine değineceğiz. FMEA temel olarak 4’e ayrılır: Sistem FMEA Tasarım FMEA Proses FMEA Servis FMEA 1. Sistem FMEA Sistem ve alt sistemleri analiz ederek, sistemin eksiklerinden doğan sistem fonksiyonları arasındaki potansiyel hata türlerini belirlemeye odaklanır. Hedefi, sistemin kalitesini, güvenirliğini ve korunabilirliğini artırmaktır. Sistem FMEA’nın faydaları şunlardır: Sistemi etkileyen potansiyel problemlerin bulunabileceği alanlar daralır. Sistem içerisinde uygulanacak prosedürler için bir temel oluşturulmasına yardımcı olur. Sistem içerisindeki fazlalıkların tespit edilmesine yardım eder. Optimum sistem tasarım alternatiflerinin seçilmesinde yol gösterir. 2. Tasarım FMEA Tasarım hatalarından doğan hata türlerine yönelik olarak üretime başlamadan önce ürünlerin analiz edilmesinde kullanılır. Hedefi, tasarım kalitesini, güvenirliğini ve korunabilirliğini artırmaktır. Tasarım FMEA’sının tamamlanmış olarak kabul edilebil…

FMEA (Failure Mode and Effects Analysis) – Bölüm 1

FMEA (Failure Mode and Effects Analysis), Türkçe’ye “Olası hata veya başarısızlık türleri ve etkilerinin analizleri” olarak çevrilebilir. Sistem ve donanım hatalarının etkilerinin belirlenmesi ve bu etkileri değerlendirme amacı ile ABD ordusunda geliştirilmiştir. FMEA metodu, genellikle sistemin yazılımsal parçaların ve donanımsal ekipmanların analizine odaklanır. FMEA analizi yardımıyla olası zarar meydana getirecek durumlar önceden sezilerek önlemler geliştirilir. Böylece olası zararların artış olasılığı da giderilmiş olur. FMEA çalışmasında, yeni bir ürün geliştirirken veya dizaynı oturmuş bir üründe önemli bir değişiklik veya geliştirme yapılırken, prototip üretiminde ya da seri üretimde özellikle sonuncu kullanıcıya ulaşabilecek olası hatalar, bunların cinsi, sebepleri, etkileri, kritikliği, frekansı, ortaya çıkma sıklıkları, tahmin edilebilir. FMEA terimi bünyesinde bir grup sistematik faaliyeti barındırır. Bu faaliyetler 3 ana grupta incelenebilir; Bir ürünün tasarımı,imalatı vey…

Proje Yönetimi – Bölüm 4 (Projeler Neden Başarısız Olur?)

Yazılım projelerini başarısızlığa uğratan çeşitli nedenler sayılabilir; Müşteri memnuniyetsizliği Projeler, müşterilerin ve son kullanıcıların gereksinimlerini tam anlamıyla karşıladıkları zaman başarılı sayılırlar. Proje bütçeye uygun ve zamanında bitmiş bir proje olsa bile müşteri memnuniyeti üst düzeyde değilse başarılı değildir. Projenin zaman ve bütçe kısıtlarının fazlasıyla aşması Proje ekibinin, proje kısıtlarını göz önünde bulundurmadan geliştirmeleri başarısızlığı da beraberinde getirecektir. Bütçe ve zaman, proje kısıtlarından en önemlileridir. Proje, uygun olmayan bir bütçe ve/veya tahmin edilen zamandan çok sonra tamamlanırsa başarılı kabul</CITY> edilmez. Gereksinim analizlerinin proje genelindeki belirsizlikler yüzünden gerektiği gibi yapılamaması ve bunun neden olduğu sürekli değişiklikler Gereksinim analiz süreci, yazılım mühendisliği disiplinlerinin en önemli safhalarından biridir. Proje takımı, analiz süresince gereksinimleri dikkate alarak, ürün…

Web Servisleri – Bölüm 1

Web servisleri,  web üzerinden servis veren program parçalarıdır. Bir kullanıcının, HTTP protokolü üzerinden web servisini kullanmasına RPC (Remote Procedure Call) denmektedir. HTTP üzerinden yapılan bu çağrımlara karşı SOAP (Simple Obect Access Protocol) dediğimiz protokol ile XML çıktıları üretilir. Bu sayede standart bir veri paylaşım aracı olan XML ile istediğimiz verileri alıp kullanırız. SOAP standartları, W3C standartlar komitesi tarafından belirlenmiştir. Bütün bu standartları uygulamaya geçiren SOAP sayesinde web servisine, platformdan bağımsız çağırımlar yapılabilmektedir. Yani .NET ortamında geliştirilen bir web servisine JAVA ile geliştirilen bir programdan ulaşmak mümkündür. SOAP dışında bazı standartlar da vardır, bunlar XML, WSDL, DISCO ve UDDI olarak sıralanabilir. XML, web servislerinin veriyi sunmak için kullandığı bir standarttır. WSDL (Web Service Description Language), web servisinin sunduğu arayüzü tanımlamak için kullanılır, bir web servisinde bulunan fonksiyonla…

UML ve Modelleme – Bölüm 2 (Diyagramlar)

Bir önceki makalemizde UML’e giriş yapıp özelliklerinden ve diyagramların neden kullanıldığından bahsetmiştik. Bu makalemizde diyagram türlerine değineceğiz.UML modellemede nesneler arasındaki ilişki kurmak için gereken 9 adet diyagram türü bulunmaktadır.
Şekil 1. UML Model ve Diyagramlar 1. Use Case Diyagram:  Bir kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğudur. Use case diyagramlarda use case’ler ve aktörler adını verdiğimiz iki ana bileşen bulunmaktadır.
Şekil 2. Use Case Diyagram

Veri Madenciliği

Bilgi sitemleri üzerinden üretilen veri miktarının büyük  artış  gösterdiğini ve  firmaların veritabanlarının  boyutlarının  terabytelar seviyesine ulaştığını  görmekteyiz.  Veritabanlarındaki teknolojik gelişmeler ve hacimlerindeki olağanüstü artış, firmaları,  bu verilerden nasıl faydalanılacağını ve bu  verilerin  nasıl  anlamlı hale  getirileceği  sorunuyla  karşı  karşıya  bırakmıştır. Bilgisayar  sistemleri  ile  üretilen  bu  veriler tek başlarına  değersizdirler.  Ancak belli  bir amaç  doğrultusunda  işlendikleri  zaman  anlamlı  hale  gelirler. İşte ham  veriyi  bilgiye veya anlamlı  hale  dönüştürme  işini veri madenciliği ile yapabiliriz.

Sanal POS (V-POS)

Web üzerinden ödeme söz konusu olduğunda, sanal POS’lar devreye girer. Klasik alışverişlerde kullandığımız POS  (Point of sale - ödeme noktası) cihaz ve sistemlerinin, web siteleri üzerinden alışveriş yapmaya olanak sağlayan şekline sanal POS-VPOS (Virtual point of sale) denmektedir. Kısaca “Internet´e uyarlanmış POS da diyebiliriz”. Internet üzerindeki alışverişlerinizde kredi kartı ile ödeme yapabilmenizi on-line olarak sağlayabilmektedir. Üye işyeri için, müşterinin yaptığı ödemeler VPOS sisteminden yararlanılan bankadaki firma hesabına geçmektedir. Sanal POS ile alıcı-satıcı ya da satıcı-tedarikçi arasında online bir ödeme sistemi ve altyapısı kurulmuş olur. Sistem basit olarak, firmanın web sitesi üzerinden bilgilerini giren alıcının banka ve kredi kuruluşlarında olan hesabından, aldığı ürün veya hizmetin bedeli olan paranın firmanın kendi banka hesabına geçmesine dayanır. Ürün ve hizmetlerini web üzerinden pazarlamayı düşünen bir firma, öncelikle ticari hesabının bulunduğu bir b…

UML ve Modelleme – Bölüm 1

Modelleme bir mühendislik tekniğidir. Model sayesinde anlaşılması güç yazılımları basit bir dille ifade edebiliriz. Bu da yazılımın anlaşılmasını kolaylaştırır ve hataları kolaylıkla görüp en düşük seviyeye indirgememizi sağlayacaktır. UML nedir? UML’ in Türkçe deki karşılığı “Birleşik Modelleme Dili” olsa da aslında bir programlama dili değil yazılım mühendisliğinde nesne tabanlı modellemede kullanılan standart olmuş görsel modelleme dilidir. UML’in tarihine söyle bir göz atacak olursak : 90’lı yıllarda yazılım mühendisliğinde birbirine yakın en çok tercih edilen 3 yöntem ön plana çıkmıştır. 1991 yılında Grady Booch tarafından Booch,  aynı dönemde James Rumbaugh   tarafından OMT (Object Modeling Technology) ve 1992 yılında Ivar Jacobson  tarafından OOSE (Object Oriented Software Engineering) modelleme dili geliştirildi.  Bu üç yönteminde birbirine göre artı ve eksileri vardı.  Bu dönem yazılım mühendisliğinde “METHOD SAVAŞLARI” olarak  bilinmektedir. Method��������…

ASP.Net Durum Yönetimi – Bölüm 2 (State Management)

Sunucu Tabanlı Durum Yönetimi Seçenekleri İlk makalemizde istemci tabanlı durum yönetimini anlatmıştık. Bu makalemizde, sunucu tabanlı  durum yönetimine ait 3 seçeneğin üzerinde duracağız; Application state Session state Profile Properties Sunucu tabanlı durum yönetimi ile istemci tarafındaki durumu korumak için gönderilen bilgi azalır. Ancak sunucunun kaynaklarını kullanma maliyetini ortaya çıkartır. Application State ASP.Net uygulaması bazında değerlerin saklanabilmesine olanak sağlar. Application state, web uygulamasının bütün sayfalarından erişilebilir olan global bir depolama mekanizmasıdır. HTTPApplicationState sınıfının bir örneğinde saklanmak istenen veriler tutulabilir. ASP.NET uygulaması, IIS çalıştıkça application değişkenlerini kullanabilir. Tarayıcı kapatıldığında bile uygulamaya özgü değişkenler bellekte kalır. Application state sunucunun belleğinde tutulur. Bilgiye ulaşmak ve kaydetmek veritabanına kaydetmekten daha hızlıdır. Session state gibi tek bir kullanıcının oturu…

ASP.Net Durum Yönetimi – Bölüm 1 (State Management)

Web uygulamaları stateless http protokolü üzerine kurulmuştur.Geleneksel web programlamada, sayfa sunucuya her gönderilişinde sayfanın bir instance’ı yeniden yaratılır. Sayfa ve  kontrollerle ilgili bilgiler her sunucuya gidişte kaybolur. Bu kısıtlamalardan kurtulmak, veriyi, sayfa ve uygulama bazlı koruyabilmek için ASP.Net  bir takım özellikler sunar; İstemci tabanlı View state Control state Hidden fields Cookies Query strings Sunucu tabanlı Application state Session state Profile Properties View state, control state, hidden fields,cookies ve querystring veriyi istemci tarafında saklarken application state, session state ve profile properties veriyi sunucunun belleğinde tutar. Bu makalemizde “istemci tabanlı” durum yönetim seçenekleri üzerinde duracağız. Bir sonraki makalemizde ise “sunucu tabanlı” durum yönetim seçeneklerini inceleyeceğiz. İstemci Tabanlı Durum Yönetimi Seçenekleri
1.View State Viewstate sunucu tarafına giden istekler arasında sayfanın değişen değerlerinin taşınmasını s…

Proje Yönetimi – Bölüm 3 (Proje Yöneticisi)

Proje ekibini ve rolleri anlattığımız yazımızda kısaca proje yöneticisinden bahsetmiştik. Bu yazımızda görev tanımının detaylarına ineceğiz. Proje yöneticisi; “Riskleri, kaynakları ve kalite standartlarını değerlendirerek, projeyi planlayan, takım organizasyonunu sağlayan ve ilgili teknik ekibi yönlendirip, gerektiğinde motive eden kişidir”. Proje yöneticisinin yerine getirmesi gereken başlıca görevler aşağıdaki gibidir; Kaynakları Yaratır Proje yöneticisi, proje süresince gerekecek tüm kaynakları (kişiler, eğitimler, donanımlar, materyaller vb.) proje başlamadan tahminler. Proje ilerledikçe, yeni gereksinimlerin neden olduğu yeni kaynaklara ihtiyaç duyulabilir (yeni kişilerin projeye eklenmesi, analiz edilmeyen risklerin projeye etkisi, yeni donanım ihtiyacı vb.). Bu durumlarda, proje yöneticisi zaman kaybetmeden gerekli kaynağı bulmalıdır. Kaynağın elde edilmesinin gecikmesi, projede aksaklıklara neden olacaktır. İletişimi Sağlar Proje yöneticisi, üst düzey yöneticil…

Proje Yönetimi – Bölüm 2 (Proje Ekibi ve Roller)

Proje Yönetimi ile ilgili ilk makalemizde Proje Yönetimi Temel Kavramları üzerinde durmuştuk. Bu makalemizde, proje ekibi ve rol dağılımlarını anlatıyor olacağız. Yapılan araştırmalar ve edindiğimiz tecrübeler, yazılım projelerini başarıya götüren en önemli faktörün proje ekibinde görev alan kişiler olduğunu göstermektedir. Proje yaşam döngüsü süresince, istenildiği kadar rahat çalışma ortamı yaratılırsa yaratılsın, en pahalı analiz, dizayn, geliştirme, test ve yönetim araçları kullanılırsa kullanılsın, doğru yetenek ve niteliklere sahip, entegre bir  proje ekibi olmadıkça, projenin başarıya ulaşması beklenemez. Yazılım projelerinin başlatılmasında, geliştirilmesinde ve yaşatılmasında, proje ekibindeki kişilerin rolleri ve birliktelik mekanizmaları, SEI  enstitüsü tarafından PM-CMM (İnsan Yönetimi – Yapılabilirlik Olgunluk Modeli) modelinde tanımlanmıştır. Bu model, CMM “yazılım olgunluk modeli” nin bir uzantısı olarak geliştirilmiş olup, aşağıdaki anahtar alanları (PM-CMM KPAs) incel…

Proje Yönetimi – Bölüm 1 (Temel Kavramlar)

Proje yönetimi, hedef, maliyet ve zaman kriterlerine dikkate alarak, mevcut kaynakları verimli bir şekilde organize etme ve kontrol etme sürecidir. Proje yönetimi ile ilgili bu ilk yazımızda, yazılım projelerindeki temel kavramlara kısaca değineceğiz. Yazılım projelerinin kalitesi veya kalitesizliği, temelde 4 ana bileşene ve bu bileşenlerin birbirleri ile olan ilişkilerine bağlıdır.
Bu bileşenlerden herhangi birisinde meydana gelecek aksaklık veya bileşenler arası bağlantı kopukluğu, tüm projenin başarısızlığa uğramasına neden olabilir. 4P olarak da adlandırılan bileşenler aşağıdaki gibidir; Kişiler/Kaynaklar (People) Ürün (Product) İşleyiş Mekanizması (Process) Proje (Project) Şekil 1. Proje Yönetimi Temel Bileşenleri

ASP.NET Güvenlik Üzerine

Yazılım mühendisliğinde “güvenlik” birbirinden çok farklı ve geniş anlamlar ifade eden bir kavramdır. Fakat güvenliği ASP.NET özelinde ele alırsak, güvenliğin erişim kontrolü temelinde yapılandırıldığını görürüz. Bu yapı, kimlik belirleme (Authentication) ve yetkilendirme (Autharization) temelinde yönetilir. Kimlik Belirleme(Authentication) Metodları Kullanıcı kimlik biligisini belirlemek te kullanılan yöntemler aşağıdaki gibidir; Forms (Cookie) Authentication Windows Authentication Basic Digest Integrated (NTLM, Kerberos) Passport Authentication ASP .NET ‘te bu metotlardan herhangi birisinin uygulanabilmesi için web.config dosyasının authentication elementinin mode özelliğinde seçilir. <authentication mode="Windows | Forms | Passport | None" />

Web Uygulamaları İçin Kullanılabilirlik Standartları

Kullanılabilirlik, kısa bir tanımla, kullanıcıların etkileşim içinde olduğu sistem arayüzlerinin "öğrenilebilir", "etkin", "hatırlanabilir", "az sayıda hatadan oluşan" ve "beğeni hissi veren" özelliklerde olmasını kapsar. Web sitelerinin bu kriterlere uygunluğunu değerlendirmek için farklı değerlendirme yöntemleri ve kriterleri geliştirilmiştir. Her yöntemin farklı üstünlükleri, zayıflıkları, uygulama zamanları ve kullanım durumları vardır. Web uygulamaları için daha sık kullanılan, kullanılabilirlik standartları aşağıdaki gibidir;

ASP.NET Session Timeout Bilgilendirme/Tidy Logout

Web projeleri içerisinde Web.Config dosyasında timeout süresi belirleyerek kullanıcının belirli bir süre işlem yapmaması sonucunda onun otomatik olarak log out olmasını sağlarız: <sessionStatemode="InProc"cookieless="false"timeout="1"/> timeout özelliği session ile ilgili özelliklerin belirlendiği sessionState tag’i içerisinde belirlenir. Timeout zamanını sessionState içerisinde timeout elementine dakika olarak yazıp belirleyebiliriz.  Bu değer 525,601 (bir yıl)’ den büyük olamaz ve açılan yeni projelerde default 20 dakika olarak gelir. Kullanıcının timeout’a düşeceği zamanı belirlemek isteyebileceğimiz gibi timeout olmadan önce kullanıcının uyarılması ya da bazı işlemlerin (ekrandaki bilgileri kaytdetme, log tutma gibi) yapılmasını da isteyebiliriz. Bunun için timeout süresi dolmadan belirlenen kadar süre önce bir fonksiyonun çalışması ya da bir exception oluşması gereklidir. Javascript fonksiyonları olan “setTimeout” ve “setInterval” timeout süresi do…

Team Foundation Server – Genel Bakış

Team Fondation Server (TFS); farklı disiplinler gerektiren Yazılım, Test, Destek, Proje Yönetimi gibi tüm yazılım süreçlerinde kullanılmak üzere tasarlanmış, Microsoft’un geliştirmiş olduğu yazılım süreç yönetimi uygulamasıdır. Team Foundation’ın ilk amacı, takım içerisindeki işbirliğini arttırarak ürün gelişimini kolaylaştırmak ve verimlilik sağlamaktır. Genel olarak TFS, kurumsal projeler için tasarlanmıştır. Takım içerisindeki iletişimi ve buna bağlı olarak verimi arttırmayı hedeflemiştir. İş durumunu izleme, takım rollerini yönetme, iş süreçlerini çıkartma ve sundugu bir çok araçla proje yönetimini kolaylaştırmada etkin rol oynar TFS’in Mimari Yapısı
Uygulama Katmanı
TFS; Service oriented bir mimariye sahiptir. Temel uygulamalar için oldukça geniş bir service seti sunmaktadır. Build, Services, VersionControl, Warehouse, WorkItemTracking gibi bir çok web service kütüphanesini barındırmaktadır. Ayrıca SharePoint alt yapısı üzerine inşa edildiğinden bir çok web ve Windows service leri u…

SQL Server 2008 Yenilikler – Bölüm 3 (Loglama/CDC)

Bir önceki yazımızda, SQL Server 2008 ile gelen Auditing ile loglama mantığını anlatmıştık. Bu yazımızda, diğer bir loglama özelliği olan CDC (Change Data Capture)’den bahsedeceğiz. CDC özelliği ile row bazında yapılan tüm işlemler tarihsel bilgilerle saklanabilmektedir. Yani hangi kayıtlar üzerinde hangi tarihler arasında ne gibi işlemler yapıldığı raporlanabilir. Tüm CDC işlemleri T-SQL komutları ile yapılır. Şekil 1. CDC akışı 1.Database seviyesinde CDC nin açılması
Execsys.sp_cdc_enable_db
2.İstenilen tablo için CDC nin aktif hale getirilmesi
EXECsp_cdc_enable_table'dbo','TBLILCE', @role_name =NULL, @supports_net_changes =1
Tablo için CDC aktif hale getirilince, tablo yapısıyla aynı olan ve ilave olarak 5 tane sahanın eklendiği yeni bir tablo yaratılır. Tüm DML işlemlerinde (Insert, update, delete) buraya yeni bir kayıt atılır. Yeni açılan tablonun isimlendirmesi şu şekildedir. cdc.dbo_<TABLOADI>_CT
Örnek: TBLILCE tablosu için cdc.dbo_TBLILCE_CT