Garip

23
Nov
Visual Studio 2008 Entity Framwork ile asp.net de bir sistem geliştiriyordum herşey yolunda giderken çok gariptirki tblduyuru adlı toplanın sınıf içinde olmadığını farkettim. Acaba Model i oluştururken hatamı yaptım dedim ve tekrar denediğimde aynı yine tüm tabloların aktarıldıgı halde bu tablonun aktarılmadığını farkettim.

Bu EF içinde bir bug mı acaba merak ettim
Hatanın sebebini sanırım bulduk :). Tahmin ettiğimiz kadarıyla Entity Key e atayacak alan bulamadığı için bu hatayı verdi.

tabloda primary key i unutmusum da :)
Ve denemelerimiz sonucu Entity Key için önce primary key e bakıyor bulamazsa Allow null u işaretlenmemiş olan bir alana bakıyor veya indentity varmı ona bakıyor bulamazsa da sanırım maplemiyor
Etiketler : Entity Framework Bug
Kategoriler : C#
Yorumlar : 1 Yorum Yorum Yaz

Silverlight 4 beta duyuruldu daha geniş bilgi için tıklayınız
http://www.silverlight.net/getstarted/silverlight-4-beta/

Etiketler : silverlight silverlight 4.0
Kategoriler : C#
Yorumlar : 0 Yorum Yorum Yaz
Mayıs aylarında Plugin tabanlı programlamayı baya bi araştırmış bu mimariyi kendi programlarımda kullanmaya başlamıştım. Geçenlerde farklı bir forumda Cyber-Warrior da yayınladığım aynı konuyu görünce kendi blogumda da yayınlama ihtiyacı hissettim.

Öncelikle şunu belirteyim anlatımda verdiğim,plugin tabanlı programlama mimarisine ait kodlar codeproject e incelediğim bir projeye ait. Fakat Pluginler bana aittir. Ayrıca kodlar üzerinde değişiklik yaptım en basit halini size sunmaya çalıştım. Anlatım tamamen bana aittir. Anlatımda size hem Plugin Tabanlı Programlamayı anlatmaya hem de Programlarınıza bunları entegre etmeyi anlatacağım.

Plugin (Eklenti) Tabanlı programlamanın önce yararlarından bahsedeceğim. Yazdığımız programlarda en çok karşılaştığımız şey kodlarımızın birbirine girmesidir. Bunu Nesne Tabanlı programlama büyük ölçüde engellese de Ana form kısmında, Form elemanlarımızın çokluğu hala göze batacak seviyededir. Hele birde bir form elemanına ait event (Olaylar, button_Click..) ta değişiklik yapacaksak işler daha da karmaşık hale gelebilir. Bu tip karmaşıklıklar tab menulu programlarda veya MenuStrip ile yapılmış programlarda kendini daha da gösterebiliyor. Ayrıca yazacağımız programlarda admin yönetici vb kısıtlaması yapılacaksa Pluginler ile bu işi rahatlıkla halledebilirsiniz. Plugin tabanlı programlamayı kullandıkca güzelliklerini anlıyacaksanız. Konuyu fazla uzatmadan konunun videolu anlatımıni vereyim

http://rapidshare.com/files/201856131/Ptp.rar
Etiketler : Plugin Tabanlı Programlama C# Plugin Eklenti
Kategoriler : C#
Yorumlar : 0 Yorum Yorum Yaz

C# da pointer kullanımı bildiginiz üzere C deki gibi serbest değil. Bill amcamız bellek güvenliğinden dolayı bu işlemi kısıtlamıs fakat yasaklamamış. İlla ben pointer kullanacağım diyenler için ufak bir ayarladan sonra buna izin vermiş.
>>Proje adına sağ tıklayıp altta Properties'e tıklıyoruz.
>>Build Seçeneğini seçiyoruz
>>Allow unsafe code u işaretliyoruz

ve daha sonra çıkıyoruz.

