Anasayfa           Hakkımızda          İletişim     


Türkçe Dili English Language Germany Language English Language
  • Semih Tanış bir bağlantı paylaştı

    Design Pattern - Prototype(Clone) Design         Tarih : 25 Mart 2018 Pazar

    Design Pattern - Prototype Design

    Amaç  :  Nesne üretim maliyetlerini minimize etmektir. Her zaman prototype desgin'ini kullanamayız. Sadece ihtiyaçlar dahilinde kullabiliriz. 

    Örneğin :  Elimizde temel bir sınıf mevcut ise onun prototype'ini oluşturup o nesne üzerinden yeni nesne clone'lama sürecini sürdürebiliriz.

    Kodlar :  

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Prototype
    {
        class Program
        {
            static void Main(string[] args)
            {
                //yeni referans oluşturma maliyetinden kurtardık. new'lemek pahalı bir yöntemdir.
                Customer customer1  =  new Customer{FirstName = "Semih",LastName = "Tanış",City = "Bursa", Id = 1};
               
    
                var customer2 = (Customer)customer1.Clone();
                customer2.FirstName = "Salih";
    
                Console.WriteLine(customer1.FirstName);
                Console.WriteLine(customer2.FirstName);
                Console.ReadLine();
            }
        }
    
        public abstract class Person
        {
            public abstract Person Clone();
            public int Id { get; set; }
            public string FirstName { get; set; }
            public string LastName { get; set; }
    
        }
    
        public class Customer : Person
        {
            public string City { get; set; }
    
            public override Person Clone()
            {
                return (Person) MemberwiseClone();
            }
        }
    
        public class Employee : Person
        {
            public decimal Salary { get; set; }
    
            public override Person Clone()
            {
                return (Person)MemberwiseClone();
            }
        }
    }
    

     

    Output :&nbs

  • Semih Tanış bir bağlantı paylaştı

    Design Pattern - Cross Cutting Concerns (Abstract Factory) Nedir ?         Tarih : 25 Mart 2018 Pazar

    Cross Cutting Concerns Nedir (Abstract Factory) ? 

    Görevi :  Toplu nesne kullanımı ihtiyaçlarında nesnenin kullanımını kolaylaştırmak, hemde özellikle standart nesnelere ihtiyaç duyuyorsak belirli durumlar için onlar için mantık oluştumak ve o mantığa göre nesne üretimini gerçekleştirmek.

    Örneğin :  İş katmanını düşünün. İş katmanında siz kodlarınızı yazarken, loglama kullanıyorsunuz, cache kullanıyorsunuz yani farklı teknikler kullanıyorsunuz. Bu kullandığınız tekniklerde kendi içinde çeşitlendirebiliyorsunuz. Örneğin loglamanın çeşitli yöntemleri var; veritabanına loglama, dosyaya loglama, console'a loglama. Cache'inde farklı yöntemleri var Memory Cache, MemCache ve Redis Cache gibi vb. 

    Yukarıdaki verdiğim örneklerle aşağıda bu işleri abstract factory ile nasıl uygulandığını göreceksiniz.

    Kodlar : 

    using System;
    
    namespace AbstractFactory
    {
        class Program
        {
            static void Main(string[] args)
            {
                ProductManager productManager =new ProductManager(new Factory1());
                productManager.GetAll();
                Console.ReadLine();
            }
        }
    
        public abstract class Logging
        {
            public abstract void Log(string message);
        }
    
        public class Log4NetLoggger: Logging
        {
            public override void Log(string message)
            {
                Console.WriteLine("Logged with Log4Net");
            }
        }
        public class NLoggger : Logging
        {
            public override void Log(string message)
            {
                Console.WriteLine("Logged with NLogger");
            }
        }
    
        public abstract class Caching
        {
            public abstract void Cache(string
                                                       
                             
                               
                                    
  • Semih Tanış bir bağlantı paylaştı

    SQL Türkçe Karekter fonksiyonu         Tarih : 17 Mart 2018 Cumartesi

    Merhaba Arkadaşlar ,

    Sql 'de herhangi bir alanı türkçeye çeviren sorgu fonksyionu aşağıdadır.

    Her zaman elinizin altında bulunması gereken fonksiyonlardan biridir. Sql 'de şifre veya kullanici adının türkçe karakter barındırmasını istemiyorsanız bu sorgu işinizi çok hafifletecektir.

    CREATE FUNCTION fn_turkcekarekterkaldir ( @ifade NVARCHAR(100) ) RETURNS NVARCHAR(100)
    AS
    BEGIN
    DECLARE @veri NVARCHAR(100)
      set @veri = @ifade
      set @veri = REPLACE(@veri,'İ','I')
      set @veri = REPLACE(@veri,'ı','I')
      set @veri = REPLACE(@veri,'Ş','S')
      set @veri = REPLACE(@veri,'Ç','C')
      set @veri = REPLACE(@veri,'Ö','O')
      set @veri = REPLACE(@veri,'Ğ','G')
      set @veri = REPLACE(@veri,'Ü','U')
      set @veri = REPLACE(@veri,'ş','S')
      set @veri = REPLACE(@veri,'ç','C')
      set @veri = REPLACE(@veri,'ö','O')
      set @veri = REPLACE(@veri,'ğ','G')
      set @veri = REPLACE(@veri,'ü','U')
     return (@veri)
    END

    Fonksiyonun çağırılması aşağıdaki gibidir.

    SELECT dbo.fn_turkcekarekterkaldir(a.Name)  FROM Account AS a

     

     

  • Semih Tanış bir bağlantı paylaştı

    Web Sitesini Https(SSL) Yönlendirme         Tarih : 18 Şubat 2018 Pazar

    Merhaba arkadaşlar,

    Bir web sitesini https(ssl) olarak çalıştırmak istiyorsanız aşağıdaki kodları webconfig'e yazmanız gerekecektir.

      <system.webServer>
        <rewrite>
          <rules>
            <clear />
            <rule name="admin -> budoadmin" enabled="true" stopProcessing="true">
              <match url="^admin/(.*)$" />
              <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
              <action type="Redirect" url="https://yazilimdenizi.com" />
            </rule>
            <rule name="HTTP to HTTPS redirect" stopProcessing="true">
              <match url="(.*)" />
              <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                <add input="{HTTPS}" pattern="off" ignoreCase="true" />
              </conditions>
              <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
            </rule>
    	
          </rules>
                <outboundRules>
                    <rule name="HideResponseServerHeaderValue" patternSyntax="Wildcard">
                        <match serverVariable="RESPONSE_Server" pattern="*" />
                        <action type="Rewrite" value="-" />
                    </rule>
                </outboundRules>
        </rewrite>
    
        <validation validateIntegratedModeConfiguration="false" />
       
      </system.webServer>

     

  • Semih Tanış bir bağlantı paylaştı

    Factory Desgin Pattern         Tarih : 10 Şubat 2018 Cumartesi

    Factory Desgin Pattern

    Factory Design Pattern günümüzde en çok kullanılan tasarım desenidir. Amaç yazılımı değişimi kontrol altında tutmaktır. Örneğin; Yazılımcıların zamanla kullandığı Cachleme sistemleri ve Loglama sistemlerine kadar değişkenlik göstrerecek zamanla farklı tekniklerin impelemtasyonunu gerçekleştirecek bir yapıyı barındırır.

    Örnek Kod:

    using System;
    
    namespace FactoryMethod
    {
        class Program
        {
            static void Main(string[] args)
            {
                CustomerManager customerManager = new CustomerManager(new LoggerFactory2()); // ben hangi teknikle çalışacaksam onu veriyorum.
                customerManager.Save();
                Console.ReadLine();
            }
        }
    
        public class LoggerFactory : ILoggerFactory
        {
            //Business to decide factory
            public ILogger CreateLogger()
            {
                return new LogSerim();
            }
    
    
        }
        public class LoggerFactory2 : ILoggerFactory
        {
            public ILogger CreateLogger()
            {
                return new Log4Net();
            }
    
    
        }
        public interface ILogger
        {
            void Log();
        }
        public interface ILoggerFactory
        {
            //Business to decide factory
            ILogger CreateLogger();
        }
    
        public class LogSerim : ILogger
        {
            public void Log()
            {
                Console.WriteLine("Logged with LogSerim");
            }
        }
    
        public class Log4Net : ILogger
        {
            public void Log()
            {
                Console.WriteLine("Logged with Log4Net");
            }
        }
    
        public class CustomerManager
        {
            private ILoggerFactory _loggerFactory;
    
            public CustomerManager(ILoggerFactory loggerFactory)
            {
                _loggerFactory = loggerFactory;
            }
            public void Save()
        
                                                       
                             
                               
                                    
 1 2 3 4 5 

Ziyaretçi İstatistiği

Ip : 54.80.185.137
Saat 08:10:58  
Tarih : 23.4.2018
Online : 3  
Toplam : 85550