Sayfalar

25 Eylül 2020 Cuma

EDGE tarayıcılara hosts dosyasını tanıtmak

Birçok yazılımcı gibi, sitenizi yerel bilgisayarda test ediyorsunuz ve alan adını olarak yerel IP adresinize (127.0.0.1) eşlemek için hosts dosyasını kullanıyorsunuz.

15 Ekim 2019 Salı

SQL Server Differential Backup ve Restore

SQL Server ile bir veritabanını yedekledikten sonra sadece ufak değişimleri yedekleyerek daha küçük boyutlu bir yedek dosyası oluşturmak için differential (parçalı) yedekleme yapılabilir.
Bunu yapabilmek için önce bir kez Full Backup alınmalıdır. Ardından differential backup ile son alınan full backuptan itibaren yapılan değişiklikler yedeklenir.


10 Temmuz 2019 Çarşamba

İki kompleks nesne listesinin lambda kullanılarak karşılaştırılması

2 farklı kompleks tipte objeler içeren 2 farklı listeyi birbiriyle karşılaştırabilmek için halihazırda bir yöntem bulunmamaktadır. Bunu yapabilmek için kendi karşılaştırıcılarınızı implement etmeniz gerekir. Ancak bunu lambda operatörü ile yapabilmek için basit bir yöntem var.

22 Ocak 2018 Pazartesi

Aritmetik Ortalama ve Standart Sapma Değer Paketlerinin Birleştirilmesi

Birden çok ölçüm sonucu okuyup bunları yorumlayacak olan bir sistem, bu sonuçları kullanabilmek için tüm bu ölçüm sonuçlarını tek bir değere indirgemek ve bunun da güvenilirliğini tanımlamak zorundadır. Sistem bu indirgeme işlemini ortalama hesaplayarak, güvenilirliğini de bu ortalama değerden sapmayı hesaplayarak tanımlayabilir. Bu ortalama ve sapma değerleri farklı hesaplama yöntemleri ile hesaplanabilir.

20 Aralık 2015 Pazar

SQL Server içinde belli kelimeler geçen veya geçmeyen SP'leri bulma

Uygulamamızda bir güncelleme yaptık ve SQL Server içindeki Stored Procedure'larda da güncelleme yapılması gerekiyor ama çok fazla SP var ve hepsini gezip kodlarını incelemek mümkün değil. O zaman içinde belli kelimeler geçen SP leri bulmak için arama yaparak arama alanımızı daraltabiliriz.


23 Aralık 2014 Salı

AngularJs ve Dependency Injection (DI)

Google tarafından geliştirilen AngularJs yazılım dünyasında uzun süredir kullanılan yapılardan biri olan Dependency Injection (DI) mimarisini istemci taraflı Front-End uygulamalarda kullanabilmemize olanak veren ender ve en güçlü Javascript Framework'lerinden biri. İlk etapta çok kolay kullanılabilen bu kütüphane işler detaylandıktan sonra haliyle bazı zorluklar da ortaya çıkartmakta. Bunlardan biri de DI süreci ile ilgili.

Bildiğimiz gibi bir modülle bir bileşen eklemek için modül nesnesi üzerindeki .controller(), .service(), .directive() gibi api metotlarını kullanmaktayız. AngularJs in sağladığı DI mekanizması eklenen ilgili bileşenlerin bağımlılıklarını önceden biliyorsa onları çalışma anında enjekte edecektir.

24 Kasım 2014 Pazartesi

TfsPreview.com şeklindeki TFS servis adreslerinin VisualStudio.com olarak güncellenmesi

Bir süre önce TFS servisi http://tfs.visualstudio.com adresine taşınmıştı.

Eski TFS repository bağlantılarınız olan xxx.tfspreview.com şeklindeki DNS isimleri halen çalışırken bazen bağlantı sorunları yaşanabiliyor.

Bunu aşmak için ilgili bağlantıları xxx.tfspreview.com yerine xxx.visualstudio.com a taşımak gerekiyor. Ancak bunu yaptığınızda tüm bağlantılarınızı koparıp tekrar eklemeniz gerekiyor. Bu da tüm kaynak kodlarını yeniden çekmek anlamına geliyor.

Bunu kısa yoldan halletmek için Kayıt Defteri üzerinde TFS ile ilgili kayıtlardaki değerleri güncellemek yeterli oluyor.

