<feed xmlns:dc="http://purl.org/dc/elements/1.1/" 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="http://www.w3.org/2005/Atom" xml:lang="tr-TR">
    <title>yunusozen</title>
    <link rel="self" type="application/xml" href="http://yunus.csharpturk.net/Atom.aspx" />
    <subtitle type="html">my(own)space</subtitle>
    <id>http://yunus.csharpturk.net/Default.aspx</id>
    <author>
        <name>Yunus Özen</name>
        <uri>http://yunus.csharpturk.net/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 1.9.5.176">Subtext</generator>
    <updated>2008-06-10T01:34:03Z</updated>
    <entry>
        <title>Asp.Net MVC Preview 3 Getirdikleri</title>
        <link rel="self" type="text/html" href="http://yunus.csharpturk.net/archive/2008/06/10/asp.net-mvc-preview-3-getirdikleri.aspx" />
        <id>http://yunus.csharpturk.net/archive/2008/06/10/asp.net-mvc-preview-3-getirdikleri.aspx</id>
        <published>2008-06-10T01:34:0303:00:00</published>
        <updated>2008-06-10T01:34:03Z</updated>
        <content type="html">&lt;p&gt;Asp.Net MVC Framework Preview 3 geçtiğimiz günlerde &lt;a href="http://www.csharpturk.net/Haber.aspx?Haber=7"&gt;duyuruldu&lt;/a&gt;. Asp.Net MVC Preview 2 ile uygulama geliştirmiş olanlar için, Preview 3 ile gelen değişiklikleri bu yazıda özetleyeme çalışacağım.&lt;/p&gt;  &lt;p&gt;Asp.Net MVC Framework konusunda ön bilgi için geçtiğimiz günlerde yaptığımız Asp.Net MVC seminerinin dökümanlarına, örnek uygulamalara, seminer sunumu ve video kaydına &lt;a href="http://www.csharpturk.net/Duyuru.aspx?Duyuru=21"&gt;bakabilirsiniz&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Seminer sunumu ve örnek uygulamalar Preview 2 baz alınarak yapılmıştı.&lt;/p&gt;  &lt;p&gt;Şimdi gelelim Preview 3’e.&lt;/p&gt;  &lt;p&gt;Önce Controller cephesinde olan değişikliklere bakalım. Action Method’ların yazımında ve yapısında değişiklikler oldu. Şöyleki, eskiden void döndüren Action Method’lar artık ActionResult döndürüyor. ActionResult daha bir kaç farklı tipten oluşuyor. Önce basit bir örnek üzerinde görelim.&lt;/p&gt;  &lt;p&gt;Preview 2 Action Method Örneği:&lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; HomeController : Controller
    {
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Index()
        {
            RenderView(&lt;span class="str"&gt;"Index"&lt;/span&gt;);
        }
    }&lt;/pre&gt;

&lt;p&gt;Preview 3 Action Method Örneği:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; HomeController : Controller {
  &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult Index() {
    &lt;span class="kwrd"&gt;return&lt;/span&gt; View(&lt;span class="str"&gt;"Index"&lt;/span&gt;);
  }
}&lt;/pre&gt;

&lt;p&gt;ActionResult da farklı tiplerde oluyor: ViewResult, EmptyResult, RedirectResult, RedirectToRouteResult, JsonResult, ContentResult&lt;/p&gt;

&lt;p&gt;Bu ActionResult tiplerini döndürebilen Controller sınıfındaki methodlar da şu şekilde: &lt;/p&gt;

&lt;p&gt;1. View : ViewResult döndürür (Yukarıdaki örnekte var)&lt;/p&gt;

&lt;p&gt;2. Redirect : RedirectResult döndürür.&lt;/p&gt;

&lt;p&gt;3. RedirectToAction : RedirectToRouteResult döndürür.&lt;/p&gt;

&lt;p&gt;4. RedirectToRoute : RedirectToRouteResult döndürür.&lt;/p&gt;

