Asp.net MVC ile GooglePlus Api kullanımı

Eylül 21, 2011 at 6:16 aokocax

Google bu hafta içinde Google+ (google plus) için API desteğini kısıtlı özelliklerle de olsa açınca bende .net developerlar için basit bir client yazma gereği duydum.  Google'ın API'ye ek özellikler eklemesiyle birlikte paylaştığım kodları geliştirmeyi planlıyorum. Görüş ve önerilerinizi benimle paylaşırsanız kodların geliştirilmesine katkıda bulunabilirsiniz.

Şu an paylaştığım kodlarda Oauth2 ile yetki alıp bu yetkiyi kullanarak basit bir get sorgusu yapıyoruz. Bir çok arkadaşın konuya yabancı olduğunu düşünerek adım adım ilerleyeceğimiz bir yazı hazırladım.

Adım 1. API Başvurusu

Öncelikle Google'ın kendi uygulamaları için sağladığı API'lere erişim için Google Console aracılığıyla bir API projesi başlatıyoruz Link => https://code.google.com/apis/console

 Fazlası...

Posted in: Asp.Net | Makaleler

Tags: , , ,

Sql Server LocalDB tanıtımı

Ağustos 10, 2011 at 8:43 aokocax


Microsoft bir kaç hafta kadar önce SQL Server Denali CTP3’ün duyurusunu yaptı ve yeni sürümle birlikte Sql Server Express’e developer ihtiyaçları gözetilerek yeni bir ekleme yapıldığını duyurdu. LocalDB olarak adlandırılan bu ekleme ile developerlar geliştirme yaptıkları makinalara bütün bir sql server örneği (instance) yükleme zahmetinden kurtulabilecekler.

Bilindiği gibi Sql Server Express, ücretli Sql Server versiyonlarının çeşitli limitlerle sınırlandırılmış bir versiyonu ancak bu sürüm diğer ücretli versiyonlar ile tamamen uyumlu çalışmakta. Öyleki gerekli lisans anahtarlarıyla bile Sql Server’inizi daha üst versiyonlara taşıyabiliyor ve limitleri kaldırabiliyorsunuz. Bu imkan aynı zamanda developerların geliştirme yaptıkları makinaların sistem kaynaklarını sql server’a ayırma problemi ile birlikte geliyordu. LocalDB ile Microsoft, Sql Server'a API seviyesinde uyumluluk getirerek bu kaynak problemini ortadan kaldırmak adına yeni bir yaklaşım getirmiş oldu.

LocalDB hakkında bazı bilgiler.

1) LocalDB, diğer Sql Server versiyonları gibi sqlsevr.exe’yi kullanmaya devam ediyor. Uygulama Sql Server’da olduğu gibi bütün client side provider’ları ile çalışabilmekte (ado.net,odbc v.s.).

2) Windows Servisi olarak değil Proses(Process) olarak çalışmakta (servis olarakta çalıştırılabiliyor), bağlantının kopması ile birlikte bir kaç dakika içinde kendi kendini kapatmakta.

3) AttachDbFileName Property’si ile veritabanı dosyanızı spesifik bir konuma koyma imkanı sağlıyor.

4) Veritabanı servisleri bulunmamakta.

5) Şu an için LocalDb kurmak için Sql Serrver Expres kurup LocalDb özelliğini seçmelisiniz ancak daha sonra bu zorunluluk daha sonra ortadan kaldırılacak.

Kaynaklar

 

Posted in: Kaynaklar | Makaleler

Tags: , ,

Veri tabanı tasarımı için 20 ipucu

Temmuz 31, 2011 at 10:45 aokocax

1) Tutarlı ve iyi tanımlanmış tablo/sütun isimleri kullanın. ( Okul, Ogrenci, KursNO)

2) Tablo isimleri için çoğul isimler kullanmayın ( Ogrenci/Ogrenciler Student/Students) Tablolar zaten varlık koleksiyonlarını içerirler çoğul kullanmanıza gerek yoktur.

