Abdurrahman KÖKEN | BLOG

just a developer... | Microsoft Student Partner

Snoop-Visual Studio 2010 Algılama Sorunu

Şubat 07
by Abdurrahman Köken 7. Şubat 2010 16:36
Eğer siz de  benim gibi büyük WPF uygulamaların nasıl yapıldığını merak ettiyseniz Visual Studio 2010 Beta 2’nin görsel ağaç yapısını incelemek için Pete Blois tarafından geliştirilen Snoop programını denemişsinizdir.Eğer denediyseniz Snoop’un Visual Studio 2010’nu algılayamadığını da farketmişsinizdir.Bu sorunun tam olarak neden kaynaklandığından emin değildim bu yüzden Snoop programının kaynak kodlarını indirdim ve kodlara biraz göz attım.Algılama sorununa sebep olan satır IsValidProcess property’siydi.

 

Sisteminizde ister VS2008 ister VS2010 çalıştırın farkettiyseniz proseslerde ikisi de devenv  olarak geçmektedir.Biz hangisi olduğunu oradaki açıklama kısmında görüyoruz sadece.Bu yüzden IsValidProcess property’sine devenv geldiğinde otomatikman false olarak atanıyor.Bizim burada yapmamız gereken eğer devenv VS2008 ise false olmasıdır.Property kodlarına şu satırları eklediğimizde artık sorunumuz ortadan kalkacaktır.

if (process.Id == Process.GetCurrentProcess().Id)

  isValid = false;

else if (process.MainWindowHandle == IntPtr.Zero)

  isValid = false;

else if (process.ProcessName.Contains("devenv")&& process.MainModule.FileVersionInfo.FileDescription.Contains("2008")){  isValid = false;} 

else{

 foreach (ProcessModule module in process.Modules){

    if (module.ModuleName.Contains("PresentationFramework.dll") ||module.ModuleName.Contains("PresentationFramework.ni.dll")){

      isValid = true;break;}}}

Yukarıdaki kırmızı ile yazılmış kod satırını yazdıktan sonra eğer çalışan proses VS2008 ise isValid’i false döndrüüyoruz.Uygulamayı çalıştırdığımızda artık Visual Studio 2010’u algıladığını görebilirsiniz.

 

 

 

 

 

 

 

 

İsterseniz uygulamanın benim tarafımdan düzenlenmiş halinin setup dosyasını buradan indirebilirsiniz.Kolay gelsin.

2 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Visual Studio | WPF

Windows 7'de Yerel Grup Politikası

Ocak 27
by Abdurrahman Köken 27. Ocak 2010 00:02

Bu yazımda biraz ilgi alanım dışında kalan konulardan birine değineceğim.Bir yazılımcı olarak sistem mühendislerinin çok iyi bildiği bir konudan bahsedeceğim.Peki  madem yazılımcıyım neden sistemle ilgili bir konuyla ilgili yazıyorum?Cevabı aslında çok basit:)Bir bilgisayar mühendisi olarak evet her şeyi çok bilmek zorunda değilim ama bilgisayarla ilgili bir soru karşıma geldiğinde sorunun cevabını veremesem bile en azından ne demek istediğini anlamak lazım:)Neyse artık yazıma geçeyim.

Sizce çok kullanıcılı bir bilgisayarda kullanıcılara bilgisayarda yüklü programlardan belirli bir kısmını çalıştırabilmelerine izin vermenin  yani kısıtlamanın en kolay yolu nedir?Cevabı Yerel Grup Politikası’dır.Kısaca yerel grup politikasından bahsedeyim.Yerel grup politikası Windows 2000 release olduğunda Active Directory ile beraber gelen çok güçlü bir araçtır.Kayıt defteriyle uğraşmadan bilgisayarınızı kontrol etmeniz için çok fazla seçenek sunar.

Windows 7’de Yerel Grup Politikası’nın kullanabilmek için şunları yapmamız gerekiyor.İlk önce Çalıştır’a “gpedit.msc”  yazıp Yerel Grup Politikası Editörünü açalım.

 

Daha sonra açılan editörde sol taraftaki yönlendirme panelinde şu yolları takip edelim.”User Configuration \ Administrative Templates \ System‘a tıkladıktan sonar sağdaki panelden “Run only specified windows application”ı seçiyoruz.

 

