.Net Denemeleri

codeSubDirectories

Kimi zaman bir Web Site (Application değil) kodlaması yaparken (Class LibrarySınıf Kütüphanesi değil) birden fazla .Net Framework dilini kullanmak durumda kalınabilir.

Örneğin;
Projede dil değişikliğine gidilebilir. Vb.Net dilinden C# diline geçmek gibi. Bu durumda adım adım ilerlermek daha mantıklı olacaktır. Lakin Web Site ŞablonuTemplate ile uygulama geliştirirken tüm classsınıf lar App_Code klasöründe olmalı ve klasör içinde tek dil uzantılı class dosyaları bulunmalıdır.

Peki böyle bir sorunu nasıl çözebiliriz.

İlk önce;
App_Code klasörü her bil dil için alt klasörlere ayırılır. Kaç farklı dil kullanılacaksa o kadar klasör olmalı.

Daha sonra ise;
Derleyicicompiler ye gerekli bilgileri web.config dosyası ile belirtmek yeterli olacaktır.

<configuration>
    <system.web>
        <compilation debug="false" targetFramework="4.0">
            <codeSubDirectories>
                <add directoryName="vb-codes"/>
                <add directoryName="cs-codes"/>
            </codeSubDirectories>
        </compilation>
    </system.web>
</configuration>

 Ctr + Shft + B

25 Kasım Cuma, 2011 | Asp.net Visual Studio

Start Experimental Instance of Microsoft Visual Studio 2010 SP1

Sıkıntıdan gezinirken (bu genelde MS Windows başlatStart menüsünde olur);
Microsoft Visual Studio 2010 SDK SP1 -> Tool altında Start Experimental Instance of Microsoft Visual Studio 2010 SP1 adında bir kısayol olduğunu farkettim.

Experimental Instance of Visual Stuido

Şu şekilde de çalıştırabilirsiniz:
Experimental Instance of Visual Stuido

Nedir bunun hikayesi diye azıcık araştırdım.

Amaç Visual Studio için bir nevi test ortamı oluşturmakmış.
Örneğin bir Extension'ı denemek istiyorsunu ama çok önemli de bir proje üzerinde de çalışıyoruz ve Extension' dan doğacak bir probleminde Visual Studio'ya yansımasını istemiyoruz. Bu durumda deneyselExperimental olan verisyonu açıyoruz (devenv /RootSuffiz Exp), Extension'ı kuruyoruz ve test ediyoruz. Beğenmedik kaldırıyoruz.. Bu işlem standart olarak kullandığımız Visual Studio'yu (devenv) etkilemiyor. Başka bir deyişle Geliştirme ArayüzüIDE ile ilgli herşeyi (options, toolbox ,extension vb) soyutlanmış oluyor.

Not: Şu adresten Visual Studio 2010 SP1 SDK yüklemeniz gerekiyor.

30 Haziran Perşembe, 2011 | Genel Visual Studio

Javascipt İpuçları 1

Uzun zamandır Javascript ile yazışmıyordum. Son zamanlarda ise yediğimiz içtiğimiz ayrı gitmez oldu. Sık kıllandığım ipuçlarını paylaşıyorum.

İlk ipucu;
Js dosyalarını referans ekleme.
Snippet -> ref

Burada amaç, başka bir Js dosyasından (IntelliSense olarak) faydalanabilmek. Referans vermek istediğiniz Js dosyasını sürükleyip bırakmanız yeterli.

reference

Diğer bir ipucu;
Javascript fonksiyonları için kullanım bilgisi ekleme.
Snippet -> summary, param, returns