3) Tablo isimlerinde boşluk karakteri kullanmayın. Eğer kullanırsanız veritabanı sunucusu tipine göre sorgularınızda köşeli parantez, süslü parantez gibi ekstra ifadeler kullanmak zorunda kalabilirsiniz bu da kodlama sırasında hatalar yapmanıza sebep olabilir.

4) Tablo isimlendirirken gereksiz ön ek ve son eklerden kaçının (tblOgrenci, OgrenciTbl, OgrenciTablosu)

5) Şifre alanlarını kriptolayarak saklayın. (MD5, SHA1, bazı alanlar için base64 v.s.)

6) Bütün tablolarınıza sayı değeri barındıran bir kimlik sütunu bulundurun (Id alanı). Başlangıçta lazım olmasa bile ilerde lazım olma ihtimali yüksektir. Ayrıca bazı ORM araçlarının tablo üzerinde işlem yapmak için benzersiz bir ‘id’ alanına ihtiyaç duyduğunu aklınızda bulundurun.

7) Index oluşturmak için sayı (integer) tipli alanları tercih edin. Karakter (char/varchar) seçmeniz performans problemlerine neden olabilir.

8) Mantıksal (boolean) veri tipi için ‘bit’ tanımlaması kullanın. Karakter veya sayı kullanmanız gereksiz alan tüketimine sebep olur ayrıca bu alanlar için ‘Is’ öneki kullanabilirsiniz (İngilizce).

9) Veri tabanı için yetkilendirme sistemi kullanın, her kullanıcıya ‘yönetici’ admin rolü vermeyin.

10) Gerekmedikçe tablonuzdaki bütün sütunları seçen, ‘select *’ sorgusundan uzak durun. Sorgunuzda sadece gerekli sütunları isteyin.

11) Uygulamanız büyüdükçe ORM araçları kullanmaya yönelmeseniz. Başlangıçta performans kaybına neden olsa da ince ayar yaparak problemlerin üstesinden gelebilirsiniz.

12) Büyük ölçekli ve fazla kullanılmayan tabloları performans arttırmak amacıyla farklı disklerde tutmaya çalışın.

13) Büyük, hassas ve kritik önemi olan veritabanlarınız için yedekleme ve data güvenlik sistemleri kullanın (failover clustering, auto backups, replications)

14) Data bütünlüğünü sağlamak amacıyla alan kısıtlamalarını kullanın bütün denetleme işini uygulamanıza bırakmayın.

15) Varlık yapınızı, tablo ilişkilerinizi dokümente edin. Kullandığınız tetikleyicilerde (trigger) ve saklı prosedürlerde (stored procedures) yorum satırları ile yaptıklarınızı anlatın.

16) Büyük tablolar üzerinde çok kullandığınız sorgular için indexlemeye gidin. Analiz araçları hangi alanlarda indexlemeye gitmeniz gerektiği konusunda size yardımcı olabilir. Büyük çapta sonuç döndüren sorgular için ‘clustered index’ler, tekil sonuç döndürenler için ise ‘non-clustered’ indexler genellikle daha iyidir.

17) Veritabanı sunucusu ile web sunucusunu (uygulama sunucusu) farklı fiziksel makinalarda tutmaya çalışın. Bu hem performası (farklı cpu ve disk alanı kullanımından dolayı) artırır hem de daha fazla güvenlik sağlar (hack ataklarına karşı)

18) Sık kullanılan tablolarda resim (image) alanına yer vermeniz performans problemlerine sebep olabilir. Bu alanları farklı tablolarda tutmaya çalışın.

19) Gerektiğinde performansı arttırmak için normalizasyon (http://tr.wikipedia.org/wiki/Normalizasyon) yapmalısınız. Normalizasyonun az ya da çok olması performans problemlerine sebep olabilir.

20) Veritabanı modelleme ve tasarımı için daha fazla zaman ayırın. Eğer ayırmazsanız bu sizi bakım işlemleri sırasında aşırı vakit harcamak ve tablolarınızı yeniden dizayn etmek zorunda bırakabilir Orjinal Makale

 