Bu bağlantıları güncellemek için Jesse Houwing tarafından önerilen PowerShell script'i aşağıdaki gibi:

Get-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\*\TeamFoundation\Instances\*.tfspreview.com Uri | %{set-itemproperty -Path $_.PSPath Uri -Value ( $_.Uri -Replace ".tfspreview.com/", ".visualstudio.com/" )}

Get-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\*\TeamFoundation\Instances\*.tfspreview.com\Collections\* Uri | %{set-itemproperty -Path $_.PSPath Uri -Value ( $_.Uri -Replace ".tfspreview.com/", ".visualstudio.com/" )}

Get-ChildItem -Path HKCU:\Software\Microsoft\VisualStudio\*\TeamFoundation\Instances\*.tfspreview.com | Rename-Item -NewName { $_.PSChildName -Replace ".tfspreview.com$", ".visualstudio.com" }

29 Mayıs 2014 Perşembe

YAGNI - Gelecekte buna ihtiyaç duymayacaksın...

Çevik (Agile) yazılım metodolojileri arasındaki Extreme Programming (XP) yazılım geliştirme metodolojisi müşteriler (kullanıcılar) ile birlikte onların isteklerini hızlıca karşılamak için düşünülmüş ve tasarlanmıştır. Bu yaklaşımda isteklere odaklı geliştirme yapmak esastır. Hatta uygulamalar bile başlangıçta sadece istekleri karşılayacak şekilde yazılmaya başlanır.


1 Nisan 2014 Salı

"503 - Service Unavailable" ve "Load User Profile"

Geliştirdiğiniz bir uygulamayı IIS üzerine attınız ve "503 - Service Unavailable" hatası aldınız. Bir de baktınız ki IIS üzerinde uygulamanın kullandığı uygulama havuzu durmuş.

Bakacağınız yer Olay Görüntüleyici (EventLogs) üzerindeki uygulama günlüklerine (Application) bakıyoruz. Aşağıdaki hataları gördük:

7 Mart 2014 Cuma

Request format is unrecognized for URL unexpectedly ending in /myMethodName

Uygulamanızdaki web servislere uzak istemcilerden atılan isteklerde

Request format is unrecognized for URL unexpectedly ending in /myMethodName

şeklinde bir hata alıyorsanız yapmanız gereken şey web.config dosyasında aşağıdaki elemanların olmasını sağlamaktır:


25 Ekim 2013 Cuma

Windows7 Yapışkan Notlar'da Silme Onayı Problemi

Windows 7 ile gelen güzel yan uygulamalardan biri olan Yapışkan Notlar masaüstümüzde hızlıca post-it notlar almamızı sağlıyor. Çevik yazılım geliştirme süreçlerinde sıklıkla kullandığım bu uygulama yazılımcıların kendine anlık not yazmaları için biçilmiş kaftan. Ancak üzerinde çok fazla konfigürasyon seçeneği bulunmuyor.

Bir not yaprağını kaldırmak istediğimizde uygulama bize "Bu notu silmek istediğinizden emin misiniz?" şeklinde aşağıdaki resimde görüldüğü gibi bir onay uyarısı veriyor. Uygulamayı yeni kullanmaya başlayan bizler de alışkanlıkla mesajın altındaki "Bu iletiyi bir daha gösterme" kutucuğunu işaretleyerek hızlı çalışmak adına bir daha bu mesajı görmek istemiyoruz.


6 Haziran 2013 Perşembe

IE10 üzerinde ASP.NET ve MVC Cookieless Session ve AJAX POST Problemleri

Daha önceden yapmış olduğumuz ASP.NET tabanlı uygulamalarda Web.config dosyasında belirtmediğimiz session ve form ayarlarının default ayarlarının algılanma şekli IE10 tarayıcılarda farklı çalışmaya başladı. IE10 dan önceki sürümlerde çalışmaktayken, IE10 ile girdiğimizde önceleri
http://mysite.com/welcome.aspx
şeklinde olan adres,
http://mysite.com/welcome.aspx(A(ikRoEoqwOieH_FyADedeEbit-_uDNadHNudahUar-HaUsU99DiasIadsjKAsjJiaojdJaJadijAQBR0))/Welcome.aspx

şeklinde görülmeye başladı.

29 Mayıs 2013 Çarşamba

SOLID Prensipleri (SOLID Principles)