Kod kısmında unsafe kod bloğu içinde pointerlar ile dans edebilirsiniz.
unsafe
{
//pointerlarımız ile bu alanda oynuyoruz :)

Etiketler : C# Pointer
Kategoriler : C#
Yorumlar : 0 Yorum Yorum Yaz
İnternette dolasırken gözume hoş bir kod carptı paylaşmak istedim.
C# ta timer ve grafik metotları kullanarak analog saat yapımı. Bana gayet ilginç ve guzel bir kod geldi:

   19 private void Form1_Load(object sender, EventArgs e)

   20         {

   21             this.ClientSize = new Size(300, 300);

   22             Timer zaman = new Timer();

   23             zaman.Interval = 1000;

   24             zaman.Start();

   25             zaman.Tick += new System.EventHandler(zaman_Tick);

   26         }

   27 

   28         private void zaman_Tick(object sender, EventArgs e)

   29         {

   30             float yari_cap, xorta, yorta, xx, yx;

   31             Graphics cizim;

   32             cizim = this.CreateGraphics();

   33             cizim.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

   34             yari_cap = this.ClientSize.Width / 2;

   35             cizim.DrawEllipse(new Pen(Color.Black, 2), 0, 0, 2 * yari_cap, 2 * yari_cap);

   36             cizim.DrawEllipse(new Pen(Color.Black, 2), 10, 10, 2 * yari_cap - 20, 2 * yari_cap - 20);

   37             cizim.FillEllipse(new SolidBrush(this.BackColor), 15, 15, 2 * yari_cap - 25, 2 * yari_cap - 25);

   38             xorta = yari_cap;

   39             yorta = yari_cap;

   40             yari_cap -= 10;

   41             int saat, dakika, saniye, aci, x, y, x1, y1;

   42             for (aci = 0; aci <= 360; aci += 6)

   43             {

   44                 x = (int)(xorta + (yari_cap + 10) * Math.Cos(aci * 3.1415 / 180));

   45                 y = (int)(yorta - (yari_cap + 10) * Math.Sin(aci * 3.1415 / 180));

   46                 x1 = (int)(xorta + (yari_cap) * Math.Cos(aci * 3.1415 / 180));

   47                 y1 = (int)(yorta - (yari_cap) * Math.Sin(aci * 3.1415 / 180));

   48                 if ((aci % 30) == 0)

   49                     cizim.DrawLine(new Pen(Color.Red, 10), x, y, x1, y1);

   50                 else

   51                     cizim.DrawLine(new Pen(Color.Blue, 5), x, y, x1, y1);

   52             }

   53             System.Drawing.Drawing2D.GraphicsPath bicim;

   54             bicim = new System.Drawing.Drawing2D.GraphicsPath();

   55             saat = System.DateTime.Now.TimeOfDay.Hours;

   56             aci = -saat * 30 + 90;

   57             xx = (int)(xorta + yari_cap * 2 / 3 * Math.Cos(aci * 3.1415 / 180));

   58             yx = (int)(yorta - yari_cap * 2 / 3 * Math.Sin(aci * 3.1415 / 180));

   59             x = (int)(xorta - 10 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

   60             y = (int)(yorta + 10 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

   61             x1 = (int)(xorta + 10 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

   62             y1 = (int)(yorta - 10 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

   63             bicim.AddLine(x, y, xx, yx);

   64             bicim.AddLine(x1, y1, xx, yx);

   65             bicim.AddLine(x, y, x1, y1);

   66             dakika = System.DateTime.Now.Minute;

   67             aci = -dakika * 6 + 90;

   68             xx = (int)(xorta + yari_cap * Math.Cos(aci * 3.1415 / 180));

   69             yx = (int)(yorta - yari_cap * Math.Sin(aci * 3.1415 / 180));

   70             x = (int)(xorta - 5 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

   71             y = (int)(yorta + 5 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

   72             x1 = (int)(xorta + 5 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

   73             y1 = (int)(yorta - 5 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

   74             bicim.AddLine(x, y, xx, yx);

   75             bicim.AddLine(x1, y1, xx, yx);

   76             bicim.AddLine(x, y, x1, y1);

   77             saniye = System.DateTime.Now.TimeOfDay.Seconds;

   78             aci = -saniye * 6 + 90;

   79             xx = (int)(xorta + yari_cap * Math.Cos(aci * 3.1415 / 180));

   80             yx = (int)(yorta - yari_cap * Math.Sin(aci * 3.1415 / 180));

   81             x = (int)(xorta - 1 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

   82             y = (int)(yorta + 1 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

   83             x1 = (int)(xorta + 1 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

   84             y1 = (int)(yorta - 1 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

   85             bicim.AddLine(x, y, xx, yx);

   86             bicim.AddLine(x1, y1, xx, yx);

   87             bicim.AddLine(x, y, x1, y1);

   88             cizim.FillEllipse(new SolidBrush(Color.Black), xorta - 20, yorta - 10, 30, 30);

   89             cizim.DrawPath(new Pen(Color.Blue), bicim);

   90 

   91         }

Etiketler : C# Saat Analog Saat timer cizim
Kategoriler : C#
Yorumlar : 0 Yorum Yorum Yaz
1234