An error occurred creating the configuration section, ‘Microsoft.Practices.EnterpriseLibrary,The located assembly’s manifest definition does not match the assembly reference hatası!!!

23 Eylül 2014

Merhaba,

Enterprise Library uğraşırken böyle ilginç bir hata aldım.

An error occurred creating the configuration section handler for exceptionHandling: Could not load file or assembly ‘Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35′ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0×80131040)

error : 

  • an error occurred creating the configuration section handler for spring/objects: that assembly does not allow partially trusted callers (c:\mastertour9 2 20 55465_ru\master32 exe config line 6)
  • System IO FileLoadException: The located assemblys manifest definition does not match the assembly reference



Msdn’de konu ile alakalı şöyle bir makale mevcut : link

Aslında hatanın sebebi bin dosyasına eklediğiniz Enterprise Library dll’leri ile alakalı.

 

Belgelerde oluşan EntLib50Src dosyasından dll’leri eklerseniz bu hatayı almaktasınız.

Çözüm : 

Program Files\Microsoft Enterprise Library \” içindeki   Bin klasöründen kullanmak istediğiniz dll’leri referans olarak projenize eklemelisiniz sorun çözülecektir.

iyi çalışmalar…

 

 

detay...

ReSharper – Visual Studio için tavsiye plug-in (eklenti)

23 Eylül 2014

ReSharper Microsoft Visual Studio çok daha iyi bir IDE haline getiren tanınmış bir verimlilik aracıdır.


ReSharper bizlere Refactoring işlemlerini otomatik olarak bize sunmaktadır.

(Refactoring : Yazdılan kodun işlevini değiştirmeden, düzenli hale getirmek için uygulanan prensipler ve yöntemlere denir.)


Resharper kodlama yaparken C #, VB.NET, XAML, ASP.NET, ASP.NET MVC, JavaScript, CSS ve XML gibi dilleri kullandığında size kodlamanızla alakalı yardımcı çözümler getirmektedir.

Kodunuzu geliştirirken herhangi bir hata yaparsanız ya da kodunuzun optimize edilmesi gerektiği durumlarda resharper size öneriler sunacaktır.

Belirli bir standartda kod yazmanıza teşvik etmektedir. Kodlama standartları hakkında yeterli bilgiye sahip değilseniz size iyi bir yardımcı olacaktır.

Linkten  Resharper hakkında daha fazla bilgiye ulaşabilir ve resharper’i indirebilirsiniz. http://www.jetbrains.com/resharper/

detay...

c# da Is Numaric kontrolü (fonksiyonu)

23 Eylül 2014

Merhaba,

Çerezlik kodları sık sık yeni blokta paylaşmayı düşünüyorum.  Haydi başlayalım…

Daha önce Visual Basic ile ilgilenmiş olanlar bilir Visual Basic de bulunan IsNumaric fonksiyonu C# da bulunmamaktadır.

C#’da IsNumeric fonksiyonu yerine IsNumber fonksiyonu mevcuttur fakat sadece char tipinde çalışmaktadır.

Bunu şu şekilde kontrol edebiliriz.

public bool IsNumeric(string value)
        {
            foreach (char c in value)
                if (!((Int16)c > 47 && (Int16)c < 58)) return false;
            return true;
        }

Ayrıca IsNumaric metodunu şu şekildede yazabiliriz.

Burada string değeri integer’a convert ederek oluşan  Exception durumuna göre true ya da false döndürüyoruz.

