3 Aralık 2020 Perşembe

C# Array.ForEach kullanımı

 using System;

public class SamplesArray { public static void Main() { // üç elemanlı bir sayı dizisi oluşturun int[] intArray = new int[] {2, 3, 4}; // KareleriniGoster yöntemi için bir temsilci belirleyin Action<int> action = new Action<int>(KareleriniGoster);
       // ve kullanın Array.ForEach(intArray, action); } private static void KareleriniGoster(int sayi) { Console.WriteLine("{0:d}'nin karesi= {1:d}", sayi, sayi*sayi); } } /* Bu kod aşağıdaki çıktıyı üretir: 2'nin karesi= 4 3'nin karesi= 9 4'nin karesi= 16 */

Kaynak : Microsoft

29 Eylül 2020 Salı

JavaScript ile konsola renkli ve farklı boyutta yazı yazdırma

 Selam arkadaşlar bu sefer çok kısa bir bilgi ile karşınızdayım. JavaScript'te console.log() yaparken birbirinden farklı şekilde loglar yazdırmak isterseniz bu şekilde komutlar kullanmanız gerekli.

     setTimeout(console.log.bind(console, '%cFoo' , 'color: #FF00FF; font-size: 35px;'), 0);



18 Ağustos 2020 Salı

Angular Custom Pipe Yazımı

Herkese Merhaba!

Bu yazıda kendi istediğimizi yapan bir pipe nasıl yazılır onu anlatacağım.

İstediğimiz konuma xyz123.pipe.ts dosyasını oluşturup;

export class xyz123 implements PipeTransform {}

şeklinde bir class oluşturalım.

Main module dosyamıza import ettiğimiz bir utilities modülümüz var ise utilities modülünün içine, yok ise main module dosyasına oluşturduğumuz pipe dosyasını import edelim.

import xyz123 } from './xyz123.pipe';

@NgModule({

    imports: [
        CommonModule
    ],
    providers: [  ],
    declarations: [
        xyz123 
    ],
    exports: [
        xyz123 
    ]
})

(Typescript dosyamızda bu pipe'ımızı kullanmak istiyorsak pipe class'ımızı modülümüzdeki providers kısmına da eklememiz gerekmektedir.)

Oluşturduğumuz xyz123.pipe.ts dosyamıza geri dönelim. Pipe'ı baz alan importumuzu yapalım ve Pipe olduğunu dışarıya belli edip yapmasını istediğimiz kodu yazalım.

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'xyzPipe'
})

export class xyz123 implements PipeTransform {

    transform(value: any, args?: any): any {

        let firstDigit = value.match(/\d/); // metindeki ilk sayıyı(digit'i) bulur
        let index = value.indexOf(firstDigit); // sayının indexini verir
        return value.substring(0, index) + ' ' + value.substring(index); //metnin arasına bir boşluk ekleyip return eder
   }
}

Şimdi html dosyamıza dönüp pipe'ımızı kullanalım.

 {{ 'istediğim yazı ve sonuna boşluksuz rakamlar123' | xyzPipe }}

Çıktı:        "'istediğim yazı ve sonuna boşluksuz rakamlar 123"

Bu yazdığımız pipe'a göre metindeki ilk rakamı bulup bir öncesine boşluk ekledik. Metodumuzun içinde bu olayı istediğimiz gibi yazabiliriz.

5 Ağustos 2020 Çarşamba

Team Foundation Sidekicks 2015 / 2017 / 2019 Kurulumu

Merhaba arkadaşlar! 



    TFS (Azure DevOps) kullanan ya da kullanmış olan kişiler bazı durumlarda projesini kullanan ya da daha önce kullanmış kişilerin sunucu üzerindeki workspace kaydınız kaldırmak isteyebilir. Bunun için yetkili bir hesaptan (VS2017 için)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
dosya konumunda komut istemini açıp tf komutları yazmanız gereklidir. Bazı 3. parti yazılımlar ile bunu güzel bir arayüz ile komutlar ile uğraşmadan halletmek mümkündü. Ancak bu yazılım en son Visual Studio 2015 için geliştirilmiş ve daha yenisi yok bu yüzden çalışmamakta. Yabancı bir kaynakta bulduğum olayı uyguladım ve gerçekten çalıştı bunu da sizinle paylaşmak istedim.

Adım 1: Gerekli Dosyaları indirelim. İndir
Adım 2: Gerekli Dosyalar\Kurulum Dosyaları içerisinde bulunan TF_Sidekicks_6.0.0 kurulum dosyasını çalıştırın ve yazılımı bilgisayarınıza kurun.
Adım 3: (Eğer Visual Studio 15 kurulu değil ise) Regedit'i açıp HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio konumuna gidin. 
Adım 4: VisualStudio klasörüne sağ klik atıp sırasıyla New -> Key seçeneklerini seçin ve 14.0_Config isminde klasör oluşturun.
Adım 5: 14.0_Config klasörüne sağ klik atıp sırasıyla New -> String Value seçeneklerini seçin ve oluşan değere InstallDir ismini verin. 
Adım 6: InstallDir isimli değerin Data'sına Sidekicks'in kurulu olduğu konumu girin. (Default kurulum yolu: C:\Program Files (x86)\Attrice Corporation\Team Foundation Sidekicks 2015)
Adım 7: Gerekli Dosyalar\DLL Dosyaları içerisinde bulunan Dll dosyalarını kopyalayıp Sidekicks'in dosya konumuna gidip yapıştırın.
Yazılımı sağlıklı şekilde çalıştırabilirsiniz!

