Ana içeriğe atla

Kayıtlar

ÖK etiketine sahip yayınlar gösteriliyor

Visual Studio 2008/2010 Add-In (Solution Item’larına Erişim)

Bir önceki makalemizde bir Add-in projesi nasıl yaratılır , ve Add-in projesinde .Net IDE’sine menüler nasıl eklenir, ona değinmiştik. Bu makalemizde de, IDE içerisindeki solution’un tüm itemlarına nasıl erişebileceğimize ve bu itemlara nasıl eklentiler yapabileceğimize değineceğiz. .Net’in Code modeli sayesinde bir solutiondaki bütün projelere, bu projelerin sınıflarına ve sınıfların içerisindeki propertylerine ve fonksiyonlarına erişilebilir. Aynı zamanda yeni bir sınıf eklenebilir, eklenen yeni sınıflara namespace, import statementleri, değişkenler veya fonksiyonlar gibi birçok kod parçası eklenebilir. Aynı zamanda var olan kodlar üzerinde de değişiklikler yapılabilir. Solution explorerdaki Herbir Itema Erişim 1. IDE’ye Erişim Açtığımız .NET IDE’sinin instance’ı Add-in projesi içerisindeki OnConnection methoduna geçen ilk parametredir. public void OnConnection( object application, .......... Bu parametre OnConnection metodu içerisinde genel bir property’e set edilerek class se...

Birim (Unit) Testinde Dikkat Edilecekler

Bundan önceki yazılarmızda Birim testleri ve TDD (Test Driven Development) ile ilgili genel bilgiler vermiştik. TDD (Test Güdümlü Geliştirme); Production kodunu yazmadan önce test kodlarını geliştirme yaklaşımıdır. Kısa development döngülerinin tekrarlanması üzerine kurulu bir yazılım geliştirme tekniğidir…   Birim (Unit) testleri; Birim testi bir yazılım projesindeki metotların, fonksiyonların doğru çalışıp çalışmadığını anlamak için oluşturulan testtir. Bir testin birim testi olabilmesi için test edilecek birimlerin ayrı ayrı ele alınması gerekmektedir.   Şu andaki tecrübelerimizle (!), gerçek hayatta, Birim testlerinde nelere dikkat etmeliyiz bir göz atalım; Test fonksiyonları küçük ve hızlı olmalı. (Her check-inden sonra çalıştırmak ideal olacağı için.) Otomatik olarak çalışabilir olmalı. Bir buton click ile kolayca çalıştırılabilmeli. Code covarage yüksek olmalı ve ölçülebilmeli, gözlenmeli. Birim testinde hata alınan yer derhal düzeltilmeli. Sadece birimlerin işle...

.NET Framework 4.0 ile Genel Yenilikler – Visual Studio 2010 IDE Yenilikler

Bu kısımda Visual Studio 2010 geliştirme ortamı ile gelen ve ortamı kullanmamızı kolaylaştıracak olan özelliklere göz atacağız. Göz atacağımız özellikler şu şekildedir: Data Tips Breakpoint Intellisense Dump File Data Tips Bildiğimiz gibi data tipler, debug sırasında fare işaretçisini değişkenlerin üzerine getirdiğimizde değişkenlerin değerlerini gösteren yardımcılardır. Visual Studio 2010 ile birlikte datatiplerle ilgili bir takım yenilikler gelmiştir. Böylece data tipler daha kullanışlı hale gelmiştir. Bu yeni özellikler şu şekildedir. Data tiplerin sabitlenebilmesi: Önceden datatipler sadece üzerine gelindiğinde gözüküyordu. Pin butonu yardımıyla istenilen data tipler değişkenin bulunduğu satıra sabitlenebilmektedir. Debug bittiğinde görünmez hale gelen sabitlenmiş datatipler bir sonraki debugta yeniden çıkmaktadır. Datatiplerin altına VS 2010 ile birlikte yorum da eklenebilir. Şekilde pinlenmiş ve yorum eklenmiş bir datatip görülmektedir.

.NET Framework 4.0 ile Genel Yenilikler – Visual Basic 10

Bu bölümde VB 10 ile birlikte gelen yeniliklere göz atacağız. Bu kapsamda bahsedeceğimiz konular aşağıdaki gibidir. Auto-Implemented Properties Collection Initializers Implicit Line Continuation Statement Lambdas Auto-Implemented Properties Vb 10.0 ile birlikte C# da olduğu gibi property tanımlarını get ve set kullanmadan yazabilme imkanı gelmiştir. VB9 ile tanımlanan bir property’nin VB10 ile get ve set kullanmadan nasıl tanımlanabileceği aşağıda gösterilmiştir.

.NET Framework 4.0 ile Genel Yenilikler – C# 4.0

Bu bölümde C# 4.0 ile birlikte gelen yeniliklere göz atacağız. Bu kapsamda bahsedeceğimiz konular aşağıdaki gibidir. Dynamic Typing Generic Variance Named Arguments Optional Parameters COM InterOp Enhancements Dynamic Typing C# 4.0 ile birlikte dinamik tipinde nesnelere kullanılarak dinamik olarak programlamaya odaklanılmıştır. Dynamic anahtar kelimesi C# 4.0 ile birlikte gelen bir kelimedir. Bu anahtar kelime, derleyiciye bu değişkeninin tipinin değişebileceğini ve çalışma zamanına kadar bilinemeyeceğini söylemektedir. Yani Dynamic Language Runtime-DLR mekanizması ile nesnelerin tipleri derleme zamanında değil çalışma zamanında belirlenmektedir. Bir nesnenin metodlarına veya propertylerine nasıl erişiyorsak, dynamic keyword ile yaratılan nesnelerin de property ve metodlarına aynı şekilde erişebiliriz. Tipler dinamik olarak yaratıldığı için çağrılan metod veya property ismi doğru yazılmalıdır. Çünkü metodun veya property’nin geçerli olup olmadığı çalışma zamanında belli olmaktadı...

.NET Framework 4.0 ile Genel Yenilikler – Paralel Programlama

Bu makale serimizde .NET Framework 4.0 ile gelen yenilikleri aşağıdaki ana başlıklarda toparlayıp, özet içerikte anlatmaya çalışacağız; .NET 4.0 ile Paralel Programlama C# 4.0 ile Gelen Yenilikler Dynamic Typing Generic Variance Named Arguments Optional Parameters COM InterOp Enhancements Visual Basic 10 ile Gelen Yenilikler Auto-Implemented Properties Collection Initializers Implicit Line Continuation Statement Lambdas Visual Studio 2010 IDE Yenilikleri Data Tips Breakpoint Intellisense Dump File .NET 4.0 ile Paralel Programlama .Net 4.0 ile birlikte gelen task parallel library ve parallel.for, parallel.foreach ve PLINQ’ya göz atmaya çalışalım. Task Paralel Library .Net 4.0 ile birlikte gelen Task Parallel Library paralleliği soyut bir şekilde gerçekleştirmemizi sağlamaktadır. TPL ile eş zamanlı yürütülen işlemlerin daha basit bir şekilde kodlanabilmesi sağlanmaktadır. Task Paralel Library kütüphanesinde bulunan Task sınıfı ile yeni görevler başlatıla...

Visual Studio 2008’de Kod Metrikleri ve Kod Analizi (Static and Dynamic Code Analyze) – Bölüm 2

İlk makalemizde genel bir giriş yapmış ve kod metriklerinden bahsetmiştik. Kod Analizi aracı yönetilebilir assemblyleri analiz ederek, assemblyler hakkında bilgileri raporlayan bir araçtır. Microsoft .Net Framework Dizayn Kurallarına göre programlama ve dizayn kuralı ihlallerini gösterir. Analiz aracı, kontrol ettiği kurallara uymayan yerleri birer uyarı olarak gösterir. Uyarı mesajları, hangi kuralın ihlal edildiğine ve mümkünse problemin nasıl çözüleceğine dair bilgileri içerir. Kod Analizi Özelliğinin Açılması Solution Explorer’da bir proje seçilip projenin properties’ine girilerek, Code analysis tabına gidilebilir. Şekil 1’deki gibi Enable Code Analysis on Build (defines CODE_ANALYSIS constant) seçeneği işaretlenirse, şekilde gözüken kuralların hepsi kontrol edilecektir. İstenilen kural işareti kaldırılarak devre dışı bırakılabilir. Şekil 1. Code Analysis Tab Kod Metriklerinin Kod Analizine Entegre Edilmesi Maintainability Index, Class Coupling,...

Visual Studio 2008’de Kod Metrikleri ve Kod Analizi (Static and Dynamic Code Analyze) – Bölüm 1

Statik kod analizi, uygulama çalıştırılmadan (derleme sırasında), kaynak kodlarının incelenmesi ve analiz edilmesi anlamına gelmektedir. Visual Studio Team System 2008, statik kod analizi yapabilmek için kendi araçlarına sahiptir. En temel amaç, kod analizi araçlarını kullanarak kaynak kodların standart programlama ve dizayn kurallarına uygunluğunun gözden geçirilmesidir. Kod analizleri, “Buil Automation & Continuous Integration (Set Otomasyonu ve Sürekli Tümleştirme)” sürecinde de önemli bir yerde bulunmaktadır. Biz bu yazımızda, sadece kod metrikleri olarak adlandırılan kurallara değineceğiz. Bir sonraki makalede ise Kod Analizi kısmına bakacağız. Kod Metrikleri (Code Metrics) Kod metrikleri, kaynak kodları incelemek ve çeşitli ölçülere göre yazılımı derecelendirmek için kullanılan matematiksel ve istatistiksel yöntemlerdir. Kod metrikleri ile geliştiriciler hangi tiplerin veya metotların yeniden ele alınması gerektiğini, düzenlenmesi gerektiğini anlayabilirler. Kod metrikleri k...

Bilgiye Erişim Sistemlerinde Arama Kalitesini İyileştirme: Normalleştirme Etkeninin Önemi

Bu makalede Akademik Bilişim 2010’da yayınlanmış olan bir çalışmanın giriş kısmı anlatılmıştır. Bilgiye erişim sistemleri, belge arşivlerinde kullanıcıların isteklerine uygun belgelere, kullanıcıların kolay bir şekilde erişimlerini sağlayan sistemlerdir. Bu sistemlerin temel amacı, kullanıcıların bilgi ihtiyaçlarını karşılamak için, belge arşivlerindeki ilgili (relevant) belgelerin hepsine erişmek, ilgisiz (non-relevant) belgeleri ise çıkartmaktır. İnternetin yaygınlaşmasıyla daha da büyüyen veri havuzundaki bilginin çıkarılması günümüzün en popüler konularından biri olmuştur. Kullanıcıların arama motorlarında yaptıkları sorgulamalarının sonuçlarının kullanıcıların isteklerine en iyi cevabı verebilmesi de büyük önem kazanmıştır. Bilgiye erişim modeli, kullanıcının ihtiyaç duyduğu belgeye ulaşırken, belge arşivindeki sorgulamasını, belgenin içerdiği kelimeler ile yapmasına olanak tanımaktadır. Çalışmada, kullanıcının ihtiyacı olan ilgili belgelere en iyi oranda erişerek arama kalitesini...

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 gi...

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çe...

ASP.NET Sayfa Yaşam Döngüsü (Page Life Cycle)

Asp.NET’in sayfa yaşam döngüsünde istemcinin yaptığı her istekte page nesnesi ve içindeki kontroller yeniden oluşturulur. Bu da sayfanın ve kontrollerinin yaşam döngüsü aşamalarını ntekrarlaması anlamına gelir. HTPP runtime’ın ProcessRequest metodun çağırmasıyla sayfa ve kontrollerin yaşam döngüsü tetiklenir. Yaşam döngüsü bazıları geliştirici tarafından kontrol edilebilecek bazıları da geliştiricinin müdahale edemeyeceği public olmayan aşamalardan oluşur. Kısaca yaşam döngüsü üç ana aşamadan ve bunların alt aşamalarından oluşur. Bu aşamalar; setup postback finalization 1. Setup Aspx sayfasının kaynağındaki sınıfa bakılarak page nesnesi yaratılır. Kontrol ağacı yaratılarak sayfaya bağlanır. Sayfa üzerindeki kontroller, http context, request ve response nesneleri set edilir. Sayfanın neden işletildiği belirlenir (yeni bir istek, postback sonucu oluşan bir istek..). Ve Page nesnesi buna göre kendi içsel durumunu düzenler. Preinit Event IsPostBack, Is...

Javascript Ortamında LINQ Kullanımı

LINQ üzerine yazdığımız giriş yazısında belirttiğimiz gibi linq kullanarak, koleksiyonlar veya diziler üzerinde sql benzeri ifadelerle sorgular yazabilmekteyiz. Dizayn modülünü yazarken, “acaba javascript tarafında da linq kullanabilir miyiz?” sorusu aklımıza geldi. Yaptığımız ARGE çalışmaları sonunda, javascript için yazılan bir linq kütüphanesini kullanmaya karar verdik. Bu kütüphane yardımıyla ile C#’daki linq sözdizimine benzer sorgular yazarak, diziler ve bellekteki nesneler üzerinde rahatlıkla işlem yapabilmekteyiz. Öncelikle basit bir örnek üzerinde kullanımını görelim: Range fonksiyonu verilen başlangıç ve bitiş indexleri arasında integer dizi oluşturur, bu diziden çift sayı olanları aşağıdaki gibi where koşulu ile seçebiliriz. //E--> Linq.Enumerable'ın sembolüdür E.Range(0,10).Where("d=>d%2==0").Select("c=>c")   Tablo1. Basit bir linq javascript kullanımı