<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Çevik Tavşan &#187; Programlama</title>
	<atom:link href="http://www.ceviktavsan.com/category/programlama/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ceviktavsan.com</link>
	<description>helal web sayfası</description>
	<lastBuildDate>Wed, 07 Jul 2010 10:08:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>SCJP Vesikası</title>
		<link>http://www.ceviktavsan.com/scjp-vesikasi/</link>
		<comments>http://www.ceviktavsan.com/scjp-vesikasi/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 20:01:46 +0000</pubDate>
		<dc:creator>Ali Utku Selen</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=2705</guid>
		<description><![CDATA[SCJP sertifikam geldi. Posted from WordPress for Android]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; margin-right: auto; margin-left: auto;" src="http://www.ceviktavsan.com/wp-content/uploads/2010/07/wpid-DSC_0059.jpg" alt="image" /></p>
<p>SCJP sertifikam geldi.</p>
<p><span id="post_sig">Posted from WordPress for Android</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/scjp-vesikasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java sorusu: instanceof</title>
		<link>http://www.ceviktavsan.com/java-sorusu-instanceof/</link>
		<comments>http://www.ceviktavsan.com/java-sorusu-instanceof/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 18:11:12 +0000</pubDate>
		<dc:creator>Ali Utku Selen</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=2034</guid>
		<description><![CDATA[Java&#8217;da instanceof&#8217;un nesneye yönelik programlamayı bozduğunu, kullanırken dikkatli olmanız gerektiğini söylerler. Bu operatörün herhalde en sık kullanıldığı yer de Object.equals(Object obj) methodudur zaten. Bugün ofiste bir sınıf için equal methodunu yazarken aklıma instanceof/null ilişkisi takıldı. Soru basitçe aşağıdaki programın sonu ne olur, ekrana ne yazar, derler mi? Düşünün bakalım&#8230; public class InstanceOf {   public [...]]]></description>
			<content:encoded><![CDATA[<p>Java&#8217;da instanceof&#8217;un nesneye yönelik programlamayı bozduğunu, kullanırken dikkatli olmanız gerektiğini söylerler. Bu operatörün herhalde en sık kullanıldığı yer de <a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html#equals(java.lang.Object)" target="_blank">Object.equals(Object obj)</a> methodudur zaten.</p>
<p>Bugün ofiste bir sınıf için equal methodunu yazarken aklıma instanceof/null ilişkisi takıldı. Soru basitçe aşağıdaki programın sonu ne olur, ekrana ne yazar, derler mi? Düşünün bakalım&#8230;</p>
<pre>public class InstanceOf {
  public static void main(String[] args) {
    System.out.println(null instanceof String);
  }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/java-sorusu-instanceof/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Firefox 3.5, video ve audio elementleri</title>
		<link>http://www.ceviktavsan.com/firefox-3-5-video-ve-audio-elemetleri/</link>
		<comments>http://www.ceviktavsan.com/firefox-3-5-video-ve-audio-elemetleri/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 11:55:06 +0000</pubDate>
		<dc:creator>Tolga Güler</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[İnternet / Teknoloji]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=1997</guid>
		<description><![CDATA[Firefox 3.5, HTML 5.0 ile gelen &#60;video&#62; ve &#60;audio&#62; html elementlerine destek veriyor. Bu yeni iki element sayesinde, herhengi bir eklentiye ihtiyaç duymadan, deseklenen, ses ve video ortam formatlarını tarayıcınızdan oynatabilirsiniz. Elementlerin nasıl kullanıldığına buradan,  örnek videoya buradan (video oynarken, oynatıcıya sağ tuşla tıklayın), Firefox&#8217;un son sürümüne de buradan ulaşabilirsiniz.]]></description>
			<content:encoded><![CDATA[<p><strong>Firefox 3.5</strong>, HTML 5.0 ile gelen <strong>&lt;video&gt;</strong> ve <strong>&lt;audio&gt;</strong> html elementlerine destek veriyor. Bu yeni iki element sayesinde, herhengi bir eklentiye ihtiyaç duymadan, <strong><a title="video audio" href="https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements" target="_blank">deseklenen</a></strong>, ses ve video ortam formatlarını tarayıcınızdan oynatabilirsiniz. Elementlerin nasıl kullanıldığına <a href="https://developer.mozilla.org/en/Using_audio_and_video_in_Firefox" target="_blank">buradan</a>,  örnek videoya <a href="http://www.mozilla.com/en-US/firefox/video/" target="_blank">buradan</a> (video oynarken, oynatıcıya sağ tuşla tıklayın), Firefox&#8217;un son sürümüne de <a href="http://www.mozilla-europe.org/tr/" target="_blank">buradan</a> ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/firefox-3-5-video-ve-audio-elemetleri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java ME Platform SDK 3.0 startup problem</title>
		<link>http://www.ceviktavsan.com/java-me-sdk-startup-problem/</link>
		<comments>http://www.ceviktavsan.com/java-me-sdk-startup-problem/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 21:21:26 +0000</pubDate>
		<dc:creator>Ali Utku Selen</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA["java me"]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=1918</guid>
		<description><![CDATA[If you encounter connection problems starting Sun&#8217;s new Java ME Platform SDK 3.0 on windows, you might want to check your hosts file and your localhost definition. notepad %windir%\system32\drivers\etc\hosts for me localhost was defined as ::1 localhost which is an IPv6 definiton according to wikipedia. Changing the definition into 127.0.0.1 localhost solved my problem. Give [...]]]></description>
			<content:encoded><![CDATA[<p>If you encounter connection problems starting Sun&#8217;s new Java ME Platform SDK 3.0 on windows, you might want to check your <strong>hosts</strong> file and your <strong>localhost</strong> definition.</p>
<pre>notepad %windir%\system32\drivers\etc\hosts</pre>
<p>for me localhost was defined as</p>
<pre>::1      localhost</pre>
<p>which is an IPv6 definiton according to <a href="http://en.wikipedia.org/wiki/Localhost">wikipedia</a>. Changing the definition into</p>
<pre>127.0.0.1      localhost</pre>
<p>solved my problem. Give it a try, and let me know if it helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/java-me-sdk-startup-problem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Açık Kaynak üzerine</title>
		<link>http://www.ceviktavsan.com/acik-kaynak-uzerine/</link>
		<comments>http://www.ceviktavsan.com/acik-kaynak-uzerine/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 20:27:15 +0000</pubDate>
		<dc:creator>Ali Utku Selen</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Açık kaynak]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=1907</guid>
		<description><![CDATA[İnsanın Tolga gibi bir arkadaşı olunca, yaşadığı her sohbet ayrı bir beyin fırtınası oluyor. Aşağıdaki uzun zaman önce yaptığımız, benim de kenara not aldığım bir konuşmamızın dökümü. Konu Xbox 360, PS3 karşılaştırmasından başlıyor Microsoft ve Açık Kaynağa kadar uzanıyor. En son pirinç metaforu da harika. Utku: oynuyorum (xbox 360) hala Tolga: dur, ha ohh sosyalizmi [...]]]></description>
			<content:encoded><![CDATA[<p>İnsanın Tolga gibi bir arkadaşı olunca, yaşadığı her sohbet ayrı bir beyin fırtınası oluyor. Aşağıdaki uzun zaman önce yaptığımız, benim de kenara not aldığım bir konuşmamızın dökümü. Konu Xbox 360, PS3 karşılaştırmasından başlıyor Microsoft ve Açık Kaynağa kadar uzanıyor. En son pirinç metaforu da harika.</p>
<p>Utku:<br />
oynuyorum (xbox 360) hala<br />
Tolga:<br />
dur, ha ohh<br />
sosyalizmi bırakıp akpli olacam<br />
galatasarayı bırakıp fb li olacam<br />
ps3 ü bırakıp xboxlu olacam<br />
AUS says:<br />
yok yok, ps3&#8242;un akp oldugunu anlamadın sen daha<br />
Tolga Guler says:<br />
ms&#8230;<br />
AUS says:<br />
chp diye akp&#8217;ye oy veriyorsun, sony ms&#8217;den daha kotu, ms&#8217;in fayadasını gördük<br />
Tolga Guler says:<br />
yıkıl<br />
AUS says:<br />
sony&#8217;den bir fayda söyle<br />
Tolga Guler says:<br />
şimdi ben MS ciyim fraksiyon olarak<br />
AUS says:<br />
onun cimi cımı olmaz, süslü cilalı şeyleri severim ben demelisin<br />
Tolga Guler says:<br />
ekmeğim ms den ama &#8230;<br />
AUS says:<br />
marketten alışveriş yapıyorsun ondan, çık bi pazara<br />
Tolga Guler says:<br />
pazar pirincin taşını ayıklayamadı bi türlü, bana taşsız pirinç lazım<br />
AUS says:<br />
senin taşlı dediğin pirinci markette organik diye satıyorlar<br />
Tolga Guler says:<br />
taşlı inorganik<br />
AUS says:<br />
pirince taşlı diyen sensin<br />
Tolga Guler says:<br />
yok prince taşlı diyen ben değilim. bana taşsız pirinç lazım diyen benim.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/acik-kaynak-uzerine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook ve Microsoft Kardeşler</title>
		<link>http://www.ceviktavsan.com/facebook-ve-microsoft-kardesler/</link>
		<comments>http://www.ceviktavsan.com/facebook-ve-microsoft-kardesler/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 22:38:34 +0000</pubDate>
		<dc:creator>Tolga Güler</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[İnternet / Teknoloji]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=686</guid>
		<description><![CDATA[Geçen yıl Ekim ayında, Facebook&#8217;un %1.6 sına 240 milyon dolar ödeyen Microsoft yavaş yavaş yatırımının meyvelerini toplamaya başladı. Önce Facebook&#8217;da yer alan web arama motorunu sahiplendi, şimdi de facebook&#8217;a uygulama geliştirmek isteyenler için Facebook Developer Toolkit&#8217;i  kendi resmi web sitesinde duyurdu. Bizde, üşenmedik, küçük bir uygulama geliştirdik. Facebook Developer Toolkit Facebook un yaptığı hemen hemen [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-687" title="facebook &amp; microsoft" src="http://www.ceviktavsan.com/wp-content/uploads/2008/12/facebook_microsoft-150x150.jpg" alt="facebook &amp; microsoft" width="150" height="150" />Geçen yıl Ekim ayında, Facebook&#8217;un %1.6 sına 240 milyon dolar ödeyen Microsoft yavaş yavaş yatırımının meyvelerini toplamaya başladı. Önce Facebook&#8217;da yer alan web arama motorunu sahiplendi, şimdi de facebook&#8217;a uygulama geliştirmek isteyenler için <a href="http://www.microsoft.com/express/samples/facebook/" target="_blank">Facebook Developer Toolkit&#8217;i </a> kendi resmi web sitesinde duyurdu. Bizde, üşenmedik, küçük bir uygulama geliştirdik.<span id="more-686"></span></p>
<p><strong>Facebook Developer Toolkit</strong></p>
<p>Facebook un yaptığı hemen hemen her şeyi bu api ile yapmanız mümkün. C# ve  Vb.net ile yazılmış açık kaynak kodlarını da temin edebilirsiniz. Sürükle ve bırak 8 adet kontrolü ile hem windows hem de web uygulamalarını kolaylıkla geliştirebilirsiniz.</p>
<p><img title="facebook toolbox" src="http://www.ceviktavsan.com/wp-content/uploads/2008/12/facebook_toolbox.jpg" alt="facebook toolbox" width="300" height="257" /></p>
<p>Ben küçük bir windows uygulaması ile bir örnek vermek istiyorum. Kullanımı son derece basit. FacebookService ve Friendlist kontollerini formunuza ekleyin.  Öncelikle FacebookService kontolünün ApıKey ve Secret özelliklerini ayarlamanız gerekiyor. Keyler apinin kaynak kodları içerisinde zaten mevcut. Resimdekilerini de yazabilirsiniz.<img class="alignnone size-full wp-image-689" title="facebook apikey" src="http://www.ceviktavsan.com/wp-content/uploads/2008/12/facebook_apikey.jpg" alt="facebook apikey" width="376" height="130" /></p>
<p>Örneğin Facebookdaki kişi listenizi almak istediğinizde;</p>
<blockquote><p> private void Form1_Load(object sender, EventArgs e)<br />
  {<br />
            friendList1.Friends = facebookService1.GetFriends();<br />
           <br />
  }</p></blockquote>
<p>yazmanız yeterli. Uygulamayı çalıştırdığınızda karşınıza facebook&#8217;un giriş ekranı geliyor. Buna müdahele edebiliyor musnuz bilmiyorum&#8230;</p>
<p><img class="alignnone size-full wp-image-690" title="facebook_login" src="http://www.ceviktavsan.com/wp-content/uploads/2008/12/facebook_login.jpg" alt="facebook_login" width="633" height="467" /></p>
<p>Başarılı giriş işleminin ardından User koleksiyonunu elde edebilirsiniz. Ben çalışma zamanında bir hata aldığımdan dolayı kaynak kodda küçük bir değişiklik yapmak zorunda kaldım.</p>
<p><span style="font-size: x-small; color: #2b91af;"><span style="font-size: x-small; color: #2b91af;"><img class="alignnone size-full wp-image-691" title="facebook exception" src="http://www.ceviktavsan.com/wp-content/uploads/2008/12/facebook_exception.jpg" alt="facebook exception" width="494" height="299" /></span></span></p>
<p>User nesnesinin PoliticalView özelliği arkadaşın belirttiği politik görüşü kaldıramadı. Burayı try catch içerisine aldım <img src='http://www.ceviktavsan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Not: Yukarıdaki politik görüş, aşağıdaki tavşan üyesine ait değildir.</em></p>
<p><img class="alignnone size-full wp-image-692" title="facebook_friendlist" src="http://www.ceviktavsan.com/wp-content/uploads/2008/12/facebook_friendlist.jpg" alt="facebook_friendlist" width="505" height="177" /></p>
<p><em> FriendList konrolünün görünümü.</em></p>
<p><strong>Facebook.Entity.User Nesne Diagramı (fikir versin diye <img src='http://www.ceviktavsan.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ):</strong></p>
<p><img class="alignnone size-full wp-image-693" title="facebook usero bject" src="http://www.ceviktavsan.com/wp-content/uploads/2008/12/facebook_userobject.jpg" alt="facebook usero bject" width="388" height="757" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/facebook-ve-microsoft-kardesler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aç ve çalıştır!</title>
		<link>http://www.ceviktavsan.com/ac-ve-calistir/</link>
		<comments>http://www.ceviktavsan.com/ac-ve-calistir/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 13:53:37 +0000</pubDate>
		<dc:creator>Dış Sesler</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[İnternet / Teknoloji]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Good OS]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=531</guid>
		<description><![CDATA[Kuruluma ihtiyaç duymuyor, tarayıcı üzerinden çalışıyor, bir kaç saniyede açılıyor. Önümüze içinde MacOS usulü bir ikon &#8220;dok&#8221;u olan bir tarayıcı penceresi getiriyor. Bu ikonlardan çeşitli Google web uygulamalarına, Skype gibi bayağı normal uygulamalara ve cihazın ana işletim sistemine ulaşılabiliyor. (Yahoo!, Google veya Microsoft Live vb. sayfaları açılış sayfası yapabiliriz ). Linux Kernel üzerine yazılan işletim sistemi, flash-video [...]]]></description>
			<content:encoded><![CDATA[<p><a style="text-decoration: none;" href="http://www.ceviktavsan.com/wp-content/uploads/2008/12/cloudfront.png"><img class="size-medium wp-image-530 alignleft" style="text-decoration: underline;" title="cloud" src="http://www.ceviktavsan.com/wp-content/uploads/2008/12/cloudfront-300x206.png" alt="" width="300" height="206" /></a></p>
<p>Kuruluma ihtiyaç duymuyor, tarayıcı üzerinden çalışıyor, bir kaç saniyede açılıyor. Önümüze içinde MacOS usulü bir ikon &#8220;dok&#8221;u olan bir tarayıcı penceresi getiriyor. Bu  ikonlardan çeşitli Google web uygulamalarına, Skype gibi bayağı normal  uygulamalara ve cihazın ana işletim sistemine ulaşılabiliyor. (Yahoo!, Google veya Microsoft Live vb. sayfaları açılış sayfası yapabiliriz <img src='http://www.ceviktavsan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). Linux Kernel üzerine yazılan işletim sistemi, flash-video ve mp3 formatlarını desteklemekte. İstersek açılışında bir medya oynatıcısı başlatabiliriz.</p>
<p>Sanırım hızlı ve kolay oluşu sebebi ile önümüzdeki yıllarda adını sıkça duyacağız. Televizyonu açtığımda karşıma çıkarsa şaşırmayacağım. </p>
<p>2009 yılında Gigabyte mini dizüstü ürünlerinde bu işletim sistemciğini kullanacak. </p>
<p>Good OS, Ocak 2009&#8242;da gerçekleşecek CES etkinliğinde Cloud OS  hakkındaki diğer detayları açıklayacak.</p>
<p>Kaynak : <a href="http://www.thinkgos.com/cloud.php">Good OS</a>, <a href="http://www.chip.com.tr/forum/Cloud-OS-Saniyeler-icinde-kullanima-hazir_t81734.html">CHIP Online</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/ac-ve-calistir/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>.Net Mobile SQL Server CE</title>
		<link>http://www.ceviktavsan.com/net-mobile-sql-server-ce/</link>
		<comments>http://www.ceviktavsan.com/net-mobile-sql-server-ce/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 12:41:39 +0000</pubDate>
		<dc:creator>Dış Sesler</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server CE]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=435</guid>
		<description><![CDATA[     .Net Mobile System.Data.SqlServerCe Kütüphanesi bize çok kolay veritabanı uygulamaları yazmamız için gerekli bileşenleri sunuyor. Windows Mobile yada CE işletim sistemi bulunan bir cihaz üzerinde basit bir uygulama olan Query Analyzer ile Veritabanı dosyamızdaki Tablo ve alanlara ulaşabilir, sorgulamalarımızı çalıştırabiliriz. Sql sorgularımı mecbur kalmadıkça buradan yazmayı düşünmüyorum, ufacık cihazda uzun cümleler yazmak gercekten vakit kaybı. [...]]]></description>
			<content:encoded><![CDATA[<p>     .Net Mobile System.Data.SqlServerCe Kütüphanesi bize çok kolay veritabanı uygulamaları yazmamız için gerekli bileşenleri sunuyor. Windows Mobile yada CE işletim sistemi bulunan bir cihaz üzerinde basit bir uygulama olan Query Analyzer ile Veritabanı dosyamızdaki Tablo ve alanlara ulaşabilir, sorgulamalarımızı çalıştırabiliriz. Sql sorgularımı mecbur kalmadıkça buradan yazmayı düşünmüyorum, ufacık cihazda uzun cümleler yazmak gercekten vakit kaybı.</p>
<p><span id="more-450"></span></p>
<p>     SQL Server CE&#8217;den çok fazla bir beklenti içinde olmamalısınız, çok büyük ve karmaşık veritabanları tasarlamak pek mantıklı değil. Access veritabanına çok benzemekle birlikte çok basit(sade). Ayrıca .Net Compact FrameWork&#8217;te OleDb and ODBC .NET kütüphanelerini kullanamıyoruz. Bu küçük, görece bugünkü pc lerimizden çok yavaş, kullanımının rahat olmaması sebebiyle yakın gelecekte internet ulaşımının kablosuz olarak ucuz ve hızlı olacağını (örn: WiMax) varsaydığımdan yüksek oranda Web uygulamaları kullanacaklar. Bugün maliyetleri düşürmek adına offline uygulamalar geliştirmek zorunda kalıyoruz. Bu noktada SqlCE gerçekten işimizi görüyor.</p>
<p>    Mükellef kaydı yapabilecek ve T.C Kimlik No&#8217;ya göre arama yapabilecek basit bir uygulama geliştirelim.</p>
<p> </p>
<p><a href="http://www.ceviktavsan.com/wp-content/uploads/2008/10/sqlcepocket2.jpg"><img class="alignleft size-medium wp-image-438" style="float:left" title="sqlcepocket2" src="http://www.ceviktavsan.com/wp-content/uploads/2008/10/sqlcepocket2-195x300.jpg" alt="" width="195" height="300" /></a>Form yüklendiğinde Test.sdf adında bir veritabanı oluşturacağız, ardından OId, Surname, Name, IdendificationNumber ve Picture alanları olan Account adında bir tablo oluşturacağız. Bul tuşuyla T.C. Kimlik Nosuna göre sorgu yapacağız, Ekle tuşuyla formun üzerindeki alanların içeriklerini kullanarak yeni bir kayıt oluşturacağız. Siz Kaydet,Sil vb. tuşlar ekleyerek uygulamayı geliştirebilirsiniz.</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>Kod:</p>
<p>using System;<br />
using System.Data;<br />
using System.Windows.Forms;<br />
using System.Drawing.Imaging;<br />
using System.Data.SqlServerCe;<br />
using System.IO;<br />
using System.Drawing;<br />
using System.Text;<br />
using Microsoft.WindowsMobile.Forms;</p>
<p>namespace SmartDeviceProject3<br />
{<br />
    public partial class AccountForm : Form<br />
    {<br />
        private static SqlCeConnection Baglan = new SqlCeConnection(&#8220;Data Source = \\MyDocuments\\Test.sdf&#8221;);<br />
        public AccountForm()<br />
        {<br />
            InitializeComponent();<br />
        }</p>
<p>        private void CreateDataBase()<br />
        {<br />
            if (!File.Exists(&#8220;\\My Documents\\Test.sdf&#8221;))<br />
            {<br />
              SqlCeEngine Engine= new SqlCeEngine(&#8220;DataSource=\\My Documents\\Test.sdf&#8221;);<br />
              Engine.CreateDatabase();<br />
              StringBuilder createSQL = new StringBuilder();<br />
              createSQL.AppendFormat(&#8220;{0} {1}&#8221;, &#8220;CREATE TABLE  Account(OId int Primary Key NOT NULL IDENTITY(1,1), Name nvarchar(30),&#8221; ,<br />
                  &#8220;Surname nvarchar(30), IdentificationNumber nvarchar(11), Picture Image NULL)&#8221;);<br />
              SqlCeCommand komut = new SqlCeCommand(createSQL.ToString(), Baglan);<br />
              Baglan.Open();<br />
              komut.ExecuteNonQuery();<br />
              Baglan.Close();<br />
            }<br />
        }</p>
<p>        private void InsertData(string name, string sureName, string IndenNumber, Image image)<br />
        {<br />
            SqlCeCommand sqlInsert = new SqlCeCommand( string.Format(&#8220;INSERT INTO Account(Name, Surname, IdentificationNumber, Picture)VALUES (&#8216;{0}&#8217;, &#8216;{1}&#8217;, &#8216;{2}&#8217;, @adf)&#8221;,<br />
                name, sureName, IndenNumber), Baglan);<br />
            sqlInsert.Parameters.Add(new SqlCeParameter(&#8220;@adf&#8221;, SqlDbType.Image)).Value = imageToByteArray(image);<br />
            Baglan.Open();<br />
            sqlInsert.ExecuteNonQuery();<br />
            Baglan.Close();<br />
        }</p>
<p>        public byte[] imageToByteArray(System.Drawing.Image imageIn)<br />
        {<br />
            MemoryStream ms = new MemoryStream();<br />
            imageIn.Save(ms, ImageFormat.Jpeg);<br />
            return ms.GetBuffer();<br />
        }</p>
<p>        public Image byteArrayToImage(byte[] byteArrayIn)<br />
        {<br />
            MemoryStream ms = new MemoryStream(byteArrayIn);<br />
            Image returnImage = new Bitmap(ms);<br />
            return returnImage;<br />
        }</p>
<p>        private void SelectData(string IndenNumber)<br />
        {<br />
            SqlCeCommand sqlSelect = new SqlCeCommand(string.Format(&#8220;SELECT * FROM Account WHERE IdentificationNumber = &#8216;{0}&#8217;&#8221;, IndenNumber),<br />
                Baglan);<br />
            Baglan.Open();<br />
            DataTable table = new DataTable();<br />
            using (IDataReader reader = sqlSelect.ExecuteReader())<br />
                table.Load(reader);</p>
<p>            if (table.Rows.Count &gt; 0)<br />
            {<br />
                DataRow row = table.Rows[0];<br />
                this.editName.Text = row["Name"].ToString();<br />
                this.editSurName.Text = row["Surname"].ToString();<br />
                this.pBox.Image = byteArrayToImage((byte[])row["Picture"]);<br />
            }<br />
            Baglan.Close();<br />
        }</p>
<p>        private void CaptureImage()<br />
        {<br />
            using (CameraCaptureDialog camera = new CameraCaptureDialog())<br />
            {<br />
                camera.Owner = this;<br />
                camera.Mode = CameraCaptureMode.Still;<br />
                camera.StillQuality = CameraCaptureStillQuality.High;<br />
                if (camera.ShowDialog() == DialogResult.OK)<br />
                {<br />
                    pBox.Image = null;<br />
                    pBox.Refresh();<br />
                    pBox.Image = new Bitmap(camera.FileName);<br />
                    pBox.Refresh();</p>
<p>                }</p>
<p>                camera.Dispose();<br />
            }<br />
        }</p>
<p>        private void button2_Click(object sender, EventArgs e)<br />
        {<br />
            this.SelectData(this.editTCKimlikNo.Text);<br />
        }</p>
<p>        private void button3_Click(object sender, EventArgs e)<br />
        {<br />
            this.CaptureImage();<br />
        }</p>
<p>        private void menuItem3_Click(object sender, EventArgs e)<br />
        {<br />
            InsertData(this.editName.Text, this.editSurName.Text, this.editTCKimlikNo.Text, this.pBox.Image);<br />
        }</p>
<p>        private void AccountForm_Load(object sender, EventArgs e)<br />
        {<br />
            try<br />
            {<br />
                CreateDataBase();<br />
            }<br />
            catch (Exception ex)<br />
            {<br />
                throw;<br />
            }<br />
        }</p>
<p>    }<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/net-mobile-sql-server-ce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLINQ ile Xml Sorgulama</title>
		<link>http://www.ceviktavsan.com/xlinq-ile-xml-sorgulama/</link>
		<comments>http://www.ceviktavsan.com/xlinq-ile-xml-sorgulama/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 09:02:34 +0000</pubDate>
		<dc:creator>Tolga Güler</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[XLINQ]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=234</guid>
		<description><![CDATA[LINQ projesi ile birlikte, IEnumerable&#60;T&#62; arayüzünü uygulayan sınf dizilerine, sql vari bir sorgu methodu ile sorgulama yapıp, sonuçlara yine bir dizi olarak erişebildiğimizi örnek bir uygulama ile anlatmıştım. XLINQ da Framework 3.0 ile gelen bu yeniliğin, xml verilerine de uygulanmasını olanak sağlar. Örneğimiz anlatılanları daha anlaşılır yapacaktır umarım:) not:kodları buraya resim olarak eklemek zorunda kaldım. [...]]]></description>
			<content:encoded><![CDATA[<p>LINQ projesi ile birlikte, IEnumerable&lt;T&gt; arayüzünü uygulayan sınf dizilerine, sql vari bir sorgu methodu ile sorgulama yapıp, sonuçlara yine bir dizi olarak erişebildiğimizi örnek bir uygulama ile anlatmıştım.</p>
<p>XLINQ da Framework 3.0 ile gelen bu yeniliğin, xml verilerine de uygulanmasını olanak sağlar. Örneğimiz anlatılanları daha anlaşılır yapacaktır umarım:)</p>
<p><span id="more-420"></span></p>
<p>not:kodları buraya resim olarak eklemek zorunda kaldım. Resimlere tıklarsanız kodların metin hallerine ulaşabilirsiniz.</p>
<p><a title="xml döküman" href="http://www.ceviktavsan.com/tolga/moneytransfer.xml" target="_blank"><img src="http://www.ceviktavsan.com/wp-content/uploads/2008/08/xml.jpg" alt="Xml Döküman" /></a></p>
<p>Yukarıdaki xml dökümanından, total&#8217;ı 2000 olan kaydı sorgulayalım.</p>
<p>Framework 3.0 ile gelen System.Xml.Linq isim uzayında bulunan <a title="Xdocument Sınıfı" href="http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx" target="_blank">Xdocument </a> sınıfı &#8220;dil ile tümleşik sorgulama&#8221; tekniğini xml dökümanına uygulamamıza olanak tanır.</p>
<p>XDocument document = XDocument.Parse(Xml);</p>
<p>document.Root.Elements(&#8220;MoneyTransfer&#8221;) metodunun sonucu IEnumerable olduğu için,LINQ ile sorgulamayı yapabiliriz.</p>
<p> </p>
<p><a title="XLINQ" href="http://www.ceviktavsan.com/tolga/XLINQ.txt" target="_new"><img src="http://www.ceviktavsan.com/wp-content/uploads/2008/08/kod1.jpg" alt="XLINQ" /></a></p>
<p>select new den sonra açtığımız kod bloğunun içinde anonim değişken tipleri tanımladık ve değerlerine, sorgu ifademize uyan xml nodelarındaki verileri atadık. Daha sonra da foreach döngüsü içerisinden kolaylıkla eriştik.</p>
<p>xpath a nazaran daha anlaşılır olduğunu düşündüğüm için uzun zamandır xml sorgulamalarımı XLINQ ile yapıyorum.</p>
<p>Bir önceki yazıya <a href="http://www.ceviktavsan.com/index.php/c35-var-artik-var-azicik-linq">buradan</a> ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/xlinq-ile-xml-sorgulama/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abstract Sınıflar</title>
		<link>http://www.ceviktavsan.com/abstract-siniflar/</link>
		<comments>http://www.ceviktavsan.com/abstract-siniflar/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 20:41:46 +0000</pubDate>
		<dc:creator>Tolga Güler</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[abstract]]></category>
		<category><![CDATA[interface]]></category>

		<guid isPermaLink="false">http://www.ceviktavsan.com/?p=215</guid>
		<description><![CDATA[Abstract kelimesi Türkçede, özet ve soyut anlamlarına gelebilir. Yapısı itibarı ile özel sınıf türlerinden biri olan abstract sınıflar,kendisinden türeyen sınıflara, abstract olarak işaretlenmiş üyelerini, uygulamaya / gerçekleştirmeye / yürütmeye (implement ) zorlar. abstract class soyutCanli {     public abstract string konus(); } soyutCanli sınıfından türeyen tüm sınıflar, abstract olarak belirtilmiş konus() metodunu uygulamak zorundadır.Aksi taktirde [...]]]></description>
			<content:encoded><![CDATA[<p>Abstract kelimesi Türkçede, özet ve soyut anlamlarına gelebilir. Yapısı itibarı ile özel sınıf türlerinden biri olan abstract sınıflar,kendisinden türeyen sınıflara, abstract olarak işaretlenmiş üyelerini, uygulamaya / gerçekleştirmeye / yürütmeye (implement ) zorlar.<br />
<span id="more-419"></span></p>
<blockquote><p>abstract class soyutCanli<br />
{<br />
    public abstract string konus();<br />
}</p></blockquote>
<p>soyutCanli sınıfından türeyen tüm sınıflar, abstract olarak belirtilmiş konus() metodunu uygulamak zorundadır.Aksi taktirde derleyici hata verecektir<em>.(ClassLibrary2.insan&#8217; does not implement inherited abstract member &#8216;ClassLibrary2.soyutCanli.konus()&#8217;)</em> Yani abstract sınıfmız bizi, konus isimli metodunu, aynı imza ile uygulamaya zorlar.Temel kullanım amacı da budur.</p>
<blockquote><p>class insan:soyutCanli<br />
{</p>
<p>  public override string konus()<br />
  {<br />
     return &#8220;merhaba&#8221;;<br />
   }<br />
}</p></blockquote>
<p>Bu yapısı ile arayüzlere (interface) çok benzeseler de bazı temel farklılıklar da bulunmaktadır. Arayüzlerde yanlızca imzalar bulunur. Arayüze kod yazamazsınız. Abstract sınıflarda ise, gerekli görüldüğü taktirde, özet metod ve özelliklerin yanı sıra abstract olarak işaretlenmemiş metodlar ve özellikler de bulunabilir.Abstract sınıfların bir örneğini yaratamayacağınızdan! dolayı, bu methodlara sadece türeyen sınıflar aracılığı ile erişmek mümkün olacaktır. Arayüzlerde public, private vs erişim belirteçleri kullanılmaz. Arayüzden türeyen sınıf, arayüzün tüm elemanlarını public olarak uygular. Arayüzün amacının da nesnemizin dış dünya ile ilişkisini kurmak olduğunu söylersek diğer belirteçler anlamını zaten yitirir. Son olarak, bir sınıfı birden fazla arayüzden aynı anda türetebilirsiniz. Abstract sınıflarda tabi ki bunu yapmanız mümkün değildir.</p>
<p><strong>Hangisini Kullanmalı.</strong></p>
<p>Bazı durumlarda çok biçimlilik kavramı ile sonuca ulaşabiliriz.</p>
<blockquote><p>public class soyutCanli<br />
{<br />
   public virtual string konus()<br />
   {<br />
      return &#8220;?&#8221;;<br />
   }</p>
<p>}</p></blockquote>
<blockquote><p>class insan:soyutCanli<br />
{</p>
<p>   public override string konus()<br />
   {<br />
     return &#8220;merhaba&#8221;;<br />
   }<br />
}</p></blockquote>
<blockquote><p>class program<br />
{<br />
   public program()<br />
   {<br />
     insan i = new insan();<br />
     Console.WriteLine(konustur(i));<br />
     //merhaba</p>
<p>    }</p></blockquote>
<blockquote><p>   public string konustur(soyutCanli s)<br />
   {<br />
     return s.konus();<br />
   }<br />
}</p></blockquote>
<p><em>soyutCanli sınıfının konus() metodunun &#8220;çalışması&#8221; bizim için birşey ifade etmiyorsa, sadece türeyen sınıflarda konus metodunun bulunmasının zorunlu olması, hatta bir sistemin bize bunu zorlaması gerekiyorsa:</em></p>
<p>Abstract sınıflar sonuçta bir &#8220;sınıf&#8221; türüdür. Yani kendisinden türeyen sınıflar için bazı işlemleri bizzat gerçekleştirebilir. Temel abstract sınıfınıza ekleyeceğiniz bir metod kendisinden türeyen tüm sınıflara da doğal olarak eklenecektir. Arayüzlere bir metod (imza) eklerseniz, bu arayüzü uygulayan tüm sınıflara bu metodu çalışması gerektiği şekilde ayrı ayrı eklemeniz gerekecektir. Aksi taktride derleyici hata verir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceviktavsan.com/abstract-siniflar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