Bu sayede sadece bizim istediğimiz uygulamaların çalışmasına izin verilecektir.Siz isterseniz buradaki farklı politikaları uygulayabilirsiniz.Açılan popup pencerede ilk olarak “Enabled” seçeneğini aktif hale getirip “Show” butonuna tıklıyoruz.

 

Açılan diyalog kutusundaki Value kolonuna çalışmasını istediğimiz programların çalıştırılabilir isimlerini yazıyoruz.Eğer tam hatırlamıyorsanız görev yöneticisdeki “İşlemler tabından bakabilirsiniz.

 

OK butonuna bastıktan sonra bu politikanın uygulanması için OK ya da Apply butonuna basmak yeterli olacaktır.Bu noktadan sonra eğer kullanıcı yukarıya yazdığımız programlar dışında herhangi bir programı çalıştırmak istediğinde çalıştıramayacaktır ve hata mesajı alacaktır.

 

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Windows 7

MSP Webinerleri-Mobile Development

Ocak 20
by Abdurrahman Köken 20. Ocak 2010 16:56

Microsoft Student Partner’ler tarafından gerçekleştirilen Ocak ayı etkinliğinde Gizem Gülşen 21 Ocak günü saat 20.00’de Mobile Development webineri verecektir.
Bu web seminerinde:

Mobile Cihazların Hayatımızdaki Yeri, Microsoft Mobile Teknolojilerinin, Geliştirme Araçlarının örneklerle anlatılması ve Microsoft Tag’den bahsedilecektir.Katılımlarınızı bekliyoruz arkadaşlar!
 

Oturuma katılmak için:
1. Eğer yüklü değilse http://office.microsoft.com/search/redir.aspx?AssetID=XT102227921033&CTT=5&Origin=HA101733831033 adresinden LiveMeeting Programının kurulumunu indirin.

2. Program indikten sonra setup'ı çalıştırarak programı yükleyin.

3. Office Live Meeting'i çalıştırdıktan sonra açılan penceredeki "Location" kutucuğuna webiner günü burada yayınlanan bağlantı kodunu girin.

4. Ardından Join'e basın.

5. Karşınıza adınızı soran bir kutucuk gelcektir, oraya adınızı girdikten sonra yeninden Join'e basmanız webinere bağlanmanız için yeterli. 
 
6.
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032440662&Culture=TR-TR linkine online Kayıt diyerek. Etkinliğe Live ID’nizle (Hotmail, MSN, XBox hesabınız) kayıt olmanız gerekiyor.

7. Daha sonra adresinize gelen bağlantı sağlayıcıyı kullanarak web seminerine katılabilirsiniz. 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Kodu PC Technical Preview Yayınlandı!

Ocak 16
by Abdurrahman Köken 16. Ocak 2010 02:40
 Şu ana kadar Kodu sadece Xbox’da çalışmaktaydı.Fakat şimdi PC ler için Kodu’nun tecnical preview sürümü yayınlandı.Etkileşim için sadece mouse ve klavyenizi kullanabilirsiniz artık oyun konsoluna gerek kalmadı.PC Kodu’yu buradan indirebilirsiniz.

Kodu oyun geliştirmek için yapılmış görsel bir programlama dilidir.Kodu ile ilgili Kodu blog, Planet Kodu ve KoduX gibi web sayfaları bulunmaktadır.Bu web sayfalarını ziyaret ederek Kodu ile ilgili daha çok bilgi edinebilirsiniz.İyi oyunlar.

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Genel

Bir Fikrin Mi Var?

Ocak 16
by Abdurrahman Köken 16. Ocak 2010 02:17

Bir Fiktin Mi Var

Bu yıl dördüncüsü düzenlenecek olan ve bu zamana kadar 101 farklı üniversiteden  1700’ün üzerinde başvuru alarak kıran kırana bir mücadelenin olduğu bir girişimcilik yarışması birFİKRİNmiVAR? tekrardan sizlerle.Üstelik bu sene Microsoft da bu yarışmanın sponsorları arasında.Eğer sizinde bir fikriniz varsa hala ne duruyorsunuz.Bu yarışmaya katılarak siz de fikrinizi gerçekleştirme şansını yakalayıp kendi şirketinizi bile kurabilirsiniz.Nasıl mı?Yarışmanın büyük ödülü tam 1 milyon TL.

