Blog Home  Yalcomania'n�n Yeri Feed your aggregator (RSS 2.0)  
Yalçın Uzun - Wednesday, July 25, 2007
Kişisel Blog
 
 Wednesday, July 25, 2007

Saying Java is good because it works on all platforms is like saying anal sex is good because it works on all genders

Wednesday, July 25, 2007 6:19:08 PM (GTB Standard Time, UTC+02:00)  #    Comments [1]    | 
 Wednesday, July 04, 2007
Eğer Discovery Channel'da American Chopper dizisini izliyorsanız, Orange Country Choppers firmasını biliyorsunuz demektir.

Arkadaşlar, Microsoft SQL Server 2005 temalı bir motorsiklet yapmışlar.



Ayrıntı için:

http://www.orangecountychoppers.com/occ/offairtheme.html (3.sayfada)
Wednesday, July 04, 2007 11:03:50 AM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 
 Thursday, June 28, 2007

Yer: Kadir Has Üniversitesi
Tarih: 29 Haziran 2007
Saat: 13:00 - 17:00
Salonlar: Balat Salonu, Fener Salonu
Konuşmacı: Ekin Özçiçekçiler

Program akışı:
13:00 - 14:45 --> .Net Compact Framework ile Mobil Cihaz Programlama
Kahve arası
15:00 - 15:45 --> SQL Server 2005 Mobile Edition
Kahve arası
16:00 - 16:45 --> Windows Communication Foundation ile dağıtık uygulamalar

Kaydolmak için tıklayınız

ÖNEMLİ NOT: Organizasyon sadece BilgeAdam mezunları içindir. Eğer halen öğrenciyseniz veya BilgeAdam'la bir ilişiğiniz yoksa lütfen başvuru yapmayınız.

Thursday, June 28, 2007 12:37:44 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 
 Wednesday, June 27, 2007
Bir müddet iğrenç bir sorunla karşı karşıya kaldım. Vista'yı kurduktan sonra SQL Server'a bağlanamaz oldum.

Sadece bağlanamamakla kalsam iyi, sa veya başka bir account ile bağlanmaya kaltığımda önce "Remote Procedure Call has Stopped Working" , daha sonra "Host Process for windows services stopped working and was closed" hatası gelip, bütün windows sistemleri kapanıyordu. Bilgisayar çöküp, restart atıyordu.

Tüm dış bağlantıları açtım ve service pack'leri yükledim, sorun yine aynıydı. Toplam 3 kere format da attım, işe yaramadı.

Internet'i araştırdığımda sadece 1 kişinin de aynı problemi yaşadığını gördüm. (O da Türk'tü.. :))
Kendisi ile mailleştim ve ondaki sorunun ISA Firewall Client'tan kaynaklandığını söyledi. Ancak bende o da yüklü değildi. :)

Sonra sorunun NOD32 antivirüs programından kaynaklandığını buldum. Daha doğrusu onun IMON (Internet Monitör) servisinden.

Bu servisi tamamen kapatınca (DİKKAT: Disable edince değil) sorun çözüldü.

Wednesday, June 27, 2007 1:38:35 AM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 
 Friday, June 22, 2007

Bir projemde lazım olmuştu. Belki sizin de işinize yarar:


private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

{

e.Graphics.PageUnit = GraphicsUnit.Millimeter;

//Print kodları

}

Friday, June 22, 2007 1:54:58 AM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 
 Tuesday, June 12, 2007

Site içinde arama yapmak için Google'ın beta aşamasında olan harika bir toolu'u var.
Hararetle tavsiye ederim:
http://www.google.com/coop/

Sitemde arma yaparak neye benzediğini görebilirsiniz.
Ancak bu sitenin kodları hazır olduğu için javascript'le ekledim.

Daha güzeli ve customize edilmiş hali için:
http://www.csharpnedir.com a bakabilirsiniz.

Asp.net sitenize de böyle entegre edebilirsiniz:
http://www.codeproject.com/useritems/CustomSearchEngine.asp


Tuesday, June 12, 2007 1:29:37 AM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 
 Monday, June 11, 2007

Çok basit bir yöntem. İki de bir unuttuğum için, bakayım diye buraya yazıyorum:

select top X * from Tablo order by newId()

X= kaç kayıt getirmek istediğin

Monday, June 11, 2007 5:24:36 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 
 Wednesday, June 06, 2007

Nhibnernate'i webde kullanırken güvenlik ayarlarından dolayı oldukça zorluk çektim.
godaddy'de host edilen web projem sürekli izinlerden dolayı çatlıyordu.

Uzun araştırmalardan sonra web config'i aşağıdaki gibi düzenleyerek bu hatalardan kurtuldum.