Dipnot: Ben ille de komut isteminden kod ile silmek istiyorum diyenler şu kodlar ile listeleme ve silme yapabilir:

- Sunucudaki tüm workspace konumlarını ve sahip bilgisayarlarını listeler:
tf workspaces /owner:* /collection:"https://abcxyz123.visualstudio.com"

- İstediğin bilgisayardaki istediğin workspace'i silme komutu (aradaki boşluğu silip birleşik yazın):
tf workspace /delete /server:https://abcxyz123.visualstudio.com 
                                    DESKTOP-4S9PDLR;c8c6fef5-0f3b-4b57-8baf-002669bdc2fb 
| |
| |
       ▼       ▼
Bilgisayar adı Kullanıcı ismi (Örn: John DOE veya 
                                                                                        TFS Sidekicks'te gözüken owner name)

Kaynak: dotnetcatch

29 Haziran 2020 Pazartesi

JSON veriyi otomatik sınıflandırma eklentisi

Selamlar!

Bu yazıda Visual Studio ve XCode için JSON veriyi çekilebilir metoduyla beraber otomatik sınıf olarak ayarlayan bir site ve eklentiden bahsedeceğim.

Öncelikle sitemizin adı QuickType, siteye buradan ulaşabilirsiniz. Sitenin Visual Studio, Visual Studio Code ve XCode'a ait eklentileri bulunmakta. Siteyi kullanmadan direk yazılım içerisinden işinizi halledebilmeniz için.


  • Visual Studio 2017 için resmi indirme linki: Link - Alternatif Link
  • Visual Studio 2019 için resmi olmayan ama portlanmış yazılım linki: Link - Alternatif Link
  • Visual Studio Code için resmi indirme linki: Link
  • XCode için resmi indirme linki: Link


Visual Studio üzerinde kullanım yöntemi: 

23 Haziran 2020 Salı

Regex ile html taglerini string içerisinden sildirtme kodu

Aşağıdaki kod C#'da "<strong> yazı </strong>" şeklinde yazan metinlerdeki html etiketlerini yok edebilmemizi sağlar.

using System.Text.RegularExpressions;

Regex.Replace(input, "<.*?>", String.Empty);

14 Mayıs 2020 Perşembe

Bir yıldaki tüm haftasonlarını diziye atan javascript/typescript kodu

 public disabledDates: Date[] = [
        ///PUBLIC HOLIDAYS AT TR///
        new Date("1/1/2020"),
        new Date("4/23/2020"),
        new Date("5/1/2020"),
        new Date("5/19/2020"),
        new Date("5/25/2020"),
        new Date("5/26/2020"),
        new Date("7/31/2020"),
        new Date("8/3/2020"),
        new Date("8/30/2020"),
        new Date("10/29/2020")
    ];



this.getAllOffDays(new Date().getFullYear());



getAllOffDays(year) {
        var boolFlag = true;
        var date = new Date(year, 0, 1);
        while (date.getDay() != 6) {
            date.setDate(date.getDate() + 1);
        }
        while (date.getFullYear() == year) {
            var m = date.getMonth() + 1;
            var d = date.getDate();

            this.disabledDates.push(
                new Date((m < 10 ? '0' + m : m) + '/' +
                        (d < 10 ? '0' + d : d) + '/' +
                        year));
            if (boolFlag) {
                boolFlag = !boolFlag;
                date.setDate(date.getDate() + 1);
            }
            else {
                boolFlag = !boolFlag;
                date.setDate(date.getDate() + 6);
            }
        }
    }

2 Ocak 2020 Perşembe

Short if kullanımı

Short if kullanımını sıkça unutmamdan kaynaklı buraya not alma kararı aldım :D
define("FOO", "bar");
define("BAR", null);

$MyVar = FOO ?? "42";
$MyVar2 = BAR ?? "42";

echo $MyVar . PHP_EOL;  // bar
echo $MyVar2 . PHP_EOL; // 42
int sayi1 = 5;
bool besMi = (sayi1==5 ? true : false);
Console.WriteLine("Beş ise true, değil ise false dönecek!");
Console.Write(besMi); // true

int sayi2 = 10;
int sayi3 = null;
var ayakUydurmacaSayi2 = (sayi2 == 10 ?? "bak bu sayı null"); // ---> 10 döner
var ayakUydurmacaSayi3 = (sayi3 == 10 ?? "bak bu sayı null"); // ---> sayı null ise "bak bu sayı null" döner