Kayıtlar

2018 tarihine ait yayınlar gösteriliyor

DEVEXPRESS BEAK FORM ( FLYOUTPANEL )

Resim
Merhaba arkadaşlar. Bugün Devexpress’in gayet basit ve kullanışlı olan bi tool’undan bahsedeceğiz. Beak Form Win Form’da uyarı ya da notification vermek için ya da bambaşka bişey için de kullanılabilir. Konuyu daha fazla uzatmadan direk mevzuya gireyim. Toolbar’da FlyoutPanel’i aratıp forma sürükleyelim. Bu panelin içine herhangi bir tool atabiliriz. Peki bu araç nerede gözükecek. Yani bi textbox’ın yanında mı yoksa bu panelin üstünde mi yoksa formun kenarında mı işte bunu ayarladığımız property ise FlyoutPanel üzerinde OwnerControl. Burada nerede gözükmesini istediğimizi ayarlarız. Beak Form’u göstermek için ise aşağıdaki satır yeterlidir.    flyoutPanel1.ShowBeakForm(); Bu şekilde projemizi görsel açıdan daha güzel hale getirebiliriz. Devexpress'in diğer tool'larını da ilerleyen zamanlarda işlemeye devam edeceğiz. Şimdilik görüşmek üzere arkadaşlar.

SQL Server Veritabanı Senkronizasyonu

Resim
Merhaba arkadaşlar bugün Veritabanı senkronizasyonu hakkında konuşacağız. Senkronizasyon kelime anlamı olarak eş zamanlılık olarak çevirilebilir. Konudan da anlayacağınız üzere verileri iki sunucu üzerinde eşitleyeceğiz. Genel bilgi olarak bu yönteme mirroring denilebilir. Şimdi ilk olarak Microsoft’un bu iş için geliştirdiği Sync Framework’u buradan indirelim. Daha sonra ise örnek veritabanımızı oluşturalım. Görüldüğü gibi ikinci veritabanını sadece oluşturdum arkadaşlar. İçine tablo dahi oluşturmadım. Şimdi gelelim senkronizasyon yapacağımız C# kodumuza. Öncelikle indirdiğimiz framework’te olan DLL’leri projemize refere edelim.  Eğer herhangi bir sıkıntı yaşamadıysak veritabanımızı senkronize hale getirebilmişiz demektir. Veritabanımızdaki değişikliklere bakalım. Görüldüğü gib tracking tabloları ve schema_info, scope_config ve scope_info tabloları da senkronizasyon ile otomatik olarak oluşmakta. Bu tabloları silebiliriz. Her senkronizasyonda yenide

Angular Notifications Kullanımı

Resim
Merhaba arkadaşlar. Bugünkü yazımızda Angular'da notification'lardan bahsedeceğiz. Aşağıdaki gibi bir görüntü ortaya çıkacak. Şimdi ilk olarak projemizi VS Code ortamında açalım. Sonra package.json içerisinde "  dependencies   " kısmının içine tırnak içinde "  angular2-notifications  " yazalım. İki nokta koyduktan sonra bize kararlı sürümleri gösterir. Bunlardan herhangi birini seçebilirsiniz. Bu projede 0.9.8 sürümü seçilmiştir. Daha sonra projemizi kaydedip View --> Integrated Terminal ekranında " npm install " komutunu yazalım ve notification için gerekli dosyalarımız yüklenmeye başlasın. Şimdi indirdiğimiz dosyaları projemizde kullanabilmek için import edelim. app klasörünün altında app.module.ts isimli dosyamızı açalım ve SimpleNotificationsModule, NotificationsService sınıflarını import edelim. import {SimpleNotificationsModule,NotificationsService} from 'angular2-notifications' Sayfada aşağılara doğru inelim ve Ng

İlk Angular Projesi ve Angular Tanımlamaları

Resim
Merhaba arkadaşlar. Bugün Angular ile ilk projemizi yapacağız. Basit bi uygulama olacak. Ama Angular yapısını öğrenmek için güzel bi örnek olduğunu düşünüyorum. Daha fazla uzatmadan projeye geçelim. Angular'da bir sınıfta tuttuğumuz öğrencileri ekranda listelemek istiyoruz. Şimdi ilk olarak bi component oluşturmamız gerekiyor. Bu component'i terminal ekranından ekleyeceğiz. VS Code içinde terminal ekranını açmak için  View --> Integrated Terminal menüsüne gidin. Aşağıdaki komutu yazın. "  ng g component student  " Dikkat ettiyseniz component oluştuktan sonra app klasörünün altına geldi. Şimdi biz student klasörünün üzerine sağ tıklayıp iki adet yeni dosya oluşturucaz. İlk dosyamız "student.ts" olacak. *  export --> Nesne yönelimli programlama dillerinde olan public'le aynıdır. *  Angular'da int,double,float vb. gibi tanımlamalar yerine direk number yazılır. İkinci dosyamız ise " student-list.ts " olacak.

