﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>Volem</title>
    <description>Bir Bilgisayar Mühendisinin Arşivi</description>
    <link>http://www.volkanmetin.com.tr/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.6.0.0</generator>
    <language>tr-TR</language>
    <blogChannel:blogRoll>http://www.volkanmetin.com.tr/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://feeds.feedburner.com/volkanmetin</blogChannel:blink>
    <dc:creator>Volem</dc:creator>
    <dc:title>Volem</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>Çalışan vs Yönetici</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table id="y-makale" style="margin: 0px; padding: 10px; border-width: 0px; border-style: solid; font: inherit; width: 670px; position: relative; float: left; border-collapse: collapse; border-spacing: 0px; font-family: Arial, Helvetica, sans-serif;" border="0" cellspacing="0" cellpadding="0" align="center"&gt;
&lt;tbody style="margin: 0px; padding: 0px; border: 0px; font-size: 12px; font: inherit;"&gt;
&lt;tr style="margin: 0px; padding: 0px; border: 0px; font-size: 12px; font: inherit;"&gt;
&lt;td style="font-size: 14px !important; margin: 0px; padding: 0px; border: 0px; font: inherit; color: #666666 !important; line-height: 1.5em !important; font-family: arial !important;"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font: inherit;"&gt;&lt;img style="max-width: 620px; margin: 0px 10px 10px 0px; padding: 0px; font: inherit;" src="http://www.secretcv.com/image/scv_dergi/makale_gorsel/244.jpg" alt="" width="328" height="221" align="left" /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;div style="margin: 0px 0px 15px; padding: 0px; border: 0px; font-size: 14px; font: inherit; font-style: italic;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;Ne zaman y&amp;ouml;neticinizle konuşacak olsanız avu&amp;ccedil;larınızın i&amp;ccedil;i terliyor ve kalp atışlarınız hızlanıyor. Bir hata yaptınız ama bunu s&amp;ouml;ylemeye &amp;ccedil;ekiniyorsunuz.Ya da izin isteyeceksiniz ama y&amp;ouml;neticinizden izin istemek sizin i&amp;ccedil;in d&amp;uuml;nyanın en zor işi&amp;hellip;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;
&lt;p style="margin: 0px; padding: 0px; border: 0px; font: inherit; line-height: 1.5em !important;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;&amp;Ccedil;alışanlarla y&amp;ouml;neticileri arasındaki iletişimsizlikten kaynaklı yanlış anlaşılmalar iş yerinde mutsuz bir ortamın oluşmasına sebep olur. İki taraftan biri bu durumu d&amp;uuml;zeltmek i&amp;ccedil;in atağa ge&amp;ccedil;melidir. Gel gelelim karşınızdaki kişinin size nasıl yanıt vereceği sizi korkutabilir. Bir &amp;ccedil;alışansanız ve y&amp;ouml;neticinizle sorunlarınız varsa &amp;ccedil;oğu kez bunu dile getirmekten korkarsınız. Bunun ilk nedeni ise işten &amp;ccedil;ıkartılma endişesidir. Oysa ki d&amp;uuml;zg&amp;uuml;n bir &amp;uuml;slup ve nazik konuşma tarzınızla iş yerinize gelirken ayaklarınızın geri geri gitmesine sebep olan şeyleri ortadan kaldırabilirsiniz.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;br style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;Yapmanız gereken ilk şey empati. "Ben y&amp;ouml;netici olsam bu sorunlar karşısında nasıl bir tavır sergilerdim? &amp;rdquo; sorusuna cevap bulmaktır.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;br style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;Y&amp;ouml;neticiler &amp;ccedil;ok fazla konuşan &amp;ccedil;alışanlardan &amp;ccedil;ok fazla hoşlanmazlar. Sorunlarınızı kısa ve &amp;ouml;z bir ifadeyle anlatmaya &amp;ouml;zen g&amp;ouml;steriniz.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;br style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;- İlk madde ne istediğinizi bilerek konuşmaya başlamaktır. A&amp;ccedil;ıklamanıza başlamadan &amp;ouml;nce kendinizce dile getireceğiniz sorunları net bir şekilde not almanız gerekir. Sorunlarınızı belirlemiş olmanız ve neler yapabileceğinizle ilgili se&amp;ccedil;enekler &amp;uuml;retmiş olmanız &amp;ouml;nemlidir.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;br style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;- Sorununuz yoğun &amp;ccedil;alışma temposu ise nasıl bir strateji izlemeniz gerektiğini y&amp;ouml;neticinize danışabilirsiniz. B&amp;ouml;ylece hem işinizi hem de kendisinin fikirlerini ger&amp;ccedil;ekten &amp;ouml;nemsemiş olduğunuzu karşı tarafa hissettirebilirsiniz. Y&amp;ouml;neticinizle ortak paydada buluşup bu sorunun &amp;uuml;stesinden gelebilirsiniz.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;br style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;- Eğer sorununuz yaptığınız hatalar ise &amp;ccedil;&amp;ouml;z&amp;uuml;m&amp;uuml; yine sizde saklı. Bir hata yaptınız ve bunu y&amp;ouml;neticinize nasıl s&amp;ouml;yleyeceğiniz konusunda bir fikriniz yok. Yaptığınız hatayı saklamak d&amp;uuml;şeceğiniz en b&amp;uuml;y&amp;uuml;k yanlıştır. Unutmayın ki herkes hata yapabilir. Bir kere hata yapmış olmanız s&amp;uuml;rekli aynı hatayı yapacağınız anlamına gelmez. Yapmanız gereken şey hatanızı kabullenmek ve asla başkasına su&amp;ccedil;u atmamaktır. Bu gibi durumlarda yaptığınız hatadan dolayı &amp;uuml;zg&amp;uuml;n olduğunuzu belirtmeli ve bundan sonraki s&amp;uuml;re&amp;ccedil;te daha dikkatli olacağınızı ifade etmelisiniz.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;br style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; font: inherit;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;span style="font-family: mceinline;"&gt;Unutmayın ki d&amp;uuml;r&amp;uuml;st olmak &amp;ouml;nemlidir. Siz i&amp;ccedil;inizde biriktirdiğiniz d&amp;uuml;ş&amp;uuml;ncelerinizi samimi bir şekilde kendisiyle paylaştınız; bir &amp;ccedil;alışan olarak yapmanız gerekenleri yaptınız. Hatalarınızı kabullendiniz ve y&amp;ouml;neticinizle olması gerektiği d&amp;uuml;zeyde konuştunuz. Cevap verme sırası y&amp;ouml;neticinizde&amp;hellip;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/Calc4b1san-vs-Yonetici.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/Calc4b1san-vs-Yonetici.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=5fcfcb25-72bd-4841-8784-51f88c133139</guid>
      <pubDate>Tue, 30 Oct 2012 23:32:00 +0100</pubDate>
      <category>Hayat</category>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=5fcfcb25-72bd-4841-8784-51f88c133139</pingback:target>
      <slash:comments>300</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=5fcfcb25-72bd-4841-8784-51f88c133139</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/Calc4b1san-vs-Yonetici.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=5fcfcb25-72bd-4841-8784-51f88c133139</wfw:commentRss>
    </item>
    <item>
      <title>Sequential Guid Generator</title>
      <description>&lt;pre id="pre8" style="background-color: #fbedbb; padding: 6px; font-size: 9pt; font-family: Consolas, 'Courier New', Courier, mono; white-space: pre-wrap; border: 1px solid #fbedbb; overflow: auto; word-wrap: break-word; margin-top: 0px;" lang="cs"&gt;&lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;using&lt;/span&gt; System;
&lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;using&lt;/span&gt; System.Security.Cryptography;

&lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;public&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;enum&lt;/span&gt; SequentialGuidType {
  SequentialAsString,
  SequentialAsBinary,
  SequentialAtEnd
} 

&lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;public&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;static&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;class&lt;/span&gt; SequentialGuidGenerator {

  &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;private&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;static&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;readonly&lt;/span&gt; RNGCryptoServiceProvider _rng = &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;new&lt;/span&gt; RNGCryptoServiceProvider();

  &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;public&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;static&lt;/span&gt; Guid NewSequentialGuid(SequentialGuidType guidType) {

    &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;byte&lt;/span&gt;[] randomBytes = &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;new&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;byte&lt;/span&gt;[&lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;10&lt;/span&gt;];
    _rng.GetBytes(randomBytes);

    &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;long&lt;/span&gt; timestamp = DateTime.Now.Ticks / 10000L;
    &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;byte&lt;/span&gt;[] timestampBytes = BitConverter.GetBytes(timestamp);

    &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;if&lt;/span&gt; (BitConverter.IsLittleEndian) {
      Array.Reverse(timestampBytes);
    }

    &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;byte&lt;/span&gt;[] guidBytes = &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;new&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;byte&lt;/span&gt;[&lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;16&lt;/span&gt;];

    &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;switch&lt;/span&gt; (guidType) {

      &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;case&lt;/span&gt; SequentialGuidType.SequentialAsString:
      &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;case&lt;/span&gt; SequentialGuidType.SequentialAsBinary:

        Buffer.BlockCopy(timestampBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;2&lt;/span&gt;, guidBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;0&lt;/span&gt;, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;6&lt;/span&gt;);
        Buffer.BlockCopy(randomBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;0&lt;/span&gt;, guidBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;6&lt;/span&gt;, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;10&lt;/span&gt;);

        &lt;span class="code-comment" style="margin: 0px; padding: 0px; border: 0px; color: #008000; font-style: italic;"&gt;//&lt;/span&gt;&lt;span class="code-comment" style="margin: 0px; padding: 0px; border: 0px; color: #008000; font-style: italic;"&gt; If formatting as a string, we have to reverse the order
&lt;/span&gt;        &lt;span class="code-comment" style="margin: 0px; padding: 0px; border: 0px; color: #008000; font-style: italic;"&gt;//&lt;/span&gt;&lt;span class="code-comment" style="margin: 0px; padding: 0px; border: 0px; color: #008000; font-style: italic;"&gt; of the Data1 and Data2 blocks on little-endian systems.
&lt;/span&gt;        &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;if&lt;/span&gt; (guidType == SequentialGuidType.SequentialAsString &amp;amp;&amp;amp; BitConverter.IsLittleEndian) {
          Array.Reverse(guidBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;0&lt;/span&gt;, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;4&lt;/span&gt;);
          Array.Reverse(guidBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;4&lt;/span&gt;, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;2&lt;/span&gt;);
        }
        &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;break&lt;/span&gt;;

      &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;case&lt;/span&gt; SequentialGuidType.SequentialAtEnd:

        Buffer.BlockCopy(randomBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;0&lt;/span&gt;, guidBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;0&lt;/span&gt;, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;10&lt;/span&gt;);
        Buffer.BlockCopy(timestampBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;2&lt;/span&gt;, guidBytes, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;10&lt;/span&gt;, &lt;span class="code-digit" style="margin: 0px; padding: 0px; border: 0px; color: navy;"&gt;6&lt;/span&gt;);
        &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;break&lt;/span&gt;;
    }

    &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;return&lt;/span&gt; &lt;span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px; color: blue;"&gt;new&lt;/span&gt; Guid(guidBytes);
  }
}&lt;/pre&gt;
&lt;p style="text-align: right;"&gt;&lt;span style="size:32"&gt;By Jeremy Todd&lt;/span&gt;&lt;/p&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/Sequential-Guid-Generator.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/Sequential-Guid-Generator.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=20ccac69-c144-42c3-a3e5-710589a0057d</guid>
      <pubDate>Thu, 18 Oct 2012 16:14:00 +0100</pubDate>
      <category>C#</category>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=20ccac69-c144-42c3-a3e5-710589a0057d</pingback:target>
      <slash:comments>342</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=20ccac69-c144-42c3-a3e5-710589a0057d</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/Sequential-Guid-Generator.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=20ccac69-c144-42c3-a3e5-710589a0057d</wfw:commentRss>
    </item>
    <item>
      <title>The Lean Startup methodology</title>
      <description>&lt;p&gt;&lt;span style="color: #231f20; font-family: Tahoma, Geneva, Verdana, sans-serif; font-size: 15px; line-height: 24px;"&gt;The Lean Startup methodology has as a premise that every startup is a grand experiment that attempts to answer a question. The question is not "Can this product be built?" Instead, the questions are "Should this product be built?" and "Can we build a sustainable business around this set of products and services?" This experiment is more than just theoretical inquiry; it is a first product. If it is successful, it allows a manger to get started with his or her campaign: enlisting early adopters, adding employees to each further experiment or iteration, and eventually starting to build a product. By the time that product is ready to be distributed widely, it will already have established customers. It will have solved real problems and offer detailed specifications for what needs to be built.&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: right;"&gt;&lt;span style="color: #231f20; font-family: Tahoma, Geneva, Verdana, sans-serif; font-size: 15px; line-height: 24px;"&gt;Eric Ries&lt;/span&gt;&lt;/p&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/The-Lean-Startup-methodology.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/The-Lean-Startup-methodology.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=691bcb84-2915-4245-9cdb-2bd82e5b6633</guid>
      <pubDate>Mon, 28 May 2012 12:46:00 +0100</pubDate>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=691bcb84-2915-4245-9cdb-2bd82e5b6633</pingback:target>
      <slash:comments>2541</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=691bcb84-2915-4245-9cdb-2bd82e5b6633</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/The-Lean-Startup-methodology.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=691bcb84-2915-4245-9cdb-2bd82e5b6633</wfw:commentRss>
    </item>
    <item>
      <title>Lord Eddard Stark</title>
      <description>&lt;p&gt;&lt;img src="http://www.volkanmetin.com.tr/image.axd?picture=2011%2f11%2fNed.png" alt="" width="675" /&gt;&lt;/p&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/Lord-Eddard-Stark.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/Lord-Eddard-Stark.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=dcad940d-18b1-49f4-b06d-e7d23628660a</guid>
      <pubDate>Mon, 28 Nov 2011 17:40:00 +0100</pubDate>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=dcad940d-18b1-49f4-b06d-e7d23628660a</pingback:target>
      <slash:comments>327</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=dcad940d-18b1-49f4-b06d-e7d23628660a</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/Lord-Eddard-Stark.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=dcad940d-18b1-49f4-b06d-e7d23628660a</wfw:commentRss>
    </item>
    <item>
      <title>FTP Part II - Download</title>
      <description>&lt;p style="float:left; padding-right:5px"&gt;&lt;img src="http://www.volkanmetin.com.tr/image.axd?picture=2011%2f11%2fftp.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Yazimin ikinci kismiyla tekrar merhaba.. Ilk bolumde verilen bir ftp klasoru altindaki dosyalarin listesini aliyorduk. Bu yazimda ise herhangi bir dosyayi ya da butun klasoru nasil download edebiliriz konusunu islemeye calisacagim. Download folder icin bir onceki yazimda yer alan GetFileList metodunu kullanacagiz. Neyse sozu fazla uzatmadan biraz kod gorelim.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Download(&lt;span class="kwrd"&gt;string&lt;/span&gt; file, &lt;span class="kwrd"&gt;string&lt;/span&gt; remoteDirectory, &lt;span class="kwrd"&gt;string&lt;/span&gt; destinationDirectory, &lt;span class="kwrd"&gt;string&lt;/span&gt; host, &lt;span class="kwrd"&gt;string&lt;/span&gt; user, &lt;span class="kwrd"&gt;string&lt;/span&gt; password)&lt;br /&gt; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;string&lt;/span&gt; uri = &lt;span class="str"&gt;"ftp://"&lt;/span&gt; + host + &lt;span class="str"&gt;"/"&lt;/span&gt; + remoteDirectory + &lt;span class="str"&gt;"/"&lt;/span&gt; + file;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Uri serverUri = &lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(uri);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (serverUri.Scheme != Uri.UriSchemeFtp)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FtpWebRequest reqFTP;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP = (FtpWebRequest)FtpWebRequest.Create(serverUri);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.Credentials = &lt;span class="kwrd"&gt;new&lt;/span&gt; NetworkCredential(user, password);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.KeepAlive = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.UseBinary = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.Proxy = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.UsePassive = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Stream responseStream = response.GetResponseStream();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CreateDirectory(destinationDirectory);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FileStream writeStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; FileStream(destinationDirectory + "\\" + file, FileMode.Create);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;int&lt;/span&gt; Length = 2048;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Byte[] buffer = &lt;span class="kwrd"&gt;new&lt;/span&gt; Byte[Length];&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;int&lt;/span&gt; bytesRead = responseStream.Read(buffer, 0, Length);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;while&lt;/span&gt; (bytesRead &amp;gt; 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writeStream.Write(buffer, 0, bytesRead);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bytesRead = responseStream.Read(buffer, 0, Length);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writeStream.Close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response.Close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;catch&lt;/span&gt; (WebException wEx)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;throw&lt;/span&gt; wEx;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Gordugunuz gibi GetFileList'de yaptigimiza benzer bir is yapiyoruz yalniz bu sefer Method olarak;&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;kullaniyoruz. Bu kod bize klasor adresini bildigimiz herhangi bir dosyayi istedigimiz klasore indirmemizi sagliyor. Tahmin ettiginiz gibi Download folder'da yazdigimiz 2 metodu yani GetFileList ve Download'u kullanacak.&lt;br /&gt;&lt;div class="code"&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DownloadFolder(&lt;span class="kwrd"&gt;string&lt;/span&gt; sourceDirectory, &lt;span class="kwrd"&gt;string&lt;/span&gt; destinationDirectory, &lt;span class="kwrd"&gt;string&lt;/span&gt; host, &lt;span class="kwrd"&gt;string&lt;/span&gt; user, &lt;span class="kwrd"&gt;string&lt;/span&gt; password)&lt;br /&gt; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;string&lt;/span&gt;[] files = GetFileList(sourceDirectory, host, user, password);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; file &lt;span class="kwrd"&gt;in&lt;/span&gt; files)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Download(file, sourceDirectory, destinationDirectory, host, user, password);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;catch&lt;/span&gt;(Exception ex)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Umarim acik olmustur.&amp;nbsp;&lt;/p&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/FTP-Part-II-Download.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/FTP-Part-II-Download.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=43cc8619-6bc6-4b5b-bb1c-1ef0d61aa6ac</guid>
      <pubDate>Tue, 01 Nov 2011 10:01:00 +0100</pubDate>
      <category>Yazılım</category>
      <category>C#</category>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=43cc8619-6bc6-4b5b-bb1c-1ef0d61aa6ac</pingback:target>
      <slash:comments>906</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=43cc8619-6bc6-4b5b-bb1c-1ef0d61aa6ac</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/FTP-Part-II-Download.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=43cc8619-6bc6-4b5b-bb1c-1ef0d61aa6ac</wfw:commentRss>
    </item>
    <item>
      <title>FTP Part I - Dosya Listesi</title>
      <description>&lt;p style="float:left"&gt;&lt;img src="http://www.volkanmetin.com.tr/image.axd?picture=2011%2f10%2fftp.jpg" alt="" width="200px" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Merhabalar,&lt;/p&gt;
&lt;p&gt;Bugun yeniden 3 asamali bir yazi yazmaya karar verdim. Beraber FTP islemlerini C# ile nasil gerceklestirebilecegimizi gorecegiz.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ilk bolumde verilen bir FTP klasorundeki dosya listesini nasil aliriz ona bakacagiz. Ardindan da Download, Upload ve Delete islemlerini nasil yapacagimizi gostermeye calisacagim.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Methodlarin bireysel olarak calisabilmesi icin hepsine FTP server adi, kullanici adi ve sifre bilgilerini parametre olarak gonderiyorum. Ancak siz dilerseniz bu yapiyi bu metodlari gercekleyen sinifin ozellikleri olarak tanimlayabilirsiniz. Boylece sadece o metodu ilgilendiren parametreler ona gidecektir vs.. vs.. :)&lt;/p&gt;
&lt;p&gt;Bu bolumde anlatacagim bir klasordeki dosya listesini okuma aslinda diger metodlar ve kullanimlar icin temel olusturacaktir. Sozu fazla uzatmadan kod yazmaya basliyalim..&lt;br /&gt;&lt;div class="code"&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;[] GetFileList(&lt;span class="kwrd"&gt;string&lt;/span&gt; sourceFolder, &lt;span class="kwrd"&gt;string&lt;/span&gt; host, &lt;span class="kwrd"&gt;string&lt;/span&gt; user, &lt;span class="kwrd"&gt;string&lt;/span&gt; password) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; StringBuilder result = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;&amp;nbsp; &amp;nbsp; WebResponse response = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; StreamReader reader = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FtpWebRequest reqFTP;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP = (FtpWebRequest)FtpWebRequest.Create(&lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(&lt;span class="str"&gt;"ftp://"&lt;/span&gt; + host + &lt;span class="str"&gt;"/"&lt;/span&gt; + sourceFolder + &lt;span class="str"&gt;"/"&lt;/span&gt;));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.UseBinary = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.Credentials = &lt;span class="kwrd"&gt;new&lt;/span&gt; NetworkCredential(user, password);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.Proxy = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.KeepAlive = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reqFTP.UsePassive = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response = reqFTP.GetResponse();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reader = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamReader(response.GetResponseStream());&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;string&lt;/span&gt; line = reader.ReadLine();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;while&lt;/span&gt; (line != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result.Append(line);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result.Append(&lt;span class="str"&gt;"\n"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; line = reader.ReadLine();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (result.ToString() != String.Empty)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result.Remove(result.ToString().LastIndexOf(&lt;span class="str"&gt;'\n'&lt;/span&gt;), 1);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; result.ToString().Split(&lt;span class="str"&gt;'\n'&lt;/span&gt;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;[0];&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (reader != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reader.Close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (response != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response.Close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;Aslinda yukaridaki kod kendini anlatiyor ancak dikkat edilmesi gereken satir;&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Bu kod parcacigi aslinda ftp sunucusuna gosterdigimiz klasorde en temel command'i olan "dir" calistirmasini soyluyor. Bu komut bize satir satir o klasorde var olan ne varsa listeleyecektir biz de bu satirlari okuyoruz hepsi bu. Bu metodun eksigi aslinda bu klasordekilerin dosya mi yoksa klasor mu olup olmadigini kontrol etmemesidir. Bu konuyu merak eden arkadaslar icin ListDirectory yerine ListDirectoryDetails kullanimini arastirmalarini tavsiye ederim. Kodu basit tutmak amaciyla bu konuya girmiyorum.&lt;/p&gt;
&lt;p&gt;Umarim isinize yarar.. Yazimin 2. bolumuyle tekrar gorusmek uzere..&lt;/p&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/FTP-Part-I-Dosya-Listesi.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/FTP-Part-I-Dosya-Listesi.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=fed87ec0-8704-4dd2-9df0-090b888729c6</guid>
      <pubDate>Tue, 25 Oct 2011 09:56:00 +0100</pubDate>
      <category>Yazılım</category>
      <category>C#</category>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=fed87ec0-8704-4dd2-9df0-090b888729c6</pingback:target>
      <slash:comments>429</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=fed87ec0-8704-4dd2-9df0-090b888729c6</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/FTP-Part-I-Dosya-Listesi.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=fed87ec0-8704-4dd2-9df0-090b888729c6</wfw:commentRss>
    </item>
    <item>
      <title>Email Helper</title>
      <description>&lt;p style="float:left"&gt;&lt;div class="code"&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; EmailHelper&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;char&lt;/span&gt; emailSplitter = &lt;span class="str"&gt;','&lt;/span&gt;; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Email(&lt;span class="kwrd"&gt;string&lt;/span&gt; toAddress, &lt;span class="kwrd"&gt;string&lt;/span&gt; fromAddress, &lt;span class="kwrd"&gt;string&lt;/span&gt; subject, &lt;span class="kwrd"&gt;string&lt;/span&gt; attachmentFile, &lt;span class="kwrd"&gt;string&lt;/span&gt; smtphost, &lt;span class="kwrd"&gt;int&lt;/span&gt; port)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;string&lt;/span&gt;[] emails = toAddress.Split(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;char&lt;/span&gt;[] { emailSplitter }, StringSplitOptions.RemoveEmptyEntries);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (emails.Length &amp;gt; 1)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var email &lt;span class="kwrd"&gt;in&lt;/span&gt; emails)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Email(email.Trim(), fromAddress, subject, attachmentFile, smtphost, port);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thread.Sleep(1000);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MailMessage message = &lt;span class="kwrd"&gt;new&lt;/span&gt; MailMessage();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.To.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; MailAddress(toAddress));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.Subject = subject;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.From = &lt;span class="kwrd"&gt;new&lt;/span&gt; MailAddress(fromAddress);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.Body = subject;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (File.Exists(attachmentFile))&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.Attachments.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Attachment(attachmentFile));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SmtpClient smtp = &lt;span class="kwrd"&gt;new&lt;/span&gt; SmtpClient(smtphost, port);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; smtp.Credentials = CredentialCache.DefaultNetworkCredentials;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; smtp.Send(message);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;Merhabalar,&amp;nbsp;&lt;br /&gt;Uzun zamandan sonra yine arsive katmam gereken bir post cikti :) Herhalde bu yukaridaki kodu 10-15 kere tekrar tekrar yazmisimdir. Yaptigi is aslinda koddan da anlasilacagi uzere cok basit. Bir SMTP server (host) kullanarak parametreleri ile belirttiginiz maili olusturup atiyor. Eger mailinizde attachment yoksa o parametreyi bos gecebilrisiniz.Ayrica toAddress parametresine ',' ile ayrilmis mail adresleri koyabilirsiniz. Boylece birden cok kisiye mail atacaktir.&lt;/p&gt;
&lt;p&gt;Herkese kolay gelsin.&lt;/p&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/Email-Helper.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/Email-Helper.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=da835bbf-9b33-4f49-9ac8-99a0da9b0dca</guid>
      <pubDate>Mon, 24 Oct 2011 15:44:00 +0100</pubDate>
      <category>Yazılım</category>
      <category>C#</category>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=da835bbf-9b33-4f49-9ac8-99a0da9b0dca</pingback:target>
      <slash:comments>753</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=da835bbf-9b33-4f49-9ac8-99a0da9b0dca</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/Email-Helper.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=da835bbf-9b33-4f49-9ac8-99a0da9b0dca</wfw:commentRss>
    </item>
    <item>
      <title>Hafta Başı ve Hafta Sonu Hesaplama</title>
      <description>&lt;p&gt;Gecenlerde haftayi ve yili bilip de haftanin ilk ve son gununu hesaplama ihtiyacim duydum. Umarim sizin de isinize yarar..&lt;br /&gt;&lt;div class="code"&gt;
&lt;br /&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; CalendarHelper&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;/// Calculates start and end date of a week for a specific year.&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;/// &amp;lt;param name="year"&amp;gt;Year&amp;lt;/param&amp;gt;&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;/// &amp;lt;param name="week"&amp;gt;Week number&amp;lt;/param&amp;gt;&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;/// &amp;lt;param name="startDate"&amp;gt;Calculated start date of week&amp;lt;/param&amp;gt;&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;/// &amp;lt;param name="endDate"&amp;gt;Calculated end date of week&amp;lt;/param&amp;gt;&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StartEndDateOfWeek(&lt;span class="kwrd"&gt;int&lt;/span&gt; year, &lt;span class="kwrd"&gt;int&lt;/span&gt; week, &lt;span class="kwrd"&gt;out&lt;/span&gt; DateTime startDate, &lt;span class="kwrd"&gt;out&lt;/span&gt; DateTime endDate)&lt;br/&gt;
&amp;nbsp; &amp;nbsp; {&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;// First of January&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DateTime jan1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; DateTime(year, 1, 1);&lt;br/&gt;
&amp;nbsp;&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;// Calculation is done according to the first day of week is monday but includes the offset,&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;// so it will be correct for sunday and other first day of week.&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;int&lt;/span&gt; daysOffset = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek - (&lt;span class="kwrd"&gt;int&lt;/span&gt;)jan1.DayOfWeek;&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DateTime firstMonday = jan1.AddDays(daysOffset);&lt;br/&gt;
&amp;nbsp;&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="rem"&gt;// Find the first week.&lt;br/&gt;&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;int&lt;/span&gt; firstWeek = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(jan1, CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule,&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek);&lt;br/&gt;
&amp;nbsp;&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (firstWeek &amp;lt;= 1)&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; week -= 1;&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br/&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; startDate = firstMonday.AddDays(week * 7);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endDate = startDate.AddDays(6); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;br/&gt;&lt;br/&gt;
&lt;/div&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/Hafta-Basc4b1-ve-Hafta-Sonu-Hesaplama.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/Hafta-Basc4b1-ve-Hafta-Sonu-Hesaplama.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=189b3f80-a062-4fde-a7e5-4cedb6054bf4</guid>
      <pubDate>Mon, 04 Jul 2011 13:06:00 +0100</pubDate>
      <category>C#</category>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=189b3f80-a062-4fde-a7e5-4cedb6054bf4</pingback:target>
      <slash:comments>899</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=189b3f80-a062-4fde-a7e5-4cedb6054bf4</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/Hafta-Basc4b1-ve-Hafta-Sonu-Hesaplama.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=189b3f80-a062-4fde-a7e5-4cedb6054bf4</wfw:commentRss>
    </item>
    <item>
      <title>Code First Migration Preview</title>
      <description>&lt;object style="height: 390px; width: 640px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/tImrLkaxXpI?version=3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/tImrLkaxXpI?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/object&gt;</description>
      <link>http://www.volkanmetin.com.tr/post/Code-First-Migration-Preview.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/Code-First-Migration-Preview.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=746a66ef-1c03-4d87-88f2-78a0ed344560</guid>
      <pubDate>Tue, 14 Jun 2011 12:57:00 +0100</pubDate>
      <category>Uygulama</category>
      <category>Yazılım</category>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=746a66ef-1c03-4d87-88f2-78a0ed344560</pingback:target>
      <slash:comments>228</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=746a66ef-1c03-4d87-88f2-78a0ed344560</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/Code-First-Migration-Preview.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=746a66ef-1c03-4d87-88f2-78a0ed344560</wfw:commentRss>
    </item>
    <item>
      <title>ADO.NET EF 4.1 Code First Development</title>
      <description>&lt;iframe style="height:368px;width:640px; margin-left: auto; margin-right: auto;" src="http://channel9.msdn.com/Events/TechEd/Europe/2010/DEV212/player?w=640&amp;h=368" frameBorder="0" scrolling="no" &gt;&lt;/iframe&gt;
</description>
      <link>http://www.volkanmetin.com.tr/post/ADONET-EF-41-Code-First-Development.aspx</link>
      <author>Volem</author>
      <comments>http://www.volkanmetin.com.tr/post/ADONET-EF-41-Code-First-Development.aspx#comment</comments>
      <guid>http://www.volkanmetin.com.tr/post.aspx?id=22e4b883-f2af-451f-9e60-71fad3ff1ffa</guid>
      <pubDate>Thu, 09 Jun 2011 14:58:00 +0100</pubDate>
      <dc:publisher>Volem</dc:publisher>
      <pingback:server>http://www.volkanmetin.com.tr/pingback.axd</pingback:server>
      <pingback:target>http://www.volkanmetin.com.tr/post.aspx?id=22e4b883-f2af-451f-9e60-71fad3ff1ffa</pingback:target>
      <slash:comments>305</slash:comments>
      <trackback:ping>http://www.volkanmetin.com.tr/trackback.axd?id=22e4b883-f2af-451f-9e60-71fad3ff1ffa</trackback:ping>
      <wfw:comment>http://www.volkanmetin.com.tr/post/ADONET-EF-41-Code-First-Development.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.volkanmetin.com.tr/syndication.axd?post=22e4b883-f2af-451f-9e60-71fad3ff1ffa</wfw:commentRss>
    </item>
  </channel>
</rss>