Yarışma, Türkiye’den ve yurtdışından, tüm üniversite öğrencilerine (önlisans, lisans, lisansüstü ve doktora) ve akademisyenlere açıktır. (Sadece öğrenciler bireysel başvurabilir. Grup başvurularında en az bir öğrenci olması kaydıyla yarışmamıza tüm girişimcilerimiz başvurabilirler.)

Detaylı bilgi için http://www.birfikrinmivar.com u ziyaret edebilirsiniz

 

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Genel

LINQ to SQL-Veritabanına Dosya Kaydetme ve Okuma

Ocak 13
by Abdurrahman Köken 13. Ocak 2010 14:44

LINQ to SQL , SQL Server’ın varbinary tipini desteklemektedir.Bu sayede veritabana binary olarak dosyalarımızı kaydedebiliriz.Örneğin bir web sitesinde veritabanına kullanıcı profil resimlerininin path’ini  kaydetmek yerine resmi binary olarak kaydedebiliriz.

Veritabanına dosya kaydetme

İlk olarak veritabanımızı oluşturmamız gerekli.Ben kendi veritabanımda Store isimli bir tablo oluşturdum.Tablonun design’ı aşağıdaki gibidir.

Store tablomu tasarladıktan sonra projeme Add New Item diyerek yeni bir LINQ to SQL sınıfı ekliyorum.Daha sonra Server Explorer penceresinden Store tablomu bu sınıfa sürükleyip bırakıyorum.Bu sayfayı kaydedip çıktıktan sonra  sıra geldi dosyamızı veritabanına kaydetmeye.Aşağıdaki kod ile artık dosyamızı veritabanına binary olarak kaydedebiliriz.

NorthWindDataContext ctx = new NorthWindDataContext();

//Store tipinde yeni bir Entity oluşturuyoruz

var stored = new Store();

//Kaydedilecek resmin yolu

string path = @"C:\Users\KullanıcıAdı\Desktop\lf.jpg";

//Kaydedilecek dosyayı byte dizi şeklinde okuyoruz

stored.Binary = File.ReadAllBytes(path);

//Dosyamızın ismini alıp kaydediyoruz

stored.Filename = Path.GetFileName(path);

//Artık oluşturduğumuz entity'yi veritabanına ekliyoruz

ctx.Stores.InsertOnSubmit(stored);

//DataContex'imizde değişiklik olduğu için

//bu değişikliği veritabanına kaydediyoruz

ctx.SubmitChanges(); 

Yukarıdaki kodun gayet açık olduğunu düşünüyorum üstelik her satırın ne iş yaptığını yorum satırlarında da belirttim.İsterseniz bir de kaydettiğimiz bu verileri veritabanından nasıl çekeceğimize bakalım.

Veritabanından binary dosya okuma

Binary olarak kaydettiğimiz verileri diske geri yazmak da kaydetmek kadar kolay.Bunu yaparken ToArray() metodu çok işimize yarayacak:)

string path = @"C:\temp";

var file = p.Stores.First();

File.WriteAllBytes(Path.Combine(path, file.Filename), file.Binary.ToArray());        

Gördüğünüz gibi birkaç satırla  veritabanına kaydettiğimiz binary dosyamızı diske geri yazabiliriz.File sınıfının WriteAllBytes metodunu ve ToArray metodu ile bunu yapabiliriz.Önemli bir nokta veritabanında binary tipinde bir kolon oluşturduğunuzda max 8000 olduğudur.Eğer büyük bir dosya kaydetmeye çalışırsanız “binary data would be truncated” şeklinde bir hata alırsınız.Binary datanın küçültülmesi gerektiği uyarısını veren bu hatayı almamak için önce dosya boyutu kontrolü yapmanızı tavsiye ederim.Kolay gelsin.

  

5 kişi tarafından 4.8 olarak değerlendirildi

  • Currently 4,8/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

LINQ | SQL

Singleton Tasarım Kalıbı