Herhangi Bir Dosyayı Kendi Programımızda Açmak

Merhaba arkadaşlar. Bugün kendi uzantımız ile oluşturduğumuz dosyalarımızı yine kendi programımız üzerinden açmayı anlatmaya çalışacağım. Giriş biraz karmaşık oldu ama şöyle açıklamak istiyorum. .txt uzantılı dosyalarımız nasıl ki default olarak not defterinde açılıyor, bizde aynı şekilde bi uygulama ile örneğin .muharrem uzantılı dosyayı kendi projemizde açacağız. Gerekli yerlerde kullandığınızda büyük kolaylık sağlayacak olan projemize başlayalım. İlk olarak txt üzerinden örnek verdik ordan gidelim. Formumuza bi tane richTextBox atalım. İçerisindeki yazıyı görebilmek için. Şimdi formumuza yeni bi ctor tanımlayalım. Bu ctor çift tıklayıp açtığımızda çalışacaktır. Diğer ctor'u da silmeyelim ki direk açılışlarda orası çalışabilsin. string temp; public mainForm(string path) {             InitializeComponent();             temp = File.ReadAllText(path); } Daha sonra program.cs dosyasına gelip aşağıdaki kodları yazalım. Yukarıdaki kod bloğu ile kayıt defteri

Angular Projemiz ve VS Code Ortamı

Resim
Projemizin olduğu dizinde " code . " yaparak projemizi VS Code'da açılacağını söylemiştik bir önceki yazımızda. Şimdi ise karşımıza gelen ekranı tanıyalım. e2e à Unit test gibi testlerin konfigürasyonunu içerir. Node_modules à İndirdiğimiz paketlerin dosyalarını içerir. (angular, bootstrap, jquery gibi) Src à   Uygulamanın olduğu klasördür.             App à                      App.component.css dosyası app component’ine özel css’dir.                      App.component.html app component’inin HTML’idir.                      App.component.spec.ts app component’in unit testidir.                      App.component.ts app component’in kendisidir.                      App.module.ts ise uygulamamızın root modülüdür. Bir modülün modül olabilmesi için          içerisindeki @NgModule’den tanımlanması gerekir. App üzerinde bilerek bu kadar öok durdum. Çünkü projeyi geliştirirken en çok çalışacağımız kısımdır.            Assets à Fotoğ

Angular Nedir? Kurulum ve İlk Proje

Resim
Merhaba arkadaşlar. Bugün Angular yazı serisine başlıyoruz. İlk olarak Angular nedir, ne için kullanılır gibi sorulara cevap verelim. Gerekli kurumlarımızı yapalım ve diğer yazımızda ise çalışma ortamını tanıyalım. Angular; javascript tabanlı açık kaynak kodlu yazılım geliştiricilerin web, mobil ve masaüstü ortamda kolay uygulama geliştirmelerini sağlayan, Google tarafından desteklenen bir MVC platformudur diyebiliriz. Angular Single Page Application uygulamalar geliştirmemize olanak sağlayan bir frameworktür. Peki nedir bu Single Page Application(SPA)? İnternet sitelerinin hemen hemen hepsi HTML, CSS, JavaScript, backend' de ise PHP ya da ASP kullanarak geliştiriliyor. Bu geliştirme türlerinde ise sayfalar arası geçiş yaptığınız da bütün kodlar yeniden yükleniyor. Yazdığınız Javascript kodları, CSS kodları tekrar tekrar yüklenmektedir ki bu da ciddi bir kaynak israfı anlamına geliyor.  İşte burada devreye SPA giriyor. Sayfayı yeniden yüklemek yerine sade

DLL Dosyalarını Exe'ye Gömme