Önemli olan nokta "nhibernate" adlı bir configsection açılması ve reflection kullanımının kapatılması. Aynı satır nhibernate-configuration section'unda olursa yine çalışmıyor.

      <configSections>

            <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" requirePermission="false"/>

            <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>

             </sectionGroup>

      </configSections>

      <nhibernate>

            <add key="hibernate.use_reflection_optimizer" value="false"/>

      </nhibernate>

      <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">

            <session-factory>

                  <property name="hibernate.dialect">NHibernate.Dialect.MsSql2005Dialect</property>

                  <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>

                  <property name="connection.connection_string">server=.;database=XXXX;User ID=XXX;Password=XXX;</property>

                  <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>

            </session-factory>

      </hibernate-configuration>

 

Wednesday, June 06, 2007 8:01:58 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 
 Tuesday, June 05, 2007

Projelerimde çok fazla kullandığım ve yazmayı tam anlamıyla amelelik gördüğüm bir şey için bir makro yazdım, sizinle de paylaşmak istedim.

Genellikle formlarımın load'unda:

gibi textbox, datetime picker gibi kontrolleri dolduran bir kod oluyor:

Şekil 1-A:

            this.textBox1.Text = h.Ad;

            this.textBox2.Text = h.Soyad;

            this.textBox3.Text = h.Email;



Bir de Kaydetme işini yapan butonun altında da şöyle kodlarım oluyor:

Şekil 1-B:

                  h.Ad=this.textBox1.Text;

                  h.Soyad=this.textBox2.Text;

                  h.Email=this.textBox3.Text;


İşte bu makro bu ikisini birbirine dönüştürüyor. Yani doldurmayı, atamaya ve atamayı doldurmaya çeviriyor. Tür dönüşümü vs gibi işlemler için hiç bir önlem almadım, ancak bu işlem bile benim işlerimi oldukça kolaylaştırdı.

Mantığı oldukça basit. Eşittir gördüğü satırı Split fonksiyonu ile parçalıyor. Sonundaki noktalı vürgülü kaldırıyor. Bir sonraki aşamada parçaladığı yerleri değiştirirek ve sonuna noktalı vürgül atıyor. Bunu ekrana yazıyor.

Dosya "vb" uzantılı. Bunu eklemek için bir notepadde açın, içeriği kopyalayın. Visual Studio'da Macro Explorer'da yeni bir modül yaratın. Adını "TersCevir" koyun. (Büyük harf küçük harf duyarlı) Çift tıklayıp, içeriği yapıştırın.

Çalıştırmak için ters çevirmek istediğiniz kodları işaretleyip, makro menüsünden TersCevir'i çift tıklamanız yeterlidir.

Afiyet olsun.


TersCevir.zip (760 Byte)
Tuesday, June 05, 2007 11:22:04 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 

Bir projemde şöyle bir senaryo ile karşılaştım.
Kullanıcı kendisi ile ilgili açılan bir bölüme, başkasının görmemesi gereken dosyaları upload etmesi gerekiyordu.
Aynı şekilde site yöneticisi de bu kişi adına oraya dosya atabilmeliydi. Ancak dediğim gibi bu dosyanın başkası tarafından görülmemesi çok önemliydi.

Response.redirect'le veya bir link vererek bu işi yapamazdım, çünkü browser'ın history'sinde kaldığı için aynı makinaya oturan bir başkası o linki tıkladığında dosyayı indirebilirdi.

İnternette bulduğum şu yöntem çok hoşuma gitti:


public class FileManager

{

    public static void DownloadFile(int FileId)

    {

 

        MyClass.Entity.File f = (MyClass.Entity.File)Facade.Dosya.GetById(FileId).File; //Burası önemsiz, dosya bilgileri
        //f.Name'de dosyanın GUID isimle kaydedilmiş hali var, OriginalName özelliğinde ise dosyanın orjinal adı var (a.jpg gibi)

        System.IO.FileStream fs= System.IO.File.Open(System.Web.HttpContext.Current.Server.MapPath(@"~/Files/"+f.Name),System.IO.FileMode.Open);

        byte[] bytes = new byte[fs.Length];

        fs.Read(bytes, 0, (int)fs.Length);

        fs.Close();

        System.Web.HttpContext.Current.Response.AddHeader("Content-disposition","attachment; filename="+f.OriginalName );

        System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";

        System.Web.HttpContext.Current.Response.BinaryWrite(bytes);

        System.Web.HttpContext.Current.Response.End();

    }

}

Tuesday, June 05, 2007 3:52:47 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]    | 
Copyright © 2008 Yalçın Uzun