C#nedir?com
 
YAZAR HAKKINDA
Burak Selim Şenyurt
Burak Selim Şenyurt
http://www.buraksenyurt.com
İletişme geçmek için tıklayın.
303 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: asp.net derleme dosyalar farkli oldugu otomatik public solution solution’ studio.net tanimlanmis uygulama verilen visual yazilmis ASP.NET Burak Selim Şenyurt
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : ASP.NET
Yayınlanma Tarihi : 9/1/2004
Okunma Sayısı : 10248
Yorum Sayısı : 1     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Selman UZUN
Web Kameralı Basit Güvenlik Sistemi
Selman UZUN
yazının devamı >
Koray Kırdinli
C# ile Konfigürasyon Dosyaları
Koray Kırdinli
yazının devamı >
Turhal Temizer
Visual Studio 2010 – Microsoft Report Raporlarına Resim Ekleme
Turhal Temizer
yazının devamı >
Turhal Temizer
Silverlight Business Application – Nedir?
Turhal Temizer
yazının devamı >
Turhal Temizer
LINQ to SQL - JOIN
Turhal Temizer
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Tembel Yazılımcı'nın Seyir Defteri
Test Driven Development ve Unit Testing 7/8/2010
Burak Selim Senyurt(MVP)
Workflow Foundation Öğreniyorum - Ders 13 - Workflow Service için İstemci Geliştirmek 7/30/2010
Turhal Temizer 'in Blogu
SharePoint 2010–Virtual Machine ile Çalışmak 7/30/2010
Turhal Temizer 'in Blogu
İş Değişikliği–B/S/H Group 7/30/2010
Burak Selim Senyurt(MVP)
NedirTv?com Yeni Arayüzü ile Yayında 7/23/2010
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Her Yönüyle C# - Sefer Algan
Asp.Net 2.0 ve Code Klasörü
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bu makalemizde, AspNet 2,0 ile gelen tanımlanmış klasörlerden (defined folders), Code klasörünün nasıl kullanıldığını incelemeye çalışacağız. Asp.Net 1.0/1.1 ile uygulama geliştirirken, solution içindeki herşey bir dll içinde (assembly) toplanır. Asp.Net 2.0 ise, dosya tabanlı (file-based) yaklaşım adı verilen yeni bir teknik kullanır. Bu tekniğe göre, solution, dosyalar ve klasörler sisteminden oluşmaktadır. Bu sistemin faydası, otomatik derleme özelliğine sahip olmasıdır. Yani, solution içerisine herhangibir dosya eklenmesi halinde (örneğin bir sınıf), Visual Studio.Net 2005 bu dosyayı otomatik olarak derler ve solution’ ın her zaman dinamik olarak güncel kalmasını sağlar. Bir başka deyişle yeni eklenen dosya için, solution’ ın baştan derlenmesi gerekmez. Bu yüzden, Asp.Net 2.0 ile uygulama geliştirirken ilk dikkati çeken unsur, oluşturulan sanal klasör altında eskiden olduğu gibi bin klasörünün ve bir dll dosyasının olmayışıdır.

Asp.Net 2.0 ile geliştirilen bu yeni teknikte, çeşitli önceden tanımlanmış (predefined folders) özel klasör seçenekleri mevcuttur. Bunlardan biriside Code klasörüdür. Code klasörü, sınıf dosyalarımız, web servisleri için kullanılan wsdl dosyalarımız, türlendirilmiş dataset’ ler (typed datasets) için kullanılan xml şemaları ve Data Component’ ler tipindeki dosyaları barındırılabilir. Code klasörü içerisine konulan bu dosyalar, Visual Studio.Net 2005 ortamında otomatik olarak tanınır. Ayrıca, Visual Studio.Net 2005, bu dosyaları kullanarak, sınıflara derler, proxy sınıflarını veya türlendirilmiş veri sınıflarını oluşturur. Bu yapıyı aşağıdaki şekil ile daha kolay anlayabiliriz.



Şekil 1. Genel yapı.

Dilerseniz konuyu daha iyi anlayabilmek amacıyla basit bir örnek geliştirelim. Bunun için Visual Studio.Net 2005’ de yeni bir Web Site açıyoruz. Daha sonra Solution Explorer’ da solution’ ımız üzerine sağ tıklıyor ve New Folder seçeneğine basarak, yeni bir klasör oluşturuyoruz. Klasörümüze Code ismini verdiğimizde, şeklinin normal klasörlerden biraz daha farklı olduğunu hemen farkedebiliriz. Nitekim Code klasörünün Solution için özel bir anlamı vardır.



Şekil 2. Code klasörünün eklenmesi.

