C# 6.0 ile gelen 15 yeni özellik (1.Bölüm)

C# 6.0 ile gelen 15 yeni özelliği inceleyeceğimiz bu makale 3 bölümden oluşmaktadır. Her bölümde 5’er özellik örneklerle beraber anlatılacaktır.

C# dilinin ilk versiyonu 2002 yılında ve daha sonra 2005 yılında ikinci versiyonu yayınlandı. 2007 yılına geldiğimizde ise Linq, lamda expression, implicit typing, query syntax, var keyword ve 2010 yılında 4. sürümle beraber dynamic keyword ve dynamic language runtime ile tanıştık. 2012 yılında 5. versiyon yayınlandı. Bu versiyonda ise async ve await keywordleri ile tanıştık. Önceki versiyonlarla bu sürümü karşılaştırdığımızda çok etkili değişikliklerin olmadığını görüyoruz. Aslında bu normal bir şey çünkü C# dili 13 yaşının üzerinde ve geçen yıllar içersinde gerekli olan önemli özellikler zaten eklendi. Şimdi C# 6.0 ile gelen 15 güzel özelliği inceleyelim. (daha&helliip;)

Web.Config İçerisinde Ki Connection String’i Şifrelemek -1

.Net uygulaması geliştirirken Database Connection, Email ve SMTP gibi önemli bilgileri Web.Config dosyasında saklarız. Web.Config dosyası bu kadar hassas bilgileri barındırmasına rağmen içerisindeki bilgileri herhangi birisi  kolayca görebilir. Web.Config dosyamızın birinin eline geçtiğini düşünürsek veritabanımız ve diğer önemli bilgilerimiz de eline geçecektir. Web.Config dosyamızda connection stringimizi şifreleyerek güvenliğini arttırmak iyi olacaktır. Bu makalemizde bunu nasıl yapacağımızı göreceğiz.

Connection stringi şifremenin iki yolu vardır.

  • ASP.NET IIS Registration Tool (Aspnet_regiis.exe) kullanarak şifrelemek
  • ConnectionStringsSection class

Aspnet_regiis.exe ile connection string şifreleme

Bu yöntemle şifreleme yapmak istediğimiz karşımıza iki seçenek çıkıyor

  • Web.Config dosyasının fiziksel yolunun şifrelenmesi
  • Web.Config dosyası ISS üzerinde host edildiği zaman şifrelemek

(daha&helliip;)

ABSTRACT SINIFLAR & INTERFACES

Abstract class yada Interface : Programlama dünyasında ki en kararsız bırakan konulardan biri bu ikiliden hangisi kullanmaya karar vermektir. Şimdi bu sınıfıları teker teker detaylı olarak ele alalım.

Abstract class: Bir abstract sınıf diğer sınıflar gibi (properties, metodlar ve collectionlar gibi) bir sınıftır. Tek farkı abstract bir sınıfın nesnesinin yaratılamamasıdır. Tabi ki “abstract” anahtar kelimesi sınıfın bildirimde kullanılır.Abstract bir sınıf, gövdesi olan metodlara ve hatta sadece abstract ifadesi bulunan metodlara bile sahip olabilir. Örneğe geçelim :

//1. Bir abstract sınıf onu tanımlayan "abstract" anahtar kelimesine sahiptir
namespace abstractClass_ve_Interfaces
{
public abstract class AbstractClassOrnegi
{
//2. Abstract sınıflar field içerebilir
int field;
// ve diğer sınıflar gibi property'ler içerebilir
public int Property1 { get; set; }
//3. Kendi gibi abstact bir metod içerebilir.
public abstract void AbstractMetod();
//4. Ayrıca somut metodlarda içerbilir
public void SomutMetod()
{
Response.Write("Somut metod");
}
}
}

Şimdi çoğumuzun karıştırdığı noktalara geliyoruz. Abstract sınıfılar hakkında bilinen yanlışlar ve gerçekler. (daha&helliip;)

ASP.NET : Yaptıklarımız ne kadar doğru ? – 1

Bu makalede asp.net uygulaması geliştirirken sıklıkla düşülen hataların nasıl önüne geçileceği anlatılacaktır. Hemen ilk konumuzla başlayalım :

Uyum standartları

Kontrol adaptörleri 

Önemli tavsiye : Uyarlama işlemleri için kontrol adaptörlerini kullanmayı bırakıp, bunun yerine CSS media ve Html uyumlu standart sorgulamaları kullanın.

Kontol adaptörleri ilk olarak farklı ortam ve cihazlar için özelleştirilebilen kod oluşturmak için .NET 2.0 ile beraber ortaya çıktı. Fakat bu adaptörlerin işlevleri CSS ve HTML ile yapılabilir. Bu nedenle kontrol adaptörlerini kullanmayı ve onları CSS ve HTML’e convert etmeyi bırakmalısınız. (daha&helliip;)

SQL Express : LocalDB (.mdf)

Giriş

LocalDB developerlar için özel olarak geliştirildi. Kurulumu kolay ve yönetim gerektirmeyen, her zamanki SQL Server Express gibi client-side ve programlama alanı olan ve T-SQL diliyle kodlanabilen ortamı mevcut.
Geliştiricilerin laptop veya geliştirme yaptığı bilgisayarlarda SQL Server Express artık SQL Server’ın yaptığını yapmak zorunda. Bununla beraber LocalDB hedeflenen uygulama ortamının ihtiyaçlarına uygun olduğu takdirde, geliştirici uygulama geliştirmeye devam ederken, aynı zamanda LocalDB veritabanı entegrasyonunu yapacaktır. (daha&helliip;)

ASP.NET : LoadXml(string) ile dinamik XML dosyası oluşturmak

ASP.NET’te sıfırdan XML oluşturmak için üç ana API’ye sahibiz.  LINQ to XML, XmlWriter class ve W3C DOM. Bu makalede en basit metod olan, bir stringin W3C DOM Microsoft uzantısı olan LoadXml()’e yüklenmesiyle oluşturulan metodu kullanacağız.

Aşamalar şöyle olacak :

  •  1. products.xml oluştur
  •  2. LoadXml(string)
    •  2.1 olustur-xml-string.aspx
    •  2.2 olustur-xml-string.aspx.cs

(daha&helliip;)

ASP.Net : Custom Validator ve JavaScript kullanarak CheckBox kontrol etmek

Bu makalede ASP.NET Checbox kontrolünü Custom Validator ve Javascript kullanarak nasıl kontrol ettiğimizi göstereceğim.

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <script type = "text/javascript">
        function ValidateCheckBox(sender, args) {
            if (document.getElementById("<%=CheckBox1.ClientID %>").checked == true) {
                args.IsValid = true;
            } else {
                args.IsValid = false;
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:CheckBox ID="CheckBox1" runat="server" />
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Required" ClientValidationFunction = "ValidateCheckBox"></asp:CustomValidator><br />
    <asp:Button ID="Button1" runat="server" Text="Submit"/>
    </form>
</body>
</html>
Yukarıdaki kodda   ASP.Net Custom Validator kullanarak bir Checbox’ı kontrol ettik. ASP.NET Custom Validator için theClientValidationFunction özelliğini atadım ve bu özelliği JavaScript fonksiyonuna bağladım.  JavaScript fonksiyonu içerisinde checkbox kontrolünü sağladım ve eğer checkbox seçilmemişse geriye “gerekli” uyarısı döndüren bir kontrol atadım.