Ocak 08
by Abdurrahman Köken 8. Ocak 2010 15:28
Bu yazımın öncekilere göre biraz farklı olduğunu biliyorum.Önceden proje geliştirirken işime yarayan ya da yeni teknolojileri tanıtan teknik yazılar yazıyordum.Bu yazımda ise Yazılım Mühendisliği’nin vazgeçilmezlerinden biri olan Design Pattern(Tasarım Kalıbı) ‘dan bahsedicem.Bugüne kadar hep teknik konulara değindim fakat bir yazılımcı için daha önemli şeyler vardır:)Özellikle yazılım mühendisleri için bir dilmekten ziyade bir algoritma,tasarım kalıbı ya da UML’i bilmek daha önemlidir.Bunları bildikten sonra geriye yeter ki dil öğrenmek kalsın:)Zaten algoritması yazılmış bir uygulamanın %50’si bitmiş demektir.Artık her dilde yazabilirsiniz.Daha fazla uzatmadan konuya gireyim artık.Bugün tasarım kalıplarından creational pattern olan Singleton Pattern konusuna değineceğim.Singleton tasarım kalıbı belki de tüm kalıplar içerisinde en basiti ve çok kullanılıdır.Bildiğiniz gibi tasarım kalıplarının hepsi yazılım yaparken karşılaştığımız birer sorundur.Uygulamamızda eğer bir sınıftan sadece tek bir nesne üretilmesini istiyorsanız çözüm Singleton kalıbıdır.Aşağıda sınıf diyagramını ve örnek uygulamayı bulabilirsiniz.

UML Class Diyagramı:

 

Örnek Kod: 

class Singleton {

    private static Singleton _instance = null;

    protected Singleton() { }

    public static Singleton CreateInstance()      

       {

       if (_instance==null) {

          _instance = new Singleton();

            }

       return _instance; 

        }   

 }

Koddan da anlaşılacağı gibi ilk olarak static Singleton tipinde bir değişken tanımlıyoruz.Daha sonra yapıcı metodunu protected olarak değiştiriyoruz ki  anahtar kelimesiyle nesne üretilmesin yani dışardan kimse yapıcıyı çağırmasın:)Bunu da hallettikten sonra geriye Singleton tipinde bir değer döndüren static bir metod tanımlamak kalıyor.Bu metod ile de _instance değişkenimiz null’sa bir tane nesne üretiyoruz eğer null değilse yeni bir nesne üretmek yerine var olan nesneyi geri döndürüyor bize.Böylece bu sınıftan sadece tek bir nesne üretebiliriz.Aşağıdan örnek console uygulamasını indirebilirsiniz.

SingletonPattern.zip (7,19 kb)

5 kişi tarafından 3.4 olarak değerlendirildi

  • Currently 3,4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Design Patterns | Yazılım Mühendisliği

WPF 4.0-LayoutRounding Özelliği

Ocak 02
by Abdurrahman Köken 2. Ocak 2010 15:14

Bugün yeni yılın ilk makalesi olarak sizlerle WPF 4 ile gelen yeni bir property olan LayoutRounding özelliğinden bahsetmek istiyorum.Silverlight ile kod yazanların yakından aşina olduğu bu özelliği aşağıdaki örnek kod üzerinden inceleyelim.

<Border Width="150" Height="120" BorderThickness="10" BorderBrush="Red"/>

<Border Width="110" Height="80" BorderThickness="10" BorderBrush="Green"/>

<Border Width="70" Height="40" BorderThickness="10" BorderBrush="Blue"/>

 <Border Width="150" Height="120" BorderThickness="10" BorderBrush="Red" UseLayoutRounding="True"/>

<Border Width="110" Height="80" BorderThickness="10" BorderBrush="Green" UseLayoutRounding="True"/>

<Border Width="70" Height="40" BorderThickness="10" BorderBrush="Blue" UseLayoutRounding="True"/> 

Yukarıdaki kod parçası ile içiçe geçmiş dikdörtgenlerden oluşan border lar bulunmaktadır.Tek fark ikincisinde UseLayoutRounding property’sidir.Bu property’i true olarak atayıp uygulamamızı çalıştırdığımızda ilk border’ın biraz blur şekilde göründüğünü ikincisinin ise daha keskin çizgilere sahip olduğunu farkedeceksiniz.Varsayılan olarak bu özellik false gelmektedir.Uygulamayı çalıştırdığımızdaki ekran görüntüsü şu şekilde olacaktır.

 

5 kişi tarafından 4.2 olarak değerlendirildi

  • Currently 4,2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

WPF

2009'un Getirdikleri 2010'un Getirecekleri

Aralık 31
by Abdurrahman Köken 31. Aralık 2009 17:17

Bugün sanırım bu yılın son yazısını yazıyorum tabi bikaç saat içinde kafama esip bir yazı daha yazmaya karar vermezsem:)Artık yılın sonuna geldik iyisiyle,kötüsüyle,acısıyla,tatlısıyla bu yılı da atlattık.Zaman o kadar çabuk geçti ki bu yılı anlamadım desem yeridir.İtiraf etmeliyim ki 2009 benim için çok da iyi geçmedi ama o iyi olmayan şeyleri burda paylaşmak istemiyorum.Madalyonun diğer yüzünde ise amaçladığım pek çok şeyi yaptım:)Bu sene beni en mutlu eden olaylardan biri de Microsoft ailesine katılmak oldu.Bu sene üniversitemin Microsoft Student Partner ‘ı olduğumu duyunca mutluluktan havaya uçtum:)Yeni çevre ve çok iyi arkadaşlar edindim.Kariyer ve iş kısmı belki de bu senenin bana getirdiği en iyi şeylerdi belki de.O yüzden aşk hayatıma girmiyorum bile:)

Ve sonunda geldik 2010’a!Bana şöyle bir düşündüğümde güzel olacak hissi veriyor ama tabiki bunu zaman gösterecek.Yaklaşılk 6 ay sonra herhangi bir terslik olmazsa üniversite hayatımı tamamlamış olacağım.Ve bunun bana verdiği telaşla ne yapacağım hissi de doğdu.Yüksek lisans yapmakla yapmamak arasında bir çizgide yürüyor gibiyim.Biliyorum zaman en iyi ilaç bunu görmem için ama…Üniversite hayatım sona erdiğinde sanırım bana en çok dokunan otobüslerde ”öğrenci alır mısın abi?” diyememek olacak herhalde:)Şaka bir yana yıllar su gibi akıp geçti.Her şeyi zamanında yaşamak en güzeliymiş.Ey 2010 sana sesleniyorum beraberinde  umarım iyi şeyler getirirsin.

 

3 kişi tarafından 4.7 olarak değerlendirildi

  • Currently 4,666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Genel

Windows 7'de Age Of Empires II Sorunu

Aralık 29
by Abdurrahman Köken 29. Aralık 2009 22:18

Bir süredir projeler ve dersler yüzünden bloğa yazı yazmaya vakit bulamıyordum.Aslında hala vaktim yok ama araya makale niteliğinde olmasada küçük bir ipucu sıkıştırabilirim diye düşündüm)Neyse gelelim ipucuna!İpucumuz aslında Age Of Empires II ile ilgili.Windows 7 çıktığından beri tüm arkadaşlarıma tavsite ettim ve özendirmeye başladım.Sonunda pek çoğu Windows 7’yi kurdu.Asıl konu Windows 7 değil tabiki:)Oyun meraklısı arkadaşlarım Age Of Empires II’nin Windows 7’de düzgün çalışmadığından şikayet edip başımın etini yemeye başladılar sonunda.Onları yeni işletim sistemi kurmaya teşvik eden ben olduğuma göre sorunu çözmek de bana düşüyordu:)Oyun açıldığında renklerin bozuk olduğunu gördüm.Kırmızı çimler sarı ağaçlar görmek pek de alışılmış bir durum değil tabikide.

Biraz araştırma sonucu pek çok kişide aynı sorun olduğunu gözlemledim.Ama sonunda aşağıdaki birkaç satır kodla çözüme ulaştım.Komutları notepad’e yazıp uzantısını .bat yaparak  Age Of Empires II klasörünün içinde bulunan age2_x1 klasörünün içine koymak yeterlidir. Artık oyunumuzu bu bat dosyasını çalıştırarak Windows 7 de düzgün bir şekilde oynayabiliriz.İyi oyunlar!

 

 Komutlar:

taskkill /F /IM Explorer.exe

age2_x1.exe

Start explorer.exe

 Dipnot:Windows 7 sürücülerinin eksiksiz bir şekilde yüklü olduğundan emin olmalısınız.Yoksa bu çözüm yolu da bir işe yaramayabilir!

6 kişi tarafından 4.3 olarak değerlendirildi

  • Currently 4,333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Genel | Windows 7

Abdurrahman Köken-Recent Post