public bool IsNumeric(string value)
        {
            try
            {
                Convert.ToInt32(value);
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

Bir dahaki yazıda görüşmek üzere…

detay...

Asp.Net 4.0 ile gelen URL Routing ile SEO uyumlu sayfalar yapma

23 Eylül 2014

Url Routing url’lerimizin nasıl yönlendirileceği ve sonrasında nasıl yorumlandırılacağı işlemini yapmaktadır.

Arama motorları tarafından içeriklerimizin anlaşılır bir yapıda olması ve içeriklerimizin SEO uyumlu hale gelebilmesi için Url Routing’e ihtiyaç duymaktayız.

Örneğin :

www.ufukaytas.com/id=5 Arama motorları için bir anlam ifade etmez.

Bunun yerine ;
www.ufukaytas.com/Makale/Asp.Net-4.0-Url-Routing/5 gibi bir yöntemi kullandığımızda arama motorları sayfamızı daha doğru bir şekilde indexleme işlemi yapar.

Asp.Net 4.0 da bu Url Rewrite işlemini nasıl yaptığımız bir örnekle pekiştirelim…

Öncelikle global.asax dosyamızı açalım ve içine gerekli düzenlemeleri yapalım. Burada gelen requestleri ilgili sayfamıza yönlendirme işlemi yapmaktayız.

void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup
        RegisterRoutes(RouteTable.Routes);
    }

    public void RegisterRoutes(RouteCollection routes)
    {

        // Route tanımlaması yapıyoruz. Yapımız site.com/Makaleler/Makale-Adi/{ID} şeklinde olacak
        // bu şekilde bir url geldiğinde detay.aspx sayfamıza yönlendirme yapıyoruz...
        routes.MapPageRoute("MakaleRoute", "Makaleler/{MakaleAdi}/{MakaleID}", "~/detay.aspx");

    }

Şimdi bu yapıyı kullanabilmek için bir veritabanı oluşturalım ve makaleler adlı bir tablo yaratalım ve içine bir kaç kayıt girelim…


default.aspx sayfamızda datalist kontrolümüzü ekliyoruz ve sqldatasource ile veritabanından makaleleri yüklüyoruz…

<asp:DataList ID="DataList1" runat="server" CellPadding="4" 
        DataKeyField="MakaleID" DataSourceID="SqlDataSource1" ForeColor="#333333" 
        Width="1110px" onitemdatabound="DataList1_ItemDataBound">
        <AlternatingItemStyle BackColor="White" />
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <ItemStyle BackColor="#EFF3FB" />
        <ItemTemplate>
            MakaleID:
            <asp:Label ID="MakaleIDLabel" runat="server" Text='<%# Eval("MakaleID") %>' />
            <br />
            MakaleAdi:
            <asp:HyperLink ID="hlMakaleAdi" runat="server" Text='<%# Eval("MakaleAdi") %>' />
            <br />
<br />
        </ItemTemplate>
        <SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
    </asp:DataList>
    <form id="form1" runat="server">
    <div>

    </div>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:MakalelerConnectionString %>" 
        SelectCommand="SELECT [MakaleID], [MakaleAdi] FROM [Makaleler]">
    </asp:SqlDataSource>
Şimdi de Datalist’imizin ItemTemplate’indeki Hyperlink kontrolümüze ulaşarak NavigateUrl’yi bizim istediğimiz formatta yazacağız.

 protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {

        try
        {
            HyperLink hlMakaleAdi = (HyperLink)e.Item.FindControl("hlMakaleAdi");

            /*  Hyperlink için navagateUrl tanımlarken
             *  global.asax içinde tanımlamış olduğumuz (routes.MapPageRoute("MakaleRoute", "Makaleler/{MakaleAdi}/{MakaleID}", "~/makale_detay.aspx");)
             *  Makaleler/{MakaleAdi}/{MakaleID} yapıyı url'mizde oluşturuyoruz...  */
            hlMakaleAdi.NavigateUrl = "~/Makaleler/" + KodOlustur(DataBinder.Eval(e.Item.DataItem, "MakaleAdi").ToString()) + "/" + DataBinder.Eval(e.Item.DataItem, "MakaleID").ToString();

        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }

Burada Hyperlink de url lerimizi resimdeki gibi  “/Makaleler/ASPNET-40-URL-ROUTING/7″  istediğimiz formatta oluşturduk. Makale Adındaki türkçe karakterleri ve boşlukları temizlemek için KodOlustur adlı Metodumuzu kullanıyoruz…

Kod Oluşturma Methodu
#region "Kod Oluştur"
    /// <summary>
    /// Makale Adı için gelen Başlığımızdaki türkçe karakterleri temizliyoruz ve boşlukları (-) ile değiştiriyoruz.
    /// </summary>
    /// <param name="Text"></param>
    /// <returns></returns>
    public static string KodOlustur(string Text)
    {
        try
        {
            string strReturn = Text.Trim();

            strReturn = strReturn.Replace("ğ", "g");
            strReturn = strReturn.Replace("Ğ", "G");
            strReturn = strReturn.Replace("ü", "u");
            strReturn = strReturn.Replace("Ü", "U");
            strReturn = strReturn.Replace("ş", "s");
            strReturn = strReturn.Replace("Ş", "S");
            strReturn = strReturn.Replace("ı", "i");
            strReturn = strReturn.Replace("İ", "I");
            strReturn = strReturn.Replace("ö", "o");
            strReturn = strReturn.Replace("Ö", "O");
            strReturn = strReturn.Replace("ç", "c");
            strReturn = strReturn.Replace("Ç", "C");
            strReturn = strReturn.Replace("-", "+");
            strReturn = strReturn.Replace(" ", "+");
            strReturn = strReturn.Trim();
            strReturn = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9+]").Replace(strReturn, "");
            strReturn = strReturn.Trim();
            strReturn = strReturn.Replace("+", "-");
            return strReturn;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

#endregion

Artık Url’lerimiz bizim istediğimiz formatta oluştu ve global.asax daki tanımlamamıza göre detay.aspx sayfasına yönlenmiş oldu.

Şimdi detay sayfasında Route ile gelen parametlerele nasıl ulaştığımıza bakalım…

Öncelikle detay.aspx adlı bir sayfa oluşturalım ve içine alttaki label’ları ekleyelim…

 <h1>Detay Sayfa</h1> 

    <p>Gelen ID : <asp:Label ID="lblMakaleID" runat="server"></asp:Label></p>
    <p>Başlık : <asp:Label ID="lblMakaleBaslik" runat="server"></asp:Label></p>

Daha sonra Page_Load da alttaki kodları ekleyelim…

routes.MapPageRoute da tanımladığımız “MakaleID” ve “MakaleAdi” adlı parametrelere RouteData.Value ile ulaşıyoruz.

Burada içeriğin ilgili ID sine ulaştıktan sonra geriye veritabanındaki tablodan o içeriğin bilgilerini çekmek kalıyor.

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            if (RouteData.Values["MakaleID"] != null)
            {
                lblMakaleID.Text = RouteData.Values["MakaleID"].ToString();
                lblMakaleBaslik.Text = RouteData.Values["MakaleAdi"].ToString();
            }

        }
    }


Yönlendirme işlemimizi tamamlamış olduk.

Peki bazı sayfaların kısıtlanmasını istersek ne yapacağız.

Bunun için Ignore metodunu kullanabiliriz. Ignore işlemini Regular Expression yardımıyla yapmaktayız.

Örnek olarak :

// .aspx sayfalarımızı yok sayıyoruz (ignore)  
routes.Ignore("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" });


Örnek projeyi indirmek için link

Başka bir yazıda görüşmek dileğiyle…

Saygılarımla...
Ufuk Aytaş

detay...

Online Photo Editor – Pixlr.com – Online Resim Editleme

23 Eylül 2014


Pixlr.com – Online Resim Editleme Servisi


Yeni bloğumda kullandığım, beğendiğim güzel servisleri ve web projelerini paylaşacağım. 

Günümüzde birçok online servis hayatımıza büyük kolaylıklar sağlamakta.

Bunlara güzel bir örnekte pixlr.com. Android ve Iphone için uygulamları da mevcut.

Resimlerinizi kolay bir şekilde editleyebilir, photoshop programındaki birçok özelliği online olarak kullabilirsiniz.

Yapmamız gereken bir resim belirlemek birbirinden güzel onlarda efekti kullanmak.

Pixlr :  http://pixlr.com

detay...