.Net Denemeleri

Powershell ile Basit Hash İşlemi

Sanırım Powershell'i çok seviyorum:) Bu aralar Powershell ile sıkça kullandığım işlemleri otomatize etmeye başladım. Özellikle de Framework Classnesne larını içerenleri.

Write-Host "Deger girin:" -NoNewline
$arg = Read-Host$hash = [System.Security.Cryptography.MD5]::Create()
$data = [System.Text.Encoding]::ASCII.GetBytes($arg)
$array = $hash.ComputeHash($data)
foreach($byte in $array)
{$output += $byte.ToString("x2")}
Write-Host "result -> " $output

Kodları "ps1" uzantı ile kayıt edip komut satırında parametre vererek çalıştırmak yeterli olacaktır.

MD5 Hash

Örnek script.

18 Ekim Pazartesi, 2010 | Powershell

OneNote ile CAPTCHA Testi

Geçenlerde bir uygulama için Captcha örneği hazırlıyoruz. Test aşamasında iken güvenilirliğini nasıl test edebiliriz diye düşündüm. Akabinde aklıma MS OneNote uygulaması geldi. Ms Outlook'tan sonra en sık kullandığım ikinci MS Office uygulamasıdır.
Uygulamanın özellikleri saymakla bitmez ama bizi ilgilendiren ise bir çeşit OCR özelliği barındırmasıdır. Bu özellik sayesinde resimlerin içindeki metinleri ayrıştırabiliryorsunuz.

Resime sağ tıkla ve metni ayrıştır.
Copy Text from Picture

Basit bir örnek ile başlayalım.

Arial 14 gri üzerine siyah metin.
captcha example 1
Sonuç -> 5TSRB5

İki çizgi atalım
captcha example 2
Sonuç - > KW4

Arka planı HatchBrush ile değiştirelim
captcha example 3
Sonuç -> String.Empty :)

Not: Bu test 100% güvenilir değildir. Daha iyi algoritmalar ile ayrıştırma daha başarılı olabilir.

Örnek proje.

15 Ekim Cuma, 2010 | Asp.net C# Genel

Application.Idle

Windows tabanlı uygulama geliştirirken başlangıçta yüklü işlemleriniz olmasa bile çok fazla kontrol yada yüksek hacimli arkaplan resimleri kullanıldığında parça parça erkrana gelen kontroller yada kilitlenmeler kaçınılmaz olabiliyor.

Bu gibi durumlarda çözüm olarak Applicationuygulama Classnesne sının Idle Eventolay i kullanılabilir. Bu olay yardımı ile bir işlemin bittiği ve beklemeIdle durumuna geçtiği anlaşılabilir.

Örnekte;
Form Opacitysaydamsızlık özellliği 0 yapılarak gizlenir. (Uygulamayı simüle etmek için Load olayında 3000 milisaniye bekleme sözkonusu) İşlem bittiğinde ise Opacity özelliği ile Form gösterilir.

public Form1()
{
    Opacity = 0;
    InitializeComponent();
    listBox1.Items.Add(string.Format("Initialize -> {0:HH:mm:ss}", DateTime.Now));
    Application.Idle += new EventHandler(Application_Idle);
}
 
void Application_Idle(object sender, EventArgs e)
{
    listBox1.Items.Add(string.Format("Idle -> {0:HH:mm:ss}", DateTime.Now));
    Opacity = 1;
    Application.Idle -= new EventHandler(Application_Idle);
}
 
private void Loading_Load(object sender, EventArgs e)
{
    listBox1.Items.Add(string.Format("Processing -> {0:HH:mm:ss}", DateTime.Now));
    Thread.Sleep(3000);
}
 
private void button1_Click(object sender, EventArgs e)
{
    listBox1.Items.Add(string.Empty);
    listBox1.Items.Add(string.Format("Processing -> {0:HH:mm:ss}", DateTime.Now));
    Thread.Sleep(3000);
}

Burada dikkat edilmesi gereken en önemli husus, görevi bittiğinde Idle olayının kaldırılmasıdetach gerekiyor.

Application Idle

Aksi takdirde olay sürekli tetiklenecektir.

Application Idle

Örnek proje.

13 Ekim Çarşamba, 2010 | C#

Sql Server Management Studio'dan Kod Çalma

Hepimiz zaman zaman standart Sql komutları (select insert gibi) dışında da kodlar yazmak durumda kalabiliyoruz. Çok tekrarlanmayan kodlar maalesef hafızamızda kalmıyor. Bu gibi durumlarda SSMS dan yardım almakta bir sakınca görmüyorum :)

Bu yazıda bildiğim 4 yöntemi sizlerle paylaşacağım.

1 - Template Explorer

View -> Template Explorer ile açılan pencere içinde birçok işlevin templateşablon kodlarına ulaşabilirsiniz. Çift tıkladığımızda kodlar ekrana gelecektir. Kolaylık olması için Ctrl+Shift+M kısa yolu ile template içindeki değişkenlere erişebilir ve değiştirebilirsiniz.

Sql Cheat 1

2 - Script As

Object Explorer içindeki nesnelere sağ tıklama ile erişebileceğiniz Script As menusu ile sql kodlarını elde edebilirsiniz.

Sql Cheat 2

3 - Generate Scripts

Yine Object Explorer içinde Database nesnesine sağ klik ile Tasks -> Generate Scripts... ile açılan sihirbazwizard ile sql kodları oluşturabilirsiniz.

Sql Cheat 3

4 - Script Action

Son olarak işlem yapılabilen pencerelerde bulunan Script düğmesibutton yardımı ile sql kodları da oluşturmak mümkün.

Sql Cheat 4

Umarım yardımı dokunmuştur.

10 Ekim Pazar, 2010 |

ClassViewer

Geçenlerde herhangi bir uygulama geliştiriyordum ki aniden bir kontrol ihtiyacım oldu. Söyle ki;

Bir Classnesne oluşturdum.

public class Employee
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public decimal Salary { get; set; }
    public DateTime HireDate { get; set; }
}

Daha sonra kopyasınıinstance çıkarıp özelliklerine değer atadım. Buraya kadar herşey normal. Peki dedim şunu birde WebForm'unda zahmetsiz bir şekilde gösterebilsem ne süper olur.
Böyle durumda akla en yatkın DetailsView veri kontrolü kullanmaktır. Lakin kontrolün DataSource özelliğine herhangi bir nesneyi zart diye atayamazsınız. Eğer atarsanız şöyle bir hata alırsınız

Error

Hoş değil :(

Bu gibi durumlarda olmasa ne zaman kontrol geliştireceğiz ki :)
Peki ne yapmak lazım;
Mantık basit. Reflection ile nesne özelliklerini okumak, kontrolün ihtiyaç duyabileceği ekstra bilgileri Attributenitelik yardımı ile iletmek.
 

[Serializable]
public class Employee
{
    [FieldAttributes(IsVisible = false)]
    public int ID { get; set; }
    [FieldAttributes(FieldHead = "Ad")]
    public string FirstName { get; set; }
    [FieldAttributes(FieldHead = "Soyad")]
    public string LastName { get; set; }
    [FieldAttributes(FieldHead = "Maaş", Format = "N2")]
    public decimal Salary { get; set; }
    [FieldAttributes(FieldHead = "İşe Başlama Tarihi", Format = "dd.MM.yyyy")]
    public DateTime HireDate { get; set; }
}

Kullanımın kolay olması için SmartTag ve DesignTimeSupport gibi atraksiyonlar.

Design

Sonuç;

Runtime

Proje dosyası.

26 Eylül Pazar, 2010 | Asp.net C# Css Html