Orjinal Makale 

20 Database Design Best Practices

http://codebalance.blogspot.com/2011/07/20-database-design-best-practices.html

 

 

 

Posted in: Makaleler

Tags:

Android Market Alternatifleri

Eylül 24, 2010 at 6:40 aokocax

android marketBilindiği üzere Türkiye'de Turkcell aracılığıyla satılan telefonlardan Android Markete direkt erişim mümkün değil.
Durum böyle oluncada telefonunuza yeni uygulamalar yükleyebilmek için başka kaynaklardan programları indirmek durumunda kalıyoruz.
Bu yazıda bende şu an android markete alternatif olarak ".apk" formatındaki bu uygulamaları bulabileceğiniz market alternatiflerini listeledim.
Bu sitelerde bulunan ".apk" uzantılı programları bilgisayarınıza indirerek usb'den cep telefonunuza atabilir veya direkt telefonunuzuz tarayıcısından programları indirerek kurabilirsiniz.

Not 1: Yeni siteler buldukça bu yazıyı güncellemeye çalışacağım, sizde yorumlarınızla bildiğiniz siteleri paylaşırsanız sevinirim.
Not 2: Bu sitelerdeki programları indirip cihazlarınıza kurmanız tamamen yasal olup sitelerden birkaçı ücretli programlara da yer vermektedir.

http://www.freewarelovers.com/android

http://slideme.org/

http://andappstore.com/AndroidApplications/category/

http://android.pdassi.de/

http://www.androidgear.com/en

http://www.getjar.com, mobil => http://m.getjar.com

http://getandroidstuff.com/

 

Posted in: Android | Makaleler | Mobil

Tags: , , , , , , , , ,

Linq ile RSS feed okuma

Ekim 7, 2009 at 5:34 aokocax