Resim
Projemizde dll kullanmışsak exe’nin olduğu yerde bu dosyalar olmalı ki program çalışabilsin. Yaptığımız işi bir başka bilgisayarda çalıştırabilmek için ya bu dll’lerin olduğu dosyayı da atmalıyız ya setup yaparak programı o bilgisayara kurarız ya da sadece exe dosyasını atarız. Tabi bu son işlem için projemizde kullandığımız dll’leri exe dosyamıza gömmemiz gerekli. Araştırmalarım sonucu bunun için 2 yol buldum. -           ILMerge ile dll’leri gömeriz -           Ya da bu işlemi kendimiz VS ile yaparız. ILMERGE ILMerge’yi buradan indirebilirsiniz. 1 -) Add Assemblies butonu ile dll dosyalarımızı ve exe dosyamızı seçelim.       2 -) Bu adımda oluşturulacak exe’nin nereye oluşturulacağını seçelim.       3 -) Merge! butonu ile işlemi başlatalım. Dll dosyalarının boyutuna ve sayısına göre 1-2 dakika içerisinde dosyamız oluşmuş olacak. VS ile DLL gömme 1 -) References kısmından dll’lerimizi seçip özelliklerine gideriz ve “Copy Local” property’sini  False olara

Abstract Factory Tasarım Kalıbı

Resim
Abstract Factory tasarım kalıbı, aralarında ilişki bulunan sınıfların nesnelerinin üretiminden sorumlu olan sınıfların tasarlandığı tasarım kalıbıdır. İsminden de anlaşılacağı gibi fabrika olarak düşünülebilir. Bu fabrikamız bize sınıfların nesnelerini üretir. Nesneler üretilirken IF gibi karar mekanizmaları ile kod karmaşasına gerek olmadan aynı abstract sınıfı ya da interface’i uygulayan sınıflar bizim factory’miz olur.  Abstract Factory UML  Daha fazla uzatmadan bir örnek ile anlamaya çalışalım. Örneğimizde bir buton tasarladığımızı düşünelim. Web’de farklı Android’de farklı şekilde tasarlandığını varsayalım. Bunun için uygulamanın koştuğu platforma göre buton değişmeli. Öyle bir program yapalım ki Android’de butonu farklı göstersin Web’de farklı. Uygulamanın class diyagramı

Iterator Tasarım Kalıbı

Resim
Iterator tasarım deseni dizilerin, listlerin, queue’ların elemanlarını dolaşmak için kullanılan tasarım desenidir. En önemli özelliği dizi, queue ya da list olması bilinmeden elemanları üzerinde işlem yapabilmesidir. UML diyagramı aşağıdaki gibidir.   Uygulamamızda TV kanalları listemiz olsun. Bu kanallar arasında dolaşmak istiyoruz. Sınıf diyagramı aşağıdaki gibidir. TVKanali Sınıfı   IKanalIterator Interface IKanalAggregate Interface KanalConcreteAggregate Sınıfı KanalConcreteIterator Sınıfı Form Ekranı

Facade Tasarım Kalıbı

Resim
Facade tasarım deseni uygulaması en kolay desenlerden biridir. Genel hatlarıyla bazı işlemlerin gerçekleşmesi için sınıfların kullanılması gerekiyorsa, client tarafında bu kod karmaşasına bulaşmaması için facade patern’i kullanılır. Bu desenle kodlar daha okunaklı olur. UML diyagramı aşağıdaki gibidir. Uygulamamızda sisteme üye eklemek isteyelim. Ve bunun için birkaç kontrol yapmamız gerekiyor olsun(TC numarası ve diğer işlemler olabilir). Uygulamamızın sınıf diyagramı aşağıdadır. Facade Sınıfı Sistem Sınıfı Kontrol Sınıfı TCKontrol Sınıfı Program

Decorator Tasarım Kalıbı

Resim
Elimizdeki mevcut sınıfa, bu sınıfa müdahale etmeden ek özellikler eklemede kullanılan tasarım kalıbıdır. Mevcut sınıftan yeni bir sınıf kalıtarak bunu yapabiliriz. Ama şöyle düşünelim. Kahve sınıfımız var. Bu sınıfa ek özellikler eklemek için sınıf kalıttığımızı düşünelim . * Class Diyagramı yukarıdaki gibi olmamalıdır. Temsili bir çizimdir. Yukarıdaki gibi bir class diyagramının çıkması olasıdır. Bunun gibi karmaşık sistemlerde uğraşmak yerine Kahve sınıfına decorator kalıbını kullanarak yeni özellikler ekleyebiliriz. Decorator Tasarım Kalıbı Class Diyagram

Adapter Tasarım Kalıbı

Resim
Önceki projelerimizde kullandığımız bir sınıf ya da farklı kişilerin geliştirdikleri sınıflar elimizdeki sistem ile uyum sağlayamayabilirler. Böyle bir  durumda bir adaptör yazarak sınıfları sisteme uyumlu hale getirebiliriz ve sınıflarda kod değişikliği meydana gelmez. Ayrıca adapte edilen nesnenin desteklemediği özellikler de adaptör tarafından gerçekleştirilebilir. Gözlemci tasarım kalıbı için tıklayın..

Observer (Gözlemci) Tasarım Kalıbı

Resim
En çok bilinen kalıplardan biridir. Hangi tasarım kalıbı kitabını açarsanız açın büyük ihtimalle Observer kalıbını anlatmıştır. Bir nesnenin durumunda değişiklik olduğunda, bu değişiklikten haberdar olmak isteyen diğer nesnelere haber verilmesi gereken durumlarda kullanılır. Yani birden fazla gözlemci tek bir nesneyi sürekli gözlemler. Bir değişiklik olduğunda gözlemcilere haber verilir. Şimdi haber sitesi yaptığımızı düşünelim. Biz haberleri AA’dan çekelim. Bu haberleri sitemize çekme işini iki şekilde yapabiliriz. -           Her dakika AA’nın sitesine bağlanıp yeni bir haber var mı diye bakarız. -           Ya da AA’nın sitesini gözlemleriz ve bir değişiklik olduğunda bağlanır haberi öylelikle çekebiliriz. Bunu şu şekilde yaparız. Bize bağlanıp bizden haber alan gözlemcilerin içine birer tane update fonksiyonu koyarız. (Ya da gözlemci koyar.)  Kısacası her dakika sunucuyu meşgul etmek yerine sunucuda bir değişiklik olduğunun haberini alırız ve ihtiyacımız olduğun

Tasarımlarım

Resim
Merhaba arkadaşlar.. Kendi yaptığım Windows Form tasarımlarını sizlerle de bir fikir olması  amacıyla paylaşmak istedim. Tasarım - 1 Tasarım - 2 Tasarım - 3

Singleton Tasarım Kalıbı

Resim
Singleton kalıbı, bir sınıftan sadece bir nesne oluşturulmasını amaçlar. Birden fazla objenin olmaması amacıyla kullanılır(Sunucu yapısı gibi). Diğer bir kullanım alanı ise bir sınıftan kaç adet nesne oluşturulması gerektiğinin kontrol edilmesidir. Örneğin; 3 tane obje olsun ne az ne de fazla olmasın diyebiliriz. Aşağıdaki UML'de dikkat edilmesi gereken en önemli nokta SingleObject sınıfının constructor’ı private’dır.

Tasarım Kalıpları (Design Pattern)

Tasarım Kalıbı Nedir? Tasarım kalıbı(Design Pattern), bir problemin çok tekrar etmesi sonucunda edinilmiş tecrübelerin bir araya getirilmesiyle elde edilmiş kalıplardır. MVC buna bir örnektir. Neye Yarar? OOP’de sınıflar kendi içerisinde tutarlı olmalı ama diğer sınıflara olan bağımlılığı en az olmalıdır (Low Coupling). Yazılımın modüllerinin tekrar kullanılabilir, sistemden çıkarılabilir ve üzerinde değişiklik yapılabilir esneklikte olması beklenir. Tasarım desenleri OOP’nin bu gibi prensiplerine uymamızı sağlarlar. Tasarım desenleri, daha önceden test edilmiş, yararları görülmüş ve ispatlanmış olduğu için geliştirme sürecinin hızına etki eder. Desenleri bilen biri kodu daha okunabilir yazar ve sonradan koda bakan kişiler için kolaylık sağlar. * Yararlanılan Kaynaklar     http://www.tasarimdesenleri.com

Asp.Net MVC Result Türleri

MVC’de Controller’da kullandığımız action metodlarının geri döndürebilecekleri ActionResult türleri aşağıdaki gibidir. ViewResult à Geriye HTML döndürür. View klasörünün altındaki ilgili .cshtml sayfasını döndürür. JsonResult à Verileri Json olarak döndürür. PartialViewResult à Geriye yine HTML döndürür fakat kabaca genel HTML(head, body) yerine küçük bir HTML tagını döndürür. EmptyResult à Geriye boş sayfa döndüreceksek kullanılacak result türü. ContentResult à Herhangi bir içerik döndürebilir.(string vb.) FileResult à Dosya döndürmek istiyorsak kullanılır. RedirectResult à Yönlendirme yapmak istiyorsak kullanabiliriz. HttpNotFoundResult à Sayfa bulunamadı ekranı döndürür. HttpUnauthorizedResult à Üye girişi yapılmasını sağlayan result türü. JavascriptResult à Script kodlarını geri döndürür. * Yararlanılan Kaynaklar     http://www.muratoner.net