function KartEkle(kartno,ay,yil) {
 ///<summary>Yeni Kredi Kartı Ekleme</summary>
 ///<param name="kartno" type="string">16 haneli kredi kart bilgisi</param>
 ///<param name="ay" type="int">2 haneli ay bilgisi -> son kullanma tarihi</param>
 ///<param name="yil" type="int">4 haneli yıl bilgisi -> son kullanma tarihi</param>
 ///<returns>Kart başarılı olarak sisteme eklenirse 0 hata olursa -1 döner</returns>
 
 var kredikart ....

Buradaki amaç, fonksiyonu kullanırken açıklayıcı bilgiler vermek. param içindeki name özelliği ile fonsiyon parametre adının aynı olması önemli. type bilgisinin gerçekliği tamamen mantıksal.

Method

Bu yazının son ipucu ise;
IntelliSense'den kopya çekme tekniği.

Şahsen bizzat ben kendim çoğu zaman Javascript (built-in) fonksiyon adlarını hatırlayamam.

-Bu gibi durumlar için bir adet dummy değişken oluşturulur.
-Başlangıç değerini fonksiyon tip kümesine (örneğin string) uygun bir değer atanır.
-Gerisini IntelliSense halleder.

string methods

8 Haziran Çarşamba, 2011 | Javascript

Setup And Attach Database

Bugün daha önce yazmış olduğum Setup & ConnectionString yazısına ek yapacağız.
Söz konusu ek;
mdfDataFile ve ldfLogFile dosyalarını VeritabanıDatabase sunucusuna eklemekAttach.

İlk öğrenmemiz gereken bu işi yapan DDL kodları;
(şu yazıda bunu nasıl yapabileceğiniz görebilirsiniz)

CREATE DATABASE [ornek] ON 
(FILENAME = N'E:\DataBases\ornek.mdf'),
(FILENAME = N'E:\DataBases\ornek_log.ldf')
FOR ATTACH

Daha sonra bu kodları kurulumsetup sırasında (OnAfterInstall) Ado.Net komutları ile çalıştırmakExecute etmek.

//DDL kodlarını oluşturalım
StringBuilder sb = new StringBuilder();
sb.Append("CREATE DATABASE [Ornek] ON\r\n");
sb.AppendFormat("(FILENAME = N'{0}'),\r\n",
    thisAss.Location.Replace(
            thisAss.GetName().Name + ".exe",
            "ornek.mdf")
    );
sb.AppendFormat("(FILENAME = N'{0}')\r\n",
        thisAss.Location.Replace(
            thisAss.GetName().Name + ".exe",
            "ornek_log.ldf")
    );
sb.Append("FOR ATTACH\r\n");
 
//oluşan DDL kodlarını ADO.NET ile çalıştıralım
using (SqlConnection con = new SqlConnection(value.Replace("ornek", "Master")))
{
    using (SqlCommand com = new SqlCommand(
        sb.ToString(), con))
    {
        con.Open();
        com.ExecuteNonQuery();
    }
}
14 Mayıs Cumartesi, 2011 | Ado.Net C# Sql

QueryExtender İle Kolay Arama

Geçenlerde bir takım verileridata WebForm' unda görüntülememView ve filtrelememFilter|Search gerekti (zaman da dar bu arada).

Bakın ne yaptım;

  1. TextBox kontrolü ekledim. ID özelliği productname
  2. Button kontrolü ekledim. Text özelliği Ara
  3. GridView kontrolü ekledim. ID özelliği allproducts
  4. EntityDataSource bileşeniComponent ekledim ve tüm ürünleri çektim. ID özelliği EntityDataSource1.
  5. GridView kontrolüne EntityDataSource1 ID özellikli bileşenini bağladım.
  6. QueryExtender bileşeni ekledim. Aşağıdaki gibi ayarladım;
<asp:QueryExtender ID="QueryExtender1" runat="server" TargetControlID="EntityDataSource1">
 <asp:SearchExpression DataFields="ProductName" SearchType="StartsWith">
  <asp:ControlParameter ControlID="productname" />
 </asp:SearchExpression>
</asp:QueryExtender>
  1. Button kontrolünün Click olayınaEvent aşağıdaki kodu yazdım.
protected void Button1_Click(object sender, EventArgs e)
{
    QueryExtender1.DataBind();
}

Alternatif olarak; TextBox kontrolünün Autopostback özelliğini True olarak ayarlanırsa Button kontrolüne ihtiyaç kalmadan da filtrelemeyi tetiklemek mümkün olur.

Biraz açıklama:
QueryExtender, Framework 4.0 bileşenidir. LINQ ifadeleri için geliştirilmiş Expressionlaraİfade sahiptir.
Örneğimizde SearchExpression kullandık. Nasıl kullandık?
DataFields özelliği ile filtre uygulanacak alanı belirledik.(Daha fazla alan virgül ile belirtilebilir) Bu özellik klasik Sql sorgusunda where ifadesinden sonra kullanılan fieldAlan tanımlaması gibi düşünebilir.
SearchType özelliği ise like ifadesinin karşılığıdır. StartsWith 'parametre%', EndsWith '%parametre' ve Contains '%parametre%' gibi çalışır.
Son olarak filtreleme için kullanılacak parametre kaynağını belirtmek. Bu bir kontrol olabileceği gibi session, cookie gidi kaynaklar da olabilir.

QueryExtender

Projeyi indirmek için tıklayın.

3 Nisan Pazar, 2011 | Ado.Net Asp.net
« Önceki | Sonraki »