Yazılım tarihi boyunca geliştirilen yazılımlarda istekler, gereksinimler ve ortaya çıkan sorunları çözmek için pek çok kod tasarımı yapılmıştır. Bu tasarımlar yazılım sosyetesinde paylaşıldıkça ve üzerinde yapılan tartışmalarla şekillenmiş ve belli standartlar haline gelmiştir. Daha sonra bu kalıplar sınıflandırılarak adına da tasarım kalıpları (Design Patterns) denilmiş ve yazılım dünyasınca tescil edilmiştir. Herkes tarafından kabul edilen bu kalıplar sayesinde kötü tasarımdan uzak durmak isteyen bir kişinin uygulaması gereken tasarım belirlenmiştir.


18 Ekim 2012 Perşembe

OpenId Destekleyen Sosyal Medya İkonlarıyla Kullanıcıları Bir Siteye Üye Yapmak

JavascriptOpenID Selector
Sıklıkla gördüğümüz "Facebook hesabınızla giriş yapın", "Google hesabınızla üye olun" gibi butonlarla kullanıcıları tek tıklama ile sistemlerine üye yapan sitelerin sayısı gün geçtikçe artıyor. Bununla beraner OpenId kullanan sosyal ağ sitelerinin sayısı da artıyor. Hal böyle olunca, nasıl paylaşım desteği veren sosyal ağların paylaş butonlarını tek bir yerde toplayan eklentiler çıktıysa, OpenId destekleyen siteler ile giriş yapmak için sosyal ağ butonlarının tek bir yerde toplayan eklentiler de kaçınılmaz oldu. Bu makalede bu OpenId seçicilerden en bilineni olan Javascript OpenID Selector ile ASP.NET üzerinde bir üyelik entegrasyonunun nasıl yapılacağını anlatacağım.


29 Eylül 2012 Cumartesi

Web Servisi ile T.C. Kimlik No Sorgulama

T.C. İçişleri Bakanlığı Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü tarafından sunulan T.C. Kimlik No doğrulama web servisi için güncel adres aşağıdaki gibidir:

https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx


12 Eylül 2012 Çarşamba

HTML5 File ve FileReader API'leri kullanarak resim içeriğini Drag & Drop ile almak

HTML5 ile gelen yeniliklerden birisi de File ve FileReader API. Bu W3C'nin sunduğu bu API sayesinde lokal dosya sistemdeki bir dosyalara JavaScript erişimi sağlanıyor. Eriştiğiniz dosyanın içeriğini okuduktan sonra yapılabilecekler hayal gücünüze kalmış oluyor.


30 Ağustos 2012 Perşembe

ORM (Object Relational Mapping) Kavramı, Toolları ve Performans üzerine...

ORM (Object Relational Mapping) denilen kavram, veritabanı gibi bir dış kaynaktan gelen generic veriye karşılık gelen nesnelerin oluşturulup veri transfer işlemlerinde bunları birbirine bağlaması kavramıdır.


AJAX PageMethods nedir?

ASP.NET üzerindeki PageMethods yapısı temelde istemci tarafından sunucu sunucu kodlarının çağırmamızı sağlayan ASMX web servislerine alternatif bir yapıdır. Bu yapıyı ASMX web servislerinden ayıran göze çarpan yapısal farklarından biri, web servislerinde servis örnekleri GET/POST HTTP Requestleri atıldıkça oluşturulmasına karşı PageMethods yapısında Application örneklendiği anda sayfanın adresinde oluşan bir servis yapısı olması ve sadece HTTP POST Request'ine cevap vermesidir.


25 Ağustos 2012 Cumartesi

WPF DataGrid üzerinde programatik olarak nasıl DataGridTemplateColumn oluşturup yönetiriz?

WPF ile ilgilenen çoğu geliştiricinin de bildiği gibi XAML yapısı arka planda yazılacak birçok kodu ortadan kaldırabilmektedir. Ancak Windows Forms geleneğinden gelen kullanıcıların XAML yapısına geçiş sürecinde syntax'a tamamen hakim olamamasından dolayı bazı işlemleri programatik olarak kodla yapmayı tercih etmektedirler.


SQL Server 2005+ ile Index Maintenance


SQL Server üzerinde veritabanı geliştirirken indexleme yapmak performans için kaçınılmazdır. Ancak bazı durumlarda bu indexler kendilerini otomatik olarak güncellemezler. Ve kayıtlar arttıkça performans düşmeye başlar.