Merhabalar,
Oncelikle sizden cok kendimin saskinlikler icinde oldugunu belirtmeliyim. .Net teknolojilerine her daim karsit birisi oldugum biline dursun, bu konuda bir yazi yazma geregi hissedecegimi dahi tahmin etmezdim. Insanin basina her sey gelebiliyor...
Bir proje icin ufak bir "calistirilabilir uygulama"ya ihtiyac oldu. Mecburen Vusial Studio'yu kurmak zorunda kaldim. :) Uygulamada cok fazla islem olmadigindan dolayi, daha dusuk gereksinimleri olmasi amaciyla .Net2.0 kullanarak yazdim. Ancak is testlere geldiginde .Net4.0 kurulu bilgisayarlarda "Unable to find a version of the runtime to run this application." seklinde bir hata aldim. Biraz arastirmalar sonucunda .Net4.0'in geriye yonelik destek vermedigini ogrendim. (Hayir hayir, elestiri yapmayacagim!)
Cozum olarak ise App.config dosyasi olusturup, icerisine bunun .Net4.0 ile uyumlu oldugunu belirtmemiz gerekliymis. App.config dosyasinin icerigi soyle:
Bunu yaptiginizda sorunun ortadan kalkacagini umuyorum.
---
Simdir bir nokta daha var ki eger siz de "building" isleminden sonra ekstra bir dosya olmasindan sikayetteyseniz, -cok basit bir cozum olarak- WinRAR'in SFX ozelligini kullanarak tum dosyalari tek cati altinda toplayip acildiktan sonra programinizin acilmasini saglayabilirsiniz. Benim isimi gordu. :)
Tuesday, February 25, 2014
.Net2.0 Uygulamalarinin .Net4.0'da Calismamasi
Tuesday, February 4, 2014
[PHP] Tek Kullanimlik Sinif Yapmak
Merhabalar,
Facebook'taki PHP grubunda birisi boyle bir istekde bulunmus. Siniftan sadece tek bir "instance" uretmek, daha sonra istenildiginde ise bir Exception vermesi isteniyordu.
PHP5.4'un nimaetlerinden traitler yardimiyla bunu hazirladim. Guzel bir ornek olacagini dusunuyorum.
Trait kullanilarak hazirlanan sinif ilk getInstance() metodu kullanildiginda sinifin bir ornegini gonderecek, bir dahaki cagirildiginda ise DisposableClassException gonderecektir. Bunu yakalamak da size kalmis. :)
Facebook'taki PHP grubunda birisi boyle bir istekde bulunmus. Siniftan sadece tek bir "instance" uretmek, daha sonra istenildiginde ise bir Exception vermesi isteniyordu.
PHP5.4'un nimaetlerinden traitler yardimiyla bunu hazirladim. Guzel bir ornek olacagini dusunuyorum.
Trait kullanilarak hazirlanan sinif ilk getInstance() metodu kullanildiginda sinifin bir ornegini gonderecek, bir dahaki cagirildiginda ise DisposableClassException gonderecektir. Bunu yakalamak da size kalmis. :)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class DisposableClassException extends \Exception | |
{} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
trait DisposableClassTrait | |
{ | |
protected static $used = false; | |
final public static function getInstance() | |
{ | |
if (static::$used) { | |
throw new DisposableClassException('This class is disposable!'); | |
} | |
static::$used = true; | |
return new static; | |
} | |
final private function __construct() { | |
$this->init(); | |
} | |
protected function init() { | |
echo 'Hey guys! Im from ' . __CLASS__ . '! :)'; | |
} | |
final private function __wakeup() {} | |
final private function __clone() {} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class OneTimeLifeExample | |
{ | |
use DisposableClassTrait; | |
} | |
// Class initialized! | |
OneTimeLifeExample::getInstance(); | |
// Exception! | |
OneTimeLifeExample::getInstance(); |
Subscribe to:
Posts (Atom)