Şimdi default.aspx form’ unuda aşağıdaki gibi oluşturalım. Bu web sayfasında basit olarak, yarıçapı verilen bir dairenin alanı hesap edilecek. Bu hesaplama işlemini yapan metodumuzu barındıracak bir sınıfımız olacak ve bu sınıfımız, Code klasörü içerisinde yer alacak.



Şekil 3. Form tasarımımız.

Şimdi, Code klasöründe sağ tıklayalım ve Add New Item’ i seçelim. Karşımıza aşağıdaki dialog penceresi çıkacaktır.



Şekil 4. Code klasörü için yeni bir öğe eklemek.

Bu dialog pencersinde, Code klasörüne ekleyebileceğimiz dosya tipleri yer almaktadır. Biz class tipini seçeceğiz. AlanHesap.cs dosyamızın kodları aşağıda görüldüğü gibidir.

using System;

public class AlanHesap
{
    public AlanHesap()
    {

    }
    public double DaireAlan(double yaricap)
    {
        return 3.14 * (yaricap * yaricap);
    }
}
Bu noktadan sonra, solution’ ımızı hiç derlemeden, AlanHesap sınıfımızı kullanabilir, bu sınıftan nesne örnekleri yaratabilir daha da önemlisi intelli-sense özelliğinden derhal faydalanabiliriz.



Şekil 5. Intelli-Sense Özelliği.

Bu noktadan sonra, uygulamamızı oluşturduğumuz klasöre bakarsak aşağıdaki yapıda olduğunu farkederiz. Dikkat edecek olursanız Asp.Net 1.0/1.1’ deki gibi kalabalık bir topluluk yoktur. En önemlisi Bin klasörünü veya tüm uygulamanın tiplerine ait manifesto bilgilerini ve kodları barındıran bir dll görememekteyiz.



Şekil 6. Klasör Azlığı.

Code klasörü için dikkat edilecek noktalardan birisi, buradaki dosyaların tamamının single assembly olarak ele alınmalarıdır. Yani, bu klasör altındaki tüm dosyalar aynı dil ile yazılmış olmalıdır. Nitekim, klasörümüze vb.net ile yazılmış aşağıdaki class dosyasını eklediğimizi düşünelim.

Imports Microsoft.VisualBasic

Public Class VbSinif

    Public Function Deneme(ByVal yaricap As String) As String
        Return (yaricap)
    End Function

End Class
Bu durumda solution’ ı derlediğimizde aşağıdaki derleme zamanı hata mesajını alırız.



Şekil 7. Hata Mesajı.

Peki çözüm nedir? Büyük çaplı projelerde, farklı .net dilleri kullanılarak geliştirilen sınıfların aynı solution içerisinde kullanılması için ne yapabiliriz? Bunun için, öncelikle Code klasörü içinde her bir dile yönelik olarak ayrı klasörler açmamız gerekir. Aşağıdaki şekilde olduğu gibi.



Şekil 8. Farklı diller için farklı klasörler.

Buradaki alt klasörleri isimlendirmek için belirli bir kural yoktur. Ancak buradaki isimlendirmelerin aynısını Web.Config dosyasındaki <compilation> node’ unda kullanmamız gerekmektedir. Nitekim, otomatik olarak yapılan önceden derleme işlemlerinde, hangi alt klasörlerin kullanılacağının sitenin konfigurasyon ayarlarına yansıtılması gereklidir. Bunun için Web.Config dosyasındaki,

<compilation debug="true">

</compilation>
kısmını aşağıdaki ile değiştirmemiz yeterli olacaktır.

<compilation debug="true">
    <codeSubDirectories>
        <add directoryName ="CSharp"/>
        <add directoryName ="VbDotNet"/>
    </codeSubDirectories>
</compilation>
Şimdi bu işlemlerin ardından default.aspx sayfasına geçtiğimizde, vb.net ile yazdığımız sınıfa erişebildiğimizi ve kullanabildiğimizi görürüz.



Şekil 9. Farklı dil ile yazılmış sınıfa erişim.

Şimdi kodumuzu aşağıdaki gibi geliştirelim ve sayfamızı çalıştıralım.

void btnHesapla_Click(object sender, EventArgs e)
{
    AlanHesap ah = new AlanHesap();
    lblSonuc.Text = ah.DaireAlan(Convert.ToDouble(txtYaricap.Text)).ToString();

    VbSinif s = new VbSinif();
    string deger = s.Deneme(txtYaricap.Text.ToString());
    lblDeger.Text = deger;
}


Şekil 10. Farklı dil ile yazılmış sınıflar bir arada çalışıyor.

Böylece geldik bir makalemizin daha sonuna. Bir sonraki makalemizde görüşmek dileğiyle hepinize mutlu günler dilerim.

Burak Selim ŞENYURT

selim@bsenyurt.com
Makale:
Asp.Net 2.0 ve Code Klasörü ASP.NET Burak Selim Şenyurt
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor