-
-
kendi blog sayfam üzerinde (www.molks.org) 6 tane içerisinde bolca kod örneği olan yazı var.. entity framework çalışırken karalamıştım...eğer örnek kodlara ihtiyacın varsa faydalı olabilir..
-
içerisinde entity'ler olan bir dll hazırlıyorsan aynı dll içerisinde farklı class'lar oluşturarak geriye list<class> döndüren veya entity'lerini parametre olarak alıp insert update gibi işlemlerini yapacak methodlar yazabilirsin böylece web uygulaman içerisinde sunum kısmında sadece entity'lerini kullanarak database işlemlerini gerçekleştirirsin ve sunum katmanı ile data katmanı birbirinden ayrılmış olur..2.sorunda önce database mi yoksa class'lar mı tasarlanmalı diye soracaktın sanırım..yaygın kullanım önce database'in tasarlanması ama eğer entity framework 4.0 kullanıyorsan önce entitylerini tasarlayıp bu entity'lerden database generate eden bir yapı var..bu şekilde yaklaşım belki projeye daha object oriented bakmayı sağlıyordur bilemiyorum ama daha farklı bir avantaj da göremedim açıkcası..bu şekilde mapping yapanlara sormak lazım.
-
Evet var.Ağ bağlantıları , veritabanı bağlantıları gibi Garbage Collecter'in nasıl serbest bırakacağını bilmediği kaynakları bir şekilde bizim Dispose etmemiz gerekiyor.Bunun içinde yıkıcı methodları kullanıyoruz veya class'i IDisposable interface'inden implemente ettirerek Dispose methodunu eziyoruz ve bu işi kendimiz yapıyoruz..Ve bu dispose() close() gibi methodların olası exception durumlarında kesin olarak çalışacağından emin olmak için finally{} bloğu tanımlamamız gerekiyor.Bu şekilde çok fazla kodumuz var ise çok fazla finally{} bloğu kullanmak kodun estetiğini bozacaktır , oysaki using ifadesini kullanarak IDisposable interface'inden implemente olan bir class'in Dispose() methodunun çalışacağından kesin olarak emin olursunuz.Finally{} kontrolüne gerek kalmaz.Aralarında ki fark bildiğim kadarı ile bu.
-
Yakın zamanda bende buna benzer bir uygulama yapmıştım.Aklıma gelen , sebep olabilecek 2 tane neden var birincisi veritabanında kayıtlı olan kolon isimleri.Eğer Impressions yerine soruda da yazdığın gibi Impression dediysen büyük ihtimal algılayamıycaktır datatable dan gelen değeri.2. si ise kolonun veri tipi.. Belki integer yerine string veri tipi ile tanımladıysan o yüzdende dogru sonuç alamıyor olabilirsin.Yani normal şartlarda Impressions tag'ına veya database değerine atadığın değerler birbirlerine oranlanır ve ona göre büyük olan daha çok gözükür..2. sorun için ise , tıklanma sayısı ve görüntülenme sayısını almak için Adrotator kontolünün AdCreated event indeki AdCreatedEventArgs class ından faydalanacaksın.. Bu EventArgs sınıfı üzerinden o an gösterilmekte olan resime ait ImageUrl , NavigateUrl gibi değerleri alabiliyorsun..Bu değerler sayesindede kaç kez tıklandı , kaç kez gösterildi vs kaydedebilirsin.
-
Aşağıda yazdığım gibi kodlarsan olacaktır ;
RouteTable.Routes.Add("urun", new Route("Urun/{kategoriadi}/{urunadi}" + ".htm", new PageRouteHandler("~/Default.aspx"))); -
İş katmanı ,sunum katmanı ile veri erişim katmanı arasında durur ve sunum katmanı direk olarak veri erişim katmanına ulaşamaz..Veri erişim katmanıda bildiğin gibi direk olarak veritabanına erişir ve veri manüpulasyonlarını gerçekleştirir ve döndürdüğü result set leri iş katmanında oluşturulan entity lere setler..Bu entity ler veritabanında ki tablolara karşılık gelen sınıflardır.
-
Ask.fm ilk defa duydum.Sanırım bu siteyle aynı işi yapıyor o yüzden şuan için gerek yok..Zaten bana ulaşmak isteyen mail yoluylada ulaşıyor.Eğer hakim olduğum bir konu ise o şekilde de yardımcı olmaya çalışıyorum.
-
Decimal tipi için virgülden sonraki 2 haneyi alarak geri kalanını yuvarlamana yarıyor örneğin ;
decimal x = 12.4679363463M;
string y = x.ToString("F");
y nin değeri 12,47 olacaktır. -
Yazdığın koddaki Dictionary generic bir koleksiyondur..İçerisinde key - value şeklinde değer tutmanı sağlar..Generic oldugundan dolayı tip güvenliklidir yani sadece string tipinden key ve customer tipinden value girebilirsin.İçerisine başka herhangi bir tip üzerinden atama yapmak istediğinde hata verecektir.
-
Silmek istiyorum derken sanırım yapmak istediğin şey kolonun içindeki değerleri Null'a eşitlemek yani güncelleme işlemi yapmak istiyorsun..Basit bir t-sql kodu yazacaksın. Update TabloAdi Set KolonAdi = null , tabi burada null'a eşitleyeceğin kolonun , tablo oluşturulurken null geçilebilir olarak design edilmiş olması önemli.Bu şekilde ilgili Query'i SqlCommand içerisine yazıp execute edersen sorunsuz çalışacaktır.
-
BinaryFormatter Binary Serialization yaparken kullanılır.Yani herhangi bir nesneyi alıp byte koduna çevirerek daha kolay taşınabilir,dağıtılabilir hale getirmek için. İkinci soruna gelince ; sonuçta serileştirmek istediğin dosyayı disk üzerinde yaratmak zorundasın örneğin dosya.dat ise binary olarak kaydedeceğin dosya , bunun yaratılması için FileStream class'ının kullanılması gerekiyor.Ve bu yaptığın işlemin tam tersini ( Deserialization ) düşünürsende , bu işlemi yapmadan önce serialize edilmiş dosyaya FileStream üzerinden path göstererek ve FileMode.Open diyerek ulaşman gerekecek çünkü içini açacaksın o dosyayın geri döndürmek için.
-
Blog olarak ;
1) http://www.buraksenyurt.com/
2) http://www.hanselman.com/blog/
Video ve makale paylaşım yapanlardan ;
3) http://csharpnedir.com/
4) http://nedirtv.com/
5) http://channel9.msdn.com/
Forum olarak ;
6) http://www.ceturk.com/forum/
7) http://stackoverflow.com/
en düzenli olarak girip baktıklarım bunlar heralde. -
Açıkçası en çok hoşuma giden yenilikler modelleme ile alakalı.VS 2010 ile beraber Modeling project oluşturup class diagram , sequence diagram , use case diagram , activity diagram , layer diagram gibi yapılar oluşturabiliyoruz.. Aslında bundan daha da güzel olanı bir methoda sağ tıklayarak kod üzerinden de sequence diagram oluşturabiliyoruz : ) Architecture sekmesi altından dependency graph lar oluşturup projemize kuş bakışı bakarak bağımlılıkları analiz edebiliyoruz..büyük , küçük bütün projelerde analiz ve dokumantasyon çok önemli ve vs 2010 ile beraber bu önem dahada ön plana çıkarılmış gibi gözüküyor.
Modelleme ile alakalı channel9 da oldukça güzel bir video seriside var : http://stackoverflow.com/questions/3373612/channel-9-video-series-uml-with-vs2010-ultimate -
Smtp ile mail gönderebiliyorsan eğer toplu mail atmak çok zor değil.Öncelikle mail adreslerinin içerisinde bulunduğu bir mail list collection oluştur.Burada mail adresleri , ad , soyad gibi bilgiler büyük ihtimal database üzerinden alınacak ve koleksiyona eklenecek.
2.adımda ise SmtpServerSettings isminde bir class oluşturabilirsin çünkü serverIP , username , password , ssl ve port gibi değerleri System.Net.Mail namespace'i altında bulunan SmtpClient class'inin property'lerine set etmen gerekecek örneğin ;
SmtpServerSettings settings = new SmtpServerSettings("mail.molks.org", "molks@molks.org", "pass", false, 587);
Burada ssl 'i false verdim eğer gmail 'in smtp'sini kullanacaksan true ver yoksa mail'i göndermez.
3.adımda SmtpTopluMail adında bir class oluşturabilirsin.Class ın içerisinde gonderenin email adresini , adini , mesajın konusunu , metin formatını ( html veya text ) ve yollanacak metini setletebilirsin.
Artık toplu mail ' i gönderirken yapman gereken tek şey mesajın gönderileceği kişi sayısı kadar veya mail list collection 'ın lenght 'i kadar bir döngü yaratmak ve döngü içerisinde System.Net.Mail namespace'inin altında bulunan MailAdress class'larinin örneklerini MailMessage class'ina Add methodu ile eklemek.Tek püf nokta bu.Örn ;
MailMessage mm = new MailMessage();
MailListCollection Mail_list;
foreach (Mail item in Mail_list)
{
mm.To.Add(new MailAddress(item.mailAdres, item.mailSahibiAdi));
}
Bu açıklamaya göre deneyip hala daha yapamassan bana mail at. -
Aslında çok özel birşey yaptıgıma inanmıyorum.Yazılımı seven ve hayatını bu alanda gelişimine adayan herkez çok yogun bir tempoda çalışarak , hergün nasıl 1 level daha yukarıya atlarımın hesabını yapıyor..hatta var olan zamanını da nasıl daha verimli geçirebileceğini planlamaya çalışıyor.. Yolda yürürken veya toplu taşıma araçlarında yolculuk ederken bile eline bir kitap alarak veya mp3 çalarını kulağına takarak yeni birşeyler öğrenmeye çalışıyor..Başarılı olmanının sırrıda zaten bu öğrenme isteği ve meraktır..Benim çalışma sistemin ise tamamen planlama üzerine..1 gün sonra , 1 ay sonra , 5 yıl sonra ne yapacagımı , hangi konularda kendimi geliştirmeye çalışacağımı , hangi seviyede olacağımı planlamaya uğraşıyorum ve bu şekilde başarıya ulaşmayı hedefliyorum.Gidilecek çok yol , öğrenilecek çok fazla şey var..Bu açıdan her geçen dakika hem bizim hemde toplum için çok önemli. Ayrıca yazılımda bu yogun çalışma temposunun arkasında motivasyonu körükleyecek bir itici gücün varlığıda çok önemli, motivasyonu ayakta tutanda genelde hedefler oluyor ; bu açıdan bizden daha ileri seviyede olan yazılımcıları takip etmek , çalışma disiplinlerini , attığı adımları , yürüdükleri yolu gözlemlemek kendi hedeflerimizi belirleme konusunda oldukça faydalı oluyor..Çoğu başarılı yazılımcınında bu şekilde kendine model olarak belirlediği çok sayıda yazılımcı oldugunu biliyorum.
-
Bir siteye üye olurken , kayıt alırken veya site üzerinden mail atarken güvenlik kodu istenmesinin nedeni zaten bu tarz istenmeyen girişleri engellemek..Açıkcası amacını ve ne yapmak istediğini tam olarak anlamadım.Biraz detaylandırıp mail adresime yazarsan yardımcı olmaya çalışırım. Mail : molks@molks.org
-
Hmm..Bu nasıl bir oyun geliştirmeyi hayal ettiğinize göre değişir ? Eğer amacınız çok sayıda client'in bağlanıp oynayabileceği tavla , okey tarzı bir oyun ise dağıtık uygulamalar ( Soket , Remooting hatta belki WCF ) üzerine çalışma yaparak güzel bir oyun yazabilirsiniz.. Veya amacınız küçük bir araba yarışı oyunu ise XNA Framework üzerinde çalışmak yeterli olabilir. Tabi amaç World of Warcraft gibi çok büyük ölçekte bir oyun ise ( ki böyle oyunlar çok büyük ekipler ve çok büyük bütçelerle yapılıyor ) C++ daha doğru bir tercih olacaktır.
-
Güzel bir soru.Polymorphism object oriented programlamanın en temel ve işlevsel kavramlarından bir tanesi aslında.Eğer tasarım desenleri ve prensiplerini incelerseniz çoğu desenin bu temel kavram etrafında döndüğünü gözlemleyebilirsiniz. Bir base class'iniz olduğunu hayal edin ( bu class bir interface veya abstract class olarakta düşünülebilir ) ve bu class'ta virtual bir method tanımlansın ve base class'dan inherit olan derived class'lar virtual olarak tanımlanmış methodu ezsin. Siz bir base class collection oluşturarak , base class referansı üzerinden override edilmiş tüm methodlara ulaşabilirsiniz.Yani tek noktadan birden fazla class'i yönetebilmenizi sağlayan güzel bir yapı.
-
Microsoft'un Visio isimli güzel bir aracı var , onu kullanabilirsiniz.Oldukça geniş özelliklere sahip.Bunun dışında daha basit kullanımlı birşey arıyorsan şunu da bir incele ; http://www.horstmann.com/violet/
-
Tarık Kaygusuz’s Bio
http://forum.ceturk.com/members/molks.html
http://twitter.com/TarikKaygusuz
C#.Net Developer
mail : molks@molks.org