&lt;p&gt;5. Json : JsonResult döndürür.&lt;/p&gt;

&lt;p&gt;6. Content : ContentResult döndürür.&lt;/p&gt;

&lt;p&gt;Eğer bir Action Method void döndürürse ya da null döndürürse action invoker implicit olarak bir EmptyResult oluşturur.&lt;/p&gt;

&lt;p&gt;Method, explicit, implicit gibi kavramlar için C#Türk.net’te Başlangıç Rehberi'nde  &lt;a href="http://goksu.csharpturk.net/"&gt;Göksu Özen&lt;/a&gt; tarafından yazılan Yöntemler &lt;a href="http://www.csharpturk.net/Rehber.aspx?Makale=19"&gt;1&lt;/a&gt;, &lt;a href="http://www.csharpturk.net/Rehber.aspx?Makale=20"&gt;2&lt;/a&gt;,  &lt;a href="http://www.csharpturk.net/Rehber.aspx?Makale=21"&gt;3&lt;/a&gt; yazılarına başvurabilirsiniz.&lt;/p&gt;

&lt;p&gt;Şimdi de ActionFilter değişikliklerine göz atalım.&lt;/p&gt;

&lt;p&gt;Action filter’lar için yeni bir IActionFilter interface eklenmiştir. ActionFilterAttribute attribute tipi de bu interface'i miras alır.&lt;/p&gt;

&lt;p&gt;Action filter’lar artık 4 metoda sahipler: OnActionExecuting, OnActionExecuted, OnResultExecuting, OnResultExecuted. Metod adları zaten işlevleri hakkında ipucu veriyor.&lt;/p&gt;

&lt;p&gt;Controller cephesindeki değişiklikler bu şekilde özetlenebilir. Şimdi gelelim View cephesine.&lt;/p&gt;

&lt;p&gt;TextBox, Hidden, Password, DropDownList ve ListBox HTML yardımcı metodları güncellenmiştir. &lt;/p&gt;

&lt;p&gt;ViewDataDictionary’ye bir Model property’si eklenmiştir. &lt;/p&gt;

&lt;p&gt;Routing değişikliklerinden de biraz bahsedelim.&lt;/p&gt;

&lt;p&gt;MVC route’larının oluşturulması artık daha kolay. MapRoute extension  metodu hemen göze çarpıyor. Buna da yine örnek verelim.&lt;/p&gt;

&lt;p&gt;Preview 2 yapısı:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;pre class="csharpcode"&gt;routes.Add(&lt;span class="str"&gt;"route-name"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; Route(&lt;span class="str"&gt;"{locale}/{year}"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; MvcRouteHandler()) {
  Defaults = &lt;span class="kwrd"&gt;new&lt;/span&gt; RouteValueDictionary(&lt;span class="kwrd"&gt;new&lt;/span&gt; {locale=&lt;span class="str"&gt;"en-US"&lt;/span&gt;, year=DateTime.Now.Year.ToString()})
}&lt;/pre&gt;

&lt;p&gt;Preview 3 yapısı:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;pre class="csharpcode"&gt;routes.MapRoute(&lt;span class="str"&gt;"route-name"&lt;/span&gt;, &lt;span class="str"&gt;"{locale}/{year}"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; {locale=&lt;span class="str"&gt;"en-US"&lt;/span&gt;, year=DateTime.Now.Year.ToString()});&lt;/pre&gt;

&lt;p&gt;Yeni bir IRouteConstraint interface eklendi.&lt;/p&gt;

&lt;p&gt;Yeni bir HttpMethodConstraint tipi eklendi. httpMethod adlı kısıtlama ismi artık şart değil, artık HTTP terimleri üzerinden kısıtlama oluşturulabilmektedir.&lt;/p&gt;

&lt;p&gt;Aşağıda örnek bir yazı var:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;pre class="csharpcode"&gt;routes.MapRoute(&lt;span class="str"&gt;"route-name"&lt;/span&gt;
  , &lt;span class="str"&gt;"{controller}/update"&lt;/span&gt;
  ,  &lt;span class="kwrd"&gt;new&lt;/span&gt; {action = &lt;span class="str"&gt;"update"&lt;/span&gt;}
  , &lt;span class="kwrd"&gt;new&lt;/span&gt; {httpMethod = &lt;span class="kwrd"&gt;new&lt;/span&gt; HttpMethodConstraint(&lt;span class="str"&gt;"PUT"&lt;/span&gt;, &lt;span class="str"&gt;"POST"&lt;/span&gt;)});&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Bu arada System.Web.Abstractions ve System.Web.Routing kütüphanelerinin sürümleri değişti. Preview 3 sürümleri .NET Framework version 3.5 Service Pack 1 Beta ile gelenlere göre daha yeni.&lt;/p&gt;

&lt;p&gt;Şimdilik değişiklikleri özetlemeye çalıştım. Yeni makale ve demo uygulamalar yolda.&lt;/p&gt;&lt;img src="http://yunus.csharpturk.net/aggbug/20.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://yunus.csharpturk.net/comments/20.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://yunus.csharpturk.net/comments/commentRss/20.aspx</wfw:commentRss>
        <trackback:ping>http://yunus.csharpturk.net/services/trackbacks/20.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Bug&amp;uuml;n Avcılar'da ASP.NET MVC Konuşuldu</title>
        <link rel="self" type="text/html" href="http://yunus.csharpturk.net/archive/2008/05/20/bugun-avcilarda-asp-net-mvc-konusuldu.aspx" />
        <id>http://yunus.csharpturk.net/archive/2008/05/20/bugun-avcilarda-asp-net-mvc-konusuldu.aspx</id>
        <published>2008-05-20T18:07:5503:00:00</published>
        <updated>2008-05-21T12:16:34Z</updated>
        <content type="html">&lt;p&gt;İstanbul Üniversitesi Avcılar kampüsünde C#türk.Net adına M. Kemal Demir ile  birlikte &lt;a href="http://www.asp.net/mvc"&gt;ASP.NET MVC  Framework&lt;/a&gt; semineri verdik. Bilgisayar Mühendisliği öğrencilerinden ve  hocalarından oluşan kalabalık bir grupla çok keyifli bir seminer  gerçekleştirdik. &lt;a href="http://www.iubk.com/"&gt;Bilgisayar kulübüne&lt;/a&gt; ve bu  güzel organizasyondan dolayı teşekkürler. Kulüp adına bizimle iletişime geçen  başkan &lt;a href="http://burakkanmaz.net/blog"&gt;Burak Kanmaz&lt;/a&gt; ve &lt;a href="http://ramazanbarda.blogspot.com/"&gt;Ramazan Barda&lt;/a&gt;'ya da seminer sonrası  ikramlarından ve yakın ilgisinden dolayı teşekkür ediyorum. Öğrenncileri ile  birlikte seminere katılan &lt;a href="http://www.canturna.com/"&gt;Özgür Can Turna&lt;/a&gt;  hocamıza da katkılarından ötürü teşekkürler.&lt;/p&gt;
&lt;p&gt;Küçük Çekmece Gölünün kıyısında, ağaçlar arasındaki Avcılar kampüsünde  bulunmak benim için büyük bir keyif oldu.&lt;/p&gt;
&lt;p&gt;&lt;span id="ctl00_ContentPlaceHolder1_DetailsView1_Label1"&gt;Seminer sunumunu &lt;a href="http://www.csharpturk.net/Download.aspx?Download=11"&gt;burdan&lt;/a&gt;, seminer demolarını &lt;a href="http://www.csharpturk.net/Download.aspx?Download=12"&gt;buradan &lt;/a&gt;indirebilirsiniz.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Seminerde alınan görüntü kaydını da en kısa zamanda &lt;a href="http://www.csharpturk.net/"&gt;C#Türk.Net'te&lt;/a&gt; paylaşacağız. Resimler  aşağıda. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0499.jpg"&gt;&lt;img height="200" border="0" width="260" src="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0499_thumb.jpg" alt="DSCF0499" style="border: 0px none ;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0493.jpg"&gt;&lt;img height="200" border="0" width="260" src="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0493_thumb.jpg" alt="DSCF0493" style="border: 0px none ;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0512.jpg"&gt; &lt;img height="184" border="0" width="244" src="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0505_thumb.jpg" alt="DSCF0505" style="border: 0px none ;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0506.jpg"&gt;&lt;img height="200" border="0" width="260" src="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0506_thumb.jpg" alt="DSCF0506" style="border: 0px none ;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0507.jpg"&gt;&lt;img height="200" border="0" width="260" src="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0507_thumb.jpg" alt="DSCF0507" style="border: 0px none ;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0512.jpg"&gt;&lt;img height="200" border="0" width="260" src="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/BugnAvclardaASP.NETMVCKonuuldu_1024/DSCF0512_thumb.jpg" alt="DSCF0512" style="border: 0px none ;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://yunus.csharpturk.net/aggbug/19.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://yunus.csharpturk.net/comments/19.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://yunus.csharpturk.net/comments/commentRss/19.aspx</wfw:commentRss>
        <trackback:ping>http://yunus.csharpturk.net/services/trackbacks/19.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Visual Studio 2008'de Dikey Split View</title>
        <link rel="self" type="text/html" href="http://yunus.csharpturk.net/archive/2008/05/18/visual-studio-2008de-dikey-split-view.aspx" />
        <id>http://yunus.csharpturk.net/archive/2008/05/18/visual-studio-2008de-dikey-split-view.aspx</id>
        <published>2008-05-18T10:42:0903:00:00</published>
        <updated>2008-05-21T01:16:43Z</updated>
        <content type="html">&lt;p&gt;Visual Studio 2008 ile birlikte, Design View ve Source View yanında Split View de geldi. Dreamweaver veFrontPage gibi IDE'lerde olan bu yararlı özellik böylece Visual Studio 2008 ile de kullanılabilecek. &lt;/p&gt;
&lt;p&gt;Default olarak yatay split view geliyor. Yatay split view benim dreamweaver kullanırken de pek sevmediğim bir özellikti. Yalnız widescreen monitör ve laptopların yaygınlaşmasıyla ekranlar çok genişledi. Split View özelliğini dikey hale getirirsek bize sağlanan genişlikten optimum yararlanmış oluruz. &lt;/p&gt;
&lt;p&gt;Visual Studio'da bunu Enable etmek için Tools &amp;gt; Options,ordan da HTML Designer &amp;gt; General bölümüne giriyoruz. Orda Split Views Vertically seçeneğini işaretliyoruz. Artık SplitView özelliğini dikey olarak kullanabilirsiniz.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/VisualStudio2008deDikeySplitView_9494/splitview1_2.jpg"&gt;&lt;img height="143" border="0" width="244" src="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/VisualStudio2008deDikeySplitView_9494/splitview1_thumb.jpg" alt="splitview1" style="border-width: 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/VisualStudio2008deDikeySplitView_9494/splitview2_2.jpg"&gt;&lt;img height="127" border="0" width="244" src="http://yunus.csharpturk.net/images/yunus_csharpturk_net/WindowsLiveWriter/VisualStudio2008deDikeySplitView_9494/splitview2_thumb.jpg" alt="splitview2" style="border-width: 0px;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://yunus.csharpturk.net/aggbug/18.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://yunus.csharpturk.net/comments/18.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://yunus.csharpturk.net/comments/commentRss/18.aspx</wfw:commentRss>
        <trackback:ping>http://yunus.csharpturk.net/services/trackbacks/18.aspx</trackback:ping>
    </entry>
</feed>