Linq kullanarak RSS okumak için aşağıdaki kod blogunu kullanabilirsiniz, RSS standartlarında "link" tagiyla içeriğin URL adresine ulaşabiliyorken feedburner gibi servislerde <feedburner:origLink> tagiyla orjinal URL adresini alabiliyoruz bu yüzden kodlar feedburner'a göre optimize edilmiştir.

            XDocument XD = XDocument.Load("http://www.rssaddress.com/address.rsss);

            var x = (from it in XD.Descendants("item")
                     orderby DateTime.Parse(it.Element("pubDate").Value) ascending
                    //  where DateTime.Parse(it.Element("pubDate").Value) > datetime
                     select it.Elements()).ToArray();

                foreach (var itemx in x)
                {

                        string Title="";Link="";DateTime pubDate;

                        foreach (var itemsub in itemx)
                        {

                            if (itemsub.Name == "title")
                            {
                               Title=itemsub.Value;
                            }

                            if (itemsub.Name == "pubDate")
                            {
                                pubDate = DateTime.Parse(itemsub.Value);

                            }
                            if (itemsub.Name == "link")
                            {
                                Link = itemsub.Value;
                            } // feedburnerservisi kullanılmaktaysa direkt URL Addresini almak için bu blokla origLink'i alıyoruz, tag yoksa exception fırlatmaz
                            if (itemsub.Name == "{http://rssnamespace.org/feedburner/ext/1.0}origLink")
                            {
                                Link = itemsub.Value;
                            }
                        }

              }

 

İyi kodlamalar

 

 

Posted in: Asp.Net | Makaleler

Tags: ,

Entity Framework ile ilişkili tablolardan kayıt silme

Ocak 5, 2009 at 1:32 aokocax

A relationship is being added or deleted from an AssociationSet 'FK_Table2_Table1'. With cardinality constraints, a corresponding 'Table2' must also be added or deleted.

Bu aralar projelerimde EF kullanıyorum ve muhtemelen Frameworkta bulunan bir hatadan kaynaklanıyor olacak ilişkili tablolardan kayıt silerken yukardaki hatayı alıyorsunuz. Ben kendi modelimde 1:Many:1 ilişkili bir kaydı silmeye çalıştığımda bu hatayı aldım.
Bu sorunu çözmek için internette yaptığım araştırmalar sonucunda yapılması gereken üç farklı adım olduğunu buldum. EF framework'u projelerinde kullanacak arkadaşlar için bu üç küçük adımı anlatmanın faydalı olacağına inandığım için sizlerle paylaşmak istedim.
Fazlası...

Posted in: Asp.Net | Makaleler

Tags: , ,

Bugün internetten yansıyanlar...

Ocak 4, 2009 at 9:53 aokocax
prizmaWeb projelerinizde harcadığınız zamanı ciddi oranda azaltmak için çeşitli yöntemler sıralayan bu makaleye bakmanızda fayda var. Özellikle aynı zamanda hem coderlik hem tasarımcılık hemde bilumum database işlerini yapıyorsanız yazı tam size göre.

Aslında Haziran 2008’den beri yayında olan ama benim yeni rastladığım bir MSDN blog’unu sizlere paylaşmak istedim. Blogda asp.net web developerları için oldukça yararlı ipuçları yer alıyor şimdilik 41 adet ipucu yayınlanmış. RSS listenize eklemenizi öneririm.

Bu yazıda WEB 2.0 tarzı diyebileceğim 53 kadar CSS tekniği ve uygulanışı hakkında bilgi ve yararlı linkler sunuyor. İlginizi çekecek birçok Web 2.0 trendine rastlayabilirsiniz.

Son olarak web siteniz ve/veya blogunuz için Share ( paylaş )  butonu arıyorsanız www.addthis.com sitesi tam işinize yaracak cinsten. Ufak bir örnek vermek gerekirse sadece iki satırlık bir javascript ifadesiyle yazılarınıza bu
butonu ekleyebiliyorsunuz.

Orjinal Resim

Posted in: Kaynaklar | Makaleler | Linkler

Tags:

Alan adı satmak için en iyi yerler

Haziran 10, 2008 at 8:45 aokocax

DotSauce.Com’un editörü olan Mark Fulton alan adı satmak için en iyi yerlerin sıralandığı her domainerin okuması ve favorilerine eklemesi gereken bir liste oluşturmuş. Forumlardan açık arttırma konferanslarına kadar birçok site ve servisin bulunduğu listede ki açıklamaları Türkçeleştirip aynı zamanda benimde üyesi olup önerdiklerimi işaretleyerek sizlerle paylaşıyorum…

 

Forumlar

 

*NamePros - En büyük alan adı forumu.

*DNForum - Mesaj yazmak ve alan adı satmak için ücretli üye olmanız lazım. Oldukça kaliteli bir forum.

*DotSauce - Bu yazının derlendiği web sitesi kendi içinde bir satış alanı barındırıyor.

*DomainState - Bir diğer büyük alan adı forumu.
Fazlası...

Posted in: günlükler | Kaynaklar | Makaleler

Tags:

Alan adı piyasasının en ünlü 10 ismi. 3#

Mayıs 19, 2008 at 8:21 aokocax

Yaklaşık bir haftadır yoğun iş temposu nedeniyle yazmaya bir türlü fırsat bulamıyordum. Neyse ki bugün itibariyle işleri biraz boşaltabildim.
Domain dünyasının en ünlü isimlerini tanıttığım iki yazımın ardından bugünde kalan dört isim hakkında biraz bilgi vererek seriyi sonlandıracağım.
Fazlası...

Posted in: Alan Adı | Makaleler

Tags: , ,

Alan adı piyasasının en ünlü 10 ismi. 2#

Mayıs 13, 2008 at 10:11 aokocax

Bob Parsons, Tim Schumacher ve Adam Dicker’i tanıttığımız ilk yazımızın ardından alan adı piyasasındaki diğer önemli aktörlere yazımıza devam ediyoruz.

  Fazlası...

Posted in: Alan Adı | Makaleler

Tags: