[{"data":1,"prerenderedAt":27564},["ShallowReactive",2],{"navigation":3,"categories":339,"/dersler":349,"/derslerSubContents":577},[4,173,210,235],{"title":5,"path":6,"stem":7,"children":8,"page":102},"Dersler","/dersler","dersler",[9,103,116,137,146,155,164],{"title":10,"path":11,"stem":12,"children":13,"page":102},"Asp.Net Mvc","/dersler/asp-net-mvc","dersler/asp-net-mvc",[14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94,98],{"title":15,"path":16,"stem":17},"Asp.Net Mvc – Ajax ile Üye Girişi – Üyelik Sistemi 2 (Asp.Net Mvc Yazı Dizisi – 21)","/dersler/asp-net-mvc/asp-net-mvc-ajax-ile-uye-girisi-uyelik-sistemi-2-asp-net-mvc-yazi-dizisi-21","dersler/asp-net-mvc/asp-net-mvc-ajax-ile-uye-girisi-uyelik-sistemi-2-asp-net-mvc-yazi-dizisi-21",{"title":19,"path":20,"stem":21},"Asp.Net Mvc - Code First ile Veritabanı İşlemleri 2 (Asp.Net Mvc Yazı Dizisi – 12)","/dersler/asp-net-mvc/asp-net-mvc-code-first-ile-veritabani-islemleri-2-asp-net-mvc-yazi-dizisi-12","dersler/asp-net-mvc/asp-net-mvc-code-first-ile-veritabani-islemleri-2-asp-net-mvc-yazi-dizisi-12",{"title":23,"path":24,"stem":25},"Asp.Net Mvc - Code First ile Veritabanı İşlemleri 1 - Proje Başlangıcı (Asp.Net Mvc Yazı Dizisi – 11)","/dersler/asp-net-mvc/asp-net-mvc-code-first-ile-veritabani-islemleri-proje-baslangici-asp-net-mvc-yazi-dizisi-11","dersler/asp-net-mvc/asp-net-mvc-code-first-ile-veritabani-islemleri-proje-baslangici-asp-net-mvc-yazi-dizisi-11",{"title":27,"path":28,"stem":29},"Asp.Net Mvc - Controller ve View İşlemleri 1 (Asp.Net Mvc Yazı Dizisi – 13)","/dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-1-asp-net-mvc-yazi-dizisi-13","dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-1-asp-net-mvc-yazi-dizisi-13",{"title":31,"path":32,"stem":33},"Asp.Net Mvc - Controller ve View İşlemleri 2 (Asp.Net Mvc Yazı Dizisi – 14)","/dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-2-asp-net-mvc-yazi-dizisi-14","dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-2-asp-net-mvc-yazi-dizisi-14",{"title":35,"path":36,"stem":37},"Asp.Net Mvc – Controller ve View İşlemleri 3 (Asp.Net Mvc Yazı Dizisi – 15)","/dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-3-asp-net-mvc-yazi-dizisi-15","dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-3-asp-net-mvc-yazi-dizisi-15",{"title":39,"path":40,"stem":41},"Asp.Net Mvc – Html Helper'ler (Asp.Net Mvc Yazı Dizisi – 16)","/dersler/asp-net-mvc/asp-net-mvc-html-helperler-asp-net-mvc-yazi-dizisi-16","dersler/asp-net-mvc/asp-net-mvc-html-helperler-asp-net-mvc-yazi-dizisi-16",{"title":43,"path":44,"stem":45},"Asp.Net Mvc – Html Helper'lerin For Takılı Kullanım Örnekleri 1 (Asp.Net Mvc Yazı Dizisi – 18)","/dersler/asp-net-mvc/asp-net-mvc-html-helperlerin-for-takili-kullanim-ornekleri-1-asp-net-mvc-yazi-dizisi-18","dersler/asp-net-mvc/asp-net-mvc-html-helperlerin-for-takili-kullanim-ornekleri-1-asp-net-mvc-yazi-dizisi-18",{"title":47,"path":48,"stem":49},"Asp.Net Mvc – Html Helper'lerin For Takılı Kullanım Örnekleri 2 (Asp.Net Mvc Yazı Dizisi – 19)","/dersler/asp-net-mvc/asp-net-mvc-html-helperlerin-for-takili-kullanim-ornekleri-2-asp-net-mvc-yazi-dizisi-19","dersler/asp-net-mvc/asp-net-mvc-html-helperlerin-for-takili-kullanim-ornekleri-2-asp-net-mvc-yazi-dizisi-19",{"title":51,"path":52,"stem":53},"Asp.Net Mvc Layout Sayfaları (Asp.Net Mvc Yazı Dizisi – 4)","/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-asp-net-mvc-yazi-dizisi-4","dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-asp-net-mvc-yazi-dizisi-4",{"title":55,"path":56,"stem":57},"Asp.Net Mvc Layout Sayfaları - Partial View (Asp.Net Mvc Yazı Dizisi – 7)","/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-partial-view-asp-net-mvc-yazi-dizisi-7","dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-partial-view-asp-net-mvc-yazi-dizisi-7",{"title":59,"path":60,"stem":61},"Asp.Net Mvc Layout Sayfaları - Render Page (Asp.Net Mvc Yazı Dizisi – 6)","/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-render-page-asp-net-mvc-yazi-dizisi-6","dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-render-page-asp-net-mvc-yazi-dizisi-6",{"title":63,"path":64,"stem":65},"Asp.Net Mvc Layout Sayfaları - Render Section (Asp.Net Mvc Yazı Dizisi – 5)","/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-render-section-asp-net-mvc-yazi-dizisi-5","dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-render-section-asp-net-mvc-yazi-dizisi-5",{"title":67,"path":68,"stem":69},"Asp.Net Mvc Nedir? (Asp.Net Mvc Yazı Dizisi - 1)","/dersler/asp-net-mvc/asp-net-mvc-nedir-asp-net-mvc-yazi-dizisi-1","dersler/asp-net-mvc/asp-net-mvc-nedir-asp-net-mvc-yazi-dizisi-1",{"title":71,"path":72,"stem":73},"Asp.Net Mvc Razor View Engine Bölüm 1 (Asp.Net Mvc Yazı Dizisi – 8)","/dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-1-asp-net-mvc-yazi-dizisi-8","dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-1-asp-net-mvc-yazi-dizisi-8",{"title":75,"path":76,"stem":77},"Asp.Net Mvc Razor View Engine Bölüm 2 (Asp.Net Mvc Yazı Dizisi – 9)","/dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-2-asp-net-mvc-yazi-dizisi-9","dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-2-asp-net-mvc-yazi-dizisi-9",{"title":79,"path":80,"stem":81},"Asp.Net Mvc Razor View Engine Bölüm 3 (Asp.Net Mvc Yazı Dizisi – 10)","/dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-3-asp-net-mvc-yazi-dizisi-10","dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-3-asp-net-mvc-yazi-dizisi-10",{"title":83,"path":84,"stem":85},"Asp.Net Mvc Routing Mekanizması ve Mvc 5 ile Gelen Yenilikler","/dersler/asp-net-mvc/asp-net-mvc-routing-mekanizmasi-ve-mvc-5-ile-gelen-yenilikler","dersler/asp-net-mvc/asp-net-mvc-routing-mekanizmasi-ve-mvc-5-ile-gelen-yenilikler",{"title":87,"path":88,"stem":89},"Asp.Net Mvc – Web Helper'ler (Asp.Net Mvc Yazı Dizisi – 17)","/dersler/asp-net-mvc/asp-net-mvc-web-helperler-asp-net-mvc-yazi-dizisi-17","dersler/asp-net-mvc/asp-net-mvc-web-helperler-asp-net-mvc-yazi-dizisi-17",{"title":91,"path":92,"stem":93},"Asp.Net Mvc – Yeni Üye Kaydı ve Dosya Yükleme - Üyelik Sistemi 1 (Asp.Net Mvc Yazı Dizisi – 20)","/dersler/asp-net-mvc/asp-net-mvc-yeni-uye-kaydi-ve-dosya-yukleme-uyelik-sistemi-1-asp-net-mvc-yazi-dizisi-20","dersler/asp-net-mvc/asp-net-mvc-yeni-uye-kaydi-ve-dosya-yukleme-uyelik-sistemi-1-asp-net-mvc-yazi-dizisi-20",{"title":95,"path":96,"stem":97},"Asp.Net Mvc'nin Avantajları (Asp.Net Mvc Yazı Dizisi – 2)","/dersler/asp-net-mvc/asp-net-mvcnin-avantajlari-asp-net-mvc-yazi-dizisi-2","dersler/asp-net-mvc/asp-net-mvcnin-avantajlari-asp-net-mvc-yazi-dizisi-2",{"title":99,"path":100,"stem":101},"İlk Asp.Net Mvc Projesinin Oluşturulması (Asp.Net Mvc Yazı Dizisi – 3)","/dersler/asp-net-mvc/ilk-asp-net-mvc-projesinin-olusturulmasi-asp-net-mvc-yazi-dizisi-3","dersler/asp-net-mvc/ilk-asp-net-mvc-projesinin-olusturulmasi-asp-net-mvc-yazi-dizisi-3",false,{"title":104,"path":105,"stem":106,"children":107,"page":102},"Javascript","/dersler/javascript","dersler/javascript",[108,112],{"title":109,"path":110,"stem":111},"Jquery'den Yalın Javascript (Vanilla Js)'e Geçiş","/dersler/javascript/jqueryden-yalin-javascript-vanilla-jse-gecis","dersler/javascript/jqueryden-yalin-javascript-vanilla-jse-gecis",{"title":113,"path":114,"stem":115},"Object Oriented (Nesne Yönelimli) Javascript Programlama","/dersler/javascript/object-oriented-nesne-yonelimli-javascript-programlama","dersler/javascript/object-oriented-nesne-yonelimli-javascript-programlama",{"title":117,"path":118,"stem":119,"children":120,"page":102},"Orchard Cms","/dersler/orchard-cms","dersler/orchard-cms",[121,125,129,133],{"title":122,"path":123,"stem":124},"Orchard Project Nedir? (Orchard Cms Seri - 1)","/dersler/orchard-cms/orchard-project-nedir-orchard-cms-seri-1","dersler/orchard-cms/orchard-project-nedir-orchard-cms-seri-1",{"title":126,"path":127,"stem":128},"Orchard – Visual Studio ile Kurulumu? (Orchard Cms Seri – 3)","/dersler/orchard-cms/orchard-visual-studio-ile-kurulumu-orchard-cms-seri-3","dersler/orchard-cms/orchard-visual-studio-ile-kurulumu-orchard-cms-seri-3",{"title":130,"path":131,"stem":132},"Orchard - Web Matrix ile Kurulumu? (Orchard Cms Seri – 2)","/dersler/orchard-cms/orchard-web-matrix-kurulumu-orchard-cms-seri-2","dersler/orchard-cms/orchard-web-matrix-kurulumu-orchard-cms-seri-2",{"title":134,"path":135,"stem":136},"Orchard'ı Türkçeleştirme (Türkçe Dil Dosyaları Mevcut)","/dersler/orchard-cms/orchardi-turkcelestirme-turkce-dil-dosyalari","dersler/orchard-cms/orchardi-turkcelestirme-turkce-dil-dosyalari",{"title":138,"path":139,"stem":140,"children":141,"page":102},"RequireJs","/dersler/requirejs","dersler/requirejs",[142],{"title":143,"path":144,"stem":145},"RequireJs Nedir? (RequireJs ile Modüler JavaScript Programlama)","/dersler/requirejs/requirejs-nedir-requirejs-ile-moduler-javascript-programlama-1","dersler/requirejs/requirejs-nedir-requirejs-ile-moduler-javascript-programlama-1",{"title":147,"path":148,"stem":149,"children":150,"page":102},"Three.js ile WebGL","/dersler/three-js-ile-webgl","dersler/three-js-ile-webgl",[151],{"title":152,"path":153,"stem":154},"WebGL Nedir? (Three.js ile WebGL)","/dersler/three-js-ile-webgl/webgl-nedir-three-js-ile-webgl-1","dersler/three-js-ile-webgl/webgl-nedir-three-js-ile-webgl-1",{"title":156,"path":157,"stem":158,"children":159,"page":102},"Vue.js","/dersler/vue-js","dersler/vue-js",[160],{"title":161,"path":162,"stem":163},"Vue.js Nedir?","/dersler/vue-js/vue-js-nedir","dersler/vue-js/vue-js-nedir",{"title":165,"path":166,"stem":167,"children":168,"page":102},"Yazılım Mimarisi","/dersler/yazilim-mimarisi","dersler/yazilim-mimarisi",[169],{"title":170,"path":171,"stem":172},"Kurumsal Web Uygulamaları Geliştirme","/dersler/yazilim-mimarisi/kurumsal-web-uygulamalari-gelistirme","dersler/yazilim-mimarisi/kurumsal-web-uygulamalari-gelistirme",{"title":174,"path":175,"stem":176,"children":177,"page":102},"Duyurular","/duyurular","duyurular",[178,182,186,190,194,198,202,206],{"title":179,"path":180,"stem":181},"Asp.Net vNext ve Visual Studio 14","/duyurular/asp-net-vnext-ve-visual-studio-14","duyurular/asp-net-vnext-ve-visual-studio-14",{"title":183,"path":184,"stem":185},"Nop Commerce 3.20 Sürümü Çıktı","/duyurular/nop-commerce-3-20-surumu-cikti","duyurular/nop-commerce-3-20-surumu-cikti",{"title":187,"path":188,"stem":189},"Nop Commerce 3.30 Yenilikleri","/duyurular/nop-commerce-3-30-yenilikleri","duyurular/nop-commerce-3-30-yenilikleri",{"title":191,"path":192,"stem":193},"TypeScript Final Sürümüne Ulaştı","/duyurular/typescript-final-surumune-ulasti","duyurular/typescript-final-surumune-ulasti",{"title":195,"path":196,"stem":197},"Visual Studio 2013 Update 1 Final Çıktı","/duyurular/visual-studio-2013-update-1-final-cikti","duyurular/visual-studio-2013-update-1-final-cikti",{"title":199,"path":200,"stem":201},"Visual Studio 2013 Update 2 Final Çıktı","/duyurular/visual-studio-2013-update-2-final-cikti","duyurular/visual-studio-2013-update-2-final-cikti",{"title":203,"path":204,"stem":205},"Visual Studio 2013 Update 3 Final Çıktı","/duyurular/visual-studio-2013-update-3-final-cikti","duyurular/visual-studio-2013-update-3-final-cikti",{"title":207,"path":208,"stem":209},"Wordpress 3.8.1 Sürümü Çıktı","/duyurular/wordpress-3-8-1-surumu-cikti","duyurular/wordpress-3-8-1-surumu-cikti",{"title":211,"path":212,"stem":213,"children":214,"page":102},"Geliştirmelerim","/gelistirmelerim","gelistirmelerim",[215,219,223,227,231],{"title":216,"path":217,"stem":218},"ChatGPT Arayüz Projesi","/gelistirmelerim/chatgpt-arayuz","gelistirmelerim/chatgpt-arayuz",{"title":220,"path":221,"stem":222},"Orchard Bootstrap Eklentisi","/gelistirmelerim/orchard-bootstrap-eklentisi","gelistirmelerim/orchard-bootstrap-eklentisi",{"title":224,"path":225,"stem":226},"Orchard Localized Layer Eklentisi","/gelistirmelerim/orchard-localized-layer-eklentisi","gelistirmelerim/orchard-localized-layer-eklentisi",{"title":228,"path":229,"stem":230},"Orchard Responsive Flex Slider Eklentisi","/gelistirmelerim/orchard-responsive-flex-slider-eklentisi","gelistirmelerim/orchard-responsive-flex-slider-eklentisi",{"title":232,"path":233,"stem":234},"Vue.js Token Eklentisi","/gelistirmelerim/vue-js-token-eklentisi","gelistirmelerim/vue-js-token-eklentisi",{"title":236,"path":237,"stem":238,"children":239,"page":102},"İpuçları","/ipuclari","ipuclari",[240,249,258,266,275,284,292,309,317,330],{"title":241,"path":242,"stem":243,"children":244,"page":102},"Apache Cordova","/ipuclari/apache-cordova","ipuclari/apache-cordova",[245],{"title":246,"path":247,"stem":248},"Visual Studio'da Cordova Intellisense Aktif Etme","/ipuclari/apache-cordova/visual-studioda-cordova-intellisense-aktif-etme","ipuclari/apache-cordova/visual-studioda-cordova-intellisense-aktif-etme",{"title":250,"path":251,"stem":252,"children":253,"page":102},"Apache Server","/ipuclari/apache-server","ipuclari/apache-server",[254],{"title":255,"path":256,"stem":257},"Apache Sunucularda Açılış Sayfasını Değiştirmek","/ipuclari/apache-server/apache-sunucularda-acilis-sayfasini-degistirmek","ipuclari/apache-server/apache-sunucularda-acilis-sayfasini-degistirmek",{"title":10,"path":259,"stem":260,"children":261,"page":102},"/ipuclari/asp-net-mvc","ipuclari/asp-net-mvc",[262],{"title":263,"path":264,"stem":265},"Class Library Projelerine Razor Intellisense Desteği Eklemek","/ipuclari/asp-net-mvc/class-library-projelerine-razor-intellisense-destegi-eklemek","ipuclari/asp-net-mvc/class-library-projelerine-razor-intellisense-destegi-eklemek",{"title":267,"path":268,"stem":269,"children":270,"page":102},"Asp.Net Web Api","/ipuclari/asp-net-web-api","ipuclari/asp-net-web-api",[271],{"title":272,"path":273,"stem":274},"Asp.Net Web Api Dosya İndirme","/ipuclari/asp-net-web-api/asp-net-web-api-dosya-indirme","ipuclari/asp-net-web-api/asp-net-web-api-dosya-indirme",{"title":276,"path":277,"stem":278,"children":279,"page":102},"IIS","/ipuclari/iis","ipuclari/iis",[280],{"title":281,"path":282,"stem":283},"Visual Studio IIS Express Yüksek Cpu Kullanımı Sorunu","/ipuclari/iis/visual-studio-iis-express-yuksek-cpu-kullanimi-sorunu","ipuclari/iis/visual-studio-iis-express-yuksek-cpu-kullanimi-sorunu",{"title":104,"path":285,"stem":286,"children":287,"page":102},"/ipuclari/javascript","ipuclari/javascript",[288],{"title":289,"path":290,"stem":291},"Jquery width() - innerWidth() - outerWidth() Farkları","/ipuclari/javascript/jquery-width-innerwidth-outerwidth-farklari","ipuclari/javascript/jquery-width-innerwidth-outerwidth-farklari",{"title":293,"path":294,"stem":295,"children":296,"page":102},"Nop Commerce","/ipuclari/nop-commerce","ipuclari/nop-commerce",[297,301,305],{"title":298,"path":299,"stem":300},"Nop Commerce Eklentilerinde Kullanıcı Yetkilendirmesi","/ipuclari/nop-commerce/nop-commerce-eklenti-kullanici-yetkilendirmesi","ipuclari/nop-commerce/nop-commerce-eklenti-kullanici-yetkilendirmesi",{"title":302,"path":303,"stem":304},"Nop Commerce Eklenti Yazımında Intelli Sense Sorununu Düzeltme","/ipuclari/nop-commerce/nop-commerce-eklenti-yaziminda-intelli-sense-sorununu-duzeltme","ipuclari/nop-commerce/nop-commerce-eklenti-yaziminda-intelli-sense-sorununu-duzeltme",{"title":306,"path":307,"stem":308},"Nop Commerce Widget Konum Listesi","/ipuclari/nop-commerce/nop-commerce-widget-konum-listesi","ipuclari/nop-commerce/nop-commerce-widget-konum-listesi",{"title":117,"path":310,"stem":311,"children":312,"page":102},"/ipuclari/orchard-cms","ipuclari/orchard-cms",[313],{"title":314,"path":315,"stem":316},"Orchard 1.7.x Sürümlerinde Intellisense Hatasını Giderme","/ipuclari/orchard-cms/orchard-1-7-x-surumlerinde-intellisense-hatasini-giderme","ipuclari/orchard-cms/orchard-1-7-x-surumlerinde-intellisense-hatasini-giderme",{"title":318,"path":319,"stem":320,"children":321,"page":102},"Wordpress","/ipuclari/wordpress","ipuclari/wordpress",[322,326],{"title":323,"path":324,"stem":325},"Word Press Ftp Bilgisi Sormama Ayarı","/ipuclari/wordpress/word-press-ftp-bilgisi-sormama-ayari","ipuclari/wordpress/word-press-ftp-bilgisi-sormama-ayari",{"title":327,"path":328,"stem":329},"Wordpress Sidebar Meta - Wordpress.org Linkini Silme","/ipuclari/wordpress/wordpress-sidebar-meta-wordpress-org-linkini-silme","ipuclari/wordpress/wordpress-sidebar-meta-wordpress-org-linkini-silme",{"title":331,"path":332,"stem":333,"children":334,"page":102},"Xampp","/ipuclari/xampp","ipuclari/xampp",[335],{"title":336,"path":337,"stem":338},"Xampp Tüm Sürüm Listesi","/ipuclari/xampp/xampp-tum-surum-listesi","ipuclari/xampp/xampp-tum-surum-listesi",[340,357,368,379,390,401,412,423,434,445,456,467,478,489,500,511,522,533,544,555,566],{"id":341,"title":5,"body":342,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":351,"navigation":352,"path":353,"seo":354,"stem":355,"__hash__":356},"posts/dersler/.navigation.md",{"type":343,"value":344,"toc":345},"minimark",[],{"title":346,"searchDepth":347,"depth":347,"links":348},"",2,[],null,"md",{},true,"/dersler/.navigation",{"title":5,"description":346},"dersler/.navigation","Yo_9ZJtmvgLHf17cAHzvT06H3T1Ets_s-roHMTl3ZYI",{"id":358,"title":10,"body":359,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":363,"navigation":352,"path":364,"seo":365,"stem":366,"__hash__":367},"posts/dersler/asp-net-mvc/.navigation.md",{"type":343,"value":360,"toc":361},[],{"title":346,"searchDepth":347,"depth":347,"links":362},[],{},"/dersler/asp-net-mvc/.navigation",{"title":10,"description":346},"dersler/asp-net-mvc/.navigation","PTvSN66cD4508L31HdyDUIhOskLEnya90TKHQjGo994",{"id":369,"title":104,"body":370,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":374,"navigation":352,"path":375,"seo":376,"stem":377,"__hash__":378},"posts/dersler/javascript/.navigation.md",{"type":343,"value":371,"toc":372},[],{"title":346,"searchDepth":347,"depth":347,"links":373},[],{},"/dersler/javascript/.navigation",{"title":104,"description":346},"dersler/javascript/.navigation","bUttamdS6EWYvmoedNpErrdL_02OT9K6sHHmAD5kdXE",{"id":380,"title":117,"body":381,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":385,"navigation":352,"path":386,"seo":387,"stem":388,"__hash__":389},"posts/dersler/orchard-cms/.navigation.md",{"type":343,"value":382,"toc":383},[],{"title":346,"searchDepth":347,"depth":347,"links":384},[],{},"/dersler/orchard-cms/.navigation",{"title":117,"description":346},"dersler/orchard-cms/.navigation","vf9ZQxf2YUpNSH09JkDW8B80DJ8dutrwo13pM-L1naU",{"id":391,"title":138,"body":392,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":396,"navigation":352,"path":397,"seo":398,"stem":399,"__hash__":400},"posts/dersler/requirejs/.navigation.md",{"type":343,"value":393,"toc":394},[],{"title":346,"searchDepth":347,"depth":347,"links":395},[],{},"/dersler/requirejs/.navigation",{"title":138,"description":346},"dersler/requirejs/.navigation","3ee9nRLCD2baXpsVn9PyDaAus4--JiF-l-veIDcdruM",{"id":402,"title":147,"body":403,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":407,"navigation":352,"path":408,"seo":409,"stem":410,"__hash__":411},"posts/dersler/three-js-ile-webgl/.navigation.md",{"type":343,"value":404,"toc":405},[],{"title":346,"searchDepth":347,"depth":347,"links":406},[],{},"/dersler/three-js-ile-webgl/.navigation",{"title":147,"description":346},"dersler/three-js-ile-webgl/.navigation","nUfb_DUlupidc2LBy3L_59z47x2BhJi1-L6Ri78gMMI",{"id":413,"title":156,"body":414,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":418,"navigation":352,"path":419,"seo":420,"stem":421,"__hash__":422},"posts/dersler/vue-js/.navigation.md",{"type":343,"value":415,"toc":416},[],{"title":346,"searchDepth":347,"depth":347,"links":417},[],{},"/dersler/vue-js/.navigation",{"title":156,"description":346},"dersler/vue-js/.navigation","sM919oShzUaKXtAu2t6UxThzxjp88FIpEiCBtqjgMfM",{"id":424,"title":165,"body":425,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":429,"navigation":352,"path":430,"seo":431,"stem":432,"__hash__":433},"posts/dersler/yazilim-mimarisi/.navigation.md",{"type":343,"value":426,"toc":427},[],{"title":346,"searchDepth":347,"depth":347,"links":428},[],{},"/dersler/yazilim-mimarisi/.navigation",{"title":165,"description":346},"dersler/yazilim-mimarisi/.navigation","VaeC5tLP3Enl4njeu0Cen-C_KmQabvKhw7PxK_bMbAw",{"id":435,"title":174,"body":436,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":440,"navigation":352,"path":441,"seo":442,"stem":443,"__hash__":444},"posts/duyurular/.navigation.md",{"type":343,"value":437,"toc":438},[],{"title":346,"searchDepth":347,"depth":347,"links":439},[],{},"/duyurular/.navigation",{"title":174,"description":346},"duyurular/.navigation","4rzF9u-0UF1wDFh1PaKOGlrl47vkJ-eGm2YLWTQsWB8",{"id":446,"title":211,"body":447,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":451,"navigation":352,"path":452,"seo":453,"stem":454,"__hash__":455},"posts/gelistirmelerim/.navigation.md",{"type":343,"value":448,"toc":449},[],{"title":346,"searchDepth":347,"depth":347,"links":450},[],{},"/gelistirmelerim/.navigation",{"title":211,"description":346},"gelistirmelerim/.navigation","-rbnagzfm7EAv-3Wbx2RtTpnuOsf7PhFd1k8HWymFJs",{"id":457,"title":236,"body":458,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":462,"navigation":352,"path":463,"seo":464,"stem":465,"__hash__":466},"posts/ipuclari/.navigation.md",{"type":343,"value":459,"toc":460},[],{"title":346,"searchDepth":347,"depth":347,"links":461},[],{},"/ipuclari/.navigation",{"title":236,"description":346},"ipuclari/.navigation","zi0IIAkH6byWTX1v0PQqvoJGIN-QOgZPuFh46B3-Hbs",{"id":468,"title":241,"body":469,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":473,"navigation":352,"path":474,"seo":475,"stem":476,"__hash__":477},"posts/ipuclari/apache-cordova/.navigation.md",{"type":343,"value":470,"toc":471},[],{"title":346,"searchDepth":347,"depth":347,"links":472},[],{},"/ipuclari/apache-cordova/.navigation",{"title":241,"description":346},"ipuclari/apache-cordova/.navigation","XB8Y86jOhcbmfazjiAHT9ZBlLm-ELG_56cMZdlgVDeg",{"id":479,"title":250,"body":480,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":484,"navigation":352,"path":485,"seo":486,"stem":487,"__hash__":488},"posts/ipuclari/apache-server/.navigation.md",{"type":343,"value":481,"toc":482},[],{"title":346,"searchDepth":347,"depth":347,"links":483},[],{},"/ipuclari/apache-server/.navigation",{"title":250,"description":346},"ipuclari/apache-server/.navigation","nz2-tvhAoLZq5JoofxrB1Vce1Y0ZJxM5-aJy4UGGMBE",{"id":490,"title":10,"body":491,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":495,"navigation":352,"path":496,"seo":497,"stem":498,"__hash__":499},"posts/ipuclari/asp-net-mvc/.navigation.md",{"type":343,"value":492,"toc":493},[],{"title":346,"searchDepth":347,"depth":347,"links":494},[],{},"/ipuclari/asp-net-mvc/.navigation",{"title":10,"description":346},"ipuclari/asp-net-mvc/.navigation","yIDoFpgOrvcNkVOqKxihtoYUeqvtYWjqHMCSbvyyBM8",{"id":501,"title":267,"body":502,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":506,"navigation":352,"path":507,"seo":508,"stem":509,"__hash__":510},"posts/ipuclari/asp-net-web-api/.navigation.md",{"type":343,"value":503,"toc":504},[],{"title":346,"searchDepth":347,"depth":347,"links":505},[],{},"/ipuclari/asp-net-web-api/.navigation",{"title":267,"description":346},"ipuclari/asp-net-web-api/.navigation","lAXXpFakou4QFVT0fsneP_g0umpUlY7pPiW3AUj0iIg",{"id":512,"title":276,"body":513,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":517,"navigation":352,"path":518,"seo":519,"stem":520,"__hash__":521},"posts/ipuclari/iis/.navigation.md",{"type":343,"value":514,"toc":515},[],{"title":346,"searchDepth":347,"depth":347,"links":516},[],{},"/ipuclari/iis/.navigation",{"title":276,"description":346},"ipuclari/iis/.navigation","zl9qxvnrSEksXoGXqf4t3nm5q4tAsAUoQZN7O2Pj6l8",{"id":523,"title":104,"body":524,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":528,"navigation":352,"path":529,"seo":530,"stem":531,"__hash__":532},"posts/ipuclari/javascript/.navigation.md",{"type":343,"value":525,"toc":526},[],{"title":346,"searchDepth":347,"depth":347,"links":527},[],{},"/ipuclari/javascript/.navigation",{"title":104,"description":346},"ipuclari/javascript/.navigation","l3NHgRo-FsSkV-HcqIpwTPoxjwyiA_Er6lWUBa_iyKU",{"id":534,"title":293,"body":535,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":539,"navigation":352,"path":540,"seo":541,"stem":542,"__hash__":543},"posts/ipuclari/nop-commerce/.navigation.md",{"type":343,"value":536,"toc":537},[],{"title":346,"searchDepth":347,"depth":347,"links":538},[],{},"/ipuclari/nop-commerce/.navigation",{"title":293,"description":346},"ipuclari/nop-commerce/.navigation","J3gbuZvYk7B3_EWUoYX4qmWCvGsfciErCs_DkpZS3o4",{"id":545,"title":117,"body":546,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":550,"navigation":352,"path":551,"seo":552,"stem":553,"__hash__":554},"posts/ipuclari/orchard-cms/.navigation.md",{"type":343,"value":547,"toc":548},[],{"title":346,"searchDepth":347,"depth":347,"links":549},[],{},"/ipuclari/orchard-cms/.navigation",{"title":117,"description":346},"ipuclari/orchard-cms/.navigation","emBSh7WkN8FUKMOnKi3efkXnJMctE9nz-z5apX2Nk28",{"id":556,"title":318,"body":557,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":561,"navigation":352,"path":562,"seo":563,"stem":564,"__hash__":565},"posts/ipuclari/wordpress/.navigation.md",{"type":343,"value":558,"toc":559},[],{"title":346,"searchDepth":347,"depth":347,"links":560},[],{},"/ipuclari/wordpress/.navigation",{"title":318,"description":346},"ipuclari/wordpress/.navigation","se7piGHmA3YAlKnPNPqIRhyiTc-1cdlxvCE_WChWiNs",{"id":567,"title":331,"body":568,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":572,"navigation":352,"path":573,"seo":574,"stem":575,"__hash__":576},"posts/ipuclari/xampp/.navigation.md",{"type":343,"value":569,"toc":570},[],{"title":346,"searchDepth":347,"depth":347,"links":571},[],{},"/ipuclari/xampp/.navigation",{"title":331,"description":346},"ipuclari/xampp/.navigation","-Eggmae4KDrGpf_pbmsKkFN0yO5CtVI5ak5TYdCiNwI",[578,585,592,599,606,613,620,627,634,758,841,1074,1989,3376,3697,3846,4164,4778,5476,5951,6177,7854,8214,9177,11031,11174,11848,13331,15019,15177,15952,16325,17575,17669,18023,18177,19484,19673,21089,27032],{"id":341,"title":5,"body":579,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":583,"navigation":352,"path":353,"seo":584,"stem":355,"__hash__":356},{"type":343,"value":580,"toc":581},[],{"title":346,"searchDepth":347,"depth":347,"links":582},[],{},{"title":5,"description":346},{"id":358,"title":10,"body":586,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":590,"navigation":352,"path":364,"seo":591,"stem":366,"__hash__":367},{"type":343,"value":587,"toc":588},[],{"title":346,"searchDepth":347,"depth":347,"links":589},[],{},{"title":10,"description":346},{"id":369,"title":104,"body":593,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":597,"navigation":352,"path":375,"seo":598,"stem":377,"__hash__":378},{"type":343,"value":594,"toc":595},[],{"title":346,"searchDepth":347,"depth":347,"links":596},[],{},{"title":104,"description":346},{"id":380,"title":117,"body":600,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":604,"navigation":352,"path":386,"seo":605,"stem":388,"__hash__":389},{"type":343,"value":601,"toc":602},[],{"title":346,"searchDepth":347,"depth":347,"links":603},[],{},{"title":117,"description":346},{"id":391,"title":138,"body":607,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":611,"navigation":352,"path":397,"seo":612,"stem":399,"__hash__":400},{"type":343,"value":608,"toc":609},[],{"title":346,"searchDepth":347,"depth":347,"links":610},[],{},{"title":138,"description":346},{"id":402,"title":147,"body":614,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":618,"navigation":352,"path":408,"seo":619,"stem":410,"__hash__":411},{"type":343,"value":615,"toc":616},[],{"title":346,"searchDepth":347,"depth":347,"links":617},[],{},{"title":147,"description":346},{"id":413,"title":156,"body":621,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":625,"navigation":352,"path":419,"seo":626,"stem":421,"__hash__":422},{"type":343,"value":622,"toc":623},[],{"title":346,"searchDepth":347,"depth":347,"links":624},[],{},{"title":156,"description":346},{"id":424,"title":165,"body":628,"coverImage":349,"createDate":349,"description":346,"extension":350,"meta":632,"navigation":352,"path":430,"seo":633,"stem":432,"__hash__":433},{"type":343,"value":629,"toc":630},[],{"title":346,"searchDepth":347,"depth":347,"links":631},[],{},{"title":165,"description":346},{"id":635,"title":67,"body":636,"coverImage":752,"createDate":753,"description":754,"extension":350,"meta":755,"navigation":352,"path":68,"seo":756,"stem":69,"__hash__":757},"posts/dersler/asp-net-mvc/asp-net-mvc-nedir-asp-net-mvc-yazi-dizisi-1.md",{"type":343,"value":637,"toc":750},[638,642,649,654,679,694,699,702,724,727,730],[639,640,67],"h1",{"id":641},"aspnet-mvc-nedir-aspnet-mvc-yazı-dizisi-1",[643,644,645,648],"p",{},[646,647,10],"strong",{},", Microsoft firmasının, yine kendi çıkardığı Web Forms mimarisine alternatif olarak piyasaya sürdüğü web uygulamaları geliştirme çatısıdır (framework).",[643,650,651],{},[646,652,653],{},"Sürüm Bilgileri",[655,656,657,661,664,667,670,673,676],"ul",{},[658,659,660],"li",{},"CTP - 10 Aralık 2007",[658,662,663],{},"1.0 - 13 Mart 2009",[658,665,666],{},"2.0 - 10 Mart 2010",[658,668,669],{},"3.0 - 13 Ocak 2011",[658,671,672],{},"3.1 - 11 Nisan 2011",[658,674,675],{},"4.0 - 15 Ağustos 2012",[658,677,678],{},"5.0 - 17 Ekim 2013",[643,680,681,682,685,686,689,690,693],{},"Asp.Net Mvc çatısı, mimari açısından ",[646,683,684],{},"M","odel ",[646,687,688],{},"V","iew ",[646,691,692],{},"C","ontroller'i kullanmaktadır.",[643,695,696],{},[646,697,698],{},"- Peki nedir bu Model View Controller?",[643,700,701],{},"Bu mimaride proje, ",[703,704,705,712,718],"ol",{},[658,706,707,708,711],{},"Veri katmanı ",[646,709,710],{},"(Model)",",",[658,713,714,715,711],{},"Görsel sunum katmanı ",[646,716,717],{},"(View)",[658,719,720,721],{},"Kontrolcü,iş akış katmanı ",[646,722,723],{},"(Controller)",[643,725,726],{},"​olarak 3 parçaya ayrılır.",[643,728,729],{},"Böylelikle projenin yönetimi kolaylaşmakta ve hata giderimi (debug) işlemleri daha kontrollü ve basit hale gelmektedir.",[655,731,732,738,744],{},[658,733,734,737],{},[646,735,736],{},"Model (Veri) Katmanı"," : Projede ki veritabanının ve yapı üzerinde kullanılacak her türlü veri kaynaklarının sınıflar (class) halinde toplanıp gruplandırıldığı katman işlevini görmektedir.",[658,739,740,743],{},[646,741,742],{},"Controller (İş Akış) Katmanı"," : Model (Veri) ile View (Görsel) katmanı arasında ki bağlantıyı sağlayan katmandır. Bu katman, Model katmanında ki veriyi alıp işleyerek View katmanına göndermekle yükümlüdür. Bunun dışında ayrıca web sitesine gelen istekleri de (bir sayfanın çağırılması vb.), bu kısım karşılayarak, istenilen veriyi alıp View katmanına aktarır.",[658,745,746,749],{},[646,747,748],{},"View (Görsel) Katmanı :"," Model (Veri) katmanında ki verinin Controller (İş Akış) katmanında işlenip gönderildiği ve gönderilen bu verinin, görsel açıdan düzenlenerek istemciye sunulduğu katmandır. Bu katman web tarayıcı üzerinde görüntülenen kısımdır. Ziyaretçi bu katman ile etkileşimde bulunur. Javascript, Css, Html gibi yapılardan oluşur.",{"title":346,"searchDepth":347,"depth":347,"links":751},[],"2013/11/asp-net-mvc.png","2013-11-18T00:00:00.000Z","Asp.Net Mvc, Microsoft firmasının, yine kendi çıkardığı Web Forms mimarisine alternatif olarak piyasaya sürdüğü web uygulamaları geliştirme çatısıdır (framework).",{},{"title":67,"description":754},"FdMLn-H5z2RX1roFIDHvOwWrVBU6l0yL15NR9123F7o",{"id":759,"title":95,"body":760,"coverImage":835,"createDate":836,"description":837,"extension":350,"meta":838,"navigation":352,"path":96,"seo":839,"stem":97,"__hash__":840},"posts/dersler/asp-net-mvc/asp-net-mvcnin-avantajlari-asp-net-mvc-yazi-dizisi-2.md",{"type":343,"value":761,"toc":833},[762,765,775,778,783,786,789,792,803,813,830],[639,763,95],{"id":764},"aspnet-mvcnin-avantajları-aspnet-mvc-yazı-dizisi-2",[643,766,767],{},[646,768,769,770],{},"Önceki Yazı : ",[771,772,774],"a",{"href":773},"/dersler/asp-net-mvc/asp-net-mvc-nedir-asp-net-mvc-yazi-dizisi-1/","Asp.Net  Mvc Nedir (Asp.Net Mvc Yazı Dizisi - 1)",[643,776,777],{},"Asp.Net Web Forms'dan sonra Asp.Net Mvc yeni bir yapı olarak karşımıza çıktı.",[643,779,780],{},[646,781,782],{},"- Peki bu yapıya ihtiyaç duyulmasının sebebi neydi?",[643,784,785],{},"Bu soruya cevap bulabilmek için, öncelikle Microsoft firmasının bir önceki web yazılım mimarisi olan Asp.Net Web Forms'u incelemekte fayda var.",[643,787,788],{},"Web Forms mimarisi, klasik web mimarisi olan \"istek cevap\" ilişkisinin yerine \"olay güdümlü programlama\" modelini getirdiğinde, pek çok masaüstü programcısı bu yönelimden çok memnun kalmıştı. Çünkü böylelikle masaüstü program geliştirir gibi, web uygulaması geliştirebileceklerdi.",[643,790,791],{},"Ancak bu durum, beklendiği gibi olmasına rağmen bazı sıkıntılar doğurdu.",[643,793,794,797,798,802],{},[646,795,796],{},"Sorun 1 :"," Öncelikle ViewState adı verilen, bir gizli ",[799,800,801],"code",{},"\u003Cinput type=\"hidden\" value=\".....\"/>"," html tagı sorun meydana getirdi. Bu girdi saydaki girdilerin son halini şifrelenmiş bir şekilde üzerinde saklıyordu (Adı, Soyadı, İli vs.). Sayfa sunucuya her gidip geldiğinde sayfa yeniden oluşturulmakta ve ViewState'deki veriler yeniden eski yerlerine yazılmaktaydı. Bu ise sayfanın durumuna göre ViewState'deki verinin aşırı artması ve her seferinde bu verinin istemci ve sunucu arasında gidip gelmesinde yavaşlamalar oluşturmaktaydı.",[643,804,805,808,809,812],{},[646,806,807],{},"Sorun 2 :"," Sayfa, yapılan işlemler de komple sunucuya gidip, tekrar geri geldiğinde, sayfanın ilk açılışı mı yoksa bir değişiklik sonucu mu sunucuya gittiğinin belirlenmesi için, sunucu tarafında her seferinde ",[799,810,811],{},"IsPostBack"," kontrolünün yapılması gerekmekteydi. Bu da hem ekstra zahmet, hem de tüm işlemlerde bu olaya dikkat etme gerekliliği doğurmaktaydı.",[643,814,815,818,819,822,823,826,827,829],{},[646,816,817],{},"Sorun 3 :"," Neredeyse tamamen sunucu taraflı kontrollerle çalışılmaktaydı. Örneğin Html tarafında ",[799,820,821],{},"\u003Cinput type=\"text\"/>"," kullanılmaktayken, Web Forms'ta ",[799,824,825],{},"\u003Casp:TextBox"," gibi bir yapı kullanılmaktaydı. Bu yapıyla oluşan kontrol otomatikman ",[799,828,821],{}," yapısına çevrilip, istemciye öyle gönderilmekteydi. Bundan dolayı bu kontrole id, class gibi bilgiler otomatik olarak eklenmekte, istemci tarafında Css ve Javascript işlevlerini kontrol etmek oldukça zorlaşmaktaydı.",[643,831,832],{},"Yukarıda sayılan bu ve bunun gibi sorunlara aslında Mvc mimarisi çok iyi bir çözüm olmuştur. Artık tamamen Html taglarıyla çalışmaktayız. Javascript ve Css işlevleri çok daha kolay kontrol edilebilmekte, bu da sınırsız özgürlük imkanı tanımaktadır.",{"title":346,"searchDepth":347,"depth":347,"links":834},[],"2013/11/avantajlar1.jpg","2013-11-25T00:00:00.000Z","Önceki Yazı : Asp.Net  Mvc Nedir (Asp.Net Mvc Yazı Dizisi - 1)",{},{"title":95,"description":837},"Ax4aAGMrnrIYfl59XK3BtYXrVXzLVmhOPmM6jVNvnmw",{"id":842,"title":99,"body":843,"coverImage":1068,"createDate":1069,"description":1070,"extension":350,"meta":1071,"navigation":352,"path":100,"seo":1072,"stem":101,"__hash__":1073},"posts/dersler/asp-net-mvc/ilk-asp-net-mvc-projesinin-olusturulmasi-asp-net-mvc-yazi-dizisi-3.md",{"type":343,"value":844,"toc":1066},[845,848,859,862,865,871,880,883,892,899,920,926,942,947,952,958,1060,1063],[639,846,99],{"id":847},"i̇lk-aspnet-mvc-projesinin-oluşturulması-aspnet-mvc-yazı-dizisi-3",[643,849,850,853,854],{},[646,851,852],{},"Önceki Yazı :"," ",[646,855,856],{},[771,857,858],{"href":96},"Asp.Net Mvc'nin Avantajları (Asp.Net Mvc Yazı Dizisi – 2)​​",[643,860,861],{},"Merhaba Arkadaşlar,",[643,863,864],{},"Asp.Net Mvc ile ilgili olarak verdiğimiz teorik bilgilerden sonra, artık pratik kısmına geçerek ilk projemizi oluşturalım.",[643,866,867,870],{},[646,868,869],{},"Anlatımda Kullanılan Sistem :"," Windows 7 Home Premium 64-bit Sp1 üzerinde çalışan Visual Studio 2013 Professional",[643,872,873,874,879],{},"Visual Studio'nun sürümleri farklı Mvc yapılarını desteklemektedir. Örneğin; Mvc 4 projesi için Visual Studio 2010 kullanabiliyorken, Mvc 5 için en az Visual Studio 2013 gerekmektedir. Visual Studio indirmek için ",[771,875,876],{"href":876,"rel":877},"http://www.visualstudio.com/tr-tr/downloads/",[878],"nofollow"," adresini ziyaret edebilirsiniz.",[643,881,882],{},"Biz örneğimizi Visual Studio 2013 üzerinde Asp.Net Mvc 5 projesi olarak geliştireceğiz.",[655,884,885],{},[658,886,887,888,891],{},"Visual Studio'yu açtıktan sonra ",[646,889,890],{},"File>New>Project"," yolunu izliyoruz.",[643,893,894],{},[895,896],"img",{"alt":897,"src":898},"İlk Mvc Projesi","/images/2013/11/ilk-mvc-projesi-1024x575.jpg",[655,900,901],{},[658,902,903,904,907,908,911,912,915,916,919],{},"Açılan ekranda dikkat edilmesi gereken kısım ise (Visual Studio 2013 de) .NET Framework seçimi. Burada .Net 4 ya da daha aşağısı seçilirse Mvc 5 desteği bulunmamakta. Ayrıca Visual Studio 2013 sürümü ile birlikte One Asp.Net (Tek Asp.Net) mimarisine geçiş yapıldı. Bu konuda detaylı bilgi Asp.Net Mvc 5 Yenilikleri konusunda ayrıca verilecektir. Evet şimdiki ekranda ",[646,905,906],{},".Net Framework 4.5"," seçili iken ",[646,909,910],{},"ASP.NET Web Application","'ı seçiyoruz. Ardından ",[646,913,914],{},"Name"," kısmına proje adını girip ",[646,917,918],{},"OK"," tuşuna basıyoruz.",[643,921,922],{},[895,923],{"alt":924,"src":925},"Yeni Asp.Net Web Application Ekranı","/images/2013/11/ilk-mvc-projesi-2-1024x575.jpg",[655,927,928],{},[658,929,930,931,934,935,938,939,941],{},"Burada ise Mvc 5 sürümüyle gelen One Asp.Net mimarisinin detayı görünüyor. Buradan aynı projenin içinde farklı Asp.Net mimarilerini ortak kullanma imkanına sahip oluyoruz. Detaylarını Asp.Net Mvc 5 Yenilikleri başlığında ayrıca inceliyor olacağız. Biz şu an sadece ",[646,932,933],{},"Select a template"," ekranından ",[646,936,937],{},"MVC","'yi seçip ",[646,940,918],{}," tuşuna basıyoruz. Bu noktada projemizin hazırlanması biraz uzun sürebilir.",[643,943,944],{},[895,945],{"alt":946,"src":925},"Asp.Net Web Application Tür Seçim Ekranı",[655,948,949],{},[658,950,951],{},"Böylelikle Microsoft tarafından dosya yerleşimlerinin yapıldığı örnek bir Mvc projesi açılmış oluyor. Sistem içerisinde üyelik sistemini ve ayrıca 3 sayfalık yapıyı barındırmakta. (Asp.Net'in ileriki sürümlerinde bu sayı değişebilir.)",[643,953,954],{},[895,955],{"alt":956,"src":957},"Örnek Asp.Net Proje Ana Ekran","/images/2013/11/ilk-mvc-projesi-4-1024x575.jpg",[655,959,960,963,969,975,981,992,998,1008,1014,1024,1030,1036,1042,1048,1054],{},[658,961,962],{},"Şimdi de projemizin dizin yapısını incelememiz faydalı olacaktır kanaatindeyim.",[658,964,965,968],{},[646,966,967],{},"App_Data :"," Proje içerisinde ki veritabanı vb. veri kaynaklarının, dosyalar halinde eklendiği klasördür. ",[658,970,971,974],{},[646,972,973],{},"App_Start :"," Projenin ilk açılışı esnasında (sunucunun ilk başlatılışı ya da yeniden başlatılması), işlem yapması istenilen sınıfların, filtrelerin, metodların bulunduğu klasördür. Örneğin Route, yani sayfa yönlendirme dosyasının ya da projeye eklediğimiz JavaScript, Css gibi dosyaların sıkıştırılarak istemciye gönderilmesi mimarisi olan BundleConfig gibi dosyaları burada barındırırız.",[658,976,977,980],{},[646,978,979],{},"Content :"," Bu klasör, zorunlu olmamakla birlikte genelde css dosyaları bu klasörde barındırılabilir.",[658,982,983,986,987,991],{},[646,984,985],{},"Controllers :"," ",[771,988,990],{"href":989},"/dersler/asp-net-mvc/asp-net-mvc-nedir-asp-net-mvc-yazi-dizisi-1#controller","Controller"," dosyalarının barındırıldığı klasördür.",[658,993,994,997],{},[646,995,996],{},"fonts :"," Asp.Net Mvc 5 sürümü ile birlikte, örnek projeye eklenen (bu klasörü kullanmak zorunda değilsiniz), font dosyalarını barındırabileceğiniz alandır.",[658,999,1000,986,1003,1007],{},[646,1001,1002],{},"Models :",[771,1004,1006],{"href":1005},"/dersler/asp-net-mvc/asp-net-mvc-nedir-asp-net-mvc-yazi-dizisi-1#model","Model"," dosyalarının barındırıldığı klasördür.",[658,1009,1010,1013],{},[646,1011,1012],{},"Scripts :"," Javascript tarzı script dosyalarını barındırabileceğiniz alandır.",[658,1015,1016,986,1019,1023],{},[646,1017,1018],{},"Views :",[771,1020,1022],{"href":1021},"/dersler/asp-net-mvc/asp-net-mvc-nedir-asp-net-mvc-yazi-dizisi-1#view","View"," dosyalarının barındırıldığı klasördür.​",[658,1025,1026,1029],{},[646,1027,1028],{},"favicon.ico :"," Tarayıcının üst kısmında ve favori siteler kısmında görünen ikondur.",[658,1031,1032,1035],{},[646,1033,1034],{},"Global.asax :"," Sitenin genelinde yapılan işlemlerin kontrol edilmesini sağlar. Örneğin bir üye oturum açtığında, sunucu ilk açıldığında, oturum kapatıldığında gibi aksiyonlar esnasında, yapılması gerekenleri bu sınıf içerisinde kontrol edebiliriz.",[658,1037,1038,1041],{},[646,1039,1040],{},"packages.config :"," Proje de kurulu olan frameworklerin kayıtlı olduğu yerdir. Buraya genelde Nuget Paket Yöneticisi vasıtasıyla paketler kurulabilir.",[658,1043,1044,1047],{},[646,1045,1046],{},"Project_Readme.html :"," Örnek proje hakkında Microsoft'un hazırladığı bilgilendirme sayfasıdır.",[658,1049,1050,1053],{},[646,1051,1052],{},"Startup.cs :"," Daha önceden App_Start klasörünün altında bulunan bu dosya, Mvc 5 sürümü ile birlikte ana dizine alınmış durumdadır.",[658,1055,1056,1059],{},[646,1057,1058],{},"Web.config :"," Proje ile ilgili tüm merkezi ayarların saklandığı yerdir. E-posta hesap bilgileri, Cookie süreleri, Sql bağlantı bilgileri vb. tüm bilgiler bu alanda kaydedilebilir ve düzenlenebilir.",[643,1061,1062],{},"​​​",[643,1064,1065],{},"​​Evet arkadaşlar, sonraki derslerimizde Asp.Net Mvc'de şablon yapılarını inceliyor olacağız. Hepinize kolaylıklar diliyorum.",{"title":346,"searchDepth":347,"depth":347,"links":1067},[],"2013/11/ilk-mvc-projesi.jpg","2013-12-01T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc'nin Avantajları (Asp.Net Mvc Yazı Dizisi – 2)​​",{},{"title":99,"description":1070},"Ut2QM7ot7nstcPYPVWvr1J2Pt5xRrmN0YEd8N9ZikWs",{"id":1075,"title":51,"body":1076,"coverImage":1983,"createDate":1984,"description":1985,"extension":350,"meta":1986,"navigation":352,"path":52,"seo":1987,"stem":53,"__hash__":1988},"posts/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-asp-net-mvc-yazi-dizisi-4.md",{"type":343,"value":1077,"toc":1981},[1078,1081,1087,1089,1092,1099,1112,1118,1131,1137,1148,1154,1169,1175,1188,1194,1202,1208,1221,1227,1235,1241,1248,1254,1263,1914,1917,1930,1933,1955,1958,1964,1967,1974,1977],[639,1079,51],{"id":1080},"aspnet-mvc-layout-sayfaları-aspnet-mvc-yazı-dizisi-4",[643,1082,1083],{},[646,1084,769,1085],{},[771,1086,99],{"href":100},[643,1088,861],{},[643,1090,1091],{},"Önceki yazımızda ilk Mvc projemizi oluşturmuş ve klasör yapılarını incelemiştik. Şimdi ise Mvc siteleri hazırlarken kullanabileceğimiz, tasarım ve yerleşim düzenlerini inceleyeceğiz.",[643,1093,1094,1095,1098],{},"Öncelikle ",[771,1096,1097],{"href":100},"önceki yazımızda"," bahsettiğimiz şekilde yeni bir Mvc projesi açıyoruz. Projemizi açtıktan sonra,",[655,1100,1101],{},[658,1102,1103,1104,1107,1108,1111],{},"Solution Explorer kısmı altından ",[646,1105,1106],{},"Controllers"," klasörünü bulup sağ tıklayarak ",[646,1109,1110],{},"Add>Controller"," yolunu takip ediyoruz.",[643,1113,1114],{},[895,1115],{"alt":1116,"src":1117},"Yeni Controller Ekleme","/images/2013/12/2013-12-05-11_04_31-Greenshot-1024x575.jpg",[655,1119,1120],{},[658,1121,1122,1123,1126,1127,1130],{},"Ardından açılan ekranda biraz farklılıkla karşılaşıyoruz. Bu ekran Mvc 5 sürümü ile birlikte gelmiş bulunmaktadır. Buradaki detaylara ayrıca Controller konusunu incelediğimiz zaman değiniyor olacağız. Biz şimdilik ",[646,1124,1125],{},"MVC 5 Controller - Empty"," seçip ",[646,1128,1129],{},"Add"," tuşuna tıklıyoruz.",[643,1132,1133],{},[895,1134],{"alt":1135,"src":1136},"Controller Seçim Ekranı","/images/2013/12/2013-12-05-11_10_10-Greenshot-1024x575.jpg",[655,1138,1139],{},[658,1140,1141,1142,1145,1146,1130],{},"Bizden Controller ismi isteyen bir kutucuk açılıyor. Bu kutucuğa da ",[646,1143,1144],{},"DenemeController"," yazarak ",[646,1147,1129],{},[643,1149,1150],{},[895,1151],{"alt":1152,"src":1153},"Controller isimlendirme ekranı","/images/2013/12/2013-12-05-11_13_56-Greenshot-1024x575.jpg",[655,1155,1156],{},[658,1157,1158,1159,1162,1163,1165,1166,1168],{},"Yaptığımız işlemler neticesinde yeni Controller'imiz projemize eklenmiş oldu. ",[646,1160,1161],{},"Solution Explorer"," kısmında ",[646,1164,1106],{}," klasörü altında ",[646,1167,1144],{}," dosyamız görünmektedir.",[643,1170,1171],{},[895,1172],{"alt":1173,"src":1174},"Controller eklendi","/images/2013/12/2013-12-05-11_16_36-Greenshot-1024x575.jpg",[655,1176,1177],{},[658,1178,1179,1180,1183,1184,1187],{},"Controller'imizi ekledikten sonra Controller'de işlenen verileri görüntüleyecek olan View'imizi eklememiz gerekmektedir. Bunun için ",[799,1181,1182],{},"public ActionResult Index"," kod satırında ki Index'in bu kısım farklı adlar alabilir, ileri ki derslerde anlatılacaktır üzerine fare ile sağ tıkladığımızda açılan menüden ",[646,1185,1186],{},"Add View","'i tıklıyoruz.",[643,1189,1190],{},[895,1191],{"alt":1192,"src":1193},"View ekleme","/images/2013/12/2013-12-05-11_19_14-Greenshot-1024x575.jpg",[655,1195,1196],{},[658,1197,1198,1199,1201],{},"Hiçbir veriyi değiştirmeden ",[646,1200,1129],{}," tuşuna tıklıyoruz.",[643,1203,1204],{},[895,1205],{"alt":1206,"src":1207},"View adı","/images/2013/12/2013-12-05-11_28_21-Greenshot-1024x575.jpg",[655,1209,1210],{},[658,1211,1212,1213,1216,1217,1220],{},"View dosyamız da projemize eklenmiş bulunuyor. Solution Explorer üzerinden ",[646,1214,1215],{},"Views>Deneme"," burada Controller'in adı yazacaktır > ",[646,1218,1219],{},"Index"," burada da View'imizin adı yazacaktır dosyamız görünmektedir.",[643,1222,1223],{},[895,1224],{"alt":1225,"src":1226},"View sayfsı","/images/2013/12/2013-12-05-14_17_46-IlkMvcProjesi-Microsoft-Visual-Studio-1024x553.jpg",[655,1228,1229],{},[658,1230,1231,1234],{},[646,1232,1233],{},"Views>Shared"," klasörümüzün içindeki dosyalar, tüm sayfalarda ya da bazı sayfalarda görünecek ortak Layout içeriklerdir. Asp.Net Web Forms'da bulunan Master Page ile aynı işi yapmaktadır. Şimdi F5 tuşuna basarak projemizi çalıştıralım.",[643,1236,1237],{},[895,1238],{"alt":1239,"src":1240},"Layout alanı","/images/2013/12/path29961-1024x553.jpg",[643,1242,1243,1244,1247],{},"Yukarıdaki sayfa açıldı. Sayfada, bordo renkle işaretli alana dikkat edelim. Bu alan menü vb. öğeleri kapsayan alan. Bu alanı muhtemelen tüm sayfalarda kullanacağız. Peki bu kısmı, her sayfada tek tek yeniden yazmak ne kadar mantıklı? Elbette ki mantıklı değil, işte bu noktada devreye ",[646,1245,1246],{},"Layout"," sistemi giriyor. ",[643,1249,1250,1253],{},[646,1251,1252],{},"Layout :"," Sitenin temelini teşkil eden sayfadır. Bu sayfada ki veriler, bu sayfayı baz alan tüm sayfalar da otomatikman yüklenecektir. Böylelikle menü, alt bilgi vb. bilgiler değiştiğinde her sayfada bu işlemi tek tek yapmak zorunda kalmayacağız.",[643,1255,1256,1257,1162,1259,1262],{},"Şimdi ",[646,1258,1161],{},[646,1260,1261],{},"Views>Shared>Layout.cshtml"," do​syasını açalım. ",[1264,1265,1269],"pre",{"className":1266,"code":1267,"language":1268,"meta":346,"style":346},"language-html shiki shiki-themes material-theme-lighter github-light github-dark","\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\n    \u003Cmeta charset=\"utf-8\" />\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \u003Ctitle>@ViewBag.Title - My ASP.NET Application\u003C/title>\n    @Styles.Render(\"~/Content/css\")\n    @Scripts.Render(\"~/bundles/modernizr\")\n\n\u003C/head>\n\u003Cbody>\n    \u003Cdiv class=\"navbar navbar-inverse navbar-fixed-top\">\n        \u003Cdiv class=\"container\">\n            \u003Cdiv class=\"navbar-header\">\n                \u003Cbutton type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".navbar-collapse\">\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                \u003C/button>\n                @Html.ActionLink(\"Application name\", \"Index\", \"Home\", null, new { @class = \"navbar-brand\" })\n            \u003C/div>\n            \u003Cdiv class=\"navbar-collapse collapse\">\n                \u003Cul class=\"nav navbar-nav\">\n                    \u003Cli>@Html.ActionLink(\"Home\", \"Index\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"About\", \"About\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"Contact\", \"Contact\", \"Home\")\u003C/li>\n                \u003C/ul>\n                @Html.Partial(\"_LoginPartial\")\n            \u003C/div>\n        \u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"container body-content\">\n        @RenderBody()\n        \u003Chr />\n        \u003Cfooter>\n            \u003Cp>&copy; @DateTime.Now.Year - My ASP.NET Application\u003C/p>\n        \u003C/footer>\n    \u003C/div>\n\n    @Scripts.Render(\"~/bundles/jquery\")\n    @Scripts.Render(\"~/bundles/bootstrap\")\n    @RenderSection(\"scripts\", required: false)\n\u003C/body>\n\u003C/html>\n","html",[799,1270,1271,1291,1300,1310,1338,1371,1393,1399,1405,1411,1420,1430,1452,1473,1494,1551,1577,1600,1623,1633,1639,1649,1669,1689,1707,1725,1743,1752,1758,1767,1777,1787,1807,1813,1823,1833,1855,1864,1873,1878,1884,1890,1896,1905],{"__ignoreMap":346},[1272,1273,1276,1280,1284,1288],"span",{"class":1274,"line":1275},"line",1,[1272,1277,1279],{"class":1278},"sP7_E","\u003C!",[1272,1281,1283],{"class":1282},"sQzsp","DOCTYPE",[1272,1285,1287],{"class":1286},"s9AJx"," html",[1272,1289,1290],{"class":1278},">\n",[1272,1292,1293,1296,1298],{"class":1274,"line":347},[1272,1294,1295],{"class":1278},"\u003C",[1272,1297,1268],{"class":1282},[1272,1299,1290],{"class":1278},[1272,1301,1303,1305,1308],{"class":1274,"line":1302},3,[1272,1304,1295],{"class":1278},[1272,1306,1307],{"class":1282},"head",[1272,1309,1290],{"class":1278},[1272,1311,1313,1316,1319,1322,1325,1329,1333,1335],{"class":1274,"line":1312},4,[1272,1314,1315],{"class":1278},"    \u003C",[1272,1317,1318],{"class":1282},"meta",[1272,1320,1321],{"class":1286}," charset",[1272,1323,1324],{"class":1278},"=",[1272,1326,1328],{"class":1327},"sjJ54","\"",[1272,1330,1332],{"class":1331},"s_sjI","utf-8",[1272,1334,1328],{"class":1327},[1272,1336,1337],{"class":1278}," />\n",[1272,1339,1341,1343,1345,1348,1350,1352,1355,1357,1360,1362,1364,1367,1369],{"class":1274,"line":1340},5,[1272,1342,1315],{"class":1278},[1272,1344,1318],{"class":1282},[1272,1346,1347],{"class":1286}," name",[1272,1349,1324],{"class":1278},[1272,1351,1328],{"class":1327},[1272,1353,1354],{"class":1331},"viewport",[1272,1356,1328],{"class":1327},[1272,1358,1359],{"class":1286}," content",[1272,1361,1324],{"class":1278},[1272,1363,1328],{"class":1327},[1272,1365,1366],{"class":1331},"width=device-width, initial-scale=1.0",[1272,1368,1328],{"class":1327},[1272,1370,1290],{"class":1278},[1272,1372,1374,1376,1379,1382,1386,1389,1391],{"class":1274,"line":1373},6,[1272,1375,1315],{"class":1278},[1272,1377,1378],{"class":1282},"title",[1272,1380,1381],{"class":1278},">",[1272,1383,1385],{"class":1384},"su5hD","@ViewBag.Title - My ASP.NET Application",[1272,1387,1388],{"class":1278},"\u003C/",[1272,1390,1378],{"class":1282},[1272,1392,1290],{"class":1278},[1272,1394,1396],{"class":1274,"line":1395},7,[1272,1397,1398],{"class":1384},"    @Styles.Render(\"~/Content/css\")\n",[1272,1400,1402],{"class":1274,"line":1401},8,[1272,1403,1404],{"class":1384},"    @Scripts.Render(\"~/bundles/modernizr\")\n",[1272,1406,1408],{"class":1274,"line":1407},9,[1272,1409,1410],{"emptyLinePlaceholder":352},"\n",[1272,1412,1414,1416,1418],{"class":1274,"line":1413},10,[1272,1415,1388],{"class":1278},[1272,1417,1307],{"class":1282},[1272,1419,1290],{"class":1278},[1272,1421,1423,1425,1428],{"class":1274,"line":1422},11,[1272,1424,1295],{"class":1278},[1272,1426,1427],{"class":1282},"body",[1272,1429,1290],{"class":1278},[1272,1431,1433,1435,1438,1441,1443,1445,1448,1450],{"class":1274,"line":1432},12,[1272,1434,1315],{"class":1278},[1272,1436,1437],{"class":1282},"div",[1272,1439,1440],{"class":1286}," class",[1272,1442,1324],{"class":1278},[1272,1444,1328],{"class":1327},[1272,1446,1447],{"class":1331},"navbar navbar-inverse navbar-fixed-top",[1272,1449,1328],{"class":1327},[1272,1451,1290],{"class":1278},[1272,1453,1455,1458,1460,1462,1464,1466,1469,1471],{"class":1274,"line":1454},13,[1272,1456,1457],{"class":1278},"        \u003C",[1272,1459,1437],{"class":1282},[1272,1461,1440],{"class":1286},[1272,1463,1324],{"class":1278},[1272,1465,1328],{"class":1327},[1272,1467,1468],{"class":1331},"container",[1272,1470,1328],{"class":1327},[1272,1472,1290],{"class":1278},[1272,1474,1476,1479,1481,1483,1485,1487,1490,1492],{"class":1274,"line":1475},14,[1272,1477,1478],{"class":1278},"            \u003C",[1272,1480,1437],{"class":1282},[1272,1482,1440],{"class":1286},[1272,1484,1324],{"class":1278},[1272,1486,1328],{"class":1327},[1272,1488,1489],{"class":1331},"navbar-header",[1272,1491,1328],{"class":1327},[1272,1493,1290],{"class":1278},[1272,1495,1497,1500,1503,1506,1508,1510,1512,1514,1516,1518,1520,1523,1525,1528,1530,1532,1535,1537,1540,1542,1544,1547,1549],{"class":1274,"line":1496},15,[1272,1498,1499],{"class":1278},"                \u003C",[1272,1501,1502],{"class":1282},"button",[1272,1504,1505],{"class":1286}," type",[1272,1507,1324],{"class":1278},[1272,1509,1328],{"class":1327},[1272,1511,1502],{"class":1331},[1272,1513,1328],{"class":1327},[1272,1515,1440],{"class":1286},[1272,1517,1324],{"class":1278},[1272,1519,1328],{"class":1327},[1272,1521,1522],{"class":1331},"navbar-toggle",[1272,1524,1328],{"class":1327},[1272,1526,1527],{"class":1286}," data-toggle",[1272,1529,1324],{"class":1278},[1272,1531,1328],{"class":1327},[1272,1533,1534],{"class":1331},"collapse",[1272,1536,1328],{"class":1327},[1272,1538,1539],{"class":1286}," data-target",[1272,1541,1324],{"class":1278},[1272,1543,1328],{"class":1327},[1272,1545,1546],{"class":1331},".navbar-collapse",[1272,1548,1328],{"class":1327},[1272,1550,1290],{"class":1278},[1272,1552,1554,1557,1559,1561,1563,1565,1568,1570,1573,1575],{"class":1274,"line":1553},16,[1272,1555,1556],{"class":1278},"                    \u003C",[1272,1558,1272],{"class":1282},[1272,1560,1440],{"class":1286},[1272,1562,1324],{"class":1278},[1272,1564,1328],{"class":1327},[1272,1566,1567],{"class":1331},"icon-bar",[1272,1569,1328],{"class":1327},[1272,1571,1572],{"class":1278},">\u003C/",[1272,1574,1272],{"class":1282},[1272,1576,1290],{"class":1278},[1272,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598],{"class":1274,"line":1579},17,[1272,1581,1556],{"class":1278},[1272,1583,1272],{"class":1282},[1272,1585,1440],{"class":1286},[1272,1587,1324],{"class":1278},[1272,1589,1328],{"class":1327},[1272,1591,1567],{"class":1331},[1272,1593,1328],{"class":1327},[1272,1595,1572],{"class":1278},[1272,1597,1272],{"class":1282},[1272,1599,1290],{"class":1278},[1272,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621],{"class":1274,"line":1602},18,[1272,1604,1556],{"class":1278},[1272,1606,1272],{"class":1282},[1272,1608,1440],{"class":1286},[1272,1610,1324],{"class":1278},[1272,1612,1328],{"class":1327},[1272,1614,1567],{"class":1331},[1272,1616,1328],{"class":1327},[1272,1618,1572],{"class":1278},[1272,1620,1272],{"class":1282},[1272,1622,1290],{"class":1278},[1272,1624,1626,1629,1631],{"class":1274,"line":1625},19,[1272,1627,1628],{"class":1278},"                \u003C/",[1272,1630,1502],{"class":1282},[1272,1632,1290],{"class":1278},[1272,1634,1636],{"class":1274,"line":1635},20,[1272,1637,1638],{"class":1384},"                @Html.ActionLink(\"Application name\", \"Index\", \"Home\", null, new { @class = \"navbar-brand\" })\n",[1272,1640,1642,1645,1647],{"class":1274,"line":1641},21,[1272,1643,1644],{"class":1278},"            \u003C/",[1272,1646,1437],{"class":1282},[1272,1648,1290],{"class":1278},[1272,1650,1652,1654,1656,1658,1660,1662,1665,1667],{"class":1274,"line":1651},22,[1272,1653,1478],{"class":1278},[1272,1655,1437],{"class":1282},[1272,1657,1440],{"class":1286},[1272,1659,1324],{"class":1278},[1272,1661,1328],{"class":1327},[1272,1663,1664],{"class":1331},"navbar-collapse collapse",[1272,1666,1328],{"class":1327},[1272,1668,1290],{"class":1278},[1272,1670,1672,1674,1676,1678,1680,1682,1685,1687],{"class":1274,"line":1671},23,[1272,1673,1499],{"class":1278},[1272,1675,655],{"class":1282},[1272,1677,1440],{"class":1286},[1272,1679,1324],{"class":1278},[1272,1681,1328],{"class":1327},[1272,1683,1684],{"class":1331},"nav navbar-nav",[1272,1686,1328],{"class":1327},[1272,1688,1290],{"class":1278},[1272,1690,1692,1694,1696,1698,1701,1703,1705],{"class":1274,"line":1691},24,[1272,1693,1556],{"class":1278},[1272,1695,658],{"class":1282},[1272,1697,1381],{"class":1278},[1272,1699,1700],{"class":1384},"@Html.ActionLink(\"Home\", \"Index\", \"Home\")",[1272,1702,1388],{"class":1278},[1272,1704,658],{"class":1282},[1272,1706,1290],{"class":1278},[1272,1708,1710,1712,1714,1716,1719,1721,1723],{"class":1274,"line":1709},25,[1272,1711,1556],{"class":1278},[1272,1713,658],{"class":1282},[1272,1715,1381],{"class":1278},[1272,1717,1718],{"class":1384},"@Html.ActionLink(\"About\", \"About\", \"Home\")",[1272,1720,1388],{"class":1278},[1272,1722,658],{"class":1282},[1272,1724,1290],{"class":1278},[1272,1726,1728,1730,1732,1734,1737,1739,1741],{"class":1274,"line":1727},26,[1272,1729,1556],{"class":1278},[1272,1731,658],{"class":1282},[1272,1733,1381],{"class":1278},[1272,1735,1736],{"class":1384},"@Html.ActionLink(\"Contact\", \"Contact\", \"Home\")",[1272,1738,1388],{"class":1278},[1272,1740,658],{"class":1282},[1272,1742,1290],{"class":1278},[1272,1744,1746,1748,1750],{"class":1274,"line":1745},27,[1272,1747,1628],{"class":1278},[1272,1749,655],{"class":1282},[1272,1751,1290],{"class":1278},[1272,1753,1755],{"class":1274,"line":1754},28,[1272,1756,1757],{"class":1384},"                @Html.Partial(\"_LoginPartial\")\n",[1272,1759,1761,1763,1765],{"class":1274,"line":1760},29,[1272,1762,1644],{"class":1278},[1272,1764,1437],{"class":1282},[1272,1766,1290],{"class":1278},[1272,1768,1770,1773,1775],{"class":1274,"line":1769},30,[1272,1771,1772],{"class":1278},"        \u003C/",[1272,1774,1437],{"class":1282},[1272,1776,1290],{"class":1278},[1272,1778,1780,1783,1785],{"class":1274,"line":1779},31,[1272,1781,1782],{"class":1278},"    \u003C/",[1272,1784,1437],{"class":1282},[1272,1786,1290],{"class":1278},[1272,1788,1790,1792,1794,1796,1798,1800,1803,1805],{"class":1274,"line":1789},32,[1272,1791,1315],{"class":1278},[1272,1793,1437],{"class":1282},[1272,1795,1440],{"class":1286},[1272,1797,1324],{"class":1278},[1272,1799,1328],{"class":1327},[1272,1801,1802],{"class":1331},"container body-content",[1272,1804,1328],{"class":1327},[1272,1806,1290],{"class":1278},[1272,1808,1810],{"class":1274,"line":1809},33,[1272,1811,1812],{"class":1384},"        @RenderBody()\n",[1272,1814,1816,1818,1821],{"class":1274,"line":1815},34,[1272,1817,1457],{"class":1278},[1272,1819,1820],{"class":1282},"hr",[1272,1822,1337],{"class":1278},[1272,1824,1826,1828,1831],{"class":1274,"line":1825},35,[1272,1827,1457],{"class":1278},[1272,1829,1830],{"class":1282},"footer",[1272,1832,1290],{"class":1278},[1272,1834,1836,1838,1840,1842,1846,1849,1851,1853],{"class":1274,"line":1835},36,[1272,1837,1478],{"class":1278},[1272,1839,643],{"class":1282},[1272,1841,1381],{"class":1278},[1272,1843,1845],{"class":1844},"s_hVV","&copy;",[1272,1847,1848],{"class":1384}," @DateTime.Now.Year - My ASP.NET Application",[1272,1850,1388],{"class":1278},[1272,1852,643],{"class":1282},[1272,1854,1290],{"class":1278},[1272,1856,1858,1860,1862],{"class":1274,"line":1857},37,[1272,1859,1772],{"class":1278},[1272,1861,1830],{"class":1282},[1272,1863,1290],{"class":1278},[1272,1865,1867,1869,1871],{"class":1274,"line":1866},38,[1272,1868,1782],{"class":1278},[1272,1870,1437],{"class":1282},[1272,1872,1290],{"class":1278},[1272,1874,1876],{"class":1274,"line":1875},39,[1272,1877,1410],{"emptyLinePlaceholder":352},[1272,1879,1881],{"class":1274,"line":1880},40,[1272,1882,1883],{"class":1384},"    @Scripts.Render(\"~/bundles/jquery\")\n",[1272,1885,1887],{"class":1274,"line":1886},41,[1272,1888,1889],{"class":1384},"    @Scripts.Render(\"~/bundles/bootstrap\")\n",[1272,1891,1893],{"class":1274,"line":1892},42,[1272,1894,1895],{"class":1384},"    @RenderSection(\"scripts\", required: false)\n",[1272,1897,1899,1901,1903],{"class":1274,"line":1898},43,[1272,1900,1388],{"class":1278},[1272,1902,1427],{"class":1282},[1272,1904,1290],{"class":1278},[1272,1906,1908,1910,1912],{"class":1274,"line":1907},44,[1272,1909,1388],{"class":1278},[1272,1911,1268],{"class":1282},[1272,1913,1290],{"class":1278},[643,1915,1916],{},"Kodlarımız yukarıdaki gibi geldi. Mvc'nin ya da Visual Studio'nun sürümüne göre değişiklikler olabilir. Şimdi 11.satırda bulunan,",[1264,1918,1920],{"className":1266,"code":1919,"language":1268,"meta":346,"style":346},"\u003Cbody>\n",[799,1921,1922],{"__ignoreMap":346},[1272,1923,1924,1926,1928],{"class":1274,"line":1275},[1272,1925,1295],{"class":1278},[1272,1927,1427],{"class":1282},[1272,1929,1290],{"class":1278},[643,1931,1932],{},"içeriğinin sonuna,",[1264,1934,1936],{"className":1266,"code":1935,"language":1268,"meta":346,"style":346},"\u003Cspan>Yeni Eklenen İçeriğim\u003C/span>\n",[799,1937,1938],{"__ignoreMap":346},[1272,1939,1940,1942,1944,1946,1949,1951,1953],{"class":1274,"line":1275},[1272,1941,1295],{"class":1278},[1272,1943,1272],{"class":1282},[1272,1945,1381],{"class":1278},[1272,1947,1948],{"class":1384},"Yeni Eklenen İçeriğim",[1272,1950,1388],{"class":1278},[1272,1952,1272],{"class":1282},[1272,1954,1290],{"class":1278},[643,1956,1957],{},"içeriğini ekleyelim. Ardından projeyi yeniden F5 ile çalıştıralım. ",[643,1959,1960],{},[895,1961],{"alt":1962,"src":1963},"Layout değişiklik","/images/2013/12/path3009-1024x553.jpg",[643,1965,1966],{},"Görüldüğü gibi yeni yapılan değişiklik sayfamıza yansıdı. Şimdi menüden diğer sayfaları ziyaret edin. Göreceğiniz gibi tüm sayfalarda değişiklik uygulanmış oldu. Böylelikle tek seferde ortak içeriği rahatlıkla değiştirebildik.",[643,1968,1969,1970,1973],{},"Bir sonraki dersimizde ",[646,1971,1972],{},"Render Section, Render Page ve Partial View"," konularını işliyor olacağız.",[643,1975,1976],{},"Hepinize kolaylıklar diliyorum.",[1978,1979,1980],"style",{},"html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":346,"searchDepth":347,"depth":347,"links":1982},[],"2013/12/path3009.jpg","2013-12-06T00:00:00.000Z","Önceki Yazı : İlk Asp.Net Mvc Projesinin Oluşturulması (Asp.Net Mvc Yazı Dizisi – 3)",{},{"title":51,"description":1985},"mp2A2PDWtA7kWR1XOPAjHFZRjgLStZNpNZ_v5-d4Om0",{"id":1990,"title":63,"body":1991,"coverImage":3370,"createDate":3371,"description":3372,"extension":350,"meta":3373,"navigation":352,"path":64,"seo":3374,"stem":65,"__hash__":3375},"posts/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-render-section-asp-net-mvc-yazi-dizisi-5.md",{"type":343,"value":1992,"toc":3368},[1993,1996,2002,2004,2011,2014,2017,2029,2035,2044,2590,2595,2603,2606,2611,2617,2622,2627,2634,2640,2649,2658,3174,3179,3214,3217,3228,3306,3311,3345,3356,3359,3366],[639,1994,63],{"id":1995},"aspnet-mvc-layout-sayfaları-render-section-aspnet-mvc-yazı-dizisi-5",[643,1997,1998],{},[646,1999,769,2000],{},[771,2001,51],{"href":52},[643,2003,861],{},[643,2005,2006,2007,2010],{},"Önceki yazımızda, Asp.Net Mvc projelerinde ki Layout sistemine kısa bir giriş yapmıştık. Şimdi ise, yine Layout yapısı üzerinde, görüntüleme yapmamıza yarayan ",[646,2008,2009],{},"Render Section"," yapılarını inceliyor olacağız.",[643,2012,2013],{},"Bir site tasarladığımızda, banner vb. kısımları belirli sayfalara eklemek istediğimiz de belirli konumlara, pozisyonlara ihtiyacımız olabilir. Layout yapısını kullandığımızda, esneklik imkanına sahip olamamaktayız. Tüm konumlar önceden belirlenmekte ve içerikler doldurulmaktadır. Oysa biz farklı alanlara farklı içerikler eklemek istediğimizde, Render Section ile istediğimiz sayfalarda, istediğimiz kısımlara eklemeler yapabilmekteyiz.",[643,2015,2016],{},"Daha iyi anlamak için, kodlama kısmımıza geçelim;",[655,2018,2019,2026],{},[658,2020,2021,2022,2025],{},"Önceki yazılarımızda oluşturduğumuz ",[646,2023,2024],{},"IlkMvcProjesi"," isimli Mvc projemizi açalım.",[658,2027,2028],{},"F5 tuşuna basarak projemizi çalıştıralım. Alttaki resimde işaretli olan kısma çeşitli sayfalarda çeşitli veriler eklemek istediğimizi varsayalım.",[643,2030,2031],{},[895,2032],{"alt":2033,"src":2034},"Ekleme yapılacak kısım","/images/2013/12/2013-12-09-11_41_13-Home-Page-My-ASP.NET-Application-1024x553.jpg",[655,2036,2037],{},[658,2038,2039,1162,2041,2043],{},[646,2040,1161],{},[646,2042,1261],{}," dosyamızı açalım. Aşağıdaki gibi bir görünümle karşılaşacağız.Asp.Net Mvc'nin sürümüne ya da projeye göre değişiklik gösterebilir.",[1264,2045,2047],{"className":1266,"code":2046,"language":1268,"meta":346,"style":346},"\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\n    \u003Cmeta charset=\"utf-8\" />\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \u003Ctitle>@ViewBag.Title - My ASP.NET Application\u003C/title>\n    @Styles.Render(\"~/Content/css\")\n    @Scripts.Render(\"~/bundles/modernizr\")\n\n\u003C/head>\n\u003Cbody>\u003Cspan>Yeni Eklenen İçeriğim\u003C/span>\n    \u003Cdiv class=\"navbar navbar-inverse navbar-fixed-top\">\n        \u003Cdiv class=\"container\">\n            \u003Cdiv class=\"navbar-header\">\n                \u003Cbutton type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".navbar-collapse\">\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                \u003C/button>\n                @Html.ActionLink(\"Application name\", \"Index\", \"Home\", null, new { @class = \"navbar-brand\" })\n            \u003C/div>\n            \u003Cdiv class=\"navbar-collapse collapse\">\n                \u003Cul class=\"nav navbar-nav\">\n                    \u003Cli>@Html.ActionLink(\"Home\", \"Index\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"About\", \"About\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"Contact\", \"Contact\", \"Home\")\u003C/li>\n                \u003C/ul>\n                @Html.Partial(\"_LoginPartial\")\n            \u003C/div>\n        \u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"container body-content\">\n        @RenderBody()\n        \u003Chr />\n        \u003Cfooter>\n            \u003Cp>&copy; @DateTime.Now.Year - My ASP.NET Application\u003C/p>\n        \u003C/footer>\n    \u003C/div>\n\n    @Scripts.Render(\"~/bundles/jquery\")\n    @Scripts.Render(\"~/bundles/bootstrap\")\n    @RenderSection(\"scripts\", required: false)\n\u003C/body>\n\u003C/html>\n",[799,2048,2049,2059,2067,2075,2093,2121,2137,2141,2145,2149,2157,2178,2196,2214,2232,2280,2302,2324,2346,2354,2358,2366,2384,2402,2418,2434,2450,2458,2462,2470,2478,2486,2504,2508,2516,2524,2542,2550,2558,2562,2566,2570,2574,2582],{"__ignoreMap":346},[1272,2050,2051,2053,2055,2057],{"class":1274,"line":1275},[1272,2052,1279],{"class":1278},[1272,2054,1283],{"class":1282},[1272,2056,1287],{"class":1286},[1272,2058,1290],{"class":1278},[1272,2060,2061,2063,2065],{"class":1274,"line":347},[1272,2062,1295],{"class":1278},[1272,2064,1268],{"class":1282},[1272,2066,1290],{"class":1278},[1272,2068,2069,2071,2073],{"class":1274,"line":1302},[1272,2070,1295],{"class":1278},[1272,2072,1307],{"class":1282},[1272,2074,1290],{"class":1278},[1272,2076,2077,2079,2081,2083,2085,2087,2089,2091],{"class":1274,"line":1312},[1272,2078,1315],{"class":1278},[1272,2080,1318],{"class":1282},[1272,2082,1321],{"class":1286},[1272,2084,1324],{"class":1278},[1272,2086,1328],{"class":1327},[1272,2088,1332],{"class":1331},[1272,2090,1328],{"class":1327},[1272,2092,1337],{"class":1278},[1272,2094,2095,2097,2099,2101,2103,2105,2107,2109,2111,2113,2115,2117,2119],{"class":1274,"line":1340},[1272,2096,1315],{"class":1278},[1272,2098,1318],{"class":1282},[1272,2100,1347],{"class":1286},[1272,2102,1324],{"class":1278},[1272,2104,1328],{"class":1327},[1272,2106,1354],{"class":1331},[1272,2108,1328],{"class":1327},[1272,2110,1359],{"class":1286},[1272,2112,1324],{"class":1278},[1272,2114,1328],{"class":1327},[1272,2116,1366],{"class":1331},[1272,2118,1328],{"class":1327},[1272,2120,1290],{"class":1278},[1272,2122,2123,2125,2127,2129,2131,2133,2135],{"class":1274,"line":1373},[1272,2124,1315],{"class":1278},[1272,2126,1378],{"class":1282},[1272,2128,1381],{"class":1278},[1272,2130,1385],{"class":1384},[1272,2132,1388],{"class":1278},[1272,2134,1378],{"class":1282},[1272,2136,1290],{"class":1278},[1272,2138,2139],{"class":1274,"line":1395},[1272,2140,1398],{"class":1384},[1272,2142,2143],{"class":1274,"line":1401},[1272,2144,1404],{"class":1384},[1272,2146,2147],{"class":1274,"line":1407},[1272,2148,1410],{"emptyLinePlaceholder":352},[1272,2150,2151,2153,2155],{"class":1274,"line":1413},[1272,2152,1388],{"class":1278},[1272,2154,1307],{"class":1282},[1272,2156,1290],{"class":1278},[1272,2158,2159,2161,2163,2166,2168,2170,2172,2174,2176],{"class":1274,"line":1422},[1272,2160,1295],{"class":1278},[1272,2162,1427],{"class":1282},[1272,2164,2165],{"class":1278},">\u003C",[1272,2167,1272],{"class":1282},[1272,2169,1381],{"class":1278},[1272,2171,1948],{"class":1384},[1272,2173,1388],{"class":1278},[1272,2175,1272],{"class":1282},[1272,2177,1290],{"class":1278},[1272,2179,2180,2182,2184,2186,2188,2190,2192,2194],{"class":1274,"line":1432},[1272,2181,1315],{"class":1278},[1272,2183,1437],{"class":1282},[1272,2185,1440],{"class":1286},[1272,2187,1324],{"class":1278},[1272,2189,1328],{"class":1327},[1272,2191,1447],{"class":1331},[1272,2193,1328],{"class":1327},[1272,2195,1290],{"class":1278},[1272,2197,2198,2200,2202,2204,2206,2208,2210,2212],{"class":1274,"line":1454},[1272,2199,1457],{"class":1278},[1272,2201,1437],{"class":1282},[1272,2203,1440],{"class":1286},[1272,2205,1324],{"class":1278},[1272,2207,1328],{"class":1327},[1272,2209,1468],{"class":1331},[1272,2211,1328],{"class":1327},[1272,2213,1290],{"class":1278},[1272,2215,2216,2218,2220,2222,2224,2226,2228,2230],{"class":1274,"line":1475},[1272,2217,1478],{"class":1278},[1272,2219,1437],{"class":1282},[1272,2221,1440],{"class":1286},[1272,2223,1324],{"class":1278},[1272,2225,1328],{"class":1327},[1272,2227,1489],{"class":1331},[1272,2229,1328],{"class":1327},[1272,2231,1290],{"class":1278},[1272,2233,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278],{"class":1274,"line":1496},[1272,2235,1499],{"class":1278},[1272,2237,1502],{"class":1282},[1272,2239,1505],{"class":1286},[1272,2241,1324],{"class":1278},[1272,2243,1328],{"class":1327},[1272,2245,1502],{"class":1331},[1272,2247,1328],{"class":1327},[1272,2249,1440],{"class":1286},[1272,2251,1324],{"class":1278},[1272,2253,1328],{"class":1327},[1272,2255,1522],{"class":1331},[1272,2257,1328],{"class":1327},[1272,2259,1527],{"class":1286},[1272,2261,1324],{"class":1278},[1272,2263,1328],{"class":1327},[1272,2265,1534],{"class":1331},[1272,2267,1328],{"class":1327},[1272,2269,1539],{"class":1286},[1272,2271,1324],{"class":1278},[1272,2273,1328],{"class":1327},[1272,2275,1546],{"class":1331},[1272,2277,1328],{"class":1327},[1272,2279,1290],{"class":1278},[1272,2281,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300],{"class":1274,"line":1553},[1272,2283,1556],{"class":1278},[1272,2285,1272],{"class":1282},[1272,2287,1440],{"class":1286},[1272,2289,1324],{"class":1278},[1272,2291,1328],{"class":1327},[1272,2293,1567],{"class":1331},[1272,2295,1328],{"class":1327},[1272,2297,1572],{"class":1278},[1272,2299,1272],{"class":1282},[1272,2301,1290],{"class":1278},[1272,2303,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322],{"class":1274,"line":1579},[1272,2305,1556],{"class":1278},[1272,2307,1272],{"class":1282},[1272,2309,1440],{"class":1286},[1272,2311,1324],{"class":1278},[1272,2313,1328],{"class":1327},[1272,2315,1567],{"class":1331},[1272,2317,1328],{"class":1327},[1272,2319,1572],{"class":1278},[1272,2321,1272],{"class":1282},[1272,2323,1290],{"class":1278},[1272,2325,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344],{"class":1274,"line":1602},[1272,2327,1556],{"class":1278},[1272,2329,1272],{"class":1282},[1272,2331,1440],{"class":1286},[1272,2333,1324],{"class":1278},[1272,2335,1328],{"class":1327},[1272,2337,1567],{"class":1331},[1272,2339,1328],{"class":1327},[1272,2341,1572],{"class":1278},[1272,2343,1272],{"class":1282},[1272,2345,1290],{"class":1278},[1272,2347,2348,2350,2352],{"class":1274,"line":1625},[1272,2349,1628],{"class":1278},[1272,2351,1502],{"class":1282},[1272,2353,1290],{"class":1278},[1272,2355,2356],{"class":1274,"line":1635},[1272,2357,1638],{"class":1384},[1272,2359,2360,2362,2364],{"class":1274,"line":1641},[1272,2361,1644],{"class":1278},[1272,2363,1437],{"class":1282},[1272,2365,1290],{"class":1278},[1272,2367,2368,2370,2372,2374,2376,2378,2380,2382],{"class":1274,"line":1651},[1272,2369,1478],{"class":1278},[1272,2371,1437],{"class":1282},[1272,2373,1440],{"class":1286},[1272,2375,1324],{"class":1278},[1272,2377,1328],{"class":1327},[1272,2379,1664],{"class":1331},[1272,2381,1328],{"class":1327},[1272,2383,1290],{"class":1278},[1272,2385,2386,2388,2390,2392,2394,2396,2398,2400],{"class":1274,"line":1671},[1272,2387,1499],{"class":1278},[1272,2389,655],{"class":1282},[1272,2391,1440],{"class":1286},[1272,2393,1324],{"class":1278},[1272,2395,1328],{"class":1327},[1272,2397,1684],{"class":1331},[1272,2399,1328],{"class":1327},[1272,2401,1290],{"class":1278},[1272,2403,2404,2406,2408,2410,2412,2414,2416],{"class":1274,"line":1691},[1272,2405,1556],{"class":1278},[1272,2407,658],{"class":1282},[1272,2409,1381],{"class":1278},[1272,2411,1700],{"class":1384},[1272,2413,1388],{"class":1278},[1272,2415,658],{"class":1282},[1272,2417,1290],{"class":1278},[1272,2419,2420,2422,2424,2426,2428,2430,2432],{"class":1274,"line":1709},[1272,2421,1556],{"class":1278},[1272,2423,658],{"class":1282},[1272,2425,1381],{"class":1278},[1272,2427,1718],{"class":1384},[1272,2429,1388],{"class":1278},[1272,2431,658],{"class":1282},[1272,2433,1290],{"class":1278},[1272,2435,2436,2438,2440,2442,2444,2446,2448],{"class":1274,"line":1727},[1272,2437,1556],{"class":1278},[1272,2439,658],{"class":1282},[1272,2441,1381],{"class":1278},[1272,2443,1736],{"class":1384},[1272,2445,1388],{"class":1278},[1272,2447,658],{"class":1282},[1272,2449,1290],{"class":1278},[1272,2451,2452,2454,2456],{"class":1274,"line":1745},[1272,2453,1628],{"class":1278},[1272,2455,655],{"class":1282},[1272,2457,1290],{"class":1278},[1272,2459,2460],{"class":1274,"line":1754},[1272,2461,1757],{"class":1384},[1272,2463,2464,2466,2468],{"class":1274,"line":1760},[1272,2465,1644],{"class":1278},[1272,2467,1437],{"class":1282},[1272,2469,1290],{"class":1278},[1272,2471,2472,2474,2476],{"class":1274,"line":1769},[1272,2473,1772],{"class":1278},[1272,2475,1437],{"class":1282},[1272,2477,1290],{"class":1278},[1272,2479,2480,2482,2484],{"class":1274,"line":1779},[1272,2481,1782],{"class":1278},[1272,2483,1437],{"class":1282},[1272,2485,1290],{"class":1278},[1272,2487,2488,2490,2492,2494,2496,2498,2500,2502],{"class":1274,"line":1789},[1272,2489,1315],{"class":1278},[1272,2491,1437],{"class":1282},[1272,2493,1440],{"class":1286},[1272,2495,1324],{"class":1278},[1272,2497,1328],{"class":1327},[1272,2499,1802],{"class":1331},[1272,2501,1328],{"class":1327},[1272,2503,1290],{"class":1278},[1272,2505,2506],{"class":1274,"line":1809},[1272,2507,1812],{"class":1384},[1272,2509,2510,2512,2514],{"class":1274,"line":1815},[1272,2511,1457],{"class":1278},[1272,2513,1820],{"class":1282},[1272,2515,1337],{"class":1278},[1272,2517,2518,2520,2522],{"class":1274,"line":1825},[1272,2519,1457],{"class":1278},[1272,2521,1830],{"class":1282},[1272,2523,1290],{"class":1278},[1272,2525,2526,2528,2530,2532,2534,2536,2538,2540],{"class":1274,"line":1835},[1272,2527,1478],{"class":1278},[1272,2529,643],{"class":1282},[1272,2531,1381],{"class":1278},[1272,2533,1845],{"class":1844},[1272,2535,1848],{"class":1384},[1272,2537,1388],{"class":1278},[1272,2539,643],{"class":1282},[1272,2541,1290],{"class":1278},[1272,2543,2544,2546,2548],{"class":1274,"line":1857},[1272,2545,1772],{"class":1278},[1272,2547,1830],{"class":1282},[1272,2549,1290],{"class":1278},[1272,2551,2552,2554,2556],{"class":1274,"line":1866},[1272,2553,1782],{"class":1278},[1272,2555,1437],{"class":1282},[1272,2557,1290],{"class":1278},[1272,2559,2560],{"class":1274,"line":1875},[1272,2561,1410],{"emptyLinePlaceholder":352},[1272,2563,2564],{"class":1274,"line":1880},[1272,2565,1883],{"class":1384},[1272,2567,2568],{"class":1274,"line":1886},[1272,2569,1889],{"class":1384},[1272,2571,2572],{"class":1274,"line":1892},[1272,2573,1895],{"class":1384},[1272,2575,2576,2578,2580],{"class":1274,"line":1898},[1272,2577,1388],{"class":1278},[1272,2579,1427],{"class":1282},[1272,2581,1290],{"class":1278},[1272,2583,2584,2586,2588],{"class":1274,"line":1907},[1272,2585,1388],{"class":1278},[1272,2587,1268],{"class":1282},[1272,2589,1290],{"class":1278},[655,2591,2592],{},[658,2593,2594],{},"36. satırın sonuna",[1264,2596,2601],{"className":2597,"code":2599,"language":2600},[2598],"language-text","@RenderSection(\"deneme\")\n","text",[799,2602,2599],{"__ignoreMap":346},[643,2604,2605],{},"kodunu ekleyelim ve dosyayı kaydedelim.",[655,2607,2608],{},[658,2609,2610],{},"F5 tuşuyla projemizi tekrardan çalıştıralım. Evet, Visual Studio üzerinde aşağıdaki hata ekranıyla karşılaşmış olmamız muhtemel;",[643,2612,2613],{},[895,2614],{"alt":2615,"src":2616},"Render Section bulunamadı hatası","/images/2013/12/2013-12-09-12_10_54-Exception-Helper-Window.jpg",[655,2618,2619],{},[658,2620,2621],{},"Bu hatanın sebebi;",[1264,2623,2625],{"className":2624,"code":2599,"language":2600},[2598],[799,2626,2599],{"__ignoreMap":346},[643,2628,2629,2630,2633],{},"tanımını yaptığımızda varsayılan halinde, tüm sayfalar da ",[646,2631,2632],{},"deneme Render Section","'un içinin doldurulmuş olmasının zorunlu olması. Biz diğer sayfalarda, herhangi bir ekleme yapmadığımız için bu hatayı aldık. Yukarıda ki kod satırını,",[1264,2635,2638],{"className":2636,"code":2637,"language":2600},[2598],"@RenderSection(\"deneme\",false)\n",[799,2639,2637],{"__ignoreMap":346},[643,2641,2642,2643,2648],{},"olarak değiştirip tekrar projeyi çalıştıralım. Evet, şimdi projemiz hatasız olarak çalıştı. Buradaki ",[646,2644,2645],{},[799,2646,2647],{},"false,"," eklediğimiz Section, sayfada eklenmiş olmasa dahi yoksayıp, çalışmaya devam et anlamına geliyor. ",[655,2650,2651],{},[658,2652,2653,1162,2655,2043],{},[646,2654,1161],{},[646,2656,2657],{},"Views>Home>Index.cshtml",[1264,2659,2661],{"className":1266,"code":2660,"language":1268,"meta":346,"style":346},"@{\n    ViewBag.Title = \"Home Page\";\n}\n\n\u003Cdiv class=\"jumbotron\">\n    \u003Ch1>ASP.NET\u003C/h1>\n    \u003Cp class=\"lead\">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.\u003C/p>\n    \u003Cp>\u003Ca href=\"http://asp.net\" class=\"btn btn-primary btn-large\">Learn more &raquo;\u003C/a>\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"row\">\n    \u003Cdiv class=\"col-md-4\">\n        \u003Ch2>Getting started\u003C/h2>\n        \u003Cp>\n            ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that\n            enables a clean separation of concerns and gives you full control over markup\n            for enjoyable, agile development.\n        \u003C/p>\n        \u003Cp>\u003Ca class=\"btn btn-default\" href=\"http://go.microsoft.com/fwlink/?LinkId=301865\">Learn more &raquo;\u003C/a>\u003C/p>\n    \u003C/div>\n    \u003Cdiv class=\"col-md-4\">\n        \u003Ch2>Get more libraries\u003C/h2>\n        \u003Cp>NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.\u003C/p>\n        \u003Cp>\u003Ca class=\"btn btn-default\" href=\"http://go.microsoft.com/fwlink/?LinkId=301866\">Learn more &raquo;\u003C/a>\u003C/p>\n    \u003C/div>\n    \u003Cdiv class=\"col-md-4\">\n        \u003Ch2>Web Hosting\u003C/h2>\n        \u003Cp>You can easily find a web hosting company that offers the right mix of features and price for your applications.\u003C/p>\n        \u003Cp>\u003Ca class=\"btn btn-default\" href=\"http://go.microsoft.com/fwlink/?LinkId=301867\">Learn more &raquo;\u003C/a>\u003C/p>\n    \u003C/div>\n\u003C/div>\n",[799,2662,2663,2668,2673,2678,2682,2701,2718,2746,2797,2805,2809,2828,2847,2865,2873,2878,2883,2888,2896,2944,2952,2970,2987,3004,3051,3059,3077,3094,3111,3158,3166],{"__ignoreMap":346},[1272,2664,2665],{"class":1274,"line":1275},[1272,2666,2667],{"class":1384},"@{\n",[1272,2669,2670],{"class":1274,"line":347},[1272,2671,2672],{"class":1384},"    ViewBag.Title = \"Home Page\";\n",[1272,2674,2675],{"class":1274,"line":1302},[1272,2676,2677],{"class":1384},"}\n",[1272,2679,2680],{"class":1274,"line":1312},[1272,2681,1410],{"emptyLinePlaceholder":352},[1272,2683,2684,2686,2688,2690,2692,2694,2697,2699],{"class":1274,"line":1340},[1272,2685,1295],{"class":1278},[1272,2687,1437],{"class":1282},[1272,2689,1440],{"class":1286},[1272,2691,1324],{"class":1278},[1272,2693,1328],{"class":1327},[1272,2695,2696],{"class":1331},"jumbotron",[1272,2698,1328],{"class":1327},[1272,2700,1290],{"class":1278},[1272,2702,2703,2705,2707,2709,2712,2714,2716],{"class":1274,"line":1373},[1272,2704,1315],{"class":1278},[1272,2706,639],{"class":1282},[1272,2708,1381],{"class":1278},[1272,2710,2711],{"class":1384},"ASP.NET",[1272,2713,1388],{"class":1278},[1272,2715,639],{"class":1282},[1272,2717,1290],{"class":1278},[1272,2719,2720,2722,2724,2726,2728,2730,2733,2735,2737,2740,2742,2744],{"class":1274,"line":1395},[1272,2721,1315],{"class":1278},[1272,2723,643],{"class":1282},[1272,2725,1440],{"class":1286},[1272,2727,1324],{"class":1278},[1272,2729,1328],{"class":1327},[1272,2731,2732],{"class":1331},"lead",[1272,2734,1328],{"class":1327},[1272,2736,1381],{"class":1278},[1272,2738,2739],{"class":1384},"ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.",[1272,2741,1388],{"class":1278},[1272,2743,643],{"class":1282},[1272,2745,1290],{"class":1278},[1272,2747,2748,2750,2752,2754,2756,2759,2761,2763,2766,2768,2770,2772,2774,2777,2779,2781,2784,2787,2789,2791,2793,2795],{"class":1274,"line":1401},[1272,2749,1315],{"class":1278},[1272,2751,643],{"class":1282},[1272,2753,2165],{"class":1278},[1272,2755,771],{"class":1282},[1272,2757,2758],{"class":1286}," href",[1272,2760,1324],{"class":1278},[1272,2762,1328],{"class":1327},[1272,2764,2765],{"class":1331},"http://asp.net",[1272,2767,1328],{"class":1327},[1272,2769,1440],{"class":1286},[1272,2771,1324],{"class":1278},[1272,2773,1328],{"class":1327},[1272,2775,2776],{"class":1331},"btn btn-primary btn-large",[1272,2778,1328],{"class":1327},[1272,2780,1381],{"class":1278},[1272,2782,2783],{"class":1384},"Learn more ",[1272,2785,2786],{"class":1844},"&raquo;",[1272,2788,1388],{"class":1278},[1272,2790,771],{"class":1282},[1272,2792,1572],{"class":1278},[1272,2794,643],{"class":1282},[1272,2796,1290],{"class":1278},[1272,2798,2799,2801,2803],{"class":1274,"line":1407},[1272,2800,1388],{"class":1278},[1272,2802,1437],{"class":1282},[1272,2804,1290],{"class":1278},[1272,2806,2807],{"class":1274,"line":1413},[1272,2808,1410],{"emptyLinePlaceholder":352},[1272,2810,2811,2813,2815,2817,2819,2821,2824,2826],{"class":1274,"line":1422},[1272,2812,1295],{"class":1278},[1272,2814,1437],{"class":1282},[1272,2816,1440],{"class":1286},[1272,2818,1324],{"class":1278},[1272,2820,1328],{"class":1327},[1272,2822,2823],{"class":1331},"row",[1272,2825,1328],{"class":1327},[1272,2827,1290],{"class":1278},[1272,2829,2830,2832,2834,2836,2838,2840,2843,2845],{"class":1274,"line":1432},[1272,2831,1315],{"class":1278},[1272,2833,1437],{"class":1282},[1272,2835,1440],{"class":1286},[1272,2837,1324],{"class":1278},[1272,2839,1328],{"class":1327},[1272,2841,2842],{"class":1331},"col-md-4",[1272,2844,1328],{"class":1327},[1272,2846,1290],{"class":1278},[1272,2848,2849,2851,2854,2856,2859,2861,2863],{"class":1274,"line":1454},[1272,2850,1457],{"class":1278},[1272,2852,2853],{"class":1282},"h2",[1272,2855,1381],{"class":1278},[1272,2857,2858],{"class":1384},"Getting started",[1272,2860,1388],{"class":1278},[1272,2862,2853],{"class":1282},[1272,2864,1290],{"class":1278},[1272,2866,2867,2869,2871],{"class":1274,"line":1475},[1272,2868,1457],{"class":1278},[1272,2870,643],{"class":1282},[1272,2872,1290],{"class":1278},[1272,2874,2875],{"class":1274,"line":1496},[1272,2876,2877],{"class":1384},"            ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that\n",[1272,2879,2880],{"class":1274,"line":1553},[1272,2881,2882],{"class":1384},"            enables a clean separation of concerns and gives you full control over markup\n",[1272,2884,2885],{"class":1274,"line":1579},[1272,2886,2887],{"class":1384},"            for enjoyable, agile development.\n",[1272,2889,2890,2892,2894],{"class":1274,"line":1602},[1272,2891,1772],{"class":1278},[1272,2893,643],{"class":1282},[1272,2895,1290],{"class":1278},[1272,2897,2898,2900,2902,2904,2906,2908,2910,2912,2915,2917,2919,2921,2923,2926,2928,2930,2932,2934,2936,2938,2940,2942],{"class":1274,"line":1625},[1272,2899,1457],{"class":1278},[1272,2901,643],{"class":1282},[1272,2903,2165],{"class":1278},[1272,2905,771],{"class":1282},[1272,2907,1440],{"class":1286},[1272,2909,1324],{"class":1278},[1272,2911,1328],{"class":1327},[1272,2913,2914],{"class":1331},"btn btn-default",[1272,2916,1328],{"class":1327},[1272,2918,2758],{"class":1286},[1272,2920,1324],{"class":1278},[1272,2922,1328],{"class":1327},[1272,2924,2925],{"class":1331},"http://go.microsoft.com/fwlink/?LinkId=301865",[1272,2927,1328],{"class":1327},[1272,2929,1381],{"class":1278},[1272,2931,2783],{"class":1384},[1272,2933,2786],{"class":1844},[1272,2935,1388],{"class":1278},[1272,2937,771],{"class":1282},[1272,2939,1572],{"class":1278},[1272,2941,643],{"class":1282},[1272,2943,1290],{"class":1278},[1272,2945,2946,2948,2950],{"class":1274,"line":1635},[1272,2947,1782],{"class":1278},[1272,2949,1437],{"class":1282},[1272,2951,1290],{"class":1278},[1272,2953,2954,2956,2958,2960,2962,2964,2966,2968],{"class":1274,"line":1641},[1272,2955,1315],{"class":1278},[1272,2957,1437],{"class":1282},[1272,2959,1440],{"class":1286},[1272,2961,1324],{"class":1278},[1272,2963,1328],{"class":1327},[1272,2965,2842],{"class":1331},[1272,2967,1328],{"class":1327},[1272,2969,1290],{"class":1278},[1272,2971,2972,2974,2976,2978,2981,2983,2985],{"class":1274,"line":1651},[1272,2973,1457],{"class":1278},[1272,2975,2853],{"class":1282},[1272,2977,1381],{"class":1278},[1272,2979,2980],{"class":1384},"Get more libraries",[1272,2982,1388],{"class":1278},[1272,2984,2853],{"class":1282},[1272,2986,1290],{"class":1278},[1272,2988,2989,2991,2993,2995,2998,3000,3002],{"class":1274,"line":1671},[1272,2990,1457],{"class":1278},[1272,2992,643],{"class":1282},[1272,2994,1381],{"class":1278},[1272,2996,2997],{"class":1384},"NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.",[1272,2999,1388],{"class":1278},[1272,3001,643],{"class":1282},[1272,3003,1290],{"class":1278},[1272,3005,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024,3026,3028,3030,3033,3035,3037,3039,3041,3043,3045,3047,3049],{"class":1274,"line":1691},[1272,3007,1457],{"class":1278},[1272,3009,643],{"class":1282},[1272,3011,2165],{"class":1278},[1272,3013,771],{"class":1282},[1272,3015,1440],{"class":1286},[1272,3017,1324],{"class":1278},[1272,3019,1328],{"class":1327},[1272,3021,2914],{"class":1331},[1272,3023,1328],{"class":1327},[1272,3025,2758],{"class":1286},[1272,3027,1324],{"class":1278},[1272,3029,1328],{"class":1327},[1272,3031,3032],{"class":1331},"http://go.microsoft.com/fwlink/?LinkId=301866",[1272,3034,1328],{"class":1327},[1272,3036,1381],{"class":1278},[1272,3038,2783],{"class":1384},[1272,3040,2786],{"class":1844},[1272,3042,1388],{"class":1278},[1272,3044,771],{"class":1282},[1272,3046,1572],{"class":1278},[1272,3048,643],{"class":1282},[1272,3050,1290],{"class":1278},[1272,3052,3053,3055,3057],{"class":1274,"line":1709},[1272,3054,1782],{"class":1278},[1272,3056,1437],{"class":1282},[1272,3058,1290],{"class":1278},[1272,3060,3061,3063,3065,3067,3069,3071,3073,3075],{"class":1274,"line":1727},[1272,3062,1315],{"class":1278},[1272,3064,1437],{"class":1282},[1272,3066,1440],{"class":1286},[1272,3068,1324],{"class":1278},[1272,3070,1328],{"class":1327},[1272,3072,2842],{"class":1331},[1272,3074,1328],{"class":1327},[1272,3076,1290],{"class":1278},[1272,3078,3079,3081,3083,3085,3088,3090,3092],{"class":1274,"line":1745},[1272,3080,1457],{"class":1278},[1272,3082,2853],{"class":1282},[1272,3084,1381],{"class":1278},[1272,3086,3087],{"class":1384},"Web Hosting",[1272,3089,1388],{"class":1278},[1272,3091,2853],{"class":1282},[1272,3093,1290],{"class":1278},[1272,3095,3096,3098,3100,3102,3105,3107,3109],{"class":1274,"line":1754},[1272,3097,1457],{"class":1278},[1272,3099,643],{"class":1282},[1272,3101,1381],{"class":1278},[1272,3103,3104],{"class":1384},"You can easily find a web hosting company that offers the right mix of features and price for your applications.",[1272,3106,1388],{"class":1278},[1272,3108,643],{"class":1282},[1272,3110,1290],{"class":1278},[1272,3112,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3140,3142,3144,3146,3148,3150,3152,3154,3156],{"class":1274,"line":1760},[1272,3114,1457],{"class":1278},[1272,3116,643],{"class":1282},[1272,3118,2165],{"class":1278},[1272,3120,771],{"class":1282},[1272,3122,1440],{"class":1286},[1272,3124,1324],{"class":1278},[1272,3126,1328],{"class":1327},[1272,3128,2914],{"class":1331},[1272,3130,1328],{"class":1327},[1272,3132,2758],{"class":1286},[1272,3134,1324],{"class":1278},[1272,3136,1328],{"class":1327},[1272,3138,3139],{"class":1331},"http://go.microsoft.com/fwlink/?LinkId=301867",[1272,3141,1328],{"class":1327},[1272,3143,1381],{"class":1278},[1272,3145,2783],{"class":1384},[1272,3147,2786],{"class":1844},[1272,3149,1388],{"class":1278},[1272,3151,771],{"class":1282},[1272,3153,1572],{"class":1278},[1272,3155,643],{"class":1282},[1272,3157,1290],{"class":1278},[1272,3159,3160,3162,3164],{"class":1274,"line":1769},[1272,3161,1782],{"class":1278},[1272,3163,1437],{"class":1282},[1272,3165,1290],{"class":1278},[1272,3167,3168,3170,3172],{"class":1274,"line":1779},[1272,3169,1388],{"class":1278},[1272,3171,1437],{"class":1282},[1272,3173,1290],{"class":1278},[655,3175,3176],{},[658,3177,3178],{},"4.satıra",[1264,3180,3182],{"className":1266,"code":3181,"language":1268,"meta":346,"style":346},"@section deneme{\n\u003Cspan>\nDeneme Section\n\u003C/span>\n}\n",[799,3183,3184,3189,3197,3202,3210],{"__ignoreMap":346},[1272,3185,3186],{"class":1274,"line":1275},[1272,3187,3188],{"class":1384},"@section deneme{\n",[1272,3190,3191,3193,3195],{"class":1274,"line":347},[1272,3192,1295],{"class":1278},[1272,3194,1272],{"class":1282},[1272,3196,1290],{"class":1278},[1272,3198,3199],{"class":1274,"line":1302},[1272,3200,3201],{"class":1384},"Deneme Section\n",[1272,3203,3204,3206,3208],{"class":1274,"line":1312},[1272,3205,1388],{"class":1278},[1272,3207,1272],{"class":1282},[1272,3209,1290],{"class":1278},[1272,3211,3212],{"class":1274,"line":1340},[1272,3213,2677],{"class":1384},[643,3215,3216],{},"kısmını ekleyin. Projeyi yeniden çalıştırın. Görüldüğü gibi sayfanın alt kısmında Deneme Section yazısı görünmekte. About, Contact gibi diğer sayfalara gittiğinizde eklenen yazı çıkmadı.",[655,3218,3219],{},[658,3220,3221,3222,1162,3224,3227],{},"Şimdi de ",[646,3223,1161],{},[646,3225,3226],{},"Views>Home>About.cshtml"," dosyamızı açalım. Aşağıdaki gibi bir görünümle karşılaşacağız.Asp.Net Mvc'nin sürümüne ya da projeye göre değişiklik gösterebilir.",[1264,3229,3231],{"className":1266,"code":3230,"language":1268,"meta":346,"style":346},"@{\n    ViewBag.Title = \"About\";\n}\n\n\u003Ch2>@ViewBag.Title.\u003C/h2>\n\u003Ch3>@ViewBag.Message\u003C/h3>\n\n\u003Cp>Use this area to provide additional information.\u003C/p>\n",[799,3232,3233,3237,3242,3246,3250,3267,3285,3289],{"__ignoreMap":346},[1272,3234,3235],{"class":1274,"line":1275},[1272,3236,2667],{"class":1384},[1272,3238,3239],{"class":1274,"line":347},[1272,3240,3241],{"class":1384},"    ViewBag.Title = \"About\";\n",[1272,3243,3244],{"class":1274,"line":1302},[1272,3245,2677],{"class":1384},[1272,3247,3248],{"class":1274,"line":1312},[1272,3249,1410],{"emptyLinePlaceholder":352},[1272,3251,3252,3254,3256,3258,3261,3263,3265],{"class":1274,"line":1340},[1272,3253,1295],{"class":1278},[1272,3255,2853],{"class":1282},[1272,3257,1381],{"class":1278},[1272,3259,3260],{"class":1384},"@ViewBag.Title.",[1272,3262,1388],{"class":1278},[1272,3264,2853],{"class":1282},[1272,3266,1290],{"class":1278},[1272,3268,3269,3271,3274,3276,3279,3281,3283],{"class":1274,"line":1373},[1272,3270,1295],{"class":1278},[1272,3272,3273],{"class":1282},"h3",[1272,3275,1381],{"class":1278},[1272,3277,3278],{"class":1384},"@ViewBag.Message",[1272,3280,1388],{"class":1278},[1272,3282,3273],{"class":1282},[1272,3284,1290],{"class":1278},[1272,3286,3287],{"class":1274,"line":1395},[1272,3288,1410],{"emptyLinePlaceholder":352},[1272,3290,3291,3293,3295,3297,3300,3302,3304],{"class":1274,"line":1401},[1272,3292,1295],{"class":1278},[1272,3294,643],{"class":1282},[1272,3296,1381],{"class":1278},[1272,3298,3299],{"class":1384},"Use this area to provide additional information.",[1272,3301,1388],{"class":1278},[1272,3303,643],{"class":1282},[1272,3305,1290],{"class":1278},[655,3307,3308],{},[658,3309,3310],{},"6. satıra,",[1264,3312,3314],{"className":1266,"code":3313,"language":1268,"meta":346,"style":346},"@section deneme{\n\u003Cspan>\nAbout Section\n\u003C/span>\n}\n",[799,3315,3316,3320,3328,3333,3341],{"__ignoreMap":346},[1272,3317,3318],{"class":1274,"line":1275},[1272,3319,3188],{"class":1384},[1272,3321,3322,3324,3326],{"class":1274,"line":347},[1272,3323,1295],{"class":1278},[1272,3325,1272],{"class":1282},[1272,3327,1290],{"class":1278},[1272,3329,3330],{"class":1274,"line":1302},[1272,3331,3332],{"class":1384},"About Section\n",[1272,3334,3335,3337,3339],{"class":1274,"line":1312},[1272,3336,1388],{"class":1278},[1272,3338,1272],{"class":1282},[1272,3340,1290],{"class":1278},[1272,3342,3343],{"class":1274,"line":1340},[1272,3344,2677],{"class":1384},[643,3346,3347,3348,3351,3352,3355],{},"kısmını ekleyelim. Projemizi yeniden çalıştıralım. Ana sayfada ",[646,3349,3350],{},"Deneme Section"," yazısını, About sayfasında ise ",[646,3353,3354],{},"About Section"," yazısını görüyoruz. Buradan da anlaşılabileceği gibi, Layout sayfası her sayfa da aynı şekil de görünürken, Section mimarisinde her sayfada farklı veri gösterebiliyoruz.",[643,3357,3358],{},"Özet olarak, bizlere veri koyabileceğimiz, sabit pozisyonlar tanımlamamıza imkan veriyor. Bir diğer önemli faydası ise, Section'ları eklediğimiz sayfaların Layout sayfası değil neresine Section'u eklersek ekleyelim, yine de Layout'taki konumda görüntülenir. Yani sayfa içerisinde herhangi bir yerde @section {} blogları arasına yazdığımız kodlar, Layout'taki RenderSection komutunun çağrıldığı yerde sayfaya basılır.",[643,3360,3361,3362,3365],{},"Bir yazımızın daha sonuna geldik. Sonraki dersimizde ise ",[646,3363,3364],{},"Render Page"," konusunu işleyeceğiz.  Hepinize kolaylıklar diliyorum.",[1978,3367,1980],{},{"title":346,"searchDepth":347,"depth":347,"links":3369},[],"2013/12/2013-12-09-11_41_13-Home-Page-My-ASP.NET-Application.jpg","2013-12-09T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc Layout Sayfaları (Asp.Net Mvc Yazı Dizisi – 4)",{},{"title":63,"description":3372},"iwXzLoleXoiketnZtF6JCuGDEgmUkuNTJdpNxMfxVcs",{"id":3377,"title":59,"body":3378,"coverImage":3691,"createDate":3692,"description":3693,"extension":350,"meta":3694,"navigation":352,"path":60,"seo":3695,"stem":61,"__hash__":3696},"posts/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-render-page-asp-net-mvc-yazi-dizisi-6.md",{"type":343,"value":3379,"toc":3689},[3380,3383,3391,3393,3396,3403,3406,3409,3425,3431,3434,3440,3446,3452,3458,3475,3490,3528,3533,3640,3643,3650,3656,3659,3666,3669,3675,3678,3684,3686],[639,3381,59],{"id":3382},"aspnet-mvc-layout-sayfaları-render-page-aspnet-mvc-yazı-dizisi-6",[643,3384,3385],{},[646,3386,769,3387],{},[771,3388,3390],{"href":64,"title":3389},"Önceki yazı","Asp.Net Mvc Layout Sayfaları – Render Section (Asp.Net Mvc Yazı Dizisi – 5)",[643,3392,861],{},[643,3394,3395],{},"Önceki yazımızda, Render Section ile tasarım yaparken, nasıl parçalı tasarım yapabileceğimizi inceledik. Faydalarını gördük. Şimdi ise Render Page konusunu işliyor olacağız.",[655,3397,3398],{},[658,3399,3400],{},[646,3401,3402],{},"Peki bu Render Page nedir, ne iş yapar?",[643,3404,3405],{},"Bir sayfanın, bir kısmının içeriğine, başka bir sayfanın içeriğinin tamamını gömmemize yarar. Buna Html tarafında ki Iframe olayını örnek olarak verebiliriz. Ancak bu Render Page metodunda harici sayfa, gömülen sayfanın doğal bir içeriği gibi görünür. Bu yüzden SEO açısından da avantajlıdır. Hayal gücümüzü biraz kullandığımızda web sitesini, tarayıcı gibi bile kullanabilir, dinamik olarak sayfaları çağırabiliriz.",[643,3407,3408],{},"Şimdi bir örnek yapalım;",[655,3410,3411,3414],{},[658,3412,3413],{},"Önceki yazılarımızda oluşturduğumuz projemizi açalım.",[658,3415,3416,3418,3419,1107,3422,1111],{},[646,3417,1161],{}," kısmı altından ",[646,3420,3421],{},"Views>Home",[646,3423,3424],{},"Add>View",[643,3426,3427],{},[895,3428],{"alt":3429,"src":3430},"View ekleme ekranı","/images/2013/12/2013-12-11-11_51_07-Add-View.jpg",[643,3432,3433],{},"Yukarıda ki resimde ki ekranı biraz inceleyelim.",[643,3435,3436,3439],{},[646,3437,3438],{},"View Name :"," View'imizin adını teşkil etmektedir.",[643,3441,3442,3445],{},[646,3443,3444],{},"Template :"," Buradan View'imizin içerik tipini seçebiliriz. Detaylarını ilerleyen yazılarımızda inceleyeceğiz.",[643,3447,3448,3451],{},[646,3449,3450],{},"Model Class ve Data Context Class :"," Template kısmından veri kaynaklı bir tip seçtiğimizde aktif olmaktadır. Buradan, hangi kaynaktan veriyi çekeceğimizi belirleriz. Bunu da ilerleyen yazılarda inceleyeceğiz.",[643,3453,3454,3457],{},[646,3455,3456],{},"Create as a partial view :"," Eğer işaretliyse, View'imizin parçalı olmasını sağlar. Partial View konusunu bir sonraki yazımızda inceleyeceğiz.",[643,3459,3460,3463,3464,3467,3468,3470,3471,3474],{},[646,3461,3462],{},"Use a layout page :"," Eklediğimiz sayfada ",[771,3465,3466],{"href":52},"şu yazımızda"," incelemiş olduğumuz Layout'lardan istediğimizi seçip kullanmamızı sağlayan özelliktir. Alt kutulu alan boş bırakılırsa, ",[646,3469,1161],{}," kısmı altında ki ",[646,3472,3473],{},"Views>_ViewStart.cshtml"," dosyasında belirtilen yoldaki Layout'u uygular.",[655,3476,3477,3487],{},[658,3478,3479,3480,3483,3484,3486],{},"View Name'mize ",[646,3481,3482],{},"RenderPageSayfa"," yazıp ",[646,3485,1129],{}," tuşuna tıklayalım.",[658,3488,3489],{},"Aşağıda ki kodların olduğu sayfa açıldı.",[1264,3491,3493],{"className":1266,"code":3492,"language":1268,"meta":346,"style":346},"@{\n    ViewBag.Title = \"RenderPageSayfa\";\n}\n\n\u003Ch2>RenderPageSayfa\u003C/h2>\n",[799,3494,3495,3499,3504,3508,3512],{"__ignoreMap":346},[1272,3496,3497],{"class":1274,"line":1275},[1272,3498,2667],{"class":1384},[1272,3500,3501],{"class":1274,"line":347},[1272,3502,3503],{"class":1384},"    ViewBag.Title = \"RenderPageSayfa\";\n",[1272,3505,3506],{"class":1274,"line":1302},[1272,3507,2677],{"class":1384},[1272,3509,3510],{"class":1274,"line":1312},[1272,3511,1410],{"emptyLinePlaceholder":352},[1272,3513,3514,3516,3518,3520,3522,3524,3526],{"class":1274,"line":1340},[1272,3515,1295],{"class":1278},[1272,3517,2853],{"class":1282},[1272,3519,1381],{"class":1278},[1272,3521,3482],{"class":1384},[1272,3523,1388],{"class":1278},[1272,3525,2853],{"class":1282},[1272,3527,1290],{"class":1278},[655,3529,3530],{},[658,3531,3532],{},"Sayfamızın en altına ",[1264,3534,3536],{"className":1266,"code":3535,"language":1268,"meta":346,"style":346},"\u003Ch3>Kategori Sayfası\u003C/h3>\n\u003Ch5>Kategori Listesi\u003C/h5>\n\u003Cul>\n    \u003Cli>C#\u003C/li>\n    \u003Cli>Php\u003C/li>\n    \u003Cli>Java\u003C/li>\n\u003C/ul>\n",[799,3537,3538,3555,3573,3581,3598,3615,3632],{"__ignoreMap":346},[1272,3539,3540,3542,3544,3546,3549,3551,3553],{"class":1274,"line":1275},[1272,3541,1295],{"class":1278},[1272,3543,3273],{"class":1282},[1272,3545,1381],{"class":1278},[1272,3547,3548],{"class":1384},"Kategori Sayfası",[1272,3550,1388],{"class":1278},[1272,3552,3273],{"class":1282},[1272,3554,1290],{"class":1278},[1272,3556,3557,3559,3562,3564,3567,3569,3571],{"class":1274,"line":347},[1272,3558,1295],{"class":1278},[1272,3560,3561],{"class":1282},"h5",[1272,3563,1381],{"class":1278},[1272,3565,3566],{"class":1384},"Kategori Listesi",[1272,3568,1388],{"class":1278},[1272,3570,3561],{"class":1282},[1272,3572,1290],{"class":1278},[1272,3574,3575,3577,3579],{"class":1274,"line":1302},[1272,3576,1295],{"class":1278},[1272,3578,655],{"class":1282},[1272,3580,1290],{"class":1278},[1272,3582,3583,3585,3587,3589,3592,3594,3596],{"class":1274,"line":1312},[1272,3584,1315],{"class":1278},[1272,3586,658],{"class":1282},[1272,3588,1381],{"class":1278},[1272,3590,3591],{"class":1384},"C#",[1272,3593,1388],{"class":1278},[1272,3595,658],{"class":1282},[1272,3597,1290],{"class":1278},[1272,3599,3600,3602,3604,3606,3609,3611,3613],{"class":1274,"line":1340},[1272,3601,1315],{"class":1278},[1272,3603,658],{"class":1282},[1272,3605,1381],{"class":1278},[1272,3607,3608],{"class":1384},"Php",[1272,3610,1388],{"class":1278},[1272,3612,658],{"class":1282},[1272,3614,1290],{"class":1278},[1272,3616,3617,3619,3621,3623,3626,3628,3630],{"class":1274,"line":1373},[1272,3618,1315],{"class":1278},[1272,3620,658],{"class":1282},[1272,3622,1381],{"class":1278},[1272,3624,3625],{"class":1384},"Java",[1272,3627,1388],{"class":1278},[1272,3629,658],{"class":1282},[1272,3631,1290],{"class":1278},[1272,3633,3634,3636,3638],{"class":1274,"line":1395},[1272,3635,1388],{"class":1278},[1272,3637,655],{"class":1282},[1272,3639,1290],{"class":1278},[643,3641,3642],{},"içeriğini ekleyelim ve sayfamızı kaydedelim.",[655,3644,3645],{},[658,3646,3647,3649],{},[646,3648,2657],{}," dosyasını açalım. Sayfanın el altına aşağıdaki",[1264,3651,3654],{"className":3652,"code":3653,"language":2600},[2598],"@RenderPage(\"~/Views/Home/RenderPageSayfa.cshtml\")\n",[799,3655,3653],{"__ignoreMap":346},[643,3657,3658],{},"kod bloğunu ekleyelim.",[643,3660,3661,3662,3665],{},"Burada dikkat ederseniz, gömülecek olan dosyanın tam yolu girilmektedir. ",[646,3663,3664],{},"\"~\""," karakteri ise ana dizini işaret etmekte, sonraki gelen kısımlar ise en üst dizinden, alta doğru yolu göstermektedir. Bu karakter Asp.Net'e özel bir karakter olup, Html ile ilgisi yoktur.",[643,3667,3668],{},"Evet eklememizi yaptıktan sonra, sayfamızı kaydedelim ve projemizi çalıştıralım.",[643,3670,3671],{},[895,3672],{"alt":3673,"src":3674},"Render pagenin sayfada görüntülenmesi","/images/2013/12/2013-12-11-12_21_35-Home-Page-My-ASP.NET-Application-1024x509.jpg",[643,3676,3677],{},"Görüldüğü gibi, sayfamıza bir başka sayfayı gömmüş olduk.",[643,3679,3361,3680,3683],{},[646,3681,3682],{},"Partial View"," konusunu işleyeceğiz. ",[643,3685,1976],{},[1978,3687,3688],{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":346,"searchDepth":347,"depth":347,"links":3690},[],"2013/12/2013-12-11-11_51_07-Add-View.jpg","2013-12-11T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc Layout Sayfaları – Render Section (Asp.Net Mvc Yazı Dizisi – 5)",{},{"title":59,"description":3693},"jtLxx1Iv9BZh2RKqjzs1hmxtQsYcW9si1dfKnnuUvAI",{"id":3698,"title":55,"body":3699,"coverImage":3840,"createDate":3841,"description":3842,"extension":350,"meta":3843,"navigation":352,"path":56,"seo":3844,"stem":57,"__hash__":3845},"posts/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-partial-view-asp-net-mvc-yazi-dizisi-7.md",{"type":343,"value":3700,"toc":3838},[3701,3704,3710,3712,3721,3731,3734,3753,3759,3766,3790,3805,3813,3819,3826,3829,3836],[639,3702,55],{"id":3703},"aspnet-mvc-layout-sayfaları-partial-view-aspnet-mvc-yazı-dizisi-7",[643,3705,3706],{},[646,3707,769,3708],{},[771,3709,59],{"href":60,"title":3389},[643,3711,861],{},[643,3713,3714,3715,3717,3718,3720],{},"Önceki dersimizde ",[646,3716,3364],{}," konusunu işlemiştik. Bu dersimizde ise ",[646,3719,3682],{}," konusunu işliyor olacağız. Öncelikle genel bir tanım yapmakta fayda var.",[643,3722,3723,3726,3727,3730],{},[646,3724,3725],{},"Partial View :"," Sayfaların istediğimiz kısmına rahatça ekleyebileceğimiz, özel işlevleri yerine getirebilen, ancak kendi başına çalışmayan, bir sayfanın içerisinde entegre halde çalışan kısımlardır. Bir kere yazıp, aynı viewi istediğimiz kadar kullanma imkanına sahip oluruz. Asp.Net Web Forms mimarisinde ki karşılığı ",[646,3728,3729],{},"User Control","'dür.",[643,3732,3733],{},"Genel tanımımızı da yaptıktan sonra, daha iyi anlayabilmek için hemen örneğimize geçelim.",[655,3735,3736,3742],{},[658,3737,3738,3739,3741],{},"Önceki derslerimizde kullandığımız ",[646,3740,2024],{}," adlı projemizi açalım.",[658,3743,3744,3746,3747,3749,3750,3752],{},[646,3745,1161],{}," altında ",[646,3748,3421],{}," üzerine sağ tıklayarak ",[646,3751,3424],{}," seçelim. Çıkan ekrana bir göz gezdirelim.",[643,3754,3755],{},[895,3756],{"alt":3757,"src":3758},"Partial view ekleme","/images/2013/12/2013-12-16-11_07_42-Add-View.jpg",[643,3760,3761,3762,3765],{},"Burada ki önemli nokta ",[646,3763,3764],{},"Create as a partial view"," kutucuğunun işaretlenmiş olmasıdır. Böylelikle ekleyeceğimiz View'in Partial View olacağını belirtmiş oluyoruz. ",[655,3767,3768,3784,3787],{},[658,3769,3770,3771,3774,3775,3777,3778,3781,3782,3486],{},"Resimde de görüldüğü gibi ",[646,3772,3773],{},"Create as partial view"," kutucuğunu işaretleyip ",[646,3776,914],{}," kısmına ise ",[646,3779,3780],{},"DenemePartial"," yazıp, ",[646,3783,1129],{},[658,3785,3786],{},"Boş bir sayfa açıldı. Dikkat ederseniz, herhangi bir Layout tanımı yok. Tamamen bağımsız bir yapı var karşımızda.",[658,3788,3789],{},"Şimdi ise içeriğine aşağıdaki kodlarımızı ekleyelim.",[1437,3791,3792,3793],{},"\n    ",[655,3794,3795,3796,3795,3799,3795,3802,3792],{},"\n        ",[658,3797,3798],{},"Ana Sayfa",[658,3800,3801],{},"Hakkımızda",[658,3803,3804],{},"İletişim",[655,3806,3807],{},[658,3808,3809,3810,3812],{},"Dosyamızı kaydettikten sonra, ",[646,3811,2657],{}," dosyasını açalım. Açtığımız sayfanın en altına,",[1264,3814,3817],{"className":3815,"code":3816,"language":2600},[2598],"@Html.Partial(\"DenemePartial\")\n",[799,3818,3816],{"__ignoreMap":346},[643,3820,3821,3822,3825],{},"satırını ekleyelim. Ardından projemizi çalıştıralım. Ana sayfa açıldığı zaman aşağıdaki resimde ki gibi Partial View'imizin eklendiğini görebiliriz. ",[799,3823,3824],{},"@Html.Partial(\"Partial Adı\")"," satırını eklediğimiz herhangi bir yerde, otomatik olarak Partial View'in içeriği görüntülenecektir. Böylelikle modüler yapılar hazırlayabilir, yapılacak değişiklikleri tek seferde uygulayarak, her sayfada otomatik güncellenmesini sağlayabiliriz.",[643,3827,3828],{},"Bunun yanında sadece görsel değil, sunucu taraflı işlemleri de Partial View içerisinde uygulayabiliriz. Bunlarla alakalı detaylı bilgiler, ilerleyen derslerde verilecektir.",[643,3830,3831,3832,3835],{},"Bir yazımızın daha sonuna geldik. Sonraki dersimizde ise 2 bölümlük ",[646,3833,3834],{},"Razor View Engine"," konusunun ilkini işleyeceğiz. ",[643,3837,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":3839},[],"2013/12/2013-12-16-11_07_42-Add-View.jpg","2013-12-16T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc Layout Sayfaları - Render Page (Asp.Net Mvc Yazı Dizisi – 6)",{},{"title":55,"description":3842},"1ikayjw8KZ8JIE5J3ITNZW0Ia23oI-iZL2jtEReO62c",{"id":3847,"title":71,"body":3848,"coverImage":4158,"createDate":4159,"description":4160,"extension":350,"meta":4161,"navigation":352,"path":72,"seo":4162,"stem":73,"__hash__":4163},"posts/dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-1-asp-net-mvc-yazi-dizisi-8.md",{"type":343,"value":3849,"toc":4156},[3850,3853,3859,3861,3872,3878,3892,3895,3898,3906,3909,3914,3928,3931,3937,3944,3947,3953,3956,3961,3967,3973,3976,3982,3989,3994,3997,4003,4006,4009,4015,4018,4023,4026,4087,4104,4113,4116,4122,4125,4130,4133,4136,4142,4145,4152,4154],[639,3851,71],{"id":3852},"aspnet-mvc-razor-view-engine-bölüm-1-aspnet-mvc-yazı-dizisi-8",[643,3854,3855],{},[646,3856,769,3857],{},[771,3858,55],{"href":56,"title":3389},[643,3860,861],{},[643,3862,3863,3864,3867,3868,3871],{},"Önceki yazılarımızda Mvc'yi genel olarak tanımış, daha sonra da Layout sistemini öğrenmiştik. Bu yazımızda ise Asp.Net Mvc'deki ",[646,3865,3866],{},"View Engine","'lere kısaca değinip, en yaygun kullanıma sahip olanı olan ",[646,3869,3870],{},"Razor","'a geçiş yapacağız. Öncelikle View Engine nedir? Kısa bir tanım yapalım.",[643,3873,3874,3877],{},[646,3875,3876],{},"View Engine :"," Html sayfalarının içerisine, sunucu taraflı kodlar gömmemizi sağlayan (C#, Vb.Net gibi), bu kodları istemciye gönderilmeden ayrıştırıp, gerekli şekilde işleyen, görüntüleme ve işleme motorudur.",[643,3879,3880,3881,3884,3885,3888,3889,3891],{},"Aslında bu yapı, klasik ",[646,3882,3883],{},"Asp"," yapılarında, ",[646,3886,3887],{},"JSF","'de ve ",[646,3890,3608],{},"'de kullanılmaktadır.Bu noktada diğer yapılara karşılık farkettiğim avantaj, Asp.Net Mvc'nin tamamen html tagları üzerinden çalışabilmesidir. ",[643,3893,3894],{},"Yeniden Asp.Net tarafına dönecek olursak, ilk 2 Mvc sürümünde Asp.Net Web Forms'ta da kullanılan, Aspx kodlama yapısı kullanılmış olup, 3. sürümüyle birlikte Razor sistemi tanıtılmıştır. Bunların haricinde 3. parti olarak yüklenebilecek Spark, Nhaml gibi View Engine'ler de bulunmaktadır.",[643,3896,3897],{},"Razor sistemi Aspx yapısınıdan sonra, kodlamayı çok kolaylaştıran, çok sadeleştiren ve çok hızlandıran (tuş kombinasyonları açısından) bir yapıdır. Microsoft şu an, tamamen bu yapıya yatırım yapmaktadır. Zamanla yeni sürümler çıkarmaktadır. Şahsi olarak, kesinlikle Razor'u tavsiye ediyorum. Şimdi sistemin biraz daha kod yapısına dönelim.",[643,3899,3900,3901,3905],{},"Herhangi bir Mvc projesi açıp, bir View sayfasına girelim.(Nasıl yapılacağına ",[771,3902,3904],{"href":3903},"/dersler/asp-net-mvc/ilk-asp-net-mvc-projesinin-olusturulmasi-asp-net-mvc-yazi-dizisi-3/","şu yazımızdan"," bakabilirsiniz.)",[643,3907,3908],{},"Razor sisteminde, sunucu taraflı kod yazdığımızda, sayfa tarayıcıya gönderilmeden önce, Razor sayfayı inceler ve sunucu taraflı kısımlarla ilgili işlemleri sunucu tarafında yapar. (Henüz tarayıcıya bir gönderim yapılmadı.) Sunucu işlemleri bitirdikten sonra, (bu noktada sunucu işlemleri neticesinde, html içerik üretilip, sayfanın çeşitli yerlerine yerleştirilebilir) halihazırda bulunan ve sonradan eklenen html içeriği tarayıcıya gönderilir. Tarayıcı, sunucu taraflı kodları hiç bir şekilde göremez.",[643,3910,3911],{},[646,3912,3913],{},"@ Operatörü",[643,3915,3916,3917,3922,3923,3927],{},"Elimizde html standartlarına uygun bir View sayfası olduğundaiz bu sayfaya sunucu taraflı kod yazacağımız zaman, bunu Razor'a bildirmemiz gerekmektedir. Bunun için ",[646,3918,3919],{},[799,3920,3921],{},"@"," işaretini koyarak sunucu kodumuzu yazmaya başlarız. ",[646,3924,3925],{},[799,3926,3921],{}," operatörünü gören Razor devam eden kısmın sunucu taraflı kod olduğunu algılayarak, sunucu taraflı olarak değerlendirir.",[643,3929,3930],{},"Örneğin sayfanın herhangi bir kısmına",[1264,3932,3935],{"className":3933,"code":3934,"language":2600},[2598],"@DateTime.Now\n",[799,3936,3934],{"__ignoreMap":346},[643,3938,3939,3940,3943],{},"satırını ekleyip, sayfayı çalıştırırsak, o kısımda o anki tarihin çıktığını görürüz. Dikkat edileceği üzere aslında o kısma yazdığımız kod C# kodu idi. Bu kod satırı ile ilgili bir diğer önemli nokta, yazılan tarih sunucunun tarihi olacaktır, tarayıcının tarihi değil. Çünkü bu satır sunucuda çalışacaktır (",[646,3941,3942],{},"ki burası çok önemli bir noktadır)"," .",[643,3945,3946],{},"Dikkat çeken bir diğer önemli nokta, kodun yalnızca başlangıcını belirtmemizin yeterli olup, bitişini belirtmemize gerek kalmamasıdır. (Tek satırlık kodlar için geçerlidir.) Aspx ile yazacak olsaydık;",[1264,3948,3951],{"className":3949,"code":3950,"language":2600},[2598],"\u003C%:DateTime.Now%>\n",[799,3952,3950],{"__ignoreMap":346},[643,3954,3955],{},"şeklinde yazacaktık ki bu ekstra kod yazımı olacaktı.",[643,3957,3958],{},[646,3959,3960],{},"Tek Satırlı Kod Bloğu",[643,3962,3963,3964,3966],{},"Yukarıda ki kod kısmında tek bir değişken kullanmıştık. Değişken bitişik bir yazıma sahipti. Bu yüzden başına sadece ",[799,3965,3921],{}," koyarak yazımımızı yapabilmiştik.",[1264,3968,3971],{"className":3969,"code":3970,"language":2600},[2598],"@string yazimDili=\"Php\";\n",[799,3972,3970],{"__ignoreMap":346},[643,3974,3975],{},"şeklinde bir yazım da bulunursak, hata ile karşılaşacağız. Çünkü kod satırı bitişik değil. Bunun çözümü için;",[1264,3977,3980],{"className":3978,"code":3979,"language":2600},[2598],"@{string yazimDili=\"Php\";}\n",[799,3981,3979],{"__ignoreMap":346},[643,3983,3984,3985,3988],{},"şeklinde yazarsak, hiç bir hata ile karşılaşmayacağız. Yani kodumuzu ",[799,3986,3987],{},"@{...}"," arasına yazmamız gerekmektedir.",[643,3990,3991],{},[646,3992,3993],{},"Çok Satırlı Kod Blokları",[643,3995,3996],{},"Birden çok satıra sahip kodlar yazacağımız zaman aşağıdaki yazımı kullanmalıyız;",[1264,3998,4001],{"className":3999,"code":4000,"language":2600},[2598],"@{\nstring yazimDili=\"Php\";\nstring asilDil=yazimDili;\n}\n",[799,4002,4000],{"__ignoreMap":346},[643,4004,4005],{},"Dikkat edileceği üzere, @{...} kısımları arasına kullandığımız dilde (C#, Vb.Net vb.) , sanki kod arkası kısımda yazar gibi rahatlıkla kodlarımızı yazabiliyoruz.",[643,4007,4008],{},"Kod blokları içerisinde bulunan boşluk karakteri, sistemin çalışmasını etkilemez.",[1264,4010,4013],{"className":4011,"code":4012,"language":2600},[2598],"@{\n    string ad = \"abdurrahman\";\n}\n",[799,4014,4012],{"__ignoreMap":346},[643,4016,4017],{},"bu tarz bir yapı, herhangi bir hata vermeden çalışacaktır.",[643,4019,4020],{},[646,4021,4022],{},"Değişkenler",[643,4024,4025],{},"Sistemde tanımladığımız sunucu taraflı değişkenleri, sayfanın istenilen alanlarında kullanmakta özgürüz. Aşağıdaki örneği inceleyelim;",[1264,4027,4029],{"className":1266,"code":4028,"language":1268,"meta":346,"style":346},"@{\nbyte adet=5;\nint toplam=adet * 5;\n}\n\n\u003Ch3>Sayfa Adeti\u003C/h3>\n\u003Cspan>@toplam\u003C/span>\n",[799,4030,4031,4035,4040,4045,4049,4053,4070],{"__ignoreMap":346},[1272,4032,4033],{"class":1274,"line":1275},[1272,4034,2667],{"class":1384},[1272,4036,4037],{"class":1274,"line":347},[1272,4038,4039],{"class":1384},"byte adet=5;\n",[1272,4041,4042],{"class":1274,"line":1302},[1272,4043,4044],{"class":1384},"int toplam=adet * 5;\n",[1272,4046,4047],{"class":1274,"line":1312},[1272,4048,2677],{"class":1384},[1272,4050,4051],{"class":1274,"line":1340},[1272,4052,1410],{"emptyLinePlaceholder":352},[1272,4054,4055,4057,4059,4061,4064,4066,4068],{"class":1274,"line":1373},[1272,4056,1295],{"class":1278},[1272,4058,3273],{"class":1282},[1272,4060,1381],{"class":1278},[1272,4062,4063],{"class":1384},"Sayfa Adeti",[1272,4065,1388],{"class":1278},[1272,4067,3273],{"class":1282},[1272,4069,1290],{"class":1278},[1272,4071,4072,4074,4076,4078,4081,4083,4085],{"class":1274,"line":1395},[1272,4073,1295],{"class":1278},[1272,4075,1272],{"class":1282},[1272,4077,1381],{"class":1278},[1272,4079,4080],{"class":1384},"@toplam",[1272,4082,1388],{"class":1278},[1272,4084,1272],{"class":1282},[1272,4086,1290],{"class":1278},[643,4088,4089,4090,4093,4094,4097,4098,4100,4101,4103],{},"yukarıdaki kod bloğunu incelediğimiz zaman, bir matematik işlemi sonucunda toplam değişkenine bir değer aktarılıyor. Daha sonra araya bir ",[799,4091,4092],{},"\u003Ch3>"," tagı giriyor ve ardından ",[799,4095,4096],{},"\u003Cspan>"," tagı içerisinde ",[799,4099,4080],{}," değişkeni ekrana bastırılıyor. ",[799,4102,4080],{}," değişkeni hafızada olduğu için, herhangi bir yerde çağırıldığı an, ekrana yazdırılıyor.",[4105,4106,4107,4110],"blockquote",{},[643,4108,4109],{},"@ simgesini görsel olarak kullanmak istediğimiz durumlarda, (örneğin e-posta adresi yazarken) @ işaretini 2 kere koymamız gerekmektedir.",[643,4111,4112],{},"deneme@@deneme.com gibi.",[643,4114,4115],{},"Razor'un bize sunduğu kolaylıklardan bir diğeri ise, ",[1264,4117,4120],{"className":4118,"code":4119,"language":2600},[2598],"@(2+2)\n",[799,4121,4119],{"__ignoreMap":346},[643,4123,4124],{},"gibi işlemlerin sonucunu otomatik olarak hesaplayıp, tanımlandığı yere eklemesidir.",[643,4126,4127],{},[646,4128,4129],{},"Yorum Satırları",[643,4131,4132],{},"Sunucu taraflı olarak yazdığımız yorum satırlarında, kullandığımız dilin (C#, Vb.Net vb.) kuralları aynen geçerlidir.",[643,4134,4135],{},"Örneğin;",[1264,4137,4140],{"className":4138,"code":4139,"language":2600},[2598],"@{\n/*\nBu kısım renk atamalarını gösterir\n*/\n    string renk=\"mavi\"; //Burada renk ataması yapıldı\n}\n",[799,4141,4139],{"__ignoreMap":346},[643,4143,4144],{},"şeklinde yazılan yorum satırları, hata vermeden çalışacaktır.",[643,4146,4147,4148,4151],{},"Bir yazımızın daha sonuna geldik. Sonraki dersimizde ise ",[646,4149,4150],{},"Razor View Engine Bölüm 2"," konusunu işleyeceğiz. ",[643,4153,1976],{},[1978,4155,3688],{},{"title":346,"searchDepth":347,"depth":347,"links":4157},[],"2013/12/asp.net-razor-view-engine-mvc3.jpg","2013-12-17T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc Layout Sayfaları - Partial View (Asp.Net Mvc Yazı Dizisi – 7)",{},{"title":71,"description":4160},"WWxC8pMcWeCzejexMbs-AaPqo-gaYap_uJXvGR9K5Vw",{"id":4165,"title":75,"body":4166,"coverImage":4158,"createDate":4773,"description":4774,"extension":350,"meta":4775,"navigation":352,"path":76,"seo":4776,"stem":77,"__hash__":4777},"posts/dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-2-asp-net-mvc-yazi-dizisi-9.md",{"type":343,"value":4167,"toc":4771},[4168,4171,4177,4179,4186,4189,4203,4206,4217,4222,4227,4293,4298,4304,4315,4320,4323,4329,4334,4436,4446,4452,4457,4460,4465,4598,4604,4607,4612,4615,4748,4754,4757,4760,4767,4769],[639,4169,75],{"id":4170},"aspnet-mvc-razor-view-engine-bölüm-2-aspnet-mvc-yazı-dizisi-9",[643,4172,4173],{},[646,4174,769,4175],{},[771,4176,71],{"href":72,"title":3389},[643,4178,861],{},[643,4180,4181,4182,4185],{},"Hatırlayacağınız üzere, önceki yazımızda Razor View Engine'yi genel olarak işlemiş, ",[799,4183,4184],{},"\"@\""," operatörünün kullanımını görmüş, tek ve çok satırlı kod bloklarını nasıl kullanacağımızı incelemiş, değişkenlerle çalışmış, sunucu taraflı olarak yorum satırlarını nasıl kullanabileceğimize bakmıştık.",[643,4187,4188],{},"Bugünkü yazımızda kontrol yapılarını inceleyeceğiz.",[643,4190,4191,4194,4195,4198,4199,4202],{},[646,4192,4193],{},"Kontrol yapıları :"," Kod akışında bir duruma, bir şarta göre, akışın farklı şekilde yönlendirilmesini sağlayan yapılardır. ",[646,4196,4197],{},"if, else"," ve ",[646,4200,4201],{},"switch"," yapıları mevcuttur.",[643,4204,4205],{},"Bu kısa bilgileri verdikten sonra, şimdi kontrol yapılarını incelemeye başlayalım.",[655,4207,4208,4214],{},[658,4209,4210,4211,4213],{},"İlk olarak if else kontrol yapısını inceleyelim. Önceki yazılarımızda oluşturduğumuz, IlkMvcProjesi projemizi açalım. (bkz. ",[771,4212,99],{"href":100},")",[658,4215,4216],{},"Solution Explorer>Views>Home>About.cshtml dosyamızı açalım.",[643,4218,4219],{},[646,4220,4221],{},"If Kontrol Yapısı",[655,4223,4224],{},[658,4225,4226],{},"Ardından eğer kullanıcının yaşı 15'ten büyükse ekrana büyük, değilse küçük yazacak bir kontrole ihtiyacımız olduğunu düşünelim ve sayfanın altına şu kodlarımızı ekleyelim;",[1264,4228,4230],{"className":1266,"code":4229,"language":1268,"meta":346,"style":346},"@{\n    byte yas = 20;\n}\n\u003Cp>Kullanıcının yaşı 15'den büyük mü?\u003C/p>\n@if (yas>15)\n{\n\u003Cp>Evet büyük.\u003C/p>\n}\n",[799,4231,4232,4236,4241,4245,4262,4267,4272,4289],{"__ignoreMap":346},[1272,4233,4234],{"class":1274,"line":1275},[1272,4235,2667],{"class":1384},[1272,4237,4238],{"class":1274,"line":347},[1272,4239,4240],{"class":1384},"    byte yas = 20;\n",[1272,4242,4243],{"class":1274,"line":1302},[1272,4244,2677],{"class":1384},[1272,4246,4247,4249,4251,4253,4256,4258,4260],{"class":1274,"line":1312},[1272,4248,1295],{"class":1278},[1272,4250,643],{"class":1282},[1272,4252,1381],{"class":1278},[1272,4254,4255],{"class":1384},"Kullanıcının yaşı 15'den büyük mü?",[1272,4257,1388],{"class":1278},[1272,4259,643],{"class":1282},[1272,4261,1290],{"class":1278},[1272,4263,4264],{"class":1274,"line":1340},[1272,4265,4266],{"class":1384},"@if (yas>15)\n",[1272,4268,4269],{"class":1274,"line":1373},[1272,4270,4271],{"class":1384},"{\n",[1272,4273,4274,4276,4278,4280,4283,4285,4287],{"class":1274,"line":1395},[1272,4275,1295],{"class":1278},[1272,4277,643],{"class":1282},[1272,4279,1381],{"class":1278},[1272,4281,4282],{"class":1384},"Evet büyük.",[1272,4284,1388],{"class":1278},[1272,4286,643],{"class":1282},[1272,4288,1290],{"class":1278},[1272,4290,4291],{"class":1274,"line":1401},[1272,4292,2677],{"class":1384},[655,4294,4295],{},[658,4296,4297],{},"Kodlarımızı ekleyip, projeyi çalıştırdığımızda aşağıdaki görüntüyü alacağız. Visual Studio ya da Mvc sürümüne göre değişiklik gösterebilir ",[643,4299,4300],{},[895,4301],{"alt":4302,"src":4303},"Kontrol yapısı","/images/2013/12/2013_12_19_13_50_24_Index_My_ASP.NET_Application1.jpg",[643,4305,4306,4307,4310,4311,4314],{},"Görüldüğü üzere, şart sağlandığı için if ifadesinin içerisine girerek ekrana ",[799,4308,4309],{},"\u003Cp>Evet büyük.\u003C/p>"," içeriğini ekledi. Yukarıda kullandığımız kod tek şartlı idi ve ",[771,4312,4313],{"href":72},"önceki dersimizde"," işlediğimiz tek satırlı kod blokları konusuna uymaktadır.",[643,4316,4317],{},[646,4318,4319],{},"If - Else Kontrol Yapısı",[643,4321,4322],{},"- Peki if else sistemini kullanmak istediğimizde ne yapacağız?",[643,4324,4325,4326,4328],{},"Bunun için kullanmamız gereken yapı ise, yine ",[771,4327,4313],{"href":72}," işlediğimiz, çok satırlı kod blokları konusuna uygunluk göstermektedir. Şimdi bir de if else için bir deneme yapalım.",[655,4330,4331],{},[658,4332,4333],{},"Açık olan About.cshtml dosyasına önceki maddede eklediğimiz if kodlarını aşağıdaki kodlar ile değiştirelim.",[1264,4335,4337],{"className":1266,"code":4336,"language":1268,"meta":346,"style":346},"@{\n    byte yas = 13;\n}\n\u003Cp>Kullanıcının yaşı 15'den büyük mü?\u003C/p>\n@{\n    if (yas>15)\n{\n\u003Cp>Evet büyük.\u003C/p>\n}\nelse\n{\n  \u003Cp>Hayır büyük değil.\u003C/p>\n}\n}\n",[799,4338,4339,4343,4348,4352,4368,4372,4377,4381,4397,4401,4406,4410,4428,4432],{"__ignoreMap":346},[1272,4340,4341],{"class":1274,"line":1275},[1272,4342,2667],{"class":1384},[1272,4344,4345],{"class":1274,"line":347},[1272,4346,4347],{"class":1384},"    byte yas = 13;\n",[1272,4349,4350],{"class":1274,"line":1302},[1272,4351,2677],{"class":1384},[1272,4353,4354,4356,4358,4360,4362,4364,4366],{"class":1274,"line":1312},[1272,4355,1295],{"class":1278},[1272,4357,643],{"class":1282},[1272,4359,1381],{"class":1278},[1272,4361,4255],{"class":1384},[1272,4363,1388],{"class":1278},[1272,4365,643],{"class":1282},[1272,4367,1290],{"class":1278},[1272,4369,4370],{"class":1274,"line":1340},[1272,4371,2667],{"class":1384},[1272,4373,4374],{"class":1274,"line":1373},[1272,4375,4376],{"class":1384},"    if (yas>15)\n",[1272,4378,4379],{"class":1274,"line":1395},[1272,4380,4271],{"class":1384},[1272,4382,4383,4385,4387,4389,4391,4393,4395],{"class":1274,"line":1401},[1272,4384,1295],{"class":1278},[1272,4386,643],{"class":1282},[1272,4388,1381],{"class":1278},[1272,4390,4282],{"class":1384},[1272,4392,1388],{"class":1278},[1272,4394,643],{"class":1282},[1272,4396,1290],{"class":1278},[1272,4398,4399],{"class":1274,"line":1407},[1272,4400,2677],{"class":1384},[1272,4402,4403],{"class":1274,"line":1413},[1272,4404,4405],{"class":1384},"else\n",[1272,4407,4408],{"class":1274,"line":1422},[1272,4409,4271],{"class":1384},[1272,4411,4412,4415,4417,4419,4422,4424,4426],{"class":1274,"line":1432},[1272,4413,4414],{"class":1278},"  \u003C",[1272,4416,643],{"class":1282},[1272,4418,1381],{"class":1278},[1272,4420,4421],{"class":1384},"Hayır büyük değil.",[1272,4423,1388],{"class":1278},[1272,4425,643],{"class":1282},[1272,4427,1290],{"class":1278},[1272,4429,4430],{"class":1274,"line":1454},[1272,4431,2677],{"class":1384},[1272,4433,4434],{"class":1274,"line":1475},[1272,4435,2677],{"class":1384},[643,4437,4438,4439,4442,4443,4445],{},"Projemizi yeniden çalıştırdığımızda, yaşı 13 yaptığımız için ve else şartına atama yaptığımız için, else bloğundaki ",[799,4440,4441],{},"\u003Cp>Hayır büyük değil.\u003C/p>"," kısmı ekrana yazıldı. Dikkat edileceği üzere, çok satırlı bloklarda kullanılan ",[799,4444,3987],{}," kısmı kullanıldı.",[643,4447,4448],{},[895,4449],{"alt":4450,"src":4451},"Else koşulu","/images/2013/12/2013-12-19+14_13_23-Index-My-ASP.NET-Application.jpg",[643,4453,4454],{},[646,4455,4456],{},"If - Else If - Else Kontrol Yapısı",[643,4458,4459],{},"Bu koşulda ise aynı if - else koşulunda kullandığımız yapıyı kullanıyoruz.",[655,4461,4462],{},[658,4463,4464],{},"Yukarıda yazdığımız kodları, aşağıdaki kodlar ile değiştirelim.",[1264,4466,4468],{"className":1266,"code":4467,"language":1268,"meta":346,"style":346},"@{\n    byte yas = 15;\n}\n\u003Cp>Kullanıcının yaşı 15'den büyükmü?\u003C/p>\n@{\n    if (yas > 15)\n    {\n        \u003Cp>Evet büyük.\u003C/p>\n    }\n    else if (yas == 15)\n    {\n        \u003Cp>Yaşı 15.\u003C/p>\n    }\n    else\n    {\n        \u003Cp>Hayır büyük değil.\u003C/p>\n    }\n}\n",[799,4469,4470,4474,4479,4483,4500,4504,4509,4514,4530,4535,4540,4544,4561,4565,4570,4574,4590,4594],{"__ignoreMap":346},[1272,4471,4472],{"class":1274,"line":1275},[1272,4473,2667],{"class":1384},[1272,4475,4476],{"class":1274,"line":347},[1272,4477,4478],{"class":1384},"    byte yas = 15;\n",[1272,4480,4481],{"class":1274,"line":1302},[1272,4482,2677],{"class":1384},[1272,4484,4485,4487,4489,4491,4494,4496,4498],{"class":1274,"line":1312},[1272,4486,1295],{"class":1278},[1272,4488,643],{"class":1282},[1272,4490,1381],{"class":1278},[1272,4492,4493],{"class":1384},"Kullanıcının yaşı 15'den büyükmü?",[1272,4495,1388],{"class":1278},[1272,4497,643],{"class":1282},[1272,4499,1290],{"class":1278},[1272,4501,4502],{"class":1274,"line":1340},[1272,4503,2667],{"class":1384},[1272,4505,4506],{"class":1274,"line":1373},[1272,4507,4508],{"class":1384},"    if (yas > 15)\n",[1272,4510,4511],{"class":1274,"line":1395},[1272,4512,4513],{"class":1384},"    {\n",[1272,4515,4516,4518,4520,4522,4524,4526,4528],{"class":1274,"line":1401},[1272,4517,1457],{"class":1278},[1272,4519,643],{"class":1282},[1272,4521,1381],{"class":1278},[1272,4523,4282],{"class":1384},[1272,4525,1388],{"class":1278},[1272,4527,643],{"class":1282},[1272,4529,1290],{"class":1278},[1272,4531,4532],{"class":1274,"line":1407},[1272,4533,4534],{"class":1384},"    }\n",[1272,4536,4537],{"class":1274,"line":1413},[1272,4538,4539],{"class":1384},"    else if (yas == 15)\n",[1272,4541,4542],{"class":1274,"line":1422},[1272,4543,4513],{"class":1384},[1272,4545,4546,4548,4550,4552,4555,4557,4559],{"class":1274,"line":1432},[1272,4547,1457],{"class":1278},[1272,4549,643],{"class":1282},[1272,4551,1381],{"class":1278},[1272,4553,4554],{"class":1384},"Yaşı 15.",[1272,4556,1388],{"class":1278},[1272,4558,643],{"class":1282},[1272,4560,1290],{"class":1278},[1272,4562,4563],{"class":1274,"line":1454},[1272,4564,4534],{"class":1384},[1272,4566,4567],{"class":1274,"line":1475},[1272,4568,4569],{"class":1384},"    else\n",[1272,4571,4572],{"class":1274,"line":1496},[1272,4573,4513],{"class":1384},[1272,4575,4576,4578,4580,4582,4584,4586,4588],{"class":1274,"line":1553},[1272,4577,1457],{"class":1278},[1272,4579,643],{"class":1282},[1272,4581,1381],{"class":1278},[1272,4583,4421],{"class":1384},[1272,4585,1388],{"class":1278},[1272,4587,643],{"class":1282},[1272,4589,1290],{"class":1278},[1272,4591,4592],{"class":1274,"line":1579},[1272,4593,4534],{"class":1384},[1272,4595,4596],{"class":1274,"line":1602},[1272,4597,2677],{"class":1384},[643,4599,4600],{},[895,4601],{"alt":4602,"src":4603},"Else if koşulu","/images/2013/12/2013-12-19+14_27_08.jpg",[643,4605,4606],{},"Koşulumuza yaşın 15'e eşit olup olmadığına dair bir koşul daha eklemiş olduk.",[643,4608,4609],{},[646,4610,4611],{},"Switch Kontrol Yapısı",[643,4613,4614],{},"Kullanımı olan bir diğer kontrol yapısı Switch'i işleyelim. Yukarıdaki kodlarımızı, aşağıdaki kodlarımızla güncelleyelim;",[1264,4616,4618],{"className":1266,"code":4617,"language":1268,"meta":346,"style":346},"@{\n    byte yas = 15;\n}\n\u003Cp>Kullanıcının yaşı 15'den büyükmü?\u003C/p>\n@{\n    switch (yas)\n    {\n        case 14:\n            \u003Cp>Yaşı 15'den küçük\u003C/p>\n            break;\n        case 15:\n        \u003Cp>Yaşı 15\u003C/p>\n            break;\n        case 16:\n        \u003Cp>Yaşı 15'den büyük\u003C/p>\n            break;\n    }\n}\n",[799,4619,4620,4624,4628,4632,4648,4652,4657,4661,4666,4683,4688,4693,4710,4714,4719,4736,4740,4744],{"__ignoreMap":346},[1272,4621,4622],{"class":1274,"line":1275},[1272,4623,2667],{"class":1384},[1272,4625,4626],{"class":1274,"line":347},[1272,4627,4478],{"class":1384},[1272,4629,4630],{"class":1274,"line":1302},[1272,4631,2677],{"class":1384},[1272,4633,4634,4636,4638,4640,4642,4644,4646],{"class":1274,"line":1312},[1272,4635,1295],{"class":1278},[1272,4637,643],{"class":1282},[1272,4639,1381],{"class":1278},[1272,4641,4493],{"class":1384},[1272,4643,1388],{"class":1278},[1272,4645,643],{"class":1282},[1272,4647,1290],{"class":1278},[1272,4649,4650],{"class":1274,"line":1340},[1272,4651,2667],{"class":1384},[1272,4653,4654],{"class":1274,"line":1373},[1272,4655,4656],{"class":1384},"    switch (yas)\n",[1272,4658,4659],{"class":1274,"line":1395},[1272,4660,4513],{"class":1384},[1272,4662,4663],{"class":1274,"line":1401},[1272,4664,4665],{"class":1384},"        case 14:\n",[1272,4667,4668,4670,4672,4674,4677,4679,4681],{"class":1274,"line":1407},[1272,4669,1478],{"class":1278},[1272,4671,643],{"class":1282},[1272,4673,1381],{"class":1278},[1272,4675,4676],{"class":1384},"Yaşı 15'den küçük",[1272,4678,1388],{"class":1278},[1272,4680,643],{"class":1282},[1272,4682,1290],{"class":1278},[1272,4684,4685],{"class":1274,"line":1413},[1272,4686,4687],{"class":1384},"            break;\n",[1272,4689,4690],{"class":1274,"line":1422},[1272,4691,4692],{"class":1384},"        case 15:\n",[1272,4694,4695,4697,4699,4701,4704,4706,4708],{"class":1274,"line":1432},[1272,4696,1457],{"class":1278},[1272,4698,643],{"class":1282},[1272,4700,1381],{"class":1278},[1272,4702,4703],{"class":1384},"Yaşı 15",[1272,4705,1388],{"class":1278},[1272,4707,643],{"class":1282},[1272,4709,1290],{"class":1278},[1272,4711,4712],{"class":1274,"line":1454},[1272,4713,4687],{"class":1384},[1272,4715,4716],{"class":1274,"line":1475},[1272,4717,4718],{"class":1384},"        case 16:\n",[1272,4720,4721,4723,4725,4727,4730,4732,4734],{"class":1274,"line":1496},[1272,4722,1457],{"class":1278},[1272,4724,643],{"class":1282},[1272,4726,1381],{"class":1278},[1272,4728,4729],{"class":1384},"Yaşı 15'den büyük",[1272,4731,1388],{"class":1278},[1272,4733,643],{"class":1282},[1272,4735,1290],{"class":1278},[1272,4737,4738],{"class":1274,"line":1553},[1272,4739,4687],{"class":1384},[1272,4741,4742],{"class":1274,"line":1579},[1272,4743,4534],{"class":1384},[1272,4745,4746],{"class":1274,"line":1602},[1272,4747,2677],{"class":1384},[643,4749,4750],{},[895,4751],{"alt":4752,"src":4753},"Switch koşulu","/images/2013/12/2013-12-19+14_42_42.jpg",[643,4755,4756],{},"Projemizi çalıştırdığımızda yaşın 15'e eşit olduğunu göreceğiz.",[643,4758,4759],{},"Bir yazımızın daha sonuna gelmiş bulunmaktayız.",[643,4761,4762,4763,4766],{},"Sonraki yazımızda ise ",[646,4764,4765],{},"Razor View Engine Bölüm 3"," konusunu işleyeceğiz.",[643,4768,1976],{},[1978,4770,3688],{},{"title":346,"searchDepth":347,"depth":347,"links":4772},[],"2013-12-19T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc Razor View Engine Bölüm 1 (Asp.Net Mvc Yazı Dizisi – 8)",{},{"title":75,"description":4774},"0x1f5TJdY6v4RmCLYRmdxLxmVygMD74MTrFC4oj2sW0",{"id":4779,"title":79,"body":4780,"coverImage":4158,"createDate":5471,"description":5472,"extension":350,"meta":5473,"navigation":352,"path":80,"seo":5474,"stem":81,"__hash__":5475},"posts/dersler/asp-net-mvc/asp-net-mvc-razor-view-engine-bolum-3-asp-net-mvc-yazi-dizisi-10.md",{"type":343,"value":4781,"toc":5469},[4782,4785,4791,4795,4805,4808,4827,4832,4837,4948,4951,4957,4960,4966,4969,4975,4986,5003,5006,5011,5114,5117,5122,5231,5234,5239,5250,5257,5264,5269,5276,5289,5292,5321,5324,5327,5333,5343,5346,5351,5354,5357,5401,5412,5435,5438,5443,5458,5461,5464,5466],[639,4783,79],{"id":4784},"aspnet-mvc-razor-view-engine-bölüm-3-aspnet-mvc-yazı-dizisi-10",[643,4786,4787],{},[646,4788,769,4789],{},[771,4790,75],{"href":76,"title":3389},[643,4792,4793],{},[646,4794,861],{},[643,4796,4797,4798,4800,4801,4804],{},"Razor yazı dizimize tam gaz devam ediyoruz. Önceki yazılarımızda, Razor'a bakış atıp, genel olarak kavradıktan sonra, yorum satırı nasıl yapılır, değişkenler nasıl kullanılır, ",[799,4799,3921],{}," operatörü nedir ve ",[799,4802,4803],{},"if, else, switch"," kontrol yapılarını incelemiştik. Bugün ise döngüler ve dosya yolları nasıl verilir? Bunları inceleyeceğiz.",[643,4806,4807],{},"Önceki yazılarımızda da bahsettiğimiz gibi, C# veya Vb.Net kodlarını Razor üzerinde kullanmaktayız. Aynı kural, döngülerde de geçerli olmaktadır. Hemen bir örnek yapalım;",[655,4809,4810,4813],{},[658,4811,4812],{},"Önceki yazılarımızda kullandığımız projemizi açalım.",[658,4814,4815,1381,4817,1381,4820,1381,4823,4826],{},[646,4816,1161],{},[646,4818,4819],{},"Views",[646,4821,4822],{},"Home",[646,4824,4825],{},"About.cshtml"," dosyamızı açalım.",[643,4828,4829],{},[646,4830,4831],{},"For Döngüsü",[655,4833,4834],{},[658,4835,4836],{},"Sayfamızın en altında, dinamik olarak (veri, veritabanından, xml dosyasından vs. gelebilir) bir liste oluşturacağımızı düşünelim. Verileri sıralı şekilde yazdırmak için, bir döngüye ihtiyacımız olacak. Bu döngüyü oluşturmak için, sayfamızın alt kısmına şu kodlarımızı ekleyelim ve daha sonra üzerinde tartışalım.",[1264,4838,4840],{"className":1266,"code":4839,"language":1268,"meta":346,"style":346},"\u003Ch3>Yazılım Dilleri\u003C/h3>\n\u003Cul>\n@{\n    string[] dizi = new string[4];\n    dizi[0] = \"C#\";\n    dizi[1] = \"PHP\";\n    dizi[2] = \"Java\";\n    dizi[3] = \"Phyton\";\n    for (int i = 0; i \u003C dizi.Length; i++)\n    {\n     \u003Cli>@dizi[i]\u003C/li>   \n    }\n}\n\u003C/ul>\n",[799,4841,4842,4859,4867,4871,4876,4881,4886,4891,4896,4907,4911,4932,4936,4940],{"__ignoreMap":346},[1272,4843,4844,4846,4848,4850,4853,4855,4857],{"class":1274,"line":1275},[1272,4845,1295],{"class":1278},[1272,4847,3273],{"class":1282},[1272,4849,1381],{"class":1278},[1272,4851,4852],{"class":1384},"Yazılım Dilleri",[1272,4854,1388],{"class":1278},[1272,4856,3273],{"class":1282},[1272,4858,1290],{"class":1278},[1272,4860,4861,4863,4865],{"class":1274,"line":347},[1272,4862,1295],{"class":1278},[1272,4864,655],{"class":1282},[1272,4866,1290],{"class":1278},[1272,4868,4869],{"class":1274,"line":1302},[1272,4870,2667],{"class":1384},[1272,4872,4873],{"class":1274,"line":1312},[1272,4874,4875],{"class":1384},"    string[] dizi = new string[4];\n",[1272,4877,4878],{"class":1274,"line":1340},[1272,4879,4880],{"class":1384},"    dizi[0] = \"C#\";\n",[1272,4882,4883],{"class":1274,"line":1373},[1272,4884,4885],{"class":1384},"    dizi[1] = \"PHP\";\n",[1272,4887,4888],{"class":1274,"line":1395},[1272,4889,4890],{"class":1384},"    dizi[2] = \"Java\";\n",[1272,4892,4893],{"class":1274,"line":1401},[1272,4894,4895],{"class":1384},"    dizi[3] = \"Phyton\";\n",[1272,4897,4898,4901,4904],{"class":1274,"line":1407},[1272,4899,4900],{"class":1384},"    for (int i = 0; i ",[1272,4902,1295],{"class":4903},"srjyR",[1272,4905,4906],{"class":1384}," dizi.Length; i++)\n",[1272,4908,4909],{"class":1274,"line":1413},[1272,4910,4513],{"class":1384},[1272,4912,4913,4916,4918,4920,4923,4925,4927,4929],{"class":1274,"line":1422},[1272,4914,4915],{"class":1278},"     \u003C",[1272,4917,658],{"class":1282},[1272,4919,1381],{"class":1278},[1272,4921,4922],{"class":1384},"@dizi[i]",[1272,4924,1388],{"class":1278},[1272,4926,658],{"class":1282},[1272,4928,1381],{"class":1278},[1272,4930,4931],{"class":1384},"   \n",[1272,4933,4934],{"class":1274,"line":1432},[1272,4935,4534],{"class":1384},[1272,4937,4938],{"class":1274,"line":1454},[1272,4939,2677],{"class":1384},[1272,4941,4942,4944,4946],{"class":1274,"line":1475},[1272,4943,1388],{"class":1278},[1272,4945,655],{"class":1282},[1272,4947,1290],{"class":1278},[643,4949,4950],{},"Kodumuzu ekleyip, projemizi çalıştırdığımızda, aşağıdaki görüntüyü alacağız.",[643,4952,4953],{},[895,4954],{"alt":4955,"src":4956},"Razor for döngüsü","/images/2013/12/2013-12-22+13_10_18.jpg",[643,4958,4959],{},"Şimdi biraz da, ne yaptığımızı inceleyelim. ",[1264,4961,4964],{"className":4962,"code":4963,"language":2600},[2598],"string[] dizi = new string[4];\ndizi[0] = \"C#\";\ndizi[1] = \"PHP\";\ndizi[2] = \"Java\";\ndizi[3] = \"Phyton\";\n",[799,4965,4963],{"__ignoreMap":346},[643,4967,4968],{},"Yukarıdaki kısımda, önce 4 elemanlı bir dizi oluşturduk ve içerisini doldurduk. Şu an elimizde bir veri kaynağı var. Bu kaynak veritabanından da geliyor olabilirdi. Biz olayı basitleştirmek adına, string dizisi oluşturmuş olduk. Daha sonra ise;",[1264,4970,4973],{"className":4971,"code":4972,"language":2600},[2598]," for (int i = 0; i \u003C dizi.Length; i++)\n    {\n     \u003Cli> @dizi[i] \u003C/li>   \n    }\n",[799,4974,4972],{"__ignoreMap":346},[643,4976,4977,4978,4981,4982,4985],{},"kısmında, döngümüz, dizideki tüm elemanlarımızı, tek tek dönmeye başlıyor. Dikkat edileceği üzere, ",[799,4979,4980],{},"\u003Cli>@dizi[i]\u003C/li>"," kısmında, her bir eleman geldiğinde ",[799,4983,4984],{},"\u003Cli>"," tagı ile html listesi oluşturuluyor.",[643,4987,4988,4989,4992,4993,4996,4997,4999,5000,5002],{},"Bir diğer dikkat edilmesi gereken husus, ",[799,4990,4991],{},"\u003Cli>\u003C/li>"," kısmı arasında, ",[799,4994,4995],{},"dizi[...]"," değişkenini çağırırken başına ",[799,4998,3921],{}," koyuyor olmamız. Çünkü biz html tagını çağırdığımız an, html kısmına geçmiş oluyoruz. Yeniden sunucu taraflı bir ekleme yapmamız gerektiğinde ise, tekrardan ",[799,5001,3921],{}," kısmını yazıp, Razor View Engine'ye sunucu taraflı kod yazımına geçtiğimizi bildirmemiz gerekiyor.",[643,5004,5005],{},"Şimdi aynı döngüleri, foreach ve while ile yapalım;",[643,5007,5008],{},[646,5009,5010],{},"Foreach Döngüsü",[1264,5012,5014],{"className":1266,"code":5013,"language":1268,"meta":346,"style":346},"\u003Ch3>Yazılım Dilleri\u003C/h3>\n\u003Cul>\n    @{\n        string[] dizi = new string[4];\n        dizi[0] = \"C#\";\n        dizi[1] = \"PHP\";\n        dizi[2] = \"Java\";\n        dizi[3] = \"Phyton\";\n        foreach (var item in dizi)\n        {\n            \u003Cli>@item\u003C/li>\n        }\n    }\n\u003C/ul>\n",[799,5015,5016,5032,5040,5045,5050,5055,5060,5065,5070,5075,5080,5097,5102,5106],{"__ignoreMap":346},[1272,5017,5018,5020,5022,5024,5026,5028,5030],{"class":1274,"line":1275},[1272,5019,1295],{"class":1278},[1272,5021,3273],{"class":1282},[1272,5023,1381],{"class":1278},[1272,5025,4852],{"class":1384},[1272,5027,1388],{"class":1278},[1272,5029,3273],{"class":1282},[1272,5031,1290],{"class":1278},[1272,5033,5034,5036,5038],{"class":1274,"line":347},[1272,5035,1295],{"class":1278},[1272,5037,655],{"class":1282},[1272,5039,1290],{"class":1278},[1272,5041,5042],{"class":1274,"line":1302},[1272,5043,5044],{"class":1384},"    @{\n",[1272,5046,5047],{"class":1274,"line":1312},[1272,5048,5049],{"class":1384},"        string[] dizi = new string[4];\n",[1272,5051,5052],{"class":1274,"line":1340},[1272,5053,5054],{"class":1384},"        dizi[0] = \"C#\";\n",[1272,5056,5057],{"class":1274,"line":1373},[1272,5058,5059],{"class":1384},"        dizi[1] = \"PHP\";\n",[1272,5061,5062],{"class":1274,"line":1395},[1272,5063,5064],{"class":1384},"        dizi[2] = \"Java\";\n",[1272,5066,5067],{"class":1274,"line":1401},[1272,5068,5069],{"class":1384},"        dizi[3] = \"Phyton\";\n",[1272,5071,5072],{"class":1274,"line":1407},[1272,5073,5074],{"class":1384},"        foreach (var item in dizi)\n",[1272,5076,5077],{"class":1274,"line":1413},[1272,5078,5079],{"class":1384},"        {\n",[1272,5081,5082,5084,5086,5088,5091,5093,5095],{"class":1274,"line":1422},[1272,5083,1478],{"class":1278},[1272,5085,658],{"class":1282},[1272,5087,1381],{"class":1278},[1272,5089,5090],{"class":1384},"@item",[1272,5092,1388],{"class":1278},[1272,5094,658],{"class":1282},[1272,5096,1290],{"class":1278},[1272,5098,5099],{"class":1274,"line":1432},[1272,5100,5101],{"class":1384},"        }\n",[1272,5103,5104],{"class":1274,"line":1454},[1272,5105,4534],{"class":1384},[1272,5107,5108,5110,5112],{"class":1274,"line":1475},[1272,5109,1388],{"class":1278},[1272,5111,655],{"class":1282},[1272,5113,1290],{"class":1278},[643,5115,5116],{},"Projemizi çalıştırdığımızda bir önceki ile aynı ekranla karşılaştık.",[643,5118,5119],{},[646,5120,5121],{},"While Döngüsü",[1264,5123,5125],{"className":1266,"code":5124,"language":1268,"meta":346,"style":346},"\u003Ch3>Yazılım Dilleri\u003C/h3>\n\u003Cul>\n    @{\n        string[] dizi = new string[4];\n        dizi[0] = \"C#\";\n        dizi[1] = \"PHP\";\n        dizi[2] = \"Java\";\n        dizi[3] = \"Phyton\";\n        byte i = 0;\n        while (i \u003C dizi.Length)\n        {\n            \u003Cli>@dizi[i]\u003C/li>\n            i++;\n        }\n    }\n\u003C/ul>\n",[799,5126,5127,5143,5151,5155,5159,5163,5167,5171,5175,5180,5190,5194,5210,5215,5219,5223],{"__ignoreMap":346},[1272,5128,5129,5131,5133,5135,5137,5139,5141],{"class":1274,"line":1275},[1272,5130,1295],{"class":1278},[1272,5132,3273],{"class":1282},[1272,5134,1381],{"class":1278},[1272,5136,4852],{"class":1384},[1272,5138,1388],{"class":1278},[1272,5140,3273],{"class":1282},[1272,5142,1290],{"class":1278},[1272,5144,5145,5147,5149],{"class":1274,"line":347},[1272,5146,1295],{"class":1278},[1272,5148,655],{"class":1282},[1272,5150,1290],{"class":1278},[1272,5152,5153],{"class":1274,"line":1302},[1272,5154,5044],{"class":1384},[1272,5156,5157],{"class":1274,"line":1312},[1272,5158,5049],{"class":1384},[1272,5160,5161],{"class":1274,"line":1340},[1272,5162,5054],{"class":1384},[1272,5164,5165],{"class":1274,"line":1373},[1272,5166,5059],{"class":1384},[1272,5168,5169],{"class":1274,"line":1395},[1272,5170,5064],{"class":1384},[1272,5172,5173],{"class":1274,"line":1401},[1272,5174,5069],{"class":1384},[1272,5176,5177],{"class":1274,"line":1407},[1272,5178,5179],{"class":1384},"        byte i = 0;\n",[1272,5181,5182,5185,5187],{"class":1274,"line":1413},[1272,5183,5184],{"class":1384},"        while (i ",[1272,5186,1295],{"class":4903},[1272,5188,5189],{"class":1384}," dizi.Length)\n",[1272,5191,5192],{"class":1274,"line":1422},[1272,5193,5079],{"class":1384},[1272,5195,5196,5198,5200,5202,5204,5206,5208],{"class":1274,"line":1432},[1272,5197,1478],{"class":1278},[1272,5199,658],{"class":1282},[1272,5201,1381],{"class":1278},[1272,5203,4922],{"class":1384},[1272,5205,1388],{"class":1278},[1272,5207,658],{"class":1282},[1272,5209,1290],{"class":1278},[1272,5211,5212],{"class":1274,"line":1454},[1272,5213,5214],{"class":1384},"            i++;\n",[1272,5216,5217],{"class":1274,"line":1475},[1272,5218,5101],{"class":1384},[1272,5220,5221],{"class":1274,"line":1496},[1272,5222,4534],{"class":1384},[1272,5224,5225,5227,5229],{"class":1274,"line":1553},[1272,5226,1388],{"class":1278},[1272,5228,655],{"class":1282},[1272,5230,1290],{"class":1278},[643,5232,5233],{},"Projemizi çalıştırdığımızda, while döngüsü ile de aynı çıktıya ulaşmış olduk.",[643,5235,5236],{},[646,5237,5238],{},"Dosyaların ve Klasörlerin Yollarına Ulaşmak",[643,5240,5241,5242,5245,5246,5249],{},"Asp.Net Mvc web sitelerimize resim eklediğimizde, yada bir dosyanın konumunu vermek istediğimizde kullandığımız sunucunun yoluna erişmek isteyeceğiz. Çoğu zaman bunun yerine html ile relative (göreceli) yol dediğimiz, bulunduğumu klasörün yolundan yola çıkarak bağlama yapabiliriz. Bunun için örneğin, sitenin ana dizininde bulunan bir resmi ",[799,5243,5244],{},"/resim.jpg"," şeklinde çağırdığımızda, direkt olarak sitenin ana dizinindeki ",[799,5247,5248],{},"resim.jpg"," dosyasını çağırmış olacağız.",[643,5251,5252,5253,5256],{},"Bu dosyanın asıl yolu ",[799,5254,5255],{},"C:\\inetpub\\wwwroot\\web\\site"," adresi..... gibi olacaktır. (Sunucuya, işletim sistemine vs. göre değişecektir.)",[643,5258,5259,5260,5263],{},"Peki bize dosyaların gerçek yolu gerektiği zaman ne yapacağız? (bunu kişisel bilgisayarlarımızda ki ",[799,5261,5262],{},"C:\\Windows\\.."," gibi düşünebiliriz.)",[643,5265,5266],{},[646,5267,5268],{},"~ Operatörü",[643,5270,5271,5272,5275],{},"- Bir dosya yolunun başına ",[799,5273,5274],{},"~"," koyduğumuzda ne anlama gelir?",[643,5277,5278,5279,5281,5282,5284,5285,5288],{},"Razor, dosya yolunu okuyacağı zaman ",[799,5280,5274],{}," işaretini gördüğü an sitenin en başına (kök dizin), ana dizinine gider. Dikkat edilmesi gereken nokta, sitenin sunucusu değişse bile, sitenin sağlıklı bir şekilde çalışmaya devam edeceğidir. Çünkü aslında ",[799,5283,5274],{}," işareti htmlde bulunan ",[799,5286,5287],{},"/"," işareti gibi göreceli olarak ana dizini işaret eder.",[643,5290,5291],{},"Şimdi bir deneme yapalım;",[655,5293,5294,5300,5306,5312,5315,5318],{},[658,5295,5296,5299],{},[646,5297,5298],{},"Solution Explorer>IlkMvcProjesi"," (önceki yazılarımızda oluşturduğumuz proje) sağ tıklayalım.",[658,5301,5302,5305],{},[646,5303,5304],{},"Add>Existing Item","'e tıklayalım.",[658,5307,5308,5309,5311],{},"Bilgisayarımızdan bir resim seçelim ve ",[646,5310,1129],{}," diyelim.",[658,5313,5314],{},"Sitemizin ana dizinine resmimiz eklendi.",[658,5316,5317],{},"Resim dosyamızın adını kopyalayalım.",[658,5319,5320],{},"Bir View sayfası açalım ve içerisine aşağıdaki kodu yazalım.",[895,5322],{"src":5323},"~/Chrysanthemum.jpg",[643,5325,5326],{},"Buradaki dosya adını, kendi eklediğiniz dosya adı ile değiştirin. Projemizi çalıştırdığımızda sayfamızda resmin çıktığını görebiliriz.",[643,5328,5329],{},[895,5330],{"alt":5331,"src":5332},"Resim yolu","/images/2013/12/2013-12-23+13_06_10-1024x491.jpg",[643,5334,5335,5336,5339,5340,5342],{},"Yukarıda yaptığımız işi biraz daha inceleyecek olursak, html ",[799,5337,5338],{},"\u003Cimg"," resim tagını ekledik ve yolunu Razor formatında ",[799,5341,5274],{}," ile verdik. Böylelikle ana dizinde resmi bulmuş olduk. Razor yerine html formatında, aşağıdaki gibi yapsak da aynı sonucu alırız.",[895,5344],{"src":5345},"/Chrysanthemum.jpg",[643,5347,5348],{},[646,5349,5350],{},"Href Metodu",[643,5352,5353],{},"Href metodu, Razor tabanlı olarak verdiğimiz yolu, htmlye yani tarayıcının anlayacağı formata çevirir.",[643,5355,5356],{},"Bir örnek yapalım,",[1264,5358,5360],{"className":1266,"code":5359,"language":1268,"meta":346,"style":346},"@{\n    string resimYolu = \"~/Chrysanthemum.jpg\";\n    \n}\n\u003Cimg src=\"@Href(resimYolu)\"/>\n",[799,5361,5362,5366,5371,5376,5380],{"__ignoreMap":346},[1272,5363,5364],{"class":1274,"line":1275},[1272,5365,2667],{"class":1384},[1272,5367,5368],{"class":1274,"line":347},[1272,5369,5370],{"class":1384},"    string resimYolu = \"~/Chrysanthemum.jpg\";\n",[1272,5372,5373],{"class":1274,"line":1302},[1272,5374,5375],{"class":1384},"    \n",[1272,5377,5378],{"class":1274,"line":1312},[1272,5379,2677],{"class":1384},[1272,5381,5382,5384,5386,5389,5391,5393,5396,5398],{"class":1274,"line":1340},[1272,5383,1295],{"class":1278},[1272,5385,895],{"class":1282},[1272,5387,5388],{"class":1286}," src",[1272,5390,1324],{"class":1278},[1272,5392,1328],{"class":1327},[1272,5394,5395],{"class":1331},"@Href(resimYolu)",[1272,5397,1328],{"class":1327},[1272,5399,5400],{"class":1278},"/>\n",[643,5402,5403,5404,5407,5408,5411],{},"şeklinde kodumuzu View'imize eklediğimizde, ",[799,5405,5406],{},"@Href()"," metodu ",[799,5409,5410],{},"resimYolu"," değişkenindeki Razor tabanlı yolu html formatına çevirerek, resmin kaynağına gönderir. Html tarafındaki çıktımız ise,",[1264,5413,5415],{"className":1266,"code":5414,"language":1268,"meta":346,"style":346},"\u003Cimg src=\"/Chrysanthemum.jpg\"/>\n",[799,5416,5417],{"__ignoreMap":346},[1272,5418,5419,5421,5423,5425,5427,5429,5431,5433],{"class":1274,"line":1275},[1272,5420,1295],{"class":1278},[1272,5422,895],{"class":1282},[1272,5424,5388],{"class":1286},[1272,5426,1324],{"class":1278},[1272,5428,1328],{"class":1327},[1272,5430,5345],{"class":1331},[1272,5432,1328],{"class":1327},[1272,5434,5400],{"class":1278},[643,5436,5437],{},"şeklinde olmuştur.",[643,5439,5440],{},[646,5441,5442],{},"Server.MapPath Metodu",[643,5444,5445,5446,5449,5450,5453,5454,5457],{},"Asp.Net Web Forms mimarisinde de kullanılan ",[799,5447,5448],{},"Server.MapPath(\"dosya yolu\")"," metodu, kendisine verilen dosya yolunda ki yolun, sunucu tarafındaki tam karşılığını verir. Yani şöyle ki ",[799,5451,5452],{},"Server.MapPath(\"/VeriKaynagi.txt\")"," gibi bir tanım geriye, ",[799,5455,5456],{},"C:\\inetpub\\wwwroot\\site\\VeriKaynagi.txt"," gibi bir yol döndürür. Böylelikle dosyanın sunucuda tam olarak bulunduğu yeri öğrenebiliriz. Bu zaman zaman, veritabanı işlemlerinde, ya da sunucuya dosya yazma, dosya okuma gibi işlemlerde kullanılmaktadır.",[643,5459,5460],{},"Evet arkadaşlar, bir yazımızın daha sonuna gelmiş bulunmaktayız. Razor'un biraz daha derinlerine inme imkanına sahip olduk.",[643,5462,5463],{},"Sonraki derslerimizde Model, View, Controller kısımlarını derinlemesine işleyeceğiz.",[643,5465,1976],{},[1978,5467,5468],{},"html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .srjyR, html code.shiki .srjyR{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":346,"searchDepth":347,"depth":347,"links":5470},[],"2013-12-23T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc Razor View Engine Bölüm 2 (Asp.Net Mvc Yazı Dizisi – 9)",{},{"title":79,"description":5472},"Oq5zdc2PCzTtqNKQp_AMBJ9DAVEuLBrT3OWs9_HTbR8",{"id":5477,"title":23,"body":5478,"coverImage":5945,"createDate":5946,"description":5947,"extension":350,"meta":5948,"navigation":352,"path":24,"seo":5949,"stem":25,"__hash__":5950},"posts/dersler/asp-net-mvc/asp-net-mvc-code-first-ile-veritabani-islemleri-proje-baslangici-asp-net-mvc-yazi-dizisi-11.md",{"type":343,"value":5479,"toc":5943},[5480,5483,5489,5493,5496,5503,5508,5511,5523,5528,5548,5553,5558,5591,5597,5612,5618,5629,5635,5638,5667,5672,5795,5801,5812,5818,5828,5834,5845,5851,5871,5877,5895,5901,5906,5911,5917,5921,5927,5930,5933,5941],[639,5481,23],{"id":5482},"aspnet-mvc-code-first-ile-veritabanı-i̇şlemleri-1-proje-başlangıcı-aspnet-mvc-yazı-dizisi-11",[643,5484,5485],{},[646,5486,769,5487],{},[771,5488,79],{"href":80,"title":3389},[643,5490,5491],{},[646,5492,861],{},[643,5494,5495],{},"Önceki yazılarımızda, Mvc sistemini genel olarak incelemiş, Layout, Partial View gibi konuları irdelemiş, Razor'u kapsamlı bir şekilde incelemiştik. ",[643,5497,5498,5499,5502],{},"Şimdi ise veritabanı konusunu, ",[646,5500,5501],{},"Entity Framework Code First"," üzerinden inceliyor olacağız.",[643,5504,5505,853],{},[646,5506,5507],{},"Bundan sonra ki çalışmamızda, kapsamlı bir blog uygulaması geliştiriyor olacağız.",[643,5509,5510],{},"Asp.Net Mvc uygulamalarında, klasik Ado.Net sistemini kullanabildiğimiz gibi, Linq to Sql, Entity Framework gibi Orm sistemlerini kullanabiliyoruz. Biz uygulamamızda, Entity Framework'ün Code First yaklaşımını kullanacağız. Bu noktada, veritabanını ve yaklaşımları da kısaca özetleyelim.",[643,5512,5513,5516,5517,5522],{},[646,5514,5515],{},"Veritabanı :"," Bir takım verilerin kayıtlı tutulmasını isteriz. Buna örnek olarak, kullanıcı adı ve şifreyi gösterebiliriz. Ancak, bunun gibi bir çok veriyi metin belgesinde tuttuğumuzu düşündüğümüzde, oluşacak karmaşayı da hayal edebiliriz. ",[771,5518,5521],{"href":5519,"rel":5520},"http://tr.wikipedia.org/wiki/Veritaban%C4%B1",[878],"Veritabanı"," sayesinde, verilerimizi düzenli, ilişkili (burası önemli, örneğin verilen siparişler ile üyeleri eşleştirerek, kim hangi siparişleri vermiş, rahatlıkla görebiliriz) şekilde saklayabiliriz.",[643,5524,5525],{},[646,5526,5527],{},"Veritabanı Modelleme Yaklaşımları",[703,5529,5530,5536,5542],{},[658,5531,5532,5535],{},[646,5533,5534],{},"Database First :"," Eğer ki halihazırda, kurulu bir veritabanı varsa bu yaklaşım kullanılır. Sistem otomatik olarak, var olan veritabanında ki kolonları ve satırları, kod tarafında classlara çevirir.",[658,5537,5538,5541],{},[646,5539,5540],{},"Model First :"," Görsel bir dizayn aracı ile, modelleme yapılır. Daha sonra sistem, otomatik olarak, veritabanını ve class yapılarını oluşturur. Code First öncesi en popüler yaklaşımdı.",[658,5543,5544,5547],{},[646,5545,5546],{},"Code First :"," Son yıllarda en çok kullanılan yaklaşım olup, Microsoft'un sunduğu örneklerde de, en çok bu yaklaşımın kullanıldığı görülmektedir. Bu sistemde ise, veriler tamamen class yapıları olarak, kodlama ile yapılarak, veritabanının otomatik oluşması sağlanır.",[643,5549,5550],{},[646,5551,5552],{},"Artık projemizi yazmaya başlayalım.",[643,5554,5555],{},[646,5556,5557],{},"Projemizi Visual Studio 2013 üzerinde, .Net Framework 4.5 altyapısı ile Mvc 5 olarak geliştireceğiz.",[655,5559,5560,5569],{},[658,5561,5562,5563,5565,5566,4213],{},"Öncelikle yeni bir Mvc projesi oluşturalım. Bunun için ",[646,5564,890],{}," yolunu izleyelim. (nasıl yapılır için ",[771,5567,5568],{"href":100},"bakınız",[658,5570,5571,5572,5574,5575,5578,5579,5581,5582,3483,5588,5590],{},"Resimde de görebileceğiniz şekilde, ",[646,5573,906],{}," ü seçip, ",[646,5576,5577],{},"Asp.Net Web Application","'u seçelim, ",[646,5580,914],{}," kısmına da ",[5583,5584,5585],"em",{},[646,5586,5587],{},"Mvc Projesi",[646,5589,918],{}," tıklayalım.",[643,5592,5593],{},[895,5594],{"alt":5595,"src":5596},"Mvc projesinin açılması","/images/2014/01/2014-01-02-12_00_03.jpg",[655,5598,5599],{},[658,5600,5601,5602,5604,5605,5608,5609,3486],{},"Açılan ekranda ",[646,5603,937],{},"'nin seçili olduğunu doğrulayıp, ",[646,5606,5607],{},"Authentication : Individual User Accounts"," olarak seçili olduğunu tespit edelim ve ",[646,5610,5611],{},"Ok",[643,5613,5614],{},[895,5615],{"alt":5616,"src":5617},"One Asp.Net","/images/2014/01/2014-01-02-12_03_07.jpg",[643,5619,5620,5621,5624,5625,5628],{},"Bu noktada ",[646,5622,5623],{},"Authentication"," kısmına da değinmekte fayda var. ",[646,5626,5627],{},"Change Authentication","'a tıklarsak aşağıdaki ekran açılacaktır. Bu sistem Visual Studio 2013'te gelmiştir.",[643,5630,5631],{},[895,5632],{"alt":5633,"src":5634},"Authentication seçenekleri","/images/2014/01/2014-01-02-12_06_30.jpg",[643,5636,5637],{},"Bu ekranda ki seçeneklere bakalım.",[655,5639,5640,5646,5652,5658,5664],{},[658,5641,5642,5645],{},[646,5643,5644],{},"No Authentication :"," Bu seçenek seçilirse eğer, sistemde herhangi bir üyelik sistemi aktif olmayacaktır.",[658,5647,5648,5651],{},[646,5649,5650],{},"Individual User Accounts :"," Eski Asp.Net Authentication'nun yerine gelen, verilerin Sql'de saklandığı, projelerimizin genelinde kullanacağımız üyelik sistemidir. Aynı zamanda bu sistem, Facebook, Open ID, Twitter, Google, Microsoft kullanıcı bilgileriyle giriş imkanı sağlayan yapıya da zemin hazırlamaktadır.",[658,5653,5654,5657],{},[646,5655,5656],{},"Organizational Accounts :"," Windows Server ve Windows Azure, Active Directory altyapılıüyelik sistemleri için kullanılır.",[658,5659,5660,5663],{},[646,5661,5662],{},"Windows Authentication :"," Windows kullanıcı bilgileri ile giriş yapmaya izin veren sistemdir. Bu sistem, Intranet gibi şirket içi yapılar için kullanılmaktadır.",[658,5665,5666],{},"Projemizi oluşturduktan sonra, öncelikle aşağıdaki listeye göre projemizin içindeki hazır gelen dosyaları silelim.",[643,5668,5669],{},[646,5670,5671],{},"Silinecekler",[655,5673,5674,5684,5689,5694,5704,5711,5716,5721,5735,5738,5745,5755,5763,5776,5779],{},[658,5675,5676,5679,5680,5683],{},[646,5677,5678],{},"Content"," klasörünün içindeki ",[646,5681,5682],{},"Site.css"," dosyası",[658,5685,5686,5688],{},[646,5687,1106],{}," klasörünün içindeki tüm dosyalar",[658,5690,5691,5688],{},[646,5692,5693],{},"Models",[658,5695,5696,5679,5698,4198,5701,5703],{},[646,5697,4819],{},[646,5699,5700],{},"Account",[646,5702,4822],{}," klasörü",[658,5705,5706,5679,5708,5683],{},[646,5707,1233],{},[646,5709,5710],{},"_LoginPartial.cshtml",[658,5712,5713,5683],{},[646,5714,5715],{},"favicon.ico",[658,5717,5718,5683],{},[646,5719,5720],{},"Project_Readme.html",[658,5722,5723,5724,5727,5728,986,5731,5734],{},"Temizliğimizi yaptıktan sonra, ana dizinimize ",[646,5725,5726],{},"Data"," isimli bir klasör oluşturalım. Bunun için, projemize sağ tıklayıp,  ",[646,5729,5730],{},"Add>New",[646,5732,5733],{},"Folder"," dememiz yeterli. Bu klasörün altına veritabanını temsil edecek classlarımızı yazacağız.",[658,5736,5737],{},"Daha önce, bir blog uygulaması yazacağımızı söylemiştim. Örnek projemizde, kapsamı mümkün olduğunca dar tutmaya çalışacağım. Böylelikle daha rahat kavranması, hedefimiz olacaktır. Bunun için hangi tablolara ihtiyacımız var? Bir düşünelim.​​",[658,5739,5740,5741,5744],{},"Üyelerin bilgilerinin tutulacağı, ",[646,5742,5743],{},"Uye"," tablosu,",[658,5746,5747,5748,5751,5752,5754],{},"Makalelerin bulunacağı, ",[646,5749,5750],{},"Makale"," tablosu (aynı zamanda, ",[646,5753,5743],{}," tablosuna bağlantılı olacak),",[658,5756,5757,5758,5751,5761,5754],{},"Makale içerisinde, kayıtlı olan etiketlerin bulunacağı, ",[646,5759,5760],{},"Etiket",[646,5762,5750],{},[658,5764,5765,5766,5769,5770,5772,5773,5775],{},"Yorumların bulunacağı, ",[646,5767,5768],{},"Yorum"," tablosu (aynı zamanda, hem ",[646,5771,5750],{},", hem de ",[646,5774,5743],{}," tablosuna bağlantılı olacak).",[658,5777,5778],{},"Yukarıda saydığımız, tablolarımızı hemen Code First ile modellemeye başlayalım.",[658,5780,5781,5782,5784,5785,5788,5789,5791,5792,5794],{},"Ana dizindeki, ",[646,5783,5726],{}," klasörümüze sağ tıklayıp, ",[646,5786,5787],{},"Add>Class"," diyelim ve adını ",[646,5790,5743],{}," olarak değiştirip ",[646,5793,1129],{}," tuşuna tıklayalım. Oluşan dosyanın içeriğini, aşağıdaki gibi değiştirelim. (Açıklamalar, yorum satırı olarak, kodların içerisine eklenmiştir.)",[1264,5796,5799],{"className":5797,"code":5798,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\n\n//Bu isim uzayını eklememizin sebebi, [DataType],[StringLength] gibi Attribute'leri tanımlıyor olmamız.\nusing System.ComponentModel.DataAnnotations;\n\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    public class Uye\n    {\n        //Bu alan tablonun id'si olacak. Tablo adının sonuna Id takısı eklendiğinde, framework bu alanı otomatik olarak, \n//tablonun anahtar sütunu yani primary key'si yapacaktır. Bu varsayılanı değiştirmek mümkündür, \n//ancak bu konuya girmeyeceğiz. Detaylı bilgi için, Code First Fluent olarak araştırma yapabilirsiniz.\n        public int UyeId { get; set; }\n\n        //Bu alanı zorunlu hale getiriyoruz. Böylelikle boş geçilemeyecek.\n        [Required(ErrorMessage = \"Lütfen adınızı giriniz.\")]\n        //Girilen metnin uzunluğunu belirtiyoruz. İlk değişken minimum uzunluk olurken, sonrakiler ise, opsiyonel girdilerdir.\n        [StringLength(50, MinimumLength = 3, ErrorMessage = \"Adınızı 3-50 karakter arasında girebilirsiniz.\")]\n        public string Ad { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen soyadınızı giriniz.\")]\n        [StringLength(50, MinimumLength = 3, ErrorMessage = \"Soyadınızı 3-50 karakter arasında girebilirsiniz.\")]\n        public string Soyad { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen e-posta adresinizi giriniz.\")]\n        //Girilen metnin, geçerli bir e-posta adresi formatında girilmesini sağlıyoruz. \n        //DataType tipleri, Microsoft tarafından Framework'e eklenen hazır tiplerdir.\n        [DataType(DataType.EmailAddress, ErrorMessage = \"Lütfen e-posta adresinizi geçerli bir formatta giriniz.\")]\n        public string EPosta { get; set; }\n\n        //Required Attribute'si eklemediğimiz için, bu alan zorunlu olmayacak ve boş geçilebiliyor olacak.\n        //Girilen metnin, geçerli bir web sitesi adresi formatında girilmesini sağlıyoruz. \n        [DataType(DataType.Url, ErrorMessage = \"Lütfen web site adresinizi, geçerli bir formatta giriniz.\")]\n        public string WebSite { get; set; }\n\n        //Girilen metnin, geçerli bir resim yolu formatında girilmesini sağlıyoruz. \n        [DataType(DataType.ImageUrl, ErrorMessage = \"Lütfen resim yolunuzu doğru şekilde giriniz.\")]\n        public string ResimYol { get; set; }\n\n\n        [Required(ErrorMessage = \"Lütfen üye olma tarihini giriniz.\")]\n        //Girilen tarihin, geçerli bir tarih ve saat formatında girilmesini sağlıyoruz.\n        [DataType(DataType.DateTime, ErrorMessage = \"Lütfen üye olma tarihini, doğru bir şekilde giriniz.\")]\n        public DateTime UyeOlmaTarih { get; set; }\n\n    }\n}\n",[799,5800,5798],{"__ignoreMap":346},[655,5802,5803],{},[658,5804,5805,5806,5808,5809,5811],{},"Yine ",[646,5807,5726],{}," klasörümüze, ",[646,5810,5750],{}," adında bir class ekleyelim ve içeriğini aşağıdaki gibi düzenleyelim.",[1264,5813,5816],{"className":5814,"code":5815,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    public class Makale\n    {\n        public int MakaleId { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen makalenin başlığını giriniz.\")]\n        [StringLength(50, MinimumLength = 3, ErrorMessage = \"Makale başlığı 3-50 karakter arasında olmalıdır.\")]\n        public string Baslik { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen makalenin içeriğini giriniz.\")]\n        //Girilen metnin, html formatında girilmesini sağlıyoruz.\n        [DataType(DataType.Html, ErrorMessage = \"Lütfen makale içeriğini html formatında giriniz.\")]\n        public string Icerik { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen makalenin eklenme tarihini giriniz.\")]\n        [DataType(DataType.DateTime, ErrorMessage = \"Lütfen makalenin eklenme  tarihini, doğru bir şekilde giriniz.\")]\n        public DateTime Tarih { get; set; }\n\n    }\n}\n",[799,5817,5815],{"__ignoreMap":346},[655,5819,5820],{},[658,5821,5822,5823,5808,5825,5827],{},"Şimdi de ",[646,5824,5726],{},[646,5826,5760],{}," adında bir class ekleyelim. ardından içeriğini aşağıdaki gibi düzenleyelim.",[1264,5829,5832],{"className":5830,"code":5831,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    public class Etiket\n    {\n        public int EtiketId { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen etiketin içeriğini giriniz.\")]\n        [StringLength(50, ErrorMessage = \"Etiketin içeriği 50 karakterden uzun olamaz.\")]\n        public string Icerik { get; set; }\n    }\n}\n",[799,5833,5831],{"__ignoreMap":346},[655,5835,5836],{},[658,5837,5838,5839,5841,5842,5844],{},"Son olarak da, ",[646,5840,5726],{}," klasörüne ",[646,5843,5768],{}," adında bir class ekleyelim. İçeriğini aşağıdaki gibi düzenleyelim.",[1264,5846,5849],{"className":5847,"code":5848,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    public class Yorum\n    {\n        public int YorumId { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen yorumunuzu giriniz.\")]\n        public string Icerik { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen yorumun yapılma tarihini giriniz.\")]\n        [DataType(DataType.DateTime, ErrorMessage = \"Lütfen yorum yapılma tarihini, doğru bir şekilde giriniz.\")]\n        public DateTime Tarih { get; set; }\n    }\n}\n",[799,5850,5848],{"__ignoreMap":346},[655,5852,5853,5866],{},[658,5854,5855,5856,5858,5859,5861,5862,5865],{},"Evet, veritabanında tablolarımızı temsil edecek sınıflarımızı oluşturduk. Buraya kadar her şey tamam. Ancak örneğin üyelerin yorumlarını, düzenli bir şekilde kaydedebilmek için, ",[646,5857,5768],{}," ile ",[646,5860,5743],{}," tablosu arasında ki ilişkiyi nasıl kuracağız? Bunun için, aradaki ilişkiyi sağlayacak sql tarafında ki adıyla ",[646,5863,5864],{},"Foreign Key","'lere ihtiyacımız var. Şimdi bu Foreign Key sütunlarımızı tablomuza ekleyelim. ",[658,5867,1094,5868,5870],{},[646,5869,5768],{}," sınıfımızı aşağıdaki gibi değiştirelim.",[1264,5872,5875],{"className":5873,"code":5874,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    public class Yorum\n    {\n        public int YorumId { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen yorumunuzu giriniz.\")]\n        public string Icerik { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen yorumun yapılma tarihini giriniz.\")]\n        [DataType(DataType.DateTime, ErrorMessage = \"Lütfen yorum yapılma tarihini, doğru bir şekilde giriniz.\")]\n        public DateTime Tarih { get; set; }\n\n        //Her yorum, yalnızca bir makaleye ait olabilir. Bu yüzden, tek bir makaleye bağlıyoruz. \n        //Dikkat edileceği üzere veri türü (burada aynı zamanda sınıf) olarak Makale yazılıyor.\n        public virtual Makale Makale { get; set; }\n\n        //Her yorumu, yalnızca bir kişi yazmış olabilir.\n        public virtual Uye Uye { get; set; }\n    }\n}\n",[799,5876,5874],{"__ignoreMap":346},[655,5878,5879,5890],{},[658,5880,5881,5882,5884,5885,5772,5887,5889],{},"Görüldüğü üzere ",[646,5883,5768],{}," sınıfımıza hem ",[646,5886,5743],{},[646,5888,5750],{}," sınıfımızdan link vermiş olduk. Kod içerisinde ki yorum satırlarına lütfen dikkat ediniz. ",[658,5891,5822,5892,5894],{},[646,5893,5743],{}," sınıfımızı aşağıdaki gibi güncelleyelim.",[1264,5896,5899],{"className":5897,"code":5898,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\n\n//Bu isim uzayını eklememizin sebebi, [DataType],[StringLength] gibi Attribute'leri tanımlıyor olmamız.\nusing System.ComponentModel.DataAnnotations;\n\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    public class Uye\n    {\n        //Bu alan tablonun id'si olacak. Tablo adının sonuna Id takısı eklendiğinde, framework bu alanı otomatik olarak, \n        //tablonun anahtar sütunu yani primary key'si yapacaktır. Bu varsayılanı değiştirmek mümkündür, ancak bu konuya \n        //girmeyeceğiz. Detaylı bilgi için, Code First Fluent olarak araştırma yapabilirsiniz.\n        public int UyeId { get; set; }\n\n        //Bu alanı zorunlu hale getiriyoruz. Böylelikle boş geçilemeyecek.\n        [Required(ErrorMessage = \"Lütfen adınızı giriniz.\")]\n        //Girilen metnin uzunluğunu belirtiyoruz. İlk değişken minimum uzunluk olurken, sonrakiler ise, opsiyonel \n        //girdilerdir.\n        [StringLength(50, MinimumLength = 3, ErrorMessage = \"Adınızı 3-50 karakter arasında girebilirsiniz.\")]\n        public string Ad { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen soyadınızı giriniz.\")]\n        [StringLength(50, MinimumLength = 3, ErrorMessage = \"Soyadınızı 3-50 karakter arasında girebilirsiniz.\")]\n        public string Soyad { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen e-posta adresinizi giriniz.\")]\n        //Girilen metnin, geçerli bir e-posta adresi formatında girilmesini sağlıyoruz. \n        //DataType tipleri, Microsoft tarafından Framework'e eklenen hazır tiplerdir.\n        [DataType(DataType.EmailAddress, ErrorMessage = \"Lütfen e-posta adresinizi geçerli bir formatta giriniz.\")]\n        public string EPosta { get; set; }\n\n        //Required Attribute'si eklemediğimiz için, bu alan zorunlu olmayacak ve boş geçilebiliyor olacak.\n        //Girilen metnin, geçerli bir web sitesi adresi formatında girilmesini sağlıyoruz. \n        [DataType(DataType.Url, ErrorMessage = \"Lütfen web site adresinizi, geçerli bir formatta giriniz.\")]\n        public string WebSite { get; set; }\n\n        //Girilen metnin, geçerli bir resim yolu formatında girilmesini sağlıyoruz. \n        [DataType(DataType.ImageUrl, ErrorMessage = \"Lütfen resim yolunuzu doğru şekilde giriniz.\")]\n        public string ResimYol { get; set; }\n\n\n        [Required(ErrorMessage = \"Lütfen üye olma tarihini giriniz.\")]\n        //Girilen tarihin, geçerli bir tarih ve saat formatında girilmesini sağlıyoruz.\n        [DataType(DataType.DateTime, ErrorMessage = \"Lütfen üye olma tarihini, doğru bir şekilde giriniz.\")]\n        public DateTime UyeOlmaTarih { get; set; }\n\n        //Bir üyenin, birden çok yorumu olabileceği için Yorumları bir liste içerisine alıyoruz. \n        //Property adının sonuna s takısı koymamızın sebebi, veri tipinin çoğul olduğunun daha kolay anlaşılabilmesi \n        //içindir. Entity varsayılan olarak, liste verilerin sonuna s takısı koymaktadır.\n        //Biz de bu standarda uyum gösterdik. Eğer veri tipinin adı zaten s ile bitiyorsa o zaman da s yi siliyoruz.\n        //Örneğin hayvanlarla ilgili bir tabloda, Kus adlı bir sınıfımız çoğul olarak temsil edilecekse Ku olarak \n        //kullanabiliriz.\n        public virtual List\u003CYorum> Yorums { get; set; }\n\n        //Bir üyenin eklediği, birden çok makale olabilir.\n        public virtual List\u003CMakale> Makales { get; set; }\n    }\n}\n",[799,5900,5898],{"__ignoreMap":346},[655,5902,5903],{},[658,5904,5905],{},"Yukarıda verilen bilgiler çerçevesinde, diğer sınıflarımızı da güncelleyelim.",[643,5907,5908,5910],{},[646,5909,5760],{}," sınıfı",[1264,5912,5915],{"className":5913,"code":5914,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    public class Etiket\n    {\n        public int EtiketId { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen etiketin içeriğini giriniz.\")]\n        [StringLength(50, ErrorMessage = \"Etiketin içeriği 50 karakterden uzun olamaz.\")]\n        public string Icerik { get; set; }\n\n        //Aynı etiket, birden çok makale de kullanılıyor olabilir.\n        public virtual List\u003CMakale> Makales { get; set; }\n    }\n}\n",[799,5916,5914],{"__ignoreMap":346},[643,5918,5919,5910],{},[646,5920,5750],{},[1264,5922,5925],{"className":5923,"code":5924,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    public class Makale\n    {\n        public int MakaleId { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen makalenin başlığını giriniz.\")]\n        [StringLength(50, MinimumLength = 3, ErrorMessage = \"Makale başlığı 3-50 karakter arasında olmalıdır.\")]\n        public string Baslik { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen makalenin içeriğini giriniz.\")]\n        //Girilen metnin, html formatında girilmesini sağlıyoruz.\n        [DataType(DataType.Html, ErrorMessage = \"Lütfen makale içeriğini html formatında giriniz.\")]\n        public string Icerik { get; set; }\n\n        [Required(ErrorMessage = \"Lütfen makalenin eklenme tarihini giriniz.\")]\n        [DataType(DataType.DateTime, ErrorMessage = \"Lütfen makalenin eklenme  tarihini, doğru bir şekilde giriniz.\")]\n        public DateTime Tarih { get; set; }\n\n        public virtual Uye Uye { get; set; }\n\n        //Bir makalede, birden çok yorum bulunabilir.\n        public virtual List\u003CYorum> Yorums { get; set; }\n\n        //Bir makale de, birden çok etiket bulunabilir.\n        public virtual List\u003CEtiket> Etikets { get; set; }\n    }\n}\n",[799,5926,5924],{"__ignoreMap":346},[643,5928,5929],{},"Son değişikliklerimizi de yaptıktan sonra, veritabanında bulunacak tabloları, sadece kod ile modellemeyi başardık.",[643,5931,5932],{},"Tablolarımız hazır, bu tablolarımızın oluşturulup, veritabanına kaydedilmesi işlemlerini, bir sonraki dersimizde işleyeceğiz.",[643,5934,5935,5936,5940],{},"Projenin son halini ",[771,5937,5939],{"href":5938},"/images/proje-dosyalar/asp-net-mvc-code-first-ile-veritabani-islemleri-proje-baslangici-asp-net-mvc-yazi-dizisi-11/MvcProjesi.zip","buradan"," indirebilirsiniz.",[643,5942,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":5944},[],"2014/01/modelleme-yaklasimlari.png","2014-01-04T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc Razor View Engine Bölüm 3 (Asp.Net Mvc Yazı Dizisi – 10)",{},{"title":23,"description":5947},"45Rjo0SfBuLxUrblGYTMZXHzlkgA8P_KBfPUf2XqjjA",{"id":5952,"title":19,"body":5953,"coverImage":6171,"createDate":6172,"description":6173,"extension":350,"meta":6174,"navigation":352,"path":20,"seo":6175,"stem":21,"__hash__":6176},"posts/dersler/asp-net-mvc/asp-net-mvc-code-first-ile-veritabani-islemleri-2-asp-net-mvc-yazi-dizisi-12.md",{"type":343,"value":5954,"toc":6169},[5955,5958,5967,5971,5974,5977,5980,6001,6008,6013,6019,6022,6029,6032,6055,6066,6073,6079,6093,6096,6099,6107,6113,6118,6125,6133,6139,6144,6150,6153,6156,6159,6164,6166],[639,5956,19],{"id":5957},"aspnet-mvc-code-first-ile-veritabanı-i̇şlemleri-2-aspnet-mvc-yazı-dizisi-12",[643,5959,5960,853,5962],{},[646,5961,852],{},[646,5963,5964],{},[771,5965,5966],{"href":24},"Asp.Net Mvc – Code First ile Veritabanı İşlemleri – Proje Başlangıcı (Asp.Net Mvc Yazı Dizisi – 11)​​",[643,5968,5969],{},[646,5970,861],{},[643,5972,5973],{},"Bir önceki yazımızda, veritabanını code first ile modellemiştik. Modelimizi oluştururken yalnızca, c# tarafında sınıflarımızı kullanmıştık.",[643,5975,5976],{},"Bugünkü dersimizde ise, oluşturduğumuz bu sınıflarımızı veritabanına nasıl tablolar halinde yansıtacağımızı inceliyor olacağız.",[643,5978,5979],{},"Şimdi adım adım projemiz üzerinde çalışmaya devam edelim.",[655,5981,5982,5989],{},[658,5983,5984,5985,5988],{},"Önceki dersimizde oluşturduğumuz, ",[646,5986,5987],{},"MvcProjesi"," isimli projeyi açalım.",[658,5990,5991,5992,5994,5995,5788,5997,6000],{},"Ana dizinimizde bulunan, ",[646,5993,5726],{}," klasörüne sağ tıklayarak ",[646,5996,5787],{},[646,5998,5999],{},"MvcProjesiContext"," olarak güncelleyelim.",[643,6002,6003,6004,6007],{},"Biraz bu ",[646,6005,6006],{},"Context"," sınıfımızdan bahsedecek olursak, oluşturmuş olduğumuz sınıfları topladığımız ve bu topladığımız sınıfları veritabanına yansıtacak sınıftır diyebiliriz. Genellikle proje adına Context takısı eklenerek kullanılır. Ancak bu zorunlu değildir. İsim konusunda serbestsiniz.",[655,6009,6010],{},[658,6011,6012],{},"Eklediğimiz sınıfın içeriğini aşağıdaki gibi değiştirelim. (Açıklamalar yorum satırı olarak kodlara eklenmiştir.)",[1264,6014,6017],{"className":6015,"code":6016,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.Data.Entity;\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\n    //Öncelikle sınıfımızı, DbContext sınıfından implemente ediyoruz. Böylelikle, DbContext sınıfının özelliklerini\n    //kullanabiliyor olacağız.\n    public class MvcProjesiContext : DbContext\n    {\n        //Daha sonra veritabanımızda, tablo olarak temsil edilecek tüm sınıflarımızı DbSet\u003C..> içerisinde tek tek\n        //çağırıyoruz. Sonuna s takısı koyduğumuza dikkat edin. Böylelikle bunun tablo olduğunu anlıyor olacağız.\n        //Önceki yazımızda bahsettiğimiz gibi, sonunda zaten s olan bir sınıf ismimiz varsa, bu sefer de s takısını\n        //kaldırabiliriz.\n        public DbSet\u003CEtiket> Etikets { get; set; }\n        public DbSet\u003CMakale> Makales { get; set; }\n        public DbSet\u003CUye> Uyes { get; set; }\n        public DbSet\u003CYorum> Yorums { get; set; }\n    }\n}\n",[799,6018,6016],{"__ignoreMap":346},[643,6020,6021],{},"Şu an sınıflarımız, veritabanına yazılmaya hazır hale geldiler. Ancak burada şöyle bir sorun çıkıyor karşımıza; hangi veritabanına, nasıl yazılacak. Bir şekilde bunları, bilidiriyor olmamız lazım. Nasıl bildireceğiz?",[643,6023,6024,6025,6028],{},"Bunun için yapmamız gereken şey, ana dizinde bulunan ",[646,6026,6027],{},"web.config"," dosyasını açmak ve içerisine bildirimi eklemek olacak. ",[643,6030,6031],{},"Hemen yapalım;",[655,6033,6034,6048],{},[658,6035,6036,6037,6039,6040,6043,6044,6047],{},"Ana dizinde bulunan ",[646,6038,6027],{}," dosyasına girelim. ",[799,6041,6042],{},"\u003CconnectionStrings>"," satırını bulalım. Dikkat edeceğiniz üzere, ",[646,6045,6046],{},"DefaultConnection"," isimli bir connectionstring halihazırda tanımlı durumda. Biz bu Connection String'i silip, onun yerine kendi bağlantı cümlemizi yazıyor olacağız.",[658,6049,6050,6051,6054],{},"DefaultConnection'u sildikten sonra aşağıdaki satırı ",[799,6052,6053],{},"\u003CconnectionStrings>...\u003C/connectionStrings>"," arasına ekleyelim.",[1264,6056,6060],{"className":6057,"code":6058,"language":6059,"meta":346,"style":346},"language-xml shiki shiki-themes material-theme-lighter github-light github-dark","\u003Cadd name=\"MvcProjesiContext\" connectionString=\"Data Source=(LocalDb)\\\\v11.0;Initial Catalog=MvcProjesi;Integrated Security=True\" providerName=\"System.Data.SqlClient\" />\n","xml",[799,6061,6062],{"__ignoreMap":346},[1272,6063,6064],{"class":1274,"line":1275},[1272,6065,6058],{},[643,6067,6068,6069,6072],{},"Burada dikkat etmemiz gereken konu, Context sınıfı olarak kullandığımız sınıf adını, tam olarak name kısmına yazmamız gerektiğidir. Ayrıca ",[799,6070,6071],{},"Data Source=(LocalDb)\\v11.0"," ile Visual Studio 2012 ile gelen, ayrıca Sql Server 2012 tarafından da sağlanıyor olan, Local Db sistemini kullanıyor olacağız. ",[643,6074,6075,6078],{},[646,6076,6077],{},"Local Db :"," Normalde bir bilgisayarda, Sql Server kullanmamız gerektiğinde, Sql Server Express kurarız (Ücretsiz olarak düşündüğümüzde). Bu ise uzun süren kurulum ve zor yapılandırma demek. Yeni gelen bu Local Db özelliğinde ise sistem, Sql'e erişim isteği duyduğu an, Sql Server başlatılır (çekirdek bileşen). İhtiyaç ortadan kalktığı an ise kendisini otomatik olarak kapatır. Kurulum boyutu 33 Mb'dır ve Visual Studio 2012,2013 ve Sql Server 2012 kurulumunda varsayılan olarak sisteme kurulur.",[643,6080,6081,6082,6085,6086,6088,6089,6092],{},"Biz bağlantı cümlemizde, ",[646,6083,6084],{},"Localdb","'yi kullanması gerektiğini, tablo adı olarak ta, ",[646,6087,5987],{}," adını kullanması gerektiğini söylemiş olduk. ",[799,6090,6091],{},"IntegratedSecurity=True"," ile de, şu an kullandığımız, Windows kullanıcı hesabını kullanmasını söyledik.",[643,6094,6095],{},"Bu yaptığımız ayarlar doğrultusunda, veritabanının oluşması için bir tetikleyiciye ihtiyacımız olacak. Normalde Code First'te veritabanı oluşturulmamış olduğunda, veritabanı üzerinden bir işlem yapılmak istendiğinde, otomatik olarak tablolar oluşturulmaktadır. ",[643,6097,6098],{},"Biz bunun yerine biraz daha profesyonel bir çözüm yapalım.",[655,6100,6101],{},[658,6102,6036,6103,6106],{},[646,6104,6105],{},"global.asax"," dosyasını açıp, içini aşağıdaki gibi güncelleyelim.",[1264,6108,6111],{"className":6109,"code":6110,"language":2600},[2598],"//Veritabanı context sınıfımızı referans veriyoruz\nusing MvcProjesi.Data;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\nusing System.Web.Optimization;\nusing System.Web.Routing;\n\nnamespace MvcProjesi\n{\n    public class MvcApplication : System.Web.HttpApplication\n    {\n        //Uygulama ilk başlatıldığında, buradaki metod çalışacak.\n        protected void Application_Start()\n        {\n            //Burada veritabanı sınıfımızdan, bir nesne oluşturuyoruz. using kullanmamızın sebebi,\n            //db nesnesinin işi bittiğinde, silinmesini ve hafızada yer tutmamasını sağlamak.\n            using (MvcProjesiContext db = new MvcProjesiContext())\n            {\n                //Bu metod, eğer veritabanımız oluşturulmamış ise, oluşturulmasını sağlıyor.\n                db.Database.CreateIfNotExists();\n            }\n            AreaRegistration.RegisterAllAreas();\n            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);\n            RouteConfig.RegisterRoutes(RouteTable.Routes);\n            BundleConfig.RegisterBundles(BundleTable.Bundles);\n        }\n    }\n}\n",[799,6112,6110],{"__ignoreMap":346},[655,6114,6115],{},[658,6116,6117],{},"Son değişikliğimizi de yaptıktan sonra, F5 tuşu ile projeyi çalıştıralım.",[643,6119,6120,6124],{},[895,6121],{"alt":6122,"src":6123},"Sunucu hatası","/images/2014/01/2014-01-07-12_40_25.jpg","Yukarıdaki hatayı aldık. Bunun sebebi, henüz Controller ve View yazmamış olmamızdan dolayı. Bu beklenen bir hataydı. Bizim asıl amacımız, veritabanını oluşturmaktı. Bakalım oluşmuş mu?",[655,6126,6127,6130],{},[658,6128,6129],{},"Bazılarınızın bilgisayarında, Sql Server Management Studio kurulu olmadığını varsayarak, veritabanı incelemesini Visual Studio üzerinden yapalım.",[658,6131,6132],{},"Öncelikle menüde **View>Server Explorer'**e tıklayalım.",[643,6134,6135],{},[895,6136],{"alt":6137,"src":6138},"Server explorer","/images/2014/01/2014-01-07-12_40_251.jpg",[655,6140,6141],{},[658,6142,6143],{},"Veritabanı yönetim penceresi açılmış bulunmaktadır.",[643,6145,6146],{},[895,6147],{"alt":6148,"src":6149},"Server yönetim paneli","/images/2014/01/2014-01-07-12_49_40.jpg",[643,6151,6152],{},"Evet, görüldüğü üzere tablolarımız, otomatik olarak Code First'ün desteğiyle veritabanımızda oluşturulmuş oldu.",[643,6154,6155],{},"Veritabanı katmanımız, böylelikle hazır oldu.",[643,6157,6158],{},"Bundan sonraki derslerimiz de, projemize devam ediyor olacağız.",[643,6160,5935,6161,5940],{},[771,6162,5939],{"href":6163},"/images/proje-dosyalar/asp-net-mvc-code-first-ile-veritabani-islemleri-2-asp-net-mvc-yazi-dizisi-12/MvcProjesi.zip",[643,6165,1976],{},[1978,6167,6168],{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":346,"searchDepth":347,"depth":347,"links":6170},[],"2014/01/2014-01-07-12_49_40.jpg","2014-01-07T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Code First ile Veritabanı İşlemleri – Proje Başlangıcı (Asp.Net Mvc Yazı Dizisi – 11)​​",{},{"title":19,"description":6173},"RQyDGpiJZRDFGTayQfncf8iGRu7ub1haiiL28VNRD2Y",{"id":6178,"title":27,"body":6179,"coverImage":7848,"createDate":7849,"description":7850,"extension":350,"meta":7851,"navigation":352,"path":28,"seo":7852,"stem":29,"__hash__":7853},"posts/dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-1-asp-net-mvc-yazi-dizisi-13.md",{"type":343,"value":6180,"toc":7846},[6181,6184,6190,6194,6197,6202,6205,6208,6243,6246,6251,6254,6274,6280,6283,6330,6336,6343,6354,6357,6362,6418,6430,6435,6440,6443,6451,6985,6990,6996,7002,7007,7123,7128,7152,7160,7728,7732,7752,7757,7772,7778,7781,7825,7832,7835,7842,7844],[639,6182,27],{"id":6183},"aspnet-mvc-controller-ve-view-i̇şlemleri-1-aspnet-mvc-yazı-dizisi-13",[643,6185,6186,853,6188],{},[646,6187,852],{},[771,6189,19],{"href":20},[643,6191,6192],{},[646,6193,861],{},[643,6195,6196],{},"Önceki derslerimizden hatırlayacağınız üzere, panel yönetimli bir blog uygulaması geliştiriyorduk. Blog projemizde Veri ve Data katmanını , Entity Framework Code First yaklaşımı ile modellemiştik. Ayrıca bu katmanda doğrulama (validation) kurallarını da tanımlamıştık.",[4105,6198,6199],{},[643,6200,6201],{},"Burada şuna değinmekte fayda var. Büyük ölçekli uygulamalarda, Data (Veritabanı) katmanı ile Model katmanını ayırma imkanına sahibiz. Bu konudan, ileri seviye derslerde bahsediyor olacağız. ",[643,6203,6204],{},"Bugünkü dersimizde ise, Controller ve View katmanına doğru bir geçiş yapacağız.",[643,6206,6207],{},"Şimdi öncelikle projemizin ön kısmında (panel kısmını ayrıca işleyeceğiz) nelere gereksinim var? Bir düşünelim.",[655,6209,6210,6213,6216,6219,6222,6225,6228,6231,6234,6237,6240],{},[658,6211,6212],{},"Üye girişi sayfası",[658,6214,6215],{},"Yeni üyelik sayfası",[658,6217,6218],{},"Kullanıcının kendi bilgilerini değiştirebileceği sayfa",[658,6220,6221],{},"Son 5 makalenin ana sayfada listelenmesi",[658,6223,6224],{},"Tüm makalelerin listelendiği sayfa",[658,6226,6227],{},"Son 5 yorumun ana sayfada listelenmesi",[658,6229,6230],{},"Tüm yorumların listelendiği sayfa",[658,6232,6233],{},"En çok kullanılan 10 etiketin ana sayfada listelenmesi",[658,6235,6236],{},"Etikete tıklandığında, o etiketi barındıran makalelerin listelenmesi",[658,6238,6239],{},"Makale sayfalarında, yorumların görünmesi",[658,6241,6242],{},"Makale sayfalarında, etiketlerin görünmesi",[643,6244,6245],{},"İsteklerimize bir göz gezdirdikten sonra, bu gereksinimleri karşılayabilecek, sırayla Controller ve View katmanlarımızı yazmaya başlayalım.",[4105,6247,6248],{},[643,6249,6250],{},"Burada dikkat edilmesini istediğim bir husus var. Normalde büyük çaplı projelerde, View ve Controller katmanları ayrı yazılır. Yani, Controller kısmı tamamen hazırlandıktan sonra, View kısmına geçilir. Ancak biz konunun daha iyi anlaşılabilmesi için Controller ve View katmanlarını paralel işleyeceğiz.",[643,6252,6253],{},"Projemize devam edelim;",[655,6255,6256,6266],{},[658,6257,6258,6259,6261,6262,6265],{},"Önceki derslerde kullandığımız, ",[646,6260,2024],{}," projemizi açalım. (Elinizde yok ise ",[771,6263,6264],{"href":6163},"şuradan"," indirebilirsiniz.)",[658,6267,6268,6270,6271,6273],{},[646,6269,1106],{}," klasörümüze sağ tıklayarak, ",[646,6272,1110],{}," diyelim. Aşağıdaki ekranla karşılacağız.",[643,6275,6276],{},[895,6277],{"alt":6278,"src":6279},"Controller ekleme ekranı","/images/2014/01/2014-01-11-11_38_05.jpg",[643,6281,6282],{},"Bu ekranda Web Api'ler zaten konumuz dışında. Diğer 3 kısmı inceleyelim.",[655,6284,6285,6291,6297,6306,6316,6327],{},[658,6286,6287,6290],{},[646,6288,6289],{},"MVC 5 Controller - Empty :"," Bunu seçersek eğer, Controllerimiz boş olarak oluşturulur. İçini bizim doldurmamız gerekir.",[658,6292,6293,6296],{},[646,6294,6295],{},"MVC 5 Controller - with read/write actions :"," Bunu seçtiğimizde ise, ekleme, silme, gösterme işlemleri için gereken Action (ne anlama geldiğini az sonra inceleyeceğiz) 'lar otomatik oluşturulur.",[658,6298,6299,853,6302,6305],{},[646,6300,6301],{},"MVC 5 Controller -",[646,6303,6304],{},"with views, using Entity Framework :"," Bu ise, halihazırda var olan, veri katmanımızdaki verileri kullanarak, otomatik olarak Action'ları doldurur.​​​​",[658,6307,6308,6309,6312,6313,6315],{},"Biz ",[646,6310,6311],{},"Empty"," olanını seçip, ",[646,6314,1129],{}," diyoruz. ",[658,6317,6318,3777,6321,6324,6325,1130],{},[646,6319,6320],{},"Controller Name",[646,6322,6323],{},"HomeController"," deyip, tekrar ",[646,6326,1129],{},[658,6328,6329],{},"Karşımıza aşağıdaki kodlar gelmiş bulunmaktadır.",[1264,6331,6334],{"className":6332,"code":6333,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\n\nnamespace MvcProjesi.Controllers\n{\n    public class HomeController : Controller\n    {\n        //\n        // GET: /Home/\n        public ActionResult Index()\n        {\n            return View();\n        }\n    }\n}\n",[799,6335,6333],{"__ignoreMap":346},[643,6337,6338,6339,6342],{},"Yukarıdaki kodlarda, ",[799,6340,6341],{},"public ActionResult Index()"," kısmı ilginizi çekmiş olmalı.",[643,6344,6345,6346,6349,6350,6353],{},"Bu metod aslında Action metodu oluyor. Bu metod ile gereken işlemlerimizi yapıp, geriye ",[646,6347,6348],{},"Index()"," (burası View adı oluyor, kullandığımız View'lerin isimlerine göre değişecek) View'imizi döndürüyoruz. Zaten metodun son satırı ",[799,6351,6352],{},"return View();"," şeklinde, bahsi geçen View'i geriye döndürüyor.",[643,6355,6356],{},"Bu noktada, geri dönüş türü, görüldüğü gibi ActionResult. Biz buradan, farklı ActionResult türleri gönderebilme imkanına sahibiz. Şimdi ActionResult türlerini listeleyelim.",[643,6358,6359],{},[646,6360,6361],{},"ActionResult Türleri",[655,6363,6364,6370,6376,6382,6388,6394,6400,6406,6412],{},[658,6365,6366,6369],{},[646,6367,6368],{},"ContentResult :"," Metinsel içerik döndürür.",[658,6371,6372,6375],{},[646,6373,6374],{},"EmptyResult :"," Herhangi bir değer döndürmez.",[658,6377,6378,6381],{},[646,6379,6380],{},"FileResult :"," Binary formatında dosya içeriği döndürür.",[658,6383,6384,6387],{},[646,6385,6386],{},"HttpUnauthorizedResult :"," Yetkisiz HTTP isteği sonucu döndürür.",[658,6389,6390,6393],{},[646,6391,6392],{},"JavaScriptResult :"," JavaScript içeriği döndürür.",[658,6395,6396,6399],{},[646,6397,6398],{},"JsonResult :"," Json olarak formatlanmış içerik döndürür.",[658,6401,6402,6405],{},[646,6403,6404],{},"RedirectResult :"," Farklı bir Action'a yönlendirme yapar.",[658,6407,6408,6411],{},[646,6409,6410],{},"RedirectToRouteResult :"," Farklı bir Action'a, belirlenen Route kurallarına göre, yönlendirme yapar.",[658,6413,6414,6417],{},[646,6415,6416],{},"ViewResultBase :"," View içeriği döndürür.",[643,6419,6420,6421,6423,6424,6426,6427,6429],{},"Mvc projelerinde, varsayılan olarak ",[646,6422,6323],{},"'in ",[646,6425,1219],{}," View'i çağrıldığı için (varsayılanı ilerleyen derslerimizde değiştireceğiz) bizde, açılış sayfası olarak ",[646,6428,1219],{}," sayfasını hazırlayacağız.",[4105,6431,6432],{},[643,6433,6434],{},"Derslerimizde, css ve görselleştirme konularına çok fazla değinmeyeceğiz. Css konusunda bilgi sahibi olmanız, yapılan işlemleri anlamanızı kolaylaştıracaktır. Css ile alakalı, ilerleyen zamanlar da özel dersler yapabiliriz.",[643,6436,6437],{},[646,6438,6439],{},"Layout Sayfası",[643,6441,6442],{},"Öncelikle menu vs. yerleşimleri ayarlayacağımız, Layout sayfasını hazırlayalım.",[655,6444,6445],{},[658,6446,6447,6450],{},[646,6448,6449],{},"Views>Shared>_Layout.cshtml"," dosyamızı açalım. Dosyamızın içeriği aşağıdaki gibidir.",[1264,6452,6454],{"className":1266,"code":6453,"language":1268,"meta":346,"style":346},"\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\n    \u003Cmeta charset=\"utf-8\" />\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \u003Ctitle>@ViewBag.Title - My ASP.NET Application\u003C/title>\n    @Styles.Render(\"~/Content/css\")\n    @Scripts.Render(\"~/bundles/modernizr\")\n\n\u003C/head>\n\u003Cbody>\n    \u003Cdiv class=\"navbar navbar-inverse navbar-fixed-top\">\n        \u003Cdiv class=\"container\">\n            \u003Cdiv class=\"navbar-header\">\n                \u003Cbutton type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".navbar-collapse\">\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                \u003C/button>\n                @Html.ActionLink(\"Application name\", \"Index\", \"Home\", null, new { @class = \"navbar-brand\" })\n            \u003C/div>\n            \u003Cdiv class=\"navbar-collapse collapse\">\n                \u003Cul class=\"nav navbar-nav\">\n                    \u003Cli>@Html.ActionLink(\"Home\", \"Index\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"About\", \"About\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"Contact\", \"Contact\", \"Home\")\u003C/li>\n                \u003C/ul>\n               \n            \u003C/div>\n        \u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"container body-content\">\n        @RenderBody()\n        \u003Chr />\n        \u003Cfooter>\n            \u003Cp>&copy; @DateTime.Now.Year - My ASP.NET Application\u003C/p>\n        \u003C/footer>\n    \u003C/div>\n\n    @Scripts.Render(\"~/bundles/jquery\")\n    @Scripts.Render(\"~/bundles/bootstrap\")\n    @RenderSection(\"scripts\", required: false)\n\u003C/body>\n\u003C/html>\n",[799,6455,6456,6466,6474,6482,6500,6528,6544,6548,6552,6556,6564,6572,6590,6608,6626,6674,6696,6718,6740,6748,6752,6760,6778,6796,6812,6828,6844,6852,6857,6865,6873,6881,6899,6903,6911,6919,6937,6945,6953,6957,6961,6965,6969,6977],{"__ignoreMap":346},[1272,6457,6458,6460,6462,6464],{"class":1274,"line":1275},[1272,6459,1279],{"class":1278},[1272,6461,1283],{"class":1282},[1272,6463,1287],{"class":1286},[1272,6465,1290],{"class":1278},[1272,6467,6468,6470,6472],{"class":1274,"line":347},[1272,6469,1295],{"class":1278},[1272,6471,1268],{"class":1282},[1272,6473,1290],{"class":1278},[1272,6475,6476,6478,6480],{"class":1274,"line":1302},[1272,6477,1295],{"class":1278},[1272,6479,1307],{"class":1282},[1272,6481,1290],{"class":1278},[1272,6483,6484,6486,6488,6490,6492,6494,6496,6498],{"class":1274,"line":1312},[1272,6485,1315],{"class":1278},[1272,6487,1318],{"class":1282},[1272,6489,1321],{"class":1286},[1272,6491,1324],{"class":1278},[1272,6493,1328],{"class":1327},[1272,6495,1332],{"class":1331},[1272,6497,1328],{"class":1327},[1272,6499,1337],{"class":1278},[1272,6501,6502,6504,6506,6508,6510,6512,6514,6516,6518,6520,6522,6524,6526],{"class":1274,"line":1340},[1272,6503,1315],{"class":1278},[1272,6505,1318],{"class":1282},[1272,6507,1347],{"class":1286},[1272,6509,1324],{"class":1278},[1272,6511,1328],{"class":1327},[1272,6513,1354],{"class":1331},[1272,6515,1328],{"class":1327},[1272,6517,1359],{"class":1286},[1272,6519,1324],{"class":1278},[1272,6521,1328],{"class":1327},[1272,6523,1366],{"class":1331},[1272,6525,1328],{"class":1327},[1272,6527,1290],{"class":1278},[1272,6529,6530,6532,6534,6536,6538,6540,6542],{"class":1274,"line":1373},[1272,6531,1315],{"class":1278},[1272,6533,1378],{"class":1282},[1272,6535,1381],{"class":1278},[1272,6537,1385],{"class":1384},[1272,6539,1388],{"class":1278},[1272,6541,1378],{"class":1282},[1272,6543,1290],{"class":1278},[1272,6545,6546],{"class":1274,"line":1395},[1272,6547,1398],{"class":1384},[1272,6549,6550],{"class":1274,"line":1401},[1272,6551,1404],{"class":1384},[1272,6553,6554],{"class":1274,"line":1407},[1272,6555,1410],{"emptyLinePlaceholder":352},[1272,6557,6558,6560,6562],{"class":1274,"line":1413},[1272,6559,1388],{"class":1278},[1272,6561,1307],{"class":1282},[1272,6563,1290],{"class":1278},[1272,6565,6566,6568,6570],{"class":1274,"line":1422},[1272,6567,1295],{"class":1278},[1272,6569,1427],{"class":1282},[1272,6571,1290],{"class":1278},[1272,6573,6574,6576,6578,6580,6582,6584,6586,6588],{"class":1274,"line":1432},[1272,6575,1315],{"class":1278},[1272,6577,1437],{"class":1282},[1272,6579,1440],{"class":1286},[1272,6581,1324],{"class":1278},[1272,6583,1328],{"class":1327},[1272,6585,1447],{"class":1331},[1272,6587,1328],{"class":1327},[1272,6589,1290],{"class":1278},[1272,6591,6592,6594,6596,6598,6600,6602,6604,6606],{"class":1274,"line":1454},[1272,6593,1457],{"class":1278},[1272,6595,1437],{"class":1282},[1272,6597,1440],{"class":1286},[1272,6599,1324],{"class":1278},[1272,6601,1328],{"class":1327},[1272,6603,1468],{"class":1331},[1272,6605,1328],{"class":1327},[1272,6607,1290],{"class":1278},[1272,6609,6610,6612,6614,6616,6618,6620,6622,6624],{"class":1274,"line":1475},[1272,6611,1478],{"class":1278},[1272,6613,1437],{"class":1282},[1272,6615,1440],{"class":1286},[1272,6617,1324],{"class":1278},[1272,6619,1328],{"class":1327},[1272,6621,1489],{"class":1331},[1272,6623,1328],{"class":1327},[1272,6625,1290],{"class":1278},[1272,6627,6628,6630,6632,6634,6636,6638,6640,6642,6644,6646,6648,6650,6652,6654,6656,6658,6660,6662,6664,6666,6668,6670,6672],{"class":1274,"line":1496},[1272,6629,1499],{"class":1278},[1272,6631,1502],{"class":1282},[1272,6633,1505],{"class":1286},[1272,6635,1324],{"class":1278},[1272,6637,1328],{"class":1327},[1272,6639,1502],{"class":1331},[1272,6641,1328],{"class":1327},[1272,6643,1440],{"class":1286},[1272,6645,1324],{"class":1278},[1272,6647,1328],{"class":1327},[1272,6649,1522],{"class":1331},[1272,6651,1328],{"class":1327},[1272,6653,1527],{"class":1286},[1272,6655,1324],{"class":1278},[1272,6657,1328],{"class":1327},[1272,6659,1534],{"class":1331},[1272,6661,1328],{"class":1327},[1272,6663,1539],{"class":1286},[1272,6665,1324],{"class":1278},[1272,6667,1328],{"class":1327},[1272,6669,1546],{"class":1331},[1272,6671,1328],{"class":1327},[1272,6673,1290],{"class":1278},[1272,6675,6676,6678,6680,6682,6684,6686,6688,6690,6692,6694],{"class":1274,"line":1553},[1272,6677,1556],{"class":1278},[1272,6679,1272],{"class":1282},[1272,6681,1440],{"class":1286},[1272,6683,1324],{"class":1278},[1272,6685,1328],{"class":1327},[1272,6687,1567],{"class":1331},[1272,6689,1328],{"class":1327},[1272,6691,1572],{"class":1278},[1272,6693,1272],{"class":1282},[1272,6695,1290],{"class":1278},[1272,6697,6698,6700,6702,6704,6706,6708,6710,6712,6714,6716],{"class":1274,"line":1579},[1272,6699,1556],{"class":1278},[1272,6701,1272],{"class":1282},[1272,6703,1440],{"class":1286},[1272,6705,1324],{"class":1278},[1272,6707,1328],{"class":1327},[1272,6709,1567],{"class":1331},[1272,6711,1328],{"class":1327},[1272,6713,1572],{"class":1278},[1272,6715,1272],{"class":1282},[1272,6717,1290],{"class":1278},[1272,6719,6720,6722,6724,6726,6728,6730,6732,6734,6736,6738],{"class":1274,"line":1602},[1272,6721,1556],{"class":1278},[1272,6723,1272],{"class":1282},[1272,6725,1440],{"class":1286},[1272,6727,1324],{"class":1278},[1272,6729,1328],{"class":1327},[1272,6731,1567],{"class":1331},[1272,6733,1328],{"class":1327},[1272,6735,1572],{"class":1278},[1272,6737,1272],{"class":1282},[1272,6739,1290],{"class":1278},[1272,6741,6742,6744,6746],{"class":1274,"line":1625},[1272,6743,1628],{"class":1278},[1272,6745,1502],{"class":1282},[1272,6747,1290],{"class":1278},[1272,6749,6750],{"class":1274,"line":1635},[1272,6751,1638],{"class":1384},[1272,6753,6754,6756,6758],{"class":1274,"line":1641},[1272,6755,1644],{"class":1278},[1272,6757,1437],{"class":1282},[1272,6759,1290],{"class":1278},[1272,6761,6762,6764,6766,6768,6770,6772,6774,6776],{"class":1274,"line":1651},[1272,6763,1478],{"class":1278},[1272,6765,1437],{"class":1282},[1272,6767,1440],{"class":1286},[1272,6769,1324],{"class":1278},[1272,6771,1328],{"class":1327},[1272,6773,1664],{"class":1331},[1272,6775,1328],{"class":1327},[1272,6777,1290],{"class":1278},[1272,6779,6780,6782,6784,6786,6788,6790,6792,6794],{"class":1274,"line":1671},[1272,6781,1499],{"class":1278},[1272,6783,655],{"class":1282},[1272,6785,1440],{"class":1286},[1272,6787,1324],{"class":1278},[1272,6789,1328],{"class":1327},[1272,6791,1684],{"class":1331},[1272,6793,1328],{"class":1327},[1272,6795,1290],{"class":1278},[1272,6797,6798,6800,6802,6804,6806,6808,6810],{"class":1274,"line":1691},[1272,6799,1556],{"class":1278},[1272,6801,658],{"class":1282},[1272,6803,1381],{"class":1278},[1272,6805,1700],{"class":1384},[1272,6807,1388],{"class":1278},[1272,6809,658],{"class":1282},[1272,6811,1290],{"class":1278},[1272,6813,6814,6816,6818,6820,6822,6824,6826],{"class":1274,"line":1709},[1272,6815,1556],{"class":1278},[1272,6817,658],{"class":1282},[1272,6819,1381],{"class":1278},[1272,6821,1718],{"class":1384},[1272,6823,1388],{"class":1278},[1272,6825,658],{"class":1282},[1272,6827,1290],{"class":1278},[1272,6829,6830,6832,6834,6836,6838,6840,6842],{"class":1274,"line":1727},[1272,6831,1556],{"class":1278},[1272,6833,658],{"class":1282},[1272,6835,1381],{"class":1278},[1272,6837,1736],{"class":1384},[1272,6839,1388],{"class":1278},[1272,6841,658],{"class":1282},[1272,6843,1290],{"class":1278},[1272,6845,6846,6848,6850],{"class":1274,"line":1745},[1272,6847,1628],{"class":1278},[1272,6849,655],{"class":1282},[1272,6851,1290],{"class":1278},[1272,6853,6854],{"class":1274,"line":1754},[1272,6855,6856],{"class":1384},"               \n",[1272,6858,6859,6861,6863],{"class":1274,"line":1760},[1272,6860,1644],{"class":1278},[1272,6862,1437],{"class":1282},[1272,6864,1290],{"class":1278},[1272,6866,6867,6869,6871],{"class":1274,"line":1769},[1272,6868,1772],{"class":1278},[1272,6870,1437],{"class":1282},[1272,6872,1290],{"class":1278},[1272,6874,6875,6877,6879],{"class":1274,"line":1779},[1272,6876,1782],{"class":1278},[1272,6878,1437],{"class":1282},[1272,6880,1290],{"class":1278},[1272,6882,6883,6885,6887,6889,6891,6893,6895,6897],{"class":1274,"line":1789},[1272,6884,1315],{"class":1278},[1272,6886,1437],{"class":1282},[1272,6888,1440],{"class":1286},[1272,6890,1324],{"class":1278},[1272,6892,1328],{"class":1327},[1272,6894,1802],{"class":1331},[1272,6896,1328],{"class":1327},[1272,6898,1290],{"class":1278},[1272,6900,6901],{"class":1274,"line":1809},[1272,6902,1812],{"class":1384},[1272,6904,6905,6907,6909],{"class":1274,"line":1815},[1272,6906,1457],{"class":1278},[1272,6908,1820],{"class":1282},[1272,6910,1337],{"class":1278},[1272,6912,6913,6915,6917],{"class":1274,"line":1825},[1272,6914,1457],{"class":1278},[1272,6916,1830],{"class":1282},[1272,6918,1290],{"class":1278},[1272,6920,6921,6923,6925,6927,6929,6931,6933,6935],{"class":1274,"line":1835},[1272,6922,1478],{"class":1278},[1272,6924,643],{"class":1282},[1272,6926,1381],{"class":1278},[1272,6928,1845],{"class":1844},[1272,6930,1848],{"class":1384},[1272,6932,1388],{"class":1278},[1272,6934,643],{"class":1282},[1272,6936,1290],{"class":1278},[1272,6938,6939,6941,6943],{"class":1274,"line":1857},[1272,6940,1772],{"class":1278},[1272,6942,1830],{"class":1282},[1272,6944,1290],{"class":1278},[1272,6946,6947,6949,6951],{"class":1274,"line":1866},[1272,6948,1782],{"class":1278},[1272,6950,1437],{"class":1282},[1272,6952,1290],{"class":1278},[1272,6954,6955],{"class":1274,"line":1875},[1272,6956,1410],{"emptyLinePlaceholder":352},[1272,6958,6959],{"class":1274,"line":1880},[1272,6960,1883],{"class":1384},[1272,6962,6963],{"class":1274,"line":1886},[1272,6964,1889],{"class":1384},[1272,6966,6967],{"class":1274,"line":1892},[1272,6968,1895],{"class":1384},[1272,6970,6971,6973,6975],{"class":1274,"line":1898},[1272,6972,1388],{"class":1278},[1272,6974,1427],{"class":1282},[1272,6976,1290],{"class":1278},[1272,6978,6979,6981,6983],{"class":1274,"line":1907},[1272,6980,1388],{"class":1278},[1272,6982,1268],{"class":1282},[1272,6984,1290],{"class":1278},[655,6986,6987],{},[658,6988,6989],{},"20.satırımızın içeriği, sol üstteki logoyu temsil etmekte, içeriğini aşağıdaki gibi değiştirelim.",[1264,6991,6994],{"className":6992,"code":6993,"language":2600},[2598],"@Html.ActionLink(\"Mvc Projesi\", \"Index\", \"Home\", null, new { @class = \"navbar-brand\" })\n",[799,6995,6993],{"__ignoreMap":346},[643,6997,6998,6999,7001],{},"Burada logomuzun, metinsel içeriğini ",[646,7000,5587],{}," olarak değiştirmiş olduk.",[655,7003,7004],{},[658,7005,7006],{},"23. satırda başlayan kısım, bizim menümüzü temsil etmektedir. Bu kısmı, projemize göre yeniden düzenleyelim.",[1264,7008,7010],{"className":1266,"code":7009,"language":1268,"meta":346,"style":346},"\u003Cul class=\"nav navbar-nav\">\n    \u003Cli>@Html.ActionLink(\"Ana Sayfa\", \"Index\", \"Home\")\u003C/li>\n    \u003Cli>@Html.ActionLink(\"Tüm Makaleler\", \"TumMakaleler\", \"Home\")\u003C/li>\n    \u003Cli>@Html.ActionLink(\"Tüm Yorumlar\", \"TumYorumlar\", \"Home\")\u003C/li>\n    \u003Cli>@Html.ActionLink(\"Üye Girişi\", \"UyeGiris\", \"Home\")\u003C/li>\n    \u003Cli>@Html.ActionLink(\"Yeni Üyelik\", \"YeniUyelik\", \"Home\")\u003C/li>\n\u003C/ul>\n",[799,7011,7012,7030,7047,7064,7081,7098,7115],{"__ignoreMap":346},[1272,7013,7014,7016,7018,7020,7022,7024,7026,7028],{"class":1274,"line":1275},[1272,7015,1295],{"class":1278},[1272,7017,655],{"class":1282},[1272,7019,1440],{"class":1286},[1272,7021,1324],{"class":1278},[1272,7023,1328],{"class":1327},[1272,7025,1684],{"class":1331},[1272,7027,1328],{"class":1327},[1272,7029,1290],{"class":1278},[1272,7031,7032,7034,7036,7038,7041,7043,7045],{"class":1274,"line":347},[1272,7033,1315],{"class":1278},[1272,7035,658],{"class":1282},[1272,7037,1381],{"class":1278},[1272,7039,7040],{"class":1384},"@Html.ActionLink(\"Ana Sayfa\", \"Index\", \"Home\")",[1272,7042,1388],{"class":1278},[1272,7044,658],{"class":1282},[1272,7046,1290],{"class":1278},[1272,7048,7049,7051,7053,7055,7058,7060,7062],{"class":1274,"line":1302},[1272,7050,1315],{"class":1278},[1272,7052,658],{"class":1282},[1272,7054,1381],{"class":1278},[1272,7056,7057],{"class":1384},"@Html.ActionLink(\"Tüm Makaleler\", \"TumMakaleler\", \"Home\")",[1272,7059,1388],{"class":1278},[1272,7061,658],{"class":1282},[1272,7063,1290],{"class":1278},[1272,7065,7066,7068,7070,7072,7075,7077,7079],{"class":1274,"line":1312},[1272,7067,1315],{"class":1278},[1272,7069,658],{"class":1282},[1272,7071,1381],{"class":1278},[1272,7073,7074],{"class":1384},"@Html.ActionLink(\"Tüm Yorumlar\", \"TumYorumlar\", \"Home\")",[1272,7076,1388],{"class":1278},[1272,7078,658],{"class":1282},[1272,7080,1290],{"class":1278},[1272,7082,7083,7085,7087,7089,7092,7094,7096],{"class":1274,"line":1340},[1272,7084,1315],{"class":1278},[1272,7086,658],{"class":1282},[1272,7088,1381],{"class":1278},[1272,7090,7091],{"class":1384},"@Html.ActionLink(\"Üye Girişi\", \"UyeGiris\", \"Home\")",[1272,7093,1388],{"class":1278},[1272,7095,658],{"class":1282},[1272,7097,1290],{"class":1278},[1272,7099,7100,7102,7104,7106,7109,7111,7113],{"class":1274,"line":1373},[1272,7101,1315],{"class":1278},[1272,7103,658],{"class":1282},[1272,7105,1381],{"class":1278},[1272,7107,7108],{"class":1384},"@Html.ActionLink(\"Yeni Üyelik\", \"YeniUyelik\", \"Home\")",[1272,7110,1388],{"class":1278},[1272,7112,658],{"class":1282},[1272,7114,1290],{"class":1278},[1272,7116,7117,7119,7121],{"class":1274,"line":1395},[1272,7118,1388],{"class":1278},[1272,7120,655],{"class":1282},[1272,7122,1290],{"class":1278},[655,7124,7125],{},[658,7126,7127],{},"Son olarak da, menümüzü düzenlemeden önce ki 36.satır, düzenledikten sonra ki 38. satır, sayfaların altında çıkan haklar kısmını temsil etmektedir. Bu kısmı da, aşağıdaki gibi düzenleyelim.",[1264,7129,7131],{"className":1266,"code":7130,"language":1268,"meta":346,"style":346},"\u003Cp>&copy; @DateTime.Now.Year - Bizim Mvc Projemiz\u003C/p>\n",[799,7132,7133],{"__ignoreMap":346},[1272,7134,7135,7137,7139,7141,7143,7146,7148,7150],{"class":1274,"line":1275},[1272,7136,1295],{"class":1278},[1272,7138,643],{"class":1282},[1272,7140,1381],{"class":1278},[1272,7142,1845],{"class":1844},[1272,7144,7145],{"class":1384}," @DateTime.Now.Year - Bizim Mvc Projemiz",[1272,7147,1388],{"class":1278},[1272,7149,643],{"class":1282},[1272,7151,1290],{"class":1278},[655,7153,7154],{},[658,7155,7156,7157,7159],{},"Tüm düzenlemelerimizi, yaptıktan sonra, ",[646,7158,1246],{}," sayfamızın içeriği, aşağıdaki gibi oldu.",[1264,7161,7163],{"className":1266,"code":7162,"language":1268,"meta":346,"style":346},"\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\n    \u003Cmeta charset=\"utf-8\" />\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \u003Ctitle>@ViewBag.Title - My ASP.NET Application\u003C/title>\n    @Styles.Render(\"~/Content/css\")\n    @Scripts.Render(\"~/bundles/modernizr\")\n\n\u003C/head>\n\u003Cbody>\n    \u003Cdiv class=\"navbar navbar-inverse navbar-fixed-top\">\n        \u003Cdiv class=\"container\">\n            \u003Cdiv class=\"navbar-header\">\n                \u003Cbutton type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".navbar-collapse\">\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                    \u003Cspan class=\"icon-bar\">\u003C/span>\n                \u003C/button>\n                @Html.ActionLink(\"Mvc Projesi\", \"Index\", \"Home\", null, new { @class = \"navbar-brand\" })\n            \u003C/div>\n            \u003Cdiv class=\"navbar-collapse collapse\">\n                \u003Cul class=\"nav navbar-nav\">\n                    \u003Cli>@Html.ActionLink(\"Ana Sayfa\", \"Index\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"Tüm Makaleler\", \"TumMakaleler\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"Tüm Yorumlar\", \"TumYorumlar\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"Üye Girişi\", \"UyeGiris\", \"Home\")\u003C/li>\n                    \u003Cli>@Html.ActionLink(\"Yeni Üyelik\", \"YeniUyelik\", \"Home\")\u003C/li>\n                \u003C/ul>\n\n            \u003C/div>\n        \u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"container body-content\">\n        @RenderBody()\n        \u003Chr />\n        \u003Cfooter>\n            \u003Cp>&copy; @DateTime.Now.Year - Bizim Mvc Projemiz\u003C/p>\n        \u003C/footer>\n    \u003C/div>\n\n    @Scripts.Render(\"~/bundles/jquery\")\n    @Scripts.Render(\"~/bundles/bootstrap\")\n    @RenderSection(\"scripts\", required: false)\n\u003C/body>\n\u003C/html>\n",[799,7164,7165,7175,7183,7191,7209,7237,7253,7257,7261,7265,7273,7281,7299,7317,7335,7383,7405,7427,7449,7457,7462,7470,7488,7506,7522,7538,7554,7570,7586,7594,7598,7606,7614,7622,7640,7644,7652,7660,7678,7686,7694,7698,7702,7706,7710,7719],{"__ignoreMap":346},[1272,7166,7167,7169,7171,7173],{"class":1274,"line":1275},[1272,7168,1279],{"class":1278},[1272,7170,1283],{"class":1282},[1272,7172,1287],{"class":1286},[1272,7174,1290],{"class":1278},[1272,7176,7177,7179,7181],{"class":1274,"line":347},[1272,7178,1295],{"class":1278},[1272,7180,1268],{"class":1282},[1272,7182,1290],{"class":1278},[1272,7184,7185,7187,7189],{"class":1274,"line":1302},[1272,7186,1295],{"class":1278},[1272,7188,1307],{"class":1282},[1272,7190,1290],{"class":1278},[1272,7192,7193,7195,7197,7199,7201,7203,7205,7207],{"class":1274,"line":1312},[1272,7194,1315],{"class":1278},[1272,7196,1318],{"class":1282},[1272,7198,1321],{"class":1286},[1272,7200,1324],{"class":1278},[1272,7202,1328],{"class":1327},[1272,7204,1332],{"class":1331},[1272,7206,1328],{"class":1327},[1272,7208,1337],{"class":1278},[1272,7210,7211,7213,7215,7217,7219,7221,7223,7225,7227,7229,7231,7233,7235],{"class":1274,"line":1340},[1272,7212,1315],{"class":1278},[1272,7214,1318],{"class":1282},[1272,7216,1347],{"class":1286},[1272,7218,1324],{"class":1278},[1272,7220,1328],{"class":1327},[1272,7222,1354],{"class":1331},[1272,7224,1328],{"class":1327},[1272,7226,1359],{"class":1286},[1272,7228,1324],{"class":1278},[1272,7230,1328],{"class":1327},[1272,7232,1366],{"class":1331},[1272,7234,1328],{"class":1327},[1272,7236,1290],{"class":1278},[1272,7238,7239,7241,7243,7245,7247,7249,7251],{"class":1274,"line":1373},[1272,7240,1315],{"class":1278},[1272,7242,1378],{"class":1282},[1272,7244,1381],{"class":1278},[1272,7246,1385],{"class":1384},[1272,7248,1388],{"class":1278},[1272,7250,1378],{"class":1282},[1272,7252,1290],{"class":1278},[1272,7254,7255],{"class":1274,"line":1395},[1272,7256,1398],{"class":1384},[1272,7258,7259],{"class":1274,"line":1401},[1272,7260,1404],{"class":1384},[1272,7262,7263],{"class":1274,"line":1407},[1272,7264,1410],{"emptyLinePlaceholder":352},[1272,7266,7267,7269,7271],{"class":1274,"line":1413},[1272,7268,1388],{"class":1278},[1272,7270,1307],{"class":1282},[1272,7272,1290],{"class":1278},[1272,7274,7275,7277,7279],{"class":1274,"line":1422},[1272,7276,1295],{"class":1278},[1272,7278,1427],{"class":1282},[1272,7280,1290],{"class":1278},[1272,7282,7283,7285,7287,7289,7291,7293,7295,7297],{"class":1274,"line":1432},[1272,7284,1315],{"class":1278},[1272,7286,1437],{"class":1282},[1272,7288,1440],{"class":1286},[1272,7290,1324],{"class":1278},[1272,7292,1328],{"class":1327},[1272,7294,1447],{"class":1331},[1272,7296,1328],{"class":1327},[1272,7298,1290],{"class":1278},[1272,7300,7301,7303,7305,7307,7309,7311,7313,7315],{"class":1274,"line":1454},[1272,7302,1457],{"class":1278},[1272,7304,1437],{"class":1282},[1272,7306,1440],{"class":1286},[1272,7308,1324],{"class":1278},[1272,7310,1328],{"class":1327},[1272,7312,1468],{"class":1331},[1272,7314,1328],{"class":1327},[1272,7316,1290],{"class":1278},[1272,7318,7319,7321,7323,7325,7327,7329,7331,7333],{"class":1274,"line":1475},[1272,7320,1478],{"class":1278},[1272,7322,1437],{"class":1282},[1272,7324,1440],{"class":1286},[1272,7326,1324],{"class":1278},[1272,7328,1328],{"class":1327},[1272,7330,1489],{"class":1331},[1272,7332,1328],{"class":1327},[1272,7334,1290],{"class":1278},[1272,7336,7337,7339,7341,7343,7345,7347,7349,7351,7353,7355,7357,7359,7361,7363,7365,7367,7369,7371,7373,7375,7377,7379,7381],{"class":1274,"line":1496},[1272,7338,1499],{"class":1278},[1272,7340,1502],{"class":1282},[1272,7342,1505],{"class":1286},[1272,7344,1324],{"class":1278},[1272,7346,1328],{"class":1327},[1272,7348,1502],{"class":1331},[1272,7350,1328],{"class":1327},[1272,7352,1440],{"class":1286},[1272,7354,1324],{"class":1278},[1272,7356,1328],{"class":1327},[1272,7358,1522],{"class":1331},[1272,7360,1328],{"class":1327},[1272,7362,1527],{"class":1286},[1272,7364,1324],{"class":1278},[1272,7366,1328],{"class":1327},[1272,7368,1534],{"class":1331},[1272,7370,1328],{"class":1327},[1272,7372,1539],{"class":1286},[1272,7374,1324],{"class":1278},[1272,7376,1328],{"class":1327},[1272,7378,1546],{"class":1331},[1272,7380,1328],{"class":1327},[1272,7382,1290],{"class":1278},[1272,7384,7385,7387,7389,7391,7393,7395,7397,7399,7401,7403],{"class":1274,"line":1553},[1272,7386,1556],{"class":1278},[1272,7388,1272],{"class":1282},[1272,7390,1440],{"class":1286},[1272,7392,1324],{"class":1278},[1272,7394,1328],{"class":1327},[1272,7396,1567],{"class":1331},[1272,7398,1328],{"class":1327},[1272,7400,1572],{"class":1278},[1272,7402,1272],{"class":1282},[1272,7404,1290],{"class":1278},[1272,7406,7407,7409,7411,7413,7415,7417,7419,7421,7423,7425],{"class":1274,"line":1579},[1272,7408,1556],{"class":1278},[1272,7410,1272],{"class":1282},[1272,7412,1440],{"class":1286},[1272,7414,1324],{"class":1278},[1272,7416,1328],{"class":1327},[1272,7418,1567],{"class":1331},[1272,7420,1328],{"class":1327},[1272,7422,1572],{"class":1278},[1272,7424,1272],{"class":1282},[1272,7426,1290],{"class":1278},[1272,7428,7429,7431,7433,7435,7437,7439,7441,7443,7445,7447],{"class":1274,"line":1602},[1272,7430,1556],{"class":1278},[1272,7432,1272],{"class":1282},[1272,7434,1440],{"class":1286},[1272,7436,1324],{"class":1278},[1272,7438,1328],{"class":1327},[1272,7440,1567],{"class":1331},[1272,7442,1328],{"class":1327},[1272,7444,1572],{"class":1278},[1272,7446,1272],{"class":1282},[1272,7448,1290],{"class":1278},[1272,7450,7451,7453,7455],{"class":1274,"line":1625},[1272,7452,1628],{"class":1278},[1272,7454,1502],{"class":1282},[1272,7456,1290],{"class":1278},[1272,7458,7459],{"class":1274,"line":1635},[1272,7460,7461],{"class":1384},"                @Html.ActionLink(\"Mvc Projesi\", \"Index\", \"Home\", null, new { @class = \"navbar-brand\" })\n",[1272,7463,7464,7466,7468],{"class":1274,"line":1641},[1272,7465,1644],{"class":1278},[1272,7467,1437],{"class":1282},[1272,7469,1290],{"class":1278},[1272,7471,7472,7474,7476,7478,7480,7482,7484,7486],{"class":1274,"line":1651},[1272,7473,1478],{"class":1278},[1272,7475,1437],{"class":1282},[1272,7477,1440],{"class":1286},[1272,7479,1324],{"class":1278},[1272,7481,1328],{"class":1327},[1272,7483,1664],{"class":1331},[1272,7485,1328],{"class":1327},[1272,7487,1290],{"class":1278},[1272,7489,7490,7492,7494,7496,7498,7500,7502,7504],{"class":1274,"line":1671},[1272,7491,1499],{"class":1278},[1272,7493,655],{"class":1282},[1272,7495,1440],{"class":1286},[1272,7497,1324],{"class":1278},[1272,7499,1328],{"class":1327},[1272,7501,1684],{"class":1331},[1272,7503,1328],{"class":1327},[1272,7505,1290],{"class":1278},[1272,7507,7508,7510,7512,7514,7516,7518,7520],{"class":1274,"line":1691},[1272,7509,1556],{"class":1278},[1272,7511,658],{"class":1282},[1272,7513,1381],{"class":1278},[1272,7515,7040],{"class":1384},[1272,7517,1388],{"class":1278},[1272,7519,658],{"class":1282},[1272,7521,1290],{"class":1278},[1272,7523,7524,7526,7528,7530,7532,7534,7536],{"class":1274,"line":1709},[1272,7525,1556],{"class":1278},[1272,7527,658],{"class":1282},[1272,7529,1381],{"class":1278},[1272,7531,7057],{"class":1384},[1272,7533,1388],{"class":1278},[1272,7535,658],{"class":1282},[1272,7537,1290],{"class":1278},[1272,7539,7540,7542,7544,7546,7548,7550,7552],{"class":1274,"line":1727},[1272,7541,1556],{"class":1278},[1272,7543,658],{"class":1282},[1272,7545,1381],{"class":1278},[1272,7547,7074],{"class":1384},[1272,7549,1388],{"class":1278},[1272,7551,658],{"class":1282},[1272,7553,1290],{"class":1278},[1272,7555,7556,7558,7560,7562,7564,7566,7568],{"class":1274,"line":1745},[1272,7557,1556],{"class":1278},[1272,7559,658],{"class":1282},[1272,7561,1381],{"class":1278},[1272,7563,7091],{"class":1384},[1272,7565,1388],{"class":1278},[1272,7567,658],{"class":1282},[1272,7569,1290],{"class":1278},[1272,7571,7572,7574,7576,7578,7580,7582,7584],{"class":1274,"line":1754},[1272,7573,1556],{"class":1278},[1272,7575,658],{"class":1282},[1272,7577,1381],{"class":1278},[1272,7579,7108],{"class":1384},[1272,7581,1388],{"class":1278},[1272,7583,658],{"class":1282},[1272,7585,1290],{"class":1278},[1272,7587,7588,7590,7592],{"class":1274,"line":1760},[1272,7589,1628],{"class":1278},[1272,7591,655],{"class":1282},[1272,7593,1290],{"class":1278},[1272,7595,7596],{"class":1274,"line":1769},[1272,7597,1410],{"emptyLinePlaceholder":352},[1272,7599,7600,7602,7604],{"class":1274,"line":1779},[1272,7601,1644],{"class":1278},[1272,7603,1437],{"class":1282},[1272,7605,1290],{"class":1278},[1272,7607,7608,7610,7612],{"class":1274,"line":1789},[1272,7609,1772],{"class":1278},[1272,7611,1437],{"class":1282},[1272,7613,1290],{"class":1278},[1272,7615,7616,7618,7620],{"class":1274,"line":1809},[1272,7617,1782],{"class":1278},[1272,7619,1437],{"class":1282},[1272,7621,1290],{"class":1278},[1272,7623,7624,7626,7628,7630,7632,7634,7636,7638],{"class":1274,"line":1815},[1272,7625,1315],{"class":1278},[1272,7627,1437],{"class":1282},[1272,7629,1440],{"class":1286},[1272,7631,1324],{"class":1278},[1272,7633,1328],{"class":1327},[1272,7635,1802],{"class":1331},[1272,7637,1328],{"class":1327},[1272,7639,1290],{"class":1278},[1272,7641,7642],{"class":1274,"line":1825},[1272,7643,1812],{"class":1384},[1272,7645,7646,7648,7650],{"class":1274,"line":1835},[1272,7647,1457],{"class":1278},[1272,7649,1820],{"class":1282},[1272,7651,1337],{"class":1278},[1272,7653,7654,7656,7658],{"class":1274,"line":1857},[1272,7655,1457],{"class":1278},[1272,7657,1830],{"class":1282},[1272,7659,1290],{"class":1278},[1272,7661,7662,7664,7666,7668,7670,7672,7674,7676],{"class":1274,"line":1866},[1272,7663,1478],{"class":1278},[1272,7665,643],{"class":1282},[1272,7667,1381],{"class":1278},[1272,7669,1845],{"class":1844},[1272,7671,7145],{"class":1384},[1272,7673,1388],{"class":1278},[1272,7675,643],{"class":1282},[1272,7677,1290],{"class":1278},[1272,7679,7680,7682,7684],{"class":1274,"line":1875},[1272,7681,1772],{"class":1278},[1272,7683,1830],{"class":1282},[1272,7685,1290],{"class":1278},[1272,7687,7688,7690,7692],{"class":1274,"line":1880},[1272,7689,1782],{"class":1278},[1272,7691,1437],{"class":1282},[1272,7693,1290],{"class":1278},[1272,7695,7696],{"class":1274,"line":1886},[1272,7697,1410],{"emptyLinePlaceholder":352},[1272,7699,7700],{"class":1274,"line":1892},[1272,7701,1883],{"class":1384},[1272,7703,7704],{"class":1274,"line":1898},[1272,7705,1889],{"class":1384},[1272,7707,7708],{"class":1274,"line":1907},[1272,7709,1895],{"class":1384},[1272,7711,7713,7715,7717],{"class":1274,"line":7712},45,[1272,7714,1388],{"class":1278},[1272,7716,1427],{"class":1282},[1272,7718,1290],{"class":1278},[1272,7720,7722,7724,7726],{"class":1274,"line":7721},46,[1272,7723,1388],{"class":1278},[1272,7725,1268],{"class":1282},[1272,7727,1290],{"class":1278},[643,7729,7730],{},[646,7731,3798],{},[655,7733,7734,7737,7742],{},[658,7735,7736],{},"Şimdi yaptığımız değişikleri görmek için ana sayfamızı ekleyelim.",[658,7738,7739,4826],{},[646,7740,7741],{},"Controllers>HomeController.cs",[658,7743,7744,7746,7747,7749,7750,5311],{},[799,7745,6341],{}," satırındaki ",[646,7748,1219],{},"'in üzerine sağ tıklayıp, ",[646,7751,1186],{},[643,7753,7754],{},[895,7755],{"alt":1192,"src":7756},"/images/2014/01/2014-01-13-13_01_46.jpg",[655,7758,7759],{},[658,7760,7761,7762,7765,7766,7768,7769,7771],{},"Aşağıdaki ekran karşımıza çıkacak. Dikkat edileceği üzere, ",[646,7763,7764],{},"View Name"," kısmına, otomatik olarak ",[646,7767,1219],{}," yazıldı. Hiç bir şeyi değiştirmeden ",[646,7770,1129],{}," diyelim. ",[643,7773,7774],{},[895,7775],{"alt":7776,"src":7777},"View ekleme detayları","/images/2014/01/2014-01-13-13_00_17.jpg",[643,7779,7780],{},"Yukarıdaki resimde ki ayarları inceleyelim.",[655,7782,7783,7788,7797,7806,7816,7822],{},[658,7784,7785,7787],{},[646,7786,7764],{}," : View'imizin adı. Aynı zamanda View dosyasının da adı.",[658,7789,7790,7793,7794,7796],{},[646,7791,7792],{},"Template"," : View'imize otomatik olarak, bir modelin (veri kaynağı da diyebiliriz) bağlanmasını sağlayabildiğimiz alandır. İleride kullanacağız. ",[646,7795,6311],{}," seçili olduğunda, herhangi bir model bağlanmaz.",[658,7798,7799,7801,7802],{},[646,7800,3456],{}," Bilgi için ",[771,7803,7805],{"href":7804},"/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-partial-view-asp-net-mvc-yazi-dizisi-7/","bakınız.",[658,7807,7808,7810,7811,7815],{},[646,7809,3462],{}," Eklenen sayfada, herhangi bir Layout'un, aktif edilip edilmemesini sağlar. Detaylı bilgiler, ",[771,7812,7814],{"href":7813},"/dersler/asp-net-mvc/asp-net-mvc-layout-sayfalari-asp-net-mvc-yazi-dizisi-4/","şu"," dersimizde verilmiştir.",[658,7817,7818,7819,7821],{},"Index sayfamız ",[646,7820,3421],{},"'nin içerisine eklendi.",[658,7823,7824],{},"Şimdi F5 tuşuna basıp projemizi çalıştıralım.",[643,7826,7827,7831],{},[895,7828],{"alt":7829,"src":7830},"Ana sayfa","/images/2014/01/2014-01-13-13_15_39.jpg","Layout sayfamızda yaptığımız değişikler, yukarıda ortaya çıkmış bulunmaktadır.",[643,7833,7834],{},"Bir yazımızın daha sonuna geldik. Sonraki dersimizde, ana sayfamızın içerisini dolduruyor olacağız.",[643,7836,7837,7838,7841],{},"Projeyi ",[771,7839,5939],{"href":7840},"/images/proje-dosyalar/asp-net-mvc-controller-ve-view-islemleri-1-asp-net-mvc-yazi-dizisi-13/MvcProjesi.zip"," indirebilirsiniz.",[643,7843,1976],{},[1978,7845,1980],{},{"title":346,"searchDepth":347,"depth":347,"links":7847},[],"2014/01/2014-01-13-13_01_46.jpg","2014-01-13T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc - Code First ile Veritabanı İşlemleri 2 (Asp.Net Mvc Yazı Dizisi – 12)",{},{"title":27,"description":7850},"QbKVntkyrATsObbyl3XQF3sNcNjFrviGKwdOh2IXul0",{"id":7855,"title":31,"body":7856,"coverImage":8208,"createDate":8209,"description":8210,"extension":350,"meta":8211,"navigation":352,"path":32,"seo":8212,"stem":33,"__hash__":8213},"posts/dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-2-asp-net-mvc-yazi-dizisi-14.md",{"type":343,"value":7857,"toc":8206},[7858,7861,7870,7874,7883,7886,7902,7940,7943,7951,7954,7959,7966,7969,7984,7989,8010,8016,8019,8032,8037,8072,8077,8090,8096,8102,8107,8113,8120,8126,8140,8145,8151,8154,8159,8165,8170,8176,8179,8184,8190,8193,8196,8202,8204],[639,7859,31],{"id":7860},"aspnet-mvc-controller-ve-view-i̇şlemleri-2-aspnet-mvc-yazı-dizisi-14",[643,7862,7863,853,7865],{},[646,7864,852],{},[771,7866,7867],{"href":28},[646,7868,7869],{},"Asp.Net Mvc – Controller ve View İşlemleri 1 (Asp.Net Mvc Yazı Dizisi – 13)",[643,7871,7872],{},[646,7873,861],{},[643,7875,7876,7877,7879,7880,7882],{},"Önceki yazımızda, blog uygulamamızın, ",[646,7878,1246],{}," sayfasını hazırlamıştık. Ardından ",[646,7881,1219],{}," sayfamızı oluşturup, içeriğini doldurmamıştık.",[643,7884,7885],{},"Hemen doldurmaya başlayalım.",[655,7887,7888,7897],{},[658,7889,7890,7892,7893,7896],{},[646,7891,5987],{}," adlı projemizi açalım. (",[771,7894,7895],{"href":7840},"Buradan"," son halini indirebilirsiniz.)",[658,7898,7899,7901],{},[646,7900,2657],{}," dosyamızı açalım. İçeriği aşağıdaki gibidir.",[1264,7903,7905],{"className":1266,"code":7904,"language":1268,"meta":346,"style":346},"@{\n    ViewBag.Title = \"Index\";\n}\n\n\u003Ch2>Index\u003C/h2>\n",[799,7906,7907,7911,7916,7920,7924],{"__ignoreMap":346},[1272,7908,7909],{"class":1274,"line":1275},[1272,7910,2667],{"class":1384},[1272,7912,7913],{"class":1274,"line":347},[1272,7914,7915],{"class":1384},"    ViewBag.Title = \"Index\";\n",[1272,7917,7918],{"class":1274,"line":1302},[1272,7919,2677],{"class":1384},[1272,7921,7922],{"class":1274,"line":1312},[1272,7923,1410],{"emptyLinePlaceholder":352},[1272,7925,7926,7928,7930,7932,7934,7936,7938],{"class":1274,"line":1340},[1272,7927,1295],{"class":1278},[1272,7929,2853],{"class":1282},[1272,7931,1381],{"class":1278},[1272,7933,1219],{"class":1384},[1272,7935,1388],{"class":1278},[1272,7937,2853],{"class":1282},[1272,7939,1290],{"class":1278},[643,7941,7942],{},"İçerik varsayılan haliyle gelmiş bulunmaktadır. Biz içeriğimizi yazmaya başlayalım. Bunun için öncelikle, ana sayfada kullanacağımız içeriği bir hatırlayalım.",[655,7944,7945,7947,7949],{},[658,7946,6221],{},[658,7948,6227],{},[658,7950,6233],{},[643,7952,7953],{},"Evet, önceki yazımızda da işlediğimiz gibi, ana sayfada barındırılacak içeriklerimiz yukarıdadır.",[643,7955,7956],{},[646,7957,7958],{},"Şimdi bir noktaya dikkatinizi çekmek istiyorum.",[643,7960,7961,7962,7965],{},"Gereksinimlere baktığımız zaman, sayfada 3 ayrı yapı kullanacağımızı görmekteyiz. Sayfa içerisinde, ayrı ayrı yapıları Partial View'ler (detaylı bilgi için ",[771,7963,7964],{"href":7804},"tıklayınız",") sayesinde kullanabilmekteyiz.",[643,7967,7968],{},"Yapıyı oluştururken, bir sütun içerik, bir sütun da kenar çubuğu şeklinde kuracağız. Normalde sitelerde, yan çubuk sadece ana sayfada değil, tüm sayfalarda gösteriliyor. Ancak biz yapımızın daha sade ve anlaşılır olmasını tercih ediyor olacağız.",[655,7970,7971,7976,7979],{},[658,7972,7973,7975],{},[646,7974,1219],{}," sayfamıza yeniden gelelim.",[658,7977,7978],{},"Öncelikle ana kısımda görülecek olan son 5 makalenin yüklendiği kısmı oluşturalım.",[658,7980,7981,7983],{},[646,7982,7741],{}," dosyamızı açalım. İçeriğimiz şu an, aşağıdaki gibidir.",[1264,7985,7987],{"className":7986,"code":6333,"language":2600},[2598],[799,7988,6333],{"__ignoreMap":346},[655,7990,7991,8005],{},[658,7992,7993,7994,7996,7997,8000,8001,8004],{},"Halihazırda sadece ",[646,7995,1219],{}," Action'umuz (detaylı bilgi için ",[771,7998,7964],{"href":7999},"/dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-1-asp-net-mvc-yazi-dizisi-13/",") var. Biz şimdi ",[646,8002,8003],{},"SonBesMakale"," adlı bir Action ekleyeceğiz.",[658,8006,8007,8009],{},[646,8008,6323],{}," dosyamızı aşağıdaki gibi güncelleyelim. (Bilgiler yorum satırı olarak belirtilecek.)",[1264,8011,8014],{"className":8012,"code":8013,"language":2600},[2598],"using MvcProjesi.Data;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\n\nnamespace MvcProjesi.Controllers\n{\n    public class HomeController : Controller\n    {\n        //\n        // GET: /Home/\n        public ActionResult Index()\n        {\n            return View();\n        }\n\n        //Son 5 makalenin ana sayfaya yükleneceği Action\n        public ActionResult SonBesMakale()\n        {\n            //Veritabanından yeni bir nesne oluşturuyoruz.\n            MvcProjesiContext db = new MvcProjesiContext();\n\n            //Veritabanından sorgulamayı Linq ile yapıyoruz.\n            //Tarih sırasına göre son makaleleri OrderByDescending ile çekip Take ile de 5 tane almasını istiyoruz.\n            List\u003CMakale> makaleListe = db.Makales.OrderByDescending(i => i.Tarih).Take(5).ToList();\n\n            //Normal içeriklerde View döndürürken, burada ise PartialView döndürüyoruz.\n            //Ayrıca makaleListe nesnesini de View'de kullanacağımız şekilde model olarak aktarıyoruz.\n            return PartialView(makaleListe);\n        }\n    }\n}\n",[799,8015,8013],{"__ignoreMap":346},[643,8017,8018],{},"Gereken Action'umuzu oluşturduktan sonra, buna bağlı olarak View'imizi oluşturmamız gerekecek.",[655,8020,8021],{},[658,8022,853,8023,8026,8027,8029,8030,5311],{},[799,8024,8025],{},"public ActionResult SonBesMakale()"," satırında ki ",[799,8028,8003],{},"'nin üzerine sağ tıklayarak ",[646,8031,1186],{},[643,8033,8034],{},[895,8035],{"alt":3757,"src":8036},"/images/2014/01/add-partial-view-5623.jpg",[655,8038,8039],{},[658,8040,8041,8042,8045,8046,8048,8049,8051,8052,8054,8055,8058,8059,8061,8062,8065,8066,8068,8069,8071],{},"Çıkan ekranda ",[646,8043,8044],{},"View name"," kısmına ",[646,8047,8003],{}," yazalım.",[646,8050,7792],{}," kısmı ",[646,8053,6311],{}," olarak seçili olsun ki, içeriğini biz doldurabilelim. ",[646,8056,8057],{},"Model class"," kısmında ise makaleleri çekeceğimiz için, bunların sınıf karşılığı olan ",[646,8060,5750],{}," sınıfını seçelim. ",[646,8063,8064],{},"Data context class"," ile ise, veritabanımızın sınıfı olan ",[646,8067,5999],{},"'i seçmiş olalım. ",[646,8070,3764],{}," kutucuğunun işaretli olmasına dikkat edelim. Böylelikle partial view olduğunu, Mvc motoruna bildirmiş olacağız. (Önceki yazılarda bu konuda detaylı bilgi verilmişti.)",[643,8073,8074],{},[895,8075],{"alt":3757,"src":8076},"/images/2014/01/2014-01-17+15_20_58.jpg",[655,8078,8079,8084],{},[658,8080,8081,8083],{},[646,8082,1129],{}," düğmesine basarak Partial View'imizi ekleyelim.",[658,8085,8086,8089],{},[646,8087,8088],{},"Views>Home>SonBesModel.cshtml"," dosyamız Visual Studio tarafından oluşturuldu. Dosyamızın içeriği aşağıdaki gibidir.",[1264,8091,8094],{"className":8092,"code":8093,"language":2600},[2598],"@model MvcProjesi.Data.Makale\n",[799,8095,8093],{"__ignoreMap":346},[643,8097,8098,8099,8101],{},"Burada dikkat edileceği üzere, ",[646,8100,5750],{}," sınıfımız model olarak, View sayfamıza tanıtılmış bulunmaktadır. Şimdi görsel olarak içeriğimizi şekillendirelim.",[655,8103,8104],{},[658,8105,8106],{},"SonBesModel View'imizin içeriğini aşağıdaki gibi oluşturalım.",[1264,8108,8111],{"className":8109,"code":8110,"language":2600},[2598],"\u003C!--\n    Model verisi, tek bir veriye işaret ediyordu. Ancak biz, Controller'den veriyi\n    bir liste halinde gönderdiğimiz için aşağıdaki satırı güncelledik.\n-->\n@model List\u003CMvcProjesi.Data.Makale>\n\n@{\n    //En dışa bir çerçeve attık. İçeriği ortaladık ve 25'er piksel boşluk verdik.\n    \u003Cdiv style=\"border:1px solid black;padding:25px;text-align:center;\">\n        \u003Ch2>Son Beş Makale\u003C/h2>\n        \u003C!--\n        //Burada Model dediğimiz zaman, Controllerden gelen veriye direkt ulaşmaktayız.\n        //Biz burada liste halinde gelen Model'imizde döngü kurarak, içindeki verileri\n        //html olarak basacağız.\n            -->\n        @foreach (var item in Model)\n        {\n            //Burada her makalenin etrafına çerçeve attık\n            \u003Cdiv style=\"border:1px solid black\">\n                \u003Ch3>@item.Baslik\u003C/h3>\n                \u003Cp>@item.Icerik\u003C/p>\n                \u003Cstrong>Tarih : @item.Tarih \u003C/strong>\n            \u003C/div>\n        }\n    \u003C/div>\n}\n",[799,8112,8110],{"__ignoreMap":346},[655,8114,8115],{},[658,8116,5822,8117,8119],{},[646,8118,2657],{}," sayfamızı açalım ve içeriğini aşağıdaki gibi düzenleyelim.",[1264,8121,8124],{"className":8122,"code":8123,"language":2600},[2598],"@{\n    ViewBag.Title = \"Index\";\n}\n\n\u003C!--Burada Partial View yerine Html.Action metodunu çağırdık-->\n@Html.Action(\"SonBesMakale\")\n",[799,8125,8123],{"__ignoreMap":346},[643,8127,8128,8129,8132,8133,8136,8137,8139],{},"Şimdi burada dikkat çeken nokta, Partial View'i çağırırken ",[799,8130,8131],{},"@Html.Action"," metodu ile çağırmış olmamız. Bunun sebebi ise eğer ",[799,8134,8135],{},"@Html.Partial"," olarak çağırırsak, o Partial View'in Action metodunu çağırmadan, yalnız View'i gösterir. Ancak ",[799,8138,8131],{}," önce Action'a girer, ardından da orada ki dönen View'i gösterir.",[655,8141,8142],{},[658,8143,8144],{},"Şimdi projemizi çalıştırıp, ana sayfaya gittiğimizde aşağıdaki gibi bir görüntüyle karşılaşacağız.",[643,8146,8147],{},[895,8148],{"alt":8149,"src":8150},"Proje ana sayfa","/images/2014/01/2014-01-17+16_35_17.jpg",[643,8152,8153],{},"Görüldüğü gibi, son beş makaleye herhangi bir makale gelmedi. Bunun sebebi ise, henüz veritabanına herhangi bir makale eklememiş olmamız. Panelimizi de henüz oluşturmadık. Bunun için geçici olarak ufak bir kod yazsak olur sanırım. Hemen eklememizi yapalım.",[655,8155,8156],{},[658,8157,8158],{},"Ana dizinde ki Global.asax dosyamızı açalım. İçeriğini aşağıdaki gibi değiştirelim.",[1264,8160,8163],{"className":8161,"code":8162,"language":2600},[2598],"//Veritabanı context sınıfımızı referans veriyoruz\nusing MvcProjesi.Data;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\nusing System.Web.Optimization;\nusing System.Web.Routing;\n\nnamespace MvcProjesi\n{\n    public class MvcApplication : System.Web.HttpApplication\n    {\n        //Uygulama ilk başlatıldığında, buradaki metod çalışacak.\n        protected void Application_Start()\n        {\n            //Burada veritabanı sınıfımızdan, bir nesne oluşturuyoruz. using kullanmamızın sebebi,\n            //db nesnesinin işi bittiğinde, silinmesini ve hafızada yer tutmamasını sağlamak.\n            using (MvcProjesiContext db = new MvcProjesiContext())\n            {\n                //Bu metod, eğer veritabanımız oluşturulmamış ise, oluşturulmasını sağlıyor.\n                db.Database.CreateIfNotExists();\n\n                //Buraya örnek olması açısından 6 adet makale ekleyelim.\n\n                //Makaleden bir nesne oluşturuyoruz.\n                Makale makale = new Makale();\n                makale.Baslik = \"Makale Başlığı 1\";\n                makale.Icerik = \"Makale İçeriği 1\";\n                //Tarih olarak, şu anki tarihi veriyoruz.\n                makale.Tarih = DateTime.Now;\n\n                //Aynı işlemi diğer makaleler için de tekrarlıyoruz.\n                //Bu sefer daha kısa tanımlama yöntemini kullandık.\n                Makale makale2 = new Makale() { Baslik = \"Makale Başlığı 2\", Icerik = \"Makale İçeriği 2\", Tarih = DateTime.Now };\n                Makale makale3 = new Makale() { Baslik = \"Makale Başlığı 3\", Icerik = \"Makale İçeriği 3\", Tarih = DateTime.Now };\n                Makale makale4 = new Makale() { Baslik = \"Makale Başlığı 4\", Icerik = \"Makale İçeriği 4\", Tarih = DateTime.Now };\n                Makale makale5 = new Makale() { Baslik = \"Makale Başlığı 5\", Icerik = \"Makale İçeriği 5\", Tarih = DateTime.Now };\n                Makale makale6 = new Makale() { Baslik = \"Makale Başlığı 6\", Icerik = \"Makale İçeriği 6\", Tarih = DateTime.Now };\n\n                //Veritabanında ki Makalelere eklemek için ekleme komutu veriyoruz.\n                //SaveChanges() komutu gelene kadar veritabanına kaydedilmeyecek.\n                db.Makales.Add(makale);\n                db.Makales.Add(makale2);\n                db.Makales.Add(makale3);\n                db.Makales.Add(makale4);\n                db.Makales.Add(makale5);\n                db.Makales.Add(makale6);\n\n                //Son olarak ta yaptığımız eklemelerin, veritabanına yansıtılmasını\n                //sağlamak için kaydet komutu veriyoruz.\n                db.SaveChanges();\n            }\n            AreaRegistration.RegisterAllAreas();\n            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);\n            RouteConfig.RegisterRoutes(RouteTable.Routes);\n            BundleConfig.RegisterBundles(BundleTable.Bundles);\n        }\n    }\n}\n",[799,8164,8162],{"__ignoreMap":346},[655,8166,8167],{},[658,8168,8169],{},"Projemizi çalıştıralım. Aşağıdaki ekranı aldık.",[643,8171,8172],{},[895,8173],{"alt":8174,"src":8175},"Son beş makale","/images/2014/01/2014-01-18+10_10_49.jpg",[643,8177,8178],{},"Görüldüğü gibi son ekleme tarihimizden, eskiye doğru 5 makaleyi aldı. Bu yüzden Makale Başlığı 1 adlı makalemiz gelmedi.",[4105,8180,8181],{},[643,8182,8183],{},"Global.asax dosyamıza yaptığımız son işlemler ile, proje her çalıştığında, 6 adet makale ekleniyor olacak. Bir sefer eklemeleri yaptırdıktan sonra, tekrar tekrar eklenmesine gerek duymayacağız. Yukarıdaki görüntüyü aldığımıza emin olduktan sonra, Global.asax içeriğimizi aşağıdaki gibi değiştirelim.",[1264,8185,8188],{"className":8186,"code":8187,"language":2600},[2598],"//Veritabanı context sınıfımızı referans veriyoruz\nusing MvcProjesi.Data;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\nusing System.Web.Optimization;\nusing System.Web.Routing;\n\nnamespace MvcProjesi\n{\n    public class MvcApplication : System.Web.HttpApplication\n    {\n        //Uygulama ilk başlatıldığında, buradaki metod çalışacak.\n        protected void Application_Start()\n        {\n            //Burada veritabanı sınıfımızdan, bir nesne oluşturuyoruz. using kullanmamızın sebebi,\n            //db nesnesinin işi bittiğinde, silinmesini ve hafızada yer tutmamasını sağlamak.\n            using (MvcProjesiContext db = new MvcProjesiContext())\n            {\n                //Bu metod, eğer veritabanımız oluşturulmamış ise, oluşturulmasını sağlıyor.\n                db.Database.CreateIfNotExists();\n\n                /* Bir kere makaleleri ekledikten sonra, her seferinde tekrar \n                 * eklenmemesi için yorum satırı haline getirdik.\n                //Buraya örnek olması açısından 6 adet makale ekleyelim.\n\n                //Makaleden bir nesne oluşturuyoruz.\n                Makale makale = new Makale();\n                makale.Baslik = \"Makale Başlığı 1\";\n                makale.Icerik = \"Makale İçeriği 1\";\n                //Tarih olarak, şu anki tarihi veriyoruz.\n                makale.Tarih = DateTime.Now;\n\n                //Aynı işlemi diğer makaleler için de tekrarlıyoruz.\n                //Bu sefer daha kısa tanımlama yöntemini kullandık.\n                Makale makale2 = new Makale() { Baslik = \"Makale Başlığı 2\", Icerik = \"Makale İçeriği 2\", Tarih = DateTime.Now };\n                Makale makale3 = new Makale() { Baslik = \"Makale Başlığı 3\", Icerik = \"Makale İçeriği 3\", Tarih = DateTime.Now };\n                Makale makale4 = new Makale() { Baslik = \"Makale Başlığı 4\", Icerik = \"Makale İçeriği 4\", Tarih = DateTime.Now };\n                Makale makale5 = new Makale() { Baslik = \"Makale Başlığı 5\", Icerik = \"Makale İçeriği 5\", Tarih = DateTime.Now };\n                Makale makale6 = new Makale() { Baslik = \"Makale Başlığı 6\", Icerik = \"Makale İçeriği 6\", Tarih = DateTime.Now };\n\n                //Veritabanında ki Makalelere eklemek için ekleme komutu veriyoruz.\n                //SaveChanges() komutu gelene kadar veritabanına kaydedilmeyecek.\n                db.Makales.Add(makale);\n                db.Makales.Add(makale2);\n                db.Makales.Add(makale3);\n                db.Makales.Add(makale4);\n                db.Makales.Add(makale5);\n                db.Makales.Add(makale6);\n\n                //Son olarak ta yaptığımız eklemelerin, veritabanına yansıtılmasını\n                //sağlamak için kaydet komutu veriyoruz.\n                db.SaveChanges();\n                 */\n            }\n            AreaRegistration.RegisterAllAreas();\n            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);\n            RouteConfig.RegisterRoutes(RouteTable.Routes);\n            BundleConfig.RegisterBundles(BundleTable.Bundles);\n        }\n    }\n}\n",[799,8189,8187],{"__ignoreMap":346},[643,8191,8192],{},"Evet, artık ana sayfamızda, son beş makale sıralanıyor olacak. Görsel açıdan, ekstra bir şey özellikle yapmadım. Çünkü şu an sadece MVC'ye odaklanmamız lazım. Sizler kendi görsel gücünüze göre, ortaya bir şeyler çıkarabilirsiniz.",[643,8194,8195],{},"Bir yazımızın daha sonuna geldik. Sonraki dersimizde, ana sayfamızın içerisini doldurmaya devam ediyor olacağız.",[643,8197,8198,8199,7841],{},"Projeyi ",[771,8200,5939],{"href":8201},"/images/proje-dosyalar/asp-net-mvc-controller-ve-view-islemleri-2-asp-net-mvc-yazi-dizisi-14/MvcProjesi.zip",[643,8203,1976],{},[1978,8205,3688],{},{"title":346,"searchDepth":347,"depth":347,"links":8207},[],"2014/01/2014-01-18+10_10_49.jpg","2014-01-18T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Controller ve View İşlemleri 1 (Asp.Net Mvc Yazı Dizisi – 13)",{},{"title":31,"description":8210},"Vpoeqf-vWq8lCt1znOrhf_klwx5p9Zv2lAkUdCvnT24",{"id":8215,"title":35,"body":8216,"coverImage":9171,"createDate":9172,"description":9173,"extension":350,"meta":9174,"navigation":352,"path":36,"seo":9175,"stem":37,"__hash__":9176},"posts/dersler/asp-net-mvc/asp-net-mvc-controller-ve-view-islemleri-3-asp-net-mvc-yazi-dizisi-15.md",{"type":343,"value":8217,"toc":9169},[8218,8221,8230,8234,8237,8240,8249,8252,8257,8281,8287,8308,8313,8318,8581,8594,8699,8707,8713,8718,8724,8729,8735,8756,8759,8769,8772,8777,8783,8795,8801,8816,8821,8826,8980,8996,9098,9101,9112,9132,9135,9140,9147,9155,9158,9164,9166],[639,8219,35],{"id":8220},"aspnet-mvc-controller-ve-view-i̇şlemleri-3-aspnet-mvc-yazı-dizisi-15",[643,8222,8223,853,8225],{},[646,8224,852],{},[771,8226,8227],{"href":32},[646,8228,8229],{},"Asp.Net Mvc – Controller ve View İşlemleri 2 (Asp.Net Mvc Yazı Dizisi – 14)",[643,8231,8232],{},[646,8233,861],{},[643,8235,8236],{},"Geliştirmesini aktif bir şekilde sürdürdüğümüz, blog projesinde, önceki dersimizde, ana sayfada son beş makaleyi Partial View şeklinde listelemiştik. Bugün ise ana sayfamızın içeriğini doldurmaya devam edeceğiz.",[643,8238,8239],{},"Ana sayfamızda kullanacaklarımız;",[655,8241,8242,8245,8247],{},[658,8243,8244],{},"Son 5 makalenin ana sayfada listelenmesi (Yapıldı)",[658,8246,6227],{},[658,8248,6233],{},[643,8250,8251],{},"Görüldüğü gibi ana sayfaya, yorumlar ve etiketler eklenecektir. Hemen bloğumuzu geliştirmeye devam edelim.",[4105,8253,8254],{},[643,8255,8256],{},"Önceki makalelerimizde, yapılan işlemleri çok detaylı şekilde izah etmeye çalıştım. Bundan sonraki süreçte, aynı kısımları tekrar anlatmayacağım. Takıldığınız yerlerde, lütfen önceki makalelerimizi inceleyiniz.",[655,8258,8259,8265,8268,8274],{},[658,8260,8261,8262,4213],{},"Projemizi açalım. (Son halini indirmek için ",[771,8263,8264],{"href":8201},"tıklayınız.",[658,8266,8267],{},"Öncelikle son 5 yorum listesini hazırlayacağız.",[658,8269,8270,8273],{},[646,8271,8272],{},"Controllers>HomeController.cshtml"," dosyasını açalım.",[658,8275,8276,8277,8280],{},"İçerisine aşağıda kodları verilen ",[646,8278,8279],{},"SonBesYorum"," Action'umuzu ekleyelim.",[1264,8282,8285],{"className":8283,"code":8284,"language":2600},[2598]," //Son 5 yorumun ana sayfaya yükleneceği Action\n public ActionResult SonBesYorum()\n {\n     MvcProjesiContext db = new MvcProjesiContext();\n\n     //Tarih sırasına göre son makaleleri OrderByDescending ile çekip Take ile de 5 tane almasını istiyoruz.\n     List\u003CYorum> yorumListe = db.Yorums.OrderByDescending(i => i.Tarih).Take(5).ToList();\n\n     //Ayrıca yorumListe nesnesini de View'de kullanacağımız şekilde model olarak aktarıyoruz.\n     return PartialView(yorumListe);\n }\n",[799,8286,8284],{"__ignoreMap":346},[655,8288,8289,8302],{},[658,8290,8291,8292,8295,8296,8299,8300,5311],{},"Şimdi Action'umuzun View'ini oluşturalım. Bunun için ",[799,8293,8294],{},"public ActionResult SonBesYorum()"," satırında, ",[799,8297,8298],{},"SonBesYorum()"," kısmının üzerine sağ tıklayarak, ",[646,8301,1186],{},[658,8303,8304,8305,8307],{},"Çıkan ekranda, içeriği aşağıdaki resimdeki gibi doldurup ",[646,8306,1129],{}," tuşuna basalım.",[643,8309,8310],{},[895,8311],{"alt":1192,"src":8312},"/images/2014/01/2014-01-20+13_23_04.jpg",[655,8314,8315],{},[658,8316,8317],{},"Şimdi, açılan View dosyamızın içini, aşağıdaki gibi yeniden düzenleyelim.",[1264,8319,8321],{"className":1266,"code":8320,"language":1268,"meta":346,"style":346},"\u003C!--Modelimiz liste olarak geldiği için List\u003C> içerisine aldık-->\n@model List\u003CMvcProjesi.Data.Yorum>\n\u003Cdiv style=\"border:1px solid red;padding:25px;text-align:center;\">\n    \u003Ch2>Son Beş Yorum\u003C/h2>\n    @{\n        //Bu sefer de for döngüsünü kullandık.\n        for (int i = 0; i \u003C Model.Count() - 1; i++)\n        {\n            //Burada her yorumun etrafına çerçeve attık\n            \u003Cdiv style=\"border:1px solid red\">\n                \u003C!--Üye bilgilerini alırken Linq yardımıyla, direkt, yorumu yazan üyenin bilgilerine\n                    @@Model[i].Uye. şeklinde ulaşabildik.\n                    -->\n                \u003Ch3>Üye Bilgileri\u003C/h3>\n                Adı : @Model[i].Uye.Ad\u003Cbr />\n                Soyadı : @Model[i].Uye.Soyad\u003Cbr />\n                \u003Ch3>Makale Bilgileri\u003C/h3>\n                \u003C!--Üye bilgilerini alırken Linq yardımıyla, direkt, yorumun ait olduğu\n                          makelenin bilgilerine @@Model[i].Makale. şeklinde ulaşabildik.\n                -->\n                Başlık : @Model[i].Makale.Baslik\n                \u003Ch3>Yorumun İçeriği\u003C/h3>\n                \u003Cp>@Model[i].Icerik\u003C/p>\n                Tarih : @Model[i].Tarih\n            \u003C/div>\n        }\n    }\n\u003C/div>\n",[799,8322,8323,8329,8342,8362,8379,8383,8388,8398,8402,8407,8426,8431,8436,8441,8458,8470,8481,8498,8503,8508,8513,8518,8535,8552,8557,8565,8569,8573],{"__ignoreMap":346},[1272,8324,8325],{"class":1274,"line":1275},[1272,8326,8328],{"class":8327},"sutJx","\u003C!--Modelimiz liste olarak geldiği için List\u003C> içerisine aldık-->\n",[1272,8330,8331,8334,8336,8340],{"class":1274,"line":347},[1272,8332,8333],{"class":1384},"@model List",[1272,8335,1295],{"class":1278},[1272,8337,8339],{"class":8338},"sDBD8","MvcProjesi.Data.Yorum",[1272,8341,1290],{"class":1278},[1272,8343,8344,8346,8348,8351,8353,8355,8358,8360],{"class":1274,"line":1302},[1272,8345,1295],{"class":1278},[1272,8347,1437],{"class":1282},[1272,8349,8350],{"class":1286}," style",[1272,8352,1324],{"class":1278},[1272,8354,1328],{"class":1327},[1272,8356,8357],{"class":1331},"border:1px solid red;padding:25px;text-align:center;",[1272,8359,1328],{"class":1327},[1272,8361,1290],{"class":1278},[1272,8363,8364,8366,8368,8370,8373,8375,8377],{"class":1274,"line":1312},[1272,8365,1315],{"class":1278},[1272,8367,2853],{"class":1282},[1272,8369,1381],{"class":1278},[1272,8371,8372],{"class":1384},"Son Beş Yorum",[1272,8374,1388],{"class":1278},[1272,8376,2853],{"class":1282},[1272,8378,1290],{"class":1278},[1272,8380,8381],{"class":1274,"line":1340},[1272,8382,5044],{"class":1384},[1272,8384,8385],{"class":1274,"line":1373},[1272,8386,8387],{"class":1384},"        //Bu sefer de for döngüsünü kullandık.\n",[1272,8389,8390,8393,8395],{"class":1274,"line":1395},[1272,8391,8392],{"class":1384},"        for (int i = 0; i ",[1272,8394,1295],{"class":4903},[1272,8396,8397],{"class":1384}," Model.Count() - 1; i++)\n",[1272,8399,8400],{"class":1274,"line":1401},[1272,8401,5079],{"class":1384},[1272,8403,8404],{"class":1274,"line":1407},[1272,8405,8406],{"class":1384},"            //Burada her yorumun etrafına çerçeve attık\n",[1272,8408,8409,8411,8413,8415,8417,8419,8422,8424],{"class":1274,"line":1413},[1272,8410,1478],{"class":1278},[1272,8412,1437],{"class":1282},[1272,8414,8350],{"class":1286},[1272,8416,1324],{"class":1278},[1272,8418,1328],{"class":1327},[1272,8420,8421],{"class":1331},"border:1px solid red",[1272,8423,1328],{"class":1327},[1272,8425,1290],{"class":1278},[1272,8427,8428],{"class":1274,"line":1422},[1272,8429,8430],{"class":8327},"                \u003C!--Üye bilgilerini alırken Linq yardımıyla, direkt, yorumu yazan üyenin bilgilerine\n",[1272,8432,8433],{"class":1274,"line":1432},[1272,8434,8435],{"class":8327},"                    @@Model[i].Uye. şeklinde ulaşabildik.\n",[1272,8437,8438],{"class":1274,"line":1454},[1272,8439,8440],{"class":8327},"                    -->\n",[1272,8442,8443,8445,8447,8449,8452,8454,8456],{"class":1274,"line":1475},[1272,8444,1499],{"class":1278},[1272,8446,3273],{"class":1282},[1272,8448,1381],{"class":1278},[1272,8450,8451],{"class":1384},"Üye Bilgileri",[1272,8453,1388],{"class":1278},[1272,8455,3273],{"class":1282},[1272,8457,1290],{"class":1278},[1272,8459,8460,8463,8465,8468],{"class":1274,"line":1496},[1272,8461,8462],{"class":1384},"                Adı : @Model[i].Uye.Ad",[1272,8464,1295],{"class":1278},[1272,8466,8467],{"class":1282},"br",[1272,8469,1337],{"class":1278},[1272,8471,8472,8475,8477,8479],{"class":1274,"line":1553},[1272,8473,8474],{"class":1384},"                Soyadı : @Model[i].Uye.Soyad",[1272,8476,1295],{"class":1278},[1272,8478,8467],{"class":1282},[1272,8480,1337],{"class":1278},[1272,8482,8483,8485,8487,8489,8492,8494,8496],{"class":1274,"line":1579},[1272,8484,1499],{"class":1278},[1272,8486,3273],{"class":1282},[1272,8488,1381],{"class":1278},[1272,8490,8491],{"class":1384},"Makale Bilgileri",[1272,8493,1388],{"class":1278},[1272,8495,3273],{"class":1282},[1272,8497,1290],{"class":1278},[1272,8499,8500],{"class":1274,"line":1602},[1272,8501,8502],{"class":8327},"                \u003C!--Üye bilgilerini alırken Linq yardımıyla, direkt, yorumun ait olduğu\n",[1272,8504,8505],{"class":1274,"line":1625},[1272,8506,8507],{"class":8327},"                          makelenin bilgilerine @@Model[i].Makale. şeklinde ulaşabildik.\n",[1272,8509,8510],{"class":1274,"line":1635},[1272,8511,8512],{"class":8327},"                -->\n",[1272,8514,8515],{"class":1274,"line":1641},[1272,8516,8517],{"class":1384},"                Başlık : @Model[i].Makale.Baslik\n",[1272,8519,8520,8522,8524,8526,8529,8531,8533],{"class":1274,"line":1651},[1272,8521,1499],{"class":1278},[1272,8523,3273],{"class":1282},[1272,8525,1381],{"class":1278},[1272,8527,8528],{"class":1384},"Yorumun İçeriği",[1272,8530,1388],{"class":1278},[1272,8532,3273],{"class":1282},[1272,8534,1290],{"class":1278},[1272,8536,8537,8539,8541,8543,8546,8548,8550],{"class":1274,"line":1671},[1272,8538,1499],{"class":1278},[1272,8540,643],{"class":1282},[1272,8542,1381],{"class":1278},[1272,8544,8545],{"class":1384},"@Model[i].Icerik",[1272,8547,1388],{"class":1278},[1272,8549,643],{"class":1282},[1272,8551,1290],{"class":1278},[1272,8553,8554],{"class":1274,"line":1691},[1272,8555,8556],{"class":1384},"                Tarih : @Model[i].Tarih\n",[1272,8558,8559,8561,8563],{"class":1274,"line":1709},[1272,8560,1644],{"class":1278},[1272,8562,1437],{"class":1282},[1272,8564,1290],{"class":1278},[1272,8566,8567],{"class":1274,"line":1727},[1272,8568,5101],{"class":1384},[1272,8570,8571],{"class":1274,"line":1745},[1272,8572,4534],{"class":1384},[1272,8574,8575,8577,8579],{"class":1274,"line":1754},[1272,8576,1388],{"class":1278},[1272,8578,1437],{"class":1282},[1272,8580,1290],{"class":1278},[655,8582,8583,8591],{},[658,8584,8585,8586,8588,8589,4826],{},"İçeriğimizi, ana sayfamızda göstereceğimiz için, ana sayfamızda ",[646,8587,8279],{}," Partial View'imizi konumlandırmamız gerekecek. Bunun için ",[646,8590,2657],{},[658,8592,8593],{},"İçeriğini ise aşağıdaki gibi güncelleyelim.",[1264,8595,8597],{"className":1266,"code":8596,"language":1268,"meta":346,"style":346},"@{\n    ViewBag.Title = \"Index\";\n}\n\n\u003C!--Bu div, bizim ana içeriğimiz. Genişliğin, %75'ini almasını ve sola yaslanmasını istedik. -->\n\u003Cdiv style=\"width:75%;float:left\">\n    \u003C!--Burada Partial View yerine Html.Action metodunu çağırdık-->\n    @Html.Action(\"SonBesMakale\")\n\u003C/div>\n\u003C!--Bu div, bizim yan kenar içeriğimiz. Genişliğin, %25'ini almasını ve sola,\n    ana divin yanına, yaslanmasını istedik. -->\n\u003Cdiv style=\"width:25%;float:left\">\n    @Html.Action(\"SonBesYorum\")\n\u003C/div>\n",[799,8598,8599,8603,8607,8611,8615,8620,8639,8644,8649,8657,8662,8667,8686,8691],{"__ignoreMap":346},[1272,8600,8601],{"class":1274,"line":1275},[1272,8602,2667],{"class":1384},[1272,8604,8605],{"class":1274,"line":347},[1272,8606,7915],{"class":1384},[1272,8608,8609],{"class":1274,"line":1302},[1272,8610,2677],{"class":1384},[1272,8612,8613],{"class":1274,"line":1312},[1272,8614,1410],{"emptyLinePlaceholder":352},[1272,8616,8617],{"class":1274,"line":1340},[1272,8618,8619],{"class":8327},"\u003C!--Bu div, bizim ana içeriğimiz. Genişliğin, %75'ini almasını ve sola yaslanmasını istedik. -->\n",[1272,8621,8622,8624,8626,8628,8630,8632,8635,8637],{"class":1274,"line":1373},[1272,8623,1295],{"class":1278},[1272,8625,1437],{"class":1282},[1272,8627,8350],{"class":1286},[1272,8629,1324],{"class":1278},[1272,8631,1328],{"class":1327},[1272,8633,8634],{"class":1331},"width:75%;float:left",[1272,8636,1328],{"class":1327},[1272,8638,1290],{"class":1278},[1272,8640,8641],{"class":1274,"line":1395},[1272,8642,8643],{"class":8327},"    \u003C!--Burada Partial View yerine Html.Action metodunu çağırdık-->\n",[1272,8645,8646],{"class":1274,"line":1401},[1272,8647,8648],{"class":1384},"    @Html.Action(\"SonBesMakale\")\n",[1272,8650,8651,8653,8655],{"class":1274,"line":1407},[1272,8652,1388],{"class":1278},[1272,8654,1437],{"class":1282},[1272,8656,1290],{"class":1278},[1272,8658,8659],{"class":1274,"line":1413},[1272,8660,8661],{"class":8327},"\u003C!--Bu div, bizim yan kenar içeriğimiz. Genişliğin, %25'ini almasını ve sola,\n",[1272,8663,8664],{"class":1274,"line":1422},[1272,8665,8666],{"class":8327},"    ana divin yanına, yaslanmasını istedik. -->\n",[1272,8668,8669,8671,8673,8675,8677,8679,8682,8684],{"class":1274,"line":1432},[1272,8670,1295],{"class":1278},[1272,8672,1437],{"class":1282},[1272,8674,8350],{"class":1286},[1272,8676,1324],{"class":1278},[1272,8678,1328],{"class":1327},[1272,8680,8681],{"class":1331},"width:25%;float:left",[1272,8683,1328],{"class":1327},[1272,8685,1290],{"class":1278},[1272,8687,8688],{"class":1274,"line":1454},[1272,8689,8690],{"class":1384},"    @Html.Action(\"SonBesYorum\")\n",[1272,8692,8693,8695,8697],{"class":1274,"line":1475},[1272,8694,1388],{"class":1278},[1272,8696,1437],{"class":1282},[1272,8698,1290],{"class":1278},[655,8700,8701],{},[658,8702,8703,8704,8706],{},"Görüldüğü gibi içeriğimizi, ikiye böldük ve yerleşimlerini ayarladık. Ayrıca ",[646,8705,8279],{}," Partial View'ini de çağırdık. Şimdi projemizi çalıştıralım. ",[643,8708,8709,8710,8712],{},"Görüleceği üzere, ",[646,8711,8372],{}," başlığının altında, herhangi bir yorum gelmedi. Bunun sebebi sistemde henüz herhangi bir yorum yapılmamış olmasıdır. Biz geçici olarak, kodla örnek yorumlar ekleyeceğiz.",[655,8714,8715],{},[658,8716,8717],{},"Global.asax dosyamızı açalım. İçeriğini aşağıdaki gibi güncelleyelim.",[1264,8719,8722],{"className":8720,"code":8721,"language":2600},[2598],"//Veritabanı context sınıfımızı referans veriyoruz\nusing MvcProjesi.Data;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\nusing System.Web.Optimization;\nusing System.Web.Routing;\n\nnamespace MvcProjesi\n{\n    public class MvcApplication : System.Web.HttpApplication\n    {\n        //Uygulama ilk başlatıldığında, buradaki metod çalışacak.\n        protected void Application_Start()\n        {\n            //Burada veritabanı sınıfımızdan, bir nesne oluşturuyoruz. using kullanmamızın sebebi,\n            //db nesnesinin işi bittiğinde, silinmesini ve hafızada yer tutmamasını sağlamak.\n            using (MvcProjesiContext db = new MvcProjesiContext())\n            {\n                //Bu metod, eğer veritabanımız oluşturulmamış ise, oluşturulmasını sağlıyor.\n                db.Database.CreateIfNotExists();\n\n                //Veritabanındaki makalelerin,yorumların ve üyelerin adetini alıyoruz.\n                int makaleAdet = (from i in db.Makales select i).Count();\n                int yorumAdet = (from i in db.Yorums select i).Count();\n                int uyeAdet = (from i in db.Uyes select i).Count();\n\n                //Veritabanına, sürekli aynı makalelerin ve yorumların eklenmemesi için\n                //en az 5 adet makale ve yorum var mı diye kontrol ediyoruz.\n                //Ayrıca sistemde en az 1 üye olduğunu da onaylıyoruz.\n                if (makaleAdet \u003C 5 || yorumAdet \u003C 5 || uyeAdet \u003C 1)\n                {\n                    //Bir tane örnek üye oluşturuyoruz.\n                    Uye uye = new Uye() { Ad = \"Abdurrahman\", Soyad = \"Güngör\", EPosta = \"abdurrahmangungor@deneme.com\", ResimYol = \"\", UyeOlmaTarih = DateTime.Now, WebSite = \"\" };\n\n                    db.Uyes.Add(uye);\n\n                    //Makalelerimizi oluşturuyoruz. Ayrıca makalelerin, yukarıda oluşturduğumuz kullanıcı \n                    //tarafından oluşturulduğunu gösteriyoruz.\n                    Makale makale1 = new Makale() { Baslik = \"Makale Başlığı 1\", Icerik = \"Makale İçeriği 1\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale2 = new Makale() { Baslik = \"Makale Başlığı 2\", Icerik = \"Makale İçeriği 2\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale3 = new Makale() { Baslik = \"Makale Başlığı 3\", Icerik = \"Makale İçeriği 3\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale4 = new Makale() { Baslik = \"Makale Başlığı 4\", Icerik = \"Makale İçeriği 4\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale5 = new Makale() { Baslik = \"Makale Başlığı 5\", Icerik = \"Makale İçeriği 5\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale6 = new Makale() { Baslik = \"Makale Başlığı 6\", Icerik = \"Makale İçeriği 6\", Tarih = DateTime.Now, Uye = uye };\n\n                    //Makaleleri eklemek için komutumuzu veriyoruz.\n                    //SaveChanges() komutu gelene kadar veritabanına kayıt yapılmayacak.\n                    db.Makales.Add(makale1);\n                    db.Makales.Add(makale2);\n                    db.Makales.Add(makale3);\n                    db.Makales.Add(makale4);\n                    db.Makales.Add(makale5);\n                    db.Makales.Add(makale6);\n\n                    //Yorumlarımızı oluşturuyoruz. Ayrıca yorumların, yukarıda oluşturduğumuz kullanıcı \n                    //tarafından oluşturulduğunu gösteriyor, ayrıca makalelerimize de bağlıyoruz.\n                    Yorum yorum1 = new Yorum() { Icerik = \"Makale 1 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum2 = new Yorum() { Icerik = \"Makale 2 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum3 = new Yorum() { Icerik = \"Makale 3 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum4 = new Yorum() { Icerik = \"Makale 4 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum5 = new Yorum() { Icerik = \"Makale 5 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum6 = new Yorum() { Icerik = \"Makale 6 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n\n                    //Yorumları eklemek için komutumuzu veriyoruz.\n                    //SaveChanges() komutu gelene kadar veritabanına kayıt yapılmayacak.\n                    db.Yorums.Add(yorum1);\n                    db.Yorums.Add(yorum2);\n                    db.Yorums.Add(yorum3);\n                    db.Yorums.Add(yorum4);\n                    db.Yorums.Add(yorum5);\n                    db.Yorums.Add(yorum6);\n\n                    //Son olarak da yaptığımız eklemelerin, veritabanına yansıtılmasını\n                    //sağlamak için kaydet komutu veriyoruz.\n                    db.SaveChanges();\n                }\n            }\n            AreaRegistration.RegisterAllAreas();\n            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);\n            RouteConfig.RegisterRoutes(RouteTable.Routes);\n            BundleConfig.RegisterBundles(BundleTable.Bundles);\n        }\n    }\n}\n",[799,8723,8721],{"__ignoreMap":346},[655,8725,8726],{},[658,8727,8728],{},"Şimdi projemizi yeniden çalıştırıyoruz. Aşağıdakine benzer bir görüntü alacağız.",[643,8730,8731],{},[895,8732],{"alt":8733,"src":8734},"Makaleler ve yorumlar","/images/2014/01/2014-01-21+12_14_38.jpg",[4105,8736,8737],{},[643,8738,8739,8740,8743,8744,8747,8748,8751,8752,8755],{},"Burada, özellikle vurgulamak istediğim bir nokta var. Sisteme bir makale eklerken, öncelikle kullanıcıyı eklediğimize emin olmalıyız. Yoksa makaleyi ekleyen üye bilgisi, boş çıkacaktır. Aynı şekilde, yorumu eklerken de, makalenin önceden eklenmiş olduğuna dikkat etmeliyiz. Bu sistem zaten panel de, düzenli bir şekilde işletiliyor olmalıdır. Dikkat ederseniz, önce kullanıcıyı ekledik (",[799,8741,8742],{},"db.Uyes.Add(uye)","), ardından makaleleri ekledik (",[799,8745,8746],{},"db.Makales.Add(makale...)","), en son da, yorumlarımızı ekledik (",[799,8749,8750],{},"db.Yorums.Add(yorum..)","). Bu eklemelerin sırası, Entity Framework tarafından sıraya alınmakta, ardından ",[799,8753,8754],{},"db.SaveChanges()"," metodunu çağırdığımızda, belirtilen sıraya göre içerikler eklenmektedir.",[643,8757,8758],{},"Şimdi de hızlıca, ana sayfada ki gereksinimlerimize tekrardan göz atalım.",[655,8760,8761,8764,8767],{},[658,8762,8763],{},"Son 5 makalenin ana sayfada listelenmesi (Yapıldı)",[658,8765,8766],{},"Son 5 yorumun ana sayfada listelenmesi (Yapıldı)",[658,8768,6233],{},[643,8770,8771],{},"Görüldüğü üzere, en çok kullanılan 10 etiketi göstereceğiz. ",[655,8773,8774],{},[658,8775,8776],{},"Öncelikle, sisteme etiketlerimizi eklemek için, Global.asax dosyamızı açalım ve içeriğini yeniden aşağıdaki gibi düzenleyelim.",[1264,8778,8781],{"className":8779,"code":8780,"language":2600},[2598],"//Veritabanı context sınıfımızı referans veriyoruz\nusing MvcProjesi.Data;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\nusing System.Web.Optimization;\nusing System.Web.Routing;\n\nnamespace MvcProjesi\n{\n    public class MvcApplication : System.Web.HttpApplication\n    {\n        //Uygulama ilk başlatıldığında, buradaki metod çalışacak.\n        protected void Application_Start()\n        {\n            //Burada veritabanı sınıfımızdan, bir nesne oluşturuyoruz. using kullanmamızın sebebi,\n            //db nesnesinin işi bittiğinde, silinmesini ve hafızada yer tutmamasını sağlamak.\n            using (MvcProjesiContext db = new MvcProjesiContext())\n            {\n                //Bu metod, eğer veritabanımız oluşturulmamış ise, oluşturulmasını sağlıyor.\n                db.Database.CreateIfNotExists();\n\n                //Veritabanındaki makalelerin, yorumların, üyelerin ve etiketlerin adetini alıyoruz.\n                int makaleAdet = (from i in db.Makales select i).Count();\n                int yorumAdet = (from i in db.Yorums select i).Count();\n                int uyeAdet = (from i in db.Uyes select i).Count();\n                int etiketAdet = (from i in db.Etikets select i).Count();\n\n                //Veritabanına, sürekli aynı makalelerin ve yorumların eklenmemesi için\n                //en az 5 adet makale ve yorum var mı diye kontrol ediyoruz.\n                //Ayrıca sistemde en az 1 üye olduğunu da onaylıyoruz.\n                //Bununla birlikte en az 10 adet etiket olduğunu da onaylıyoruz.\n                if (makaleAdet \u003C 5 || yorumAdet \u003C 5 || uyeAdet \u003C 1 || etiketAdet \u003C 10)\n                {\n                    //Bir tane örnek üye oluşturuyoruz.\n                    Uye uye = new Uye() { Ad = \"Abdurrahman\", Soyad = \"Güngör\", EPosta = \"abdurrahmangungor@deneme.com\", ResimYol = \"\", UyeOlmaTarih = DateTime.Now, WebSite = \"\" };\n\n                    db.Uyes.Add(uye);\n\n                    //Makalelerimizi oluşturuyoruz. Ayrıca makalelerin, yukarıda oluşturduğumuz kullanıcı \n                    //tarafından oluşturulduğunu gösteriyoruz.\n                    Makale makale1 = new Makale() { Baslik = \"Makale Başlığı 1\", Icerik = \"Makale İçeriği 1\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale2 = new Makale() { Baslik = \"Makale Başlığı 2\", Icerik = \"Makale İçeriği 2\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale3 = new Makale() { Baslik = \"Makale Başlığı 3\", Icerik = \"Makale İçeriği 3\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale4 = new Makale() { Baslik = \"Makale Başlığı 4\", Icerik = \"Makale İçeriği 4\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale5 = new Makale() { Baslik = \"Makale Başlığı 5\", Icerik = \"Makale İçeriği 5\", Tarih = DateTime.Now, Uye = uye };\n                    Makale makale6 = new Makale() { Baslik = \"Makale Başlığı 6\", Icerik = \"Makale İçeriği 6\", Tarih = DateTime.Now, Uye = uye };\n\n                    //Makaleleri eklemek için komutumuzu veriyoruz.\n                    //SaveChanges() komutu gelene kadar veritabanına kayıt yapılmayacak.\n                    db.Makales.Add(makale1);\n                    db.Makales.Add(makale2);\n                    db.Makales.Add(makale3);\n                    db.Makales.Add(makale4);\n                    db.Makales.Add(makale5);\n                    db.Makales.Add(makale6);\n\n                    //Yorumlarımızı oluşturuyoruz. Ayrıca yorumların, yukarıda oluşturduğumuz kullanıcı \n                    //tarafından oluşturulduğunu gösteriyor, ayrıca makalelerimize de bağlıyoruz.\n                    Yorum yorum1 = new Yorum() { Icerik = \"Makale 1 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum2 = new Yorum() { Icerik = \"Makale 2 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum3 = new Yorum() { Icerik = \"Makale 3 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum4 = new Yorum() { Icerik = \"Makale 4 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum5 = new Yorum() { Icerik = \"Makale 5 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n                    Yorum yorum6 = new Yorum() { Icerik = \"Makale 6 için yazılan yorum\", Tarih = DateTime.Now, Makale = makale1, Uye = uye };\n\n                    //Yorumları eklemek için komutumuzu veriyoruz.\n                    //SaveChanges() komutu gelene kadar veritabanına kayıt yapılmayacak.\n                    db.Yorums.Add(yorum1);\n                    db.Yorums.Add(yorum2);\n                    db.Yorums.Add(yorum3);\n                    db.Yorums.Add(yorum4);\n                    db.Yorums.Add(yorum5);\n                    db.Yorums.Add(yorum6);\n\n                    //Etiketlerimizi oluşturuyoruz. Ayrıca etiketleri, kullanıldığı makalelerimize de bağlıyoruz.\n                    Etiket etiket1 = new Etiket() { Icerik = \"Asp.Net\", Makales = new List\u003CMakale>() { makale1, makale2, makale3, makale4, makale6 } };\n                    Etiket etiket2 = new Etiket() { Icerik = \"PHP\", Makales = new List\u003CMakale>() { makale5, makale3, makale2, makale1 } };\n                    Etiket etiket3 = new Etiket() { Icerik = \"Java\", Makales = new List\u003CMakale>() { makale2, makale4, makale5 } };\n                    Etiket etiket4 = new Etiket() { Icerik = \"C#\", Makales = new List\u003CMakale>() { makale5, makale4 } };\n                    Etiket etiket5 = new Etiket() { Icerik = \"Ruby\", Makales = new List\u003CMakale>() { makale5, makale6 } };\n                    Etiket etiket6 = new Etiket() { Icerik = \"C++\", Makales = new List\u003CMakale>() { makale5, makale2 } };\n                    Etiket etiket7 = new Etiket() { Icerik = \"D\", Makales = new List\u003CMakale>() { makale5, makale1 } };\n                    Etiket etiket8 = new Etiket() { Icerik = \"Phyton\", Makales = new List\u003CMakale>() { makale1, makale4 } };\n\n                    Etiket etiket9 = new Etiket() { Icerik = \"JSF\", Makales = new List\u003CMakale>() { makale5, makale4 } };\n                    Etiket etiket10 = new Etiket() { Icerik = \"JSP\", Makales = new List\u003CMakale>() { makale5, makale3, makale6 } };\n                    Etiket etiket11 = new Etiket() { Icerik = \"XCode\", Makales = new List\u003CMakale>() { makale5, makale4, makale1 } };\n                    Etiket etiket12 = new Etiket() { Icerik = \"ColdFusion\", Makales = new List\u003CMakale>() { makale5, makale2 } };\n                    Etiket etiket13 = new Etiket() { Icerik = \"Pascal\", Makales = new List\u003CMakale>() { makale5, makale1, makale3 } };\n                    Etiket etiket14 = new Etiket() { Icerik = \"Cobol\", Makales = new List\u003CMakale>() { makale5, makale4, makale3, makale1, makale2 } };\n\n                    //Etiketleri eklemek için komutumuzu veriyoruz.\n                    //SaveChanges() komutu gelene kadar veritabanına kayıt yapılmayacak.\n                    db.Etikets.Add(etiket1);\n                    db.Etikets.Add(etiket2);\n                    db.Etikets.Add(etiket3);\n                    db.Etikets.Add(etiket4);\n                    db.Etikets.Add(etiket5);\n                    db.Etikets.Add(etiket6);\n                    db.Etikets.Add(etiket7);\n                    db.Etikets.Add(etiket8);\n                    db.Etikets.Add(etiket9);\n                    db.Etikets.Add(etiket10);\n                    db.Etikets.Add(etiket11);\n                    db.Etikets.Add(etiket12);\n                    db.Etikets.Add(etiket13);\n                    db.Etikets.Add(etiket14);\n\n                    //Son olarak da yaptığımız eklemelerin, veritabanına yansıtılmasını\n                    //sağlamak için kaydet komutu veriyoruz.\n                    db.SaveChanges();\n\n                }\n            }\n            AreaRegistration.RegisterAllAreas();\n            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);\n            RouteConfig.RegisterRoutes(RouteTable.Routes);\n            BundleConfig.RegisterBundles(BundleTable.Bundles);\n        }\n    }\n}\n",[799,8782,8780],{"__ignoreMap":346},[655,8784,8785],{},[658,8786,8787,8788,8790,8791,8794],{},"Şimdi, ",[646,8789,7741],{}," dosyamızı açalım ve içerisine ",[646,8792,8793],{},"EnCokOnEtiket"," Action'umuzu aşağıdaki kodlarla ekleyelim.",[1264,8796,8799],{"className":8797,"code":8798,"language":2600},[2598]," //En çok kullanılan 5 etiketin ana sayfaya yükleneceği Action\npublic ActionResult EnCokOnEtiket()\n{\n    MvcProjesiContext db = new MvcProjesiContext();\n\n    //Etiketleri sorgularken, kaç adet makaleye bağlandığını bulup, ona göre yüksekten,\n    //aşağı doğru sıralanmasını sağlıyoruz. Gelen sonuçtan 10 adet alıp, listeye ekliyoruz.\n    List\u003CEtiket> etiketListe = (from i in db.Etikets orderby i.Makales.Count() descending select i).Take(10).ToList();\n\n    //Ayrıca etiketListe nesnesini de View'de kullanacağımız şekilde model olarak aktarıyoruz.\n    return PartialView(etiketListe);\n}\n",[799,8800,8798],{"__ignoreMap":346},[655,8802,8803,8812],{},[658,8804,8805,8806,8809,8810,7771],{},"Ardından, ",[799,8807,8808],{},"EnCokOnEtiket()"," kısmına sağ tıklayıp, ",[646,8811,1186],{},[658,8813,8304,8814,3486],{},[646,8815,1129],{},[643,8817,8818],{},[895,8819],{"alt":1192,"src":8820},"/images/2014/01/2014-01-21+13_10_29.jpg",[655,8822,8823],{},[658,8824,8825],{},"Açılan View'imizin de içeriğini aşağıdaki gibi dolduralım.",[1264,8827,8829],{"className":1266,"code":8828,"language":1268,"meta":346,"style":346},"\u003C!--Modelimiz liste olarak geldiği için List\u003C> içerisine aldık-->\n@model List\u003CMvcProjesi.Data.Etiket>\n\u003Cdiv style=\"border:1px solid yellow;padding:25px;text-align:center;\">\n    \u003Ch2>En Çok Kullanılan On Etiket\u003C/h2>\n    @{\n        //Bu sefer de while döngüsünü kullandık.\n        int sayi = 0;\n        while (sayi \u003C Model.Count())\n        {\n            //Burada her etiketin etrafına çerçeve attık\n            \u003Cul style=\"border:1px solid yellow\">\n                \u003Cli>@Model[sayi].Icerik\u003C/li>\n            \u003C/ul>\n            sayi++;\n        }\n    }\n\u003C/div>\n",[799,8830,8831,8835,8846,8865,8882,8886,8891,8896,8906,8910,8915,8934,8951,8959,8964,8968,8972],{"__ignoreMap":346},[1272,8832,8833],{"class":1274,"line":1275},[1272,8834,8328],{"class":8327},[1272,8836,8837,8839,8841,8844],{"class":1274,"line":347},[1272,8838,8333],{"class":1384},[1272,8840,1295],{"class":1278},[1272,8842,8843],{"class":8338},"MvcProjesi.Data.Etiket",[1272,8845,1290],{"class":1278},[1272,8847,8848,8850,8852,8854,8856,8858,8861,8863],{"class":1274,"line":1302},[1272,8849,1295],{"class":1278},[1272,8851,1437],{"class":1282},[1272,8853,8350],{"class":1286},[1272,8855,1324],{"class":1278},[1272,8857,1328],{"class":1327},[1272,8859,8860],{"class":1331},"border:1px solid yellow;padding:25px;text-align:center;",[1272,8862,1328],{"class":1327},[1272,8864,1290],{"class":1278},[1272,8866,8867,8869,8871,8873,8876,8878,8880],{"class":1274,"line":1312},[1272,8868,1315],{"class":1278},[1272,8870,2853],{"class":1282},[1272,8872,1381],{"class":1278},[1272,8874,8875],{"class":1384},"En Çok Kullanılan On Etiket",[1272,8877,1388],{"class":1278},[1272,8879,2853],{"class":1282},[1272,8881,1290],{"class":1278},[1272,8883,8884],{"class":1274,"line":1340},[1272,8885,5044],{"class":1384},[1272,8887,8888],{"class":1274,"line":1373},[1272,8889,8890],{"class":1384},"        //Bu sefer de while döngüsünü kullandık.\n",[1272,8892,8893],{"class":1274,"line":1395},[1272,8894,8895],{"class":1384},"        int sayi = 0;\n",[1272,8897,8898,8901,8903],{"class":1274,"line":1401},[1272,8899,8900],{"class":1384},"        while (sayi ",[1272,8902,1295],{"class":4903},[1272,8904,8905],{"class":1384}," Model.Count())\n",[1272,8907,8908],{"class":1274,"line":1407},[1272,8909,5079],{"class":1384},[1272,8911,8912],{"class":1274,"line":1413},[1272,8913,8914],{"class":1384},"            //Burada her etiketin etrafına çerçeve attık\n",[1272,8916,8917,8919,8921,8923,8925,8927,8930,8932],{"class":1274,"line":1422},[1272,8918,1478],{"class":1278},[1272,8920,655],{"class":1282},[1272,8922,8350],{"class":1286},[1272,8924,1324],{"class":1278},[1272,8926,1328],{"class":1327},[1272,8928,8929],{"class":1331},"border:1px solid yellow",[1272,8931,1328],{"class":1327},[1272,8933,1290],{"class":1278},[1272,8935,8936,8938,8940,8942,8945,8947,8949],{"class":1274,"line":1432},[1272,8937,1499],{"class":1278},[1272,8939,658],{"class":1282},[1272,8941,1381],{"class":1278},[1272,8943,8944],{"class":1384},"@Model[sayi].Icerik",[1272,8946,1388],{"class":1278},[1272,8948,658],{"class":1282},[1272,8950,1290],{"class":1278},[1272,8952,8953,8955,8957],{"class":1274,"line":1454},[1272,8954,1644],{"class":1278},[1272,8956,655],{"class":1282},[1272,8958,1290],{"class":1278},[1272,8960,8961],{"class":1274,"line":1475},[1272,8962,8963],{"class":1384},"            sayi++;\n",[1272,8965,8966],{"class":1274,"line":1496},[1272,8967,5101],{"class":1384},[1272,8969,8970],{"class":1274,"line":1553},[1272,8971,4534],{"class":1384},[1272,8973,8974,8976,8978],{"class":1274,"line":1579},[1272,8975,1388],{"class":1278},[1272,8977,1437],{"class":1282},[1272,8979,1290],{"class":1278},[655,8981,8982,8991],{},[658,8983,8984,8985,8987,8988,8990],{},"En son olarak da, ",[646,8986,1219],{}," sayfamıza, ",[646,8989,8793],{}," Partial View'imizi ekleyelim.",[658,8992,8993,8995],{},[646,8994,2657],{}," dosyamızı açalım ve içeriğini aşağıdaki gibi düzenleyelim.",[1264,8997,8999],{"className":1266,"code":8998,"language":1268,"meta":346,"style":346},"@{\n    ViewBag.Title = \"Index\";\n}\n\n\u003C!--Bu div, bizim ana içeriğimiz. Genişliğin, %75'ini almasını ve sola yaslanmasını istedik. -->\n\u003Cdiv style=\"width:75%;float:left\">\n    \u003C!--Burada Partial View yerine Html.Action metodunu çağırdık-->\n    @Html.Action(\"SonBesMakale\")\n\u003C/div>\n\u003C!--Bu div, bizim yan kenar içeriğimiz. Genişliğin, %25'ini almasını ve sola,\n    ana divin yanına, yaslanmasını istedik. -->\n\u003Cdiv style=\"width:25%;float:left\">\n    @Html.Action(\"SonBesYorum\")\n    @Html.Action(\"EnCokOnEtiket\")\n\u003C/div>\n",[799,9000,9001,9005,9009,9013,9017,9021,9039,9043,9047,9055,9059,9063,9081,9085,9090],{"__ignoreMap":346},[1272,9002,9003],{"class":1274,"line":1275},[1272,9004,2667],{"class":1384},[1272,9006,9007],{"class":1274,"line":347},[1272,9008,7915],{"class":1384},[1272,9010,9011],{"class":1274,"line":1302},[1272,9012,2677],{"class":1384},[1272,9014,9015],{"class":1274,"line":1312},[1272,9016,1410],{"emptyLinePlaceholder":352},[1272,9018,9019],{"class":1274,"line":1340},[1272,9020,8619],{"class":8327},[1272,9022,9023,9025,9027,9029,9031,9033,9035,9037],{"class":1274,"line":1373},[1272,9024,1295],{"class":1278},[1272,9026,1437],{"class":1282},[1272,9028,8350],{"class":1286},[1272,9030,1324],{"class":1278},[1272,9032,1328],{"class":1327},[1272,9034,8634],{"class":1331},[1272,9036,1328],{"class":1327},[1272,9038,1290],{"class":1278},[1272,9040,9041],{"class":1274,"line":1395},[1272,9042,8643],{"class":8327},[1272,9044,9045],{"class":1274,"line":1401},[1272,9046,8648],{"class":1384},[1272,9048,9049,9051,9053],{"class":1274,"line":1407},[1272,9050,1388],{"class":1278},[1272,9052,1437],{"class":1282},[1272,9054,1290],{"class":1278},[1272,9056,9057],{"class":1274,"line":1413},[1272,9058,8661],{"class":8327},[1272,9060,9061],{"class":1274,"line":1422},[1272,9062,8666],{"class":8327},[1272,9064,9065,9067,9069,9071,9073,9075,9077,9079],{"class":1274,"line":1432},[1272,9066,1295],{"class":1278},[1272,9068,1437],{"class":1282},[1272,9070,8350],{"class":1286},[1272,9072,1324],{"class":1278},[1272,9074,1328],{"class":1327},[1272,9076,8681],{"class":1331},[1272,9078,1328],{"class":1327},[1272,9080,1290],{"class":1278},[1272,9082,9083],{"class":1274,"line":1454},[1272,9084,8690],{"class":1384},[1272,9086,9087],{"class":1274,"line":1475},[1272,9088,9089],{"class":1384},"    @Html.Action(\"EnCokOnEtiket\")\n",[1272,9091,9092,9094,9096],{"class":1274,"line":1496},[1272,9093,1388],{"class":1278},[1272,9095,1437],{"class":1282},[1272,9097,1290],{"class":1278},[643,9099,9100],{},"Önceki projelerimizde kullandığımız veritabanına, çeşitli kayıtlar eklemiştik. Yeni temiz bir veritabanımız olması için, veritabanı Connection String'imizi değiştirmemiz faydalı olacaktır.",[655,9102,9103],{},[658,9104,9105,9106,9108,9109,9111],{},"Ana dizindeki ",[646,9107,6027],{}," dosyasını açalım. İçerisindeki ",[799,9110,6053],{}," kısmını ",[1264,9113,9115],{"className":6057,"code":9114,"language":6059,"meta":346,"style":346}," \u003CconnectionStrings>\n    \u003Cadd name=\"MvcProjesiContext\" connectionString=\"Data Source=(localdb)\\\\v11.0;Initial Catalog=MvcProjesiYeni;Integrated Security=True\" providerName=\"System.Data.SqlClient\" />\n  \u003C/connectionStrings>\n",[799,9116,9117,9122,9127],{"__ignoreMap":346},[1272,9118,9119],{"class":1274,"line":1275},[1272,9120,9121],{}," \u003CconnectionStrings>\n",[1272,9123,9124],{"class":1274,"line":347},[1272,9125,9126],{},"    \u003Cadd name=\"MvcProjesiContext\" connectionString=\"Data Source=(localdb)\\\\v11.0;Initial Catalog=MvcProjesiYeni;Integrated Security=True\" providerName=\"System.Data.SqlClient\" />\n",[1272,9128,9129],{"class":1274,"line":1302},[1272,9130,9131],{},"  \u003C/connectionStrings>\n",[643,9133,9134],{},"olarak değiştirelim.",[655,9136,9137],{},[658,9138,9139],{},"Projemizi çalıştıralım. Aşağıda da görüleceği üzere, sayfanın alt kısmında, en çok kullandığımız 10 etiket te listelendi.",[643,9141,9142,9146],{},[895,9143],{"alt":9144,"src":9145},"Ana sayfanın son hali","/images/2014/01/2014-01-21+13_25_47.jpg","Böylelikle ana sayfamızı da bitirmiş olduk.",[4105,9148,9149,9152],{},[643,9150,9151],{},"Farkedeceğiniz üzere, pek çok farklı yöntemler deneyerek ilerliyoruz. Bu kafa karışıklığı oluşturabilir. Ancak farklı yöntemlerle ilerlemenin ve adım adım ilerlemenin, öğrenme eğrisine katkısı olacağını düşünüyorum. ",[643,9153,9154],{},"Önceki yazılarımda, Etiket sınıfında EtiketId'nin tipini yanlışlıkla string olarak tanımlamışım. Normalde bu verinin int olması gerekmektedir. Önceki yazılarımı ve proje dosyalarımı düzelterek bu hatayı giderdim. Ancak daha önceden dosyayı indirip te hata alıyorsanız, lütfen bahsettiğim kısmı kontrol ediniz. ",[643,9156,9157],{},"Bir yazımızın daha sonuna geldik. Sonraki dersimizde, makaleler sayfamızı oluşturuyor olacağız.",[643,9159,9160,9161,7841],{},"Projenin son halini ",[771,9162,5939],{"href":9163},"/images/proje-dosyalar/asp-net-mvc-controller-ve-view-islemleri-3-asp-net-mvc-yazi-dizisi-15/MvcProjesi.zip",[643,9165,1976],{},[1978,9167,9168],{},"html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sDBD8, html code.shiki .sDBD8{--shiki-light:#E53935;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srjyR, html code.shiki .srjyR{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":346,"searchDepth":347,"depth":347,"links":9170},[],"2014/01/2014-01-21+12_14_38.jpg","2014-01-21T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Controller ve View İşlemleri 2 (Asp.Net Mvc Yazı Dizisi – 14)",{},{"title":35,"description":9173},"gRWae7bTVKgFRbJnkdBMmq5VttvsdQTHECuhceecT_0",{"id":9178,"title":39,"body":9179,"coverImage":11025,"createDate":11026,"description":11027,"extension":350,"meta":11028,"navigation":352,"path":40,"seo":11029,"stem":41,"__hash__":11030},"posts/dersler/asp-net-mvc/asp-net-mvc-html-helperler-asp-net-mvc-yazi-dizisi-16.md",{"type":343,"value":9180,"toc":11023},[9181,9184,9192,9196,9199,9202,9208,9211,9222,9225,9230,9235,9241,9255,9260,9266,9271,9274,9276,9281,9285,9291,9295,9308,9312,9318,9323,9355,9360,9366,9368,9373,9377,9383,9387,9396,9400,9406,9411,9661,9665,9671,9673,9678,9682,9688,9692,9703,9707,9713,9717,9820,9824,9830,9832,9837,9841,9847,9851,9861,9865,9871,9875,10014,10018,10024,10026,10031,10035,10041,10045,10058,10062,10067,10071,10074,10078,10080,10082,10087,10091,10097,10101,10110,10114,10120,10124,10179,10183,10185,10187,10192,10196,10202,10206,10217,10221,10227,10231,10264,10268,10274,10276,10281,10285,10291,10295,10302,10306,10312,10316,10457,10461,10467,10469,10474,10478,10484,10488,10501,10505,10511,10515,10571,10575,10581,10583,10588,10592,10598,10602,10615,10619,10625,10629,10695,10699,10705,10707,10712,10716,10722,10726,10751,10755,10761,10765,10831,10835,10841,10843,10848,10852,10858,10862,10872,10876,10882,10886,10951,10955,10961,10963,10968,10972,10978,10982,10992,10994,10999,11003,11008,11012,11015,11018,11020],[639,9182,39],{"id":9183},"aspnet-mvc-html-helperler-aspnet-mvc-yazı-dizisi-16",[643,9185,9186,853,9188],{},[646,9187,852],{},[771,9189,9190],{"href":36},[646,9191,35],{},[643,9193,9194],{},[646,9195,861],{},[643,9197,9198],{},"Önceki makalelerimizde, geliştirdiğimiz blog uygulamasının, ana sayfasını bitirmiştik. Bu sayfayı tasarlarken çeşitli Partial View'ler kullanmıştık. Ayrıca liste halinde ki verileri aktarırken, döngüler oluşturup, html tagları ile verilerimizi, ekranda göstermiştik.",[643,9200,9201],{},"Bunların yanında birde, kullanabileceğimiz Html ve Web Helper'larımız mevcuttur. ",[643,9203,9204,9207],{},[646,9205,9206],{},"Helper :"," Asp.Net Mvc sisteminde, View içerisinde ki verileri göstermede kullanabildiğimiz ve Html olarak çıktı üreten hazır metodlardır.",[643,9209,9210],{},"Microsoft'un Framework içerisinde sunduğu Helper'lerin yanında, Web Helper'leri, ayrıca Paypal gibi firmalar tarafından üretilen, çeşitli Helper'ler da mevcuttur. Ayrıca kendiniz de, isteğinize özel Helper'lar geliştirme şansına sahipsiniz.",[643,9212,9213,9214,9217,9218,9221],{},"Html Helper'leri kullanırken, ",[799,9215,9216],{},"@Html."," ile yazmaya başlamaktayız. ",[799,9219,9220],{},".","'dan sonra, kullanılabilecek çeşitli metodlar, IntelliSense tarafından listelenecektir.",[643,9223,9224],{},"Bu yazımızda bloğumuza biraz ara verip, Html Helper metodlarını isim sırasına göre kısaca inceleyelim.",[643,9226,9227],{},[646,9228,9229],{},"Html.Action",[643,9231,9232],{},[646,9233,9234],{},"Yazım Şekli :",[1264,9236,9239],{"className":9237,"code":9238,"language":2600},[2598],"@Html.Action(\"Action ismi\",\"Controller ismi\")\n",[799,9240,9238],{"__ignoreMap":346},[643,9242,9243,9246,9247,9250,9251,9254],{},[646,9244,9245],{},"Açıklama :"," Sayfa yüklendiğinde, ",[646,9248,9249],{},"Controller ismi"," kısmında yazılı olan Controller'in içerisinde ki, ",[646,9252,9253],{},"Action ismi"," kısmında belirtilen Action'u çağırır ve dönen sonucu ekrana yansıtır.",[643,9256,9257],{},[646,9258,9259],{},"Örnek :",[1264,9261,9264],{"className":9262,"code":9263,"language":2600},[2598],"@Html.Action(\"Index\",\"Home\")\n",[799,9265,9263],{"__ignoreMap":346},[643,9267,9268],{},[646,9269,9270],{},"Çıktı :",[643,9272,9273],{},"Çağırılan metodun sonucu oluşan View içeriği.",[1820,9275],{},[643,9277,9278],{},[646,9279,9280],{},"Html.ActionLink",[643,9282,9283,853],{},[646,9284,9234],{},[1264,9286,9289],{"className":9287,"code":9288,"language":2600},[2598],"@Html.ActionLink(\"Link yazısı\",\"Action ismi\",\"Controller ismi\")\n",[799,9290,9288],{"__ignoreMap":346},[643,9292,9293],{},[646,9294,9245],{},[643,9296,9297,9298,9301,9302,9304,9305,9307],{},"Link olarak kullanılır. ",[646,9299,9300],{},"Link yazısı"," kısmına, görünecek metin, ",[646,9303,9249],{}," kısmına gidilecek Controller'in adı, ",[646,9306,9253],{}," kısmına da çağırılacak olan Action metodun ismi yazılır.",[643,9309,9310,853],{},[646,9311,9259],{},[1264,9313,9316],{"className":9314,"code":9315,"language":2600},[2598],"@Html.ActionLink(\"Ana Sayfa\",\"Index\",\"Home\")\n",[799,9317,9315],{"__ignoreMap":346},[643,9319,9320,853],{},[646,9321,9322],{},"Çıktı (Html) :",[1264,9324,9326],{"className":1266,"code":9325,"language":1268,"meta":346,"style":346},"\u003Ca href=\"Home/Index\">Ana Sayfa\u003C/a>\n",[799,9327,9328],{"__ignoreMap":346},[1272,9329,9330,9332,9334,9336,9338,9340,9343,9345,9347,9349,9351,9353],{"class":1274,"line":1275},[1272,9331,1295],{"class":1278},[1272,9333,771],{"class":1282},[1272,9335,2758],{"class":1286},[1272,9337,1324],{"class":1278},[1272,9339,1328],{"class":1327},[1272,9341,9342],{"class":1331},"Home/Index",[1272,9344,1328],{"class":1327},[1272,9346,1381],{"class":1278},[1272,9348,3798],{"class":1384},[1272,9350,1388],{"class":1278},[1272,9352,771],{"class":1282},[1272,9354,1290],{"class":1278},[643,9356,9357,853],{},[646,9358,9359],{},"Çıktı (Görsel) :",[643,9361,9362],{},[895,9363],{"alt":9364,"src":9365},"ActionLink çıktı","/images/2014/01/2014-01-30+14_23_46.jpg",[1820,9367],{},[643,9369,9370],{},[646,9371,9372],{},"Html.BeginForm",[643,9374,9375,853],{},[646,9376,9234],{},[1264,9378,9381],{"className":9379,"code":9380,"language":2600},[2598],"@Html.BeginForm(\"Action ismi\",\"Controller ismi\")\n",[799,9382,9380],{"__ignoreMap":346},[643,9384,9385,853],{},[646,9386,9245],{},[643,9388,9389,9390,9392,9393,9395],{},"Üyelik girişi, iletişim formu gibi amaçlarla kullanılabilecek formlar oluşturmamızı sağlar. İçerisine çeşitli öğeler alabilir. ",[646,9391,9249],{}," kısmına, formun gönderileceği Action'un içinde bulunduğu Controller'in adı, ",[646,9394,9253],{}," kısmına da formun gönderileceği Action metodun ismi yazılır.",[643,9397,9398,853],{},[646,9399,9259],{},[1264,9401,9404],{"className":9402,"code":9403,"language":2600},[2598],"@using (@Html.BeginForm(\"YeniUyelik\", \"Uyelik\"))   \n{   @Html.Label(\"Ad : \") \n    @Html.TextBox(\"ad\")\u003Cbr /> \n    @Html.CheckBox(\"Onaylı\", true)   \n}\n",[799,9405,9403],{"__ignoreMap":346},[643,9407,9408,853],{},[646,9409,9410],{},"Çıktı (Html) :",[1264,9412,9414],{"className":1266,"code":9413,"language":1268,"meta":346,"style":346},"\u003Cform action=\"/Uyelik/YeniUyelik\" method=\"post\">\n    \u003Clabel for=\"Ad_:_\">Ad : \u003C/label>\n    \u003Cinput id=\"ad\" name=\"ad\" type=\"text\" value=\"\" data-cip-id=\"ad\">    \n    \u003Cbr>\n    \u003Cinput checked=\"checked\" id=\"Onayl_\" name=\"Onaylı\" type=\"checkbox\" value=\"true\">\n    \u003Cinput name=\"Onaylı\" type=\"hidden\" value=\"false\">\n\u003C/form>\n",[799,9415,9416,9449,9479,9541,9549,9613,9653],{"__ignoreMap":346},[1272,9417,9418,9420,9423,9426,9428,9430,9433,9435,9438,9440,9442,9445,9447],{"class":1274,"line":1275},[1272,9419,1295],{"class":1278},[1272,9421,9422],{"class":1282},"form",[1272,9424,9425],{"class":1286}," action",[1272,9427,1324],{"class":1278},[1272,9429,1328],{"class":1327},[1272,9431,9432],{"class":1331},"/Uyelik/YeniUyelik",[1272,9434,1328],{"class":1327},[1272,9436,9437],{"class":1286}," method",[1272,9439,1324],{"class":1278},[1272,9441,1328],{"class":1327},[1272,9443,9444],{"class":1331},"post",[1272,9446,1328],{"class":1327},[1272,9448,1290],{"class":1278},[1272,9450,9451,9453,9456,9459,9461,9463,9466,9468,9470,9473,9475,9477],{"class":1274,"line":347},[1272,9452,1315],{"class":1278},[1272,9454,9455],{"class":1282},"label",[1272,9457,9458],{"class":1286}," for",[1272,9460,1324],{"class":1278},[1272,9462,1328],{"class":1327},[1272,9464,9465],{"class":1331},"Ad_:_",[1272,9467,1328],{"class":1327},[1272,9469,1381],{"class":1278},[1272,9471,9472],{"class":1384},"Ad : ",[1272,9474,1388],{"class":1278},[1272,9476,9455],{"class":1282},[1272,9478,1290],{"class":1278},[1272,9480,9481,9483,9486,9489,9491,9493,9496,9498,9500,9502,9504,9506,9508,9510,9512,9514,9516,9518,9521,9523,9526,9529,9531,9533,9535,9537,9539],{"class":1274,"line":1302},[1272,9482,1315],{"class":1278},[1272,9484,9485],{"class":1282},"input",[1272,9487,9488],{"class":1286}," id",[1272,9490,1324],{"class":1278},[1272,9492,1328],{"class":1327},[1272,9494,9495],{"class":1331},"ad",[1272,9497,1328],{"class":1327},[1272,9499,1347],{"class":1286},[1272,9501,1324],{"class":1278},[1272,9503,1328],{"class":1327},[1272,9505,9495],{"class":1331},[1272,9507,1328],{"class":1327},[1272,9509,1505],{"class":1286},[1272,9511,1324],{"class":1278},[1272,9513,1328],{"class":1327},[1272,9515,2600],{"class":1331},[1272,9517,1328],{"class":1327},[1272,9519,9520],{"class":1286}," value",[1272,9522,1324],{"class":1278},[1272,9524,9525],{"class":1327},"\"\"",[1272,9527,9528],{"class":1286}," data-cip-id",[1272,9530,1324],{"class":1278},[1272,9532,1328],{"class":1327},[1272,9534,9495],{"class":1331},[1272,9536,1328],{"class":1327},[1272,9538,1381],{"class":1278},[1272,9540,5375],{"class":1384},[1272,9542,9543,9545,9547],{"class":1274,"line":1312},[1272,9544,1315],{"class":1278},[1272,9546,8467],{"class":1282},[1272,9548,1290],{"class":1278},[1272,9550,9551,9553,9555,9558,9560,9562,9565,9567,9569,9571,9573,9576,9578,9580,9582,9584,9587,9589,9591,9593,9595,9598,9600,9602,9604,9606,9609,9611],{"class":1274,"line":1340},[1272,9552,1315],{"class":1278},[1272,9554,9485],{"class":1282},[1272,9556,9557],{"class":1286}," checked",[1272,9559,1324],{"class":1278},[1272,9561,1328],{"class":1327},[1272,9563,9564],{"class":1331},"checked",[1272,9566,1328],{"class":1327},[1272,9568,9488],{"class":1286},[1272,9570,1324],{"class":1278},[1272,9572,1328],{"class":1327},[1272,9574,9575],{"class":1331},"Onayl_",[1272,9577,1328],{"class":1327},[1272,9579,1347],{"class":1286},[1272,9581,1324],{"class":1278},[1272,9583,1328],{"class":1327},[1272,9585,9586],{"class":1331},"Onaylı",[1272,9588,1328],{"class":1327},[1272,9590,1505],{"class":1286},[1272,9592,1324],{"class":1278},[1272,9594,1328],{"class":1327},[1272,9596,9597],{"class":1331},"checkbox",[1272,9599,1328],{"class":1327},[1272,9601,9520],{"class":1286},[1272,9603,1324],{"class":1278},[1272,9605,1328],{"class":1327},[1272,9607,9608],{"class":1331},"true",[1272,9610,1328],{"class":1327},[1272,9612,1290],{"class":1278},[1272,9614,9615,9617,9619,9621,9623,9625,9627,9629,9631,9633,9635,9638,9640,9642,9644,9646,9649,9651],{"class":1274,"line":1373},[1272,9616,1315],{"class":1278},[1272,9618,9485],{"class":1282},[1272,9620,1347],{"class":1286},[1272,9622,1324],{"class":1278},[1272,9624,1328],{"class":1327},[1272,9626,9586],{"class":1331},[1272,9628,1328],{"class":1327},[1272,9630,1505],{"class":1286},[1272,9632,1324],{"class":1278},[1272,9634,1328],{"class":1327},[1272,9636,9637],{"class":1331},"hidden",[1272,9639,1328],{"class":1327},[1272,9641,9520],{"class":1286},[1272,9643,1324],{"class":1278},[1272,9645,1328],{"class":1327},[1272,9647,9648],{"class":1331},"false",[1272,9650,1328],{"class":1327},[1272,9652,1290],{"class":1278},[1272,9654,9655,9657,9659],{"class":1274,"line":1395},[1272,9656,1388],{"class":1278},[1272,9658,9422],{"class":1282},[1272,9660,1290],{"class":1278},[643,9662,9663],{},[646,9664,9359],{},[643,9666,9667],{},[895,9668],{"alt":9669,"src":9670},"BeginForm çıktı","/images/2014/01/2014-01-30+14_30_46.jpg",[1820,9672],{},[643,9674,9675],{},[646,9676,9677],{},"Html.CheckBox",[643,9679,9680,853],{},[646,9681,9234],{},[1264,9683,9686],{"className":9684,"code":9685,"language":2600},[2598],"@Html.CheckBox(\"İsim\",\"İşaretli mi\")\n",[799,9687,9685],{"__ignoreMap":346},[643,9689,9690,853],{},[646,9691,9245],{},[643,9693,9694,9695,9698,9699,9702],{},"Onay işlemlerinde, bir şeyin seçili olup olmamasını belirlemek için kullanılır. ",[646,9696,9697],{},"İsim"," kısmına, CheckBox'ın adı, ",[646,9700,9701],{},"İşaretli mi"," kısmına da true ya da false yazılır.",[643,9704,9705,853],{},[646,9706,9259],{},[1264,9708,9711],{"className":9709,"code":9710,"language":2600},[2598],"@Html.CheckBox(\"Adresime E-posta gelsin\",true)\n",[799,9712,9710],{"__ignoreMap":346},[643,9714,9715,853],{},[646,9716,9410],{},[1264,9718,9720],{"className":1266,"code":9719,"language":1268,"meta":346,"style":346},"\u003Cinput checked=\"checked\" id=\"Adresime_E-posta_gelsin\" name=\"Adresime E-posta gelsin\" type=\"checkbox\" value=\"true\">\n\u003Cinput name=\"Adresime E-posta gelsin\" type=\"hidden\" value=\"false\">\n",[799,9721,9722,9782],{"__ignoreMap":346},[1272,9723,9724,9726,9728,9730,9732,9734,9736,9738,9740,9742,9744,9747,9749,9751,9753,9755,9758,9760,9762,9764,9766,9768,9770,9772,9774,9776,9778,9780],{"class":1274,"line":1275},[1272,9725,1295],{"class":1278},[1272,9727,9485],{"class":1282},[1272,9729,9557],{"class":1286},[1272,9731,1324],{"class":1278},[1272,9733,1328],{"class":1327},[1272,9735,9564],{"class":1331},[1272,9737,1328],{"class":1327},[1272,9739,9488],{"class":1286},[1272,9741,1324],{"class":1278},[1272,9743,1328],{"class":1327},[1272,9745,9746],{"class":1331},"Adresime_E-posta_gelsin",[1272,9748,1328],{"class":1327},[1272,9750,1347],{"class":1286},[1272,9752,1324],{"class":1278},[1272,9754,1328],{"class":1327},[1272,9756,9757],{"class":1331},"Adresime E-posta gelsin",[1272,9759,1328],{"class":1327},[1272,9761,1505],{"class":1286},[1272,9763,1324],{"class":1278},[1272,9765,1328],{"class":1327},[1272,9767,9597],{"class":1331},[1272,9769,1328],{"class":1327},[1272,9771,9520],{"class":1286},[1272,9773,1324],{"class":1278},[1272,9775,1328],{"class":1327},[1272,9777,9608],{"class":1331},[1272,9779,1328],{"class":1327},[1272,9781,1290],{"class":1278},[1272,9783,9784,9786,9788,9790,9792,9794,9796,9798,9800,9802,9804,9806,9808,9810,9812,9814,9816,9818],{"class":1274,"line":347},[1272,9785,1295],{"class":1278},[1272,9787,9485],{"class":1282},[1272,9789,1347],{"class":1286},[1272,9791,1324],{"class":1278},[1272,9793,1328],{"class":1327},[1272,9795,9757],{"class":1331},[1272,9797,1328],{"class":1327},[1272,9799,1505],{"class":1286},[1272,9801,1324],{"class":1278},[1272,9803,1328],{"class":1327},[1272,9805,9637],{"class":1331},[1272,9807,1328],{"class":1327},[1272,9809,9520],{"class":1286},[1272,9811,1324],{"class":1278},[1272,9813,1328],{"class":1327},[1272,9815,9648],{"class":1331},[1272,9817,1328],{"class":1327},[1272,9819,1290],{"class":1278},[643,9821,9822,853],{},[646,9823,9359],{},[643,9825,9826],{},[895,9827],{"alt":9828,"src":9829},"CheckBox çıktı","/images/2014/01/2014-01-30+14_32_19.jpg",[1820,9831],{},[643,9833,9834],{},[646,9835,9836],{},"Html.DropDownList",[643,9838,9839],{},[646,9840,9234],{},[1264,9842,9845],{"className":9843,"code":9844,"language":2600},[2598],"@Html.DropDownList(\"İsim\",\"Liste\")\n",[799,9846,9844],{"__ignoreMap":346},[643,9848,9849,853],{},[646,9850,9245],{},[643,9852,9853,9854,9856,9857,9860],{},"Alta açılır listeler oluşturmak için kullanılır. ",[646,9855,9697],{}," kısmına, herhangi bir isim, ",[646,9858,9859],{},"Liste"," kısmına da, listenin içinde gösterilecek bir veri listesi yüklenir.",[643,9862,9863,853],{},[646,9864,9259],{},[1264,9866,9869],{"className":9867,"code":9868,"language":2600},[2598],"@Html.DropDownList(\"sehirler\", new[] { new SelectListItem { Text = \"İstanbul\", Value = \"34\" }, new SelectListItem { Text = \"Ankara\", Value = \"10\" }, new SelectListItem { Text = \"İzmir\", Value = \"35\" } })`\n",[799,9870,9868],{"__ignoreMap":346},[643,9872,9873,853],{},[646,9874,9410],{},[1264,9876,9878],{"className":1266,"code":9877,"language":1268,"meta":346,"style":346},"\u003Cselect id=\"sehirler\" name=\"sehirler\" data-cip-id=\"cIPJQ342845639\">\n    \u003Coption value=\"34\">İstanbul\u003C/option>\n    \u003Coption value=\"10\">Ankara\u003C/option>\n    \u003Coption value=\"35\">İzmir\u003C/option>\n\u003C/select>\n",[799,9879,9880,9921,9950,9978,10006],{"__ignoreMap":346},[1272,9881,9882,9884,9887,9889,9891,9893,9896,9898,9900,9902,9904,9906,9908,9910,9912,9914,9917,9919],{"class":1274,"line":1275},[1272,9883,1295],{"class":1278},[1272,9885,9886],{"class":1282},"select",[1272,9888,9488],{"class":1286},[1272,9890,1324],{"class":1278},[1272,9892,1328],{"class":1327},[1272,9894,9895],{"class":1331},"sehirler",[1272,9897,1328],{"class":1327},[1272,9899,1347],{"class":1286},[1272,9901,1324],{"class":1278},[1272,9903,1328],{"class":1327},[1272,9905,9895],{"class":1331},[1272,9907,1328],{"class":1327},[1272,9909,9528],{"class":1286},[1272,9911,1324],{"class":1278},[1272,9913,1328],{"class":1327},[1272,9915,9916],{"class":1331},"cIPJQ342845639",[1272,9918,1328],{"class":1327},[1272,9920,1290],{"class":1278},[1272,9922,9923,9925,9928,9930,9932,9934,9937,9939,9941,9944,9946,9948],{"class":1274,"line":347},[1272,9924,1315],{"class":1278},[1272,9926,9927],{"class":1282},"option",[1272,9929,9520],{"class":1286},[1272,9931,1324],{"class":1278},[1272,9933,1328],{"class":1327},[1272,9935,9936],{"class":1331},"34",[1272,9938,1328],{"class":1327},[1272,9940,1381],{"class":1278},[1272,9942,9943],{"class":1384},"İstanbul",[1272,9945,1388],{"class":1278},[1272,9947,9927],{"class":1282},[1272,9949,1290],{"class":1278},[1272,9951,9952,9954,9956,9958,9960,9962,9965,9967,9969,9972,9974,9976],{"class":1274,"line":1302},[1272,9953,1315],{"class":1278},[1272,9955,9927],{"class":1282},[1272,9957,9520],{"class":1286},[1272,9959,1324],{"class":1278},[1272,9961,1328],{"class":1327},[1272,9963,9964],{"class":1331},"10",[1272,9966,1328],{"class":1327},[1272,9968,1381],{"class":1278},[1272,9970,9971],{"class":1384},"Ankara",[1272,9973,1388],{"class":1278},[1272,9975,9927],{"class":1282},[1272,9977,1290],{"class":1278},[1272,9979,9980,9982,9984,9986,9988,9990,9993,9995,9997,10000,10002,10004],{"class":1274,"line":1312},[1272,9981,1315],{"class":1278},[1272,9983,9927],{"class":1282},[1272,9985,9520],{"class":1286},[1272,9987,1324],{"class":1278},[1272,9989,1328],{"class":1327},[1272,9991,9992],{"class":1331},"35",[1272,9994,1328],{"class":1327},[1272,9996,1381],{"class":1278},[1272,9998,9999],{"class":1384},"İzmir",[1272,10001,1388],{"class":1278},[1272,10003,9927],{"class":1282},[1272,10005,1290],{"class":1278},[1272,10007,10008,10010,10012],{"class":1274,"line":1340},[1272,10009,1388],{"class":1278},[1272,10011,9886],{"class":1282},[1272,10013,1290],{"class":1278},[643,10015,10016],{},[646,10017,9359],{},[643,10019,10020],{},[895,10021],{"alt":10022,"src":10023},"DropDownList çıktı","/images/2014/01/2014-01-30+14_33_38.jpg",[1820,10025],{},[643,10027,10028],{},[646,10029,10030],{},"Html.EndForm",[643,10032,10033],{},[646,10034,9234],{},[1264,10036,10039],{"className":10037,"code":10038,"language":2600},[2598],"@Html.EndForm()\n",[799,10040,10038],{"__ignoreMap":346},[643,10042,10043,853],{},[646,10044,9245],{},[643,10046,10047,10050,10051,10054,10055,10057],{},[799,10048,10049],{},"@using"," ifadesi içerisinde sarmalanmadan, ",[799,10052,10053],{},"@Html.BeginForm"," ifadesi ile başlangıcı açılan, form elementini kapatır. ",[799,10056,10049],{}," ifadesi kullanıldıysa, zaten bu elemena ihtiyacç yoktur. Süslü parantez bittiği zaman, otomatik olarak kapanacaktır.",[643,10059,10060,853],{},[646,10061,9259],{},[1264,10063,10065],{"className":10064,"code":10038,"language":2600},[2598],[799,10066,10038],{"__ignoreMap":346},[643,10068,10069,853],{},[646,10070,9410],{},[643,10072,10073],{},"Herhangi bir çıktısı yoktur.",[643,10075,10076],{},[646,10077,9359],{},[643,10079,10073],{},[1820,10081],{},[643,10083,10084],{},[646,10085,10086],{},"Html.Hidden",[643,10088,10089],{},[646,10090,9234],{},[1264,10092,10095],{"className":10093,"code":10094,"language":2600},[2598],"@Html.Hidden(\"İsim\",\"Değer\")\n",[799,10096,10094],{"__ignoreMap":346},[643,10098,10099,853],{},[646,10100,9245],{},[643,10102,10103,10104,9856,10106,10109],{},"Verilerin, gizli olarak saklanabileceği elemenlar oluşturmak için kullanılır. ",[646,10105,9697],{},[646,10107,10108],{},"Veri"," kısmına da, saklanacak veri girilir. Yalnız şu unutulmamalıdır, veriler tarayıcıların, geliştirici araçları ile görüntülenebilir. Bu yüzden tam bir gizlilikten söz edilemez.",[643,10111,10112,853],{},[646,10113,9259],{},[1264,10115,10118],{"className":10116,"code":10117,"language":2600},[2598],"@Html.Hidden(\"hiddenId\",\"5\")`\n",[799,10119,10117],{"__ignoreMap":346},[643,10121,10122,853],{},[646,10123,9410],{},[1264,10125,10127],{"className":1266,"code":10126,"language":1268,"meta":346,"style":346},"\u003Cinput id=\"hiddenId\" name=\"hiddenId\" type=\"hidden\" value=\"5\">\n",[799,10128,10129],{"__ignoreMap":346},[1272,10130,10131,10133,10135,10137,10139,10141,10144,10146,10148,10150,10152,10154,10156,10158,10160,10162,10164,10166,10168,10170,10172,10175,10177],{"class":1274,"line":1275},[1272,10132,1295],{"class":1278},[1272,10134,9485],{"class":1282},[1272,10136,9488],{"class":1286},[1272,10138,1324],{"class":1278},[1272,10140,1328],{"class":1327},[1272,10142,10143],{"class":1331},"hiddenId",[1272,10145,1328],{"class":1327},[1272,10147,1347],{"class":1286},[1272,10149,1324],{"class":1278},[1272,10151,1328],{"class":1327},[1272,10153,10143],{"class":1331},[1272,10155,1328],{"class":1327},[1272,10157,1505],{"class":1286},[1272,10159,1324],{"class":1278},[1272,10161,1328],{"class":1327},[1272,10163,9637],{"class":1331},[1272,10165,1328],{"class":1327},[1272,10167,9520],{"class":1286},[1272,10169,1324],{"class":1278},[1272,10171,1328],{"class":1327},[1272,10173,10174],{"class":1331},"5",[1272,10176,1328],{"class":1327},[1272,10178,1290],{"class":1278},[643,10180,10181],{},[646,10182,9359],{},[643,10184,10073],{},[1820,10186],{},[643,10188,10189],{},[646,10190,10191],{},"Html.Label",[643,10193,10194],{},[646,10195,9234],{},[1264,10197,10200],{"className":10198,"code":10199,"language":2600},[2598],"@Html.Label(\"Tanımlayıcı eleman\",\"Metin\")\n",[799,10201,10199],{"__ignoreMap":346},[643,10203,10204,853],{},[646,10205,9245],{},[643,10207,10208,10209,10212,10213,10216],{},"Bir eleman ile ilgili tanımlayıcı metin eklemeye yarayan elemandır. ",[646,10210,10211],{},"Tanımlayıcı eleman"," kısmına, açıklama için kullanılacak elemanın (TextBox,TextArea,RadioButton vs.) id'si, ",[646,10214,10215],{},"Metin"," kısmına da, metinsel açıklama yazılır. ",[643,10218,10219,853],{},[646,10220,9259],{},[1264,10222,10225],{"className":10223,"code":10224,"language":2600},[2598],"@Html.Label(\"textBoxIsim\",\"İsim : \")\n",[799,10226,10224],{"__ignoreMap":346},[643,10228,10229,853],{},[646,10230,9410],{},[1264,10232,10234],{"className":1266,"code":10233,"language":1268,"meta":346,"style":346},"\u003Clabel for=\"textBoxIsim\">İsim : \u003C/label>\n",[799,10235,10236],{"__ignoreMap":346},[1272,10237,10238,10240,10242,10244,10246,10248,10251,10253,10255,10258,10260,10262],{"class":1274,"line":1275},[1272,10239,1295],{"class":1278},[1272,10241,9455],{"class":1282},[1272,10243,9458],{"class":1286},[1272,10245,1324],{"class":1278},[1272,10247,1328],{"class":1327},[1272,10249,10250],{"class":1331},"textBoxIsim",[1272,10252,1328],{"class":1327},[1272,10254,1381],{"class":1278},[1272,10256,10257],{"class":1384},"İsim : ",[1272,10259,1388],{"class":1278},[1272,10261,9455],{"class":1282},[1272,10263,1290],{"class":1278},[643,10265,10266],{},[646,10267,9359],{},[643,10269,10270],{},[895,10271],{"alt":10272,"src":10273},"Label çıktı","/images/2014/01/2014-01-31+09_47_48.jpg",[1820,10275],{},[643,10277,10278],{},[646,10279,10280],{},"Html.ListBox",[643,10282,10283],{},[646,10284,9234],{},[1264,10286,10289],{"className":10287,"code":10288,"language":2600},[2598],"@Html.ListBox(\"İsim\",\"Liste\")\n",[799,10290,10288],{"__ignoreMap":346},[643,10292,10293,853],{},[646,10294,9245],{},[643,10296,10297,10298,9856,10300,9860],{},"Listeler oluşturmak için kullanılır. ",[646,10299,9697],{},[646,10301,9859],{},[643,10303,10304,853],{},[646,10305,9259],{},[1264,10307,10310],{"className":10308,"code":10309,"language":2600},[2598],"@Html.ListBox(\"sehirler\", new[] { new SelectListItem { Text = \"İstanbul\", Value = \"34\" }, new SelectListItem { Text = \"Ankara\", Value = \"10\" }, new SelectListItem { Text = \"İzmir\", Value = \"35\" } })\n",[799,10311,10309],{"__ignoreMap":346},[643,10313,10314,853],{},[646,10315,9410],{},[1264,10317,10319],{"className":1266,"code":10318,"language":1268,"meta":346,"style":346},"\u003Cselect id=\"sehirler\" multiple=\"multiple\" name=\"sehirler\" data-cip-id=\"cIPJQ342845639\">\n    \u003Coption value=\"34\">İstanbul\u003C/option>\n    \u003Coption value=\"10\">Ankara\u003C/option>\n    \u003Coption value=\"35\">İzmir\u003C/option>\n\u003C/select>\n",[799,10320,10321,10371,10397,10423,10449],{"__ignoreMap":346},[1272,10322,10323,10325,10327,10329,10331,10333,10335,10337,10340,10342,10344,10347,10349,10351,10353,10355,10357,10359,10361,10363,10365,10367,10369],{"class":1274,"line":1275},[1272,10324,1295],{"class":1278},[1272,10326,9886],{"class":1282},[1272,10328,9488],{"class":1286},[1272,10330,1324],{"class":1278},[1272,10332,1328],{"class":1327},[1272,10334,9895],{"class":1331},[1272,10336,1328],{"class":1327},[1272,10338,10339],{"class":1286}," multiple",[1272,10341,1324],{"class":1278},[1272,10343,1328],{"class":1327},[1272,10345,10346],{"class":1331},"multiple",[1272,10348,1328],{"class":1327},[1272,10350,1347],{"class":1286},[1272,10352,1324],{"class":1278},[1272,10354,1328],{"class":1327},[1272,10356,9895],{"class":1331},[1272,10358,1328],{"class":1327},[1272,10360,9528],{"class":1286},[1272,10362,1324],{"class":1278},[1272,10364,1328],{"class":1327},[1272,10366,9916],{"class":1331},[1272,10368,1328],{"class":1327},[1272,10370,1290],{"class":1278},[1272,10372,10373,10375,10377,10379,10381,10383,10385,10387,10389,10391,10393,10395],{"class":1274,"line":347},[1272,10374,1315],{"class":1278},[1272,10376,9927],{"class":1282},[1272,10378,9520],{"class":1286},[1272,10380,1324],{"class":1278},[1272,10382,1328],{"class":1327},[1272,10384,9936],{"class":1331},[1272,10386,1328],{"class":1327},[1272,10388,1381],{"class":1278},[1272,10390,9943],{"class":1384},[1272,10392,1388],{"class":1278},[1272,10394,9927],{"class":1282},[1272,10396,1290],{"class":1278},[1272,10398,10399,10401,10403,10405,10407,10409,10411,10413,10415,10417,10419,10421],{"class":1274,"line":1302},[1272,10400,1315],{"class":1278},[1272,10402,9927],{"class":1282},[1272,10404,9520],{"class":1286},[1272,10406,1324],{"class":1278},[1272,10408,1328],{"class":1327},[1272,10410,9964],{"class":1331},[1272,10412,1328],{"class":1327},[1272,10414,1381],{"class":1278},[1272,10416,9971],{"class":1384},[1272,10418,1388],{"class":1278},[1272,10420,9927],{"class":1282},[1272,10422,1290],{"class":1278},[1272,10424,10425,10427,10429,10431,10433,10435,10437,10439,10441,10443,10445,10447],{"class":1274,"line":1312},[1272,10426,1315],{"class":1278},[1272,10428,9927],{"class":1282},[1272,10430,9520],{"class":1286},[1272,10432,1324],{"class":1278},[1272,10434,1328],{"class":1327},[1272,10436,9992],{"class":1331},[1272,10438,1328],{"class":1327},[1272,10440,1381],{"class":1278},[1272,10442,9999],{"class":1384},[1272,10444,1388],{"class":1278},[1272,10446,9927],{"class":1282},[1272,10448,1290],{"class":1278},[1272,10450,10451,10453,10455],{"class":1274,"line":1340},[1272,10452,1388],{"class":1278},[1272,10454,9886],{"class":1282},[1272,10456,1290],{"class":1278},[643,10458,10459],{},[646,10460,9359],{},[643,10462,10463],{},[895,10464],{"alt":10465,"src":10466},"ListBox çıktı","/images/2014/01/2014-01-31+09_56_48.jpg",[1820,10468],{},[643,10470,10471],{},[646,10472,10473],{},"Html.Password",[643,10475,10476],{},[646,10477,9234],{},[1264,10479,10482],{"className":10480,"code":10481,"language":2600},[2598],"@Html.Password(\"İsim\",\"Şifre\")\n",[799,10483,10481],{"__ignoreMap":346},[643,10485,10486,853],{},[646,10487,9245],{},[643,10489,10490,10491,10493,10494,10497,10498,10500],{},"İçerisine girilen elemanları, şifreleyerek göstermeye yarayan bir elemandır. Şifre girişlerinde bu eleman kullanılır. ",[646,10492,9697],{}," kısmına, elemanın ismi, ",[646,10495,10496],{},"Şifre"," kısmına da, şifreli eleman yazılır. ",[646,10499,10496],{}," kısmı kullanıcı tarafından girileceği için, çoğu zaman boş olarak gönderilir.",[643,10502,10503,853],{},[646,10504,9259],{},[1264,10506,10509],{"className":10507,"code":10508,"language":2600},[2598],"@Html.Password(\"paswSifre\",\"123465\")\n",[799,10510,10508],{"__ignoreMap":346},[643,10512,10513,853],{},[646,10514,9410],{},[1264,10516,10518],{"className":1266,"code":10517,"language":1268,"meta":346,"style":346},"\u003Cinput id=\"paswSifre\" name=\"paswSifre\" value=\"123465\" type=\"password\">\n",[799,10519,10520],{"__ignoreMap":346},[1272,10521,10522,10524,10526,10528,10530,10532,10535,10537,10539,10541,10543,10545,10547,10549,10551,10553,10556,10558,10560,10562,10564,10567,10569],{"class":1274,"line":1275},[1272,10523,1295],{"class":1278},[1272,10525,9485],{"class":1282},[1272,10527,9488],{"class":1286},[1272,10529,1324],{"class":1278},[1272,10531,1328],{"class":1327},[1272,10533,10534],{"class":1331},"paswSifre",[1272,10536,1328],{"class":1327},[1272,10538,1347],{"class":1286},[1272,10540,1324],{"class":1278},[1272,10542,1328],{"class":1327},[1272,10544,10534],{"class":1331},[1272,10546,1328],{"class":1327},[1272,10548,9520],{"class":1286},[1272,10550,1324],{"class":1278},[1272,10552,1328],{"class":1327},[1272,10554,10555],{"class":1331},"123465",[1272,10557,1328],{"class":1327},[1272,10559,1505],{"class":1286},[1272,10561,1324],{"class":1278},[1272,10563,1328],{"class":1327},[1272,10565,10566],{"class":1331},"password",[1272,10568,1328],{"class":1327},[1272,10570,1290],{"class":1278},[643,10572,10573],{},[646,10574,9359],{},[643,10576,10577],{},[895,10578],{"alt":10579,"src":10580},"Password çıktı","/images/2014/01/2014-01-31+10_04_07.jpg",[1820,10582],{},[643,10584,10585],{},[646,10586,10587],{},"Html.RadioButton",[643,10589,10590],{},[646,10591,9234],{},[1264,10593,10596],{"className":10594,"code":10595,"language":2600},[2598],"@Html.RadioButton(\"İsim\",\"Değer\",\"İşaretli mi\")\n",[799,10597,10595],{"__ignoreMap":346},[643,10599,10600,853],{},[646,10601,9245],{},[643,10603,10604,10605,10607,10608,10611,10612,10614],{},"İçerisine girilen elemanı, seçenek olarak işaretleyebilmemize yarayan elemandır. ",[646,10606,9697],{}," kısmına, elemanın ismi, ",[646,10609,10610],{},"Değer"," kısmına, elemana atanacak değer, ",[646,10613,9701],{}," kısmına da, varsayılan olarak, elemanın işaretli olup olmamasına göre true ya da false atanır.",[643,10616,10617,853],{},[646,10618,9259],{},[1264,10620,10623],{"className":10621,"code":10622,"language":2600},[2598],"@Html.RadioButton(\"rdbErkek\",\"erkek\",true)\n",[799,10624,10622],{"__ignoreMap":346},[643,10626,10627,853],{},[646,10628,9410],{},[1264,10630,10632],{"className":1266,"code":10631,"language":1268,"meta":346,"style":346},"\u003Cinput checked=\"checked\" id=\"rdbErkek\" name=\"rdbErkek\" type=\"radio\" value=\"erkek\">\n",[799,10633,10634],{"__ignoreMap":346},[1272,10635,10636,10638,10640,10642,10644,10646,10648,10650,10652,10654,10656,10659,10661,10663,10665,10667,10669,10671,10673,10675,10677,10680,10682,10684,10686,10688,10691,10693],{"class":1274,"line":1275},[1272,10637,1295],{"class":1278},[1272,10639,9485],{"class":1282},[1272,10641,9557],{"class":1286},[1272,10643,1324],{"class":1278},[1272,10645,1328],{"class":1327},[1272,10647,9564],{"class":1331},[1272,10649,1328],{"class":1327},[1272,10651,9488],{"class":1286},[1272,10653,1324],{"class":1278},[1272,10655,1328],{"class":1327},[1272,10657,10658],{"class":1331},"rdbErkek",[1272,10660,1328],{"class":1327},[1272,10662,1347],{"class":1286},[1272,10664,1324],{"class":1278},[1272,10666,1328],{"class":1327},[1272,10668,10658],{"class":1331},[1272,10670,1328],{"class":1327},[1272,10672,1505],{"class":1286},[1272,10674,1324],{"class":1278},[1272,10676,1328],{"class":1327},[1272,10678,10679],{"class":1331},"radio",[1272,10681,1328],{"class":1327},[1272,10683,9520],{"class":1286},[1272,10685,1324],{"class":1278},[1272,10687,1328],{"class":1327},[1272,10689,10690],{"class":1331},"erkek",[1272,10692,1328],{"class":1327},[1272,10694,1290],{"class":1278},[643,10696,10697],{},[646,10698,9359],{},[643,10700,10701],{},[895,10702],{"alt":10703,"src":10704},"RadioButton çıktı","/images/2014/01/2014-01-31+13_57_39.jpg",[1820,10706],{},[643,10708,10709],{},[646,10710,10711],{},"Html.TextArea",[643,10713,10714],{},[646,10715,9234],{},[1264,10717,10720],{"className":10718,"code":10719,"language":2600},[2598],"@Html.TextArea(\"İsim\",\"Değer\",new{cols=\"Sütun sayısı\",rows=\"Satır sayısı\"})\n",[799,10721,10719],{"__ignoreMap":346},[643,10723,10724,853],{},[646,10725,9245],{},[643,10727,10728,10729,10731,10732,10734,10735,10737,10738,4198,10741,10744,10745,10747,10748,10750],{},"Birden fazla sütundan oluşan, metin kutuları oluşturmak için kullanılır. Genellikle adres vb. bilgi girişleri için kullanılabilir. ",[646,10730,9697],{}," kısmına, elemanın ismi, ",[646,10733,10610],{}," kısmına da, veri yazılır. ",[646,10736,10610],{}," kısmı, çoğunlukla kullanıcı tarafından girileceği için, genellikle içi boş olarak gönderilir. Tercihe bağlı olarak ",[646,10739,10740],{},"cols",[646,10742,10743],{},"rows"," kullanılabilir. ",[646,10746,10740],{},", sütun sayısını, ",[646,10749,10743],{}," da, satır sayısını ifade eder.",[643,10752,10753,853],{},[646,10754,9259],{},[1264,10756,10759],{"className":10757,"code":10758,"language":2600},[2598],"@Html.TextArea(\"txtAreaAdres\", \"İstanbul\", new { cols=70, rows=10})\n",[799,10760,10758],{"__ignoreMap":346},[643,10762,10763,853],{},[646,10764,9410],{},[1264,10766,10768],{"className":1266,"code":10767,"language":1268,"meta":346,"style":346},"\u003Ctextarea cols=\"70\" id=\"txtAreaAdres\" name=\"txtAreaAdres\" rows=\"10\">İstanbul\u003C/textarea>\n",[799,10769,10770],{"__ignoreMap":346},[1272,10771,10772,10774,10777,10780,10782,10784,10787,10789,10791,10793,10795,10798,10800,10802,10804,10806,10808,10810,10813,10815,10817,10819,10821,10823,10825,10827,10829],{"class":1274,"line":1275},[1272,10773,1295],{"class":1278},[1272,10775,10776],{"class":1282},"textarea",[1272,10778,10779],{"class":1286}," cols",[1272,10781,1324],{"class":1278},[1272,10783,1328],{"class":1327},[1272,10785,10786],{"class":1331},"70",[1272,10788,1328],{"class":1327},[1272,10790,9488],{"class":1286},[1272,10792,1324],{"class":1278},[1272,10794,1328],{"class":1327},[1272,10796,10797],{"class":1331},"txtAreaAdres",[1272,10799,1328],{"class":1327},[1272,10801,1347],{"class":1286},[1272,10803,1324],{"class":1278},[1272,10805,1328],{"class":1327},[1272,10807,10797],{"class":1331},[1272,10809,1328],{"class":1327},[1272,10811,10812],{"class":1286}," rows",[1272,10814,1324],{"class":1278},[1272,10816,1328],{"class":1327},[1272,10818,9964],{"class":1331},[1272,10820,1328],{"class":1327},[1272,10822,1381],{"class":1278},[1272,10824,9943],{"class":1384},[1272,10826,1388],{"class":1278},[1272,10828,10776],{"class":1282},[1272,10830,1290],{"class":1278},[643,10832,10833],{},[646,10834,9359],{},[643,10836,10837],{},[895,10838],{"alt":10839,"src":10840},"TextArea çıktı","/images/2014/01/2014-01-31+20_33_02.jpg",[1820,10842],{},[643,10844,10845],{},[646,10846,10847],{},"Html.TextBox",[643,10849,10850],{},[646,10851,9234],{},[1264,10853,10856],{"className":10854,"code":10855,"language":2600},[2598],"@Html.TextBox(\"İsim\",\"Değer\")\n",[799,10857,10855],{"__ignoreMap":346},[643,10859,10860,853],{},[646,10861,9245],{},[643,10863,10864,10865,10731,10867,10734,10869,10871],{},"İçerisine girilen elemanları, metin kutusu içerisinde gösteren bir elemandır. ",[646,10866,9697],{},[646,10868,10610],{},[646,10870,10610],{}," kısmı, çoğunlukla kullanıcı tarafından girileceği için, genellikle içi boş olarak gönderilir.",[643,10873,10874,853],{},[646,10875,9259],{},[1264,10877,10880],{"className":10878,"code":10879,"language":2600},[2598],"@Html.TextBox(\"txtIsim\",\"Abdurrahman\")\n",[799,10881,10879],{"__ignoreMap":346},[643,10883,10884,853],{},[646,10885,9410],{},[1264,10887,10889],{"className":1266,"code":10888,"language":1268,"meta":346,"style":346},"\u003Cinput id=\"txtIsim\" name=\"txtIsim\" type=\"text\" value=\"Abdurrahman\" data-cip-id=\"txtIsim\">\n",[799,10890,10891],{"__ignoreMap":346},[1272,10892,10893,10895,10897,10899,10901,10903,10906,10908,10910,10912,10914,10916,10918,10920,10922,10924,10926,10928,10930,10932,10934,10937,10939,10941,10943,10945,10947,10949],{"class":1274,"line":1275},[1272,10894,1295],{"class":1278},[1272,10896,9485],{"class":1282},[1272,10898,9488],{"class":1286},[1272,10900,1324],{"class":1278},[1272,10902,1328],{"class":1327},[1272,10904,10905],{"class":1331},"txtIsim",[1272,10907,1328],{"class":1327},[1272,10909,1347],{"class":1286},[1272,10911,1324],{"class":1278},[1272,10913,1328],{"class":1327},[1272,10915,10905],{"class":1331},[1272,10917,1328],{"class":1327},[1272,10919,1505],{"class":1286},[1272,10921,1324],{"class":1278},[1272,10923,1328],{"class":1327},[1272,10925,2600],{"class":1331},[1272,10927,1328],{"class":1327},[1272,10929,9520],{"class":1286},[1272,10931,1324],{"class":1278},[1272,10933,1328],{"class":1327},[1272,10935,10936],{"class":1331},"Abdurrahman",[1272,10938,1328],{"class":1327},[1272,10940,9528],{"class":1286},[1272,10942,1324],{"class":1278},[1272,10944,1328],{"class":1327},[1272,10946,10905],{"class":1331},[1272,10948,1328],{"class":1327},[1272,10950,1290],{"class":1278},[643,10952,10953],{},[646,10954,9359],{},[643,10956,10957],{},[895,10958],{"alt":10959,"src":10960},"TextBox çıktı","/images/2014/01/2014-01-31+14_02_51.jpg",[1820,10962],{},[643,10964,10965],{},[646,10966,10967],{},"Html.ValidationMessage",[643,10969,10970],{},[646,10971,9234],{},[1264,10973,10976],{"className":10974,"code":10975,"language":2600},[2598],"@Html.ValidationMessage(\"Model\",\"Hata mesajı\")\n",[799,10977,10975],{"__ignoreMap":346},[643,10979,10980,853],{},[646,10981,9245],{},[643,10983,10984,10985,10987,10988,10991],{},"Bağlı bulunduğu elemanın, doğrulama kriterlerini geçmemesi durumunda, kullanıcıyı bilgilendirmek için bir hata mesajı görüntüler. ",[646,10986,1006],{}," kısmına, doğrulama yapılacak model, ",[646,10989,10990],{},"Hata mesajı"," kısmına da, doğrulamanın geçmemesi durumunda ekranda gösterilecek mesaj yazılır.",[1820,10993],{},[643,10995,10996],{},[646,10997,10998],{},"Html.ValidationSummary",[643,11000,11001],{},[646,11002,9234],{},[643,11004,11005],{},[799,11006,11007],{},"@Html.ValidationSummary(\"Hata Mesajı\")",[643,11009,11010,853],{},[646,11011,9245],{},[643,11013,11014],{},"İçerisinde bulunduğu formda, doğrulama hataları meydana gelmesi halinde, liste halinde tüm hataları gösterir.",[643,11016,11017],{},"Bir yazımızın daha sonuna geldik. Sonraki dersimizde, Web Helper'ları kısaca inceliyor olacağız.",[643,11019,1976],{},[1978,11021,11022],{},"html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":346,"searchDepth":347,"depth":347,"links":11024},[],"2014/01/mvc-helper.png","2014-01-31T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Controller ve View İşlemleri 3 (Asp.Net Mvc Yazı Dizisi – 15)",{},{"title":39,"description":11027},"Elo35JjB-NzYBKcU7NO5lFMWGtqtL0JM0r-ISSxCuxA",{"id":11032,"title":87,"body":11033,"coverImage":11168,"createDate":11169,"description":11170,"extension":350,"meta":11171,"navigation":352,"path":88,"seo":11172,"stem":89,"__hash__":11173},"posts/dersler/asp-net-mvc/asp-net-mvc-web-helperler-asp-net-mvc-yazi-dizisi-17.md",{"type":343,"value":11034,"toc":11166},[11035,11038,11046,11050,11053,11056,11068,11071,11078,11083,11086,11091,11094,11099,11102,11107,11110,11115,11118,11123,11126,11131,11134,11139,11142,11152,11158,11161,11164],[639,11036,87],{"id":11037},"aspnet-mvc-web-helperler-aspnet-mvc-yazı-dizisi-17",[643,11039,11040,853,11042],{},[646,11041,852],{},[771,11043,11044],{"href":40},[646,11045,39],{},[643,11047,11048],{},[646,11049,861],{},[643,11051,11052],{},"Önceki yazımızda, View tarafında kullanılarak html çıktı üreten Html Helper metodlarımızı öğrenmiştik. Bu metodlara ek olarak, yine Microsoft tarafından sunulan, System.Web.Helpers namespace içerisinde bulunan, Web Helpers şeklinde adlandırılan metodlarımız da bulunmaktadır.",[643,11054,11055],{},"Bu metodları kullanabilmek için iki şeye ihtiyacımız olacaktır.",[703,11057,11058,11061],{},[658,11059,11060],{},"Projemizin referanslarında, System.Web.Helpers dll'sinin ekli olması (eğer ekli değilse Manage Nuget Package ile eklenebilir), ",[658,11062,11063,11064,11067],{},"Web Helper'ı kullanacağımız View sayfamızın başında, ",[799,11065,11066],{},"@using System.Web.Helpers"," ifadesinin yazılı olması.",[643,11069,11070],{},"Yukarıdaki şartları sağladığımızda, Web Helper'ları kullanabiliyor olacağız.",[643,11072,11073,11074],{},"Ben detaylarına girmeden, hızlıca metotları tanıtacağım. Detaylı bilgi için lütfen ",[771,11075,7805],{"href":11076,"rel":11077},"http://msdn.microsoft.com/en-us/library/system.web.helpers(v=vs.111).aspx",[878],[643,11079,11080],{},[646,11081,11082],{},"AntiForgery",[643,11084,11085],{},"Controller'den giden View sayfasının, geri döndüğünde, kötü niyetli olarak değiştirilip değiştirilmediğini kontrol eden bir güvenlik mekanizmasıdır.",[643,11087,11088],{},[646,11089,11090],{},"Chart",[643,11092,11093],{},"Grafiksel gösterimli, veri grafikleri oluşturmaya yarar. Pasta dilim, sütun vb. grafik türleri bulunmaktadır.",[643,11095,11096],{},[646,11097,11098],{},"Crypto",[643,11100,11101],{},"Verileri, MD5, SHA1 gibi metodlarla hash tipinde şifreleyebilmek için, gerekli metodları sunmaktadır.",[643,11103,11104],{},[646,11105,11106],{},"ServerInfo",[643,11108,11109],{},"Sunucu hakkında, detaylı bilgiler sağlamaktadır.",[643,11111,11112],{},[646,11113,11114],{},"WebCache",[643,11116,11117],{},"Verileri cache (önbellek) ye almamızı sağlayan, metodlar içerir.",[643,11119,11120],{},[646,11121,11122],{},"WebGrid",[643,11124,11125],{},"Asp.Net Web Forms'da bulunan Grid'e benzer şekilde, verileri tablo halinde göstermeye yaramaktadır.",[643,11127,11128],{},[646,11129,11130],{},"WebImage",[643,11132,11133],{},"Resimler üzerinde, yükleme, düzenleme, efekt işlemleri, kırpma, boyutlandırma gibi işlemler yapmamızı sağlamaktadır.",[643,11135,11136],{},[646,11137,11138],{},"WebMail",[643,11140,11141],{},"SMTP üzerinden, mail göndermemize imkan tanıyan metodlar içermektedir.",[643,11143,11144,11145,11148,11149,11151],{},"Yukarıdaki metodları kullanırken, tek yapmamız gereken ",[799,11146,11147],{},"@ServerInfo.GetHtml()"," vb. şekilde çağırmaktır. Bazı metodlarda, ",[799,11150,3987],{}," içerisinde tanımlama işlemini yapmamız gerekebilir. Örneğin; ",[1264,11153,11156],{"className":11154,"code":11155,"language":2600},[2598],"@{\n    Chart gorsel=new Chart().AddLegend(\"\")....\n}\n",[799,11157,11155],{"__ignoreMap":346},[643,11159,11160],{},"gibi.",[643,11162,11163],{},"Bir yazımızın daha sonuna geldik. Sonraki dersimizde, blog projemize yeniden devam ediyor olacağız.",[643,11165,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":11167},[],"2014/02/Microsoft-Web-Helpers.png","2014-02-04T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Html Helper'ler (Asp.Net Mvc Yazı Dizisi – 16)",{},{"title":87,"description":11170},"8HjodUpzhvgJUKaFYSYiP0E7lAeixaDzWO2rcsZywmk",{"id":11175,"title":43,"body":11176,"coverImage":11842,"createDate":11843,"description":11844,"extension":350,"meta":11845,"navigation":352,"path":44,"seo":11846,"stem":45,"__hash__":11847},"posts/dersler/asp-net-mvc/asp-net-mvc-html-helperlerin-for-takili-kullanim-ornekleri-1-asp-net-mvc-yazi-dizisi-18.md",{"type":343,"value":11177,"toc":11840},[11178,11181,11189,11193,11196,11199,11209,11236,11242,11267,11272,11281,11284,11287,11292,11298,11303,11534,11539,11548,11554,11561,11568,11575,11591,11596,11601,11773,11782,11788,11796,11825,11828,11835,11837],[639,11179,43],{"id":11180},"aspnet-mvc-html-helperlerin-for-takılı-kullanım-örnekleri-1-aspnet-mvc-yazı-dizisi-18",[643,11182,11183,853,11185],{},[646,11184,852],{},[771,11186,11187],{"href":88},[646,11188,87],{},[643,11190,11191],{},[646,11192,861],{},[643,11194,11195],{},"Önceki yazılarımızda, blog projesinin ana sayfasını bitirmiş, ardından da Html ve Web Helper'larına kısaca değinmiştik.",[643,11197,11198],{},"Bu dersimizde, yeniden blog projemizi inşaa sürecine devam ediyor olacağız.",[643,11200,11201,11202,11204,11205,11208],{},"Tüm makalelerin, tarih sırasına göre düzenleneceği ",[646,11203,5750],{}," sayfasını hazırlayalım. Ana sayfada kullandığımızdan\nfarklı olarak, bu sefer Html Helper(detaylı bilgi\niçin ",[771,11206,5568],{"href":11207},"/dersler/asp-net-mvc/asp-net-mvc-html-helperler-asp-net-mvc-yazi-dizisi-16/",")'ları kullanıyor olacağız.",[655,11210,11211,11218,11221,11226,11233],{},[658,11212,1094,11213,11215,11216,4213],{},[646,11214,5987],{}," isimli projemizi açalım. (Son halini indirmek\niçin ",[771,11217,8264],{"href":9163},[658,11219,11220],{},"Makale sayfamız için, yeni bir Controller ve Action eklememiz gerekmektedir.",[658,11222,11223,4826],{},[646,11224,11225],{},"Controllers>HomeController",[658,11227,11228,11229,11232],{},"Dosyamızın sonuna, ",[646,11230,11231],{},"TumMakaleler"," adlı bir Action ekleyelim.",[658,11234,11235],{},"İçeriğini ise aşağıdaki gibi dolduralım.",[1264,11237,11240],{"className":11238,"code":11239,"language":2600},[2598],"public ActionResult TumMakaleler()\n{\n    MvcProjesiContext db = new MvcProjesiContext();\n\n    //Tüm makalelerimizi, tarih sırasına göre, büyükten küçüğe olmak üzere çekiyoruz.\n    List\u003CMakale> makaleListe = (from i in db.Makales orderby i.Tarih descending select i).ToList();\n    return View(makaleListe);\n}\n",[799,11241,11239],{"__ignoreMap":346},[655,11243,11244,11247,11250,11262],{},[658,11245,11246],{},"Görüldüğü üzere, oldukça kolay bir şekilde tüm makalelerimizi liste halinde çekip, View'imize gönderdik.",[658,11248,11249],{},"Şimdi ise buna uygun View'imizi oluşturmamız gerekmektedir.",[658,11251,11252,11255,11256,8809,11259,5311],{},[799,11253,11254],{},"public ActionResult TumMakaleler()"," satırında ",[799,11257,11258],{},"TumMakaleler()",[646,11260,11261],{},"AddView",[658,11263,11264,11265,3486],{},"Çıkan ekranda, içeriği aşağıdaki gibi doldurup, ",[646,11266,1129],{},[643,11268,11269],{},[895,11270],{"alt":1192,"src":11271},"/images/2014/02/2014-02-07+10_59_16.jpg",[655,11273,11274],{},[658,11275,11276,11277,11280],{},"Sayfamız eklendiğinde, içeriği hazır doldurulmuş olarak geldi. Ancak biz içeriğini kendimiz elle yazmak istiyoruz.\nBunun için içeriğini silip, yalnızca ilk satırdaki",[799,11278,11279],{},"@model IEnumerable\u003CMvcProjesi.Data.Makale>"," kısmını koruyalım.",[643,11282,11283],{},"Daha önceki yazılarımızda, döngüleri kullanarak, tüm elemanları saf Html Tag'ları ile doldurmuştuk. Bu sefer ise,\nMicrosoft'un bize sunmuş olduğu Html Helper'ları vasıtası ile doldurma yapacağız.",[643,11285,11286],{},"Önceki derslerimizden birinde incelediğimiz Html Helper'lerinde, bir de genişletilmiş, sonuna For eklenmiş Extension\nMethod'larımız bulunmaktadır. Örnek olarak TextBox Helper'imizin yanında, bir de TextBoxFor şeklinde bir Helper'imiz\ndaha bulunmaktadır.",[643,11288,11289],{},[646,11290,11291],{},"Html Helper For Extension Metod'ları",[643,11293,11294,11295,11297],{},"View sayfalarımızda, genellikle en üst satırda aldığımız model verisini (",[799,11296,11279],{},"\ngibi), Html Helper'lara bağlarken For takılı metodları kullanırız. Sayfamızı yazarken, bu durumu daha iyi anlıyor\nolacağız. Projemize devam edelim.",[655,11299,11300],{},[658,11301,11302],{},"View sayfamızın içeriğini, aşağıdaki gibi dolduralım.",[1264,11304,11306],{"className":1266,"code":11305,"language":1268,"meta":346,"style":346},"@model IEnumerable\u003CMvcProjesi.Data.Makale>\n\u003Ch1>Makalelerimiz\u003C/h1>\n@{\n    //Veri kaynağımız liste olduğu için döngümüzü kuruyoruz.\n    foreach (var item in Model)\n    {\n        \u003Cdiv style=\"width:100%;margin-top:25px;box-shadow:0 0 5px gray;padding:25px;\">\n            \u003C!--Başlığı, büyük ve renkli görünsün diye, h3 tagı içerisine aldık-->\n            \u003Ch3 style=\"font-weight:bold;color:red\">\n                @Html.DisplayFor(i => item.Baslik)\n            \u003C/h3>\n\n            \u003C!--Başlıkla içerik arasına, dikey çizgi ekliyoruz.-->\n            \u003Chr />\n\n            @Html.DisplayFor(i => item.Icerik)\n            \u003Chr />\n            \u003C!--Tarih başlığını, tarih içeriğine bağlamak için Label kullandık.-->\n            @Html.Label(\"Tarih : \")\n\n            @Html.DisplayFor(i => item.Tarih)\n            \u003Chr />\n            \u003Ch4>Makaleyi Yazan\u003C/h4>\n\n            \u003C!--Burada bir değişkende, ad ile soyadı birleştirip ekrana bastık.-->\n            @{string adSoyad = item.Uye.Ad + \" \" + item.Uye.Soyad;}\n            @Html.Label(\"Adı ve Soyadı : \")\n            @adSoyad\n        \u003C/div>\n    }\n\n}\n",[799,11307,11308,11320,11337,11341,11346,11351,11355,11374,11379,11398,11403,11411,11415,11420,11428,11432,11437,11445,11450,11455,11459,11464,11472,11490,11494,11499,11504,11509,11514,11522,11526,11530],{"__ignoreMap":346},[1272,11309,11310,11313,11315,11318],{"class":1274,"line":1275},[1272,11311,11312],{"class":1384},"@model IEnumerable",[1272,11314,1295],{"class":1278},[1272,11316,11317],{"class":8338},"MvcProjesi.Data.Makale",[1272,11319,1290],{"class":1278},[1272,11321,11322,11324,11326,11328,11331,11333,11335],{"class":1274,"line":347},[1272,11323,1295],{"class":1278},[1272,11325,639],{"class":1282},[1272,11327,1381],{"class":1278},[1272,11329,11330],{"class":1384},"Makalelerimiz",[1272,11332,1388],{"class":1278},[1272,11334,639],{"class":1282},[1272,11336,1290],{"class":1278},[1272,11338,11339],{"class":1274,"line":1302},[1272,11340,2667],{"class":1384},[1272,11342,11343],{"class":1274,"line":1312},[1272,11344,11345],{"class":1384},"    //Veri kaynağımız liste olduğu için döngümüzü kuruyoruz.\n",[1272,11347,11348],{"class":1274,"line":1340},[1272,11349,11350],{"class":1384},"    foreach (var item in Model)\n",[1272,11352,11353],{"class":1274,"line":1373},[1272,11354,4513],{"class":1384},[1272,11356,11357,11359,11361,11363,11365,11367,11370,11372],{"class":1274,"line":1395},[1272,11358,1457],{"class":1278},[1272,11360,1437],{"class":1282},[1272,11362,8350],{"class":1286},[1272,11364,1324],{"class":1278},[1272,11366,1328],{"class":1327},[1272,11368,11369],{"class":1331},"width:100%;margin-top:25px;box-shadow:0 0 5px gray;padding:25px;",[1272,11371,1328],{"class":1327},[1272,11373,1290],{"class":1278},[1272,11375,11376],{"class":1274,"line":1401},[1272,11377,11378],{"class":8327},"            \u003C!--Başlığı, büyük ve renkli görünsün diye, h3 tagı içerisine aldık-->\n",[1272,11380,11381,11383,11385,11387,11389,11391,11394,11396],{"class":1274,"line":1407},[1272,11382,1478],{"class":1278},[1272,11384,3273],{"class":1282},[1272,11386,8350],{"class":1286},[1272,11388,1324],{"class":1278},[1272,11390,1328],{"class":1327},[1272,11392,11393],{"class":1331},"font-weight:bold;color:red",[1272,11395,1328],{"class":1327},[1272,11397,1290],{"class":1278},[1272,11399,11400],{"class":1274,"line":1413},[1272,11401,11402],{"class":1384},"                @Html.DisplayFor(i => item.Baslik)\n",[1272,11404,11405,11407,11409],{"class":1274,"line":1422},[1272,11406,1644],{"class":1278},[1272,11408,3273],{"class":1282},[1272,11410,1290],{"class":1278},[1272,11412,11413],{"class":1274,"line":1432},[1272,11414,1410],{"emptyLinePlaceholder":352},[1272,11416,11417],{"class":1274,"line":1454},[1272,11418,11419],{"class":8327},"            \u003C!--Başlıkla içerik arasına, dikey çizgi ekliyoruz.-->\n",[1272,11421,11422,11424,11426],{"class":1274,"line":1475},[1272,11423,1478],{"class":1278},[1272,11425,1820],{"class":1282},[1272,11427,1337],{"class":1278},[1272,11429,11430],{"class":1274,"line":1496},[1272,11431,1410],{"emptyLinePlaceholder":352},[1272,11433,11434],{"class":1274,"line":1553},[1272,11435,11436],{"class":1384},"            @Html.DisplayFor(i => item.Icerik)\n",[1272,11438,11439,11441,11443],{"class":1274,"line":1579},[1272,11440,1478],{"class":1278},[1272,11442,1820],{"class":1282},[1272,11444,1337],{"class":1278},[1272,11446,11447],{"class":1274,"line":1602},[1272,11448,11449],{"class":8327},"            \u003C!--Tarih başlığını, tarih içeriğine bağlamak için Label kullandık.-->\n",[1272,11451,11452],{"class":1274,"line":1625},[1272,11453,11454],{"class":1384},"            @Html.Label(\"Tarih : \")\n",[1272,11456,11457],{"class":1274,"line":1635},[1272,11458,1410],{"emptyLinePlaceholder":352},[1272,11460,11461],{"class":1274,"line":1641},[1272,11462,11463],{"class":1384},"            @Html.DisplayFor(i => item.Tarih)\n",[1272,11465,11466,11468,11470],{"class":1274,"line":1651},[1272,11467,1478],{"class":1278},[1272,11469,1820],{"class":1282},[1272,11471,1337],{"class":1278},[1272,11473,11474,11476,11479,11481,11484,11486,11488],{"class":1274,"line":1671},[1272,11475,1478],{"class":1278},[1272,11477,11478],{"class":1282},"h4",[1272,11480,1381],{"class":1278},[1272,11482,11483],{"class":1384},"Makaleyi Yazan",[1272,11485,1388],{"class":1278},[1272,11487,11478],{"class":1282},[1272,11489,1290],{"class":1278},[1272,11491,11492],{"class":1274,"line":1691},[1272,11493,1410],{"emptyLinePlaceholder":352},[1272,11495,11496],{"class":1274,"line":1709},[1272,11497,11498],{"class":8327},"            \u003C!--Burada bir değişkende, ad ile soyadı birleştirip ekrana bastık.-->\n",[1272,11500,11501],{"class":1274,"line":1727},[1272,11502,11503],{"class":1384},"            @{string adSoyad = item.Uye.Ad + \" \" + item.Uye.Soyad;}\n",[1272,11505,11506],{"class":1274,"line":1745},[1272,11507,11508],{"class":1384},"            @Html.Label(\"Adı ve Soyadı : \")\n",[1272,11510,11511],{"class":1274,"line":1754},[1272,11512,11513],{"class":1384},"            @adSoyad\n",[1272,11515,11516,11518,11520],{"class":1274,"line":1760},[1272,11517,1772],{"class":1278},[1272,11519,1437],{"class":1282},[1272,11521,1290],{"class":1278},[1272,11523,11524],{"class":1274,"line":1769},[1272,11525,4534],{"class":1384},[1272,11527,11528],{"class":1274,"line":1779},[1272,11529,1410],{"emptyLinePlaceholder":352},[1272,11531,11532],{"class":1274,"line":1789},[1272,11533,2677],{"class":1384},[4105,11535,11536],{},[643,11537,11538],{},"Burada** ** karakteri, html tarafında boşluk atmaya yarar.",[655,11540,11541],{},[658,11542,11543,11544,11547],{},"Şimdi projemizi çalıştırıp, ",[646,11545,11546],{},"Tüm Makaleler"," sayfasına geçiş yaptığımızda, aşağıdaki görüntüyü alıyor olacağız.",[643,11549,11550],{},[895,11551],{"alt":11552,"src":11553},"Tüm Makaleler sayfası","/images/2014/02/2014-02-08+10_17_29.jpg",[643,11555,11556,11557,11560],{},"Şimdi aynı işlemleri hızlı bir şekilde, ",[646,11558,11559],{},"Yorumlar"," sayfamız için de uygulayalım.",[655,11562,11563],{},[658,11564,11565,11567],{},[646,11566,11225],{}," dosyamızı açıp, içerisine aşağıdaki Action'unumuzu ekleyelim.",[643,11569,11570,11571],{},"public ActionResult TumYorumlar()\n{\nMvcProjesiContext db = new MvcProjesiContext();\nList",[11572,11573,11574],"yorum",{}," yorumListe = (from i in db.Yorums orderby i.Tarih descending select i).ToList();\nreturn View(yorumListe);\n}",[655,11576,11577,11586],{},[658,11578,11579,11580,11583,11584,5311],{},"Hemen ardından ",[799,11581,11582],{},"TumYorumlar()"," 'a sağ tıklayıp, ",[646,11585,1186],{},[658,11587,11588,11589,3486],{},"Çıkan ekranda, ayarları aşağıdaki gibi yapıp, ",[646,11590,1129],{},[643,11592,11593],{},[895,11594],{"alt":1192,"src":11595},"/images/2014/02/2014-02-08+10_23_22.jpg",[655,11597,11598],{},[658,11599,11600],{},"Açılan View sayfamızın da içeriğini, aşağıdaki gibi dolduralım.",[1264,11602,11604],{"className":1266,"code":11603,"language":1268,"meta":346,"style":346},"@model IEnumerable\u003CMvcProjesi.Data.Yorum>\n\n@{\nViewBag.Title = \"TumYorumlar\";\n}\n\n\u003Ch2>TumYorumlar\u003C/h2>\n\n@{\n//Veri kaynağımız liste olduğu için döngümüzü kuruyoruz.\nforeach (var item in Model)\n{\n    \u003Cdiv style=\"width:100%;margin-top:25px;box-shadow:0 0 5px gray;padding:25px;\">\n    \u003Ch4>@Html.Display(\"Yorumun İçeriği\")\u003C/h4>\n    @Html.DisplayFor(i => item.Icerik)\n    \u003Chr />\n    @Html.Label(\"Yorumun Yazıldığı Makalenin Başlığı :\")&nbsp;&nbsp;@Html.DisplayFor(i => item.Makale.Baslik)\n    \u003Chr />\n        @Html.Label(\"Yorumun Yazan Kişinin Adı ve Soyadı : \")&nbsp;&nbsp;@{string adSoyad = item.Uye.Ad + \" \" + item.Uye.Soyad;}@adSoyad\n        \u003C/div>\n    }\n\n}\n",[799,11605,11606,11616,11620,11624,11629,11633,11637,11654,11658,11662,11667,11672,11676,11694,11711,11716,11724,11735,11743,11753,11761,11765,11769],{"__ignoreMap":346},[1272,11607,11608,11610,11612,11614],{"class":1274,"line":1275},[1272,11609,11312],{"class":1384},[1272,11611,1295],{"class":1278},[1272,11613,8339],{"class":8338},[1272,11615,1290],{"class":1278},[1272,11617,11618],{"class":1274,"line":347},[1272,11619,1410],{"emptyLinePlaceholder":352},[1272,11621,11622],{"class":1274,"line":1302},[1272,11623,2667],{"class":1384},[1272,11625,11626],{"class":1274,"line":1312},[1272,11627,11628],{"class":1384},"ViewBag.Title = \"TumYorumlar\";\n",[1272,11630,11631],{"class":1274,"line":1340},[1272,11632,2677],{"class":1384},[1272,11634,11635],{"class":1274,"line":1373},[1272,11636,1410],{"emptyLinePlaceholder":352},[1272,11638,11639,11641,11643,11645,11648,11650,11652],{"class":1274,"line":1395},[1272,11640,1295],{"class":1278},[1272,11642,2853],{"class":1282},[1272,11644,1381],{"class":1278},[1272,11646,11647],{"class":1384},"TumYorumlar",[1272,11649,1388],{"class":1278},[1272,11651,2853],{"class":1282},[1272,11653,1290],{"class":1278},[1272,11655,11656],{"class":1274,"line":1401},[1272,11657,1410],{"emptyLinePlaceholder":352},[1272,11659,11660],{"class":1274,"line":1407},[1272,11661,2667],{"class":1384},[1272,11663,11664],{"class":1274,"line":1413},[1272,11665,11666],{"class":1384},"//Veri kaynağımız liste olduğu için döngümüzü kuruyoruz.\n",[1272,11668,11669],{"class":1274,"line":1422},[1272,11670,11671],{"class":1384},"foreach (var item in Model)\n",[1272,11673,11674],{"class":1274,"line":1432},[1272,11675,4271],{"class":1384},[1272,11677,11678,11680,11682,11684,11686,11688,11690,11692],{"class":1274,"line":1454},[1272,11679,1315],{"class":1278},[1272,11681,1437],{"class":1282},[1272,11683,8350],{"class":1286},[1272,11685,1324],{"class":1278},[1272,11687,1328],{"class":1327},[1272,11689,11369],{"class":1331},[1272,11691,1328],{"class":1327},[1272,11693,1290],{"class":1278},[1272,11695,11696,11698,11700,11702,11705,11707,11709],{"class":1274,"line":1475},[1272,11697,1315],{"class":1278},[1272,11699,11478],{"class":1282},[1272,11701,1381],{"class":1278},[1272,11703,11704],{"class":1384},"@Html.Display(\"Yorumun İçeriği\")",[1272,11706,1388],{"class":1278},[1272,11708,11478],{"class":1282},[1272,11710,1290],{"class":1278},[1272,11712,11713],{"class":1274,"line":1496},[1272,11714,11715],{"class":1384},"    @Html.DisplayFor(i => item.Icerik)\n",[1272,11717,11718,11720,11722],{"class":1274,"line":1553},[1272,11719,1315],{"class":1278},[1272,11721,1820],{"class":1282},[1272,11723,1337],{"class":1278},[1272,11725,11726,11729,11732],{"class":1274,"line":1579},[1272,11727,11728],{"class":1384},"    @Html.Label(\"Yorumun Yazıldığı Makalenin Başlığı :\")",[1272,11730,11731],{"class":1844},"&nbsp;&nbsp;",[1272,11733,11734],{"class":1384},"@Html.DisplayFor(i => item.Makale.Baslik)\n",[1272,11736,11737,11739,11741],{"class":1274,"line":1602},[1272,11738,1315],{"class":1278},[1272,11740,1820],{"class":1282},[1272,11742,1337],{"class":1278},[1272,11744,11745,11748,11750],{"class":1274,"line":1625},[1272,11746,11747],{"class":1384},"        @Html.Label(\"Yorumun Yazan Kişinin Adı ve Soyadı : \")",[1272,11749,11731],{"class":1844},[1272,11751,11752],{"class":1384},"@{string adSoyad = item.Uye.Ad + \" \" + item.Uye.Soyad;}@adSoyad\n",[1272,11754,11755,11757,11759],{"class":1274,"line":1635},[1272,11756,1772],{"class":1278},[1272,11758,1437],{"class":1282},[1272,11760,1290],{"class":1278},[1272,11762,11763],{"class":1274,"line":1641},[1272,11764,4534],{"class":1384},[1272,11766,11767],{"class":1274,"line":1651},[1272,11768,1410],{"emptyLinePlaceholder":352},[1272,11770,11771],{"class":1274,"line":1671},[1272,11772,2677],{"class":1384},[655,11774,11775],{},[658,11776,11777,11778,11781],{},"Projemizi çalıştırıp, ",[646,11779,11780],{},"Tüm Yorumlar"," sayfamıza girdiğimizde, aşağıdaki görüntüyü alıyor olacağız.",[643,11783,11784],{},[895,11785],{"alt":11786,"src":11787},"Tüm Yorumlar sayfası","/images/2014/02/2014-02-08+10_33_17.jpg",[643,11789,11790,4198,11793,11795],{},[646,11791,11792],{},"Makaleler",[646,11794,11559],{}," sayfamızı da ekledikten sonra, projemizin genel durumuna bir bakmamızda fayda var. Öncelikle listemizi,\nbir gözden geçirelim.",[655,11797,11798,11800,11802,11804,11807,11810,11813,11816,11819,11821,11823],{},[658,11799,6212],{},[658,11801,6215],{},[658,11803,6218],{},[658,11805,11806],{},"Son 5 makalenin ana sayfada listelenmesi (yapıldı)",[658,11808,11809],{},"Tüm makalelerin listelendiği sayfa (yapıldı)",[658,11811,11812],{},"Son 5 yorumun ana sayfada listelenmesi (yapıldı)",[658,11814,11815],{},"Tüm yorumların listelendiği sayfa (yapıldı)",[658,11817,11818],{},"En çok kullanılan 10 etiketin ana sayfada listelenmesi (yapıldı)",[658,11820,6236],{},[658,11822,6239],{},[658,11824,6242],{},[643,11826,11827],{},"Evet, sonuç olarak projemizde oluşturduğumuz listenin, 5 maddesini bitirmiş durumdayız. Sonraki derslerimizde, diğer\nmaddelere devam ediyor olacağız.",[643,11829,11830,11831,11834],{},"Projenin son\nhalini ",[771,11832,5939],{"href":11833},"/images/proje-dosyalar/asp-net-mvc-html-helperlerin-for-takili-kullanim-ornekleri-1-asp-net-mvc-yazi-dizisi-18/MvcProjesi.zip","\nindirebilirsiniz.",[643,11836,1976],{},[1978,11838,11839],{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sDBD8, html code.shiki .sDBD8{--shiki-light:#E53935;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":346,"searchDepth":347,"depth":347,"links":11841},[],"2014/02/2014-02-08+10_17_29.jpg","2014-02-08T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Web Helper'ler (Asp.Net Mvc Yazı Dizisi – 17)",{},{"title":43,"description":11844},"58yW1YuO3d3nDJrlYcit0yE29bShae3DKmGJ75s-o34",{"id":11849,"title":47,"body":11850,"coverImage":13325,"createDate":13326,"description":13327,"extension":350,"meta":13328,"navigation":352,"path":48,"seo":13329,"stem":49,"__hash__":13330},"posts/dersler/asp-net-mvc/asp-net-mvc-html-helperlerin-for-takili-kullanim-ornekleri-2-asp-net-mvc-yazi-dizisi-19.md",{"type":343,"value":11851,"toc":13323},[11852,11855,11863,11867,11870,11881,11886,11901,11907,11919,11924,11929,12138,12146,12304,12311,12317,12322,12329,12335,12351,12356,12361,12574,12582,12797,12803,12809,12814,12822,12828,12841,12847,12852,13058,13066,13304,13307,13310,13313,13318,13320],[639,11853,47],{"id":11854},"aspnet-mvc-html-helperlerin-for-takılı-kullanım-örnekleri-2-aspnet-mvc-yazı-dizisi-19",[643,11856,11857,853,11859],{},[646,11858,852],{},[771,11860,11861],{"href":44},[646,11862,43],{},[643,11864,11865],{},[646,11866,861],{},[643,11868,11869],{},"Aktif şekilde geliştirmekte olduğumuz projemizde, bugünkü dersimizde uygulayacağımız işlemleri, şöyle sıralayabiliriz;",[703,11871,11872,11875,11878],{},[658,11873,11874],{},"Ana sayfadaki etiketlerden birine tıklandığında, o etiketi barındıran makalelerin listelenmesini sağlayacağız.",[658,11876,11877],{},"Ana sayfada görüntülenen, son eklenen makaleler kısmındaki başlıklara tıklandığında makalemizin tam halinin\ngörüntüleneceği sayfayı oluşturacağız.",[658,11879,11880],{},"Son eklenen yorumlar kısmındaki, yorumlardan birinin başlığına tıklanınca ona ait olan makalenin açılmasını\nsağlayacağız.",[643,11882,11883],{},[646,11884,11885],{},"​1. Maddemiz ile Başlayalım",[655,11887,11888,11893,11898],{},[658,11889,11890,11891,4213],{},"Öncelikle, geliştirmekte olduğumuz projemizi açalım. (Projenin son halini indirmek\niçin ",[771,11892,8264],{"href":11833},[658,11894,11895,4826],{},[646,11896,11897],{},"Controllers>Home Controller.cs",[658,11899,11900],{},"Dosyamıza aşağıdaki kodlarımızı ekleyelim.",[1264,11902,11905],{"className":11903,"code":11904,"language":2600},[2598],"public ActionResult EtiketinMakaleleri(int etiketId)\n{\n    MvcProjesiContext db = new MvcProjesiContext();\n    var geciciListe = (from i in db.Etikets where i.EtiketId == etiketId select i.Makales).ToList();\n    //Burada veri içiçe liste halinde geldiği için, içerideki listeyi [0] indexi ile alıp gönderiyoruz.\n    return View(geciciListe[0]);\n}\n",[799,11906,11904],{"__ignoreMap":346},[655,11908,11909],{},[658,11910,11911,11912,11915,11916,11918],{},"Kodlarımızı ekledikten sonra, ",[799,11913,11914],{},"ActionResult EtiketinMakaleleri(int etiketId)","kısmına sağ tıklayıp, ",[646,11917,1186],{},"\ndiyelim. Çıkan ekrandaki kısmı, aşağıdaki gibi dolduralım.",[643,11920,11921],{},[895,11922],{"alt":3429,"src":11923},"/images/2014/02/2014-02-27+12_02_19.jpg",[655,11925,11926],{},[658,11927,11928],{},"Sayfamızı ekledikten sonra, açılan View dosyamızı açıp, içerisini aşağıdaki gibi dolduralım.",[1264,11930,11932],{"className":1266,"code":11931,"language":1268,"meta":346,"style":346},"@model IEnumerable\u003CMvcProjesi.Data.Makale>\n\u003Ch1>Makaleler\u003C/h1>\n@{\n    //Veri kaynağımız liste olduğu için döngümüzü kuruyoruz.\n    foreach (var item in Model)\n    {\n        \u003Cdiv style=\"width:100%;margin-top:25px;box-shadow:0 0 5px gray;padding:25px;\">\n            \u003C!--Başlığı, büyük ve renkli görünsün diye, h3 tagı içerisine aldık-->\n            \u003Ch3 style=\"font-weight:bold;color:red\">\n                @Html.DisplayFor(i => item.Baslik)\n            \u003C/h3>\n\n            \u003C!--Başlıkla içerik arasına, dikey çizgi ekliyoruz.-->\n            \u003Chr />\n\n            @Html.DisplayFor(i => item.Icerik)\n            \u003Chr />\n            \u003C!--Tarih başlığını, tarih içeriğine bağlamak için Label kullandık.-->\n            @Html.Label(\"Tarih : \")\n\n            @Html.DisplayFor(i => item.Tarih)\n            \u003Chr />\n            \u003Ch4>Makaleyi Yazan\u003C/h4>\n\n            \u003C!--Burada bir değişkende, ad ile soyadı birleştirip ekrana bastık.-->\n            @{string adSoyad = item.Uye.Ad + \" \" + item.Uye.Soyad;}\n            @Html.Label(\"Adı ve Soyadı : \")&nbsp;&nbsp;@adSoyad\n        \u003C/div>\n    }\n}\n",[799,11933,11934,11944,11960,11964,11968,11972,11976,11994,11998,12016,12020,12028,12032,12036,12044,12048,12052,12060,12064,12068,12072,12076,12084,12100,12104,12108,12112,12122,12130,12134],{"__ignoreMap":346},[1272,11935,11936,11938,11940,11942],{"class":1274,"line":1275},[1272,11937,11312],{"class":1384},[1272,11939,1295],{"class":1278},[1272,11941,11317],{"class":8338},[1272,11943,1290],{"class":1278},[1272,11945,11946,11948,11950,11952,11954,11956,11958],{"class":1274,"line":347},[1272,11947,1295],{"class":1278},[1272,11949,639],{"class":1282},[1272,11951,1381],{"class":1278},[1272,11953,11792],{"class":1384},[1272,11955,1388],{"class":1278},[1272,11957,639],{"class":1282},[1272,11959,1290],{"class":1278},[1272,11961,11962],{"class":1274,"line":1302},[1272,11963,2667],{"class":1384},[1272,11965,11966],{"class":1274,"line":1312},[1272,11967,11345],{"class":1384},[1272,11969,11970],{"class":1274,"line":1340},[1272,11971,11350],{"class":1384},[1272,11973,11974],{"class":1274,"line":1373},[1272,11975,4513],{"class":1384},[1272,11977,11978,11980,11982,11984,11986,11988,11990,11992],{"class":1274,"line":1395},[1272,11979,1457],{"class":1278},[1272,11981,1437],{"class":1282},[1272,11983,8350],{"class":1286},[1272,11985,1324],{"class":1278},[1272,11987,1328],{"class":1327},[1272,11989,11369],{"class":1331},[1272,11991,1328],{"class":1327},[1272,11993,1290],{"class":1278},[1272,11995,11996],{"class":1274,"line":1401},[1272,11997,11378],{"class":8327},[1272,11999,12000,12002,12004,12006,12008,12010,12012,12014],{"class":1274,"line":1407},[1272,12001,1478],{"class":1278},[1272,12003,3273],{"class":1282},[1272,12005,8350],{"class":1286},[1272,12007,1324],{"class":1278},[1272,12009,1328],{"class":1327},[1272,12011,11393],{"class":1331},[1272,12013,1328],{"class":1327},[1272,12015,1290],{"class":1278},[1272,12017,12018],{"class":1274,"line":1413},[1272,12019,11402],{"class":1384},[1272,12021,12022,12024,12026],{"class":1274,"line":1422},[1272,12023,1644],{"class":1278},[1272,12025,3273],{"class":1282},[1272,12027,1290],{"class":1278},[1272,12029,12030],{"class":1274,"line":1432},[1272,12031,1410],{"emptyLinePlaceholder":352},[1272,12033,12034],{"class":1274,"line":1454},[1272,12035,11419],{"class":8327},[1272,12037,12038,12040,12042],{"class":1274,"line":1475},[1272,12039,1478],{"class":1278},[1272,12041,1820],{"class":1282},[1272,12043,1337],{"class":1278},[1272,12045,12046],{"class":1274,"line":1496},[1272,12047,1410],{"emptyLinePlaceholder":352},[1272,12049,12050],{"class":1274,"line":1553},[1272,12051,11436],{"class":1384},[1272,12053,12054,12056,12058],{"class":1274,"line":1579},[1272,12055,1478],{"class":1278},[1272,12057,1820],{"class":1282},[1272,12059,1337],{"class":1278},[1272,12061,12062],{"class":1274,"line":1602},[1272,12063,11449],{"class":8327},[1272,12065,12066],{"class":1274,"line":1625},[1272,12067,11454],{"class":1384},[1272,12069,12070],{"class":1274,"line":1635},[1272,12071,1410],{"emptyLinePlaceholder":352},[1272,12073,12074],{"class":1274,"line":1641},[1272,12075,11463],{"class":1384},[1272,12077,12078,12080,12082],{"class":1274,"line":1651},[1272,12079,1478],{"class":1278},[1272,12081,1820],{"class":1282},[1272,12083,1337],{"class":1278},[1272,12085,12086,12088,12090,12092,12094,12096,12098],{"class":1274,"line":1671},[1272,12087,1478],{"class":1278},[1272,12089,11478],{"class":1282},[1272,12091,1381],{"class":1278},[1272,12093,11483],{"class":1384},[1272,12095,1388],{"class":1278},[1272,12097,11478],{"class":1282},[1272,12099,1290],{"class":1278},[1272,12101,12102],{"class":1274,"line":1691},[1272,12103,1410],{"emptyLinePlaceholder":352},[1272,12105,12106],{"class":1274,"line":1709},[1272,12107,11498],{"class":8327},[1272,12109,12110],{"class":1274,"line":1727},[1272,12111,11503],{"class":1384},[1272,12113,12114,12117,12119],{"class":1274,"line":1745},[1272,12115,12116],{"class":1384},"            @Html.Label(\"Adı ve Soyadı : \")",[1272,12118,11731],{"class":1844},[1272,12120,12121],{"class":1384},"@adSoyad\n",[1272,12123,12124,12126,12128],{"class":1274,"line":1754},[1272,12125,1772],{"class":1278},[1272,12127,1437],{"class":1282},[1272,12129,1290],{"class":1278},[1272,12131,12132],{"class":1274,"line":1760},[1272,12133,4534],{"class":1384},[1272,12135,12136],{"class":1274,"line":1769},[1272,12137,2677],{"class":1384},[655,12139,12140],{},[658,12141,12142,12143,12145],{},"Makalelerimizin listeleneceği sayfamız hazır. Şimdi de ana sayfadaki etiket listesinde, bir düzenleme yapmamız\ngerekecektir. Ana sayfamızda bulunan ",[646,12144,8793],{}," Partial View'imizi, aşağıdaki gibi düzenleyelim.",[1264,12147,12149],{"className":1266,"code":12148,"language":1268,"meta":346,"style":346},"\u003C!--Modelimiz liste olarak geldiği için List\u003C> içerisine aldık-->\n@model List\u003CMvcProjesi.Data.Etiket>\n\u003Cdiv style=\"border:1px solid yellow;padding:25px;text-align:center;\">\n    \u003Ch2>En Çok Kullanılan On Etiket\u003C/h2>\n    @{\n        //Bu sefer de while döngüsünü kullandık.\n        int sayi = 0;\n        while (sayi \u003C Model.Count())\n        {\n            //Burada her etiketin etrafına çerçeve attık\n            \u003Cul style=\"border:1px solid yellow\">\n                \u003Cli>\n                    \u003C!--Etiket başlıklarını, link haline getiriyoruz ve new{} kısmına Action'a gönderilmesi için\n                        etiketId parametresini yazıyoruz-->\n                    @Html.ActionLink(Model[sayi].Icerik, \"EtiketinMakaleleri\", new { etiketId = Model[sayi].EtiketId })\n                \u003C/li>\n            \u003C/ul>\n            sayi++;\n        }\n    }\n\u003C/div>\n",[799,12150,12151,12155,12165,12183,12199,12203,12207,12211,12219,12223,12227,12245,12253,12258,12263,12268,12276,12284,12288,12292,12296],{"__ignoreMap":346},[1272,12152,12153],{"class":1274,"line":1275},[1272,12154,8328],{"class":8327},[1272,12156,12157,12159,12161,12163],{"class":1274,"line":347},[1272,12158,8333],{"class":1384},[1272,12160,1295],{"class":1278},[1272,12162,8843],{"class":8338},[1272,12164,1290],{"class":1278},[1272,12166,12167,12169,12171,12173,12175,12177,12179,12181],{"class":1274,"line":1302},[1272,12168,1295],{"class":1278},[1272,12170,1437],{"class":1282},[1272,12172,8350],{"class":1286},[1272,12174,1324],{"class":1278},[1272,12176,1328],{"class":1327},[1272,12178,8860],{"class":1331},[1272,12180,1328],{"class":1327},[1272,12182,1290],{"class":1278},[1272,12184,12185,12187,12189,12191,12193,12195,12197],{"class":1274,"line":1312},[1272,12186,1315],{"class":1278},[1272,12188,2853],{"class":1282},[1272,12190,1381],{"class":1278},[1272,12192,8875],{"class":1384},[1272,12194,1388],{"class":1278},[1272,12196,2853],{"class":1282},[1272,12198,1290],{"class":1278},[1272,12200,12201],{"class":1274,"line":1340},[1272,12202,5044],{"class":1384},[1272,12204,12205],{"class":1274,"line":1373},[1272,12206,8890],{"class":1384},[1272,12208,12209],{"class":1274,"line":1395},[1272,12210,8895],{"class":1384},[1272,12212,12213,12215,12217],{"class":1274,"line":1401},[1272,12214,8900],{"class":1384},[1272,12216,1295],{"class":4903},[1272,12218,8905],{"class":1384},[1272,12220,12221],{"class":1274,"line":1407},[1272,12222,5079],{"class":1384},[1272,12224,12225],{"class":1274,"line":1413},[1272,12226,8914],{"class":1384},[1272,12228,12229,12231,12233,12235,12237,12239,12241,12243],{"class":1274,"line":1422},[1272,12230,1478],{"class":1278},[1272,12232,655],{"class":1282},[1272,12234,8350],{"class":1286},[1272,12236,1324],{"class":1278},[1272,12238,1328],{"class":1327},[1272,12240,8929],{"class":1331},[1272,12242,1328],{"class":1327},[1272,12244,1290],{"class":1278},[1272,12246,12247,12249,12251],{"class":1274,"line":1432},[1272,12248,1499],{"class":1278},[1272,12250,658],{"class":1282},[1272,12252,1290],{"class":1278},[1272,12254,12255],{"class":1274,"line":1454},[1272,12256,12257],{"class":8327},"                    \u003C!--Etiket başlıklarını, link haline getiriyoruz ve new{} kısmına Action'a gönderilmesi için\n",[1272,12259,12260],{"class":1274,"line":1475},[1272,12261,12262],{"class":8327},"                        etiketId parametresini yazıyoruz-->\n",[1272,12264,12265],{"class":1274,"line":1496},[1272,12266,12267],{"class":1384},"                    @Html.ActionLink(Model[sayi].Icerik, \"EtiketinMakaleleri\", new { etiketId = Model[sayi].EtiketId })\n",[1272,12269,12270,12272,12274],{"class":1274,"line":1553},[1272,12271,1628],{"class":1278},[1272,12273,658],{"class":1282},[1272,12275,1290],{"class":1278},[1272,12277,12278,12280,12282],{"class":1274,"line":1579},[1272,12279,1644],{"class":1278},[1272,12281,655],{"class":1282},[1272,12283,1290],{"class":1278},[1272,12285,12286],{"class":1274,"line":1602},[1272,12287,8963],{"class":1384},[1272,12289,12290],{"class":1274,"line":1625},[1272,12291,5101],{"class":1384},[1272,12293,12294],{"class":1274,"line":1635},[1272,12295,4534],{"class":1384},[1272,12297,12298,12300,12302],{"class":1274,"line":1641},[1272,12299,1388],{"class":1278},[1272,12301,1437],{"class":1282},[1272,12303,1290],{"class":1278},[643,12305,12306,12307,12310],{},"Artık ana sayfamızda bulunan, ",[646,12308,12309],{},"Etiketler"," kısmındaki başlıklara tıklandığında, o etiketin barındırıldığı makaleler\nliste halinde yeni sayfada listelenecektir.",[643,12312,12313],{},[895,12314],{"alt":12315,"src":12316},"Makale sayfası","/images/2014/02/2014-02-27+12_24_35.jpg",[643,12318,12319],{},[646,12320,12321],{},"2.Maddemize Geçelim",[655,12323,12324],{},[658,12325,12326,12328],{},[646,12327,11225],{}," dosyamızı açalım ve aşağıdaki şekilde bir Action ekleyelim.",[1264,12330,12333],{"className":12331,"code":12332,"language":2600},[2598],"public ActionResult MakaleDetay(int makaleId)\n{\n    MvcProjesiContext db = new MvcProjesiContext();\n    //Burada verilen id numarasına göre seçili makaleyi alıyoruz.   Makale makale = (from i in db.Makales where i.MakaleId == makaleId select i).SingleOrDefault(); return View(makale);\n}\n",[799,12334,12332],{"__ignoreMap":346},[655,12336,12337,12346],{},[658,12338,12339,12340,12343,12344,3486],{},"Hemen ardından makalemizin görüntüleneceği, makale detay sayfamızı oluşturalım. Bunun için ",[799,12341,12342],{},"MakaleDetay"," kısmına sağ\ntıklayarak, ",[646,12345,1186],{},[658,12347,12348,12349,3486],{},"Ayarlarımızı aşağıdaki gibi yapıp, ",[646,12350,1129],{},[643,12352,12353],{},[895,12354],{"alt":1192,"src":12355},"/images/2014/02/2014-02-27+13_09_48.jpg",[655,12357,12358],{},[658,12359,12360],{},"Eklediğimiz View sayfasının da içeriğini, aşağıdaki gibi dolduralım.",[1264,12362,12364],{"className":1266,"code":12363,"language":1268,"meta":346,"style":346},"@model MvcProjesi.Data.Makale\n\n@{\nViewBag.Title = \"MakaleDetay\";\n}\n\n\u003Ch2>Makale Detayı\u003C/h2>\n\n\u003Cdiv style=\"width:100%;margin-top:25px;box-shadow:0 0 5px gray;padding:25px;\">\n    \u003C!--Başlığı, büyük ve renkli görünsün diye, h3 tagı içerisine aldık-->\n    \u003Ch3 style=\"font-weight:bold;color:red\">\n        @Html.DisplayFor(i => Model.Baslik)\n    \u003C/h3>\n\n    \u003C!--Başlıkla içerik arasına, dikey çizgi ekliyoruz.-->\n    \u003Chr />\n\n    @Html.DisplayFor(i => Model.Icerik)\n    \u003Chr />\n    \u003C!--Tarih başlığını, tarih içeriğine bağlamak için Label kullandık.-->\n    @Html.Label(\"Tarih : \")\n\n    @Html.DisplayFor(i => Model.Tarih)\n    \u003Chr />\n    \u003Ch4>Makaleyi Yazan\u003C/h4>\n\n    \u003C!--Burada bir değişkende, ad ile soyadı birleştirip ekrana bastık.-->\n    @{string adSoyad = Model.Uye.Ad + \" \" + Model.Uye.Soyad;}\n    @Html.Label(\"Adı ve Soyadı : \")&nbsp;&nbsp;@adSoyad\n\u003C/div>\n",[799,12365,12366,12370,12374,12378,12383,12387,12391,12408,12412,12430,12435,12453,12458,12466,12470,12475,12483,12487,12492,12500,12505,12510,12514,12519,12527,12543,12547,12552,12557,12566],{"__ignoreMap":346},[1272,12367,12368],{"class":1274,"line":1275},[1272,12369,8093],{"class":1384},[1272,12371,12372],{"class":1274,"line":347},[1272,12373,1410],{"emptyLinePlaceholder":352},[1272,12375,12376],{"class":1274,"line":1302},[1272,12377,2667],{"class":1384},[1272,12379,12380],{"class":1274,"line":1312},[1272,12381,12382],{"class":1384},"ViewBag.Title = \"MakaleDetay\";\n",[1272,12384,12385],{"class":1274,"line":1340},[1272,12386,2677],{"class":1384},[1272,12388,12389],{"class":1274,"line":1373},[1272,12390,1410],{"emptyLinePlaceholder":352},[1272,12392,12393,12395,12397,12399,12402,12404,12406],{"class":1274,"line":1395},[1272,12394,1295],{"class":1278},[1272,12396,2853],{"class":1282},[1272,12398,1381],{"class":1278},[1272,12400,12401],{"class":1384},"Makale Detayı",[1272,12403,1388],{"class":1278},[1272,12405,2853],{"class":1282},[1272,12407,1290],{"class":1278},[1272,12409,12410],{"class":1274,"line":1401},[1272,12411,1410],{"emptyLinePlaceholder":352},[1272,12413,12414,12416,12418,12420,12422,12424,12426,12428],{"class":1274,"line":1407},[1272,12415,1295],{"class":1278},[1272,12417,1437],{"class":1282},[1272,12419,8350],{"class":1286},[1272,12421,1324],{"class":1278},[1272,12423,1328],{"class":1327},[1272,12425,11369],{"class":1331},[1272,12427,1328],{"class":1327},[1272,12429,1290],{"class":1278},[1272,12431,12432],{"class":1274,"line":1413},[1272,12433,12434],{"class":8327},"    \u003C!--Başlığı, büyük ve renkli görünsün diye, h3 tagı içerisine aldık-->\n",[1272,12436,12437,12439,12441,12443,12445,12447,12449,12451],{"class":1274,"line":1422},[1272,12438,1315],{"class":1278},[1272,12440,3273],{"class":1282},[1272,12442,8350],{"class":1286},[1272,12444,1324],{"class":1278},[1272,12446,1328],{"class":1327},[1272,12448,11393],{"class":1331},[1272,12450,1328],{"class":1327},[1272,12452,1290],{"class":1278},[1272,12454,12455],{"class":1274,"line":1432},[1272,12456,12457],{"class":1384},"        @Html.DisplayFor(i => Model.Baslik)\n",[1272,12459,12460,12462,12464],{"class":1274,"line":1454},[1272,12461,1782],{"class":1278},[1272,12463,3273],{"class":1282},[1272,12465,1290],{"class":1278},[1272,12467,12468],{"class":1274,"line":1475},[1272,12469,1410],{"emptyLinePlaceholder":352},[1272,12471,12472],{"class":1274,"line":1496},[1272,12473,12474],{"class":8327},"    \u003C!--Başlıkla içerik arasına, dikey çizgi ekliyoruz.-->\n",[1272,12476,12477,12479,12481],{"class":1274,"line":1553},[1272,12478,1315],{"class":1278},[1272,12480,1820],{"class":1282},[1272,12482,1337],{"class":1278},[1272,12484,12485],{"class":1274,"line":1579},[1272,12486,1410],{"emptyLinePlaceholder":352},[1272,12488,12489],{"class":1274,"line":1602},[1272,12490,12491],{"class":1384},"    @Html.DisplayFor(i => Model.Icerik)\n",[1272,12493,12494,12496,12498],{"class":1274,"line":1625},[1272,12495,1315],{"class":1278},[1272,12497,1820],{"class":1282},[1272,12499,1337],{"class":1278},[1272,12501,12502],{"class":1274,"line":1635},[1272,12503,12504],{"class":8327},"    \u003C!--Tarih başlığını, tarih içeriğine bağlamak için Label kullandık.-->\n",[1272,12506,12507],{"class":1274,"line":1641},[1272,12508,12509],{"class":1384},"    @Html.Label(\"Tarih : \")\n",[1272,12511,12512],{"class":1274,"line":1651},[1272,12513,1410],{"emptyLinePlaceholder":352},[1272,12515,12516],{"class":1274,"line":1671},[1272,12517,12518],{"class":1384},"    @Html.DisplayFor(i => Model.Tarih)\n",[1272,12520,12521,12523,12525],{"class":1274,"line":1691},[1272,12522,1315],{"class":1278},[1272,12524,1820],{"class":1282},[1272,12526,1337],{"class":1278},[1272,12528,12529,12531,12533,12535,12537,12539,12541],{"class":1274,"line":1709},[1272,12530,1315],{"class":1278},[1272,12532,11478],{"class":1282},[1272,12534,1381],{"class":1278},[1272,12536,11483],{"class":1384},[1272,12538,1388],{"class":1278},[1272,12540,11478],{"class":1282},[1272,12542,1290],{"class":1278},[1272,12544,12545],{"class":1274,"line":1727},[1272,12546,1410],{"emptyLinePlaceholder":352},[1272,12548,12549],{"class":1274,"line":1745},[1272,12550,12551],{"class":8327},"    \u003C!--Burada bir değişkende, ad ile soyadı birleştirip ekrana bastık.-->\n",[1272,12553,12554],{"class":1274,"line":1754},[1272,12555,12556],{"class":1384},"    @{string adSoyad = Model.Uye.Ad + \" \" + Model.Uye.Soyad;}\n",[1272,12558,12559,12562,12564],{"class":1274,"line":1760},[1272,12560,12561],{"class":1384},"    @Html.Label(\"Adı ve Soyadı : \")",[1272,12563,11731],{"class":1844},[1272,12565,12121],{"class":1384},[1272,12567,12568,12570,12572],{"class":1274,"line":1769},[1272,12569,1388],{"class":1278},[1272,12571,1437],{"class":1282},[1272,12573,1290],{"class":1278},[655,12575,12576],{},[658,12577,12578,12579,12581],{},"Son olarak da ana sayfada bulunan ",[646,12580,8003],{}," View sayfamızı, aşağıdaki gibi güncelleyelim.",[1264,12583,12585],{"className":1266,"code":12584,"language":1268,"meta":346,"style":346},"\u003C!--\n    Model verisi, tek bir veriye işaret ediyordu. Ancak biz, Controller'den veriyi\n    bir liste halinde gönderdiğimiz için aşağıdaki satırı güncelledik.\n-->\n@model List\u003CMvcProjesi.Data.Makale>\n\n@{\n    //En dışa bir çerçeve attık. İçeriği ortaladık ve 25'er piksel boşluk verdik.\n    \u003Cdiv style=\"border:1px solid black;padding:25px;text-align:center;\">\n    \u003Ch2>Son Beş Makale\u003C/h2>\n    \u003C!--\n    //Burada Model dediğimiz zaman, Controllerden gelen veriye direkt ulaşmaktayız.\n    //Biz burada liste halinde gelen Model'imizde döngü kurarak, içindeki verileri\n    //html olarak basacağız.\n        -->\n    @foreach (var item in Model)\n    {\n        //Burada her makalenin etrafına çerçeve attık\n        \u003Cdiv style=\"border:1px solid black\">\n        \u003C!--Başlığımızı link haline getirdik ve tıklandığı zaman, makaleId'yi parametre olarak\n            Action'umuza geçtik-->\n        @Html.ActionLink(item.Baslik, \"MakaleDetay\", new { makaleId = item.MakaleId })\n        \u003Cp>@item.Icerik\u003C/p>\n        \u003Cstrong>Tarih : @item.Tarih \u003C/strong>\n        \u003C/div>\n    }\n    \u003C/div>\n}\n",[799,12586,12587,12592,12597,12602,12607,12617,12621,12625,12630,12649,12666,12671,12676,12681,12686,12691,12696,12700,12705,12724,12729,12734,12739,12756,12773,12781,12785,12793],{"__ignoreMap":346},[1272,12588,12589],{"class":1274,"line":1275},[1272,12590,12591],{"class":8327},"\u003C!--\n",[1272,12593,12594],{"class":1274,"line":347},[1272,12595,12596],{"class":8327},"    Model verisi, tek bir veriye işaret ediyordu. Ancak biz, Controller'den veriyi\n",[1272,12598,12599],{"class":1274,"line":1302},[1272,12600,12601],{"class":8327},"    bir liste halinde gönderdiğimiz için aşağıdaki satırı güncelledik.\n",[1272,12603,12604],{"class":1274,"line":1312},[1272,12605,12606],{"class":8327},"-->\n",[1272,12608,12609,12611,12613,12615],{"class":1274,"line":1340},[1272,12610,8333],{"class":1384},[1272,12612,1295],{"class":1278},[1272,12614,11317],{"class":8338},[1272,12616,1290],{"class":1278},[1272,12618,12619],{"class":1274,"line":1373},[1272,12620,1410],{"emptyLinePlaceholder":352},[1272,12622,12623],{"class":1274,"line":1395},[1272,12624,2667],{"class":1384},[1272,12626,12627],{"class":1274,"line":1401},[1272,12628,12629],{"class":1384},"    //En dışa bir çerçeve attık. İçeriği ortaladık ve 25'er piksel boşluk verdik.\n",[1272,12631,12632,12634,12636,12638,12640,12642,12645,12647],{"class":1274,"line":1407},[1272,12633,1315],{"class":1278},[1272,12635,1437],{"class":1282},[1272,12637,8350],{"class":1286},[1272,12639,1324],{"class":1278},[1272,12641,1328],{"class":1327},[1272,12643,12644],{"class":1331},"border:1px solid black;padding:25px;text-align:center;",[1272,12646,1328],{"class":1327},[1272,12648,1290],{"class":1278},[1272,12650,12651,12653,12655,12657,12660,12662,12664],{"class":1274,"line":1413},[1272,12652,1315],{"class":1278},[1272,12654,2853],{"class":1282},[1272,12656,1381],{"class":1278},[1272,12658,12659],{"class":1384},"Son Beş Makale",[1272,12661,1388],{"class":1278},[1272,12663,2853],{"class":1282},[1272,12665,1290],{"class":1278},[1272,12667,12668],{"class":1274,"line":1422},[1272,12669,12670],{"class":8327},"    \u003C!--\n",[1272,12672,12673],{"class":1274,"line":1432},[1272,12674,12675],{"class":8327},"    //Burada Model dediğimiz zaman, Controllerden gelen veriye direkt ulaşmaktayız.\n",[1272,12677,12678],{"class":1274,"line":1454},[1272,12679,12680],{"class":8327},"    //Biz burada liste halinde gelen Model'imizde döngü kurarak, içindeki verileri\n",[1272,12682,12683],{"class":1274,"line":1475},[1272,12684,12685],{"class":8327},"    //html olarak basacağız.\n",[1272,12687,12688],{"class":1274,"line":1496},[1272,12689,12690],{"class":8327},"        -->\n",[1272,12692,12693],{"class":1274,"line":1553},[1272,12694,12695],{"class":1384},"    @foreach (var item in Model)\n",[1272,12697,12698],{"class":1274,"line":1579},[1272,12699,4513],{"class":1384},[1272,12701,12702],{"class":1274,"line":1602},[1272,12703,12704],{"class":1384},"        //Burada her makalenin etrafına çerçeve attık\n",[1272,12706,12707,12709,12711,12713,12715,12717,12720,12722],{"class":1274,"line":1625},[1272,12708,1457],{"class":1278},[1272,12710,1437],{"class":1282},[1272,12712,8350],{"class":1286},[1272,12714,1324],{"class":1278},[1272,12716,1328],{"class":1327},[1272,12718,12719],{"class":1331},"border:1px solid black",[1272,12721,1328],{"class":1327},[1272,12723,1290],{"class":1278},[1272,12725,12726],{"class":1274,"line":1635},[1272,12727,12728],{"class":8327},"        \u003C!--Başlığımızı link haline getirdik ve tıklandığı zaman, makaleId'yi parametre olarak\n",[1272,12730,12731],{"class":1274,"line":1641},[1272,12732,12733],{"class":8327},"            Action'umuza geçtik-->\n",[1272,12735,12736],{"class":1274,"line":1651},[1272,12737,12738],{"class":1384},"        @Html.ActionLink(item.Baslik, \"MakaleDetay\", new { makaleId = item.MakaleId })\n",[1272,12740,12741,12743,12745,12747,12750,12752,12754],{"class":1274,"line":1671},[1272,12742,1457],{"class":1278},[1272,12744,643],{"class":1282},[1272,12746,1381],{"class":1278},[1272,12748,12749],{"class":1384},"@item.Icerik",[1272,12751,1388],{"class":1278},[1272,12753,643],{"class":1282},[1272,12755,1290],{"class":1278},[1272,12757,12758,12760,12762,12764,12767,12769,12771],{"class":1274,"line":1691},[1272,12759,1457],{"class":1278},[1272,12761,646],{"class":1282},[1272,12763,1381],{"class":1278},[1272,12765,12766],{"class":1384},"Tarih : @item.Tarih ",[1272,12768,1388],{"class":1278},[1272,12770,646],{"class":1282},[1272,12772,1290],{"class":1278},[1272,12774,12775,12777,12779],{"class":1274,"line":1709},[1272,12776,1772],{"class":1278},[1272,12778,1437],{"class":1282},[1272,12780,1290],{"class":1278},[1272,12782,12783],{"class":1274,"line":1727},[1272,12784,4534],{"class":1384},[1272,12786,12787,12789,12791],{"class":1274,"line":1745},[1272,12788,1782],{"class":1278},[1272,12790,1437],{"class":1282},[1272,12792,1290],{"class":1278},[1272,12794,12795],{"class":1274,"line":1754},[1272,12796,2677],{"class":1384},[643,12798,12799,12800,12802],{},"Ana sayfada, herhang bir makale başlığına tıkladığımızda, o makalenin tam halinin görüntüleneceği ",[646,12801,12401],{},"\nsayfasının açılmasını sağladık. Sayfanın ekran görüntüsü aşağıdaki gibi olacaktır.",[643,12804,12805],{},[895,12806],{"alt":12807,"src":12808},"Makale Detay sayfası","/images/2014/02/2014-02-27+13_24_44.jpg",[643,12810,12811],{},[646,12812,12813],{},"3. Maddemize Geçelim",[655,12815,12816],{},[658,12817,12818,12819,12821],{},"Yeniden ",[646,12820,6323],{}," dosyamızı açalım.* Aşağıdaki kodlarla Action'umuzu ekleyelim.",[1264,12823,12826],{"className":12824,"code":12825,"language":2600},[2598],"public ActionResult YorumMakalesi(int yorumId)\n{\n    MvcProjesiContext db = new MvcProjesiContext();\n    \n    //Burada verilen yorumId numarasına göre ait olduğu makaleyi alıyoruz.\n    Makale makale = (from i in db.Yorums where i.YorumId==yorumId select i.Makale).SingleOrDefault();\n    return View(makale);\n}\n",[799,12827,12825],{"__ignoreMap":346},[655,12829,12830],{},[658,12831,12832,12833,12836,12837,12840],{},"Action'umuzu ekledikten sonra, View sayfamızı da oluşturalım. Bunun için ",[799,12834,12835],{},"YorumMakalesi"," kısmına sağ tıklayarak, ",[646,12838,12839],{},"Add\nView"," diyelim ve ayarlarını aşağıdaki gibi yapalım.",[643,12842,12843],{},[895,12844],{"alt":12845,"src":12846},"Makale View ekleme sayfası","/images/2014/02/2014-02-27+13_31_41.jpg",[655,12848,12849],{},[658,12850,12851],{},"Açılan View sayfamızı, aşağıdaki gibi dolduralım.",[1264,12853,12855],{"className":1266,"code":12854,"language":1268,"meta":346,"style":346},"@model MvcProjesi.Data.Makale\n\n@{\nViewBag.Title = \"YorumMakalesi\";\n}\n\n\u003Ch2>Makale Detayı\u003C/h2>\n\n\u003Cdiv style=\"width:100%;margin-top:25px;box-shadow:0 0 5px gray;padding:25px;\">\n    \u003C!--Başlığı, büyük ve renkli görünsün diye, h3 tagı içerisine aldık-->\n    \u003Ch3 style=\"font-weight:bold;color:red\">\n        @Html.DisplayFor(i => Model.Baslik)\n    \u003C/h3>\n\n    \u003C!--Başlıkla içerik arasına, dikey çizgi ekliyoruz.-->\n    \u003Chr />\n\n    @Html.DisplayFor(i => Model.Icerik)\n    \u003Chr />\n    \u003C!--Tarih başlığını, tarih içeriğine bağlamak için Label kullandık.-->\n    @Html.Label(\"Tarih : \")\n\n    @Html.DisplayFor(i => Model.Tarih)\n    \u003Chr />\n    \u003Ch4>Makaleyi Yazan\u003C/h4>\n\n    \u003C!--Burada bir değişkende, ad ile soyadı birleştirip ekrana bastık.-->\n    @{string adSoyad = Model.Uye.Ad + \" \" + Model.Uye.Soyad;}\n    @Html.Label(\"Adı ve Soyadı : \")&nbsp;&nbsp;@adSoyad\n\n\u003C/div>\n",[799,12856,12857,12861,12865,12869,12874,12878,12882,12898,12902,12920,12924,12942,12946,12954,12958,12962,12970,12974,12978,12986,12990,12994,12998,13002,13010,13026,13030,13034,13038,13046,13050],{"__ignoreMap":346},[1272,12858,12859],{"class":1274,"line":1275},[1272,12860,8093],{"class":1384},[1272,12862,12863],{"class":1274,"line":347},[1272,12864,1410],{"emptyLinePlaceholder":352},[1272,12866,12867],{"class":1274,"line":1302},[1272,12868,2667],{"class":1384},[1272,12870,12871],{"class":1274,"line":1312},[1272,12872,12873],{"class":1384},"ViewBag.Title = \"YorumMakalesi\";\n",[1272,12875,12876],{"class":1274,"line":1340},[1272,12877,2677],{"class":1384},[1272,12879,12880],{"class":1274,"line":1373},[1272,12881,1410],{"emptyLinePlaceholder":352},[1272,12883,12884,12886,12888,12890,12892,12894,12896],{"class":1274,"line":1395},[1272,12885,1295],{"class":1278},[1272,12887,2853],{"class":1282},[1272,12889,1381],{"class":1278},[1272,12891,12401],{"class":1384},[1272,12893,1388],{"class":1278},[1272,12895,2853],{"class":1282},[1272,12897,1290],{"class":1278},[1272,12899,12900],{"class":1274,"line":1401},[1272,12901,1410],{"emptyLinePlaceholder":352},[1272,12903,12904,12906,12908,12910,12912,12914,12916,12918],{"class":1274,"line":1407},[1272,12905,1295],{"class":1278},[1272,12907,1437],{"class":1282},[1272,12909,8350],{"class":1286},[1272,12911,1324],{"class":1278},[1272,12913,1328],{"class":1327},[1272,12915,11369],{"class":1331},[1272,12917,1328],{"class":1327},[1272,12919,1290],{"class":1278},[1272,12921,12922],{"class":1274,"line":1413},[1272,12923,12434],{"class":8327},[1272,12925,12926,12928,12930,12932,12934,12936,12938,12940],{"class":1274,"line":1422},[1272,12927,1315],{"class":1278},[1272,12929,3273],{"class":1282},[1272,12931,8350],{"class":1286},[1272,12933,1324],{"class":1278},[1272,12935,1328],{"class":1327},[1272,12937,11393],{"class":1331},[1272,12939,1328],{"class":1327},[1272,12941,1290],{"class":1278},[1272,12943,12944],{"class":1274,"line":1432},[1272,12945,12457],{"class":1384},[1272,12947,12948,12950,12952],{"class":1274,"line":1454},[1272,12949,1782],{"class":1278},[1272,12951,3273],{"class":1282},[1272,12953,1290],{"class":1278},[1272,12955,12956],{"class":1274,"line":1475},[1272,12957,1410],{"emptyLinePlaceholder":352},[1272,12959,12960],{"class":1274,"line":1496},[1272,12961,12474],{"class":8327},[1272,12963,12964,12966,12968],{"class":1274,"line":1553},[1272,12965,1315],{"class":1278},[1272,12967,1820],{"class":1282},[1272,12969,1337],{"class":1278},[1272,12971,12972],{"class":1274,"line":1579},[1272,12973,1410],{"emptyLinePlaceholder":352},[1272,12975,12976],{"class":1274,"line":1602},[1272,12977,12491],{"class":1384},[1272,12979,12980,12982,12984],{"class":1274,"line":1625},[1272,12981,1315],{"class":1278},[1272,12983,1820],{"class":1282},[1272,12985,1337],{"class":1278},[1272,12987,12988],{"class":1274,"line":1635},[1272,12989,12504],{"class":8327},[1272,12991,12992],{"class":1274,"line":1641},[1272,12993,12509],{"class":1384},[1272,12995,12996],{"class":1274,"line":1651},[1272,12997,1410],{"emptyLinePlaceholder":352},[1272,12999,13000],{"class":1274,"line":1671},[1272,13001,12518],{"class":1384},[1272,13003,13004,13006,13008],{"class":1274,"line":1691},[1272,13005,1315],{"class":1278},[1272,13007,1820],{"class":1282},[1272,13009,1337],{"class":1278},[1272,13011,13012,13014,13016,13018,13020,13022,13024],{"class":1274,"line":1709},[1272,13013,1315],{"class":1278},[1272,13015,11478],{"class":1282},[1272,13017,1381],{"class":1278},[1272,13019,11483],{"class":1384},[1272,13021,1388],{"class":1278},[1272,13023,11478],{"class":1282},[1272,13025,1290],{"class":1278},[1272,13027,13028],{"class":1274,"line":1727},[1272,13029,1410],{"emptyLinePlaceholder":352},[1272,13031,13032],{"class":1274,"line":1745},[1272,13033,12551],{"class":8327},[1272,13035,13036],{"class":1274,"line":1754},[1272,13037,12556],{"class":1384},[1272,13039,13040,13042,13044],{"class":1274,"line":1760},[1272,13041,12561],{"class":1384},[1272,13043,11731],{"class":1844},[1272,13045,12121],{"class":1384},[1272,13047,13048],{"class":1274,"line":1769},[1272,13049,1410],{"emptyLinePlaceholder":352},[1272,13051,13052,13054,13056],{"class":1274,"line":1779},[1272,13053,1388],{"class":1278},[1272,13055,1437],{"class":1282},[1272,13057,1290],{"class":1278},[655,13059,13060],{},[658,13061,13062,13063,13065],{},"Son olarakta, ",[646,13064,8279],{}," View sayfamızın, içeriğini aşağıdaki gibi değiştirelim.",[1264,13067,13069],{"className":1266,"code":13068,"language":1268,"meta":346,"style":346},"\u003C!--Modelimiz liste olarak geldiği için List\u003C> içerisine aldık-->\n@model List\u003CMvcProjesi.Data.Yorum>\n\u003Cdiv style=\"border:1px solid red;padding:25px;text-align:center;\">\n    \u003Ch2>Son Beş Yorum\u003C/h2>\n    @{\n        //Bu sefer de for döngüsünü kullandık.\n        for (int i = 0; i \u003C Model.Count() - 1; i++)\n        {\n            //Burada her yorumun etrafına çerçeve attık\n            \u003Cdiv style=\"border:1px solid red\">\n                \u003C!--Üye bilgilerini alırken Linq yardımıyla, direkt, yorumu yazan üyenin bilgilerine\n                    @Model[i].Uye. şeklinde ulaşabildik.\n                    -->\n                \u003Ch3>Üye Bilgileri\u003C/h3>\n                Adı : @Model[i].Uye.Ad\u003Cbr />\n                Soyadı : @Model[i].Uye.Soyad\u003Cbr />\n                \u003Ch3>Makale Bilgileri\u003C/h3>\n                \u003C!--Üye bilgilerini alırken Linq yardımıyla, direkt, yorumun ait olduğu\n                          makelenin bilgilerine @Model[i].Makale. şeklinde ulaşabildik.\n                -->\n                Başlık : @Html.ActionLink(@Model[i].Makale.Baslik, \"YorumMakalesi\", new { yorumId = Model[i].YorumId })\n                \u003Ch3>Yorumun İçeriği\u003C/h3>\n                \u003Cp>@Model[i].Icerik\u003C/p>\n                Tarih : @Model[i].Tarih\n            \u003C/div>\n        }\n    }\n\u003C/div>\n",[799,13070,13071,13075,13085,13103,13119,13123,13127,13135,13139,13143,13161,13165,13170,13174,13190,13200,13210,13226,13230,13235,13239,13244,13260,13276,13280,13288,13292,13296],{"__ignoreMap":346},[1272,13072,13073],{"class":1274,"line":1275},[1272,13074,8328],{"class":8327},[1272,13076,13077,13079,13081,13083],{"class":1274,"line":347},[1272,13078,8333],{"class":1384},[1272,13080,1295],{"class":1278},[1272,13082,8339],{"class":8338},[1272,13084,1290],{"class":1278},[1272,13086,13087,13089,13091,13093,13095,13097,13099,13101],{"class":1274,"line":1302},[1272,13088,1295],{"class":1278},[1272,13090,1437],{"class":1282},[1272,13092,8350],{"class":1286},[1272,13094,1324],{"class":1278},[1272,13096,1328],{"class":1327},[1272,13098,8357],{"class":1331},[1272,13100,1328],{"class":1327},[1272,13102,1290],{"class":1278},[1272,13104,13105,13107,13109,13111,13113,13115,13117],{"class":1274,"line":1312},[1272,13106,1315],{"class":1278},[1272,13108,2853],{"class":1282},[1272,13110,1381],{"class":1278},[1272,13112,8372],{"class":1384},[1272,13114,1388],{"class":1278},[1272,13116,2853],{"class":1282},[1272,13118,1290],{"class":1278},[1272,13120,13121],{"class":1274,"line":1340},[1272,13122,5044],{"class":1384},[1272,13124,13125],{"class":1274,"line":1373},[1272,13126,8387],{"class":1384},[1272,13128,13129,13131,13133],{"class":1274,"line":1395},[1272,13130,8392],{"class":1384},[1272,13132,1295],{"class":4903},[1272,13134,8397],{"class":1384},[1272,13136,13137],{"class":1274,"line":1401},[1272,13138,5079],{"class":1384},[1272,13140,13141],{"class":1274,"line":1407},[1272,13142,8406],{"class":1384},[1272,13144,13145,13147,13149,13151,13153,13155,13157,13159],{"class":1274,"line":1413},[1272,13146,1478],{"class":1278},[1272,13148,1437],{"class":1282},[1272,13150,8350],{"class":1286},[1272,13152,1324],{"class":1278},[1272,13154,1328],{"class":1327},[1272,13156,8421],{"class":1331},[1272,13158,1328],{"class":1327},[1272,13160,1290],{"class":1278},[1272,13162,13163],{"class":1274,"line":1422},[1272,13164,8430],{"class":8327},[1272,13166,13167],{"class":1274,"line":1432},[1272,13168,13169],{"class":8327},"                    @Model[i].Uye. şeklinde ulaşabildik.\n",[1272,13171,13172],{"class":1274,"line":1454},[1272,13173,8440],{"class":8327},[1272,13175,13176,13178,13180,13182,13184,13186,13188],{"class":1274,"line":1475},[1272,13177,1499],{"class":1278},[1272,13179,3273],{"class":1282},[1272,13181,1381],{"class":1278},[1272,13183,8451],{"class":1384},[1272,13185,1388],{"class":1278},[1272,13187,3273],{"class":1282},[1272,13189,1290],{"class":1278},[1272,13191,13192,13194,13196,13198],{"class":1274,"line":1496},[1272,13193,8462],{"class":1384},[1272,13195,1295],{"class":1278},[1272,13197,8467],{"class":1282},[1272,13199,1337],{"class":1278},[1272,13201,13202,13204,13206,13208],{"class":1274,"line":1553},[1272,13203,8474],{"class":1384},[1272,13205,1295],{"class":1278},[1272,13207,8467],{"class":1282},[1272,13209,1337],{"class":1278},[1272,13211,13212,13214,13216,13218,13220,13222,13224],{"class":1274,"line":1579},[1272,13213,1499],{"class":1278},[1272,13215,3273],{"class":1282},[1272,13217,1381],{"class":1278},[1272,13219,8491],{"class":1384},[1272,13221,1388],{"class":1278},[1272,13223,3273],{"class":1282},[1272,13225,1290],{"class":1278},[1272,13227,13228],{"class":1274,"line":1602},[1272,13229,8502],{"class":8327},[1272,13231,13232],{"class":1274,"line":1625},[1272,13233,13234],{"class":8327},"                          makelenin bilgilerine @Model[i].Makale. şeklinde ulaşabildik.\n",[1272,13236,13237],{"class":1274,"line":1635},[1272,13238,8512],{"class":8327},[1272,13240,13241],{"class":1274,"line":1641},[1272,13242,13243],{"class":1384},"                Başlık : @Html.ActionLink(@Model[i].Makale.Baslik, \"YorumMakalesi\", new { yorumId = Model[i].YorumId })\n",[1272,13245,13246,13248,13250,13252,13254,13256,13258],{"class":1274,"line":1651},[1272,13247,1499],{"class":1278},[1272,13249,3273],{"class":1282},[1272,13251,1381],{"class":1278},[1272,13253,8528],{"class":1384},[1272,13255,1388],{"class":1278},[1272,13257,3273],{"class":1282},[1272,13259,1290],{"class":1278},[1272,13261,13262,13264,13266,13268,13270,13272,13274],{"class":1274,"line":1671},[1272,13263,1499],{"class":1278},[1272,13265,643],{"class":1282},[1272,13267,1381],{"class":1278},[1272,13269,8545],{"class":1384},[1272,13271,1388],{"class":1278},[1272,13273,643],{"class":1282},[1272,13275,1290],{"class":1278},[1272,13277,13278],{"class":1274,"line":1691},[1272,13279,8556],{"class":1384},[1272,13281,13282,13284,13286],{"class":1274,"line":1709},[1272,13283,1644],{"class":1278},[1272,13285,1437],{"class":1282},[1272,13287,1290],{"class":1278},[1272,13289,13290],{"class":1274,"line":1727},[1272,13291,5101],{"class":1384},[1272,13293,13294],{"class":1274,"line":1745},[1272,13295,4534],{"class":1384},[1272,13297,13298,13300,13302],{"class":1274,"line":1754},[1272,13299,1388],{"class":1278},[1272,13301,1437],{"class":1282},[1272,13303,1290],{"class":1278},[643,13305,13306],{},"Evet, aynı şekilde artık ana sayfadaki yorumlarımızın olduğu kısımda, makale başlıklarına tıklanınca yorumun ait olduğu\nmakale sayfası açılacaktır.",[643,13308,13309],{},"Sonuç olarak projemizde verilerimizin gösterim kısımlarını derinlemesine işlemiş bulunmaktayız.",[643,13311,13312],{},"Sonraki dersimizde, üyelik işlemlerini yapıyor olacağız.",[643,13314,11830,13315,11834],{},[771,13316,5939],{"href":13317},"/images/proje-dosyalar/asp-net-mvc-html-helperlerin-for-takili-kullanim-ornekleri-2-asp-net-mvc-yazi-dizisi-19/MvcProjesi.zip",[643,13319,1976],{},[1978,13321,13322],{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sDBD8, html code.shiki .sDBD8{--shiki-light:#E53935;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .srjyR, html code.shiki .srjyR{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}",{"title":346,"searchDepth":347,"depth":347,"links":13324},[],"2014/02/2014-02-27+13_24_44.jpg","2014-02-28T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Html Helper'lerin For Takılı Kullanım Örnekleri 1 (Asp.Net Mvc Yazı Dizisi – 18)",{},{"title":47,"description":13327},"9d-T5WpOHP0NR8PReplqXdMQuW9kCLX8cXHi5gjSuak",{"id":13332,"title":91,"body":13333,"coverImage":15013,"createDate":15014,"description":15015,"extension":350,"meta":15016,"navigation":352,"path":92,"seo":15017,"stem":93,"__hash__":15018},"posts/dersler/asp-net-mvc/asp-net-mvc-yeni-uye-kaydi-ve-dosya-yukleme-uyelik-sistemi-1-asp-net-mvc-yazi-dizisi-20.md",{"type":343,"value":13334,"toc":15011},[13335,13338,13346,13350,13353,13364,13367,13370,13373,13378,13400,13406,13423,13432,13435,13444,13447,13455,13461,13464,13470,13472,13492,13497,13503,13514,13520,13523,13535,13541,13555,13560,14622,14625,14628,14634,14646,14923,14946,14952,14955,14961,14974,14987,14993,14998,15001,15006,15008],[639,13336,91],{"id":13337},"aspnet-mvc-yeni-üye-kaydı-ve-dosya-yükleme-üyelik-sistemi-1-aspnet-mvc-yazı-dizisi-20",[643,13339,13340,853,13342],{},[646,13341,852],{},[771,13343,13344],{"href":48},[646,13345,47],{},[643,13347,13348],{},[646,13349,861],{},[643,13351,13352],{},"Geliştirmeyi sürdürdüğümüz blog projemizde, makalelerin, etiketlerin ve yorumların görüntüleneceği kısımları\noluşturmuştuk. Bundan sonraki süreçte ise, sistemimizde üyelik sistemini aktif edeceğiz. Üyelik sistemimizin içeriğinde\nise aşağıdaki özellikler olacak.",[655,13354,13355,13358,13361],{},[658,13356,13357],{},"Üye girişi",[658,13359,13360],{},"Üye olma",[658,13362,13363],{},"Yetkilendirme",[643,13365,13366],{},"Yukarıdaki saydığımız şeyleri sisteme entegre etmeden önce, belirtmekte fayda gördüğüm bazı hususlar var;",[643,13368,13369],{},"Öncelikle web mimarisinde, sayfa sunucudan herhangi bir engelleme olmadan çıktığında, tarayıcıda görüntülenir. Bu yüzden\nbiz yetkilendirme ya da filtreleme işlemlerini sunucuda yapıyor olacağız. Böylelikle sayfa daha hazırlanırken,\nkullanıcıdan aldığımız bilgilerle (kullanıcı adı, üyelik hakları vs.), sayfanın erişimini istediğimiz gibi ayarlama\nşansına sahip olacağız.",[643,13371,13372],{},"Kabaca sistem hakkında, ön bilgiler verdikten sonra, işlemlerimizi yapmaya başlayalım.",[643,13374,13375],{},[646,13376,13377],{},"Yeni Üyelik Sayfası",[655,13379,13380,13386],{},[658,13381,13382,13383,13385],{},"Öncelikle, önceki derslerde kullandığımız projemizin son halini açalım. (İndirmek için\nlütfen ",[771,13384,7964],{"href":13317},".)",[658,13387,13388,13389,13391,13392,13395,13396,13399],{},"Veritabanımızı tasarlarken eklemeyi unuttuğumuz, ",[646,13390,5743],{}," tablosuna ",[646,13393,13394],{},"Sifre"," kısmını ekleyelim. Eklememizi yaptıktan\nsonra, ",[646,13397,13398],{},"Data>Uye.cs"," dosyamızın içeriği aşağıdaki gibi görünecektir.",[1264,13401,13404],{"className":13402,"code":13403,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\n\n//Bu isim uzayını eklememizin sebebi, [DataType],[StringLength] gibi Attribute'leri tanımlıyor olmamız.\nusing System.ComponentModel.DataAnnotations;\n\nusing System.Linq;\nusing System.Web;\n\nnamespace MvcProjesi.Data\n{\npublic class Uye\n{\n    //Bu alan tablonun id'si olacak. Tablo adının sonuna Id takısı eklendiğinde, framework bu alanı otomatik olarak,\n    //tablonun anahtar sütunu yani primary key'si yapacaktır. Bu varsayılanı değiştirmek mümkündür, ancak bu konuya\n    //girmeyeceğiz. Detaylı bilgi için, Code First Fluent olarak araştırma yapabilirsiniz.\n    public int UyeId { get; set; }\n\n    //Bu alanı zorunlu hale getiriyoruz. Böylelikle boş geçilemeyecek.\n    [Required(ErrorMessage = \"Lütfen adınızı giriniz.\")]\n    //Girilen metnin uzunluğunu belirtiyoruz. İlk değişken minimum uzunluk olurken, sonrakiler ise, opsiyonel \n    //girdilerdir.\n    [StringLength(50, MinimumLength = 3, ErrorMessage = \"Adınızı 3-50 karakter arasında girebilirsiniz.\")]\n    public string Ad { get; set; }\n\n    [Required(ErrorMessage = \"Lütfen soyadınızı giriniz.\")]\n    [StringLength(50, MinimumLength = 3, ErrorMessage = \"Soyadınızı 3-50 karakter arasında girebilirsiniz.\")]\n    public string Soyad { get; set; }\n\n    [Required(ErrorMessage = \"Lütfen e-posta adresinizi giriniz.\")]\n    //Girilen metnin, geçerli bir e-posta adresi formatında girilmesini sağlıyoruz. \n    //DataType tipleri, Microsoft tarafından Framework'e eklenen hazır tiplerdir.\n    [DataType(DataType.EmailAddress, ErrorMessage = \"Lütfen e-posta adresinizi geçerli bir formatta giriniz.\")]\n    public string EPosta { get; set; }\n\n    //Required Attribute'si eklemediğimiz için, bu alan zorunlu olmayacak ve boş geçilebiliyor olacak.\n    //Girilen metnin, geçerli bir web sitesi adresi formatında girilmesini sağlıyoruz. \n    [DataType(DataType.Url, ErrorMessage = \"Lütfen web site adresinizi, geçerli bir formatta giriniz.\")]\n    public string WebSite { get; set; }\n\n    //Girilen metnin, geçerli bir resim yolu formatında girilmesini sağlıyoruz. \n    [DataType(DataType.ImageUrl, ErrorMessage = \"Lütfen resim yolunuzu doğru şekilde giriniz.\")]\n    public string ResimYol { get; set; }\n\n\n    [Required(ErrorMessage = \"Lütfen üye olma tarihini giriniz.\")]\n    //Girilen tarihin, geçerli bir tarih ve saat formatında girilmesini sağlıyoruz.\n    [DataType(DataType.DateTime, ErrorMessage = \"Lütfen üye olma tarihini, doğru bir şekilde giriniz.\")]\n    public DateTime UyeOlmaTarih { get; set; }\n\n    //Bir üyenin, birden çok yorumu olabileceği için Yorumları bir liste içerisine alıyoruz. \n    //Property adının sonuna s takısı koymamızın sebebi, veri tipinin çoğul olduğunun daha kolay anlaşılabilmesi \n    //içindir. Entity varsayılan olarak, liste verilerin sonuna s takısı koymaktadır.\n    //Biz de bu standarda uyum gösterdik. Eğer veri tipinin adı zaten s ile bitiyorsa o zaman da s yi siliyoruz.\n    //Örneğin hayvanlarla ilgili bir tabloda, Kus adlı bir sınıfımız çoğul olarak temsil edilecekse Ku olarak \n    //kullanabiliriz.\n    public virtual List\u003CYorum> Yorums { get; set; }\n\n    //Bir üyenin eklediği, birden çok makale olabilir.\n    public virtual List\u003CMakale> Makales { get; set; }\n\n    //Baştan eklemeyi unuttuğumuz şifre kısmını ekledik.\n    [DataType(DataType.Password)]\n    [Required(ErrorMessage = \"Lütfen şifrenizi giriniz.\")]\n    public string Sifre { get; set; }\n    }\n}\n",[799,13405,13403],{"__ignoreMap":346},[655,13407,13408],{},[658,13409,13410,13411,13414,13415,13419,13420,13422],{},"Şifre güncellemesinin, veritabanına yansıtılması için, veritabanı adımızı değiştirelim. (Normalde tablo yapısında\ndeğişiklik olduğunda,",[646,13412,13413],{},"Code First Migrations"," yöntemi ile değişiklerin uygulanması sağlanır, tablo isimleri\ndeğiştirilmez. Bu konuya ileri seviye derslerde değinilecektir. İlgilenen arkadaşlar, detaylı\nbilgiye ",[771,13416,6264],{"href":13417,"rel":13418},"http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application",[878],"\nbakabilirler.) Tablo ismimizi değiştirmek için, ana dizinde bulunan ",[646,13421,6027],{}," dosyasındaki,",[1264,13424,13426],{"className":6057,"code":13425,"language":6059,"meta":346,"style":346}," \u003Cadd name=\"MvcProjesiContext\" connectionString=\"Data Source=(localdb)\\\\v11.0;Initial Catalog=MvcProjesiYeni;Integrated Security=True\" providerName=\"System.Data.SqlClient\" />\n",[799,13427,13428],{"__ignoreMap":346},[1272,13429,13430],{"class":1274,"line":1275},[1272,13431,13425],{},[643,13433,13434],{},"satırını,",[1264,13436,13438],{"className":6057,"code":13437,"language":6059,"meta":346,"style":346},"\u003Cadd name=\"MvcProjesiContext\" connectionString=\"Data Source=(localdb)\\\\v11.0;Initial Catalog=MvcProjesiSon;Integrated Security=True\" providerName=\"System.Data.SqlClient\" />\n",[799,13439,13440],{"__ignoreMap":346},[1272,13441,13442],{"class":1274,"line":1275},[1272,13443,13437],{},[643,13445,13446],{},"olarak güncelleyelim.",[655,13448,13449],{},[658,13450,5838,13451,13454],{},[646,13452,13453],{},"Global.asax"," dosyamızda, veritabanı ilk oluşturulduğunda, yeni üye kaydı yapılırken hata almamamız\niçin,",[1264,13456,13459],{"className":13457,"code":13458,"language":2600},[2598],"Uye uye = new Uye() { Ad = \"Abdurrahman\", Soyad = \"Güngör\", EPosta = \"abdurrahmangungor@deneme.com\", ResimYol = \"\",\nUyeOlmaTarih = DateTime.Now, WebSite = \"http://www.abdurrahmangungor.com\" };\n",[799,13460,13458],{"__ignoreMap":346},[643,13462,13463],{},"kısmını,",[1264,13465,13468],{"className":13466,"code":13467,"language":2600},[2598],"Uye uye = new Uye() { Ad = \"Abdurrahman\", Soyad = \"Güngör\", EPosta = \"abdurrahmangungor@deneme.com\", ResimYol = \"\",\nUyeOlmaTarih = DateTime.Now, WebSite = \"http://www.abdurrahmangungor.com\",Sifre=\"deneme\" };\n",[799,13469,13467],{"__ignoreMap":346},[643,13471,9134],{},[655,13473,13474,13484],{},[658,13475,13476,13477,13479,13480,13483],{},"İşlemlerimizde varsayılan olarak kullandığımız, ",[646,13478,6323],{},"'in yerine üyelik vb. işlemlerimiz için, *\n",[5583,13481,13482],{},"UyelikController","* adında yeni bir Controller kullanalım.",[658,13485,13486,13488,13489,13491],{},[646,13487,1106],{}," klasörüne sağ tıklayıp, ",[646,13490,1110],{}," diyelim. Çıkan ekrandaki seçimi aşağıdaki gibi yapıp, **Add\n** tuşuna tıklayalım.",[643,13493,13494],{},[895,13495],{"alt":6278,"src":13496},"/images/2014/03/2014-03-11+13_06_34.jpg",[643,13498,13499],{},[895,13500],{"alt":13501,"src":13502},"Controller isim verme","/images/2014/03/2014-03-11+13_08_37.jpg",[655,13504,13505,13511],{},[658,13506,13507,13508,13510],{},"Yeni Controller'imizi eklediğimizde, ",[646,13509,1219],{}," Action'u varsayılan olarak gelmiş bulunmaktadır. Biz bu Action'umuzu\nkaldıralım.",[658,13512,13513],{},"Şimdi, yeni üyelik ekranını hazırlayalım. Bunun için öncelikle, Controller'imize aşağıdaki Action'u ekleyelim.",[1264,13515,13518],{"className":13516,"code":13517,"language":2600},[2598],"public ActionResult YeniUyelik()\n{\n    return View();\n}\n",[799,13519,13517],{"__ignoreMap":346},[643,13521,13522],{},"Görüldüğü üzere, tek yaptığımız şey, geriye bir View sayfası döndürmek.",[655,13524,13525],{},[658,13526,13527,13528,13531,13532,13534],{},"Şimdi ise, View sayfamızı oluşturup içeriğini dizayn edelim. Bunun için yapmamız gereken şey ise, ",[799,13529,13530],{},"YeniUyelik()","\nkısmına sağ tıklayarak, ",[646,13533,1186],{},"' a tıklamak ve içeriğini aşağıdaki gibi düzenlemek;",[643,13536,13537],{},[895,13538],{"alt":13539,"src":13540},"Yeni üyelik View eklenmesi","/images/2014/03/2014-03-18+13_14_55.jpg",[643,13542,13543,13544,13546,13547,13550,13551,13554],{},"Dikkat edeceğiniz üzere, ",[646,13545,4819],{},"'in altına ",[646,13548,13549],{},"Uyelik"," klasörü ve ",[646,13552,13553],{},"YeniUyelik.cshtml"," dosyası otomatik olarak\noluşturuldu.",[655,13556,13557],{},[658,13558,13559],{},"View sayfamızın içerisine girelim ve içeriğini aşağıdaki gibi hazırlayalım.",[1264,13561,13563],{"className":1266,"code":13562,"language":1268,"meta":346,"style":346},"@model MvcProjesi.Data.Uye\n\n@{\n    ViewBag.Title = \"Yeni Üyelik\";\n}\n\u003C!--Layout sayfamızda sayfanın en alt kısmında scripts adlı bir sectionumuz tanımlanmıştı.\n    Script ve css kodlarımızı scripts sectionuna koyacağız.\n    Detaylı bilgi önceki yazılarımızda vardır.-->\n    @section scripts{\n        \u003Cstyle type=\"text/css\">\n        #formKapsayici {\n        box-shadow: 0 0 5px gray;\n        padding: 25px;\n        height: 500px;\n    }\n\n        #divSol, #divSag {\n            float: left;\n            margin-left: 25px;\n        }\n\n            #divSol *, #divSag * {\n                margin-top: 15px;\n            }\n\n        input[type=\"text\"] {\n            width: 250px;\n        }\n\n        #btnUyeOl {\n            /*clear komutu ile önceki divlerin sola yaslanarak sıralanmasında, butonun bu yaslanmaya\n            uymayıp alt satıra inmesini sağlıyoruz*/\n            clear: both;\n            display: block;\n            margin-left: 132px;\n        }\n    \u003C/style>\n\n    \u003C!--Projemizde tarih seçici kullanacağız. Bunun için Jquery ve Jqueryui den faydalanacağız.-->\n\n    \u003C!--Öncelikle gerekli Jquery ui kütüphanemizi ekliyoruz. Jquery kütüphanemiz Layout sayfamızda\n        zaten tanımlanmış durumdadır.-->\n    \u003Clink rel=\"stylesheet\" href=\"//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css\" />\n    \u003Cscript src=\"//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js\">\u003C/script>\n    \u003C!--Kütüphanelerimizin online olduğunu bu yüzden sayfa çalışırken, internet bağlantımızın aktif olması\n        gerektiğini lütfen göz önünde bulundurun.-->\n\n    \u003C!--Tarih seçicimizi burada hazırlayacağız-->\n    \u003Cscript type=\"text/javascript\">\n        $(document).ready(function () {\n            $(\"#textBoxDogum\").datepicker();\n        });\n    \u003C/script>\n\n}\n\u003Ch2>Yeni Üyelik\u003C/h2>\n\n\u003C!--Html.BeginForm ile yeni bir form oluşturuyoruz ve içeriğine elemanlarımızı ekliyoruz.-->\n\u003C!--Formumuzun içinde resim yüklemesi de yapacağımız için, forma enctype = \"multipart/form-data\" özelliği veriyoruz-->\n\u003C!--Ayrıca normalde sistemimize doğum gününü kaydetmeyecektik, bu yüzden bir örnek olması adına Jquery ile \n    doğum tarihini alarak, yaş kontrolü yapacağız.-->\n\u003C!--Formun sunucuya gönderim yöntemini, FormMethod.Post yaptığımıza dikkat edin.\nGet ve Post metodları hakkında internette araştırma yapmanızda fayda var.-->\n\n@using (Html.BeginForm(\"YeniUyelik\", \"Uyelik\", FormMethod.Post, new { enctype = \"multipart/form-data\", id = \"\nformKapsayici\" }))\n{\n    \u003Cdiv id=\"divSol\">\n    @Html.LabelFor(i => Model.Ad)\u003Cbr />\u003Cbr />\n    @Html.LabelFor(i => Model.Soyad)\u003Cbr />\u003Cbr />\n    @Html.LabelFor(i => Model.EPosta)\u003Cbr />\u003Cbr />\n    @Html.LabelFor(i => Model.Sifre)\u003Cbr />\u003Cbr />\n    @Html.LabelFor(i => Model.WebSite)\u003Cbr />\u003Cbr />\n\n    \u003C!--Tüm elemanlarda for takısını kullanırken doğum tarihi ve resim yüklemede kullanmadık.\n        Çünkü bu iki elaman daha önce hazırladığımız Uye modeline ait değiller.\n        Bu yüzden elle ekledik.-->\n    @Html.Label(\"Doğum Tarihiniz\")\u003Cbr />\u003Cbr />\n    @Html.Label(\"Profil Resminiz\")\u003Cbr />\u003Cbr />\n    \u003C/div>\n    \u003Cdiv id=\"divSag\">\n        : @Html.TextBoxFor(i => Model.Ad)\u003Cbr />\u003Cbr />\n        : @Html.TextBoxFor(i => Model.Soyad)\u003Cbr />\u003Cbr />\n        : @Html.TextBoxFor(i => Model.EPosta)\u003Cbr />\u003Cbr />\n        : @Html.TextBoxFor(i => Model.Sifre)\u003Cbr />\u003Cbr />\n        : @Html.TextBoxFor(i => Model.WebSite)\u003Cbr />\u003Cbr />\n        : @Html.TextBox(\"textBoxDogum\")\u003Cbr />\u003Cbr />\n\n        \u003C!--Aşağıdaki input type=\"file\" dosya yüklemeye yarayan, html elementidir.-->\n        \u003Cinput type=\"file\" id=\"inputFile\" name=\"file\" /> \u003Cbr />\u003Cbr />\n\n    \u003C/div>\n    \u003Cinput type=\"submit\" value=\"Üye Ol\" id=\"btnUyeOl\" />\n\n    \u003C!--Html.ValidationSummary ile formda oluşan geçerlilik hatalarını liste halinde gösterebiliyoruz.-->\n    @Html.ValidationSummary()\n\n}\n",[799,13564,13565,13570,13574,13578,13583,13587,13592,13597,13602,13607,13626,13639,13667,13681,13695,13699,13703,13720,13732,13745,13749,13753,13774,13788,13793,13797,13822,13836,13840,13844,13853,13858,13863,13875,13887,13900,13904,13912,13916,13921,13925,13930,13935,13967,13991,13996,14001,14006,14012,14032,14059,14087,14097,14106,14111,14116,14134,14139,14145,14151,14157,14163,14169,14175,14180,14186,14192,14197,14216,14233,14249,14265,14281,14297,14302,14308,14314,14320,14336,14352,14361,14380,14396,14412,14428,14444,14460,14476,14481,14487,14540,14545,14554,14595,14600,14606,14612,14617],{"__ignoreMap":346},[1272,13566,13567],{"class":1274,"line":1275},[1272,13568,13569],{"class":1384},"@model MvcProjesi.Data.Uye\n",[1272,13571,13572],{"class":1274,"line":347},[1272,13573,1410],{"emptyLinePlaceholder":352},[1272,13575,13576],{"class":1274,"line":1302},[1272,13577,2667],{"class":1384},[1272,13579,13580],{"class":1274,"line":1312},[1272,13581,13582],{"class":1384},"    ViewBag.Title = \"Yeni Üyelik\";\n",[1272,13584,13585],{"class":1274,"line":1340},[1272,13586,2677],{"class":1384},[1272,13588,13589],{"class":1274,"line":1373},[1272,13590,13591],{"class":8327},"\u003C!--Layout sayfamızda sayfanın en alt kısmında scripts adlı bir sectionumuz tanımlanmıştı.\n",[1272,13593,13594],{"class":1274,"line":1395},[1272,13595,13596],{"class":8327},"    Script ve css kodlarımızı scripts sectionuna koyacağız.\n",[1272,13598,13599],{"class":1274,"line":1401},[1272,13600,13601],{"class":8327},"    Detaylı bilgi önceki yazılarımızda vardır.-->\n",[1272,13603,13604],{"class":1274,"line":1407},[1272,13605,13606],{"class":1384},"    @section scripts{\n",[1272,13608,13609,13611,13613,13615,13617,13619,13622,13624],{"class":1274,"line":1413},[1272,13610,1457],{"class":1278},[1272,13612,1978],{"class":1282},[1272,13614,1505],{"class":1286},[1272,13616,1324],{"class":1278},[1272,13618,1328],{"class":1327},[1272,13620,13621],{"class":1331},"text/css",[1272,13623,1328],{"class":1327},[1272,13625,1290],{"class":1278},[1272,13627,13628,13632,13636],{"class":1274,"line":1422},[1272,13629,13631],{"class":13630},"stp6e","        #",[1272,13633,13635],{"class":13634},"sPLZw","formKapsayici",[1272,13637,13638],{"class":1278}," {\n",[1272,13640,13641,13645,13648,13652,13654,13657,13661,13664],{"class":1274,"line":1432},[1272,13642,13644],{"class":13643},"soE4H","        box-shadow",[1272,13646,13647],{"class":1278},":",[1272,13649,13651],{"class":13650},"srdBf"," 0",[1272,13653,13651],{"class":13650},[1272,13655,13656],{"class":13650}," 5",[1272,13658,13660],{"class":13659},"sw1J6","px",[1272,13662,13663],{"class":1844}," gray",[1272,13665,13666],{"class":1278},";\n",[1272,13668,13669,13672,13674,13677,13679],{"class":1274,"line":1454},[1272,13670,13671],{"class":13643},"        padding",[1272,13673,13647],{"class":1278},[1272,13675,13676],{"class":13650}," 25",[1272,13678,13660],{"class":13659},[1272,13680,13666],{"class":1278},[1272,13682,13683,13686,13688,13691,13693],{"class":1274,"line":1475},[1272,13684,13685],{"class":13643},"        height",[1272,13687,13647],{"class":1278},[1272,13689,13690],{"class":13650}," 500",[1272,13692,13660],{"class":13659},[1272,13694,13666],{"class":1278},[1272,13696,13697],{"class":1274,"line":1496},[1272,13698,4534],{"class":1278},[1272,13700,13701],{"class":1274,"line":1553},[1272,13702,1410],{"emptyLinePlaceholder":352},[1272,13704,13705,13707,13710,13712,13715,13718],{"class":1274,"line":1579},[1272,13706,13631],{"class":13630},[1272,13708,13709],{"class":13634},"divSol",[1272,13711,711],{"class":1278},[1272,13713,13714],{"class":13630}," #",[1272,13716,13717],{"class":13634},"divSag",[1272,13719,13638],{"class":1278},[1272,13721,13722,13725,13727,13730],{"class":1274,"line":1602},[1272,13723,13724],{"class":13643},"            float",[1272,13726,13647],{"class":1278},[1272,13728,13729],{"class":1844}," left",[1272,13731,13666],{"class":1278},[1272,13733,13734,13737,13739,13741,13743],{"class":1274,"line":1625},[1272,13735,13736],{"class":13643},"            margin-left",[1272,13738,13647],{"class":1278},[1272,13740,13676],{"class":13650},[1272,13742,13660],{"class":13659},[1272,13744,13666],{"class":1278},[1272,13746,13747],{"class":1274,"line":1635},[1272,13748,5101],{"class":1278},[1272,13750,13751],{"class":1274,"line":1641},[1272,13752,1410],{"emptyLinePlaceholder":352},[1272,13754,13755,13758,13760,13764,13766,13768,13770,13772],{"class":1274,"line":1651},[1272,13756,13757],{"class":13630},"            #",[1272,13759,13709],{"class":13634},[1272,13761,13763],{"class":13762},"s83vy"," *",[1272,13765,711],{"class":1278},[1272,13767,13714],{"class":13630},[1272,13769,13717],{"class":13634},[1272,13771,13763],{"class":13762},[1272,13773,13638],{"class":1278},[1272,13775,13776,13779,13781,13784,13786],{"class":1274,"line":1671},[1272,13777,13778],{"class":13643},"                margin-top",[1272,13780,13647],{"class":1278},[1272,13782,13783],{"class":13650}," 15",[1272,13785,13660],{"class":13659},[1272,13787,13666],{"class":1278},[1272,13789,13790],{"class":1274,"line":1691},[1272,13791,13792],{"class":1278},"            }\n",[1272,13794,13795],{"class":1274,"line":1709},[1272,13796,1410],{"emptyLinePlaceholder":352},[1272,13798,13799,13802,13805,13808,13811,13813,13815,13817,13820],{"class":1274,"line":1727},[1272,13800,13801],{"class":13762},"        input",[1272,13803,13804],{"class":1278},"[",[1272,13806,13807],{"class":1286},"type",[1272,13809,1324],{"class":13810},"smGrS",[1272,13812,1328],{"class":1327},[1272,13814,2600],{"class":1331},[1272,13816,1328],{"class":1327},[1272,13818,13819],{"class":1278},"]",[1272,13821,13638],{"class":1278},[1272,13823,13824,13827,13829,13832,13834],{"class":1274,"line":1745},[1272,13825,13826],{"class":13643},"            width",[1272,13828,13647],{"class":1278},[1272,13830,13831],{"class":13650}," 250",[1272,13833,13660],{"class":13659},[1272,13835,13666],{"class":1278},[1272,13837,13838],{"class":1274,"line":1754},[1272,13839,5101],{"class":1278},[1272,13841,13842],{"class":1274,"line":1760},[1272,13843,1410],{"emptyLinePlaceholder":352},[1272,13845,13846,13848,13851],{"class":1274,"line":1769},[1272,13847,13631],{"class":13630},[1272,13849,13850],{"class":13634},"btnUyeOl",[1272,13852,13638],{"class":1278},[1272,13854,13855],{"class":1274,"line":1779},[1272,13856,13857],{"class":8327},"            /*clear komutu ile önceki divlerin sola yaslanarak sıralanmasında, butonun bu yaslanmaya\n",[1272,13859,13860],{"class":1274,"line":1789},[1272,13861,13862],{"class":8327},"            uymayıp alt satıra inmesini sağlıyoruz*/\n",[1272,13864,13865,13868,13870,13873],{"class":1274,"line":1809},[1272,13866,13867],{"class":13643},"            clear",[1272,13869,13647],{"class":1278},[1272,13871,13872],{"class":1844}," both",[1272,13874,13666],{"class":1278},[1272,13876,13877,13880,13882,13885],{"class":1274,"line":1815},[1272,13878,13879],{"class":13643},"            display",[1272,13881,13647],{"class":1278},[1272,13883,13884],{"class":1844}," block",[1272,13886,13666],{"class":1278},[1272,13888,13889,13891,13893,13896,13898],{"class":1274,"line":1825},[1272,13890,13736],{"class":13643},[1272,13892,13647],{"class":1278},[1272,13894,13895],{"class":13650}," 132",[1272,13897,13660],{"class":13659},[1272,13899,13666],{"class":1278},[1272,13901,13902],{"class":1274,"line":1835},[1272,13903,5101],{"class":1278},[1272,13905,13906,13908,13910],{"class":1274,"line":1857},[1272,13907,1782],{"class":1278},[1272,13909,1978],{"class":1282},[1272,13911,1290],{"class":1278},[1272,13913,13914],{"class":1274,"line":1866},[1272,13915,1410],{"emptyLinePlaceholder":352},[1272,13917,13918],{"class":1274,"line":1875},[1272,13919,13920],{"class":8327},"    \u003C!--Projemizde tarih seçici kullanacağız. Bunun için Jquery ve Jqueryui den faydalanacağız.-->\n",[1272,13922,13923],{"class":1274,"line":1880},[1272,13924,1410],{"emptyLinePlaceholder":352},[1272,13926,13927],{"class":1274,"line":1886},[1272,13928,13929],{"class":8327},"    \u003C!--Öncelikle gerekli Jquery ui kütüphanemizi ekliyoruz. Jquery kütüphanemiz Layout sayfamızda\n",[1272,13931,13932],{"class":1274,"line":1892},[1272,13933,13934],{"class":8327},"        zaten tanımlanmış durumdadır.-->\n",[1272,13936,13937,13939,13942,13945,13947,13949,13952,13954,13956,13958,13960,13963,13965],{"class":1274,"line":1898},[1272,13938,1315],{"class":1278},[1272,13940,13941],{"class":1282},"link",[1272,13943,13944],{"class":1286}," rel",[1272,13946,1324],{"class":1278},[1272,13948,1328],{"class":1327},[1272,13950,13951],{"class":1331},"stylesheet",[1272,13953,1328],{"class":1327},[1272,13955,2758],{"class":1286},[1272,13957,1324],{"class":1278},[1272,13959,1328],{"class":1327},[1272,13961,13962],{"class":1331},"//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css",[1272,13964,1328],{"class":1327},[1272,13966,1337],{"class":1278},[1272,13968,13969,13971,13974,13976,13978,13980,13983,13985,13987,13989],{"class":1274,"line":1907},[1272,13970,1315],{"class":1278},[1272,13972,13973],{"class":1282},"script",[1272,13975,5388],{"class":1286},[1272,13977,1324],{"class":1278},[1272,13979,1328],{"class":1327},[1272,13981,13982],{"class":1331},"//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js",[1272,13984,1328],{"class":1327},[1272,13986,1572],{"class":1278},[1272,13988,13973],{"class":1282},[1272,13990,1290],{"class":1278},[1272,13992,13993],{"class":1274,"line":7712},[1272,13994,13995],{"class":8327},"    \u003C!--Kütüphanelerimizin online olduğunu bu yüzden sayfa çalışırken, internet bağlantımızın aktif olması\n",[1272,13997,13998],{"class":1274,"line":7721},[1272,13999,14000],{"class":8327},"        gerektiğini lütfen göz önünde bulundurun.-->\n",[1272,14002,14004],{"class":1274,"line":14003},47,[1272,14005,1410],{"emptyLinePlaceholder":352},[1272,14007,14009],{"class":1274,"line":14008},48,[1272,14010,14011],{"class":8327},"    \u003C!--Tarih seçicimizi burada hazırlayacağız-->\n",[1272,14013,14015,14017,14019,14021,14023,14025,14028,14030],{"class":1274,"line":14014},49,[1272,14016,1315],{"class":1278},[1272,14018,13973],{"class":1282},[1272,14020,1505],{"class":1286},[1272,14022,1324],{"class":1278},[1272,14024,1328],{"class":1327},[1272,14026,14027],{"class":1331},"text/javascript",[1272,14029,1328],{"class":1327},[1272,14031,1290],{"class":1278},[1272,14033,14035,14039,14042,14044,14047,14050,14054,14057],{"class":1274,"line":14034},50,[1272,14036,14038],{"class":14037},"sGLFI","        $",[1272,14040,14041],{"class":1384},"(document)",[1272,14043,9220],{"class":1278},[1272,14045,14046],{"class":14037},"ready",[1272,14048,14049],{"class":1384},"(",[1272,14051,14053],{"class":14052},"sbsja","function",[1272,14055,14056],{"class":1278}," ()",[1272,14058,13638],{"class":1278},[1272,14060,14062,14065,14068,14070,14073,14075,14077,14079,14082,14085],{"class":1274,"line":14061},51,[1272,14063,14064],{"class":14037},"            $",[1272,14066,14049],{"class":14067},"skxfh",[1272,14069,1328],{"class":1327},[1272,14071,14072],{"class":1331},"#textBoxDogum",[1272,14074,1328],{"class":1327},[1272,14076,4213],{"class":14067},[1272,14078,9220],{"class":1278},[1272,14080,14081],{"class":14037},"datepicker",[1272,14083,14084],{"class":14067},"()",[1272,14086,13666],{"class":1278},[1272,14088,14090,14093,14095],{"class":1274,"line":14089},52,[1272,14091,14092],{"class":1278},"        }",[1272,14094,4213],{"class":1384},[1272,14096,13666],{"class":1278},[1272,14098,14100,14102,14104],{"class":1274,"line":14099},53,[1272,14101,1782],{"class":1278},[1272,14103,13973],{"class":1282},[1272,14105,1290],{"class":1278},[1272,14107,14109],{"class":1274,"line":14108},54,[1272,14110,1410],{"emptyLinePlaceholder":352},[1272,14112,14114],{"class":1274,"line":14113},55,[1272,14115,2677],{"class":1384},[1272,14117,14119,14121,14123,14125,14128,14130,14132],{"class":1274,"line":14118},56,[1272,14120,1295],{"class":1278},[1272,14122,2853],{"class":1282},[1272,14124,1381],{"class":1278},[1272,14126,14127],{"class":1384},"Yeni Üyelik",[1272,14129,1388],{"class":1278},[1272,14131,2853],{"class":1282},[1272,14133,1290],{"class":1278},[1272,14135,14137],{"class":1274,"line":14136},57,[1272,14138,1410],{"emptyLinePlaceholder":352},[1272,14140,14142],{"class":1274,"line":14141},58,[1272,14143,14144],{"class":8327},"\u003C!--Html.BeginForm ile yeni bir form oluşturuyoruz ve içeriğine elemanlarımızı ekliyoruz.-->\n",[1272,14146,14148],{"class":1274,"line":14147},59,[1272,14149,14150],{"class":8327},"\u003C!--Formumuzun içinde resim yüklemesi de yapacağımız için, forma enctype = \"multipart/form-data\" özelliği veriyoruz-->\n",[1272,14152,14154],{"class":1274,"line":14153},60,[1272,14155,14156],{"class":8327},"\u003C!--Ayrıca normalde sistemimize doğum gününü kaydetmeyecektik, bu yüzden bir örnek olması adına Jquery ile \n",[1272,14158,14160],{"class":1274,"line":14159},61,[1272,14161,14162],{"class":8327},"    doğum tarihini alarak, yaş kontrolü yapacağız.-->\n",[1272,14164,14166],{"class":1274,"line":14165},62,[1272,14167,14168],{"class":8327},"\u003C!--Formun sunucuya gönderim yöntemini, FormMethod.Post yaptığımıza dikkat edin.\n",[1272,14170,14172],{"class":1274,"line":14171},63,[1272,14173,14174],{"class":8327},"Get ve Post metodları hakkında internette araştırma yapmanızda fayda var.-->\n",[1272,14176,14178],{"class":1274,"line":14177},64,[1272,14179,1410],{"emptyLinePlaceholder":352},[1272,14181,14183],{"class":1274,"line":14182},65,[1272,14184,14185],{"class":1384},"@using (Html.BeginForm(\"YeniUyelik\", \"Uyelik\", FormMethod.Post, new { enctype = \"multipart/form-data\", id = \"\n",[1272,14187,14189],{"class":1274,"line":14188},66,[1272,14190,14191],{"class":1384},"formKapsayici\" }))\n",[1272,14193,14195],{"class":1274,"line":14194},67,[1272,14196,4271],{"class":1384},[1272,14198,14200,14202,14204,14206,14208,14210,14212,14214],{"class":1274,"line":14199},68,[1272,14201,1315],{"class":1278},[1272,14203,1437],{"class":1282},[1272,14205,9488],{"class":1286},[1272,14207,1324],{"class":1278},[1272,14209,1328],{"class":1327},[1272,14211,13709],{"class":1331},[1272,14213,1328],{"class":1327},[1272,14215,1290],{"class":1278},[1272,14217,14219,14222,14224,14226,14229,14231],{"class":1274,"line":14218},69,[1272,14220,14221],{"class":1384},"    @Html.LabelFor(i => Model.Ad)",[1272,14223,1295],{"class":1278},[1272,14225,8467],{"class":1282},[1272,14227,14228],{"class":1278}," />\u003C",[1272,14230,8467],{"class":1282},[1272,14232,1337],{"class":1278},[1272,14234,14236,14239,14241,14243,14245,14247],{"class":1274,"line":14235},70,[1272,14237,14238],{"class":1384},"    @Html.LabelFor(i => Model.Soyad)",[1272,14240,1295],{"class":1278},[1272,14242,8467],{"class":1282},[1272,14244,14228],{"class":1278},[1272,14246,8467],{"class":1282},[1272,14248,1337],{"class":1278},[1272,14250,14252,14255,14257,14259,14261,14263],{"class":1274,"line":14251},71,[1272,14253,14254],{"class":1384},"    @Html.LabelFor(i => Model.EPosta)",[1272,14256,1295],{"class":1278},[1272,14258,8467],{"class":1282},[1272,14260,14228],{"class":1278},[1272,14262,8467],{"class":1282},[1272,14264,1337],{"class":1278},[1272,14266,14268,14271,14273,14275,14277,14279],{"class":1274,"line":14267},72,[1272,14269,14270],{"class":1384},"    @Html.LabelFor(i => Model.Sifre)",[1272,14272,1295],{"class":1278},[1272,14274,8467],{"class":1282},[1272,14276,14228],{"class":1278},[1272,14278,8467],{"class":1282},[1272,14280,1337],{"class":1278},[1272,14282,14284,14287,14289,14291,14293,14295],{"class":1274,"line":14283},73,[1272,14285,14286],{"class":1384},"    @Html.LabelFor(i => Model.WebSite)",[1272,14288,1295],{"class":1278},[1272,14290,8467],{"class":1282},[1272,14292,14228],{"class":1278},[1272,14294,8467],{"class":1282},[1272,14296,1337],{"class":1278},[1272,14298,14300],{"class":1274,"line":14299},74,[1272,14301,1410],{"emptyLinePlaceholder":352},[1272,14303,14305],{"class":1274,"line":14304},75,[1272,14306,14307],{"class":8327},"    \u003C!--Tüm elemanlarda for takısını kullanırken doğum tarihi ve resim yüklemede kullanmadık.\n",[1272,14309,14311],{"class":1274,"line":14310},76,[1272,14312,14313],{"class":8327},"        Çünkü bu iki elaman daha önce hazırladığımız Uye modeline ait değiller.\n",[1272,14315,14317],{"class":1274,"line":14316},77,[1272,14318,14319],{"class":8327},"        Bu yüzden elle ekledik.-->\n",[1272,14321,14323,14326,14328,14330,14332,14334],{"class":1274,"line":14322},78,[1272,14324,14325],{"class":1384},"    @Html.Label(\"Doğum Tarihiniz\")",[1272,14327,1295],{"class":1278},[1272,14329,8467],{"class":1282},[1272,14331,14228],{"class":1278},[1272,14333,8467],{"class":1282},[1272,14335,1337],{"class":1278},[1272,14337,14339,14342,14344,14346,14348,14350],{"class":1274,"line":14338},79,[1272,14340,14341],{"class":1384},"    @Html.Label(\"Profil Resminiz\")",[1272,14343,1295],{"class":1278},[1272,14345,8467],{"class":1282},[1272,14347,14228],{"class":1278},[1272,14349,8467],{"class":1282},[1272,14351,1337],{"class":1278},[1272,14353,14355,14357,14359],{"class":1274,"line":14354},80,[1272,14356,1782],{"class":1278},[1272,14358,1437],{"class":1282},[1272,14360,1290],{"class":1278},[1272,14362,14364,14366,14368,14370,14372,14374,14376,14378],{"class":1274,"line":14363},81,[1272,14365,1315],{"class":1278},[1272,14367,1437],{"class":1282},[1272,14369,9488],{"class":1286},[1272,14371,1324],{"class":1278},[1272,14373,1328],{"class":1327},[1272,14375,13717],{"class":1331},[1272,14377,1328],{"class":1327},[1272,14379,1290],{"class":1278},[1272,14381,14383,14386,14388,14390,14392,14394],{"class":1274,"line":14382},82,[1272,14384,14385],{"class":1384},"        : @Html.TextBoxFor(i => Model.Ad)",[1272,14387,1295],{"class":1278},[1272,14389,8467],{"class":1282},[1272,14391,14228],{"class":1278},[1272,14393,8467],{"class":1282},[1272,14395,1337],{"class":1278},[1272,14397,14399,14402,14404,14406,14408,14410],{"class":1274,"line":14398},83,[1272,14400,14401],{"class":1384},"        : @Html.TextBoxFor(i => Model.Soyad)",[1272,14403,1295],{"class":1278},[1272,14405,8467],{"class":1282},[1272,14407,14228],{"class":1278},[1272,14409,8467],{"class":1282},[1272,14411,1337],{"class":1278},[1272,14413,14415,14418,14420,14422,14424,14426],{"class":1274,"line":14414},84,[1272,14416,14417],{"class":1384},"        : @Html.TextBoxFor(i => Model.EPosta)",[1272,14419,1295],{"class":1278},[1272,14421,8467],{"class":1282},[1272,14423,14228],{"class":1278},[1272,14425,8467],{"class":1282},[1272,14427,1337],{"class":1278},[1272,14429,14431,14434,14436,14438,14440,14442],{"class":1274,"line":14430},85,[1272,14432,14433],{"class":1384},"        : @Html.TextBoxFor(i => Model.Sifre)",[1272,14435,1295],{"class":1278},[1272,14437,8467],{"class":1282},[1272,14439,14228],{"class":1278},[1272,14441,8467],{"class":1282},[1272,14443,1337],{"class":1278},[1272,14445,14447,14450,14452,14454,14456,14458],{"class":1274,"line":14446},86,[1272,14448,14449],{"class":1384},"        : @Html.TextBoxFor(i => Model.WebSite)",[1272,14451,1295],{"class":1278},[1272,14453,8467],{"class":1282},[1272,14455,14228],{"class":1278},[1272,14457,8467],{"class":1282},[1272,14459,1337],{"class":1278},[1272,14461,14463,14466,14468,14470,14472,14474],{"class":1274,"line":14462},87,[1272,14464,14465],{"class":1384},"        : @Html.TextBox(\"textBoxDogum\")",[1272,14467,1295],{"class":1278},[1272,14469,8467],{"class":1282},[1272,14471,14228],{"class":1278},[1272,14473,8467],{"class":1282},[1272,14475,1337],{"class":1278},[1272,14477,14479],{"class":1274,"line":14478},88,[1272,14480,1410],{"emptyLinePlaceholder":352},[1272,14482,14484],{"class":1274,"line":14483},89,[1272,14485,14486],{"class":8327},"        \u003C!--Aşağıdaki input type=\"file\" dosya yüklemeye yarayan, html elementidir.-->\n",[1272,14488,14490,14492,14494,14496,14498,14500,14503,14505,14507,14509,14511,14514,14516,14518,14520,14522,14524,14526,14529,14532,14534,14536,14538],{"class":1274,"line":14489},90,[1272,14491,1457],{"class":1278},[1272,14493,9485],{"class":1282},[1272,14495,1505],{"class":1286},[1272,14497,1324],{"class":1278},[1272,14499,1328],{"class":1327},[1272,14501,14502],{"class":1331},"file",[1272,14504,1328],{"class":1327},[1272,14506,9488],{"class":1286},[1272,14508,1324],{"class":1278},[1272,14510,1328],{"class":1327},[1272,14512,14513],{"class":1331},"inputFile",[1272,14515,1328],{"class":1327},[1272,14517,1347],{"class":1286},[1272,14519,1324],{"class":1278},[1272,14521,1328],{"class":1327},[1272,14523,14502],{"class":1331},[1272,14525,1328],{"class":1327},[1272,14527,14528],{"class":1278}," />",[1272,14530,14531],{"class":1278}," \u003C",[1272,14533,8467],{"class":1282},[1272,14535,14228],{"class":1278},[1272,14537,8467],{"class":1282},[1272,14539,1337],{"class":1278},[1272,14541,14543],{"class":1274,"line":14542},91,[1272,14544,1410],{"emptyLinePlaceholder":352},[1272,14546,14548,14550,14552],{"class":1274,"line":14547},92,[1272,14549,1782],{"class":1278},[1272,14551,1437],{"class":1282},[1272,14553,1290],{"class":1278},[1272,14555,14557,14559,14561,14563,14565,14567,14570,14572,14574,14576,14578,14581,14583,14585,14587,14589,14591,14593],{"class":1274,"line":14556},93,[1272,14558,1315],{"class":1278},[1272,14560,9485],{"class":1282},[1272,14562,1505],{"class":1286},[1272,14564,1324],{"class":1278},[1272,14566,1328],{"class":1327},[1272,14568,14569],{"class":1331},"submit",[1272,14571,1328],{"class":1327},[1272,14573,9520],{"class":1286},[1272,14575,1324],{"class":1278},[1272,14577,1328],{"class":1327},[1272,14579,14580],{"class":1331},"Üye Ol",[1272,14582,1328],{"class":1327},[1272,14584,9488],{"class":1286},[1272,14586,1324],{"class":1278},[1272,14588,1328],{"class":1327},[1272,14590,13850],{"class":1331},[1272,14592,1328],{"class":1327},[1272,14594,1337],{"class":1278},[1272,14596,14598],{"class":1274,"line":14597},94,[1272,14599,1410],{"emptyLinePlaceholder":352},[1272,14601,14603],{"class":1274,"line":14602},95,[1272,14604,14605],{"class":8327},"    \u003C!--Html.ValidationSummary ile formda oluşan geçerlilik hatalarını liste halinde gösterebiliyoruz.-->\n",[1272,14607,14609],{"class":1274,"line":14608},96,[1272,14610,14611],{"class":1384},"    @Html.ValidationSummary()\n",[1272,14613,14615],{"class":1274,"line":14614},97,[1272,14616,1410],{"emptyLinePlaceholder":352},[1272,14618,14620],{"class":1274,"line":14619},98,[1272,14621,2677],{"class":1384},[643,14623,14624],{},"Projemizde üye olma sayfasında, Jquery Ui tabanlı çalışan tarih seçiciyi kullandık. Jquery ve Jquery Ui ile alakalı ayrı\nbir dersde bilgilendirmelerde bulunacağız. Kısaca en popüler, Javascript kütüphanesi diyebiliriz. JavaScript ile ilgili\nişlerimizi oldukça kolaylaştıran şahane bir yapıdır.",[643,14626,14627],{},"Sayfamızı tamamladığımızda, sayfamız aşağıdaki gibi görünecektir.",[643,14629,14630],{},[895,14631],{"alt":14632,"src":14633},"Jquery ui Date Picker","/images/2014/03/2014-03-18+13_22_25.jpg",[655,14635,14636,14639],{},[658,14637,14638],{},"Şimdi ise, View sayfamızdan gelen bilgilerle kayıt yapılacak, Action'a ihtiyacımız var.",[658,14640,14641,14642,14645],{},"Action'u eklemeden önce, projemizin ana dizinine ",[646,14643,14644],{},"Images"," klasörü ekleyelim. Kullanıcıların resimlerini, bu klasör\niçerisine ekleyeceğiz.* Klasörümüzü de ekledikten sonra, kayıt için kullanacağımız Action'larımızı aşağıdaki gibi\nekleyelim.",[1264,14647,14649],{"className":1266,"code":14648,"language":1268,"meta":346,"style":346},"//Formumuzun geliş metodu Post\n//Dikkat ederseniz aynı isimli, iki adet Action var.\n//Üsttekinin metodu boş olduğu için Get oluyor.\n//Alttakinin üzerinde [HttpPost] olduğu için metodu Post oluyor.\n//Burada eğer sayfa içinden bir form gönderimi yapılmışsa, Post olan Action çağrılır.\n//Normal adres üzerinden sayfaya talepte bulunulursa, Get metodlu olan çağrılır.\n[HttpPost]\npublic ActionResult YeniUyelik(Uye model, string textBoxDogum, HttpPostedFileBase file)\n{\n    if (!ModelState.IsValid)\n    {\n        return View();\n    }\n    if (String.IsNullOrEmpty(textBoxDogum))\n    {\n        //Burada Uye modelimizde olmayan bir elemanla çalıştığımız için, kendimiz elle hata\n        //mesajını, sayfadaki hata listesine (@Html.ValidationSummary()) ekliyoruz.\n        ModelState.AddModelError(\"textBoxDogum\", \"Doğum tarihi boş geçilemez\");\n    \n        //Hata oluşması halinde sayfayı tekrar yüklüyoruz.\n        //Böylelikle otomatik olarak hatalar sayfada gösteriliyor.\n        return View();\n    }\n        int yil = int.Parse(textBoxDogum.Substring(6));\n        if (yil > 2002)\n        {\n            ModelState.AddModelError(\"textBoxDogum\", \"Yaşınız 12 den küçük olamaz\");\n            return View();\n        }\n        Uye uye = new Uye();\n        if (file != null)\n        {\n            //Sunucuya dosya kaydedilirken, sunucunun dosya sistemini, yolunu bilemeyeceğimiz için\n            //Server.MapPath() ile sitemizin ana dizinine gelmiş oluruz. Devamında da sitemizdeki\n            //yolu tanımlarız.\n            file.SaveAs(Server.MapPath(\"~/Images/\") + file.FileName);\n            uye.ResimYol = \"/Images/\" + file.FileName;\n        }\n        uye.Ad = model.Ad;\n        uye.EPosta = model.EPosta;\n        uye.Soyad = model.Soyad;\n        uye.UyeOlmaTarih = DateTime.Now;\n        uye.WebSite = model.WebSite;\n        uye.Sifre = model.Sifre;\n        using (MvcProjesiContext db = new MvcProjesiContext())\n        {\n            db.Uyes.Add(uye);\n            db.SaveChanges();\n\n            //İşlemimiz başarıyla biterse, başarılı olduğuna dair bir sayfaya yönlendiriyoruz.\n            return RedirectToAction(\"UyelikBasarili\");\n        }\n}\n\npublic ActionResult UyelikBasarili()\n{\n    return View();\n}\n",[799,14650,14651,14656,14661,14666,14671,14676,14681,14686,14691,14695,14700,14704,14709,14713,14718,14722,14727,14732,14737,14741,14746,14751,14755,14759,14764,14769,14773,14778,14783,14787,14792,14797,14801,14806,14811,14816,14821,14826,14830,14835,14840,14845,14850,14855,14860,14865,14869,14874,14879,14883,14888,14893,14897,14901,14905,14910,14914,14919],{"__ignoreMap":346},[1272,14652,14653],{"class":1274,"line":1275},[1272,14654,14655],{"class":1384},"//Formumuzun geliş metodu Post\n",[1272,14657,14658],{"class":1274,"line":347},[1272,14659,14660],{"class":1384},"//Dikkat ederseniz aynı isimli, iki adet Action var.\n",[1272,14662,14663],{"class":1274,"line":1302},[1272,14664,14665],{"class":1384},"//Üsttekinin metodu boş olduğu için Get oluyor.\n",[1272,14667,14668],{"class":1274,"line":1312},[1272,14669,14670],{"class":1384},"//Alttakinin üzerinde [HttpPost] olduğu için metodu Post oluyor.\n",[1272,14672,14673],{"class":1274,"line":1340},[1272,14674,14675],{"class":1384},"//Burada eğer sayfa içinden bir form gönderimi yapılmışsa, Post olan Action çağrılır.\n",[1272,14677,14678],{"class":1274,"line":1373},[1272,14679,14680],{"class":1384},"//Normal adres üzerinden sayfaya talepte bulunulursa, Get metodlu olan çağrılır.\n",[1272,14682,14683],{"class":1274,"line":1395},[1272,14684,14685],{"class":1384},"[HttpPost]\n",[1272,14687,14688],{"class":1274,"line":1401},[1272,14689,14690],{"class":1384},"public ActionResult YeniUyelik(Uye model, string textBoxDogum, HttpPostedFileBase file)\n",[1272,14692,14693],{"class":1274,"line":1407},[1272,14694,4271],{"class":1384},[1272,14696,14697],{"class":1274,"line":1413},[1272,14698,14699],{"class":1384},"    if (!ModelState.IsValid)\n",[1272,14701,14702],{"class":1274,"line":1422},[1272,14703,4513],{"class":1384},[1272,14705,14706],{"class":1274,"line":1432},[1272,14707,14708],{"class":1384},"        return View();\n",[1272,14710,14711],{"class":1274,"line":1454},[1272,14712,4534],{"class":1384},[1272,14714,14715],{"class":1274,"line":1475},[1272,14716,14717],{"class":1384},"    if (String.IsNullOrEmpty(textBoxDogum))\n",[1272,14719,14720],{"class":1274,"line":1496},[1272,14721,4513],{"class":1384},[1272,14723,14724],{"class":1274,"line":1553},[1272,14725,14726],{"class":1384},"        //Burada Uye modelimizde olmayan bir elemanla çalıştığımız için, kendimiz elle hata\n",[1272,14728,14729],{"class":1274,"line":1579},[1272,14730,14731],{"class":1384},"        //mesajını, sayfadaki hata listesine (@Html.ValidationSummary()) ekliyoruz.\n",[1272,14733,14734],{"class":1274,"line":1602},[1272,14735,14736],{"class":1384},"        ModelState.AddModelError(\"textBoxDogum\", \"Doğum tarihi boş geçilemez\");\n",[1272,14738,14739],{"class":1274,"line":1625},[1272,14740,5375],{"class":1384},[1272,14742,14743],{"class":1274,"line":1635},[1272,14744,14745],{"class":1384},"        //Hata oluşması halinde sayfayı tekrar yüklüyoruz.\n",[1272,14747,14748],{"class":1274,"line":1641},[1272,14749,14750],{"class":1384},"        //Böylelikle otomatik olarak hatalar sayfada gösteriliyor.\n",[1272,14752,14753],{"class":1274,"line":1651},[1272,14754,14708],{"class":1384},[1272,14756,14757],{"class":1274,"line":1671},[1272,14758,4534],{"class":1384},[1272,14760,14761],{"class":1274,"line":1691},[1272,14762,14763],{"class":1384},"        int yil = int.Parse(textBoxDogum.Substring(6));\n",[1272,14765,14766],{"class":1274,"line":1709},[1272,14767,14768],{"class":1384},"        if (yil > 2002)\n",[1272,14770,14771],{"class":1274,"line":1727},[1272,14772,5079],{"class":1384},[1272,14774,14775],{"class":1274,"line":1745},[1272,14776,14777],{"class":1384},"            ModelState.AddModelError(\"textBoxDogum\", \"Yaşınız 12 den küçük olamaz\");\n",[1272,14779,14780],{"class":1274,"line":1754},[1272,14781,14782],{"class":1384},"            return View();\n",[1272,14784,14785],{"class":1274,"line":1760},[1272,14786,5101],{"class":1384},[1272,14788,14789],{"class":1274,"line":1769},[1272,14790,14791],{"class":1384},"        Uye uye = new Uye();\n",[1272,14793,14794],{"class":1274,"line":1779},[1272,14795,14796],{"class":1384},"        if (file != null)\n",[1272,14798,14799],{"class":1274,"line":1789},[1272,14800,5079],{"class":1384},[1272,14802,14803],{"class":1274,"line":1809},[1272,14804,14805],{"class":1384},"            //Sunucuya dosya kaydedilirken, sunucunun dosya sistemini, yolunu bilemeyeceğimiz için\n",[1272,14807,14808],{"class":1274,"line":1815},[1272,14809,14810],{"class":1384},"            //Server.MapPath() ile sitemizin ana dizinine gelmiş oluruz. Devamında da sitemizdeki\n",[1272,14812,14813],{"class":1274,"line":1825},[1272,14814,14815],{"class":1384},"            //yolu tanımlarız.\n",[1272,14817,14818],{"class":1274,"line":1835},[1272,14819,14820],{"class":1384},"            file.SaveAs(Server.MapPath(\"~/Images/\") + file.FileName);\n",[1272,14822,14823],{"class":1274,"line":1857},[1272,14824,14825],{"class":1384},"            uye.ResimYol = \"/Images/\" + file.FileName;\n",[1272,14827,14828],{"class":1274,"line":1866},[1272,14829,5101],{"class":1384},[1272,14831,14832],{"class":1274,"line":1875},[1272,14833,14834],{"class":1384},"        uye.Ad = model.Ad;\n",[1272,14836,14837],{"class":1274,"line":1880},[1272,14838,14839],{"class":1384},"        uye.EPosta = model.EPosta;\n",[1272,14841,14842],{"class":1274,"line":1886},[1272,14843,14844],{"class":1384},"        uye.Soyad = model.Soyad;\n",[1272,14846,14847],{"class":1274,"line":1892},[1272,14848,14849],{"class":1384},"        uye.UyeOlmaTarih = DateTime.Now;\n",[1272,14851,14852],{"class":1274,"line":1898},[1272,14853,14854],{"class":1384},"        uye.WebSite = model.WebSite;\n",[1272,14856,14857],{"class":1274,"line":1907},[1272,14858,14859],{"class":1384},"        uye.Sifre = model.Sifre;\n",[1272,14861,14862],{"class":1274,"line":7712},[1272,14863,14864],{"class":1384},"        using (MvcProjesiContext db = new MvcProjesiContext())\n",[1272,14866,14867],{"class":1274,"line":7721},[1272,14868,5079],{"class":1384},[1272,14870,14871],{"class":1274,"line":14003},[1272,14872,14873],{"class":1384},"            db.Uyes.Add(uye);\n",[1272,14875,14876],{"class":1274,"line":14008},[1272,14877,14878],{"class":1384},"            db.SaveChanges();\n",[1272,14880,14881],{"class":1274,"line":14014},[1272,14882,1410],{"emptyLinePlaceholder":352},[1272,14884,14885],{"class":1274,"line":14034},[1272,14886,14887],{"class":1384},"            //İşlemimiz başarıyla biterse, başarılı olduğuna dair bir sayfaya yönlendiriyoruz.\n",[1272,14889,14890],{"class":1274,"line":14061},[1272,14891,14892],{"class":1384},"            return RedirectToAction(\"UyelikBasarili\");\n",[1272,14894,14895],{"class":1274,"line":14089},[1272,14896,5101],{"class":1384},[1272,14898,14899],{"class":1274,"line":14099},[1272,14900,2677],{"class":1384},[1272,14902,14903],{"class":1274,"line":14108},[1272,14904,1410],{"emptyLinePlaceholder":352},[1272,14906,14907],{"class":1274,"line":14113},[1272,14908,14909],{"class":1384},"public ActionResult UyelikBasarili()\n",[1272,14911,14912],{"class":1274,"line":14118},[1272,14913,4271],{"class":1384},[1272,14915,14916],{"class":1274,"line":14136},[1272,14917,14918],{"class":1384},"    return View();\n",[1272,14920,14921],{"class":1274,"line":14141},[1272,14922,2677],{"class":1384},[655,14924,14925,14937,14943],{},[658,14926,14927,14928,14930,14931,14933,14934,14936],{},"İşlemlerimizi yapıp, projeyi çalıştırıp, ardından da ",[646,14929,14127],{}," linkine tıklarsak hata sayfasıyla karşılaşacağız.\nBunun sebebi ise, kullandığımız linkteki, Controller'in ",[646,14932,4822],{}," olması. Biz onu, ",[646,14935,13549],{}," ile değiştireceğiz.",[658,14938,14939,14940,14942],{},"Bunun için, ",[646,14941,6449],{}," sayfamızı açalım.",[658,14944,14945],{},"Aşağıdaki iki satırı,",[1264,14947,14950],{"className":14948,"code":14949,"language":2600},[2598],"\u003Cli>@Html.ActionLink(\"Üye Girişi\", \"UyeGiris\", \"Home\")\u003C/li>\n\u003Cli>@Html.ActionLink(\"Yeni Üyelik\", \"YeniUyelik\", \"Home\")\u003C/li>\n",[799,14951,14949],{"__ignoreMap":346},[643,14953,14954],{},"aşağıdaki iki satır ile değiştirelim.",[1264,14956,14959],{"className":14957,"code":14958,"language":2600},[2598]," \u003Cli>@Html.ActionLink(\"Üye Girişi\", \"UyeGiris\", \"Uyelik\")\u003C/li>\n\u003Cli>@Html.ActionLink(\"Yeni Üyelik\", \"YeniUyelik\", \"Uyelik\")\u003C/li>\n",[799,14960,14958],{"__ignoreMap":346},[4105,14962,14963,14968],{},[643,14964,14965],{},[646,14966,14967],{},"27.04.2014 tarihli ekleme",[643,14969,14970,14973],{},[646,14971,14972],{},"UyelikBasarili.cshtml"," sayfasını makale içerisinde eklemediğimi bir arkadaşın uyarısıyla farkettim. Siz bu\neklemeyi, kolaylıkla yapabilirsiniz. İçeriğini istediğiniz gibi doldurabilirsiniz. Ben içeriğe makale eklemiştim.",[655,14975,14976,14979,14984],{},[658,14977,14978],{},"İşlemlerimizi yaptıktan sonra, projemizi çalıştıralım.",[658,14980,14981,14983],{},[646,14982,14127],{}," sayfamıza girelim ve üye olalım.",[658,14985,14986],{},"Üyeliğimiz başarılı olduğunda, aşağıdaki ekranla karşılaşacağız.",[643,14988,14989],{},[895,14990],{"alt":14991,"src":14992},"Üyelik Başarılı ekranı","/images/2014/03/2014-03-18+13_53_38.jpg",[4105,14994,14995],{},[643,14996,14997],{},"Burada dikkat edilmesi gereken nokta, kullanıcının şifresini direkt veritabanına kaydettik. Normal projelerde bu\nyöntem asla kullanılmaz. Şifre önce, SHA1 ya da MD5 gibi yöntemlerle hashlenir ve hash olarak kaydedilir. Ayrı bir konu\nolarak Microsoft'un sunduğu Authentication yapısını inceleyeceğiz. Bu yapı bu tarz işlemleri otomatik olarak\nhalletmektedir.",[643,14999,15000],{},"Sonraki dersimizde, üyelik işlemlerine devam ediyor olacağız.",[643,15002,11830,15003,11834],{},[771,15004,5939],{"href":15005},"/images/proje-dosyalar/asp-net-mvc-yeni-uye-kaydi-ve-dosya-yukleme-uyelik-sistemi-1-asp-net-mvc-yazi-dizisi-20/MvcProjesi.zip",[643,15007,1976],{},[1978,15009,15010],{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .stp6e, html code.shiki .stp6e{--shiki-light:#39ADB5;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sPLZw, html code.shiki .sPLZw{--shiki-light:#F76D47;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .soE4H, html code.shiki .soE4H{--shiki-light:#8796B0;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sw1J6, html code.shiki .sw1J6{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s83vy, html code.shiki .s83vy{--shiki-light:#E2931D;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":346,"searchDepth":347,"depth":347,"links":15012},[],"2014/03/2014-03-18+13_22_25.jpg","2014-03-18T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Html Helper'lerin For Takılı Kullanım Örnekleri 2 (Asp.Net Mvc Yazı Dizisi – 19)",{},{"title":91,"description":15015},"qWC4L8ERN_3FcSWjEEU2XOEp5kg21XoMsBmG6nSyuGQ",{"id":15020,"title":152,"body":15021,"coverImage":15172,"createDate":15173,"description":861,"extension":350,"meta":15174,"navigation":352,"path":153,"seo":15175,"stem":154,"__hash__":15176},"posts/dersler/three-js-ile-webgl/webgl-nedir-three-js-ile-webgl-1.md",{"type":343,"value":15022,"toc":15170},[15023,15026,15030,15037,15044,15047,15061,15068,15071,15076,15093,15096,15099,15102,15105,15108,15113,15124,15129,15143,15146,15151,15159,15162,15165,15168],[639,15024,152],{"id":15025},"webgl-nedir-threejs-ile-webgl",[643,15027,15028],{},[646,15029,861],{},[643,15031,15032,15033,15036],{},"Uzun bir süredir 3d programlamaya merak duymaktaydım. Ancak bu merakım hep uzaktan hayranlık duyma şeklindeydi. Bunun ile alakalı olarak bir dönem ",[646,15034,15035],{},"XNA"," ile programlamayı düşünsemde, yanına hiç bir şekilde yanaşma imkanım olmadı.",[643,15038,15039,15040,15043],{},"Bu süre zarfında web tabanlı 3d programlamada da gelişmeler oldu. Özellikle ",[646,15041,15042],{},"Unity"," grafik motorunun şu an en yaygın kullanıma sahip ve en kaliteli web grafik motoru olduğunu düşünüyorum.",[643,15045,15046],{},"WebGL'ye gelecek olursak eğer,",[643,15048,15049,15052,15053,15056,15057,15060],{},[646,15050,15051],{},"WebGL:"," Tarayıcıya hiç bir eklenti kurmadan, 3d çizimlerin, tarayıcı içerisinde oluşturulmasını sağlayan, ",[646,15054,15055],{},"OpenGL"," temelli bir programlama arayüzüdür. ",[646,15058,15059],{},"Html5","'in en önemli getirilerinden biridir.",[643,15062,15063,15064,15067],{},"WebGL'in geliştirilmesi, 100'dan fazla teknoloji şirketinin bir araya gelmesiyle (Intel,Amd,Nvidia,Apple,Google gibi üyeler bulunmaktadır), oluşturulmuş, kar amacı gütmeyen bir kuruluş olan, ",[646,15065,15066],{},"Khrono Group"," tarafından sürdürülmektedir.",[643,15069,15070],{},"WebGL sertifikasyonu 2011 Mart'ında tamamlanmıştır. Bu tarihten sonra, tarayıcılar tarafından yavaş yavaş desteklenmeye başlamıştır. Tarayıcıların destekleme bilgileri ise aşağıdaki gibidir; ",[643,15072,15073],{},[646,15074,15075],{},"Tarayıcı Destek Durumu",[655,15077,15078,15081,15084,15087,15090],{},[658,15079,15080],{},"Google Chrome 9 ve üzeri,",[658,15082,15083],{},"Mozilla Firefox 4 ve üzeri,",[658,15085,15086],{},"Apple Safari 5.1 ve üzeri,",[658,15088,15089],{},"Opera 11 ve üzeri,",[658,15091,15092],{},"Internet Explorer 11 ve üzeri",[643,15094,15095],{},"Not : Bu noktada listelenenler, masaüstü tarayıcılardır. Mobil tarayıcılarda geçiş ise halen daha sürmektedir.",[643,15097,15098],{},"WebGL'yi tanımlarken, OpenGL tabanlı olduğundan bahsetmiştik.",[643,15100,15101],{},"OpenGL oyun programlamada, DirectX'in en büyük rakibidir. Özellikle Windows dışı platformlarda, OpenGL rakipsizdir. ",[643,15103,15104],{},"OpenGL büyük bir api olduğundan dolayı, mobil cihazlara kırpılmış bir sürüm olan OpenGL Es, sunulmuştur. OpenGL Es özellikle Android ile inanılmaz yaygınlaşmış ve Android 4.3 ile OpenGL Es'in 3.0 sürümüne destek verilmiştir.",[643,15106,15107],{},"Bu fikirden yola çıkarak WebGL 1.0, OpenGL Es 2.0'ın altyapısını kullanmaktadır. Böylelikle OpenGL Es'teki standartlar WebGL'e geçmiş olmaktadır. WebGL 2.0'ın çalışmaları başlamış olup, OpenGL Es 3.0'ın altyapısına sahip olması planmaktadır.",[643,15109,15110],{},[646,15111,15112],{},"Avantajları",[655,15114,15115,15118,15121],{},[658,15116,15117],{},"Tarayıcıya eklenti kurma zorunluluğu getirmemesi,",[658,15119,15120],{},"Tüm tarayıcılarda çalışıyor olması (belirli sürümlerden itibaren),",[658,15122,15123],{},"JavaScript tabanlı olduğundan dolayı, site ile etkileşim içerisinde olabilmesi",[643,15125,15126],{},[646,15127,15128],{},"Dezavantajları",[655,15130,15131,15134,15137,15140],{},[658,15132,15133],{},"Tarayıcılarda çalışma noktasında, genellikle güncel tarayıcıların zorunluluk olması (özellikle IE),",[658,15135,15136],{},"Render işlemlerinde (sayfadaki görsellerin oluşturulması), kod derlenmemiş olduğundan, yerel uygulamalara göre, çok daha yavaş kalması,",[658,15138,15139],{},"Halen daha tarayıcılar tarafından tam desteklenmemesi (bazı tarayıcılar da bazı işlevler çalışmıyor),",[658,15141,15142],{},"Flash tarzı bir editor desteğine sahip olmaması",[643,15144,15145],{},"Görüleceği üzere, henüz daha katedilmesi gereken yollar var. Ancak ileriye dönük çok heyecan verici bir dünyadan bahsediyoruz. ",[643,15147,15148],{},[646,15149,15150],{},"En güzel WebGL örneği",[655,15152,15153],{},[658,15154,15155],{},[771,15156,15157],{"href":15157,"rel":15158},"http://carvisualizer.plus360degrees.com/threejs/",[878],[643,15160,15161],{},"Gerçekten oldukça etkileyici öyle değil mi?",[643,15163,15164],{},"Sonuç olarak WebGL hakkında kısaca teorik bilgiler vermiş olduk.",[643,15166,15167],{},"Sonraki dersimizde, temel 3d terimlerine değiniyor olacağız.",[643,15169,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":15171},[],"2014/04/webgl-html5.png","2014-04-04T00:00:00.000Z",{},{"title":152,"description":861},"n9pZmwZ2vOd10OrSxy0QXaI_GC2vBxeRjpOnEO0oo_o",{"id":15178,"title":15,"body":15179,"coverImage":15946,"createDate":15947,"description":15948,"extension":350,"meta":15949,"navigation":352,"path":16,"seo":15950,"stem":17,"__hash__":15951},"posts/dersler/asp-net-mvc/asp-net-mvc-ajax-ile-uye-girisi-uyelik-sistemi-2-asp-net-mvc-yazi-dizisi-21.md",{"type":343,"value":15180,"toc":15944},[15181,15184,15192,15196,15199,15208,15223,15228,15244,15250,15253,15263,15269,15276,15282,15295,15301,15307,15313,15319,15322,15327,15332,15343,15349,15354,15360,15367,15374,15380,15382,15391,15903,15912,15918,15921,15924,15927,15930,15933,15939,15941],[639,15182,15],{"id":15183},"aspnet-mvc-ajax-ile-üye-girişi-üyelik-sistemi-2-aspnet-mvc-yazı-dizisi-21",[643,15185,15186,853,15188],{},[646,15187,852],{},[771,15189,15190],{"href":92},[646,15191,91],{},[643,15193,15194],{},[646,15195,861],{},[643,15197,15198],{},"Geliştirmekte olduğumuz blog projesinde, bir önceki derste yeni üyelik ve resim yükleme işlemlerini incelemiştik.",[4105,15200,15201],{},[643,15202,15203,15204,15207],{},"Önceki yazımızda, bir takım değişiklikler ve eklemeler yaptım. Eğer makaleyi ",[646,15205,15206],{},"06.04.2014"," tarihinden önce\nokuduysanız, makaleyi tekrar incelemenizi ve projenin son halini tekrar indirmenizi özellikle tavsiye ediyorum.",[643,15209,15210,15211,15214,15215,15218,15219,15222],{},"Bugünkü dersimizde ise, üye girişi işlemlerini yapıyor olacağız. Bu sistem bize aynı zamanda yetkilendirmeyi de sağlıyor\nolacak. Burada önemli olan nokta, üyelik için kendi yapımızı kullanıyor olmamız. Microsoft'un ",[646,15212,15213],{},"Asp.Net Membership",", *\n",[5583,15216,15217],{},"Simple Membership","*(Mvc 4) gibi yapıları bulunmakta ve işlerini çok iyi bir şekilde yapmaktadır. Ancak istedim ki, işin\nmantığını daha iyi anlayalım. Yoksa ",[646,15220,15221],{},"Membership"," ile alakalı yığınla makale internette bulunabilir.",[643,15224,15225],{},[646,15226,15227],{},"Üye Girişi",[655,15229,15230,15234],{},[658,15231,13382,15232,4213],{},[771,15233,8264],{"href":15005},[658,15235,15236,15239,15240,15243],{},[646,15237,15238],{},"Controllers>UyelikController"," dosyamızı açalım ve içerisine, aşağıdaki üye giriş sayfasını oluşturacağımız, *\n",[5583,15241,15242],{},"UyeGiris","* Action'umuzu ekleyelim.",[1264,15245,15248],{"className":15246,"code":15247,"language":2600},[2598],"public ActionResult UyeGiris()\n{\n    return View();\n}\n",[799,15249,15247],{"__ignoreMap":346},[643,15251,15252],{},"Görüldüğü üzere, geriye View'imizi döndüren, Action'umuzu ekledik.",[655,15254,15255],{},[658,15256,15257,15258,15260,15261,12840],{},"Şimdi ",[646,15259,15242],{}," Action'umuza sağ tıklayarak ",[646,15262,1186],{},[643,15264,15265],{},[895,15266],{"alt":15267,"src":15268},"UyeGiris View'i ekleme","/images/2014/04/2014-04-02+12_34_54.jpg",[655,15270,15271],{},[658,15272,15273,15275],{},[646,15274,15242],{}," View'imizin içeriğinde, Asp.Net Mvc'nin sunduğu Ajax teknolojisini kullanacağız.",[643,15277,15278,15281],{},[646,15279,15280],{},"Ajax :"," Ajax teknolojisi, Html, Javascript işlemlerinin asenkron olarak yapılması demektir. Yani bir şey ile ilgili\nbir talep sunucuya gönderildiğinde, sunucu gerekli cevabı verir. Bu cevap javascript tarafından sayfanın her hangi bir\nyerine yansıtılır. Bu noktada sayfanın tamamı, sunucuya gidip gelmez ve sayfa yenilenmez. Böylelikle hem çok ciddi\nperformans kazancımız olur, hemde site yerel bir uygulama gibi görüntülenir. Yeni web dünyasının vazgeçilmezidir.",[655,15283,15284],{},[658,15285,15286,15287,15290,15291,15294],{},"Bunun için öncelikle, projemize, ",[646,15288,15289],{},"Microsoft jQuery Unobtrusive Ajax"," paketini ",[646,15292,15293],{},"Nuget Package Manager"," aracılığıyla\nyüklememiz gerekmektedir. Yükleme işlemi için aşağıdaki resimleri takip edin.",[643,15296,15297],{},[895,15298],{"alt":15299,"src":15300},"Nuget Package Managere giriş","/images/2014/04/2014-04-02+12_34_55.jpg",[643,15302,15303],{},[895,15304],{"alt":15305,"src":15306},"Ajax paket yükleme 1","/images/2014/04/2014-04-02+13_08_10.jpg",[643,15308,15309],{},[895,15310],{"alt":15311,"src":15312},"Ajax paket yükleme 2","/images/2014/04/2014-04-02+13_08_19.jpg",[643,15314,15315],{},[895,15316],{"alt":15317,"src":15318},"Ajax paket yükleme 3","/images/2014/04/2014-04-02+13_08_36.jpg",[643,15320,15321],{},"Resimleri takip ederek kurulumu yaptık.",[655,15323,15324],{},[658,15325,15326],{},"Şimdi de, yeni eklediğimiz, javascript dosyasını sisteme tanıtmamız lazım.",[643,15328,15329],{},[646,15330,15331],{},"BundleConfig",[655,15333,15334,15340],{},[658,15335,15336,15339],{},[646,15337,15338],{},"App_Start>BundleConfig.cs"," dosyasını açalım. Bu dosyanın içerisinde, sistemde kullanmış olduğumuz, script ve css\ndosyalarını sisteme entegre ediyoruz. Bu dosya ile entegre etmenin avantajı ise, sistemin tüm burada ekli dosyaları\nsıkıştırırak tek dosya haline getiriyor olması. Böylelikle hem performans kazancımız oluyor, hem de dosyadaki\nkodlarımızın dışarıdan okunaklığı azaldığından, güvenlikte artış meydana geliyor. Son bir avantajımızda, dosyada bir\ndeğişiklik olduğunda, kendiliğinden, isimde ufak değişikler yaparak tarayıcı önbelleğini temizlemeye gerek kalmaksızın\ndosyamızı güncelliyor olması.",[658,15341,15342],{},"Script dosyası (javascript vs.) eklerken;",[1264,15344,15347],{"className":15345,"code":15346,"language":2600},[2598],"bundles.Add(new ScriptBundle(\"dosya sıkıştırılıp, gösterilecek yer\").Include(\"asıl dosyanın yolu\"));\n",[799,15348,15346],{"__ignoreMap":346},[655,15350,15351],{},[658,15352,15353],{},"Style dosyası (css vs.) eklerken ise;",[1264,15355,15358],{"className":15356,"code":15357,"language":2600},[2598],"bundles.Add(new StyleBundle(\"dosya sıkıştırıp, gösterilecek yer\").Include(\"asıl dosyanın yolu\"));\n",[799,15359,15357],{"__ignoreMap":346},[643,15361,15362,15363,15366],{},"şeklinde dosyalarımızı ekleyebiliyoruz. Şimdi",[646,15364,15365],{},"jquery.unobtrusive-ajax"," dosyamızı ekleyebiliriz.",[655,15368,15369],{},[658,15370,15371,15373],{},[646,15372,15331],{}," dosyamıza aşağıdaki kodları ekleyelim.",[1264,15375,15378],{"className":15376,"code":15377,"language":2600},[2598],"//Mvc Ajax işlemleri için aşağıdaki dosyamızı ekledik.\nbundles.Add(new ScriptBundle(\"~/bundles/jquery-unobtrusive\").Include(\n\"~/Scripts/jquery.unobtrusive-ajax.js\"));\n\n* Dosyamızı kaydettikten sonra, bu dosyamızın, tüm View sayfaları tarafından kullanılmasını sağlamak amacıyla, **Views>\n  Shared>_Layout.cshtml** dosyamızı açalım.\n\n@Scripts.Render(\"~/bundles/jquery\")\n\nsatırından sonraki satıra,\n\n \u003C!--Ajax işlemleri için gereken dosyamızı burada tüm sayfalarda kullanılacak şekilde tanıttık.\n        Ayrıca dosyanın orijinal yolunu değil, bizim belirlediğimiz ~/bundles/jquery-unobtrusive\n        yolunun kullanıldığına dikkat edin.-->\n\n@Scripts.Render(\"~/bundles/jquery-unobtrusive\")\n",[799,15379,15377],{"__ignoreMap":346},[643,15381,2605],{},[655,15383,15384],{},[658,15385,15386,15387,15390],{},"Artık üye giriş sayfamızı hazırlayabiliriz. Bunun için, ",[646,15388,15389],{},"Views>Uyelik>UyeGiris.cshtml"," sayfasını açalım ve içeriğini\naşağıdaki gibi düzenleyelim.",[1264,15392,15394],{"className":1266,"code":15393,"language":1268,"meta":346,"style":346},"\u003C!--Her hangi bir model kullanmadık burada doğrulamayı kendimiz elle yapacağız-->\n@{\n    ViewBag.Title = \"Üye Girişi\";\n}\n\u003C!--Layout sayfamızda sayfanın en alt kısmında scripts adlı bir sectionumuz tanımlanmıştı.\n    Script ve css kodlarımızı scripts sectionuna koyacağız.\n    Detaylı bilgi önceki yazılarımızda vardır.-->\n    @section scripts{\n    \u003Cstyle type=\"text/css\">\n        #formKapsayici {\n        box-shadow: 0 0 5px gray;\n        padding: 25px;\n        height: 500px;\n    }\n\n        #divSol, #divSag {\n            float: left;\n            margin-left: 25px;\n        }\n\n            #divSol *, #divSag * {\n                margin-top: 15px;\n            }\n\n        input[type=\"text\"] {\n            width: 250px;\n        }\n\n        #btnUyeOl {\n            /*clear komutu ile önceki divlerin sola yaslanarak sıralanmasında, butonun bu yaslanmaya\n            uymayıp alt satıra inmesini sağlıyoruz*/\n            clear: both;\n            display: block;\n            margin-left: 132px;\n        }\n\n        #divSonuc {\n            color: red;\n        }\n    \u003C/style>\n\n}\n\u003Ch2>Üye Girişi\u003C/h2>\n@using (Ajax.BeginForm(\"UyeGirisi\", \"Uyelik\", new AjaxOptions { HttpMethod = \"POST\", UpdateTargetId = \"divSonuc\" },\nnew { id = \"formKapsayici\" }))\n    {\n    \u003Cdiv id=\"divSol\">\n        @Html.Label(\"E-Posta Adresiniz\")\u003Cbr />\n        @Html.Label(\"Şifreniz\")\n    \u003C/div>\n    \u003Cdiv id=\"divSag\">\n        : @Html.TextBox(\"txtPosta\")\u003Cbr />\n        : @Html.Password(\"pswSifre\")\n    \u003C/div>\n    \u003Cinput type=\"submit\" value=\"Üye Ol\" id=\"btnUyeOl\" />\n    \u003Cdiv id=\"divSonuc\">\u003C/div>\n    }\n",[799,15395,15396,15401,15405,15410,15414,15418,15422,15426,15430,15448,15456,15474,15486,15498,15502,15506,15520,15530,15542,15546,15550,15568,15580,15584,15588,15608,15620,15624,15628,15636,15640,15644,15654,15664,15676,15680,15684,15693,15705,15709,15717,15721,15725,15741,15746,15751,15755,15773,15784,15789,15797,15815,15826,15831,15839,15877,15899],{"__ignoreMap":346},[1272,15397,15398],{"class":1274,"line":1275},[1272,15399,15400],{"class":8327},"\u003C!--Her hangi bir model kullanmadık burada doğrulamayı kendimiz elle yapacağız-->\n",[1272,15402,15403],{"class":1274,"line":347},[1272,15404,2667],{"class":1384},[1272,15406,15407],{"class":1274,"line":1302},[1272,15408,15409],{"class":1384},"    ViewBag.Title = \"Üye Girişi\";\n",[1272,15411,15412],{"class":1274,"line":1312},[1272,15413,2677],{"class":1384},[1272,15415,15416],{"class":1274,"line":1340},[1272,15417,13591],{"class":8327},[1272,15419,15420],{"class":1274,"line":1373},[1272,15421,13596],{"class":8327},[1272,15423,15424],{"class":1274,"line":1395},[1272,15425,13601],{"class":8327},[1272,15427,15428],{"class":1274,"line":1401},[1272,15429,13606],{"class":1384},[1272,15431,15432,15434,15436,15438,15440,15442,15444,15446],{"class":1274,"line":1407},[1272,15433,1315],{"class":1278},[1272,15435,1978],{"class":1282},[1272,15437,1505],{"class":1286},[1272,15439,1324],{"class":1278},[1272,15441,1328],{"class":1327},[1272,15443,13621],{"class":1331},[1272,15445,1328],{"class":1327},[1272,15447,1290],{"class":1278},[1272,15449,15450,15452,15454],{"class":1274,"line":1413},[1272,15451,13631],{"class":13630},[1272,15453,13635],{"class":13634},[1272,15455,13638],{"class":1278},[1272,15457,15458,15460,15462,15464,15466,15468,15470,15472],{"class":1274,"line":1422},[1272,15459,13644],{"class":13643},[1272,15461,13647],{"class":1278},[1272,15463,13651],{"class":13650},[1272,15465,13651],{"class":13650},[1272,15467,13656],{"class":13650},[1272,15469,13660],{"class":13659},[1272,15471,13663],{"class":1844},[1272,15473,13666],{"class":1278},[1272,15475,15476,15478,15480,15482,15484],{"class":1274,"line":1432},[1272,15477,13671],{"class":13643},[1272,15479,13647],{"class":1278},[1272,15481,13676],{"class":13650},[1272,15483,13660],{"class":13659},[1272,15485,13666],{"class":1278},[1272,15487,15488,15490,15492,15494,15496],{"class":1274,"line":1454},[1272,15489,13685],{"class":13643},[1272,15491,13647],{"class":1278},[1272,15493,13690],{"class":13650},[1272,15495,13660],{"class":13659},[1272,15497,13666],{"class":1278},[1272,15499,15500],{"class":1274,"line":1475},[1272,15501,4534],{"class":1278},[1272,15503,15504],{"class":1274,"line":1496},[1272,15505,1410],{"emptyLinePlaceholder":352},[1272,15507,15508,15510,15512,15514,15516,15518],{"class":1274,"line":1553},[1272,15509,13631],{"class":13630},[1272,15511,13709],{"class":13634},[1272,15513,711],{"class":1278},[1272,15515,13714],{"class":13630},[1272,15517,13717],{"class":13634},[1272,15519,13638],{"class":1278},[1272,15521,15522,15524,15526,15528],{"class":1274,"line":1579},[1272,15523,13724],{"class":13643},[1272,15525,13647],{"class":1278},[1272,15527,13729],{"class":1844},[1272,15529,13666],{"class":1278},[1272,15531,15532,15534,15536,15538,15540],{"class":1274,"line":1602},[1272,15533,13736],{"class":13643},[1272,15535,13647],{"class":1278},[1272,15537,13676],{"class":13650},[1272,15539,13660],{"class":13659},[1272,15541,13666],{"class":1278},[1272,15543,15544],{"class":1274,"line":1625},[1272,15545,5101],{"class":1278},[1272,15547,15548],{"class":1274,"line":1635},[1272,15549,1410],{"emptyLinePlaceholder":352},[1272,15551,15552,15554,15556,15558,15560,15562,15564,15566],{"class":1274,"line":1641},[1272,15553,13757],{"class":13630},[1272,15555,13709],{"class":13634},[1272,15557,13763],{"class":13762},[1272,15559,711],{"class":1278},[1272,15561,13714],{"class":13630},[1272,15563,13717],{"class":13634},[1272,15565,13763],{"class":13762},[1272,15567,13638],{"class":1278},[1272,15569,15570,15572,15574,15576,15578],{"class":1274,"line":1651},[1272,15571,13778],{"class":13643},[1272,15573,13647],{"class":1278},[1272,15575,13783],{"class":13650},[1272,15577,13660],{"class":13659},[1272,15579,13666],{"class":1278},[1272,15581,15582],{"class":1274,"line":1671},[1272,15583,13792],{"class":1278},[1272,15585,15586],{"class":1274,"line":1691},[1272,15587,1410],{"emptyLinePlaceholder":352},[1272,15589,15590,15592,15594,15596,15598,15600,15602,15604,15606],{"class":1274,"line":1709},[1272,15591,13801],{"class":13762},[1272,15593,13804],{"class":1278},[1272,15595,13807],{"class":1286},[1272,15597,1324],{"class":13810},[1272,15599,1328],{"class":1327},[1272,15601,2600],{"class":1331},[1272,15603,1328],{"class":1327},[1272,15605,13819],{"class":1278},[1272,15607,13638],{"class":1278},[1272,15609,15610,15612,15614,15616,15618],{"class":1274,"line":1727},[1272,15611,13826],{"class":13643},[1272,15613,13647],{"class":1278},[1272,15615,13831],{"class":13650},[1272,15617,13660],{"class":13659},[1272,15619,13666],{"class":1278},[1272,15621,15622],{"class":1274,"line":1745},[1272,15623,5101],{"class":1278},[1272,15625,15626],{"class":1274,"line":1754},[1272,15627,1410],{"emptyLinePlaceholder":352},[1272,15629,15630,15632,15634],{"class":1274,"line":1760},[1272,15631,13631],{"class":13630},[1272,15633,13850],{"class":13634},[1272,15635,13638],{"class":1278},[1272,15637,15638],{"class":1274,"line":1769},[1272,15639,13857],{"class":8327},[1272,15641,15642],{"class":1274,"line":1779},[1272,15643,13862],{"class":8327},[1272,15645,15646,15648,15650,15652],{"class":1274,"line":1789},[1272,15647,13867],{"class":13643},[1272,15649,13647],{"class":1278},[1272,15651,13872],{"class":1844},[1272,15653,13666],{"class":1278},[1272,15655,15656,15658,15660,15662],{"class":1274,"line":1809},[1272,15657,13879],{"class":13643},[1272,15659,13647],{"class":1278},[1272,15661,13884],{"class":1844},[1272,15663,13666],{"class":1278},[1272,15665,15666,15668,15670,15672,15674],{"class":1274,"line":1815},[1272,15667,13736],{"class":13643},[1272,15669,13647],{"class":1278},[1272,15671,13895],{"class":13650},[1272,15673,13660],{"class":13659},[1272,15675,13666],{"class":1278},[1272,15677,15678],{"class":1274,"line":1825},[1272,15679,5101],{"class":1278},[1272,15681,15682],{"class":1274,"line":1835},[1272,15683,1410],{"emptyLinePlaceholder":352},[1272,15685,15686,15688,15691],{"class":1274,"line":1857},[1272,15687,13631],{"class":13630},[1272,15689,15690],{"class":13634},"divSonuc",[1272,15692,13638],{"class":1278},[1272,15694,15695,15698,15700,15703],{"class":1274,"line":1866},[1272,15696,15697],{"class":13643},"            color",[1272,15699,13647],{"class":1278},[1272,15701,15702],{"class":1844}," red",[1272,15704,13666],{"class":1278},[1272,15706,15707],{"class":1274,"line":1875},[1272,15708,5101],{"class":1278},[1272,15710,15711,15713,15715],{"class":1274,"line":1880},[1272,15712,1782],{"class":1278},[1272,15714,1978],{"class":1282},[1272,15716,1290],{"class":1278},[1272,15718,15719],{"class":1274,"line":1886},[1272,15720,1410],{"emptyLinePlaceholder":352},[1272,15722,15723],{"class":1274,"line":1892},[1272,15724,2677],{"class":1384},[1272,15726,15727,15729,15731,15733,15735,15737,15739],{"class":1274,"line":1898},[1272,15728,1295],{"class":1278},[1272,15730,2853],{"class":1282},[1272,15732,1381],{"class":1278},[1272,15734,15227],{"class":1384},[1272,15736,1388],{"class":1278},[1272,15738,2853],{"class":1282},[1272,15740,1290],{"class":1278},[1272,15742,15743],{"class":1274,"line":1907},[1272,15744,15745],{"class":1384},"@using (Ajax.BeginForm(\"UyeGirisi\", \"Uyelik\", new AjaxOptions { HttpMethod = \"POST\", UpdateTargetId = \"divSonuc\" },\n",[1272,15747,15748],{"class":1274,"line":7712},[1272,15749,15750],{"class":1384},"new { id = \"formKapsayici\" }))\n",[1272,15752,15753],{"class":1274,"line":7721},[1272,15754,4513],{"class":1384},[1272,15756,15757,15759,15761,15763,15765,15767,15769,15771],{"class":1274,"line":14003},[1272,15758,1315],{"class":1278},[1272,15760,1437],{"class":1282},[1272,15762,9488],{"class":1286},[1272,15764,1324],{"class":1278},[1272,15766,1328],{"class":1327},[1272,15768,13709],{"class":1331},[1272,15770,1328],{"class":1327},[1272,15772,1290],{"class":1278},[1272,15774,15775,15778,15780,15782],{"class":1274,"line":14008},[1272,15776,15777],{"class":1384},"        @Html.Label(\"E-Posta Adresiniz\")",[1272,15779,1295],{"class":1278},[1272,15781,8467],{"class":1282},[1272,15783,1337],{"class":1278},[1272,15785,15786],{"class":1274,"line":14014},[1272,15787,15788],{"class":1384},"        @Html.Label(\"Şifreniz\")\n",[1272,15790,15791,15793,15795],{"class":1274,"line":14034},[1272,15792,1782],{"class":1278},[1272,15794,1437],{"class":1282},[1272,15796,1290],{"class":1278},[1272,15798,15799,15801,15803,15805,15807,15809,15811,15813],{"class":1274,"line":14061},[1272,15800,1315],{"class":1278},[1272,15802,1437],{"class":1282},[1272,15804,9488],{"class":1286},[1272,15806,1324],{"class":1278},[1272,15808,1328],{"class":1327},[1272,15810,13717],{"class":1331},[1272,15812,1328],{"class":1327},[1272,15814,1290],{"class":1278},[1272,15816,15817,15820,15822,15824],{"class":1274,"line":14089},[1272,15818,15819],{"class":1384},"        : @Html.TextBox(\"txtPosta\")",[1272,15821,1295],{"class":1278},[1272,15823,8467],{"class":1282},[1272,15825,1337],{"class":1278},[1272,15827,15828],{"class":1274,"line":14099},[1272,15829,15830],{"class":1384},"        : @Html.Password(\"pswSifre\")\n",[1272,15832,15833,15835,15837],{"class":1274,"line":14108},[1272,15834,1782],{"class":1278},[1272,15836,1437],{"class":1282},[1272,15838,1290],{"class":1278},[1272,15840,15841,15843,15845,15847,15849,15851,15853,15855,15857,15859,15861,15863,15865,15867,15869,15871,15873,15875],{"class":1274,"line":14113},[1272,15842,1315],{"class":1278},[1272,15844,9485],{"class":1282},[1272,15846,1505],{"class":1286},[1272,15848,1324],{"class":1278},[1272,15850,1328],{"class":1327},[1272,15852,14569],{"class":1331},[1272,15854,1328],{"class":1327},[1272,15856,9520],{"class":1286},[1272,15858,1324],{"class":1278},[1272,15860,1328],{"class":1327},[1272,15862,14580],{"class":1331},[1272,15864,1328],{"class":1327},[1272,15866,9488],{"class":1286},[1272,15868,1324],{"class":1278},[1272,15870,1328],{"class":1327},[1272,15872,13850],{"class":1331},[1272,15874,1328],{"class":1327},[1272,15876,1337],{"class":1278},[1272,15878,15879,15881,15883,15885,15887,15889,15891,15893,15895,15897],{"class":1274,"line":14118},[1272,15880,1315],{"class":1278},[1272,15882,1437],{"class":1282},[1272,15884,9488],{"class":1286},[1272,15886,1324],{"class":1278},[1272,15888,1328],{"class":1327},[1272,15890,15690],{"class":1331},[1272,15892,1328],{"class":1327},[1272,15894,1572],{"class":1278},[1272,15896,1437],{"class":1282},[1272,15898,1290],{"class":1278},[1272,15900,15901],{"class":1274,"line":14136},[1272,15902,4534],{"class":1384},[655,15904,15905],{},[658,15906,15907,15908,15911],{},"Şimdi üye giriş ekranında girişin yapılacağı, onaylanacağı Action'umuzu da yazalım. **Controllers>UyelikController.cs\n** dosyasının içerisine,",[646,15909,15910],{},"UyeGirisi"," adlı bir Action ekleyelim. Ekleyeceğimiz kodlar aşağıdadır;",[1264,15913,15916],{"className":15914,"code":15915,"language":2600},[2598],"[HttpPost]\npublic string UyeGirisi()\n{\n    //Request.Form[\"html elementinin name özelliği\"] ile Post edilen formdaki elemanların\n    //değerlerini alabiliyoruz. Bu metod yalnızca Post ile çalışır.\n    string posta = Request.Form[\"txtPosta\"];\n    string sifre = Request.Form[\"pswSifre\"];\n    if (String.IsNullOrEmpty(posta) && String.IsNullOrEmpty(sifre))\n    {\n        return \"E-Posta adresinizi ve şifrenizi girmediniz.\";\n    }\n        else if (String.IsNullOrEmpty(posta))\n    {\n        return \"E-posta adresinizi girmediniz.\";\n    }\n        else if (string.IsNullOrEmpty(sifre))\n    {\n        return \"Şifrenizi girmediniz.\";\n    }\n    else\n    {\n        using (MvcProjesiContext db = new MvcProjesiContext())\n    {\n        //Normalde şifreyi hashleyerek yazdırmamız ve kontrol etmemiz gerekir.\n        var uye = (from i in db.Uyes where i.Sifre == sifre && i.EPosta == posta select i).SingleOrDefault();\n        \n        if (uye == null) return \"Kullanıcı adınızı ya da şifreyi hatalı girdiniz.\";\n        \n        //Session'da müşteri ile ilgili bilgileri saklamaktayız.\n        //Güvenlik açısından bilgileri şifreleyerek saklamamız daha doğru bir yöntemdir.\n        //Asp.Net Membership yapısı, bu güvenliği sunmaktadır.\n        Session[\"uyeId\"] = uye.UyeId;\n        \n        //Burada eğer, kullanıcı bilgileri, sistemde eşleşirse, geriye girişin başarılı\n        //olduğuna dair bir mesaj ve 3 saniye sonra, ana sayfaya yönlendirecek bir\n        //javascript kodu ekliyoruz.\n        return \"Sisteme, başarıyla giriş yaptınız.\n        \u003Cscript type='text/javascript'>setTimeout(function(){window.location='/'},3000);\u003C/script>\";\n        }\n    }\n}\n",[799,15917,15915],{"__ignoreMap":346},[643,15919,15920],{},"Evet arkadaşlar, böylelikle projemizi bitirmiş olduk.",[643,15922,15923],{},"Basit bir projenin yapımının, 21 makalelik bir ders halinde olması, aslında kurumsal bir projenin ne kadar daha ağır\nolacağını göstermektedir.",[643,15925,15926],{},"Ben elimden geldiğince, değişik yöntemlerle anlatım yapmaya çalıştım. Her yerde bulabileceğiniz bilgilerin, dışına\nçıkmaya gayret gösterdim. Bununla birlikte, projeyi mümkün olduğunca sade tutmaya çalıştım. Bu yüzden, projede, güvenlik\nanlamında hiç bir önlem almadık.",[643,15928,15929],{},"Umarım sizlere faydası olmuştur.",[643,15931,15932],{},"Sonraki yazımda, kurumsal ölçekte bir proje geliştirirken nasıl bir yol izlemeliyiz, hangi kütüphaneleri kullanmalıyız,\nhangi standartlara göre kod yazmalıyız, ona değineceğim. Böylelikle serimizi bitirmiş oluyoruz.",[643,15934,15935,15936,11834],{},"Projenin son\nhalini",[771,15937,5939],{"href":15938},"/images/proje-dosyalar/asp-net-mvc-ajax-ile-uye-girisi-uyelik-sistemi-2-asp-net-mvc-yazi-dizisi-21/MvcProjesi.zip",[643,15940,1976],{},[1978,15942,15943],{},"html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .stp6e, html code.shiki .stp6e{--shiki-light:#39ADB5;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sPLZw, html code.shiki .sPLZw{--shiki-light:#F76D47;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .soE4H, html code.shiki .soE4H{--shiki-light:#8796B0;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sw1J6, html code.shiki .sw1J6{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s83vy, html code.shiki .s83vy{--shiki-light:#E2931D;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":346,"searchDepth":347,"depth":347,"links":15945},[],"2014/04/2014-04-02+13_08_19.jpg","2014-04-07T00:00:00.000Z","Önceki Yazı : Asp.Net Mvc – Yeni Üye Kaydı ve Dosya Yükleme - Üyelik Sistemi 1 (Asp.Net Mvc Yazı Dizisi – 20)",{},{"title":15,"description":15948},"RP1W-wdP3eVxkelHx4z9g7e-_ZA7fz7uGnOPOJ4Ryvs",{"id":15953,"title":170,"body":15954,"coverImage":16320,"createDate":16321,"description":861,"extension":350,"meta":16322,"navigation":352,"path":171,"seo":16323,"stem":172,"__hash__":16324},"posts/dersler/yazilim-mimarisi/kurumsal-web-uygulamalari-gelistirme.md",{"type":343,"value":15955,"toc":16318},[15956,15959,15963,15970,15973,15976,15982,15987,15992,15995,16000,16003,16008,16019,16024,16044,16049,16054,16058,16061,16065,16068,16072,16080,16084,16104,16109,16114,16118,16121,16125,16128,16132,16137,16143,16148,16152,16155,16159,16166,16170,16177,16183,16188,16192,16195,16199,16202,16206,16210,16216,16221,16225,16228,16232,16237,16243,16248,16252,16255,16259,16262,16265,16270,16273,16278,16281,16286,16289,16293,16310,16313,16316],[639,15957,170],{"id":15958},"kurumsal-web-uygulamaları-geliştirme",[643,15960,15961],{},[646,15962,861],{},[643,15964,15965,15966,15969],{},"Sizlerle daha önce ",[646,15967,15968],{},"Asp.Net MVC 5"," ile blog uygulaması geliştirmiştik. Bu uygulamamız, çok uzun süren bir seri olmasına rağmen, kurumsal bir projenin\nsahip olması gereken bazı şeylerden yoksun olmuştu.",[643,15971,15972],{},"Aslında buradan da anlaşılıyor ki, profesyonel bir uygulama geliştirme gerçekten yazı dizilerine sığdırılamayacak kadar,\nkomplike bir mimari gerektiriyor.",[643,15974,15975],{},"İnşallah, bundan sonraki süreçlerde, ileri düzey pek çok uygulamalar, anlatımlar geliştirmeye çalışacağız. İstedim ki,\nbu anlatımlardan önce teorik olarak kurumsal bir uygulama nasıl olmalı, nelere sahip olmalı bir inceleyelim. Bunlarla\nberaber, günümüzdeki profesyonel uygulamalarda hangi teknikler, kütüphaneler kullanılıyor, bunların da üzerinde önemle\nduracağız. Dosya konumu, dil bağımsız tutmaya çalışacağım (Java,C#,Phyton vs.) .Konularımızı sorun, çözüm, yeterlilik\ngereksinimleri, kullanılabilecek kütüphaneler şeklinde inceleyeceğiz.",[643,15977,15978],{},[895,15979],{"alt":15980,"src":15981},"Katmanlı mimari","/images/2014/04/katmanli-mimari.gif",[643,15983,15984],{},[646,15985,15986],{},"GENEL MİMARİ",[643,15988,15989],{},[646,15990,15991],{},"Sorun",[643,15993,15994],{},"Öncelikle bir uygulamaya başladığımızda, uygulamamızın kontrolünün çok iyi yapılabiliyor olması gerekir. Biz kafamızda\nprojeyi oturturuz ve hızlı bir şekilde kodlamaya başlarız. Ancak bir zaman sonra proje büyümeye başladığında, projenin\nyavaş yavaş kontrolümüzden çıkmaya başladığına şahit oluruz. Hangi dosyalar, hangi yapının altındaydı? Hangi metodum ne\niş yapıyordu? Az önce saydığım sorularla karşılaşmaya başlarız. Birden çok geliştiricisi olan uygulamalarda ise, çok\ndaha büyük sorunlar çıkması kaçınılmaz olacaktır. Birden çok kişi projenin belirli bölümlerinde çalışırken, sık sık\nçakışmalar yaşayacak, birbirlerine bağımlı olduklarından, zaman zaman A kişisinin yazdığı kod, B kişisinin yazdığı koda\ngöre çalıştığında, eğer B kişisi yazdığı kodda değişiklik yaparsa, A kişisinin yazdığı kod işlevsiz ya da hatalı bir\nhale gelebilecektir.",[643,15996,15997],{},[646,15998,15999],{},"Çözüm",[643,16001,16002],{},"İşte bu noktada projenin sürekli kontrol altında tutulabilmesi için, katmanlı mimariyi kullanmak zorundayız. Tüm\nyapımızı eğer parçalara bölersek, bu parçaları anlaşılır şekilde isimlendirirsek, klasör yerleşimlerini tutarlı bir\nşekilde sağlarsak, projemize olan hakimiyetimizin iyi bir şekilde korunabildiğini görebileceğiz. Mesela Asp.Net Mvc'de\nView klasörünün altında, yalnızca Html, View sayfalarımızın olduğunu bilirsek, düzeni korumuş, bir şey aradığımızda da\nnereye bakacağımızı biliyor oluruz. Birden çok geliştiricisi olan uygulamalarda, her geliştirici projenin belirli\nkatmanlarında çalışacaklarından dolayı, çakışmalar yaşanmayacak, bununla birlikte diğer katmanda ne olduğu\ngeliştiricileri ilgilendirmediğinden, kendi kodlarını rahatlıkla geliştirebiliyor olacaklar. Bu noktada katman\niçerisindeki değişiklikler, diğer katmandaki geliştiricileri etkilemeyecektir (katman yazımlarında, interface vs.\nyapılar düzgün bir şekilde kullanıldığında).",[643,16004,16005],{},[646,16006,16007],{},"Geliştiricinin Sahip Olması Gereken Bilgiler",[655,16009,16010,16013],{},[658,16011,16012],{},"Nesne yönelimli programlama (object oriented programming),",[658,16014,16015,16018],{},[646,16016,16017],{},"(tercihe bağlı)"," Bağımlılıkların dışarıdan enjekte edilmesi - tasarım deseni (dependency injection pattern)",[643,16020,16021],{},[646,16022,16023],{},"​Kullanılabilecek Kütüphaneler",[655,16025,16026,16029,16032,16035,16038,16041],{},[658,16027,16028],{},"Autofac (.Net),",[658,16030,16031],{},"Ninject (.Net),",[658,16033,16034],{},"Google Guice (Java),",[658,16036,16037],{},"Pico Container (Java),",[658,16039,16040],{},"PHP-DI (PHP),",[658,16042,16043],{},"Pimple (PHP)",[643,16045,16046],{},[895,16047],{"alt":5521,"src":16048},"/images/2014/04/veritabani-simge-150x150.png",[643,16050,16051],{},[646,16052,16053],{},"VERİTABANI",[643,16055,16056],{},[646,16057,15991],{},[643,16059,16060],{},"Genellikle performans amacıyla, saf Sql sorgularıyla ve Stored Procedure'lerle veritabanı safhası halledilmeye\nçalışılır. Bu yöntem, performans açısından gerçekten faydalı bir durum. Ancak bu veriye ulaşım noktasında kodların\nhazırlanmasında, gerçekten zahmetli bir yöntem. Düşünsenize Sql Management Studio'da (Mssql) tarafında yada Mysql\nWorkbench (Mysql) tarafında, Stored Procedure'lerini yazıyorsunuz, bu sorgulardan gelen verileri, programınızda nesne\nyönelimine uygun bir şekilde almanız gerekiyor. Gelen veriyi tam olarak bilmeniz lazımki, sınıflarınızla\neşleştirebilesiniz. Bu süreç, gerçekten oldukça zahmetli ve karışık olacaktır.",[643,16062,16063],{},[646,16064,15999],{},[643,16066,16067],{},"Veritabanımızdan gelen verileri, direkt olarak oluşturduğumuz sınıflar halinde alabilmek ne kadar mükemmel olur değil\nmi? Veritabanımızında, projemizin içerisinde olması ve direkt ulaşılabilir olması, müdahalelerinin çok rahat olması\ngerçekten mükemmel bir durum. Bu ihtiyacımıza cevap veren sistemlere Orm araçları diyoruz. Özellikle .Net tarafında\ngeliştirmesi tam gaz süren Entity Framework'un bizlere sunduğu, Code First mimarisi gerçekten çok kullanışlı.\nVeritabanınızı tamamen C#, Vb.Net dilinde kodluyorsunuz. Bütün veritabanı sistemi elinizin altında oluyor. Sql hakkında\nçok az temel bilgi bile yeterli olmaktadır.",[643,16069,16070],{},[646,16071,16007],{},[655,16073,16074,16077],{},[658,16075,16076],{},"Nesne yönelimli programlama(object oriented programming),",[658,16078,16079],{},"Temel veritabanı mantığı hakkında bilgi",[643,16081,16082],{},[646,16083,16023],{},[655,16085,16086,16089,16092,16095,16098,16101],{},[658,16087,16088],{},"Entity Framework (.Net),",[658,16090,16091],{},"NHibernate (.Net),",[658,16093,16094],{},"Hibernate (Java),",[658,16096,16097],{},"SimpleORM (Java),",[658,16099,16100],{},"Propel (PHP),",[658,16102,16103],{},"php-activerecord(PHP)",[643,16105,16106],{},[895,16107],{"alt":1006,"src":16108},"/images/2014/04/c-model-300x190.jpg",[643,16110,16111],{},[646,16112,16113],{},"MODELLER",[643,16115,16116],{},[646,16117,15991],{},[643,16119,16120],{},"Projede, veritabanını modellediğimizde, gelen verilerde, istemediğimiz veriler olabilecektir (veritabanındaki tablolara\nözel değerler,id vs.). Bu verileri olduğu gibi alıp, sistem içerisinde gezdirmek, web sayfasına geçirmek, aşırı bir band\ngenişliği tüketimine, ağırlaşmaya sebebiyet verecektir.",[643,16122,16123],{},[646,16124,15999],{},[643,16126,16127],{},"Bu sorunun çözümü için yapmamız gereken, ihtiyacımız olan veriler için sınıflar yazarak, veri kaynağından gelen veriyi\nbu sınıflarımıza doldurarak, gerekli yerlere iletmek olacaktır.",[643,16129,16130],{},[646,16131,16007],{},[655,16133,16134],{},[658,16135,16136],{},"Nesne yönelimli programlama(object oriented programming)",[643,16138,16139],{},[895,16140],{"alt":16141,"src":16142},"Servis","/images/2014/04/servis-300x175.png",[643,16144,16145],{},[646,16146,16147],{},"SERVİSLER",[643,16149,16150],{},[646,16151,15991],{},[643,16153,16154],{},"Projemizin çeşitli alanlarından, veritabanımız ile irtibat kurmaktayız. Bu karışıklığa sebebiyet vermekte, kod tekrarı\noluşturmuktadır. Veritabanı katmanımızda, değişiklikler olduğunda, veritabanı ile iletişime geçtiğimiz her yerde,\ndeğişiklikler yapmaya ihtiyaç duyacağız. Ciddi bir karışıklık ve iş gücü oluşacaktır.",[643,16156,16157],{},[646,16158,15999],{},[643,16160,16161,16162,16165],{},"Katmanlı bir mimaride, veritabanı ile iletişim kuran sınıflarımızı, metodlarımızı, yalıtmak ve tüm iletişimimizi bu\nsınıflar üzerinden yapmak, kesinlikle çok çok iyi bir yoldur. Services diye bir klasör açıp, veritabanı ile ilgili\nistenebilecek tüm iş akış metodlarını buraya toplayabiliriz. Örneğin, projenin her hangi bir yerinden\n",[799,16163,16164],{},"GetCustomerById(5)"," şeklinde 5 numaralı id'ye sahip müşteriyi çağırabiliriz. Böylece veritabanındaki değişiklikler\nyalnızca servis katmanımızı etkileyecektir. Bu, kesinlikle iyi bir yöntem.",[643,16167,16168],{},[646,16169,16007],{},[655,16171,16172,16174],{},[658,16173,16076],{},[658,16175,16176],{},"Servisleri Dependency Injection ile Controller'e enjekte etmek istersek, Dependency Injection",[643,16178,16179],{},[895,16180],{"alt":16181,"src":16182},"Metod","/images/2014/04/metod-300x127.gif",[643,16184,16185],{},[646,16186,16187],{},"FONKSİYONLAR, METODLAR",[643,16189,16190],{},[646,16191,15991],{},[643,16193,16194],{},"Projemizin çeşitli alanlarında çalıştırılması gereken işlemler var. Bu işlemleri hep Controller vs. içerisinde\nyazıyorsunuz. Ancak bir zaman sonra karmaşa ve kod tekrarı kaçınılmaz hale geliyor.",[643,16196,16197],{},[646,16198,15999],{},[643,16200,16201],{},"Tüm iş yapan metodlarınızı, anlamlı bir şekilde, bir klasör altında sınıflar içerisine depolayabilirsiniz. Böylelikle,\nher metodu bir kere yazmış olursunuz. İstediğiniz her yerden istediğiniz kadar çağırmış olursunuz. Kod tekrarı olmamış,\nayrıca metod içerisinde bir kere değişiklik yaptığınız zaman, otomatik olarak diğer katmanlarda bir değişiklik yapmamış\nolursunuz.",[643,16203,16204],{},[646,16205,16007],{},[655,16207,16208],{},[658,16209,16136],{},[643,16211,16212],{},[895,16213],{"alt":16214,"src":16215},"Kontrolcü","/images/2014/04/kontrolcu-300x240.png",[643,16217,16218],{},[646,16219,16220],{},"İŞ KATMANLARI, KONTROLCÜLER",[643,16222,16223],{},[646,16224,15999],{},[643,16226,16227],{},"Genelde bu kısım, Asp.Net Mvc'de Controller yapısı içerisinde kullanıldığından aslında çok fazla sorunla\nkarşılaşmayacaksınız. Bu kısımda size tavsiyem, mümkün olduğunca, sadece servislerle ve metodlarla işlemler yapmanız.\nAsla veri kaynaklarınıza direkt erişimde bulunmayın. Mümkün olduğunca bu katmandaki kodları az ve öz tutmaya çalışın.",[643,16229,16230],{},[646,16231,16007],{},[655,16233,16234],{},[658,16235,16236],{},"Kullandığı platformun, iş katmanı hakkında yeterli bilgi. (Örneğin Asp.Net Mvc'de Controller katmanı bilgisi.)",[643,16238,16239],{},[895,16240],{"alt":16241,"src":16242},"Html","/images/2014/04/html-300x152.jpg",[643,16244,16245],{},[646,16246,16247],{},"ÖN YÜZLER, GÖRÜNÜMLER",[643,16249,16250],{},[646,16251,15991],{},[643,16253,16254],{},"Katmanları doğru şekilde ayırmadınız ve görünüm katmanınız oldukça karmaşık görünüyor. View kısmınızda bir yığın, Server\ndili (C#, Php, Java vs.) kodunuz var. Html ve sunucu dilleri, iç içe hiç de hoş durmuyor. Ayrıca Css'leriniz ve\nJavaScript'leriniz de Html sayfası içerisinde. Sonuç tam bir karmaşa.",[643,16256,16257],{},[646,16258,15999],{},[643,16260,16261],{},"Bu katman, bir web sitesinde, bence en önemli katmanlardan birisi. Bu katman, ziyaretçinin etkileşimde bulunduğu\nkatmandır. Bu katmandaki kodlar (sunucu tabanlı kısımlar hariç, onlar işlem sonucunda Html kodlarına çevrilir),\nziyaretçi tarafından görülebilir. Ayrıca sayfa açılış performansı açısından burada okunacak veriler, çekilecek resimler\nde bir hayli önemli olacaktır.",[643,16263,16264],{},"Son yıllarda, web tabanlı programlamanın, fazlasıyla önem kazanmasından dolayı, JavaScript kütüphaneleri tarafında\ninanılmaz bir ilerleme yaşanmaktadır. Bu da bizlere, sanki masaüstü programı hazırlar gibi, web siteleri hazırlama\nimkanı sunmaktadır. Bunun için Microsoft'un Online Word, Excel'ine ya da Pixlr resim editorüne bakmanız yeterli\nolacaktır. Sayfa değişimi hiç yaşanmadan, tüm işlemler yapılabilmektedir. Bu kütüphanelerin arkasındaki teknolojiler hep\nAjax tabanlı.",[643,16266,16267],{},[646,16268,16269],{},"Jquery",[643,16271,16272],{},"JavaScript ile yapılan işlemler, genellikle sorun çıkarmaya meyillidir. Tarayıcılar arası uyum farklılıkları,\nJavaScript'in C# muadilleri gibi diller kadar gelişkin olmaması bizleri oldukça zorlamaktadır. Bu sorunu bizim için\nçözen muazzam çalışma, Jquery'dir. Jquery'siz bir web dünyası çok daha sıkıcı ve zor.",[643,16274,16275],{},[646,16276,16277],{},"Knockout, Backbone",[643,16279,16280],{},"Öncelikle web sayfasındaki, iş akışı ile görsel kodlarınızı ayırmanız gerekmektedir. Bunun için en güzel kütüphane\nKnockout. Alternatif olarak Backbone'de denenebilir. Bu kütüphaneler ile Mvvm (sistemi Model-View-ViewModel olarak\nayırmak, Mvc mimarisinin bir benzeri), katmanlı sayfalar tasarlayabiliyoruz. Böylelikle katmanları ayırmayı sağlamış\nolduk. İleriki derslerimde Knockout ile ilgili çalışmalar yapacağım.",[643,16282,16283],{},[646,16284,16285],{},"Bootstrap",[643,16287,16288],{},"Son yılların bir diğer moda kavramı da, Responsive tasarım. Ölçeklenebilir bu tasarım ile, web sayfaları, cep\ntelefonundan, tabletten, bilgisayardan girildiğinde, kendini otomatik olarak ölçeklendirerek, sayfanın güzel görünmesini\nsağlamaktadır. Bu zor işlemleri, bizim için bir nebze kolaylaştıran yapı ise, Bootstrap'tır. Eklediğimiz tüm Html\nelemanlarına class'lar atayarak, çok güzel tasarımlar yapmamıza imkan sağlamaktadır.",[643,16290,16291],{},[646,16292,16007],{},[655,16294,16295,16298,16301,16304,16307],{},[658,16296,16297],{},"Html, JavaScript, Css bilgisi,",[658,16299,16300],{},"Ajax bilgisi,",[658,16302,16303],{},"Knockout, Backbone vs. bilgisi,",[658,16305,16306],{},"Responsive tasarım bilgisi,",[658,16308,16309],{},"BootStrap bilgisi",[643,16311,16312],{},"Evet, profesyonel uygulamaları nasıl inşa etmeliyiz? Bu konulara değinmeye çalıştık. Umarım yazı faydalı olur.",[643,16314,16315],{},".Net platformu ağırlıkta uygulamalar geliştirdiğimden dolayı, anlatımım biraz .Net tabanlı oldu. Diğer platformlarda\nçalışan arkadaşlar, yorumlarıyla eklemeler yaparsa çok memnun oluruz.",[643,16317,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":16319},[],"2014/04/kurumsal-01.jpg","2014-04-25T00:00:00.000Z",{},{"title":170,"description":861},"i_lnvJov8FoN92iJj1xcE0NLboeut50Qedro_P5DNBI",{"id":16326,"title":143,"body":16327,"coverImage":17570,"createDate":17571,"description":861,"extension":350,"meta":17572,"navigation":352,"path":144,"seo":17573,"stem":145,"__hash__":17574},"posts/dersler/requirejs/requirejs-nedir-requirejs-ile-moduler-javascript-programlama-1.md",{"type":343,"value":16328,"toc":17568},[16329,16332,16336,16343,16346,16352,16357,16406,16412,16415,16422,16494,16501,16562,16568,16652,16676,16836,16843,16849,16860,17015,17021,17024,17027,17032,17080,17153,17160,17279,17286,17349,17357,17433,17439,17534,17537,17543,17546,17552,17555,17560,17563,17565],[639,16330,143],{"id":16331},"requirejs-nedir-requirejs-ile-modüler-javascript-programlama",[643,16333,16334],{},[646,16335,861],{},[643,16337,16338,16339,16342],{},"Günümüzde artık web projelerinde, tek sayfalık yapılarla karşılaşmaya başladık. Örneğin, e-postalarınızı kontrol etmek\namacıyla girdiğiniz, Outlook, GMail benzeri sitelerde, sayfa yenilenmeden, tüm işlemlerinizi rahatlıkla\nyapabilmektesiniz. Yazılım dünyası jargonunda bu, ",[646,16340,16341],{},"Single Page Application"," diye isimlendirilmektedir.",[643,16344,16345],{},"Klasik çok sayfalı yapılar geliştiren arkadaşlar bilirler ki, her sayfaya 1-2 adet javascript dosyası eklenir (Jquery\nvs. hariç), işlemler bu dosyalar üzerinde işletilirdi. Ancak bütün bir siteyi tek sayfada çalışır hale getirmek\ngerçekten zor bir süreç. Bu noktada tüm script dosyalarını tek tek html sayfasına eklemek, kod karışıklığına ve zahmete\nsebebiyet verecektir. Bununla birlikte, script dosyaları arasındaki bağımlılıkları sağlamak ta hiç kolay olmayacaktır.",[643,16347,16348,16349,16351],{},"Bu ve benzeri problemleri gidermek adına, ",[646,16350,138],{}," adında bir JavaScript frameworku yazılmış, bu framework\nsayesinde script dosyaları arasındaki bağımlılıkları kontrol edebilmemiz sağlanmıştır.",[643,16353,16354],{},[646,16355,16356],{},"RequireJs'nin faydalarını daha iyi anlayabilmek için RequireJs kullanmadan bir örnek yapalım;",[655,16358,16359,16362,16379,16403],{},[658,16360,16361],{},"Boş bir web projesi oluşturalım (Visual Studio, Dreamweaver, Netbeans vs. farketmez),",[658,16363,16364,16365],{},"Projemizin ana dizinine,",[655,16366,16367,16373],{},[658,16368,16369,16372],{},[799,16370,16371],{},"index.html"," dosyası,",[658,16374,16375,16378],{},[799,16376,16377],{},"app"," klasörü ekleyelim.",[658,16380,16381,16382,16384,16385],{},"Eklemiş olduğumuz ",[799,16383,16377],{}," klasörünün içerisine ise,",[655,16386,16387,16392,16397],{},[658,16388,16389,711],{},[799,16390,16391],{},"okul.js",[658,16393,16394,711],{},[799,16395,16396],{},"ogrenci.js",[658,16398,16399,16402],{},[799,16400,16401],{},"servis.js"," JavaScript dosyalarımızı ekleyelim.",[658,16404,16405],{},"Projemizin dizin yapısı aşağıdaki gibi olacaktır.",[643,16407,16408],{},[895,16409],{"alt":16410,"src":16411},"Dizin yapısı","/images/2014/04/2014-04-28+18_07_13.jpg",[643,16413,16414],{},"Not : Üstü çizili olan dosyalar, gerek duyulmayan Visual Studio'nun oluşturduğu dosyalardır.",[655,16416,16417],{},[658,16418,16419,16421],{},[799,16420,16401],{}," dosyanın içeriğini aşağıdaki gibi yazalım;",[1264,16423,16427],{"className":16424,"code":16425,"language":16426,"meta":346,"style":346},"language-js shiki shiki-themes material-theme-lighter github-light github-dark","function Servis() {\n    this.Yazdir = function (okul) {\n        document.write(okul);\n    }\n}\n","js",[799,16428,16429,16440,16468,16486,16490],{"__ignoreMap":346},[1272,16430,16431,16433,16436,16438],{"class":1274,"line":1275},[1272,16432,14053],{"class":14052},[1272,16434,16435],{"class":14037}," Servis",[1272,16437,14084],{"class":1278},[1272,16439,13638],{"class":1278},[1272,16441,16442,16446,16448,16451,16454,16457,16460,16464,16466],{"class":1274,"line":347},[1272,16443,16445],{"class":16444},"s39Yj","    this",[1272,16447,9220],{"class":1278},[1272,16449,16450],{"class":14037},"Yazdir",[1272,16452,16453],{"class":13810}," =",[1272,16455,16456],{"class":14052}," function",[1272,16458,16459],{"class":1278}," (",[1272,16461,16463],{"class":16462},"s99_P","okul",[1272,16465,4213],{"class":1278},[1272,16467,13638],{"class":1278},[1272,16469,16470,16473,16475,16478,16480,16482,16484],{"class":1274,"line":1302},[1272,16471,16472],{"class":1384},"        document",[1272,16474,9220],{"class":1278},[1272,16476,16477],{"class":14037},"write",[1272,16479,14049],{"class":14067},[1272,16481,16463],{"class":1384},[1272,16483,4213],{"class":14067},[1272,16485,13666],{"class":1278},[1272,16487,16488],{"class":1274,"line":1312},[1272,16489,4534],{"class":1278},[1272,16491,16492],{"class":1274,"line":1340},[1272,16493,2677],{"class":1278},[655,16495,16496],{},[658,16497,16498,16500],{},[799,16499,16391],{}," dosyasının içeriğini aşağıdaki gibi dolduralım;",[1264,16502,16504],{"className":16424,"code":16503,"language":16426,"meta":346,"style":346},"function Okul() {\n    this.Yazdir = function (ogrenci) {\n        document.write(ogrenci);\n    }\n}\n",[799,16505,16506,16517,16538,16554,16558],{"__ignoreMap":346},[1272,16507,16508,16510,16513,16515],{"class":1274,"line":1275},[1272,16509,14053],{"class":14052},[1272,16511,16512],{"class":14037}," Okul",[1272,16514,14084],{"class":1278},[1272,16516,13638],{"class":1278},[1272,16518,16519,16521,16523,16525,16527,16529,16531,16534,16536],{"class":1274,"line":347},[1272,16520,16445],{"class":16444},[1272,16522,9220],{"class":1278},[1272,16524,16450],{"class":14037},[1272,16526,16453],{"class":13810},[1272,16528,16456],{"class":14052},[1272,16530,16459],{"class":1278},[1272,16532,16533],{"class":16462},"ogrenci",[1272,16535,4213],{"class":1278},[1272,16537,13638],{"class":1278},[1272,16539,16540,16542,16544,16546,16548,16550,16552],{"class":1274,"line":1302},[1272,16541,16472],{"class":1384},[1272,16543,9220],{"class":1278},[1272,16545,16477],{"class":14037},[1272,16547,14049],{"class":14067},[1272,16549,16533],{"class":1384},[1272,16551,4213],{"class":14067},[1272,16553,13666],{"class":1278},[1272,16555,16556],{"class":1274,"line":1312},[1272,16557,4534],{"class":1278},[1272,16559,16560],{"class":1274,"line":1340},[1272,16561,2677],{"class":1278},[655,16563,16564],{},[658,16565,16566,16500],{},[799,16567,16396],{},[1264,16569,16571],{"className":16424,"code":16570,"language":16426,"meta":346,"style":346},"var okul = new Okul();\nvar servis = new Servis();\nokul.Yazdir(\"11-a öğrencisi\");\nservis.Yazdir(\"vasfi rıza zobunun servisi\");\n",[799,16572,16573,16592,16609,16630],{"__ignoreMap":346},[1272,16574,16575,16578,16581,16583,16586,16588,16590],{"class":1274,"line":1275},[1272,16576,16577],{"class":14052},"var",[1272,16579,16580],{"class":1384}," okul ",[1272,16582,1324],{"class":13810},[1272,16584,16585],{"class":13810}," new",[1272,16587,16512],{"class":14037},[1272,16589,14084],{"class":1384},[1272,16591,13666],{"class":1278},[1272,16593,16594,16596,16599,16601,16603,16605,16607],{"class":1274,"line":347},[1272,16595,16577],{"class":14052},[1272,16597,16598],{"class":1384}," servis ",[1272,16600,1324],{"class":13810},[1272,16602,16585],{"class":13810},[1272,16604,16435],{"class":14037},[1272,16606,14084],{"class":1384},[1272,16608,13666],{"class":1278},[1272,16610,16611,16613,16615,16617,16619,16621,16624,16626,16628],{"class":1274,"line":1302},[1272,16612,16463],{"class":1384},[1272,16614,9220],{"class":1278},[1272,16616,16450],{"class":14037},[1272,16618,14049],{"class":1384},[1272,16620,1328],{"class":1327},[1272,16622,16623],{"class":1331},"11-a öğrencisi",[1272,16625,1328],{"class":1327},[1272,16627,4213],{"class":1384},[1272,16629,13666],{"class":1278},[1272,16631,16632,16635,16637,16639,16641,16643,16646,16648,16650],{"class":1274,"line":1312},[1272,16633,16634],{"class":1384},"servis",[1272,16636,9220],{"class":1278},[1272,16638,16450],{"class":14037},[1272,16640,14049],{"class":1384},[1272,16642,1328],{"class":1327},[1272,16644,16645],{"class":1331},"vasfi rıza zobunun servisi",[1272,16647,1328],{"class":1327},[1272,16649,4213],{"class":1384},[1272,16651,13666],{"class":1278},[655,16653,16654,16670],{},[658,16655,16656,16657,4198,16659,16661,16662,16664,16665,4198,16667,16669],{},"Javascript dosyalarımızdan, ",[646,16658,16634],{},[646,16660,16463],{}," dosyaları yalnızca metod çağırıldığında ekrana parametre olarak\ngelen değerleri basıyorlar. ",[646,16663,16533],{}," dosyası ise yüklendiği an, ",[646,16666,16463],{},[646,16668,16634],{}," sınıfından birer nesne\nüreterek, içerisinde tanımlı olan, metodları çağırıyor.",[658,16671,16672,16673,16675],{},"Son olarak ",[646,16674,16371],{}," dosyamızın içeriğini aşağıdaki gibi dolduralım ve ana sayfayı çağıralım;",[1264,16677,16679],{"className":1266,"code":16678,"language":1268,"meta":346,"style":346},"\u003C!DOCTYPE html>\n\u003Chtml xmlns=\"http://www.w3.org/1999/xhtml\">\n\u003Chead>\n    \u003Ctitle>\u003C/title>\n    \u003Cscript src=\"app/ogrenci.js\">\u003C/script>\n    \u003Cscript src=\"app/servis.js\">\u003C/script>\n    \u003Cscript src=\"app/okul.js\">\u003C/script>\n\u003C/head>\n\u003Cbody>\n\n\u003C/body>\n\u003C/html>\n",[799,16680,16681,16691,16711,16719,16731,16754,16777,16800,16808,16816,16820,16828],{"__ignoreMap":346},[1272,16682,16683,16685,16687,16689],{"class":1274,"line":1275},[1272,16684,1279],{"class":1278},[1272,16686,1283],{"class":1282},[1272,16688,1287],{"class":1286},[1272,16690,1290],{"class":1278},[1272,16692,16693,16695,16697,16700,16702,16704,16707,16709],{"class":1274,"line":347},[1272,16694,1295],{"class":1278},[1272,16696,1268],{"class":1282},[1272,16698,16699],{"class":1286}," xmlns",[1272,16701,1324],{"class":1278},[1272,16703,1328],{"class":1327},[1272,16705,16706],{"class":1331},"http://www.w3.org/1999/xhtml",[1272,16708,1328],{"class":1327},[1272,16710,1290],{"class":1278},[1272,16712,16713,16715,16717],{"class":1274,"line":1302},[1272,16714,1295],{"class":1278},[1272,16716,1307],{"class":1282},[1272,16718,1290],{"class":1278},[1272,16720,16721,16723,16725,16727,16729],{"class":1274,"line":1312},[1272,16722,1315],{"class":1278},[1272,16724,1378],{"class":1282},[1272,16726,1572],{"class":1278},[1272,16728,1378],{"class":1282},[1272,16730,1290],{"class":1278},[1272,16732,16733,16735,16737,16739,16741,16743,16746,16748,16750,16752],{"class":1274,"line":1340},[1272,16734,1315],{"class":1278},[1272,16736,13973],{"class":1282},[1272,16738,5388],{"class":1286},[1272,16740,1324],{"class":1278},[1272,16742,1328],{"class":1327},[1272,16744,16745],{"class":1331},"app/ogrenci.js",[1272,16747,1328],{"class":1327},[1272,16749,1572],{"class":1278},[1272,16751,13973],{"class":1282},[1272,16753,1290],{"class":1278},[1272,16755,16756,16758,16760,16762,16764,16766,16769,16771,16773,16775],{"class":1274,"line":1373},[1272,16757,1315],{"class":1278},[1272,16759,13973],{"class":1282},[1272,16761,5388],{"class":1286},[1272,16763,1324],{"class":1278},[1272,16765,1328],{"class":1327},[1272,16767,16768],{"class":1331},"app/servis.js",[1272,16770,1328],{"class":1327},[1272,16772,1572],{"class":1278},[1272,16774,13973],{"class":1282},[1272,16776,1290],{"class":1278},[1272,16778,16779,16781,16783,16785,16787,16789,16792,16794,16796,16798],{"class":1274,"line":1395},[1272,16780,1315],{"class":1278},[1272,16782,13973],{"class":1282},[1272,16784,5388],{"class":1286},[1272,16786,1324],{"class":1278},[1272,16788,1328],{"class":1327},[1272,16790,16791],{"class":1331},"app/okul.js",[1272,16793,1328],{"class":1327},[1272,16795,1572],{"class":1278},[1272,16797,13973],{"class":1282},[1272,16799,1290],{"class":1278},[1272,16801,16802,16804,16806],{"class":1274,"line":1401},[1272,16803,1388],{"class":1278},[1272,16805,1307],{"class":1282},[1272,16807,1290],{"class":1278},[1272,16809,16810,16812,16814],{"class":1274,"line":1407},[1272,16811,1295],{"class":1278},[1272,16813,1427],{"class":1282},[1272,16815,1290],{"class":1278},[1272,16817,16818],{"class":1274,"line":1413},[1272,16819,1410],{"emptyLinePlaceholder":352},[1272,16821,16822,16824,16826],{"class":1274,"line":1422},[1272,16823,1388],{"class":1278},[1272,16825,1427],{"class":1282},[1272,16827,1290],{"class":1278},[1272,16829,16830,16832,16834],{"class":1274,"line":1432},[1272,16831,1388],{"class":1278},[1272,16833,1268],{"class":1282},[1272,16835,1290],{"class":1278},[643,16837,16838,16839,16842],{},"Sayfaya metinler yazılmadı. Hemen ",[646,16840,16841],{},"Chrome Developer Tools","'u açalım ve inceleyelim.",[643,16844,16845],{},[895,16846],{"alt":16847,"src":16848},"Hata bilgisi","/images/2014/04/2014-04-28+18_25_50.jpg",[655,16850,16851],{},[658,16852,5881,16853,16856,16857,16859],{},[646,16854,16855],{},"Okul"," henüz oluşturulmadığından hata verdi. ",[646,16858,16371],{}," sayfasında script dosyalarının sırasını\nşöyle değiştirip tekrar deneyelim;",[1264,16861,16863],{"className":1266,"code":16862,"language":1268,"meta":346,"style":346},"\u003C!DOCTYPE html>\n\u003Chtml xmlns=\"http://www.w3.org/1999/xhtml\">\n\u003Chead>\n    \u003Ctitle>\u003C/title>\n    \u003Cscript src=\"app/servis.js\">\u003C/script>\n    \u003Cscript src=\"app/okul.js\">\u003C/script>\n    \u003Cscript src=\"app/ogrenci.js\">\u003C/script>\n\u003C/head>\n\u003Cbody>\n\n\u003C/body>\n\u003C/html>\n",[799,16864,16865,16875,16893,16901,16913,16935,16957,16979,16987,16995,16999,17007],{"__ignoreMap":346},[1272,16866,16867,16869,16871,16873],{"class":1274,"line":1275},[1272,16868,1279],{"class":1278},[1272,16870,1283],{"class":1282},[1272,16872,1287],{"class":1286},[1272,16874,1290],{"class":1278},[1272,16876,16877,16879,16881,16883,16885,16887,16889,16891],{"class":1274,"line":347},[1272,16878,1295],{"class":1278},[1272,16880,1268],{"class":1282},[1272,16882,16699],{"class":1286},[1272,16884,1324],{"class":1278},[1272,16886,1328],{"class":1327},[1272,16888,16706],{"class":1331},[1272,16890,1328],{"class":1327},[1272,16892,1290],{"class":1278},[1272,16894,16895,16897,16899],{"class":1274,"line":1302},[1272,16896,1295],{"class":1278},[1272,16898,1307],{"class":1282},[1272,16900,1290],{"class":1278},[1272,16902,16903,16905,16907,16909,16911],{"class":1274,"line":1312},[1272,16904,1315],{"class":1278},[1272,16906,1378],{"class":1282},[1272,16908,1572],{"class":1278},[1272,16910,1378],{"class":1282},[1272,16912,1290],{"class":1278},[1272,16914,16915,16917,16919,16921,16923,16925,16927,16929,16931,16933],{"class":1274,"line":1340},[1272,16916,1315],{"class":1278},[1272,16918,13973],{"class":1282},[1272,16920,5388],{"class":1286},[1272,16922,1324],{"class":1278},[1272,16924,1328],{"class":1327},[1272,16926,16768],{"class":1331},[1272,16928,1328],{"class":1327},[1272,16930,1572],{"class":1278},[1272,16932,13973],{"class":1282},[1272,16934,1290],{"class":1278},[1272,16936,16937,16939,16941,16943,16945,16947,16949,16951,16953,16955],{"class":1274,"line":1373},[1272,16938,1315],{"class":1278},[1272,16940,13973],{"class":1282},[1272,16942,5388],{"class":1286},[1272,16944,1324],{"class":1278},[1272,16946,1328],{"class":1327},[1272,16948,16791],{"class":1331},[1272,16950,1328],{"class":1327},[1272,16952,1572],{"class":1278},[1272,16954,13973],{"class":1282},[1272,16956,1290],{"class":1278},[1272,16958,16959,16961,16963,16965,16967,16969,16971,16973,16975,16977],{"class":1274,"line":1395},[1272,16960,1315],{"class":1278},[1272,16962,13973],{"class":1282},[1272,16964,5388],{"class":1286},[1272,16966,1324],{"class":1278},[1272,16968,1328],{"class":1327},[1272,16970,16745],{"class":1331},[1272,16972,1328],{"class":1327},[1272,16974,1572],{"class":1278},[1272,16976,13973],{"class":1282},[1272,16978,1290],{"class":1278},[1272,16980,16981,16983,16985],{"class":1274,"line":1401},[1272,16982,1388],{"class":1278},[1272,16984,1307],{"class":1282},[1272,16986,1290],{"class":1278},[1272,16988,16989,16991,16993],{"class":1274,"line":1407},[1272,16990,1295],{"class":1278},[1272,16992,1427],{"class":1282},[1272,16994,1290],{"class":1278},[1272,16996,16997],{"class":1274,"line":1413},[1272,16998,1410],{"emptyLinePlaceholder":352},[1272,17000,17001,17003,17005],{"class":1274,"line":1422},[1272,17002,1388],{"class":1278},[1272,17004,1427],{"class":1282},[1272,17006,1290],{"class":1278},[1272,17008,17009,17011,17013],{"class":1274,"line":1432},[1272,17010,1388],{"class":1278},[1272,17012,1268],{"class":1282},[1272,17014,1290],{"class":1278},[643,17016,17017],{},[895,17018],{"alt":17019,"src":17020},"Sayfa görünümü","/images/2014/04/2014-04-28+18_28_53.jpg",[643,17022,17023],{},"Bu sefer sayfamız geldi. Ancak, gerçek bir projede 3 dosyadan çok daha fazla dosyalar, metodlar ve bağımlılıklar\nolacaktır. Ayrıca, sayfaya eklediğimiz her script dosyası, sunucudan dosya talebine sebep olacaktır ki, bu performansı\ndüşürecektir. Bu noktada, tüm işlemleri tek script dosyasında yapmak düşünülebilir. Ancak inanın bana iş tamamen içinden\nçıkılmaz bir hal alacaktır.",[643,17025,17026],{},"RequireJs tüm bu sorunları çözmek için hazırlanmış bir yapıdır ve işini gerçekten iyi yapıyor.",[643,17028,17029],{},[646,17030,17031],{},"Şimdi aynı örneği, RequireJs yardımıyla hazırlayılım;",[655,17033,17034,17041,17063,17073],{},[658,17035,17036,17037,17040],{},"Projemizin ana dizinine, ",[646,17038,17039],{},"libs"," adında klasör ekleyelim.",[658,17042,17043,17047,17048,17051,17052,17055,17056,17059,17060,17062],{},[771,17044,17045],{"href":17045,"rel":17046},"http://www.requirejs.org/docs/download.html",[878]," adresine girelim ve *\n",[5583,17049,17050],{},"required.js","* dosyamızı indirelim. Burada ",[646,17053,17054],{},"minified"," ya da ",[646,17057,17058],{},"with comments"," olan versiyonlarını indirebilirsiniz.\nTest ortamında farketmez, ancak üretim ortamında ",[646,17061,17054],{}," versiyon kullanın.",[658,17064,17065,17066,17069,17070,17072],{},"İndirdiğimiz, ",[646,17067,17068],{},"require.js"," dosyamızı ",[646,17071,17039],{}," klasörünün içerisine atalım.",[658,17074,17075,17076,17079],{},"Ana dizine, ",[646,17077,17078],{},"main"," adında bir javascript dosyası ekleyelim ve içeriğini aşağıdaki gibi dolduralım;",[1264,17081,17083],{"className":16424,"code":17082,"language":16426,"meta":346,"style":346},"requirejs.config({\n    \"baseUrl\": \"app\",\n});\n\nrequirejs([\"ogrenci\"]);\n",[799,17084,17085,17099,17122,17131,17135],{"__ignoreMap":346},[1272,17086,17087,17090,17092,17095,17097],{"class":1274,"line":1275},[1272,17088,17089],{"class":1384},"requirejs",[1272,17091,9220],{"class":1278},[1272,17093,17094],{"class":14037},"config",[1272,17096,14049],{"class":1384},[1272,17098,4271],{"class":1278},[1272,17100,17101,17104,17108,17110,17112,17115,17117,17119],{"class":1274,"line":347},[1272,17102,17103],{"class":1327},"    \"",[1272,17105,17107],{"class":17106},"sZUrc","baseUrl",[1272,17109,1328],{"class":1327},[1272,17111,13647],{"class":1278},[1272,17113,17114],{"class":1327}," \"",[1272,17116,16377],{"class":1331},[1272,17118,1328],{"class":1327},[1272,17120,17121],{"class":1278},",\n",[1272,17123,17124,17127,17129],{"class":1274,"line":1302},[1272,17125,17126],{"class":1278},"}",[1272,17128,4213],{"class":1384},[1272,17130,13666],{"class":1278},[1272,17132,17133],{"class":1274,"line":1312},[1272,17134,1410],{"emptyLinePlaceholder":352},[1272,17136,17137,17139,17142,17144,17146,17148,17151],{"class":1274,"line":1340},[1272,17138,17089],{"class":14037},[1272,17140,17141],{"class":1384},"([",[1272,17143,1328],{"class":1327},[1272,17145,16533],{"class":1331},[1272,17147,1328],{"class":1327},[1272,17149,17150],{"class":1384},"])",[1272,17152,13666],{"class":1278},[655,17154,17155],{},[658,17156,17157,17159],{},[646,17158,16371],{}," dosyamızın içeriğini aşağıdaki gibi güncelleyelim;",[1264,17161,17163],{"className":1266,"code":17162,"language":1268,"meta":346,"style":346},"\u003C!DOCTYPE html>\n\u003Chtml xmlns=\"http://www.w3.org/1999/xhtml\">\n\u003Chead>\n    \u003Ctitle>\u003C/title>\n    \u003Cscript src=\"libs/require.js\" data-main=\"main\">\u003C/script>\n\u003C/head>\n\u003Cbody>\n\u003C/body>\n\u003C/html>\n",[799,17164,17165,17175,17193,17201,17213,17247,17255,17263,17271],{"__ignoreMap":346},[1272,17166,17167,17169,17171,17173],{"class":1274,"line":1275},[1272,17168,1279],{"class":1278},[1272,17170,1283],{"class":1282},[1272,17172,1287],{"class":1286},[1272,17174,1290],{"class":1278},[1272,17176,17177,17179,17181,17183,17185,17187,17189,17191],{"class":1274,"line":347},[1272,17178,1295],{"class":1278},[1272,17180,1268],{"class":1282},[1272,17182,16699],{"class":1286},[1272,17184,1324],{"class":1278},[1272,17186,1328],{"class":1327},[1272,17188,16706],{"class":1331},[1272,17190,1328],{"class":1327},[1272,17192,1290],{"class":1278},[1272,17194,17195,17197,17199],{"class":1274,"line":1302},[1272,17196,1295],{"class":1278},[1272,17198,1307],{"class":1282},[1272,17200,1290],{"class":1278},[1272,17202,17203,17205,17207,17209,17211],{"class":1274,"line":1312},[1272,17204,1315],{"class":1278},[1272,17206,1378],{"class":1282},[1272,17208,1572],{"class":1278},[1272,17210,1378],{"class":1282},[1272,17212,1290],{"class":1278},[1272,17214,17215,17217,17219,17221,17223,17225,17228,17230,17233,17235,17237,17239,17241,17243,17245],{"class":1274,"line":1340},[1272,17216,1315],{"class":1278},[1272,17218,13973],{"class":1282},[1272,17220,5388],{"class":1286},[1272,17222,1324],{"class":1278},[1272,17224,1328],{"class":1327},[1272,17226,17227],{"class":1331},"libs/require.js",[1272,17229,1328],{"class":1327},[1272,17231,17232],{"class":1286}," data-main",[1272,17234,1324],{"class":1278},[1272,17236,1328],{"class":1327},[1272,17238,17078],{"class":1331},[1272,17240,1328],{"class":1327},[1272,17242,1572],{"class":1278},[1272,17244,13973],{"class":1282},[1272,17246,1290],{"class":1278},[1272,17248,17249,17251,17253],{"class":1274,"line":1373},[1272,17250,1388],{"class":1278},[1272,17252,1307],{"class":1282},[1272,17254,1290],{"class":1278},[1272,17256,17257,17259,17261],{"class":1274,"line":1395},[1272,17258,1295],{"class":1278},[1272,17260,1427],{"class":1282},[1272,17262,1290],{"class":1278},[1272,17264,17265,17267,17269],{"class":1274,"line":1401},[1272,17266,1388],{"class":1278},[1272,17268,1427],{"class":1282},[1272,17270,1290],{"class":1278},[1272,17272,17273,17275,17277],{"class":1274,"line":1407},[1272,17274,1388],{"class":1278},[1272,17276,1268],{"class":1282},[1272,17278,1290],{"class":1278},[655,17280,17281],{},[658,17282,17283,17285],{},[646,17284,16791],{}," dosyasının içeriğini aşağıdaki gibi değiştirelim;",[1264,17287,17289],{"className":16424,"code":17288,"language":16426,"meta":346,"style":346},"requirejs.config({\n\"baseUrl\": \"app\",\n});\n\nrequirejs([\"ogrenci\"]);\n",[799,17290,17291,17303,17321,17329,17333],{"__ignoreMap":346},[1272,17292,17293,17295,17297,17299,17301],{"class":1274,"line":1275},[1272,17294,17089],{"class":1384},[1272,17296,9220],{"class":1278},[1272,17298,17094],{"class":14037},[1272,17300,14049],{"class":1384},[1272,17302,4271],{"class":1278},[1272,17304,17305,17307,17309,17311,17313,17315,17317,17319],{"class":1274,"line":347},[1272,17306,1328],{"class":1327},[1272,17308,17107],{"class":17106},[1272,17310,1328],{"class":1327},[1272,17312,13647],{"class":1278},[1272,17314,17114],{"class":1327},[1272,17316,16377],{"class":1331},[1272,17318,1328],{"class":1327},[1272,17320,17121],{"class":1278},[1272,17322,17323,17325,17327],{"class":1274,"line":1302},[1272,17324,17126],{"class":1278},[1272,17326,4213],{"class":1384},[1272,17328,13666],{"class":1278},[1272,17330,17331],{"class":1274,"line":1312},[1272,17332,1410],{"emptyLinePlaceholder":352},[1272,17334,17335,17337,17339,17341,17343,17345,17347],{"class":1274,"line":1340},[1272,17336,17089],{"class":14037},[1272,17338,17141],{"class":1384},[1272,17340,1328],{"class":1327},[1272,17342,16533],{"class":1331},[1272,17344,1328],{"class":1327},[1272,17346,17150],{"class":1384},[1272,17348,13666],{"class":1278},[655,17350,17351],{},[658,17352,17353,17356],{},[646,17354,17355],{},"app/servis.js d","osyasının içeriğini aşağıdaki gibi değiştirelim;",[1264,17358,17360],{"className":16424,"code":17359,"language":16426,"meta":346,"style":346},"define(function () {\n    return {\n        Yazdir: function (parameters) {\n        document.write(parameters);\n    }\n}\n});\n",[799,17361,17362,17375,17383,17401,17417,17421,17425],{"__ignoreMap":346},[1272,17363,17364,17367,17369,17371,17373],{"class":1274,"line":1275},[1272,17365,17366],{"class":14037},"define",[1272,17368,14049],{"class":1384},[1272,17370,14053],{"class":14052},[1272,17372,14056],{"class":1278},[1272,17374,13638],{"class":1278},[1272,17376,17377,17381],{"class":1274,"line":347},[1272,17378,17380],{"class":17379},"sVHd0","    return",[1272,17382,13638],{"class":1278},[1272,17384,17385,17388,17390,17392,17394,17397,17399],{"class":1274,"line":1302},[1272,17386,17387],{"class":14037},"        Yazdir",[1272,17389,13647],{"class":1278},[1272,17391,16456],{"class":14052},[1272,17393,16459],{"class":1278},[1272,17395,17396],{"class":16462},"parameters",[1272,17398,4213],{"class":1278},[1272,17400,13638],{"class":1278},[1272,17402,17403,17405,17407,17409,17411,17413,17415],{"class":1274,"line":1312},[1272,17404,16472],{"class":1384},[1272,17406,9220],{"class":1278},[1272,17408,16477],{"class":14037},[1272,17410,14049],{"class":14067},[1272,17412,17396],{"class":1384},[1272,17414,4213],{"class":14067},[1272,17416,13666],{"class":1278},[1272,17418,17419],{"class":1274,"line":1340},[1272,17420,4534],{"class":1278},[1272,17422,17423],{"class":1274,"line":1373},[1272,17424,2677],{"class":1278},[1272,17426,17427,17429,17431],{"class":1274,"line":1395},[1272,17428,17126],{"class":1278},[1272,17430,4213],{"class":1384},[1272,17432,13666],{"class":1278},[655,17434,17435],{},[658,17436,17437,17285],{},[646,17438,16745],{},[1264,17440,17442],{"className":16424,"code":17441,"language":16426,"meta":346,"style":346},"define([\"okul\", \"servis\"], function (ok, ser) {\n    ok.Yazdir(\"11-a öğrencisi\");\n    ser.Yazdir(\"vasfi rıza zobunun servisi\");\n});\n",[799,17443,17444,17484,17505,17526],{"__ignoreMap":346},[1272,17445,17446,17448,17450,17452,17454,17456,17458,17460,17462,17464,17466,17468,17470,17472,17475,17477,17480,17482],{"class":1274,"line":1275},[1272,17447,17366],{"class":14037},[1272,17449,17141],{"class":1384},[1272,17451,1328],{"class":1327},[1272,17453,16463],{"class":1331},[1272,17455,1328],{"class":1327},[1272,17457,711],{"class":1278},[1272,17459,17114],{"class":1327},[1272,17461,16634],{"class":1331},[1272,17463,1328],{"class":1327},[1272,17465,13819],{"class":1384},[1272,17467,711],{"class":1278},[1272,17469,16456],{"class":14052},[1272,17471,16459],{"class":1278},[1272,17473,17474],{"class":16462},"ok",[1272,17476,711],{"class":1278},[1272,17478,17479],{"class":16462}," ser",[1272,17481,4213],{"class":1278},[1272,17483,13638],{"class":1278},[1272,17485,17486,17489,17491,17493,17495,17497,17499,17501,17503],{"class":1274,"line":347},[1272,17487,17488],{"class":1384},"    ok",[1272,17490,9220],{"class":1278},[1272,17492,16450],{"class":14037},[1272,17494,14049],{"class":14067},[1272,17496,1328],{"class":1327},[1272,17498,16623],{"class":1331},[1272,17500,1328],{"class":1327},[1272,17502,4213],{"class":14067},[1272,17504,13666],{"class":1278},[1272,17506,17507,17510,17512,17514,17516,17518,17520,17522,17524],{"class":1274,"line":1302},[1272,17508,17509],{"class":1384},"    ser",[1272,17511,9220],{"class":1278},[1272,17513,16450],{"class":14037},[1272,17515,14049],{"class":14067},[1272,17517,1328],{"class":1327},[1272,17519,16645],{"class":1331},[1272,17521,1328],{"class":1327},[1272,17523,4213],{"class":14067},[1272,17525,13666],{"class":1278},[1272,17527,17528,17530,17532],{"class":1274,"line":1312},[1272,17529,17126],{"class":1278},[1272,17531,4213],{"class":1384},[1272,17533,13666],{"class":1278},[643,17535,17536],{},"Proje dosyalarımızın görünümü aşağıdaki gibi olacaktır;",[643,17538,17539],{},[895,17540],{"alt":17541,"src":17542},"Proje yapısı","/images/2014/04/2014-04-29+15_02_54.jpg",[643,17544,17545],{},"Projemizi çalıştırdığımızda, aşağıdaki görüntüyü alacağız.",[643,17547,17548],{},[895,17549],{"alt":17550,"src":17551},"Çıktı","/images/2014/04/2014-04-29+15_12_32.jpg",[643,17553,17554],{},"Özetle tüm yapıyı birbirine entegre ettik ve bağımlılıkları birbirine bağladık.",[643,17556,17557,17559],{},[646,17558,16371],{}," sayfasında tek bir script dosyası çağırdık. Diğer tüm dosyalar gerektiğinde asenkron olarak\nyüklenecektir.",[643,17561,17562],{},"Sistemin nasıl çalıştığı ve detayları bir sonraki dersimizde inceleyeceğiz.",[643,17564,1976],{},[1978,17566,17567],{},"html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZUrc, html code.shiki .sZUrc{--shiki-light:#E53935;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}",{"title":346,"searchDepth":347,"depth":347,"links":17569},[],"2014/04/requirejs-logo.jpg","2014-04-30T00:00:00.000Z",{},{"title":143,"description":861},"B8u85iSbPg6jGrDHiuBkhHdprl7VZuD1Cn7C7XOn8p0",{"id":17576,"title":122,"body":17577,"coverImage":17663,"createDate":17664,"description":17665,"extension":350,"meta":17666,"navigation":352,"path":123,"seo":17667,"stem":124,"__hash__":17668},"posts/dersler/orchard-cms/orchard-project-nedir-orchard-cms-seri-1.md",{"type":343,"value":17578,"toc":17661},[17579,17582,17591,17594,17597,17600,17603,17606,17612,17622,17640,17656,17659],[639,17580,122],{"id":17581},"orchard-project-nedir-orchard-cms-seri-1",[643,17583,17584,17585,17587,17588,17590],{},"Orchard Project, Microsoft'un gayriresmi olarak desteklediği, tamamen ",[646,17586,10],{}," üzerine inşa edilmiş bir CMS (\nİçerik Yönetim Sistemi)'dir. Kodlaması ",[646,17589,3591],{}," ile yapılmıştır. Php tarafında bulunan, Joomla yapısı kadar esnek bir\nyapıya sahiptir.",[643,17592,17593],{},"**Cms :**İçerik yönetim sistemleri, site sahibinin ve yetkilendirmiş olduğu kullanıcıların kullanıcı adı, parolası gibi\nhesap bilgileri ile ulaşabildiği yönetim panelini kullanarak, web sitesinde içeriği meydana getiren içerik\nyazıları,ilgili resimler, dosyalar vs. bilgilerini kendi değiştirebildiği, yenilerini ekleyebildiği web programlarıdır.",[643,17595,17596],{},"Orchard'da ciddi bir geliştirici kitlesi vardır. Bu kitle gönüllülük esasına göre sistemi sürekli geliştirmektedir.\nSistemde tema, widget, eklenti ve dil desteği mevcuttur.",[643,17598,17599],{},"Sistemin lisanslaması New Bsd'dir. Bu lisans ile sistemi istediğiniz gibi düzenleyip, satma şansına sahip oluyorsunuz.",[643,17601,17602],{},"Sistem içerisinde tamamen modüler bir yapı kullanılmış. Böylelikle istediğiniz sayfada, istediğiniz modülleri\nkullanabiliyorsunuz.",[643,17604,17605],{},"İyi bir dökümantasyona sahip. Detaylı açıklamalar mevcut. Ancak tek eksik, yeterli bir Türkçe kaynak bulunamaması.\nSistemin %60 civarının Türkçe çevirisi yapılmış durumdadır.",[643,17607,17608],{},[895,17609],{"alt":17610,"src":17611},"Orchard ana sayfa","/images/2014/04/2014-05-13+12_05_08.jpg",[643,17613,17614,17615,16459,17617,17621],{},"Projenin ana sayfasına ",[1272,17616,5939],{},[771,17618,17619],{"href":17619,"rel":17620},"http://www.orchardproject.net",[878],") ulaşabilirsiniz.",[643,17623,17624,17625,17629,17630,17634,17635,17639],{},"Ayrıca dökümantasyona ",[771,17626,5939],{"href":17627,"rel":17628},"http://docs.orchardproject.net",[878],", çeviri\ndosyalarına ",[771,17631,5939],{"href":17632,"rel":17633},"http://orchardproject.net/localize",[878],", eklenti ve temalara\nda ",[771,17636,5939],{"href":17637,"rel":17638},"http://gallery.orchardproject.net",[878]," ulaşabilirsiniz.",[643,17641,17642,17643,4198,17646,17649,17650,17652,17653,17655],{},"İndirme ekranında ",[646,17644,17645],{},"Zip",[646,17647,17648],{},"Source"," olarak iki seçenek mevcut. ",[646,17651,17645],{}," normal derlenmiş dosyaların bulunduğu ve\ndirekt hosta atılabilecek dosyaları barındırır. ",[646,17654,17648],{}," ise Visual Studio'da açıp üzerinde çalışabileceğiniz, kaynak\nkodlarını barındırır.",[643,17657,17658],{},"Bu proje hakkındaki Türkçe kaynak sıkıntısını inşallah gidermek adına bu yazı dizisini geliştireceğim.",[643,17660,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":17662},[],"2014/04/orchard-logo.png","2014-04-30T01:00:00.000Z","Orchard Project, Microsoft'un gayriresmi olarak desteklediği, tamamen Asp.Net Mvc üzerine inşa edilmiş bir CMS (\nİçerik Yönetim Sistemi)'dir. Kodlaması C# ile yapılmıştır. Php tarafında bulunan, Joomla yapısı kadar esnek bir\nyapıya sahiptir.",{},{"title":122,"description":17665},"ig3x3nl-QrEmm8CIXwdlu_7xPy8aNrshgP4tAEN-55s",{"id":17670,"title":130,"body":17671,"coverImage":18017,"createDate":18018,"description":18019,"extension":350,"meta":18020,"navigation":352,"path":131,"seo":18021,"stem":132,"__hash__":18022},"posts/dersler/orchard-cms/orchard-web-matrix-kurulumu-orchard-cms-seri-2.md",{"type":343,"value":17672,"toc":18015},[17673,17676,17684,17688,17691,17697,17702,17716,17722,17734,17740,17749,17755,17760,17766,17774,17780,17789,17795,17809,17815,17823,17829,17836,17842,17847,17853,17861,17867,17872,17878,17884,17969,17975,17980,17986,17995,18001,18007,18010,18013],[639,17674,130],{"id":17675},"orchard-web-matrix-ile-kurulumu-orchard-cms-seri-2",[643,17677,17678],{},[646,17679,17680,17681],{},"Önceki Yazı : ",[771,17682,17683],{"href":123,"title":3389},"Orchard Project Nedir? (Orchard Cms Seri – 1)",[643,17685,17686],{},[646,17687,861],{},[643,17689,17690],{},"Asp.Net Mvc tabanlı Cms'miz olan Orchard'ı tanıdıktan sonra, şimdi biraz daha son kullanıcılar için, Orchard'ın\nsistemimize Web Matrix ile kurulumunu anlatacağız.",[643,17692,17693,17696],{},[646,17694,17695],{},"Web Matrix :"," Microsoft'un 2003 yılında piyasaya sürdüğü, yalnızca Asp.Net değil, Php tabanlı Cms sistemlerini\nkolaylıkla kurmamıza izin veren, ayrıca kodlar üzerinde değişiklikler yapma ve yeni siteler yazma imkanımızın da olduğu,\ntamamen ücretsiz bir platformdur.",[643,17698,17699],{},[646,17700,17701],{},"Web Matrix Kurulumu (Kurulumda Web Matrix 3 sürümü kullanılacaktır)",[655,17703,17704],{},[658,17705,17706,17707,17711,17712,17715],{},"Öncelikle",[771,17708,17709],{"href":17709,"rel":17710},"http://www.microsoft.com/web/webmatrix/",[878]," adresini ziyaret edelim.\nÇıkan ekranda aşağıdaki gibi ",[646,17713,17714],{},"Free Download"," düğmesine tıklayalım.",[643,17717,17718],{},[895,17719],{"alt":17720,"src":17721},"Web matrix sayfası","/images/2014/05/2014-05-13+12_20_17.png",[655,17723,17724],{},[658,17725,17726,17727,17730,17731,17715],{},"Oldukça küçük bir dosya indirilicektir. Bu dosyayı çalıştıralım. Kısa bir yükleme işleminden sonra, ",[646,17728,17729],{},"Web Platformu\nÇalıştırıcısı"," adlı bir program çıkacaktır. ",[646,17732,17733],{},"Yükle",[643,17735,17736],{},[895,17737],{"alt":17738,"src":17739},"Web matrix yükleme ekranı","/images/2014/05/2014-05-13+12_21_40.png",[655,17741,17742],{},[658,17743,17744,17745,17748],{},"Sistemimizde kurulu olmayan ve gerekli olan şeylerin listelendiği bir ekran ve onay kısmı çıkacaktır. ",[646,17746,17747],{},"Kabul Ediyorum","'a tıklayarak yükleme işlemini başlatalım.",[643,17750,17751],{},[895,17752],{"alt":17753,"src":17754},"Web matrix onay ekranı","/images/2014/05/2014-05-13+12_22_13.png",[655,17756,17757],{},[658,17758,17759],{},"Kurulum aşağıdaki gibi başlatılacaktır. Bitmesini bekleyelim.",[643,17761,17762],{},[895,17763],{"alt":17764,"src":17765},"We matrix yükleme süreci","/images/2014/05/2014-05-13+12_22_41.png",[655,17767,17768],{},[658,17769,17770,17771,17715],{},"Yükleme işlemi bittikten sonra,",[646,17772,17773],{},"Bitir",[643,17775,17776],{},[895,17777],{"alt":17778,"src":17779},"Web matrix yükleme bitimi","/images/2014/05/2014-05-13+12_23_19.png",[655,17781,17782],{},[658,17783,17784,17785,17788],{},"Web Matrix programını çalıştıralım. ",[646,17786,17787],{},"Yeni>Uygulama Galerisi"," yolunu izleyelim.",[643,17790,17791],{},[895,17792],{"alt":17793,"src":17794},"Web matrix yeni uygulama","/images/2014/05/2014-05-14+12_46_10.png",[655,17796,17797],{},[658,17798,17799,938,17802,17805,17806,17715],{},[646,17800,17801],{},"Orchard CMS",[646,17803,17804],{},"Site Adı","'na istediğimiz ismi verip, ",[646,17807,17808],{},"Sonraki",[643,17810,17811],{},[895,17812],{"alt":17813,"src":17814},"Orchard isimlendirme","/images/2014/05/2014-05-14+12_49_09.png",[655,17816,17817],{},[658,17818,17819,17820,17822],{},"Sonraki bilgilendirme ekranında tekrar ",[646,17821,17808],{},"'ye tıklayalım.",[643,17824,17825],{},[895,17826],{"alt":17827,"src":17828},"Orchard cms bilgilendirme ekranı","/images/2014/05/2014-05-14+12_49_48.png",[655,17830,17831],{},[658,17832,17833,17834,17715],{},"Orchard'ın kurulması için gerekenlerin listelendiği ekranda,",[646,17835,17747],{},[643,17837,17838],{},[895,17839],{"alt":17840,"src":17841},"Orchard gereksinimler","/images/2014/05/2014-05-14+12_50_56.png",[655,17843,17844],{},[658,17845,17846],{},"Daha sonra kurulum işleminin bitmesini bekleyelim.",[643,17848,17849],{},[895,17850],{"alt":17851,"src":17852},"Orchard kurulum işlemi","/images/2014/05/2014-05-14+12_53_34.png",[655,17854,17855],{},[658,17856,17857,17858,17715],{},"Yükleme işlemleri bittikten sonra, ",[646,17859,17860],{},"Tamam",[643,17862,17863],{},[895,17864],{"alt":17865,"src":17866},"Orchard yükleme bitimi","/images/2014/05/2014-05-14+12_55_49.png",[655,17868,17869],{},[658,17870,17871],{},"Kurulum sonrası aşağıdaki ekran gelecek ve Orchard yapılandırmasını yapacağımız kısım otomatik olarak tarayıcımızda\naçılacaktır.",[643,17873,17874],{},[895,17875],{"alt":17876,"src":17877},"Orchard web","/images/2014/05/2014-05-14+12_57_10.png",[643,17879,17880],{},[895,17881],{"alt":17882,"src":17883},"Orchard kurulum ayarları","/images/2014/05/2014-05-14+12_58_49.png",[655,17885,17886,17963],{},[658,17887,17888,17889],{},"Yukarıdan aşağı içeriktekileri sıralarsak eğer,\n",[655,17890,17891,17897,17903,17909,17915,17945],{},[658,17892,17893,17896],{},[646,17894,17895],{},"What is the name of your site? :"," Buraya sitemizin ismini,",[658,17898,17899,17902],{},[646,17900,17901],{},"Choose a user name :"," Buraya panel kullanıcı adımızı,",[658,17904,17905,17908],{},[646,17906,17907],{},"Choose a password :"," Buraya panel kullanıcı şifremizi,",[658,17910,17911,17914],{},[646,17912,17913],{},"Confirm the password :"," Bu kısma da panel kullanıcı şifremizi tekrar giriyoruz.",[658,17916,17917,17920,17921,17924,17925,17928,17929,4198,17932,17935,17936,17938,17939,17055,17942,17944],{},[646,17918,17919],{},"How would you like to store your data? :"," Bu kısımda kullanacağımız veritabanını seçiyoruz. ",[5583,17922,17923],{},"Seçeneklerimiz,"," *\n",[5583,17926,17927],{},"Sql Server Compact","*, ",[646,17930,17931],{},"Sql Server - Sql Server Express",[646,17933,17934],{},"MySql"," veritabanı. Bu kısımda test amaçlı olarak\nhiç uğraşmadan ",[646,17937,17927],{},"'ı seçebiliriz. Eğer ",[646,17940,17941],{},"Sql Server",[646,17943,17934],{},"'i seçecek olursak,\ngerekli bağlantı bilgilerini yazmamız gerekecektir.",[658,17946,17947,17950,17951,17954,17955,17958,17959,17962],{},[646,17948,17949],{},"Choose an Orchard Recipe :"," Bu kısımda oluşturulacak site içeriğinin yapısını seçebiliyoruz. ",[646,17952,17953],{},"Default",", genel\nözelliklerin olduğu ve benim tavsiye ettiğim tercih, ",[646,17956,17957],{},"Blog",", blog sistemleri için, ",[646,17960,17961],{},"Core"," ile sadece çekirdek\nyapının yüklenmesini sağlıyoruz.",[658,17964,17965,17966,17715],{},"Ayarlarımızı yaptıktan sonra ",[646,17967,17968],{},"Finish Setup",[643,17970,17971],{},[895,17972],{"alt":17973,"src":17974},"Orchard yükleme ayarları sonu","/images/2014/05/2014-05-14+13_14_00.png",[655,17976,17977],{},[658,17978,17979],{},"İşlemlerin tamamlanmasını bekliyoruz.",[643,17981,17982],{},[895,17983],{"alt":17984,"src":17985},"Orchard yükleme süreci","/images/2014/05/2014-05-14+13_18_13.png",[655,17987,17988],{},[658,17989,17990,17991,17994],{},"İşlemlerimizin bitiminin ardından, aşağıdaki ekran gelecektir. Sayfanın alt kısmında bulunan, ",[646,17992,17993],{},"Dashboard"," linkine\ntıklayarak panelinize girebilirsiniz.",[643,17996,17997],{},[895,17998],{"alt":17999,"src":18000},"Orchard site sayfası","/images/2014/05/2014-05-14+13_20_37.png",[643,18002,18003],{},[895,18004],{"alt":18005,"src":18006},"Orchard panel ekranı","/images/2014/05/2014-05-14+13_22_45.png",[643,18008,18009],{},"Evet arkadaşlar, Web Matrix üzerinden Orchard Cms'nin kurulumunu işledik.",[643,18011,18012],{},"Bir sonraki dersimizde, kaynak kodları indirerek Visual Studio üzerinden site kurulumunu anlatacağız.",[643,18014,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":18016},[],"2014/05/2014-05-14+13_22_45.png","2014-05-14T00:00:00.000Z","Önceki Yazı : Orchard Project Nedir? (Orchard Cms Seri – 1)",{},{"title":130,"description":18019},"pLFosGTjDZYZpAL288lFwXwtuuTaNUarZScleI-Vpyc",{"id":18024,"title":126,"body":18025,"coverImage":18172,"createDate":18173,"description":861,"extension":350,"meta":18174,"navigation":352,"path":127,"seo":18175,"stem":128,"__hash__":18176},"posts/dersler/orchard-cms/orchard-visual-studio-ile-kurulumu-orchard-cms-seri-3.md",{"type":343,"value":18026,"toc":18170},[18027,18030,18034,18041,18044,18049,18065,18071,18083,18089,18105,18111,18116,18122,18130,18135,18151,18156,18161,18165,18168],[639,18028,126],{"id":18029},"orchard-visual-studio-ile-kurulumu-orchard-cms-seri-3",[643,18031,18032],{},[646,18033,861],{},[643,18035,18036],{},[646,18037,17680,18038],{},[771,18039,18040],{"href":131},"Orchard – Web Matrix Kurulumu? (Orchard Cms Seri – 2)​",[643,18042,18043],{},"Önceki yazımızda, Orchard CMS'yi Web Matrix üzerinde kurmuştuk. Ancak böyle bir kurulum, bize kaynak kodları üzerinde\nçalışma imkanı vermiyor. Yazılımcı için kaynak kodları üzerinde derleme yapmak, eklenti ve tema yazmak için, Visual\nStudio üzerinde kaynak kod versiyonu ile çalışmamız gerekecektir.",[643,18045,18046],{},[5583,18047,18048],{},"Hemen kuruluma geçelim;",[655,18050,18051],{},[658,18052,18053,18054,18057,18058,18061,18062,18064],{},"Aşağıdaki ekranda da göreceğiniz üzere, iki indirme linki var. ",[646,18055,18056],{},"Download the Source"," versiyonu kaynak kodlarını, ",[646,18059,18060],{},"Download as a Zip"," versiyonu derlenmiş ve direkt sunucuya atılabilecek versiyonu içerir. Biz ",[646,18063,18056],{},"\nile kaynak kod versiyonunu indireceğiz.",[643,18066,18067],{},[895,18068],{"alt":18069,"src":18070},"Orchard kaynak kod indirme","/images/2014/05/2014-05-22+13_07_37.jpg",[655,18072,18073,18080],{},[658,18074,18075,18076,18079],{},"Dosyamız ",[646,18077,18078],{},"zip"," formatında otomatik olarak indirilmeye başlanacaktır.",[658,18081,18082],{},"Dosyamızın içeriği aşağıdakine benzer görünecektir. Biz tüm dosyaları bir klasöre çıkarıyoruz.",[643,18084,18085],{},[895,18086],{"alt":18087,"src":18088},"Orchard klasör içeriği","/images/2014/05/2014-05-22+13_16_13.jpg",[655,18090,18091,18094],{},[658,18092,18093],{},"Dosyalarımızı çıkardıktan sonra, Visual Studio'yu açıyoruz(Burada indirdiğimiz Orchard'ın Framework versiyonunun,\nVisual Studio sürümü tarafından desteklenmesine dikkat ediniz).",[658,18095,18096,18097,18100,18101,18104],{},"Visual Studio menüsünden ",[646,18098,18099],{},"File>Open>Project"," yolunu takip ederek, dosyaları çıkardığımız klasörde, src dizini\naltındaki ",[646,18102,18103],{},"Orchard.sln"," dosyasını açıyoruz(Projenin açılması uzun sürebilmektedir).",[643,18106,18107],{},[895,18108],{"alt":18109,"src":18110},"Orchard proje açmak","/images/2014/05/2014-05-22+13_21_49.jpg",[655,18112,18113],{},[658,18114,18115],{},"Projemiz aşağıdaki gibi açıldı.",[643,18117,18118],{},[895,18119],{"alt":18120,"src":18121},"Orchard projesi","/images/2014/05/2014-05-22+13_25_57.jpg",[655,18123,18124,18127],{},[658,18125,18126],{},"Şimdi F5 tuşuna basarak projeyi çalıştırıyoruz (Derleme işlemi oldukça uzun sürebilmektedir).",[658,18128,18129],{},"Otomatik olarak web tarayıcımız açılarak, karşımıza aşağıdaki ekran gelecektir.",[643,18131,18132],{},[895,18133],{"alt":17882,"src":18134},"/images/2014/05/2014-05-22+13_32_17.jpg",[655,18136,18137],{},[658,18138,18139,18140,18143,18144,18147,18148,18150],{},"Buradaki detayları bir önceki dersimizde detaylıca anlatmıştık. Oradan inceleyebilirsiniz. Burada farklı olarak, ",[646,18141,18142],{},"Sql\nServer Compact"," yerine ",[646,18145,18146],{},"Sql LocalDb"," kullandık (LocalDb ile alakalı detaylar, bloğumda bulunabilir). Bilgilerimizi\ngirdikten sonra, ",[646,18149,17968],{}," düğmesine tıklayalım. Kısa süren bir yükleme işlemi olacaktır.",[643,18152,18153],{},[895,18154],{"alt":17984,"src":18155},"/images/2014/05/2014-05-22+13_38_21.jpg",[655,18157,18158],{},[658,18159,18160],{},"Yükleme işleminden sonra, yeni sitemiz karşımıza gelecektir.",[643,18162,18163],{},[895,18164],{"alt":17999,"src":18000},[643,18166,18167],{},"Evet, arkadaşlar böylelikle Orchard kurulumunu hem Web Matrix, hem de Visual Studio üzerinden incelemiş olduk. Bundan\nsonraki süreçte sistemin detaylarına inmeye başlayacağız.",[643,18169,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":18171},[],"2014/05/visual-studio.jpg","2014-05-22T00:00:00.000Z",{},{"title":126,"description":861},"GO_0kiFf6YIr-acWGv5P2cZt9qXsnoCH1mY4MyxheXI",{"id":18178,"title":83,"body":18179,"coverImage":19479,"createDate":19480,"description":861,"extension":350,"meta":19481,"navigation":352,"path":84,"seo":19482,"stem":85,"__hash__":19483},"posts/dersler/asp-net-mvc/asp-net-mvc-routing-mekanizmasi-ve-mvc-5-ile-gelen-yenilikler.md",{"type":343,"value":18180,"toc":19477},[18181,18184,18188,18191,18194,18197,18204,18207,18245,18250,18256,18269,18275,18294,18300,18307,18316,18322,18341,18347,18354,18360,18372,18377,18397,18403,18419,18425,18430,18438,18444,18449,18455,18460,18762,18771,18777,18785,18791,18800,18806,18813,18818,18823,18826,18834,18840,18846,18849,18857,18863,18872,18878,18889,18895,18898,18908,18911,18922,18928,18937,18943,18952,18958,18961,18966,18981,18989,18995,19000,19006,19016,19022,19035,19041,19046,19053,19056,19069,19075,19082,19088,19096,19102,19108,19113,19123,19126,19133,19139,19147,19153,19158,19197,19208,19214,19223,19229,19234,19241,19258,19264,19271,19277,19280,19286,19292,19297,19321,19326,19332,19335,19342,19348,19351,19362,19368,19377,19436,19441,19447,19456,19462,19465,19471,19474],[639,18182,83],{"id":18183},"aspnet-mvc-routing-mekanizması-ve-mvc-5-ile-gelen-yenilikler",[643,18185,18186],{},[646,18187,861],{},[643,18189,18190],{},"Yukarıdaki resimde, bir ışıklı kavşak görmekteyiz. Işıklar sayesinde araçlar ve yayalar, gidecekleri yere güven\niçerisinde ulaşabilmektedirler.",[643,18192,18193],{},"Asp.Net Mvc'de Routing yapısını da, aslında bu şekilde değerlendirme imkanına sahibiz. Sitemize giren bir ziyaretçi,\ntalep ettiği sayfaya, bizim kurduğumuz Routing mekanizması ile ulaşabilmektedir.",[643,18195,18196],{},"Asp.Net Web Forms'da bu yapı çok daha zordur. Talep edilen her sayfa, sunucuda fiziksel olarak bulunan bir sayfadır. Biz\ndirekt olarak sayfayı adıyla çağırırız. Bu noktada Seo açısından uyumlu linkler oluşturmamızda oldukça zor olmaktadır.\nUrl Rewrite teknikleri ile bu sorunlar aşılmaya çalışılmaktadır.",[643,18198,18199,18200,18203],{},"Asp.Net Mvc, piyasaya sürüldüğünde, Routing mekanizması çok beğenilmiştir. Asp.Net Mvc'de fiziksel olarak sunucuda\nbarınan sayfalar yoktur. Ziyaretçi bir talepte bulunduğunda, Controller içerisindeki Action'u çağırır. Action istediği\nsonucu, istediği View parçasını geriye döndürebilir. Bu da bize ekstra güvenlik ve esneklik sağlamaktadır. Biz bunun\nyanında istersek, bir url'nin istediğimiz bir Action'u çalıştırmasını sağlayabiliriz. Örneğin; ",[646,18201,18202],{},"haberler/spor","\nşeklinde bir linke talepte bulunulduğunda, NewsController içerisinde bulunan, Sport Action'unu çağırabiliriz. Bu kısımda\ntamamen özgürüz.",[643,18205,18206],{},"Küçük bir örnek üzerinden gidelim(Önceki derslerimde, yeni proje oluşturma vs. işlemleri çok detaylı, resimli olarak\nanlatmıştım. İncelemenizde fayda var).;",[655,18208,18209,18216,18230],{},[658,18210,18211,18212,18215],{},"Visual Studio ortamında, yeni bir proje oluşturalım, adına ",[646,18213,18214],{},"RoutingDeneme"," diyelim (Mvc 5 Routing yeniliklerini de\ngörebilmek için, Framework'u .Net Framework 4.5.1 olarak seçmemiz daha iyi olur).",[658,18217,18218,18219,18222,18223,18225,18226,18229],{},"Şablon seçiminde ",[646,18220,18221],{},"Mvc","'yi seçip, ",[646,18224,5611],{}," tıklayalım. ",[646,18227,18228],{},"Windows Azure"," ile ilgili bir seçenek aktif ise, pasif\nedelim.",[658,18231,18232,18233,18236,18237,18240,18241,18244],{},"Projemiz açıldığında, ",[646,18234,18235],{},"App_Start>RouteConfig.cs"," dosyasını açalım. ",[799,18238,18239],{},"RouteConfig"," class'ımızın içerisinde\n",[799,18242,18243],{},"RegisterRoutes"," metodu mevcut.",[643,18246,18247],{},[646,18248,18249],{},"RouteConfig Class'ı",[1264,18251,18254],{"className":18252,"code":18253,"language":2600},[2598],"public class RouteConfig\n{\n    public static void RegisterRoutes(RouteCollection routes)\n    {\n        routes.IgnoreRoute(\"{resource}.axd/{*pathInfo}\");\n\n        routes.MapRoute(\n            name: \"Default\", //Yönlendirmenin adı\n            url: \"{controller}/{action}/{id}\", //Talep olarak gelecek url yapısı\n            defaults: new { controller = \"Home\", action = \"Index\", id = UrlParameter.Optional }  //Gelen talebin\n            //yönlendirileceği, Controller ve Action, varsa parametreler\n        );\n        }\n    }\n",[799,18255,18253],{"__ignoreMap":346},[655,18257,18258,18261],{},[658,18259,18260],{},"Yukarıda da görüldüğü üzere, sistem tarafından eklenmiş otomatik olarak gelen url talebindeki, Controller'i ve Action'\nu çağıran, varsa parametreyi de gönderen bir Route'miz mevcut. Bu yapı, bizim ihtiyaçlarımızı her zaman\nkarşılamayacaktır. Bunun için kendi Route'lerimizi de yazacağız.",[658,18262,18263,5808,18265,18268],{},[646,18264,5693],{},[646,18266,18267],{},"News"," adında bir class ekleyelim. içeriğini aşağıdaki gibi dolduralım.",[1264,18270,18273],{"className":18271,"code":18272,"language":2600},[2598],"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\n\nnamespace RoutingDeneme.Models\n{\npublic class News\n{\npublic int Id { get; set; }\n\n        //Haberin başlığı\n        public string Title { get; set; }\n\n        //Haberin içeriği\n        public string Content { get; set; }\n\n        //Haberin eklenme tarihi\n        public DateTime CreatedDate { get; set; }\n    }\n}\n",[799,18274,18272],{"__ignoreMap":346},[655,18276,18277,18288],{},[658,18278,18279,18280,18283,18284,18287],{},"Haberlerimizi temsil edecek class'ımızı oluşturduktan sonra, şimdi Controller'imize yeni bir ",[646,18281,18282],{},"NewsController"," adında\nController ekleyelim. Şablon olarak ",[646,18285,18286],{},"Controller - Empty","'i seçelim.",[658,18289,18290,18291,18293],{},"Veritabanı yerine, veri kaynağı olarak kullanmak amacıyla, haberlerin olduğu bir liste oluşturacağız. Bunun için, *\n",[5583,18292,18282],{},"*'in içeriğini aşağıdaki gibi hazırlayalım.",[1264,18295,18298],{"className":18296,"code":18297,"language":2600},[2598],"using RoutingDeneme.Models;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\n\nnamespace RoutingDeneme.Controllers\n{\npublic class NewsController : Controller\n{\nList\u003CNews> news;\n\n        public NewsController()\n        {\n            news = new List\u003CNews>();\n            news.Add(new News() { Content = \"Yapılan seçimlerin sonuçları açıklandı.\", CreatedDate = DateTime.Now, Title = \"SecimSonuclari\", Id = 1 });\n            news.Add(new News() { Content = \"Hükümetin yaptığı yeni düzenleme, cezalarda artış öngörüyor.\", CreatedDate = DateTime.Now, Title = \"YeniKanunDuzenlemesi\", Id = 2 });\n            news.Add(new News() { Content = \"Milli takımımızın aldığı bu galibiyette en büyük pay kalecimizin oldu.\", CreatedDate = DateTime.Now, Title = \"MilliTakimGalip\", Id = 3 });\n        }\n    }\n}\n",[799,18299,18297],{"__ignoreMap":346},[643,18301,18302,18303,18306],{},"Yukarıdaki kod bloğunda, öncelikle tüm metodlardan erişebilmek için ",[799,18304,18305],{},"List\u003CNews> news"," elemanını global olarak\ntanımladık. Ardından da, Controller'in initalizer (oluşturucu) metodunda, listemize 3 tane haber ekledik. Böylelikle\nelimizde bir veri kaynağı olmuş oldu.",[655,18308,18309],{},[658,18310,18311,18312,18315],{},"Şimdi Action'larımızı oluşturmaya başlayalım. Öncelikle listemizdeki tüm haberlerimizin geldiği, ",[646,18313,18314],{},"GetNews","\nAction'umuzu aşağıdaki gibi ekleyelim.",[1264,18317,18320],{"className":18318,"code":18319,"language":2600},[2598],"//Tüm haberleri liste halinde getirir.\npublic ActionResult GetNews()\n{\n    return View(news);\n}\n",[799,18321,18319],{"__ignoreMap":346},[655,18323,18324],{},[658,18325,18326,18327,18330,18331,18334,18335,18338,18339,12840],{},"Ardından da, ",[646,18328,18329],{},"Views>News"," içerisine ",[646,18332,18333],{},"GetNews.cshtml"," adlı View dosyamızı ekleyelim. ",[799,18336,18337],{},"ActionResult GetNews()","\nüzerine sağ tıklayarak ",[646,18340,1186],{},[643,18342,18343],{},[895,18344],{"alt":18345,"src":18346},"GetNews View ayarları","/images/2014/06/2014-06-05+11_43_34.jpg",[655,18348,18349],{},[658,18350,18351,18353],{},[646,18352,18314],{}," sayfasındayken, F5 ile projemizi açtığımızda, aşağıdaki görüntüyle karşılaştık. Bu noktada görsel\ndüzenleme ya da Türkçe'leştirme yapmayacağız. Konumuz Routing, dışına çıkmamaya gayret göstereceğim.",[643,18355,18356],{},[895,18357],{"alt":18358,"src":18359},"GetNews metodu ekran çıktısı","/images/2014/06/2014-06-07+11_46_16.jpg",[655,18361,18362],{},[658,18363,18364,18365,18368,18369,18371],{},"Burada adrese dikkat edecek olursak eğer, ",[646,18366,18367],{},"News/GetNews"," şeklinde görünmektedir. Yani Controller'imiz ve Action'umuz\ndirekt adres olarak görüntülenmektedir. Çok daha karışık Action'larımız olacaktır. Bunları direkt adres çubuğunda\ngörüntülemek, güvenlik açığıdır (metodlarımıza direkt erişim mevcut çünkü), Seo'ya uygun değildir (farklı dillerde\nanlaşılır linkler oluşturmak isteyeceğiz) ya da biz farklı yönlendirmeler yapmak isteyeceğiz. Öncelikle ",[646,18370,18314],{},"\nAction'umuz için bir Route yazalım.",[643,18373,18374],{},[646,18375,18376],{},"Yeni Route Ekleme",[655,18378,18379,18383],{},[658,18380,18381,4826],{},[646,18382,18235],{},[658,18384,18385,18387,18388,18390,18391,18393,18394,18396],{},[646,18386,17953],{}," isimli Route her zaman en altta kalmalıdır. Eğer biz Route'mizi ",[646,18389,17953],{}," isimli Route'mizin altına\nyazacak olursak, gelen isteği ",[646,18392,17953],{}," direkt karşılayıp yönlendirmesini yapacak ve bizim Route çalışmayacaktır.\nRoute'mizi aşağıdaki gibi ",[646,18395,17953],{}," Route'sinden önce ekleyelim.",[1264,18398,18401],{"className":18399,"code":18400,"language":2600},[2598],"routes.MapRoute(\nname: \"GetNews\",\nurl: \"haberler/tum-haberler\",\ndefaults: new { controller = \"News\", action = \"GetNews\" }\n);\n",[799,18402,18400],{"__ignoreMap":346},[655,18404,18405],{},[658,18406,18407,18408,18411,18412,18414,18415,18418],{},"Böylelikle adres çubuğuna, ",[646,18409,18410],{},"haberler/tum-haberler"," girildiğinde sistem, ",[646,18413,18314],{}," Action'ununa yönlenecektir.\nŞimdi projemizi çalıştırıp,",[646,18416,18417],{},"localhost:.....(bu kısım sizde farklı olabilir)/haberler/tum-haberler"," adresine girelim.\nAşağıdaki görüntüde görülebileceği gibi, haberlerimiz listelendi.",[643,18420,18421],{},[895,18422],{"alt":18423,"src":18424},"GetNews metodu Route'li ekran çıktısı","/images/2014/06/2014-06-07+11_49_411.jpg",[643,18426,18427],{},[646,18428,18429],{},"Parametreli Route Ekleme",[655,18431,18432],{},[658,18433,18434,18435,18437],{},"Şimdi de, parametreli bir Routing ekleyelim. Verilen Id'ye göre bir haberin görüntülenmesini sağlayalım. Bunun için *\n",[5583,18436,18282],{},"*'e aşağıdaki Action'u ekleyelim.",[1264,18439,18442],{"className":18440,"code":18441,"language":2600},[2598],"//Paramatre olarak gelen id'ye göre haberi getirir.\npublic ActionResult GetNew(int id)\n{\n    return View(news.Where(i => i.Id == id).SingleOrDefault());\n}\n",[799,18443,18441],{"__ignoreMap":346},[655,18445,18446],{},[658,18447,18448],{},"Action'umuza aşağıdaki ayarlarla bir View sayfası ekleyelim.",[643,18450,18451],{},[895,18452],{"alt":18453,"src":18454},"GetNew View ekleme","/images/2014/06/2014-06-06+11_26_39.jpg",[655,18456,18457],{},[658,18458,18459],{},"Eklenen View sayfamızın içeriği aşağıdaki gibi görünmektedir.",[1264,18461,18463],{"className":1266,"code":18462,"language":1268,"meta":346,"style":346},"@model RoutingDeneme.Models.News\n\n@{\n    ViewBag.Title = \"GetNew\";\n}\n\n\u003Ch2>GetNew\u003C/h2>\n\n\u003Cdiv>\n    \u003Ch4>News\u003C/h4>\n    \u003Chr />\n    \u003Cdl class=\"dl-horizontal\">\n        \u003Cdt>\n            @Html.DisplayNameFor(model => model.Title)\n        \u003C/dt>\n\n        \u003Cdd>\n            @Html.DisplayFor(model => model.Title)\n        \u003C/dd>\n\n        \u003Cdt>\n            @Html.DisplayNameFor(model => model.Content)\n        \u003C/dt>\n\n        \u003Cdd>\n            @Html.DisplayFor(model => model.Content)\n        \u003C/dd>\n\n        \u003Cdt>\n            @Html.DisplayNameFor(model => model.CreatedDate)\n        \u003C/dt>\n\n        \u003Cdd>\n            @Html.DisplayFor(model => model.CreatedDate)\n        \u003C/dd>\n\n    \u003C/dl>\n\n\u003C/div>\n\u003Cp>\n    @Html.ActionLink(\"Edit\", \"Edit\", new { /* id = Model.PrimaryKey */ }) |\n    @Html.ActionLink(\"Back to List\", \"Index\")\n\u003C/p>\n",[799,18464,18465,18470,18474,18478,18483,18487,18491,18508,18512,18520,18536,18544,18564,18573,18578,18586,18590,18599,18604,18612,18616,18624,18629,18637,18641,18649,18654,18662,18666,18674,18679,18687,18691,18699,18704,18712,18716,18724,18728,18736,18744,18749,18754],{"__ignoreMap":346},[1272,18466,18467],{"class":1274,"line":1275},[1272,18468,18469],{"class":1384},"@model RoutingDeneme.Models.News\n",[1272,18471,18472],{"class":1274,"line":347},[1272,18473,1410],{"emptyLinePlaceholder":352},[1272,18475,18476],{"class":1274,"line":1302},[1272,18477,2667],{"class":1384},[1272,18479,18480],{"class":1274,"line":1312},[1272,18481,18482],{"class":1384},"    ViewBag.Title = \"GetNew\";\n",[1272,18484,18485],{"class":1274,"line":1340},[1272,18486,2677],{"class":1384},[1272,18488,18489],{"class":1274,"line":1373},[1272,18490,1410],{"emptyLinePlaceholder":352},[1272,18492,18493,18495,18497,18499,18502,18504,18506],{"class":1274,"line":1395},[1272,18494,1295],{"class":1278},[1272,18496,2853],{"class":1282},[1272,18498,1381],{"class":1278},[1272,18500,18501],{"class":1384},"GetNew",[1272,18503,1388],{"class":1278},[1272,18505,2853],{"class":1282},[1272,18507,1290],{"class":1278},[1272,18509,18510],{"class":1274,"line":1401},[1272,18511,1410],{"emptyLinePlaceholder":352},[1272,18513,18514,18516,18518],{"class":1274,"line":1407},[1272,18515,1295],{"class":1278},[1272,18517,1437],{"class":1282},[1272,18519,1290],{"class":1278},[1272,18521,18522,18524,18526,18528,18530,18532,18534],{"class":1274,"line":1413},[1272,18523,1315],{"class":1278},[1272,18525,11478],{"class":1282},[1272,18527,1381],{"class":1278},[1272,18529,18267],{"class":1384},[1272,18531,1388],{"class":1278},[1272,18533,11478],{"class":1282},[1272,18535,1290],{"class":1278},[1272,18537,18538,18540,18542],{"class":1274,"line":1422},[1272,18539,1315],{"class":1278},[1272,18541,1820],{"class":1282},[1272,18543,1337],{"class":1278},[1272,18545,18546,18548,18551,18553,18555,18557,18560,18562],{"class":1274,"line":1432},[1272,18547,1315],{"class":1278},[1272,18549,18550],{"class":1282},"dl",[1272,18552,1440],{"class":1286},[1272,18554,1324],{"class":1278},[1272,18556,1328],{"class":1327},[1272,18558,18559],{"class":1331},"dl-horizontal",[1272,18561,1328],{"class":1327},[1272,18563,1290],{"class":1278},[1272,18565,18566,18568,18571],{"class":1274,"line":1454},[1272,18567,1457],{"class":1278},[1272,18569,18570],{"class":1282},"dt",[1272,18572,1290],{"class":1278},[1272,18574,18575],{"class":1274,"line":1475},[1272,18576,18577],{"class":1384},"            @Html.DisplayNameFor(model => model.Title)\n",[1272,18579,18580,18582,18584],{"class":1274,"line":1496},[1272,18581,1772],{"class":1278},[1272,18583,18570],{"class":1282},[1272,18585,1290],{"class":1278},[1272,18587,18588],{"class":1274,"line":1553},[1272,18589,1410],{"emptyLinePlaceholder":352},[1272,18591,18592,18594,18597],{"class":1274,"line":1579},[1272,18593,1457],{"class":1278},[1272,18595,18596],{"class":1282},"dd",[1272,18598,1290],{"class":1278},[1272,18600,18601],{"class":1274,"line":1602},[1272,18602,18603],{"class":1384},"            @Html.DisplayFor(model => model.Title)\n",[1272,18605,18606,18608,18610],{"class":1274,"line":1625},[1272,18607,1772],{"class":1278},[1272,18609,18596],{"class":1282},[1272,18611,1290],{"class":1278},[1272,18613,18614],{"class":1274,"line":1635},[1272,18615,1410],{"emptyLinePlaceholder":352},[1272,18617,18618,18620,18622],{"class":1274,"line":1641},[1272,18619,1457],{"class":1278},[1272,18621,18570],{"class":1282},[1272,18623,1290],{"class":1278},[1272,18625,18626],{"class":1274,"line":1651},[1272,18627,18628],{"class":1384},"            @Html.DisplayNameFor(model => model.Content)\n",[1272,18630,18631,18633,18635],{"class":1274,"line":1671},[1272,18632,1772],{"class":1278},[1272,18634,18570],{"class":1282},[1272,18636,1290],{"class":1278},[1272,18638,18639],{"class":1274,"line":1691},[1272,18640,1410],{"emptyLinePlaceholder":352},[1272,18642,18643,18645,18647],{"class":1274,"line":1709},[1272,18644,1457],{"class":1278},[1272,18646,18596],{"class":1282},[1272,18648,1290],{"class":1278},[1272,18650,18651],{"class":1274,"line":1727},[1272,18652,18653],{"class":1384},"            @Html.DisplayFor(model => model.Content)\n",[1272,18655,18656,18658,18660],{"class":1274,"line":1745},[1272,18657,1772],{"class":1278},[1272,18659,18596],{"class":1282},[1272,18661,1290],{"class":1278},[1272,18663,18664],{"class":1274,"line":1754},[1272,18665,1410],{"emptyLinePlaceholder":352},[1272,18667,18668,18670,18672],{"class":1274,"line":1760},[1272,18669,1457],{"class":1278},[1272,18671,18570],{"class":1282},[1272,18673,1290],{"class":1278},[1272,18675,18676],{"class":1274,"line":1769},[1272,18677,18678],{"class":1384},"            @Html.DisplayNameFor(model => model.CreatedDate)\n",[1272,18680,18681,18683,18685],{"class":1274,"line":1779},[1272,18682,1772],{"class":1278},[1272,18684,18570],{"class":1282},[1272,18686,1290],{"class":1278},[1272,18688,18689],{"class":1274,"line":1789},[1272,18690,1410],{"emptyLinePlaceholder":352},[1272,18692,18693,18695,18697],{"class":1274,"line":1809},[1272,18694,1457],{"class":1278},[1272,18696,18596],{"class":1282},[1272,18698,1290],{"class":1278},[1272,18700,18701],{"class":1274,"line":1815},[1272,18702,18703],{"class":1384},"            @Html.DisplayFor(model => model.CreatedDate)\n",[1272,18705,18706,18708,18710],{"class":1274,"line":1825},[1272,18707,1772],{"class":1278},[1272,18709,18596],{"class":1282},[1272,18711,1290],{"class":1278},[1272,18713,18714],{"class":1274,"line":1835},[1272,18715,1410],{"emptyLinePlaceholder":352},[1272,18717,18718,18720,18722],{"class":1274,"line":1857},[1272,18719,1782],{"class":1278},[1272,18721,18550],{"class":1282},[1272,18723,1290],{"class":1278},[1272,18725,18726],{"class":1274,"line":1866},[1272,18727,1410],{"emptyLinePlaceholder":352},[1272,18729,18730,18732,18734],{"class":1274,"line":1875},[1272,18731,1388],{"class":1278},[1272,18733,1437],{"class":1282},[1272,18735,1290],{"class":1278},[1272,18737,18738,18740,18742],{"class":1274,"line":1880},[1272,18739,1295],{"class":1278},[1272,18741,643],{"class":1282},[1272,18743,1290],{"class":1278},[1272,18745,18746],{"class":1274,"line":1886},[1272,18747,18748],{"class":1384},"    @Html.ActionLink(\"Edit\", \"Edit\", new { /* id = Model.PrimaryKey */ }) |\n",[1272,18750,18751],{"class":1274,"line":1892},[1272,18752,18753],{"class":1384},"    @Html.ActionLink(\"Back to List\", \"Index\")\n",[1272,18755,18756,18758,18760],{"class":1274,"line":1898},[1272,18757,1388],{"class":1278},[1272,18759,643],{"class":1282},[1272,18761,1290],{"class":1278},[655,18763,18764],{},[658,18765,18766,18767,18770],{},"Şimdi projemizi çalıştırıp,",[646,18768,18769],{},"localhost:....(burası size göre farklıdır)/News/GetNew/1"," şeklinde adrese gitmek\nistediğimizde, 1 numaralı Id'ye sahip olan haberin detayları ekrana gelecektir.",[643,18772,18773],{},[895,18774],{"alt":18775,"src":18776},"GetNew metod çıktısı","/images/2014/06/2014-06-07+12_58_22.jpg",[655,18778,18779],{},[658,18780,18781,18782,18784],{},"Şimdi bu metodumuza da bir Route yazıp, adresi anlamlı hale getirelim. ",[646,18783,18235],{}," dosyamızı açalım\nve içeriğine, aşağıdaki Route metodunu ekleyelim (metodumuzu Default isimli metoddan önce eklemeyi unutmayalım).",[1264,18786,18789],{"className":18787,"code":18788,"language":2600},[2598],"routes.MapRoute(\nname: \"GetNew\",\nurl: \"haberler/haber-detay/{id}\",\ndefaults: new { controller = \"News\", action = \"GetNew\", id = \"\" }\n);\n",[799,18790,18788],{"__ignoreMap":346},[655,18792,18793],{},[658,18794,18795,18796,18799],{},"Şimdi projemizi çalıştırıp, adres çubuğuna ",[646,18797,18798],{},"localhost:....(burası size göre farklıdır)/haberler/haber-detay/1"," yazıp\ngirdiğimizde, 1 numaralı id'ye sahip haber ekrana gelecektir.",[643,18801,18802],{},[895,18803],{"alt":18804,"src":18805},"GetNew metodu Route'li ekran çıktısı","/images/2014/06/2014-06-07+12_59_48.jpg",[643,18807,18808,18809,18812],{},"Bu noktada parametreler ile çeşitli kombinasyonlar yapabiliriz. Örneğin ",[646,18810,18811],{"kategori":346},"/{alt-kategori}/{id}"," gibi\ntanımlamalar yaparak, çok esnek Route'ler tanımlayabiliriz. Bu kısım tamamen ihtiyaçlarımıza göre şekillenecektir.",[643,18814,18815],{},[646,18816,18817],{},"ROUTE'LERDE KISITLAMALAR",[643,18819,18820],{},[646,18821,18822],{},"Regular Expressions (Düzenli İfadeler) ile Kısıtlama",[643,18824,18825],{},"Güvenlik ve doğru Route eşleşmeleri tanımlayabilmek için, Route'lerimize kısıtlamalar, filtreler tanımlayabiliriz.\nBöylelikle tam bir eşleşme sağlayarak, ayrıca güvenlik katmanımızın da daha sağlam olmasını sağlayabiliriz.",[655,18827,18828],{},[658,18829,18830,18833],{},[799,18831,18832],{},"Title"," formatında özel bir eşleşme isteğimiz olduğunu varsayarak, NewsController'imize bir Action yazalım.",[1264,18835,18838],{"className":18836,"code":18837,"language":2600},[2598],"//Parametre olarak gelen id değerine göre haberi getirir.\npublic ActionResult GetNewByTitle(string id)\n{\n    return View(news.Where(i => i.Title == id).SingleOrDefault());\n}\n",[799,18839,18837],{"__ignoreMap":346},[643,18841,18842,18843,18845],{},"Burada gelen parametreye göre ",[799,18844,18832],{}," ile eşleşen haber ekran getirilecektir.",[643,18847,18848],{},"Not : Parametre ismine title yerine id vermemizin sebebi, sistemde tanımlı halde gelen Default Route'sinde id\nparametresi tanımlı durumdadır. Buradan, Route tanımlamamız gerekliliği de, açıkça ortaya çıkmaktadır. Biz bu\nparametreyi Route tanımlayarak daha mantıklı hale getireceğiz.",[655,18850,18851],{},[658,18852,15257,18853,18856],{},[646,18854,18855],{},"GetViewByTitle","View sayfamızı da, aşağıdaki ayarlarla oluşturalım.",[643,18858,18859],{},[895,18860],{"alt":18861,"src":18862},"GetNewByTitle View sayfası ekleme","/images/2014/06/2014-06-07+13_07_44.jpg",[655,18864,18865],{},[658,18866,18867,18868,18871],{},"Şimdi ise, projemizi çalıştırarak denemelerimizi yapmaya başlayalım. Projemiz çalıştığında, adres çubuğuna**\nlocalhost:....(burası size göre farklıdır)/News/GetNewByTitle/**",[646,18869,18870],{},"MilliTakimGalip"," yazalım. Çıktı olarak aşağıdaki\ngörüntüyü alacağız.",[643,18873,18874],{},[895,18875],{"alt":18876,"src":18877},"GetNewByTitle metodu ekran çıktısı","/images/2014/06/2014-06-07+13_10_51.jpg",[655,18879,18880],{},[658,18881,18882,18883,18886,18888],{},"Buraya kadar sorun yok. Ancak bir de adres çubuğunda ",[646,18884,18885],{},"localhost:....(burası size göre farklıdır)/News/GetNewByTitle/",[646,18887,10174],{}," yazalım. Aşağıdaki görüntüyü alacağız.",[643,18890,18891],{},[895,18892],{"alt":18893,"src":18894},"GetNewByTitle metodu rakamsal ekran çıktısı","/images/2014/06/2014-06-07+13_12_34.jpg",[643,18896,18897],{},"Şimdi burada biraz düşünelim. Az evvel tam olarak ne oldu?",[643,18899,18900,18901,18903,18904,18907],{},"Adres çubuğunda ",[646,18902,18832],{}," kısmına rakamsal bir giriş yapıldı. Metod çalıştı ve veri kaynağımızda ",[646,18905,18906],{},"Title=5"," eşleşmesini\naraştırdı. Bulamadı ve ekrana veri boş geldi.",[643,18909,18910],{},"Oysa ki biz, sadece metinsel giriş yapılmasını istiyor olabiliriz. Böylelikle hatalı girişleri daha önceden engelleme\nimkanına sahip oluruz. Ayrıca her girilen veri, veritabanında sorgulanmayacağı için hem performans, hem de güvenlik\navantajını filtreleme sayesinde sağlayacağız. Regular Expression (Düzenli İfadeler), bu konuda bizim en büyük\nyardımcımız olacaktır.",[655,18912,18913],{},[658,18914,18915,18916,18918,18919,18921],{},"Hemen Route'mizi yazmaya başlayalım. ",[646,18917,18235],{}," dosyamızı açalım. İçerisine ",[646,18920,17953],{},"\nRoute'sinden önce aşağıdaki Route'yi ekleyelim.",[1264,18923,18926],{"className":18924,"code":18925,"language":2600},[2598],"routes.MapRoute(\nname: \"GetNewByTitle\",\nurl: \"haberler/haber-detay-baslik/{title}\",\ndefaults: new { controller = \"News\", action = \"GetNewByTitle\", title = \"\" },\nconstraints: new { title = @\"[a-zA-Z]+\" } //Burada yönlendirmenin yapılabilmesi için\n//title verisinin yalnızca metinsel olmasını şart koştuk.\n);\n",[799,18927,18925],{"__ignoreMap":346},[655,18929,18930],{},[658,18931,18932,18933,18936],{},"Route'mizi ekledikten sonra, ",[646,18934,18935],{},"GetNewByTitle"," Action'umuzu aşağıdaki gibi güncelleyelim.",[1264,18938,18941],{"className":18939,"code":18940,"language":2600},[2598],"//Parametre olarak gelen title değerine göre haberi getirir.\npublic ActionResult GetNewByTitle(string title)\n{\n    return View(news.Where(i => i.Title == title).SingleOrDefault());\n}\n",[799,18942,18940],{"__ignoreMap":346},[655,18944,18945],{},[658,18946,18947,18948,18951],{},"Şimdi hemen testlerimizi yapalım. Projeyi çalıştırıp, ",[646,18949,18950],{},"localhost:....(burası size göre farklıdır)\n/haberler/haber-detay-baslik/MilliTakimGalip"," adresine gittiğimizde aşağıdaki ekranı alacağız.",[643,18953,18954],{},[895,18955],{"alt":18956,"src":18957},"GetNewByTitle metodu Route'li ekran çıktısı","/images/2014/06/2014-06-07+13_39_26.jpg",[643,18959,18960],{},"Bu ve buna benzer şekilde, çeşitli Regular Expressions'lar vasıtasıyla çok kullanışlı filtreler tanımlayabiliriz.\nRegular Expressions ile ilgili internette pek çok hazır kalıplar, eğitimler mevcut.",[643,18962,18963],{},[646,18964,18965],{},"Http Metodu ile Kısıtlama",[643,18967,18968,18969,18972,18973,18976,18977,18980],{},"Gelen sayfa taleplerinin, ",[646,18970,18971],{},"Get",", ",[646,18974,18975],{},"Post"," vs. olduğunda eşleşmesini sağlamak için, ",[646,18978,18979],{},"Http"," metodunu kullanabiliriz.",[655,18982,18983],{},[658,18984,18985,18988],{},[646,18986,18987],{},"Controllers>NewsController.cs"," içerisine aşağıdaki Action'u ekleyelim.",[1264,18990,18993],{"className":18991,"code":18992,"language":2600},[2598],"//Burada listeye bir kayıt yapılmakta.\npublic ActionResult SaveNew()\n{\n    //id olarak listemizdeki en son eklenen id'nin sayısı bir arttırlıp kayıt yapılmaktadır.\n    int id = (news.OrderByDescending(i => i.Id).SingleOrDefault().Id+1);\n    news.Add(new News()\n    {\n        Content = \"Hava olaylarındaki anormallikler dikkat çekici olmaya başladı\",\n        CreatedDate = DateTime.Now,\n        Title = \"Hava Olaylarındaki Anormallikler\",\n        Id = id\n    });\n    return View();\n}\n",[799,18994,18992],{"__ignoreMap":346},[655,18996,18997],{},[658,18998,18999],{},"Şimdi de aşağıdaki ayarlarla View'imizi ekleyelim.",[643,19001,19002],{},[895,19003],{"alt":19004,"src":19005},"SaveNew View ayarları","/images/2014/06/2014-06-10+11_32_02.jpg",[655,19007,19008],{},[658,19009,16672,19010,19012,19013,19015],{},[646,19011,18235],{}," dosyamıza aşağıdaki Route'yi ",[646,19014,17953],{}," isimli Route'den önce ekleyelim.",[1264,19017,19020],{"className":19018,"code":19019,"language":2600},[2598],"routes.MapRoute(\nname: \"SaveNew\",\nurl: \"haberler/yeni-haber\",\ndefaults: new { controller = \"News\", action = \"SaveNew\" },\nconstraints: new { method = new HttpMethodConstraint(\"POST\") }\n//Yalnızca Post taleplerinde eşleşecek\n);\n",[799,19021,19019],{"__ignoreMap":346},[643,19023,19024,19025,19027,19028,18972,19031,19034],{},"Böylelikle gelen isteklerin yalnızca ",[646,19026,18975],{}," olaması durumunda eşleşmeyi sağlamış olduk. Bu noktada Action metodunun\nüzerine ",[799,19029,19030],{},"[HttpPost]",[799,19032,19033],{},"[HttpGet]"," vs. Attribute'ler ekleyerek de daha kolay bir şekilde bu kısıtlamayı sağlayabiliriz.\nAşağıdaki gibi;",[1264,19036,19039],{"className":19037,"code":19038,"language":2600},[2598],"[HttpPost]\n//Burada listeye bir kayıt yapılmakta.\npublic ActionResult SaveNew()\n{\n    //id olarak listemizdeki en son eklenen id'nin sayısı bir arttırlıp kayıt yapılmaktadır.\n    int id = (news.OrderByDescending(i => i.Id).SingleOrDefault().Id+1);\n    news.Add(new News()\n    {\n        Content = \"Hava olaylarındaki anormallikler dikkat çekici olmaya başladı\",\n        CreatedDate = DateTime.Now,\n        Title = \"Hava Olaylarındaki Anormallikler\",\n        Id = id\n    });\n    return View();\n}\n",[799,19040,19038],{"__ignoreMap":346},[643,19042,19043],{},[646,19044,19045],{},"Gelişmiş Kısıtlamalar",[643,19047,19048,19049,19052],{},"Çok daha gelişmiş sınamalar yapabilmek için kullanabileceğimiz ",[646,19050,19051],{},"IRouteConstraint"," Interface'si mevcuttur. Bu\nInterface'den alacağımız Implementation ile bir Class yazıp, gelişkin sınamalar yapabiliriz.",[643,19054,19055],{},"Hemen inceleyelim.",[655,19057,19058],{},[658,19059,19060,19061,19064,19065,19068],{},"Ana dizine ",[646,19062,19063],{},"RouteConstraint"," isimli bir klasör ekleyelim. İçerisine de ",[646,19066,19067],{},"TestConstraint"," isimli bir Class\nekleyelim. Bu Class'ın içeriğini aşağıdaki gibi dolduralım.",[1264,19070,19073],{"className":19071,"code":19072,"language":2600},[2598],"using System.Web;\nusing System.Web.Routing;\n\nnamespace RoutingDeneme.RouteConstraint\n{\n    public class TestConstraint : IRouteConstraint //Burada IRouteConstraint'ten Implemantation alıyoruz.\n    {\n        //Match metodu, istediğimiz şekilde doğrulamalrı yapıp, geriye True ya da False döndürüyor,\n        //dönen sonuca göre Url eşleşmesi sağlanıyor, ya da sağlanmıyor.\n        public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values,\n        RouteDirection routeDirection)\n        {\n        //Örneğimizde, kullanıcının oturum açıp, açmadığını kontrol edeceğiz.\n        if (httpContext.Request.IsAuthenticated)\n        {\n            return true;\n        }\n        else\n        {\n            return false;\n        }\n    }\n}\n}\n",[799,19074,19072],{"__ignoreMap":346},[655,19076,19077],{},[658,19078,19079,19081],{},[646,19080,18987],{}," içerisine aşağıdaki Action'umuzu ekleyelim.",[1264,19083,19086],{"className":19084,"code":19085,"language":2600},[2598],"//Bu alana yalnızca üyelerin girmesini istiyoruz.\npublic ActionResult MemberArea()\n{\n    return View();\n}\n",[799,19087,19085],{"__ignoreMap":346},[655,19089,19090],{},[658,19091,19092,19093,19095],{},"Yukarıda oluşturduğumuz kısıtlama kontrolünü, Route'ye ekleyeceğiz.",[646,19094,18235],{}," dosyamıza aşağıdaki\nRoute'yi ekleyelim.",[1264,19097,19100],{"className":19098,"code":19099,"language":2600},[2598],"routes.MapRoute(\nname: \"MemberArea\",\nurl: \"uyelik\",\ndefaults: new { controller = \"News\", action = \"MemberArea\" },\nconstraints: new { test = new TestConstraint() }\n//Test Constraint'ten yeni bir örnek çağırıp, bağlıyoruz.\n);\n",[799,19101,19099],{"__ignoreMap":346},[643,19103,19104,19107],{},[646,19105,19106],{},"localhost:...(burası sizde farklıdır)/uyelik"," adresine gitmek istediğimizde, eşleşme olmayacaktır. Ancak oturum\naçtıysak, eşleşme olacaktır.",[643,19109,19110],{},[646,19111,19112],{},"404 Sayfa Bulunamadı Oluşturmak",[643,19114,19115,19116,19119,19120,19122],{},"Route'lerimizde ",[646,19117,19118],{},"(*)"," parametresini kullanarak, her türlü eşleşmeyi sağlayabilmekteyiz. ",[646,19121,19118],{},"'ın yerine ne gelirse\ngelsin, eşleşme sağlanacaktır.",[643,19124,19125],{},"Şimdi bir 404 sayfası oluşturulım.",[655,19127,19128],{},[658,19129,19130,18988],{},[646,19131,19132],{},"Controllers>NewController.cs",[1264,19134,19137],{"className":19135,"code":19136,"language":2600},[2598],"//Eğer eşleşme olmazsa bu Action çalışacaktır.\npublic ActionResult NotFound()\n{\n    return View();\n}\n",[799,19138,19136],{"__ignoreMap":346},[655,19140,19141],{},[658,19142,19143,19144,19146],{},"Ardından da ",[646,19145,11261],{}," diyerek View sayfamızı aşağıdaki ayarlarla ekleyelim.",[643,19148,19149],{},[895,19150],{"alt":19151,"src":19152},"NotFound View ekleme","/images/2014/06/2014-06-11+12_02_21.jpg",[655,19154,19155],{},[658,19156,19157],{},"Sayfa içeriğini aşağıdaki gibi düzenleyelim.",[1264,19159,19161],{"className":1266,"code":19160,"language":1268,"meta":346,"style":346},"@{\n    ViewBag.Title = \"NotFound\";\n}\n\n\u003Ch2>Sayfa Bulunamadı\u003C/h2>\n",[799,19162,19163,19167,19172,19176,19180],{"__ignoreMap":346},[1272,19164,19165],{"class":1274,"line":1275},[1272,19166,2667],{"class":1384},[1272,19168,19169],{"class":1274,"line":347},[1272,19170,19171],{"class":1384},"    ViewBag.Title = \"NotFound\";\n",[1272,19173,19174],{"class":1274,"line":1302},[1272,19175,2677],{"class":1384},[1272,19177,19178],{"class":1274,"line":1312},[1272,19179,1410],{"emptyLinePlaceholder":352},[1272,19181,19182,19184,19186,19188,19191,19193,19195],{"class":1274,"line":1340},[1272,19183,1295],{"class":1278},[1272,19185,2853],{"class":1282},[1272,19187,1381],{"class":1278},[1272,19189,19190],{"class":1384},"Sayfa Bulunamadı",[1272,19192,1388],{"class":1278},[1272,19194,2853],{"class":1282},[1272,19196,1290],{"class":1278},[655,19198,19199],{},[658,19200,19201,19203,19204,19207],{},[646,19202,19063],{}," klasörünün içerisine ",[646,19205,19206],{},"NotFoundConstraint"," isimli aşağıdaki Class'ı ekleyeceğiz. Bu Class'ı\nekleme amacımız, eğer açılan sayfa ana sayfaysa bu eşleşmeyi pas geçip, ana sayfanın açılmasını sağlamak.",[1264,19209,19212],{"className":19210,"code":19211,"language":2600},[2598],"using System.Web;\nusing System.Web.Routing;\n\nnamespace RoutingDeneme.RouteConstraint\n{\n    public class NotFoundConstraint : IRouteConstraint\n    {\n    public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values,\n    RouteDirection routeDirection)\n    {\n        if (httpContext.Request.RawUrl == \"/\")\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    }\n    }\n}\n",[799,19213,19211],{"__ignoreMap":346},[655,19215,19216],{},[658,19217,5822,19218,19220,19221,18396],{},[646,19219,18235],{}," içerisine aşağıdaki Route'yi ",[646,19222,17953],{},[1264,19224,19227],{"className":19225,"code":19226,"language":2600},[2598],"routes.MapRoute(\nname: \"NotFound\",\nurl: \"{*.}\",//Yıldız her ne olursa anlamına geliyor.\n//Yukarıdaki eşleşmeleri deneyip, olmadığını gördükten sonra, NotFound'a yönelecektir.\ndefaults: new { controller = \"News\", action = \"NotFound\" },\nconstraints: new { notFound = new NotFoundConstraint() }\n);\n",[799,19228,19226],{"__ignoreMap":346},[643,19230,19231],{},[646,19232,19233],{},"Route Pas Geçme",[643,19235,19236,19237,19240],{},"Bazı statik dosyalarımıza talep geldiğinde, bu talebin Controller - Action bazlı karşılanmasını istemeyebiliriz.\nBöylelikle direkt dosyaya ulaşım sağlanacaktır. Bunun için ",[646,19238,19239],{},"IgnoreRoute"," metodu kullanılmaktadır.",[655,19242,19243],{},[658,19244,19245,19246,19249,19250,19253,19254,19257],{},"Sistemde arama motorlarının okuması için, ",[646,19247,19248],{},"robots.txt"," dosyası oluşturacağız. Bu dosya arama motorunun nasıl\nindeksleme yapacağını bildiren bilgilere sahiptir. Projemizin ana dizinine robots isminde bir metin belgesi (txt)\nekleyelim. Bunun için, projemizin üzerine sağ tıklayıp ",[646,19251,19252],{},"Add>New Item"," diyelim. Çıkan ekranda sağ üst kısımdaki alana\ntext yazıp, aratalım. Çıkan sonuçlarda aşağıdaki gibi ",[646,19255,19256],{},"Text File","'yi seçelim. Dosya içeriğini doldurmamıza gerek\nyok.",[643,19259,19260],{},[895,19261],{"alt":19262,"src":19263},"Metin belgesi ekleme","/images/2014/06/2014-06-18+10_41_20.jpg",[655,19265,19266],{},[658,19267,5822,19268,19270],{},[646,19269,18235],{}," dosyasını açıp aşağıdaki satırdan,",[1264,19272,19275],{"className":19273,"code":19274,"language":2600},[2598],"routes.IgnoreRoute(\"{resource}.axd/{*pathInfo}\");\n",[799,19276,19274],{"__ignoreMap":346},[643,19278,19279],{},"hemen sonra aşağıdaki metodumuzu ekleyelim.",[1264,19281,19284],{"className":19282,"code":19283,"language":2600},[2598],"routes.IgnoreRoute(\"robots.txt\");\n",[799,19285,19283],{"__ignoreMap":346},[643,19287,19288,19289,19291],{},"Artık, sitemize ",[646,19290,19248],{}," talebi geldiğinde, direkt dosyamıza erişim sağlanabilecektir.",[643,19293,19294],{},[646,19295,19296],{},"AREA'LAR İÇİN ROUTE",[643,19298,19299,19300,19303,19304,19306,19307,19310,19311,19313,19314,19316,19317,19320],{},"Sitemizde, eğer ",[646,19301,19302],{},"Area"," sistemini kullanıp parçalara ayırıyorsak, her eklediğimiz ",[646,19305,19302],{}," için ",[646,19308,19309],{},"...(area adı)\nAreaRegistration"," şeklinde dosya otomatik olarak oluşturulmaktadır. Biz her ",[646,19312,19302],{}," için bu dosyalara metodlar ekleme\nşansına sahibiz. En sonunda tüm eklediğimiz metodlar, ",[646,19315,13453],{}," dosyasında çağırılan, *\n",[5583,19318,19319],{},"AreaRegistration.RegisterAllAreas()","* metodu ile birleştirilerek, sistemde aktif hale getirilmektedir.",[643,19322,19323],{},[646,19324,19325],{},"ASP.NET MVC 5 ROUTE YENİLİKLERİ",[643,19327,19328,19329,19331],{},"Asp.Net Mvc5 ile gelen bir takım yeniliklerin yanında, Route konumuza uygun olarak işleyeceğimiz, Route yeniliğine\nbakalım. Normalde her Action için Route yazıp, ",[646,19330,18239],{}," dosyasına ekliyoruz. Mvc 5 ile bu işlem daha da\nkolaylaştı ve kullanışlılığı arttırıldı.",[643,19333,19334],{},"Bundan sonra artık direkt olarak Action'un üzerine yazacağımız bir Attribute ile Route yapabiliyoruz. Bu sistemi aktif\netmek için öncelikle,",[655,19336,19337],{},[658,19338,19339,19341],{},[646,19340,18235],{}," dosyasının içerisine,",[1264,19343,19346],{"className":19344,"code":19345,"language":2600},[2598],"//Asp.Net Mvc5 Route sistemini aktif ediyoruz.\nroutes.MapMvcAttributeRoutes();\n",[799,19347,19345],{"__ignoreMap":346},[643,19349,19350],{},"satırını ekliyoruz.",[655,19352,19353,19356],{},[658,19354,19355],{},"Projemizi derleyelim.",[658,19357,15257,19358,19361],{},[646,19359,19360],{},"NewController","'imizin içerisine aşağıdaki Action'u ekleyelim.",[1264,19363,19366],{"className":19364,"code":19365,"language":2600},[2598],"public ActionResult Mvc5()\n{\n    return View();\n}\n",[799,19367,19365],{"__ignoreMap":346},[655,19369,19370],{},[658,19371,19372,19373,19376],{},"Hemen ",[646,19374,19375],{},"Mvc5"," isimli View sayfamızı da ekleyelim. İçeriğini aşağıdaki gibi dolduralım.",[1264,19378,19380],{"className":1266,"code":19379,"language":1268,"meta":346,"style":346},"@{\n    ViewBag.Title = \"Mvc5\";\n}\n\n\u003Ch2>Mvc5\u003C/h2>\n\n\u003Ch3>Burada Mvc5 Yeniliklerini Test Ettik\u003C/h3>\n",[799,19381,19382,19386,19391,19395,19399,19415,19419],{"__ignoreMap":346},[1272,19383,19384],{"class":1274,"line":1275},[1272,19385,2667],{"class":1384},[1272,19387,19388],{"class":1274,"line":347},[1272,19389,19390],{"class":1384},"    ViewBag.Title = \"Mvc5\";\n",[1272,19392,19393],{"class":1274,"line":1302},[1272,19394,2677],{"class":1384},[1272,19396,19397],{"class":1274,"line":1312},[1272,19398,1410],{"emptyLinePlaceholder":352},[1272,19400,19401,19403,19405,19407,19409,19411,19413],{"class":1274,"line":1340},[1272,19402,1295],{"class":1278},[1272,19404,2853],{"class":1282},[1272,19406,1381],{"class":1278},[1272,19408,19375],{"class":1384},[1272,19410,1388],{"class":1278},[1272,19412,2853],{"class":1282},[1272,19414,1290],{"class":1278},[1272,19416,19417],{"class":1274,"line":1373},[1272,19418,1410],{"emptyLinePlaceholder":352},[1272,19420,19421,19423,19425,19427,19430,19432,19434],{"class":1274,"line":1395},[1272,19422,1295],{"class":1278},[1272,19424,3273],{"class":1282},[1272,19426,1381],{"class":1278},[1272,19428,19429],{"class":1384},"Burada Mvc5 Yeniliklerini Test Ettik",[1272,19431,1388],{"class":1278},[1272,19433,3273],{"class":1282},[1272,19435,1290],{"class":1278},[655,19437,19438],{},[658,19439,19440],{},"Buraya kadar herşey normal. Şimdi ise Route'mizi ekleyeceğiz. Az evvel eklediğimiz Action'unun üzerine Route\nAttribute'mizi ekleyeceğiz. Action'umuz aşağıdaki gibi olacak.",[1264,19442,19445],{"className":19443,"code":19444,"language":2600},[2598],"[Route(\"mvc5-test\")]\npublic ActionResult Mvc5()\n{\n    return View();\n}\n",[799,19446,19444],{"__ignoreMap":346},[655,19448,19449],{},[658,19450,19451,19452,19455],{},"Görüldüğü üzere çok basit bir şekilde Route tanımladık. Şimdi projeyi çalıştırıp,",[646,19453,19454],{},"localhost:.....(bu kısım sizde\nfarklı olabilir)/mvc5-test"," adresine gidelim. Görüldüğü üzere aşağıdaki ekran geldi.",[643,19457,19458],{},[895,19459],{"alt":19460,"src":19461},"Mvc5 yenilik ekran çıktısı","/images/2014/06/2014-06-18+11_15_20.jpg",[643,19463,19464],{},"Böylelikle çok detaylı bir şekilde, Asp.Net Mvc konusunda Route'yi inceledik.",[643,19466,19467,19468,11834],{},"Proje\ndosyasını ",[771,19469,5939],{"href":19470},"/images/proje-dosyalar/asp-net-mvc-routing-mekanizmasi-ve-mvc-5-ile-gelen-yenilikler/RoutingDeneme.zip",[643,19472,19473],{},"Hepinize kolaylıklar diliyoruz.",[1978,19475,19476],{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":346,"searchDepth":347,"depth":347,"links":19478},[],"2014/06/routing.jpg","2014-06-18T00:00:00.000Z",{},{"title":83,"description":861},"0ycPdZ6YzpfO-sPWiRWd9t1gbb00BUHeuTZDh3Y_TPY",{"id":19485,"title":134,"body":19486,"coverImage":17663,"createDate":19669,"description":861,"extension":350,"meta":19670,"navigation":352,"path":135,"seo":19671,"stem":136,"__hash__":19672},"posts/dersler/orchard-cms/orchardi-turkcelestirme-turkce-dil-dosyalari.md",{"type":343,"value":19487,"toc":19667},[19488,19491,19495,19502,19505,19514,19519,19522,19527,19533,19536,19545,19550,19565,19571,19579,19585,19593,19599,19606,19612,19620,19624,19638,19644,19650,19659,19665],[639,19489,134],{"id":19490},"orchardı-türkçeleştirme-türkçe-dil-dosyaları-mevcut",[643,19492,19493],{},[646,19494,861],{},[4105,19496,19497],{},[643,19498,19499],{},[646,19500,19501],{},"Sistemin Türkçe çevirilerinin düşük olduğunu gördüğümde oldukça üzüldüm. Bu güzel sisteme katkı sağlamak adına\nçeviri sistemine kayıt oldum. Gelen kabulun ardından, aktif olarak Orcard Cms'nin çevirilerini yapmaktayım. Yaptığım\nçeviriler, kendi sitesinden indirilen dil dosyasına da yansımaktadır.",[643,19503,19504],{},"Orchard Cms'yi sisteminize kurduktan sonra, Türkçe dil desteğini sağlamak çok kolay.",[655,19506,19507],{},[658,19508,19509,19510,19513],{},"Bunun için yapmanız gereken, aşağıda sunulan dosyayı indirmek, ",[646,19511,19512],{},"tr-TR"," klasörü içeriğindeki tüm dosyaları,",[643,19515,19516],{},[646,19517,19518],{},"Derlenmiş dosyalar (binary) ile çalışıyorsanız;",[643,19520,19521],{},"Sitenizin ana dizinine atıp, üzerine yazılsın mı sorusunu onaylayın.",[643,19523,19524],{},[646,19525,19526],{},"Kaynak kod dosyaları (Visual Studio) ile çalışıyorsanız;",[643,19528,19529,19532],{},[646,19530,19531],{},"Orchard.Web"," içerisine tüm dosyaları atın, üzerine yazılsın mı sorusunu onaylayın.",[643,19534,19535],{},"Not : Dosyaları direkt Visual Studio üzerinden değil, dosyaların bulunduğu kısma, dosya gezgini (Windows Explorer)\niçerisinden atın.",[643,19537,19538],{},[646,19539,19540,19541,9220],{},"Türkçe Dil Dosyaları'nı indirmek için ",[771,19542,7964],{"href":19543,"rel":19544},"https://crowdin.net/download/project/orchard-cms/tr.zip",[878],[4105,19546,19547],{},[643,19548,19549],{},"Önemli Not : İndirilen çeviri dosyaları, tüm Orchard sürümlerine uyumludur.",[655,19551,19552,19559],{},[658,19553,19554,19555,19558],{},"​Dosyalarımızı attıktan sonra, ",[646,19556,19557],{},"Yönetim Paneline (Dashboard)"," girelim.",[658,19560,19561,19562,5305],{},"Ana menüde bulunan ",[646,19563,19564],{},"Settings",[643,19566,19567],{},[895,19568],{"alt":19569,"src":19570},"Orchard yönetim menüsü","/images/2014/06/2014-06-21+13_00_04.jpg",[655,19572,19573],{},[658,19574,5601,19575,19578],{},[646,19576,19577],{},"Add or Remove supported cultures for the site"," linkine tıklayalım.",[643,19580,19581],{},[895,19582],{"alt":19583,"src":19584},"Orchard dil ekleme","/images/2014/06/2014-06-21+13_01_34.jpg",[655,19586,19587],{},[658,19588,19589,19590,19592],{},"Açılan ekranda açılır, dil listesine tıklayarak ",[646,19591,19512],{}," 'yi seçelim.",[643,19594,19595],{},[895,19596],{"alt":19597,"src":19598},"Orchard dil listesi","/images/2014/06/2014-06-21+13_01_55.jpg",[655,19600,19601],{},[658,19602,19603,19604,17715],{},"Dili seçtikten sonra, ",[646,19605,1129],{},[643,19607,19608],{},[895,19609],{"alt":19610,"src":19611},"Dili ekleme","/images/2014/06/2014-06-21+13_01_52.jpg",[655,19613,19614],{},[658,19615,19616,19617,19619],{},"Daha sonra, tekrar ",[646,19618,19564],{},"'e gelelim.",[643,19621,19622],{},[895,19623],{"alt":19569,"src":19570},[655,19625,19626],{},[658,19627,19628,19629,19632,19633,938,19635,17715],{},"Açılan ekranda,",[646,19630,19631],{},"Default Site Culture"," kısmından ",[646,19634,19512],{},[646,19636,19637],{},"Save",[643,19639,19640],{},[895,19641],{"alt":19642,"src":19643},"Dili varsayılan hale getirme","/images/2014/06/2014-06-21+13_01_59.jpg",[643,19645,19646],{},[895,19647],{"alt":19648,"src":19649},"Ayarları kaydetme","/images/2014/06/2014-06-21+13_21_02.jpg",[655,19651,19652],{},[658,19653,19654,19655,19658],{},"Sitemiz bu işlemlerin ardından aşağıdaki gibi ",[646,19656,19657],{},"Türkçe"," olacaktır.",[643,19660,19661],{},[895,19662],{"alt":19663,"src":19664},"Türkçeleşen panel","/images/2014/06/2014-06-21+13_22_46.jpg",[643,19666,1976],{},{"title":346,"searchDepth":347,"depth":347,"links":19668},[],"2014-06-21T00:00:00.000Z",{},{"title":134,"description":861},"BpykEj2Q6SdpJkES0ZAgZaFlXhA0CReAtvguoeWk70I",{"id":19674,"title":113,"body":19675,"coverImage":21084,"createDate":21085,"description":861,"extension":350,"meta":21086,"navigation":352,"path":114,"seo":21087,"stem":115,"__hash__":21088},"posts/dersler/javascript/object-oriented-nesne-yonelimli-javascript-programlama.md",{"type":343,"value":19676,"toc":21082},[19677,19680,19684,19691,19702,19708,19713,19716,19719,19724,19731,19737,19740,19778,19781,19794,19797,19802,19809,19812,19869,19880,19883,19936,19949,19952,19955,19961,20106,20115,20121,20124,20365,20372,20375,20380,20386,20393,20396,20658,20667,20673,20679,20682,20842,20845,20852,21054,21057,21060,21066,21077,21079],[639,19678,113],{"id":19679},"object-oriented-nesne-yönelimli-javascript-programlama",[643,19681,19682],{},[646,19683,861],{},[643,19685,19686,19687,19690],{},"1995 yılında piyasaya sürülen",[646,19688,19689],{},"JavaScript",", sadece html içeriğe sahip, durağan siteleri canlandırma amacı güdüyordu.\nAradan geçen uzun yıllar boyunca, basit bir script dili olarak görüldüğünden dolayı, ne yazıkki yeterince değer ve\nitibar görmedi.",[643,19692,19693,19694,19701],{},"Son bir kaç yılda ise, web uygulamalarının ortaya çıkışıyla birlikte, ciddi bir değer kazanarak, popüleritesini\ninanılmaz oranda arttırdı. Ne varki şu an piyasada, JavaScript'in doğru yazımıyla alakalı ciddi bir sıkıntı var. Halen\ndaha ciddi bir programlama dili gibi değil, basit bir script dili gibi görülmeye devam ediliyor. Bu yüzden C#, Java,\nC++, PHP vs. geliştiricilerinin aşina olduğu",[646,19695,19696,19697,19700],{},"Object Oriented (Nesne Yönelimli), Inheritance (Kalıtım)",[646,19698,19699],{},"gibi konular, ne\nyazıkki çoğu JavaScript geliştiricisinin ilgi alanında değil. Standart","Procedurel","programlama devam ediyor.",[643,19703,19704,19705],{},"Ancak artık çok ciddi uygulamalar ortaya çıkıyor(Outlook,Gmail vs.)ve bunların yazımı, yönetimi için ciddi modülerliğe\nihtiyaç duyulmaktadır. Burada da aslında OOP kavramı devreye giriyor.",[646,19706,19707],{},"Peki OOP nedir?",[643,19709,19710],{},[646,19711,19712],{},"Object Oriented Programming (Nesne Yönelimli Programlama)",[643,19714,19715],{},"Programlama akışında kullanılacak her şeyin, nesne olarak kullanıldığı, ufak modüllere bölündüğü bir kod yönetim\nşeklidir. En büyük avantajı kod tekrarını ortadan kaldırmasıdır.",[643,19717,19718],{},"Mesela bir kediyi modellediğimizi düşünelim. Kedi bir hayvandır. Hayvanların ortak özellikleri vardır. Her hayvan\ntürüne, ayrı ayrı ortak özellikleri tanımlamak yerine bir seferde hayvanı tanımlayıp ortak özellikleri ekleriz. Daha\nsonra kedi, köpek vs. hayvan türlerini de hayvan nesnesinden türetiriz.",[4105,19720,19721],{},[643,19722,19723],{},"Oop detaylı bir konudur. Ayrıntısına bu yazıda inmeyeceğim. Bilginiz yoksa, lütfen internetten araştırma yapınız.",[643,19725,19726,19727,19730],{},"JavaScript OOP bir dil olsa da, basit bir şekilde",[646,19728,19729],{},"inheritence","vs. kavramların kullanılmasına izin vermez. Bu tarz bir\nyapı için biraz emek harcamak gerekmektedir.",[643,19732,19733,19734,19736],{},"JavaScript'te metodlarımızı ",[646,19735,14053],{}," ile tanımlamaktayız.",[643,19738,19739],{},"Aşağıda,",[1264,19741,19743],{"className":16424,"code":19742,"language":16426,"meta":346,"style":346},"function sample(){\n    alert('sample');\n}\n",[799,19744,19745,19755,19774],{"__ignoreMap":346},[1272,19746,19747,19749,19752],{"class":1274,"line":1275},[1272,19748,14053],{"class":14052},[1272,19750,19751],{"class":14037}," sample",[1272,19753,19754],{"class":1278},"(){\n",[1272,19756,19757,19760,19762,19765,19768,19770,19772],{"class":1274,"line":347},[1272,19758,19759],{"class":14037},"    alert",[1272,19761,14049],{"class":14067},[1272,19763,19764],{"class":1327},"'",[1272,19766,19767],{"class":1331},"sample",[1272,19769,19764],{"class":1327},[1272,19771,4213],{"class":14067},[1272,19773,13666],{"class":1278},[1272,19775,19776],{"class":1274,"line":1302},[1272,19777,2677],{"class":1278},[643,19779,19780],{},"örnek bir function'u görmekteyiz. Bu function'u ise aşağıdaki gibi çağırırız.",[1264,19782,19784],{"className":16424,"code":19783,"language":16426,"meta":346,"style":346},"sample();\n",[799,19785,19786],{"__ignoreMap":346},[1272,19787,19788,19790,19792],{"class":1274,"line":1275},[1272,19789,19767],{"class":14037},[1272,19791,14084],{"class":1384},[1272,19793,13666],{"class":1278},[643,19795,19796],{},"Bu, tarayıcı ekranında alert penceresini açacaktır.",[643,19798,19799],{},[646,19800,19801],{},"JavaScript Class",[643,19803,19804,19805,19808],{},"Peki server side dillerden alışkın olduğumuz",[646,19806,19807],{},"class","'larımızı nasıl kullanacağız?",[643,19810,19811],{},"Aşağıdaki gibi,",[1264,19813,19815],{"className":16424,"code":19814,"language":16426,"meta":346,"style":346},"function Person(name,surname){\n    this.name=name;\n    this.surname=surname;\n}\n",[799,19816,19817,19837,19851,19865],{"__ignoreMap":346},[1272,19818,19819,19821,19824,19826,19829,19831,19834],{"class":1274,"line":1275},[1272,19820,14053],{"class":14052},[1272,19822,19823],{"class":14037}," Person",[1272,19825,14049],{"class":1278},[1272,19827,19828],{"class":16462},"name",[1272,19830,711],{"class":1278},[1272,19832,19833],{"class":16462},"surname",[1272,19835,19836],{"class":1278},"){\n",[1272,19838,19839,19841,19843,19845,19847,19849],{"class":1274,"line":347},[1272,19840,16445],{"class":16444},[1272,19842,9220],{"class":1278},[1272,19844,19828],{"class":1384},[1272,19846,1324],{"class":13810},[1272,19848,19828],{"class":1384},[1272,19850,13666],{"class":1278},[1272,19852,19853,19855,19857,19859,19861,19863],{"class":1274,"line":1302},[1272,19854,16445],{"class":16444},[1272,19856,9220],{"class":1278},[1272,19858,19833],{"class":1384},[1272,19860,1324],{"class":13810},[1272,19862,19833],{"class":1384},[1272,19864,13666],{"class":1278},[1272,19866,19867],{"class":1274,"line":1312},[1272,19868,2677],{"class":1278},[643,19870,19871,19874,19875,711,19877,19879],{},[799,19872,19873],{},"Person","isimli bir class tanımladık ve ilk değişkenleri olan",[799,19876,19828],{},[799,19878,19833],{},"atamalarını parametre ile sağladık.",[643,19881,19882],{},"Daha sonra,",[1264,19884,19886],{"className":16424,"code":19885,"language":16426,"meta":346,"style":346},"var person=new Person('Abdurrahman','Güngör');\nalert(person.name);\n",[799,19887,19888,19921],{"__ignoreMap":346},[1272,19889,19890,19892,19895,19898,19900,19902,19904,19906,19908,19910,19912,19915,19917,19919],{"class":1274,"line":1275},[1272,19891,16577],{"class":14052},[1272,19893,19894],{"class":1384}," person",[1272,19896,19897],{"class":13810},"=new",[1272,19899,19823],{"class":14037},[1272,19901,14049],{"class":1384},[1272,19903,19764],{"class":1327},[1272,19905,10936],{"class":1331},[1272,19907,19764],{"class":1327},[1272,19909,711],{"class":1278},[1272,19911,19764],{"class":1327},[1272,19913,19914],{"class":1331},"Güngör",[1272,19916,19764],{"class":1327},[1272,19918,4213],{"class":1384},[1272,19920,13666],{"class":1278},[1272,19922,19923,19926,19929,19931,19934],{"class":1274,"line":347},[1272,19924,19925],{"class":14037},"alert",[1272,19927,19928],{"class":1384},"(person",[1272,19930,9220],{"class":1278},[1272,19932,19933],{"class":1384},"name)",[1272,19935,13666],{"class":1278},[643,19937,19938,19939,19941,19942,19945,19946,19948],{},"şeklinde class'ımızdan yeni bir nesne oluşturuyoruz. Ardından da",[799,19940,19925],{},"penceresinde",[799,19943,19944],{},"person","nesnesinin",[799,19947,19828],{},"değerini\ngösteriyoruz.",[643,19950,19951],{},"Oldukça tanıdık bir yapı, ancak ilginç olan kısım ise, metodu da, class'ı da aynı şekilde tanımladık.",[643,19953,19954],{},"İşte bu kısımda aslında tam da işlerin karıştığı kısım olarak karşımıza çıkıyor. Ne yazıkki server side dillerden sonra\nçokta hoş bir yapı gibi durmuyor.",[643,19956,19957,19958,19960],{},"Peki",[799,19959,19873],{},"class'ımıza nasıl metod ekleyeceğiz?",[1264,19962,19964],{"className":16424,"code":19963,"language":16426,"meta":346,"style":346},"function Person(name,surname){\n    this.name=name;\n    this.surname=surname;\n\n    //Yeni Ekledik\n    this.showVariable=function(){\n        alert(this.name);\n    }\n}\n\nvar person=new Person('Abdurrahman','Güngör');\nperson.showVariable();\n",[799,19965,19966,19982,19996,20010,20014,20019,20034,20052,20056,20060,20064,20094],{"__ignoreMap":346},[1272,19967,19968,19970,19972,19974,19976,19978,19980],{"class":1274,"line":1275},[1272,19969,14053],{"class":14052},[1272,19971,19823],{"class":14037},[1272,19973,14049],{"class":1278},[1272,19975,19828],{"class":16462},[1272,19977,711],{"class":1278},[1272,19979,19833],{"class":16462},[1272,19981,19836],{"class":1278},[1272,19983,19984,19986,19988,19990,19992,19994],{"class":1274,"line":347},[1272,19985,16445],{"class":16444},[1272,19987,9220],{"class":1278},[1272,19989,19828],{"class":1384},[1272,19991,1324],{"class":13810},[1272,19993,19828],{"class":1384},[1272,19995,13666],{"class":1278},[1272,19997,19998,20000,20002,20004,20006,20008],{"class":1274,"line":1302},[1272,19999,16445],{"class":16444},[1272,20001,9220],{"class":1278},[1272,20003,19833],{"class":1384},[1272,20005,1324],{"class":13810},[1272,20007,19833],{"class":1384},[1272,20009,13666],{"class":1278},[1272,20011,20012],{"class":1274,"line":1312},[1272,20013,1410],{"emptyLinePlaceholder":352},[1272,20015,20016],{"class":1274,"line":1340},[1272,20017,20018],{"class":8327},"    //Yeni Ekledik\n",[1272,20020,20021,20023,20025,20028,20030,20032],{"class":1274,"line":1373},[1272,20022,16445],{"class":16444},[1272,20024,9220],{"class":1278},[1272,20026,20027],{"class":14037},"showVariable",[1272,20029,1324],{"class":13810},[1272,20031,14053],{"class":14052},[1272,20033,19754],{"class":1278},[1272,20035,20036,20039,20041,20044,20046,20048,20050],{"class":1274,"line":1395},[1272,20037,20038],{"class":14037},"        alert",[1272,20040,14049],{"class":14067},[1272,20042,20043],{"class":16444},"this",[1272,20045,9220],{"class":1278},[1272,20047,19828],{"class":1384},[1272,20049,4213],{"class":14067},[1272,20051,13666],{"class":1278},[1272,20053,20054],{"class":1274,"line":1401},[1272,20055,4534],{"class":1278},[1272,20057,20058],{"class":1274,"line":1407},[1272,20059,2677],{"class":1278},[1272,20061,20062],{"class":1274,"line":1413},[1272,20063,1410],{"emptyLinePlaceholder":352},[1272,20065,20066,20068,20070,20072,20074,20076,20078,20080,20082,20084,20086,20088,20090,20092],{"class":1274,"line":1422},[1272,20067,16577],{"class":14052},[1272,20069,19894],{"class":1384},[1272,20071,19897],{"class":13810},[1272,20073,19823],{"class":14037},[1272,20075,14049],{"class":1384},[1272,20077,19764],{"class":1327},[1272,20079,10936],{"class":1331},[1272,20081,19764],{"class":1327},[1272,20083,711],{"class":1278},[1272,20085,19764],{"class":1327},[1272,20087,19914],{"class":1331},[1272,20089,19764],{"class":1327},[1272,20091,4213],{"class":1384},[1272,20093,13666],{"class":1278},[1272,20095,20096,20098,20100,20102,20104],{"class":1274,"line":1432},[1272,20097,19944],{"class":1384},[1272,20099,9220],{"class":1278},[1272,20101,20027],{"class":14037},[1272,20103,14084],{"class":1384},[1272,20105,13666],{"class":1278},[643,20107,20108,20109,20111,20112,20114],{},"Burada ise",[799,20110,19873],{},"class'ına",[799,20113,20027],{},"adında bir metod ekledik.",[643,20116,20117,20118,20120],{},"Daha sonra bu metodu",[799,20119,19944],{},"nesnesi üzerinden çağırdık. Böylelikle aslında tam bir class'a sahip olmuş olduk.",[643,20122,20123],{},"Yalnız bir sorunumuz var. Aşağıdaki kodu inceleyelim,",[1264,20125,20127],{"className":16424,"code":20126,"language":16426,"meta":346,"style":346},"function Person(name,surname){\n    this.name=name;\n    this.surname=surname;\n\n    //Yeni Ekledik\n    this.showVariable=function(){\n        alert(this.name);\n    }\n}\n\nvar person=new Person('Abdurrahman','Güngör');\nperson.showVariable();\n\nvar person2=new Person('Sinan','Yakar');\nperson2.showVariable();\n\nvar person3=new Person('Kemal','Şahin');\nperson3.showVariable();\n",[799,20128,20129,20145,20159,20173,20177,20181,20195,20211,20215,20219,20223,20253,20265,20269,20302,20315,20319,20352],{"__ignoreMap":346},[1272,20130,20131,20133,20135,20137,20139,20141,20143],{"class":1274,"line":1275},[1272,20132,14053],{"class":14052},[1272,20134,19823],{"class":14037},[1272,20136,14049],{"class":1278},[1272,20138,19828],{"class":16462},[1272,20140,711],{"class":1278},[1272,20142,19833],{"class":16462},[1272,20144,19836],{"class":1278},[1272,20146,20147,20149,20151,20153,20155,20157],{"class":1274,"line":347},[1272,20148,16445],{"class":16444},[1272,20150,9220],{"class":1278},[1272,20152,19828],{"class":1384},[1272,20154,1324],{"class":13810},[1272,20156,19828],{"class":1384},[1272,20158,13666],{"class":1278},[1272,20160,20161,20163,20165,20167,20169,20171],{"class":1274,"line":1302},[1272,20162,16445],{"class":16444},[1272,20164,9220],{"class":1278},[1272,20166,19833],{"class":1384},[1272,20168,1324],{"class":13810},[1272,20170,19833],{"class":1384},[1272,20172,13666],{"class":1278},[1272,20174,20175],{"class":1274,"line":1312},[1272,20176,1410],{"emptyLinePlaceholder":352},[1272,20178,20179],{"class":1274,"line":1340},[1272,20180,20018],{"class":8327},[1272,20182,20183,20185,20187,20189,20191,20193],{"class":1274,"line":1373},[1272,20184,16445],{"class":16444},[1272,20186,9220],{"class":1278},[1272,20188,20027],{"class":14037},[1272,20190,1324],{"class":13810},[1272,20192,14053],{"class":14052},[1272,20194,19754],{"class":1278},[1272,20196,20197,20199,20201,20203,20205,20207,20209],{"class":1274,"line":1395},[1272,20198,20038],{"class":14037},[1272,20200,14049],{"class":14067},[1272,20202,20043],{"class":16444},[1272,20204,9220],{"class":1278},[1272,20206,19828],{"class":1384},[1272,20208,4213],{"class":14067},[1272,20210,13666],{"class":1278},[1272,20212,20213],{"class":1274,"line":1401},[1272,20214,4534],{"class":1278},[1272,20216,20217],{"class":1274,"line":1407},[1272,20218,2677],{"class":1278},[1272,20220,20221],{"class":1274,"line":1413},[1272,20222,1410],{"emptyLinePlaceholder":352},[1272,20224,20225,20227,20229,20231,20233,20235,20237,20239,20241,20243,20245,20247,20249,20251],{"class":1274,"line":1422},[1272,20226,16577],{"class":14052},[1272,20228,19894],{"class":1384},[1272,20230,19897],{"class":13810},[1272,20232,19823],{"class":14037},[1272,20234,14049],{"class":1384},[1272,20236,19764],{"class":1327},[1272,20238,10936],{"class":1331},[1272,20240,19764],{"class":1327},[1272,20242,711],{"class":1278},[1272,20244,19764],{"class":1327},[1272,20246,19914],{"class":1331},[1272,20248,19764],{"class":1327},[1272,20250,4213],{"class":1384},[1272,20252,13666],{"class":1278},[1272,20254,20255,20257,20259,20261,20263],{"class":1274,"line":1432},[1272,20256,19944],{"class":1384},[1272,20258,9220],{"class":1278},[1272,20260,20027],{"class":14037},[1272,20262,14084],{"class":1384},[1272,20264,13666],{"class":1278},[1272,20266,20267],{"class":1274,"line":1454},[1272,20268,1410],{"emptyLinePlaceholder":352},[1272,20270,20271,20273,20276,20278,20280,20282,20284,20287,20289,20291,20293,20296,20298,20300],{"class":1274,"line":1475},[1272,20272,16577],{"class":14052},[1272,20274,20275],{"class":1384}," person2",[1272,20277,19897],{"class":13810},[1272,20279,19823],{"class":14037},[1272,20281,14049],{"class":1384},[1272,20283,19764],{"class":1327},[1272,20285,20286],{"class":1331},"Sinan",[1272,20288,19764],{"class":1327},[1272,20290,711],{"class":1278},[1272,20292,19764],{"class":1327},[1272,20294,20295],{"class":1331},"Yakar",[1272,20297,19764],{"class":1327},[1272,20299,4213],{"class":1384},[1272,20301,13666],{"class":1278},[1272,20303,20304,20307,20309,20311,20313],{"class":1274,"line":1496},[1272,20305,20306],{"class":1384},"person2",[1272,20308,9220],{"class":1278},[1272,20310,20027],{"class":14037},[1272,20312,14084],{"class":1384},[1272,20314,13666],{"class":1278},[1272,20316,20317],{"class":1274,"line":1553},[1272,20318,1410],{"emptyLinePlaceholder":352},[1272,20320,20321,20323,20326,20328,20330,20332,20334,20337,20339,20341,20343,20346,20348,20350],{"class":1274,"line":1579},[1272,20322,16577],{"class":14052},[1272,20324,20325],{"class":1384}," person3",[1272,20327,19897],{"class":13810},[1272,20329,19823],{"class":14037},[1272,20331,14049],{"class":1384},[1272,20333,19764],{"class":1327},[1272,20335,20336],{"class":1331},"Kemal",[1272,20338,19764],{"class":1327},[1272,20340,711],{"class":1278},[1272,20342,19764],{"class":1327},[1272,20344,20345],{"class":1331},"Şahin",[1272,20347,19764],{"class":1327},[1272,20349,4213],{"class":1384},[1272,20351,13666],{"class":1278},[1272,20353,20354,20357,20359,20361,20363],{"class":1274,"line":1602},[1272,20355,20356],{"class":1384},"person3",[1272,20358,9220],{"class":1278},[1272,20360,20027],{"class":14037},[1272,20362,14084],{"class":1384},[1272,20364,13666],{"class":1278},[643,20366,20367,20368,20371],{},"Herşey normal gibi görünüyor. Ancak burada,",[799,20369,20370],{},"new Person()","ile oluşturduğumuz her nesne için, içindeki tüm metodlar ayrıca\nram'de yer kaplayacak şekilde oluşturuldu(burada showVariable metodu).",[643,20373,20374],{},"Bu, gözardı edilen bir sorun olsa da aslında iyi bir JavaScript yazılımcısının, bu sorunu gözardı etmemesi en doğrusu\nolacaktır.",[643,20376,20377],{},[646,20378,20379],{},"JavaScript Prototype Yapısı",[643,20381,20382],{},[895,20383],{"alt":20384,"src":20385},"Prototype","/images/2015/02/prototype-156x300.png",[643,20387,20388,20389,20392],{},"Bu sorunun çözümünde ise JavaScript'in",[646,20390,20391],{},"prototype","yapısı ile karşılaşıyoruz. Prototype bize tanımladığımız class'lara\nproperty ve metodlar ekleyerek genişletebilme imkanı sağlamaktadır.",[643,20394,20395],{},"Mesela,",[1264,20397,20399],{"className":16424,"code":20398,"language":16426,"meta":346,"style":346},"function Person(name,surname){\n    this.name=name;\n    this.surname=surname;\n    this.showVariable=function(){\n        alert(this.name);\n    }\n}\n\nPerson.prototype.showSurname=function(){\n    alert(this.surname);\n}\n\nvar person=new Person('Abdurrahman','Güngör');\nperson.showSurname();\nvar person2=new Person('Sinan','Yılmaz');\nperson2.showSurname();\nvar person3=new Person('Kemal','Şahin');\nperson3.showSurname();\n",[799,20400,20401,20417,20431,20445,20459,20475,20479,20483,20487,20507,20523,20527,20531,20561,20573,20604,20616,20646],{"__ignoreMap":346},[1272,20402,20403,20405,20407,20409,20411,20413,20415],{"class":1274,"line":1275},[1272,20404,14053],{"class":14052},[1272,20406,19823],{"class":14037},[1272,20408,14049],{"class":1278},[1272,20410,19828],{"class":16462},[1272,20412,711],{"class":1278},[1272,20414,19833],{"class":16462},[1272,20416,19836],{"class":1278},[1272,20418,20419,20421,20423,20425,20427,20429],{"class":1274,"line":347},[1272,20420,16445],{"class":16444},[1272,20422,9220],{"class":1278},[1272,20424,19828],{"class":1384},[1272,20426,1324],{"class":13810},[1272,20428,19828],{"class":1384},[1272,20430,13666],{"class":1278},[1272,20432,20433,20435,20437,20439,20441,20443],{"class":1274,"line":1302},[1272,20434,16445],{"class":16444},[1272,20436,9220],{"class":1278},[1272,20438,19833],{"class":1384},[1272,20440,1324],{"class":13810},[1272,20442,19833],{"class":1384},[1272,20444,13666],{"class":1278},[1272,20446,20447,20449,20451,20453,20455,20457],{"class":1274,"line":1312},[1272,20448,16445],{"class":16444},[1272,20450,9220],{"class":1278},[1272,20452,20027],{"class":14037},[1272,20454,1324],{"class":13810},[1272,20456,14053],{"class":14052},[1272,20458,19754],{"class":1278},[1272,20460,20461,20463,20465,20467,20469,20471,20473],{"class":1274,"line":1340},[1272,20462,20038],{"class":14037},[1272,20464,14049],{"class":14067},[1272,20466,20043],{"class":16444},[1272,20468,9220],{"class":1278},[1272,20470,19828],{"class":1384},[1272,20472,4213],{"class":14067},[1272,20474,13666],{"class":1278},[1272,20476,20477],{"class":1274,"line":1373},[1272,20478,4534],{"class":1278},[1272,20480,20481],{"class":1274,"line":1395},[1272,20482,2677],{"class":1278},[1272,20484,20485],{"class":1274,"line":1401},[1272,20486,1410],{"emptyLinePlaceholder":352},[1272,20488,20489,20492,20494,20496,20498,20501,20503,20505],{"class":1274,"line":1407},[1272,20490,19873],{"class":20491},"sZMiF",[1272,20493,9220],{"class":1278},[1272,20495,20391],{"class":1844},[1272,20497,9220],{"class":1278},[1272,20499,20500],{"class":14037},"showSurname",[1272,20502,1324],{"class":13810},[1272,20504,14053],{"class":14052},[1272,20506,19754],{"class":1278},[1272,20508,20509,20511,20513,20515,20517,20519,20521],{"class":1274,"line":1413},[1272,20510,19759],{"class":14037},[1272,20512,14049],{"class":14067},[1272,20514,20043],{"class":16444},[1272,20516,9220],{"class":1278},[1272,20518,19833],{"class":1384},[1272,20520,4213],{"class":14067},[1272,20522,13666],{"class":1278},[1272,20524,20525],{"class":1274,"line":1422},[1272,20526,2677],{"class":1278},[1272,20528,20529],{"class":1274,"line":1432},[1272,20530,1410],{"emptyLinePlaceholder":352},[1272,20532,20533,20535,20537,20539,20541,20543,20545,20547,20549,20551,20553,20555,20557,20559],{"class":1274,"line":1454},[1272,20534,16577],{"class":14052},[1272,20536,19894],{"class":1384},[1272,20538,19897],{"class":13810},[1272,20540,19823],{"class":14037},[1272,20542,14049],{"class":1384},[1272,20544,19764],{"class":1327},[1272,20546,10936],{"class":1331},[1272,20548,19764],{"class":1327},[1272,20550,711],{"class":1278},[1272,20552,19764],{"class":1327},[1272,20554,19914],{"class":1331},[1272,20556,19764],{"class":1327},[1272,20558,4213],{"class":1384},[1272,20560,13666],{"class":1278},[1272,20562,20563,20565,20567,20569,20571],{"class":1274,"line":1475},[1272,20564,19944],{"class":1384},[1272,20566,9220],{"class":1278},[1272,20568,20500],{"class":14037},[1272,20570,14084],{"class":1384},[1272,20572,13666],{"class":1278},[1272,20574,20575,20577,20579,20581,20583,20585,20587,20589,20591,20593,20595,20598,20600,20602],{"class":1274,"line":1496},[1272,20576,16577],{"class":14052},[1272,20578,20275],{"class":1384},[1272,20580,19897],{"class":13810},[1272,20582,19823],{"class":14037},[1272,20584,14049],{"class":1384},[1272,20586,19764],{"class":1327},[1272,20588,20286],{"class":1331},[1272,20590,19764],{"class":1327},[1272,20592,711],{"class":1278},[1272,20594,19764],{"class":1327},[1272,20596,20597],{"class":1331},"Yılmaz",[1272,20599,19764],{"class":1327},[1272,20601,4213],{"class":1384},[1272,20603,13666],{"class":1278},[1272,20605,20606,20608,20610,20612,20614],{"class":1274,"line":1553},[1272,20607,20306],{"class":1384},[1272,20609,9220],{"class":1278},[1272,20611,20500],{"class":14037},[1272,20613,14084],{"class":1384},[1272,20615,13666],{"class":1278},[1272,20617,20618,20620,20622,20624,20626,20628,20630,20632,20634,20636,20638,20640,20642,20644],{"class":1274,"line":1579},[1272,20619,16577],{"class":14052},[1272,20621,20325],{"class":1384},[1272,20623,19897],{"class":13810},[1272,20625,19823],{"class":14037},[1272,20627,14049],{"class":1384},[1272,20629,19764],{"class":1327},[1272,20631,20336],{"class":1331},[1272,20633,19764],{"class":1327},[1272,20635,711],{"class":1278},[1272,20637,19764],{"class":1327},[1272,20639,20345],{"class":1331},[1272,20641,19764],{"class":1327},[1272,20643,4213],{"class":1384},[1272,20645,13666],{"class":1278},[1272,20647,20648,20650,20652,20654,20656],{"class":1274,"line":1602},[1272,20649,20356],{"class":1384},[1272,20651,9220],{"class":1278},[1272,20653,20500],{"class":14037},[1272,20655,14084],{"class":1384},[1272,20657,13666],{"class":1278},[643,20659,20660,20661,20663,20664,20666],{},"burada, oluşturduğumuz",[799,20662,19873],{},"class'ına sonradan",[799,20665,20500],{},"metodunu ekleyerek yeni bir özellik eklemiş oluyoruz.",[643,20668,20669,20670,20672],{},"Bununla birlikte",[799,20671,20500],{},"metodu artık ram'e bir kere yükleniyor ve her çağırımda, referansı üzerinden metod\nişletiliyor. Böylelikle ram sorununu da çözmüş oluyoruz.",[643,20674,20675,20676,20678],{},"Prorotype yapısıyla, metod ile birlikte property de eklemek mümkün. Ancak bu yöntemi tavsiye etmiyorum. Çünkü",[799,20677,19873],{},"\nclass'ından her oluşan nesnedeki propertylerden biri değiştiğinde, aynı class'tan oluşan diğer nesnelerin property'\nlerinin değeri de değişecektir ki, bu genelde istenen birşey değildir.",[643,20680,20681],{},"Örnek;",[1264,20683,20685],{"className":16424,"code":20684,"language":16426,"meta":346,"style":346},"function Person(name,surname){\n    this.name=name;\n    this.surname=surname;\n    this.showVariable=function(){\n        alert(this.name);\n    }\n}\n\nPerson.prototype.age=25;\n\nvar person=new Person('Abdurrahman','Güngör');\nperson.age=50;\n",[799,20686,20687,20703,20717,20731,20745,20761,20765,20769,20773,20793,20797,20827],{"__ignoreMap":346},[1272,20688,20689,20691,20693,20695,20697,20699,20701],{"class":1274,"line":1275},[1272,20690,14053],{"class":14052},[1272,20692,19823],{"class":14037},[1272,20694,14049],{"class":1278},[1272,20696,19828],{"class":16462},[1272,20698,711],{"class":1278},[1272,20700,19833],{"class":16462},[1272,20702,19836],{"class":1278},[1272,20704,20705,20707,20709,20711,20713,20715],{"class":1274,"line":347},[1272,20706,16445],{"class":16444},[1272,20708,9220],{"class":1278},[1272,20710,19828],{"class":1384},[1272,20712,1324],{"class":13810},[1272,20714,19828],{"class":1384},[1272,20716,13666],{"class":1278},[1272,20718,20719,20721,20723,20725,20727,20729],{"class":1274,"line":1302},[1272,20720,16445],{"class":16444},[1272,20722,9220],{"class":1278},[1272,20724,19833],{"class":1384},[1272,20726,1324],{"class":13810},[1272,20728,19833],{"class":1384},[1272,20730,13666],{"class":1278},[1272,20732,20733,20735,20737,20739,20741,20743],{"class":1274,"line":1312},[1272,20734,16445],{"class":16444},[1272,20736,9220],{"class":1278},[1272,20738,20027],{"class":14037},[1272,20740,1324],{"class":13810},[1272,20742,14053],{"class":14052},[1272,20744,19754],{"class":1278},[1272,20746,20747,20749,20751,20753,20755,20757,20759],{"class":1274,"line":1340},[1272,20748,20038],{"class":14037},[1272,20750,14049],{"class":14067},[1272,20752,20043],{"class":16444},[1272,20754,9220],{"class":1278},[1272,20756,19828],{"class":1384},[1272,20758,4213],{"class":14067},[1272,20760,13666],{"class":1278},[1272,20762,20763],{"class":1274,"line":1373},[1272,20764,4534],{"class":1278},[1272,20766,20767],{"class":1274,"line":1395},[1272,20768,2677],{"class":1278},[1272,20770,20771],{"class":1274,"line":1401},[1272,20772,1410],{"emptyLinePlaceholder":352},[1272,20774,20775,20777,20779,20781,20783,20786,20788,20791],{"class":1274,"line":1407},[1272,20776,19873],{"class":20491},[1272,20778,9220],{"class":1278},[1272,20780,20391],{"class":1844},[1272,20782,9220],{"class":1278},[1272,20784,20785],{"class":1384},"age",[1272,20787,1324],{"class":13810},[1272,20789,20790],{"class":13650},"25",[1272,20792,13666],{"class":1278},[1272,20794,20795],{"class":1274,"line":1413},[1272,20796,1410],{"emptyLinePlaceholder":352},[1272,20798,20799,20801,20803,20805,20807,20809,20811,20813,20815,20817,20819,20821,20823,20825],{"class":1274,"line":1422},[1272,20800,16577],{"class":14052},[1272,20802,19894],{"class":1384},[1272,20804,19897],{"class":13810},[1272,20806,19823],{"class":14037},[1272,20808,14049],{"class":1384},[1272,20810,19764],{"class":1327},[1272,20812,10936],{"class":1331},[1272,20814,19764],{"class":1327},[1272,20816,711],{"class":1278},[1272,20818,19764],{"class":1327},[1272,20820,19914],{"class":1331},[1272,20822,19764],{"class":1327},[1272,20824,4213],{"class":1384},[1272,20826,13666],{"class":1278},[1272,20828,20829,20831,20833,20835,20837,20840],{"class":1274,"line":1432},[1272,20830,19944],{"class":1384},[1272,20832,9220],{"class":1278},[1272,20834,20785],{"class":1384},[1272,20836,1324],{"class":13810},[1272,20838,20839],{"class":13650},"50",[1272,20841,13666],{"class":1278},[643,20843,20844],{},"JavaScript'te doğru OOP iskeleti prototype üzerine inşa edilmektedir.",[643,20846,20847,20848,20851],{},"Yalnız yukarıda farkedeceğiniz üzere görünüm bir class gibi olmadı, class'ı tanımladık, sonra dışarıdan ayrıca\nmetodlarımızı prototype vasıtasıyla ekledik. Bu class'ı metodlarıyla beraber bir",[646,20849,20850],{},"scope","(kapsayıcı)içerisine almak için\naşağıdaki yapıyı kullanabiliriz.",[1264,20853,20855],{"className":16424,"code":20854,"language":16426,"meta":346,"style":346},"// Dış kapsayıcı (main scope)\nvar Person=(function(){\n\n// Oluşturucu (initializer) metod\nfunction Person(name,surname){\n    this.name=name;\n    this.surname=surname;\n}\n\nPerson.prototype.showName=function(){\n    alert(this.name);\n}\n\nPerson.prototype.showSurname=function(){\n    alert(this.surname);\n}\n\n//Propertylerini ve metodlarını eklediğimiz nesneyi en dıştaki Person değişkenine döndürüyoruz.\nreturn Person;\n\n//En sonda çağırdığımız \"()\" kısmı kodun otomatik olarak çalışması ve class'ın oluşturulması içindir.\n})();\n",[799,20856,20857,20862,20876,20880,20885,20901,20915,20929,20933,20937,20956,20972,20976,20980,20998,21014,21018,21022,21027,21036,21040,21045],{"__ignoreMap":346},[1272,20858,20859],{"class":1274,"line":1275},[1272,20860,20861],{"class":8327},"// Dış kapsayıcı (main scope)\n",[1272,20863,20864,20866,20868,20870,20872,20874],{"class":1274,"line":347},[1272,20865,16577],{"class":14052},[1272,20867,19823],{"class":1384},[1272,20869,1324],{"class":13810},[1272,20871,14049],{"class":1384},[1272,20873,14053],{"class":14052},[1272,20875,19754],{"class":1278},[1272,20877,20878],{"class":1274,"line":1302},[1272,20879,1410],{"emptyLinePlaceholder":352},[1272,20881,20882],{"class":1274,"line":1312},[1272,20883,20884],{"class":8327},"// Oluşturucu (initializer) metod\n",[1272,20886,20887,20889,20891,20893,20895,20897,20899],{"class":1274,"line":1340},[1272,20888,14053],{"class":14052},[1272,20890,19823],{"class":14037},[1272,20892,14049],{"class":1278},[1272,20894,19828],{"class":16462},[1272,20896,711],{"class":1278},[1272,20898,19833],{"class":16462},[1272,20900,19836],{"class":1278},[1272,20902,20903,20905,20907,20909,20911,20913],{"class":1274,"line":1373},[1272,20904,16445],{"class":16444},[1272,20906,9220],{"class":1278},[1272,20908,19828],{"class":1384},[1272,20910,1324],{"class":13810},[1272,20912,19828],{"class":1384},[1272,20914,13666],{"class":1278},[1272,20916,20917,20919,20921,20923,20925,20927],{"class":1274,"line":1395},[1272,20918,16445],{"class":16444},[1272,20920,9220],{"class":1278},[1272,20922,19833],{"class":1384},[1272,20924,1324],{"class":13810},[1272,20926,19833],{"class":1384},[1272,20928,13666],{"class":1278},[1272,20930,20931],{"class":1274,"line":1401},[1272,20932,2677],{"class":1278},[1272,20934,20935],{"class":1274,"line":1407},[1272,20936,1410],{"emptyLinePlaceholder":352},[1272,20938,20939,20941,20943,20945,20947,20950,20952,20954],{"class":1274,"line":1413},[1272,20940,19873],{"class":20491},[1272,20942,9220],{"class":1278},[1272,20944,20391],{"class":1844},[1272,20946,9220],{"class":1278},[1272,20948,20949],{"class":14037},"showName",[1272,20951,1324],{"class":13810},[1272,20953,14053],{"class":14052},[1272,20955,19754],{"class":1278},[1272,20957,20958,20960,20962,20964,20966,20968,20970],{"class":1274,"line":1422},[1272,20959,19759],{"class":14037},[1272,20961,14049],{"class":14067},[1272,20963,20043],{"class":16444},[1272,20965,9220],{"class":1278},[1272,20967,19828],{"class":1384},[1272,20969,4213],{"class":14067},[1272,20971,13666],{"class":1278},[1272,20973,20974],{"class":1274,"line":1432},[1272,20975,2677],{"class":1278},[1272,20977,20978],{"class":1274,"line":1454},[1272,20979,1410],{"emptyLinePlaceholder":352},[1272,20981,20982,20984,20986,20988,20990,20992,20994,20996],{"class":1274,"line":1475},[1272,20983,19873],{"class":20491},[1272,20985,9220],{"class":1278},[1272,20987,20391],{"class":1844},[1272,20989,9220],{"class":1278},[1272,20991,20500],{"class":14037},[1272,20993,1324],{"class":13810},[1272,20995,14053],{"class":14052},[1272,20997,19754],{"class":1278},[1272,20999,21000,21002,21004,21006,21008,21010,21012],{"class":1274,"line":1496},[1272,21001,19759],{"class":14037},[1272,21003,14049],{"class":14067},[1272,21005,20043],{"class":16444},[1272,21007,9220],{"class":1278},[1272,21009,19833],{"class":1384},[1272,21011,4213],{"class":14067},[1272,21013,13666],{"class":1278},[1272,21015,21016],{"class":1274,"line":1553},[1272,21017,2677],{"class":1278},[1272,21019,21020],{"class":1274,"line":1579},[1272,21021,1410],{"emptyLinePlaceholder":352},[1272,21023,21024],{"class":1274,"line":1602},[1272,21025,21026],{"class":8327},"//Propertylerini ve metodlarını eklediğimiz nesneyi en dıştaki Person değişkenine döndürüyoruz.\n",[1272,21028,21029,21032,21034],{"class":1274,"line":1625},[1272,21030,21031],{"class":17379},"return",[1272,21033,19823],{"class":1384},[1272,21035,13666],{"class":1278},[1272,21037,21038],{"class":1274,"line":1635},[1272,21039,1410],{"emptyLinePlaceholder":352},[1272,21041,21042],{"class":1274,"line":1641},[1272,21043,21044],{"class":8327},"//En sonda çağırdığımız \"()\" kısmı kodun otomatik olarak çalışması ve class'ın oluşturulması içindir.\n",[1272,21046,21047,21049,21052],{"class":1274,"line":1651},[1272,21048,17126],{"class":1278},[1272,21050,21051],{"class":1384},")()",[1272,21053,13666],{"class":1278},[643,21055,21056],{},"Biraz karışık göründüğünün farkındayım, ancak en ideal Oop JavaScript yapısı budur.",[643,21058,21059],{},"Bir kaç kez kullanırsanız, bu yapıya hızlı bir şekilde uyum sağlayacağınızdan emin olabilirsiniz.",[643,21061,21062,21065],{},[646,21063,21064],{},"Inheritance","konusuna ise bu ders girmedim. Onu ayrı bir derste ele almayı düşünüyorum.",[643,21067,21068,21069,21072,21073,21076],{},"Bu yapıları bize çok daha rahat bir şekilde sunan",[646,21070,21071],{},"CoffeeScript","ve",[646,21074,21075],{},"TypeScript","gibi yapılar da mevcut. Bu yapılar\nbizim bu uğraşımızı minimuma indirerek, bazı hammaliyetleri arkada kendileri çözüyor. Bu ve benzeri yapılar\nJavaScript'in büyümesine büyük katkı sağlayacaktır. Bu yeni dünyaya hızlıca uyum sağlamamız, zaruri görünüyor.",[643,21078,1976],{},[1978,21080,21081],{},"html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}",{"title":346,"searchDepth":347,"depth":347,"links":21083},[],"2015/02/oop-js.png","2015-02-27T00:00:00.000Z",{},{"title":113,"description":861},"rnhR1YKX2WuA593jFtgpXqBwcWIQTI6DeBVrPDYqADs",{"id":21090,"title":109,"body":21091,"coverImage":27027,"createDate":27028,"description":861,"extension":350,"meta":27029,"navigation":352,"path":110,"seo":27030,"stem":111,"__hash__":27031},"posts/dersler/javascript/jqueryden-yalin-javascript-vanilla-jse-gecis.md",{"type":343,"value":21092,"toc":27025},[21093,21096,21100,21103,21106,21109,21112,21117,21123,21126,21129,21134,21140,21162,21168,21196,21201,21207,21227,21233,21260,21265,21271,21292,21298,21313,21318,21324,21344,21350,21364,21369,21375,21395,21401,21415,21420,21426,21446,21452,21466,21471,21477,21506,21512,21535,21540,21545,21551,21571,21577,21648,21653,21659,21665,21687,21693,21719,21722,21725,21728,21734,21738,21744,21852,21858,22063,22067,22073,22137,22143,22240,22246,22251,22257,22277,22283,22396,22403,22460,22465,22471,22490,22496,22525,22530,22536,22555,22561,22585,22591,22596,22602,22623,22629,22650,22655,22661,22681,22687,22708,22713,22719,22739,22745,22767,22772,22778,22798,22804,22826,22831,22837,22858,22864,22894,22899,22905,22925,22931,22959,22964,22970,22991,22997,23018,23023,23029,23048,23054,23074,23079,23084,23090,23109,23115,23135,23140,23146,23167,23173,23191,23196,23202,23222,23228,23247,23252,23258,23278,23284,23306,23311,23317,23339,23345,23375,23380,23386,23412,23418,23439,23444,23450,23493,23499,23572,23577,23583,23602,23608,23622,23627,23633,23678,23684,23698,23703,23709,23728,23734,23748,23753,23759,23777,23783,23801,23806,23812,23832,23838,23853,23858,23864,23901,23907,23935,23940,23946,23971,23977,23992,23997,24003,24031,24037,24170,24175,24181,24200,24206,24228,24233,24239,24259,24265,24360,24365,24371,24391,24397,24417,24422,24428,24448,24454,24468,24473,24479,24502,24508,24634,24639,24645,24665,24671,24685,24690,24696,24719,24725,24846,24851,24857,24877,24883,24920,24925,24931,25019,25025,25041,25046,25052,25081,25087,25113,25118,25124,25156,25162,25192,25198,25203,25209,25235,25241,25263,25268,25274,25298,25304,25326,25331,25337,25370,25376,25504,25509,25515,25544,25550,25629,25634,25640,25687,25693,25864,25870,25875,25881,25910,25916,26159,26164,26170,26200,26206,26510,26515,26521,26540,26546,26563,26568,26574,26619,26625,26665,26670,26676,26694,26700,26803,26808,26814,26832,26838,26857,26862,26868,26886,26892,26910,26915,26921,26939,26945,27022],[639,21094,109],{"id":21095},"jqueryden-yalın-javascript-vanilla-jse-geçiş",[643,21097,21098],{},[646,21099,861],{},[643,21101,21102],{},"Çalıştığım iş yerinde, bu aralar frontend tarafında, ciddi bir performans iyileştirmesi yapmaktayım. Bu noktada, Jquery bağımlılığını kaldırma kararı aldım.",[643,21104,21105],{},"Peki neden böyle bir gereksinim duydum? Bunun aslında cevabı, aşağıdaki performans testinde gizli;",[643,21107,21108],{},"Yukarıdaki tablodan da görüleceği üzere, dom manipülasyonlarında yalın js yazmak ciddi bir performans kazanımı sağlamaktadır. Burada Vanilla Js diye bahsedilen kısmın, yalın javascript olduğu gözden kaçmamalıdır.",[643,21110,21111],{},"JQuery ile kullanılan metodların, Javascript üzerinde alternatiflerinin neler olduğunu, inşallah başlıklar halinde inceleyeceğiz.",[4105,21113,21114],{},[643,21115,21116],{},"Örneklerin çoğunu,  youmightnotneedjquery.com sitesinden aldım.",[11478,21118,21120],{"id":21119},"seçiciler-selectors",[646,21121,21122],{},"Seçiciler (Selectors)",[643,21124,21125],{},"Jquery'nin en popüler olduğu alan, geniş seçici desteğiydi. Css seçicilerini doğrudan kullanabilmek gerçekten büyük bir nimetti. Bu imkan, Sizzle Js kütüphanesi ile dahili olarak sağlanmaktaydı.",[643,21127,21128],{},"Ancak Internet Explorer 9 ve diğer modern tarayıcılar ile birlikte, artık bu tarz seçicileri, doğrudan Javascript ile çağırabilir hale geldik.",[643,21130,21131],{},[646,21132,21133],{},"Id Seçici (Id Selector)",[643,21135,21136],{},[5583,21137,21138],{},[646,21139,16269],{},[1264,21141,21143],{"className":16424,"code":21142,"language":16426,"meta":346,"style":346},"$(\"#id ismi\")\n",[799,21144,21145],{"__ignoreMap":346},[1272,21146,21147,21150,21152,21154,21157,21159],{"class":1274,"line":1275},[1272,21148,21149],{"class":14037},"$",[1272,21151,14049],{"class":1384},[1272,21153,1328],{"class":1327},[1272,21155,21156],{"class":1331},"#id ismi",[1272,21158,1328],{"class":1327},[1272,21160,21161],{"class":1384},")\n",[643,21163,21164],{},[5583,21165,21166],{},[646,21167,104],{},[1264,21169,21171],{"className":16424,"code":21170,"language":16426,"meta":346,"style":346},"document.getElementById(\"id ismi\");\n",[799,21172,21173],{"__ignoreMap":346},[1272,21174,21175,21178,21180,21183,21185,21187,21190,21192,21194],{"class":1274,"line":1275},[1272,21176,21177],{"class":1384},"document",[1272,21179,9220],{"class":1278},[1272,21181,21182],{"class":14037},"getElementById",[1272,21184,14049],{"class":1384},[1272,21186,1328],{"class":1327},[1272,21188,21189],{"class":1331},"id ismi",[1272,21191,1328],{"class":1327},[1272,21193,4213],{"class":1384},[1272,21195,13666],{"class":1278},[643,21197,21198],{},[646,21199,21200],{},"Class Seçici (Class Selector)",[643,21202,21203],{},[5583,21204,21205],{},[646,21206,16269],{},[1264,21208,21210],{"className":16424,"code":21209,"language":16426,"meta":346,"style":346},"$(\".class ismi\")\n",[799,21211,21212],{"__ignoreMap":346},[1272,21213,21214,21216,21218,21220,21223,21225],{"class":1274,"line":1275},[1272,21215,21149],{"class":14037},[1272,21217,14049],{"class":1384},[1272,21219,1328],{"class":1327},[1272,21221,21222],{"class":1331},".class ismi",[1272,21224,1328],{"class":1327},[1272,21226,21161],{"class":1384},[643,21228,21229],{},[5583,21230,21231],{},[646,21232,104],{},[1264,21234,21236],{"className":16424,"code":21235,"language":16426,"meta":346,"style":346},"document.getElementsByClassName(\"class ismi\");\n",[799,21237,21238],{"__ignoreMap":346},[1272,21239,21240,21242,21244,21247,21249,21251,21254,21256,21258],{"class":1274,"line":1275},[1272,21241,21177],{"class":1384},[1272,21243,9220],{"class":1278},[1272,21245,21246],{"class":14037},"getElementsByClassName",[1272,21248,14049],{"class":1384},[1272,21250,1328],{"class":1327},[1272,21252,21253],{"class":1331},"class ismi",[1272,21255,1328],{"class":1327},[1272,21257,4213],{"class":1384},[1272,21259,13666],{"class":1278},[643,21261,21262],{},[646,21263,21264],{},"Sonraki Eleman Seçici (Next Selector)",[643,21266,21267],{},[5583,21268,21269],{},[646,21270,16269],{},[1264,21272,21274],{"className":16424,"code":21273,"language":16426,"meta":346,"style":346},"$(el).next();\n",[799,21275,21276],{"__ignoreMap":346},[1272,21277,21278,21280,21283,21285,21288,21290],{"class":1274,"line":1275},[1272,21279,21149],{"class":14037},[1272,21281,21282],{"class":1384},"(el)",[1272,21284,9220],{"class":1278},[1272,21286,21287],{"class":14037},"next",[1272,21289,14084],{"class":1384},[1272,21291,13666],{"class":1278},[643,21293,21294],{},[5583,21295,21296],{},[646,21297,104],{},[1264,21299,21301],{"className":16424,"code":21300,"language":16426,"meta":346,"style":346},"el.nextElementSibling\n",[799,21302,21303],{"__ignoreMap":346},[1272,21304,21305,21308,21310],{"class":1274,"line":1275},[1272,21306,21307],{"class":1384},"el",[1272,21309,9220],{"class":1278},[1272,21311,21312],{"class":1384},"nextElementSibling\n",[643,21314,21315],{},[646,21316,21317],{},"Önceki Eleman Seçici (Prev Selector)",[643,21319,21320],{},[5583,21321,21322],{},[646,21323,16269],{},[1264,21325,21327],{"className":16424,"code":21326,"language":16426,"meta":346,"style":346},"$(el).prev();\n",[799,21328,21329],{"__ignoreMap":346},[1272,21330,21331,21333,21335,21337,21340,21342],{"class":1274,"line":1275},[1272,21332,21149],{"class":14037},[1272,21334,21282],{"class":1384},[1272,21336,9220],{"class":1278},[1272,21338,21339],{"class":14037},"prev",[1272,21341,14084],{"class":1384},[1272,21343,13666],{"class":1278},[643,21345,21346],{},[5583,21347,21348],{},[646,21349,104],{},[1264,21351,21353],{"className":16424,"code":21352,"language":16426,"meta":346,"style":346},"el.prevElementSibling\n",[799,21354,21355],{"__ignoreMap":346},[1272,21356,21357,21359,21361],{"class":1274,"line":1275},[1272,21358,21307],{"class":1384},[1272,21360,9220],{"class":1278},[1272,21362,21363],{"class":1384},"prevElementSibling\n",[643,21365,21366],{},[646,21367,21368],{},"Çocuk Eleman Seçici (Child Selector)",[643,21370,21371],{},[5583,21372,21373],{},[646,21374,16269],{},[1264,21376,21378],{"className":16424,"code":21377,"language":16426,"meta":346,"style":346},"$(el).children();\n",[799,21379,21380],{"__ignoreMap":346},[1272,21381,21382,21384,21386,21388,21391,21393],{"class":1274,"line":1275},[1272,21383,21149],{"class":14037},[1272,21385,21282],{"class":1384},[1272,21387,9220],{"class":1278},[1272,21389,21390],{"class":14037},"children",[1272,21392,14084],{"class":1384},[1272,21394,13666],{"class":1278},[643,21396,21397],{},[5583,21398,21399],{},[646,21400,104],{},[1264,21402,21404],{"className":16424,"code":21403,"language":16426,"meta":346,"style":346},"el.children\n",[799,21405,21406],{"__ignoreMap":346},[1272,21407,21408,21410,21412],{"class":1274,"line":1275},[1272,21409,21307],{"class":1384},[1272,21411,9220],{"class":1278},[1272,21413,21414],{"class":1384},"children\n",[643,21416,21417],{},[646,21418,21419],{},"Üst Eleman Seçici (Parent Selector)",[643,21421,21422],{},[5583,21423,21424],{},[646,21425,16269],{},[1264,21427,21429],{"className":16424,"code":21428,"language":16426,"meta":346,"style":346},"$(el).parent();\n",[799,21430,21431],{"__ignoreMap":346},[1272,21432,21433,21435,21437,21439,21442,21444],{"class":1274,"line":1275},[1272,21434,21149],{"class":14037},[1272,21436,21282],{"class":1384},[1272,21438,9220],{"class":1278},[1272,21440,21441],{"class":14037},"parent",[1272,21443,14084],{"class":1384},[1272,21445,13666],{"class":1278},[643,21447,21448],{},[5583,21449,21450],{},[646,21451,104],{},[1264,21453,21455],{"className":16424,"code":21454,"language":16426,"meta":346,"style":346},"el.parentNode\n",[799,21456,21457],{"__ignoreMap":346},[1272,21458,21459,21461,21463],{"class":1274,"line":1275},[1272,21460,21307],{"class":1384},[1272,21462,9220],{"class":1278},[1272,21464,21465],{"class":1384},"parentNode\n",[643,21467,21468],{},[646,21469,21470],{},"Üst En Yakın Eleman Seçici (Verilen Seçiciye Göre) (Closest Selector)",[643,21472,21473],{},[5583,21474,21475],{},[646,21476,16269],{},[1264,21478,21480],{"className":16424,"code":21479,"language":16426,"meta":346,"style":346},"$(el).closest(\"selector\");\n",[799,21481,21482],{"__ignoreMap":346},[1272,21483,21484,21486,21488,21490,21493,21495,21497,21500,21502,21504],{"class":1274,"line":1275},[1272,21485,21149],{"class":14037},[1272,21487,21282],{"class":1384},[1272,21489,9220],{"class":1278},[1272,21491,21492],{"class":14037},"closest",[1272,21494,14049],{"class":1384},[1272,21496,1328],{"class":1327},[1272,21498,21499],{"class":1331},"selector",[1272,21501,1328],{"class":1327},[1272,21503,4213],{"class":1384},[1272,21505,13666],{"class":1278},[643,21507,21508],{},[5583,21509,21510],{},[646,21511,104],{},[1264,21513,21515],{"className":16424,"code":21514,"language":16426,"meta":346,"style":346},"el.closest(\"selector\")\n",[799,21516,21517],{"__ignoreMap":346},[1272,21518,21519,21521,21523,21525,21527,21529,21531,21533],{"class":1274,"line":1275},[1272,21520,21307],{"class":1384},[1272,21522,9220],{"class":1278},[1272,21524,21492],{"class":14037},[1272,21526,14049],{"class":1384},[1272,21528,1328],{"class":1327},[1272,21530,21499],{"class":1331},[1272,21532,1328],{"class":1327},[1272,21534,21161],{"class":1384},[4105,21536,21537],{},[643,21538,21539],{},"Not : closest metodu Internet Explorer'da çalışmıyor.",[643,21541,21542],{},[646,21543,21544],{},"Kardeş Eleman Seçici (Siblings Selector)",[643,21546,21547],{},[5583,21548,21549],{},[646,21550,16269],{},[1264,21552,21554],{"className":16424,"code":21553,"language":16426,"meta":346,"style":346},"$(el).siblings();\n",[799,21555,21556],{"__ignoreMap":346},[1272,21557,21558,21560,21562,21564,21567,21569],{"class":1274,"line":1275},[1272,21559,21149],{"class":14037},[1272,21561,21282],{"class":1384},[1272,21563,9220],{"class":1278},[1272,21565,21566],{"class":14037},"siblings",[1272,21568,14084],{"class":1384},[1272,21570,13666],{"class":1278},[643,21572,21573],{},[5583,21574,21575],{},[646,21576,104],{},[1264,21578,21580],{"className":16424,"code":21579,"language":16426,"meta":346,"style":346},"Array.prototype.filter.call(el.parentNode.children, function(child){\n  return child !== el;\n});\n",[799,21581,21582,21624,21640],{"__ignoreMap":346},[1272,21583,21584,21587,21589,21591,21593,21596,21598,21601,21604,21606,21609,21611,21613,21615,21617,21619,21622],{"class":1274,"line":1275},[1272,21585,21586],{"class":20491},"Array",[1272,21588,9220],{"class":1278},[1272,21590,20391],{"class":1844},[1272,21592,9220],{"class":1278},[1272,21594,21595],{"class":1384},"filter",[1272,21597,9220],{"class":1278},[1272,21599,21600],{"class":14037},"call",[1272,21602,21603],{"class":1384},"(el",[1272,21605,9220],{"class":1278},[1272,21607,21608],{"class":1384},"parentNode",[1272,21610,9220],{"class":1278},[1272,21612,21390],{"class":1384},[1272,21614,711],{"class":1278},[1272,21616,16456],{"class":14052},[1272,21618,14049],{"class":1278},[1272,21620,21621],{"class":16462},"child",[1272,21623,19836],{"class":1278},[1272,21625,21626,21629,21632,21635,21638],{"class":1274,"line":347},[1272,21627,21628],{"class":17379},"  return",[1272,21630,21631],{"class":1384}," child",[1272,21633,21634],{"class":13810}," !==",[1272,21636,21637],{"class":1384}," el",[1272,21639,13666],{"class":1278},[1272,21641,21642,21644,21646],{"class":1274,"line":1302},[1272,21643,17126],{"class":1278},[1272,21645,4213],{"class":1384},[1272,21647,13666],{"class":1278},[643,21649,21650],{},[646,21651,21652],{},"Özel Seçiciler",[643,21654,21655,21658],{},[646,21656,21657],{},"\".buttons>.i\""," şeklinde özel bir seçici yazacaksak eğer şu şekillerde çağırım yapabiliyoruz.",[643,21660,21661],{},[5583,21662,21663],{},[646,21664,16269],{},[1264,21666,21668],{"className":16424,"code":21667,"language":16426,"meta":346,"style":346},"$(\".buttons>.i\");\n",[799,21669,21670],{"__ignoreMap":346},[1272,21671,21672,21674,21676,21678,21681,21683,21685],{"class":1274,"line":1275},[1272,21673,21149],{"class":14037},[1272,21675,14049],{"class":1384},[1272,21677,1328],{"class":1327},[1272,21679,21680],{"class":1331},".buttons>.i",[1272,21682,1328],{"class":1327},[1272,21684,4213],{"class":1384},[1272,21686,13666],{"class":1278},[643,21688,21689],{},[5583,21690,21691],{},[646,21692,104],{},[1264,21694,21696],{"className":16424,"code":21695,"language":16426,"meta":346,"style":346},"document.querySelector(\".buttons>.i\");\n",[799,21697,21698],{"__ignoreMap":346},[1272,21699,21700,21702,21704,21707,21709,21711,21713,21715,21717],{"class":1274,"line":1275},[1272,21701,21177],{"class":1384},[1272,21703,9220],{"class":1278},[1272,21705,21706],{"class":14037},"querySelector",[1272,21708,14049],{"class":1384},[1272,21710,1328],{"class":1327},[1272,21712,21680],{"class":1331},[1272,21714,1328],{"class":1327},[1272,21716,4213],{"class":1384},[1272,21718,13666],{"class":1278},[643,21720,21721],{},"Burada dikkat çeken husus, yukarıdaki seçim yönteminde, eşleşme sağlanan ilk eleman gelir.",[643,21723,21724],{},"document.querySelectorAll(\".buttons>.i\");",[643,21726,21727],{},"Bu yöntemde ise eşleşen bütün elemanlar gelecektir.",[11478,21729,21731],{"id":21730},"ajax-i̇stekleri",[646,21732,21733],{},"Ajax İstekleri",[643,21735,21736],{},[646,21737,18971],{},[643,21739,21740],{},[5583,21741,21742],{},[646,21743,16269],{},[1264,21745,21747],{"className":16424,"code":21746,"language":16426,"meta":346,"style":346},"$.ajax({\n  type: 'GET',\n  url: '/my/url',\n  success: function(resp) {\n\n  },\n  error: function() {\n\n  }\n});\n",[799,21748,21749,21762,21779,21795,21813,21817,21822,21835,21839,21844],{"__ignoreMap":346},[1272,21750,21751,21753,21755,21758,21760],{"class":1274,"line":1275},[1272,21752,21149],{"class":1384},[1272,21754,9220],{"class":1278},[1272,21756,21757],{"class":14037},"ajax",[1272,21759,14049],{"class":1384},[1272,21761,4271],{"class":1278},[1272,21763,21764,21767,21769,21772,21775,21777],{"class":1274,"line":347},[1272,21765,21766],{"class":14067},"  type",[1272,21768,13647],{"class":1278},[1272,21770,21771],{"class":1327}," '",[1272,21773,21774],{"class":1331},"GET",[1272,21776,19764],{"class":1327},[1272,21778,17121],{"class":1278},[1272,21780,21781,21784,21786,21788,21791,21793],{"class":1274,"line":1302},[1272,21782,21783],{"class":14067},"  url",[1272,21785,13647],{"class":1278},[1272,21787,21771],{"class":1327},[1272,21789,21790],{"class":1331},"/my/url",[1272,21792,19764],{"class":1327},[1272,21794,17121],{"class":1278},[1272,21796,21797,21800,21802,21804,21806,21809,21811],{"class":1274,"line":1312},[1272,21798,21799],{"class":14037},"  success",[1272,21801,13647],{"class":1278},[1272,21803,16456],{"class":14052},[1272,21805,14049],{"class":1278},[1272,21807,21808],{"class":16462},"resp",[1272,21810,4213],{"class":1278},[1272,21812,13638],{"class":1278},[1272,21814,21815],{"class":1274,"line":1340},[1272,21816,1410],{"emptyLinePlaceholder":352},[1272,21818,21819],{"class":1274,"line":1373},[1272,21820,21821],{"class":1278},"  },\n",[1272,21823,21824,21827,21829,21831,21833],{"class":1274,"line":1395},[1272,21825,21826],{"class":14037},"  error",[1272,21828,13647],{"class":1278},[1272,21830,16456],{"class":14052},[1272,21832,14084],{"class":1278},[1272,21834,13638],{"class":1278},[1272,21836,21837],{"class":1274,"line":1401},[1272,21838,1410],{"emptyLinePlaceholder":352},[1272,21840,21841],{"class":1274,"line":1407},[1272,21842,21843],{"class":1278},"  }\n",[1272,21845,21846,21848,21850],{"class":1274,"line":1413},[1272,21847,17126],{"class":1278},[1272,21849,4213],{"class":1384},[1272,21851,13666],{"class":1278},[643,21853,21854],{},[5583,21855,21856],{},[646,21857,104],{},[1264,21859,21861],{"className":16424,"code":21860,"language":16426,"meta":346,"style":346},"var request = new XMLHttpRequest();\nrequest.open('GET', '/my/url', true);\n \nrequest.onload = function() {\n  if (this.status >= 200 && this.status \u003C 400) {\n    var resp = this.response;\n  } else {\n \n  }\n};\n \nrequest.onerror = function() {\n};\n \nrequest.send();\n",[799,21862,21863,21881,21917,21922,21939,21979,21998,22008,22012,22016,22021,22025,22042,22046,22050],{"__ignoreMap":346},[1272,21864,21865,21867,21870,21872,21874,21877,21879],{"class":1274,"line":1275},[1272,21866,16577],{"class":14052},[1272,21868,21869],{"class":1384}," request ",[1272,21871,1324],{"class":13810},[1272,21873,16585],{"class":13810},[1272,21875,21876],{"class":14037}," XMLHttpRequest",[1272,21878,14084],{"class":1384},[1272,21880,13666],{"class":1278},[1272,21882,21883,21886,21888,21891,21893,21895,21897,21899,21901,21903,21905,21907,21909,21913,21915],{"class":1274,"line":347},[1272,21884,21885],{"class":1384},"request",[1272,21887,9220],{"class":1278},[1272,21889,21890],{"class":14037},"open",[1272,21892,14049],{"class":1384},[1272,21894,19764],{"class":1327},[1272,21896,21774],{"class":1331},[1272,21898,19764],{"class":1327},[1272,21900,711],{"class":1278},[1272,21902,21771],{"class":1327},[1272,21904,21790],{"class":1331},[1272,21906,19764],{"class":1327},[1272,21908,711],{"class":1278},[1272,21910,21912],{"class":21911},"syTEX"," true",[1272,21914,4213],{"class":1384},[1272,21916,13666],{"class":1278},[1272,21918,21919],{"class":1274,"line":1302},[1272,21920,21921],{"class":1384}," \n",[1272,21923,21924,21926,21928,21931,21933,21935,21937],{"class":1274,"line":1312},[1272,21925,21885],{"class":1384},[1272,21927,9220],{"class":1278},[1272,21929,21930],{"class":14037},"onload",[1272,21932,16453],{"class":13810},[1272,21934,16456],{"class":14052},[1272,21936,14084],{"class":1278},[1272,21938,13638],{"class":1278},[1272,21940,21941,21944,21946,21948,21950,21953,21956,21959,21962,21965,21967,21969,21971,21974,21977],{"class":1274,"line":1340},[1272,21942,21943],{"class":17379},"  if",[1272,21945,16459],{"class":14067},[1272,21947,20043],{"class":16444},[1272,21949,9220],{"class":1278},[1272,21951,21952],{"class":1384},"status",[1272,21954,21955],{"class":13810}," >=",[1272,21957,21958],{"class":13650}," 200",[1272,21960,21961],{"class":13810}," &&",[1272,21963,21964],{"class":16444}," this",[1272,21966,9220],{"class":1278},[1272,21968,21952],{"class":1384},[1272,21970,14531],{"class":13810},[1272,21972,21973],{"class":13650}," 400",[1272,21975,21976],{"class":14067},") ",[1272,21978,4271],{"class":1278},[1272,21980,21981,21984,21987,21989,21991,21993,21996],{"class":1274,"line":1373},[1272,21982,21983],{"class":14052},"    var",[1272,21985,21986],{"class":1384}," resp",[1272,21988,16453],{"class":13810},[1272,21990,21964],{"class":16444},[1272,21992,9220],{"class":1278},[1272,21994,21995],{"class":1384},"response",[1272,21997,13666],{"class":1278},[1272,21999,22000,22003,22006],{"class":1274,"line":1395},[1272,22001,22002],{"class":1278},"  }",[1272,22004,22005],{"class":17379}," else",[1272,22007,13638],{"class":1278},[1272,22009,22010],{"class":1274,"line":1401},[1272,22011,21921],{"class":14067},[1272,22013,22014],{"class":1274,"line":1407},[1272,22015,21843],{"class":1278},[1272,22017,22018],{"class":1274,"line":1413},[1272,22019,22020],{"class":1278},"};\n",[1272,22022,22023],{"class":1274,"line":1422},[1272,22024,21921],{"class":1384},[1272,22026,22027,22029,22031,22034,22036,22038,22040],{"class":1274,"line":1432},[1272,22028,21885],{"class":1384},[1272,22030,9220],{"class":1278},[1272,22032,22033],{"class":14037},"onerror",[1272,22035,16453],{"class":13810},[1272,22037,16456],{"class":14052},[1272,22039,14084],{"class":1278},[1272,22041,13638],{"class":1278},[1272,22043,22044],{"class":1274,"line":1454},[1272,22045,22020],{"class":1278},[1272,22047,22048],{"class":1274,"line":1475},[1272,22049,21921],{"class":1384},[1272,22051,22052,22054,22056,22059,22061],{"class":1274,"line":1496},[1272,22053,21885],{"class":1384},[1272,22055,9220],{"class":1278},[1272,22057,22058],{"class":14037},"send",[1272,22060,14084],{"class":1384},[1272,22062,13666],{"class":1278},[643,22064,22065],{},[646,22066,18975],{},[643,22068,22069],{},[5583,22070,22071],{},[646,22072,16269],{},[1264,22074,22076],{"className":16424,"code":22075,"language":16426,"meta":346,"style":346},"$.ajax({\n  type: 'POST',\n  url: '/my/url',\n  data: data\n});\n",[799,22077,22078,22090,22105,22119,22129],{"__ignoreMap":346},[1272,22079,22080,22082,22084,22086,22088],{"class":1274,"line":1275},[1272,22081,21149],{"class":1384},[1272,22083,9220],{"class":1278},[1272,22085,21757],{"class":14037},[1272,22087,14049],{"class":1384},[1272,22089,4271],{"class":1278},[1272,22091,22092,22094,22096,22098,22101,22103],{"class":1274,"line":347},[1272,22093,21766],{"class":14067},[1272,22095,13647],{"class":1278},[1272,22097,21771],{"class":1327},[1272,22099,22100],{"class":1331},"POST",[1272,22102,19764],{"class":1327},[1272,22104,17121],{"class":1278},[1272,22106,22107,22109,22111,22113,22115,22117],{"class":1274,"line":1302},[1272,22108,21783],{"class":14067},[1272,22110,13647],{"class":1278},[1272,22112,21771],{"class":1327},[1272,22114,21790],{"class":1331},[1272,22116,19764],{"class":1327},[1272,22118,17121],{"class":1278},[1272,22120,22121,22124,22126],{"class":1274,"line":1312},[1272,22122,22123],{"class":14067},"  data",[1272,22125,13647],{"class":1278},[1272,22127,22128],{"class":1384}," data\n",[1272,22130,22131,22133,22135],{"class":1274,"line":1340},[1272,22132,17126],{"class":1278},[1272,22134,4213],{"class":1384},[1272,22136,13666],{"class":1278},[643,22138,22139],{},[5583,22140,22141],{},[646,22142,104],{},[1264,22144,22146],{"className":16424,"code":22145,"language":16426,"meta":346,"style":346},"var request = new XMLHttpRequest();\nrequest.open('POST', '/my/url', true);\nrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\nrequest.send(data);\n",[799,22147,22148,22164,22196,22227],{"__ignoreMap":346},[1272,22149,22150,22152,22154,22156,22158,22160,22162],{"class":1274,"line":1275},[1272,22151,16577],{"class":14052},[1272,22153,21869],{"class":1384},[1272,22155,1324],{"class":13810},[1272,22157,16585],{"class":13810},[1272,22159,21876],{"class":14037},[1272,22161,14084],{"class":1384},[1272,22163,13666],{"class":1278},[1272,22165,22166,22168,22170,22172,22174,22176,22178,22180,22182,22184,22186,22188,22190,22192,22194],{"class":1274,"line":347},[1272,22167,21885],{"class":1384},[1272,22169,9220],{"class":1278},[1272,22171,21890],{"class":14037},[1272,22173,14049],{"class":1384},[1272,22175,19764],{"class":1327},[1272,22177,22100],{"class":1331},[1272,22179,19764],{"class":1327},[1272,22181,711],{"class":1278},[1272,22183,21771],{"class":1327},[1272,22185,21790],{"class":1331},[1272,22187,19764],{"class":1327},[1272,22189,711],{"class":1278},[1272,22191,21912],{"class":21911},[1272,22193,4213],{"class":1384},[1272,22195,13666],{"class":1278},[1272,22197,22198,22200,22202,22205,22207,22209,22212,22214,22216,22218,22221,22223,22225],{"class":1274,"line":1302},[1272,22199,21885],{"class":1384},[1272,22201,9220],{"class":1278},[1272,22203,22204],{"class":14037},"setRequestHeader",[1272,22206,14049],{"class":1384},[1272,22208,19764],{"class":1327},[1272,22210,22211],{"class":1331},"Content-Type",[1272,22213,19764],{"class":1327},[1272,22215,711],{"class":1278},[1272,22217,21771],{"class":1327},[1272,22219,22220],{"class":1331},"application/x-www-form-urlencoded; charset=UTF-8",[1272,22222,19764],{"class":1327},[1272,22224,4213],{"class":1384},[1272,22226,13666],{"class":1278},[1272,22228,22229,22231,22233,22235,22238],{"class":1274,"line":1312},[1272,22230,21885],{"class":1384},[1272,22232,9220],{"class":1278},[1272,22234,22058],{"class":14037},[1272,22236,22237],{"class":1384},"(data)",[1272,22239,13666],{"class":1278},[11478,22241,22243],{"id":22242},"görsel-efektler",[646,22244,22245],{},"Görsel Efektler",[643,22247,22248],{},[646,22249,22250],{},"Animasyonlu Gösterme (Fade In)",[643,22252,22253],{},[5583,22254,22255],{},[646,22256,16269],{},[1264,22258,22260],{"className":16424,"code":22259,"language":16426,"meta":346,"style":346},"$(el).fadeIn();\n",[799,22261,22262],{"__ignoreMap":346},[1272,22263,22264,22266,22268,22270,22273,22275],{"class":1274,"line":1275},[1272,22265,21149],{"class":14037},[1272,22267,21282],{"class":1384},[1272,22269,9220],{"class":1278},[1272,22271,22272],{"class":14037},"fadeIn",[1272,22274,14084],{"class":1384},[1272,22276,13666],{"class":1278},[643,22278,22279],{},[5583,22280,22281],{},[646,22282,104],{},[1264,22284,22286],{"className":16424,"code":22285,"language":16426,"meta":346,"style":346},"el.classList.add('show');\nel.classList.remove('hide');\n.show {\n  transition: opacity 400ms;\n}\n.hide {\n  opacity: 0;\n}\n",[799,22287,22288,22315,22341,22350,22368,22372,22381,22392],{"__ignoreMap":346},[1272,22289,22290,22292,22294,22297,22299,22302,22304,22306,22309,22311,22313],{"class":1274,"line":1275},[1272,22291,21307],{"class":1384},[1272,22293,9220],{"class":1278},[1272,22295,22296],{"class":1384},"classList",[1272,22298,9220],{"class":1278},[1272,22300,22301],{"class":14037},"add",[1272,22303,14049],{"class":1384},[1272,22305,19764],{"class":1327},[1272,22307,22308],{"class":1331},"show",[1272,22310,19764],{"class":1327},[1272,22312,4213],{"class":1384},[1272,22314,13666],{"class":1278},[1272,22316,22317,22319,22321,22323,22325,22328,22330,22332,22335,22337,22339],{"class":1274,"line":347},[1272,22318,21307],{"class":1384},[1272,22320,9220],{"class":1278},[1272,22322,22296],{"class":1384},[1272,22324,9220],{"class":1278},[1272,22326,22327],{"class":14037},"remove",[1272,22329,14049],{"class":1384},[1272,22331,19764],{"class":1327},[1272,22333,22334],{"class":1331},"hide",[1272,22336,19764],{"class":1327},[1272,22338,4213],{"class":1384},[1272,22340,13666],{"class":1278},[1272,22342,22343,22345,22348],{"class":1274,"line":1302},[1272,22344,9220],{"class":1278},[1272,22346,22347],{"class":1384},"show ",[1272,22349,4271],{"class":1278},[1272,22351,22352,22356,22358,22361,22363,22366],{"class":1274,"line":1312},[1272,22353,22355],{"class":22354},"sbgvK","  transition",[1272,22357,13647],{"class":1278},[1272,22359,22360],{"class":1384}," opacity",[1272,22362,21973],{"class":14067},[1272,22364,22365],{"class":1384},"ms",[1272,22367,13666],{"class":1278},[1272,22369,22370],{"class":1274,"line":1340},[1272,22371,2677],{"class":1278},[1272,22373,22374,22376,22379],{"class":1274,"line":1373},[1272,22375,9220],{"class":1278},[1272,22377,22378],{"class":1384},"hide ",[1272,22380,4271],{"class":1278},[1272,22382,22383,22386,22388,22390],{"class":1274,"line":1395},[1272,22384,22385],{"class":22354},"  opacity",[1272,22387,13647],{"class":1278},[1272,22389,13651],{"class":13650},[1272,22391,13666],{"class":1278},[1272,22393,22394],{"class":1274,"line":1401},[1272,22395,2677],{"class":1278},[643,22397,22398],{},[5583,22399,22400],{},[646,22401,22402],{},"Css",[1264,22404,22408],{"className":22405,"code":22406,"language":22407,"meta":346,"style":346},"language-css shiki shiki-themes material-theme-lighter github-light github-dark",".show {\n  transition: opacity 400ms;\n}\n.hide {\n  opacity: 0;\n}\n","css",[799,22409,22410,22418,22434,22438,22446,22456],{"__ignoreMap":346},[1272,22411,22412,22414,22416],{"class":1274,"line":1275},[1272,22413,9220],{"class":13630},[1272,22415,22308],{"class":22354},[1272,22417,13638],{"class":1278},[1272,22419,22420,22422,22424,22427,22430,22432],{"class":1274,"line":347},[1272,22421,22355],{"class":13643},[1272,22423,13647],{"class":1278},[1272,22425,22426],{"class":1384}," opacity ",[1272,22428,22429],{"class":13650},"400",[1272,22431,22365],{"class":13659},[1272,22433,13666],{"class":1278},[1272,22435,22436],{"class":1274,"line":1302},[1272,22437,2677],{"class":1278},[1272,22439,22440,22442,22444],{"class":1274,"line":1312},[1272,22441,9220],{"class":13630},[1272,22443,22334],{"class":22354},[1272,22445,13638],{"class":1278},[1272,22447,22448,22450,22452,22454],{"class":1274,"line":1340},[1272,22449,22385],{"class":13643},[1272,22451,13647],{"class":1278},[1272,22453,13651],{"class":13650},[1272,22455,13666],{"class":1278},[1272,22457,22458],{"class":1274,"line":1373},[1272,22459,2677],{"class":1278},[643,22461,22462],{},[646,22463,22464],{},"Gizleme (Hide)",[643,22466,22467],{},[5583,22468,22469],{},[646,22470,16269],{},[1264,22472,22474],{"className":16424,"code":22473,"language":16426,"meta":346,"style":346},"$(el).hide();\n",[799,22475,22476],{"__ignoreMap":346},[1272,22477,22478,22480,22482,22484,22486,22488],{"class":1274,"line":1275},[1272,22479,21149],{"class":14037},[1272,22481,21282],{"class":1384},[1272,22483,9220],{"class":1278},[1272,22485,22334],{"class":14037},[1272,22487,14084],{"class":1384},[1272,22489,13666],{"class":1278},[643,22491,22492],{},[5583,22493,22494],{},[646,22495,104],{},[1264,22497,22499],{"className":16424,"code":22498,"language":16426,"meta":346,"style":346},"el.style.display = 'none';\n",[799,22500,22501],{"__ignoreMap":346},[1272,22502,22503,22505,22507,22509,22511,22514,22516,22518,22521,22523],{"class":1274,"line":1275},[1272,22504,21307],{"class":1384},[1272,22506,9220],{"class":1278},[1272,22508,1978],{"class":1384},[1272,22510,9220],{"class":1278},[1272,22512,22513],{"class":1384},"display ",[1272,22515,1324],{"class":13810},[1272,22517,21771],{"class":1327},[1272,22519,22520],{"class":1331},"none",[1272,22522,19764],{"class":1327},[1272,22524,13666],{"class":1278},[643,22526,22527],{},[646,22528,22529],{},"Gösterme (Show)",[643,22531,22532],{},[5583,22533,22534],{},[646,22535,16269],{},[1264,22537,22539],{"className":16424,"code":22538,"language":16426,"meta":346,"style":346},"$(el).show();\n",[799,22540,22541],{"__ignoreMap":346},[1272,22542,22543,22545,22547,22549,22551,22553],{"class":1274,"line":1275},[1272,22544,21149],{"class":14037},[1272,22546,21282],{"class":1384},[1272,22548,9220],{"class":1278},[1272,22550,22308],{"class":14037},[1272,22552,14084],{"class":1384},[1272,22554,13666],{"class":1278},[643,22556,22557],{},[5583,22558,22559],{},[646,22560,104],{},[1264,22562,22564],{"className":16424,"code":22563,"language":16426,"meta":346,"style":346},"el.style.display = '';\n",[799,22565,22566],{"__ignoreMap":346},[1272,22567,22568,22570,22572,22574,22576,22578,22580,22583],{"class":1274,"line":1275},[1272,22569,21307],{"class":1384},[1272,22571,9220],{"class":1278},[1272,22573,1978],{"class":1384},[1272,22575,9220],{"class":1278},[1272,22577,22513],{"class":1384},[1272,22579,1324],{"class":13810},[1272,22581,22582],{"class":1327}," ''",[1272,22584,13666],{"class":1278},[11478,22586,22588],{"id":22587},"dom-manipülasyonları",[646,22589,22590],{},"Dom Manipülasyonları",[643,22592,22593],{},[646,22594,22595],{},"Class Ekleme (Add Class)",[643,22597,22598],{},[5583,22599,22600],{},[646,22601,16269],{},[1264,22603,22605],{"className":16424,"code":22604,"language":16426,"meta":346,"style":346},"$(el).addClass(className);\n",[799,22606,22607],{"__ignoreMap":346},[1272,22608,22609,22611,22613,22615,22618,22621],{"class":1274,"line":1275},[1272,22610,21149],{"class":14037},[1272,22612,21282],{"class":1384},[1272,22614,9220],{"class":1278},[1272,22616,22617],{"class":14037},"addClass",[1272,22619,22620],{"class":1384},"(className)",[1272,22622,13666],{"class":1278},[643,22624,22625],{},[5583,22626,22627],{},[646,22628,104],{},[1264,22630,22632],{"className":16424,"code":22631,"language":16426,"meta":346,"style":346},"el.classList.add(className);\n",[799,22633,22634],{"__ignoreMap":346},[1272,22635,22636,22638,22640,22642,22644,22646,22648],{"class":1274,"line":1275},[1272,22637,21307],{"class":1384},[1272,22639,9220],{"class":1278},[1272,22641,22296],{"class":1384},[1272,22643,9220],{"class":1278},[1272,22645,22301],{"class":14037},[1272,22647,22620],{"class":1384},[1272,22649,13666],{"class":1278},[643,22651,22652],{},[646,22653,22654],{},"Class Kaldırma (Remove Class)",[643,22656,22657],{},[5583,22658,22659],{},[646,22660,16269],{},[1264,22662,22664],{"className":16424,"code":22663,"language":16426,"meta":346,"style":346},"$(el).removeClass(className);\n",[799,22665,22666],{"__ignoreMap":346},[1272,22667,22668,22670,22672,22674,22677,22679],{"class":1274,"line":1275},[1272,22669,21149],{"class":14037},[1272,22671,21282],{"class":1384},[1272,22673,9220],{"class":1278},[1272,22675,22676],{"class":14037},"removeClass",[1272,22678,22620],{"class":1384},[1272,22680,13666],{"class":1278},[643,22682,22683],{},[5583,22684,22685],{},[646,22686,104],{},[1264,22688,22690],{"className":16424,"code":22689,"language":16426,"meta":346,"style":346},"el.classList.remove(className);\n",[799,22691,22692],{"__ignoreMap":346},[1272,22693,22694,22696,22698,22700,22702,22704,22706],{"class":1274,"line":1275},[1272,22695,21307],{"class":1384},[1272,22697,9220],{"class":1278},[1272,22699,22296],{"class":1384},[1272,22701,9220],{"class":1278},[1272,22703,22327],{"class":14037},[1272,22705,22620],{"class":1384},[1272,22707,13666],{"class":1278},[643,22709,22710],{},[646,22711,22712],{},"Class'ın Olup Olmadığını Kontrol Etme (Has Class)",[643,22714,22715],{},[5583,22716,22717],{},[646,22718,16269],{},[1264,22720,22722],{"className":16424,"code":22721,"language":16426,"meta":346,"style":346},"$(el).hasClass(className);\n",[799,22723,22724],{"__ignoreMap":346},[1272,22725,22726,22728,22730,22732,22735,22737],{"class":1274,"line":1275},[1272,22727,21149],{"class":14037},[1272,22729,21282],{"class":1384},[1272,22731,9220],{"class":1278},[1272,22733,22734],{"class":14037},"hasClass",[1272,22736,22620],{"class":1384},[1272,22738,13666],{"class":1278},[643,22740,22741],{},[5583,22742,22743],{},[646,22744,104],{},[1264,22746,22748],{"className":16424,"code":22747,"language":16426,"meta":346,"style":346},"el.classList.contains(className);\n",[799,22749,22750],{"__ignoreMap":346},[1272,22751,22752,22754,22756,22758,22760,22763,22765],{"class":1274,"line":1275},[1272,22753,21307],{"class":1384},[1272,22755,9220],{"class":1278},[1272,22757,22296],{"class":1384},[1272,22759,9220],{"class":1278},[1272,22761,22762],{"class":14037},"contains",[1272,22764,22620],{"class":1384},[1272,22766,13666],{"class":1278},[643,22768,22769],{},[646,22770,22771],{},"Class'ı Terse Çevirme (Toggle Class)",[643,22773,22774],{},[5583,22775,22776],{},[646,22777,16269],{},[1264,22779,22781],{"className":16424,"code":22780,"language":16426,"meta":346,"style":346},"$(el).toggleClass(className);\n",[799,22782,22783],{"__ignoreMap":346},[1272,22784,22785,22787,22789,22791,22794,22796],{"class":1274,"line":1275},[1272,22786,21149],{"class":14037},[1272,22788,21282],{"class":1384},[1272,22790,9220],{"class":1278},[1272,22792,22793],{"class":14037},"toggleClass",[1272,22795,22620],{"class":1384},[1272,22797,13666],{"class":1278},[643,22799,22800],{},[5583,22801,22802],{},[646,22803,104],{},[1264,22805,22807],{"className":16424,"code":22806,"language":16426,"meta":346,"style":346},"el.classList.toggle(className);\n",[799,22808,22809],{"__ignoreMap":346},[1272,22810,22811,22813,22815,22817,22819,22822,22824],{"class":1274,"line":1275},[1272,22812,21307],{"class":1384},[1272,22814,9220],{"class":1278},[1272,22816,22296],{"class":1384},[1272,22818,9220],{"class":1278},[1272,22820,22821],{"class":14037},"toggle",[1272,22823,22620],{"class":1384},[1272,22825,13666],{"class":1278},[643,22827,22828],{},[646,22829,22830],{},"Seçilen Elemanın Sonrasına Html Ekleme (Insert After)",[643,22832,22833],{},[5583,22834,22835],{},[646,22836,16269],{},[1264,22838,22840],{"className":16424,"code":22839,"language":16426,"meta":346,"style":346},"$(el).after(htmlString);\n",[799,22841,22842],{"__ignoreMap":346},[1272,22843,22844,22846,22848,22850,22853,22856],{"class":1274,"line":1275},[1272,22845,21149],{"class":14037},[1272,22847,21282],{"class":1384},[1272,22849,9220],{"class":1278},[1272,22851,22852],{"class":14037},"after",[1272,22854,22855],{"class":1384},"(htmlString)",[1272,22857,13666],{"class":1278},[643,22859,22860],{},[5583,22861,22862],{},[646,22863,104],{},[1264,22865,22867],{"className":16424,"code":22866,"language":16426,"meta":346,"style":346},"el.insertAdjacentHTML('afterend', htmlString);\n",[799,22868,22869],{"__ignoreMap":346},[1272,22870,22871,22873,22875,22878,22880,22882,22885,22887,22889,22892],{"class":1274,"line":1275},[1272,22872,21307],{"class":1384},[1272,22874,9220],{"class":1278},[1272,22876,22877],{"class":14037},"insertAdjacentHTML",[1272,22879,14049],{"class":1384},[1272,22881,19764],{"class":1327},[1272,22883,22884],{"class":1331},"afterend",[1272,22886,19764],{"class":1327},[1272,22888,711],{"class":1278},[1272,22890,22891],{"class":1384}," htmlString)",[1272,22893,13666],{"class":1278},[643,22895,22896],{},[646,22897,22898],{},"Seçilen Elemanın Öncesine Html Ekleme (Insert Before)",[643,22900,22901],{},[5583,22902,22903],{},[646,22904,16269],{},[1264,22906,22908],{"className":16424,"code":22907,"language":16426,"meta":346,"style":346},"$(el).before(htmlString);\n",[799,22909,22910],{"__ignoreMap":346},[1272,22911,22912,22914,22916,22918,22921,22923],{"class":1274,"line":1275},[1272,22913,21149],{"class":14037},[1272,22915,21282],{"class":1384},[1272,22917,9220],{"class":1278},[1272,22919,22920],{"class":14037},"before",[1272,22922,22855],{"class":1384},[1272,22924,13666],{"class":1278},[643,22926,22927],{},[5583,22928,22929],{},[646,22930,104],{},[1264,22932,22934],{"className":16424,"code":22933,"language":16426,"meta":346,"style":346},"el.insertAdjacentHTML('beforebegin', htmlString);\n",[799,22935,22936],{"__ignoreMap":346},[1272,22937,22938,22940,22942,22944,22946,22948,22951,22953,22955,22957],{"class":1274,"line":1275},[1272,22939,21307],{"class":1384},[1272,22941,9220],{"class":1278},[1272,22943,22877],{"class":14037},[1272,22945,14049],{"class":1384},[1272,22947,19764],{"class":1327},[1272,22949,22950],{"class":1331},"beforebegin",[1272,22952,19764],{"class":1327},[1272,22954,711],{"class":1278},[1272,22956,22891],{"class":1384},[1272,22958,13666],{"class":1278},[643,22960,22961],{},[646,22962,22963],{},"Seçilen Elemanın Dış Html'ini Değiştirme (Replace Outer Html)",[643,22965,22966],{},[5583,22967,22968],{},[646,22969,16269],{},[1264,22971,22973],{"className":16424,"code":22972,"language":16426,"meta":346,"style":346},"$(el).replaceWith(string);\n",[799,22974,22975],{"__ignoreMap":346},[1272,22976,22977,22979,22981,22983,22986,22989],{"class":1274,"line":1275},[1272,22978,21149],{"class":14037},[1272,22980,21282],{"class":1384},[1272,22982,9220],{"class":1278},[1272,22984,22985],{"class":14037},"replaceWith",[1272,22987,22988],{"class":1384},"(string)",[1272,22990,13666],{"class":1278},[643,22992,22993],{},[5583,22994,22995],{},[646,22996,104],{},[1264,22998,23000],{"className":16424,"code":22999,"language":16426,"meta":346,"style":346},"el.outerHTML = string;\n",[799,23001,23002],{"__ignoreMap":346},[1272,23003,23004,23006,23008,23011,23013,23016],{"class":1274,"line":1275},[1272,23005,21307],{"class":1384},[1272,23007,9220],{"class":1278},[1272,23009,23010],{"class":1384},"outerHTML ",[1272,23012,1324],{"class":13810},[1272,23014,23015],{"class":1384}," string",[1272,23017,13666],{"class":1278},[643,23019,23020],{},[646,23021,23022],{},"Seçilen Elemanın İç Html'ini Değiştirme (Replace Inner Html)",[643,23024,23025],{},[5583,23026,23027],{},[646,23028,16269],{},[1264,23030,23032],{"className":16424,"code":23031,"language":16426,"meta":346,"style":346},"$(el).html(string);\n",[799,23033,23034],{"__ignoreMap":346},[1272,23035,23036,23038,23040,23042,23044,23046],{"class":1274,"line":1275},[1272,23037,21149],{"class":14037},[1272,23039,21282],{"class":1384},[1272,23041,9220],{"class":1278},[1272,23043,1268],{"class":14037},[1272,23045,22988],{"class":1384},[1272,23047,13666],{"class":1278},[643,23049,23050],{},[5583,23051,23052],{},[646,23053,104],{},[1264,23055,23057],{"className":16424,"code":23056,"language":16426,"meta":346,"style":346},"el.innerHTML = string;\n",[799,23058,23059],{"__ignoreMap":346},[1272,23060,23061,23063,23065,23068,23070,23072],{"class":1274,"line":1275},[1272,23062,21307],{"class":1384},[1272,23064,9220],{"class":1278},[1272,23066,23067],{"class":1384},"innerHTML ",[1272,23069,1324],{"class":13810},[1272,23071,23015],{"class":1384},[1272,23073,13666],{"class":1278},[643,23075,23076],{},[646,23077,23078],{},"Seçilen Elemanın İç Text'ini Değiştirme (Replace Inner Text)",[4105,23080,23081],{},[643,23082,23083],{},"Bu işlemin, yukarıdaki işlemden farkı, içerideki html düğümlerine müdahele etmeyip, sadece text içeriğini değiştirmesidir.",[643,23085,23086],{},[5583,23087,23088],{},[646,23089,16269],{},[1264,23091,23093],{"className":16424,"code":23092,"language":16426,"meta":346,"style":346},"$(el).text(string);\n",[799,23094,23095],{"__ignoreMap":346},[1272,23096,23097,23099,23101,23103,23105,23107],{"class":1274,"line":1275},[1272,23098,21149],{"class":14037},[1272,23100,21282],{"class":1384},[1272,23102,9220],{"class":1278},[1272,23104,2600],{"class":14037},[1272,23106,22988],{"class":1384},[1272,23108,13666],{"class":1278},[643,23110,23111],{},[5583,23112,23113],{},[646,23114,104],{},[1264,23116,23118],{"className":16424,"code":23117,"language":16426,"meta":346,"style":346},"el.textContent = string;\n",[799,23119,23120],{"__ignoreMap":346},[1272,23121,23122,23124,23126,23129,23131,23133],{"class":1274,"line":1275},[1272,23123,21307],{"class":1384},[1272,23125,9220],{"class":1278},[1272,23127,23128],{"class":1384},"textContent ",[1272,23130,1324],{"class":13810},[1272,23132,23015],{"class":1384},[1272,23134,13666],{"class":1278},[643,23136,23137],{},[646,23138,23139],{},"Seçilen Elemanın İç Html'ine, Elemen Ekleme (Append Element)",[643,23141,23142],{},[5583,23143,23144],{},[646,23145,16269],{},[1264,23147,23149],{"className":16424,"code":23148,"language":16426,"meta":346,"style":346},"$(parent).append(el);\n",[799,23150,23151],{"__ignoreMap":346},[1272,23152,23153,23155,23158,23160,23163,23165],{"class":1274,"line":1275},[1272,23154,21149],{"class":14037},[1272,23156,23157],{"class":1384},"(parent)",[1272,23159,9220],{"class":1278},[1272,23161,23162],{"class":14037},"append",[1272,23164,21282],{"class":1384},[1272,23166,13666],{"class":1278},[643,23168,23169],{},[5583,23170,23171],{},[646,23172,104],{},[1264,23174,23176],{"className":16424,"code":23175,"language":16426,"meta":346,"style":346},"parent.appendChild(el);\n",[799,23177,23178],{"__ignoreMap":346},[1272,23179,23180,23182,23184,23187,23189],{"class":1274,"line":1275},[1272,23181,21441],{"class":1384},[1272,23183,9220],{"class":1278},[1272,23185,23186],{"class":14037},"appendChild",[1272,23188,21282],{"class":1384},[1272,23190,13666],{"class":1278},[643,23192,23193],{},[646,23194,23195],{},"Elemanın Html'ini Silme (Empty Element)",[643,23197,23198],{},[5583,23199,23200],{},[646,23201,16269],{},[1264,23203,23205],{"className":16424,"code":23204,"language":16426,"meta":346,"style":346},"$(el).empty();\n",[799,23206,23207],{"__ignoreMap":346},[1272,23208,23209,23211,23213,23215,23218,23220],{"class":1274,"line":1275},[1272,23210,21149],{"class":14037},[1272,23212,21282],{"class":1384},[1272,23214,9220],{"class":1278},[1272,23216,23217],{"class":14037},"empty",[1272,23219,14084],{"class":1384},[1272,23221,13666],{"class":1278},[643,23223,23224],{},[5583,23225,23226],{},[646,23227,104],{},[1264,23229,23231],{"className":16424,"code":23230,"language":16426,"meta":346,"style":346},"el.innerHTML = '';\n",[799,23232,23233],{"__ignoreMap":346},[1272,23234,23235,23237,23239,23241,23243,23245],{"class":1274,"line":1275},[1272,23236,21307],{"class":1384},[1272,23238,9220],{"class":1278},[1272,23240,23067],{"class":1384},[1272,23242,1324],{"class":13810},[1272,23244,22582],{"class":1327},[1272,23246,13666],{"class":1278},[643,23248,23249],{},[646,23250,23251],{},"Elemanın Kopyasını Alma (Clone Element)",[643,23253,23254],{},[5583,23255,23256],{},[646,23257,16269],{},[1264,23259,23261],{"className":16424,"code":23260,"language":16426,"meta":346,"style":346},"$(el).clone();\n",[799,23262,23263],{"__ignoreMap":346},[1272,23264,23265,23267,23269,23271,23274,23276],{"class":1274,"line":1275},[1272,23266,21149],{"class":14037},[1272,23268,21282],{"class":1384},[1272,23270,9220],{"class":1278},[1272,23272,23273],{"class":14037},"clone",[1272,23275,14084],{"class":1384},[1272,23277,13666],{"class":1278},[643,23279,23280],{},[5583,23281,23282],{},[646,23283,104],{},[1264,23285,23287],{"className":16424,"code":23286,"language":16426,"meta":346,"style":346},"el.cloneNode(true);\n",[799,23288,23289],{"__ignoreMap":346},[1272,23290,23291,23293,23295,23298,23300,23302,23304],{"class":1274,"line":1275},[1272,23292,21307],{"class":1384},[1272,23294,9220],{"class":1278},[1272,23296,23297],{"class":14037},"cloneNode",[1272,23299,14049],{"class":1384},[1272,23301,9608],{"class":21911},[1272,23303,4213],{"class":1384},[1272,23305,13666],{"class":1278},[643,23307,23308],{},[646,23309,23310],{},"Elemanın İçerisinde, Seçili Elemanın Olup Olmadığını Kontrol Etme (Contains Element)",[643,23312,23313],{},[5583,23314,23315],{},[646,23316,16269],{},[1264,23318,23320],{"className":16424,"code":23319,"language":16426,"meta":346,"style":346},"$.contains(el, child);\n",[799,23321,23322],{"__ignoreMap":346},[1272,23323,23324,23326,23328,23330,23332,23334,23337],{"class":1274,"line":1275},[1272,23325,21149],{"class":1384},[1272,23327,9220],{"class":1278},[1272,23329,22762],{"class":14037},[1272,23331,21603],{"class":1384},[1272,23333,711],{"class":1278},[1272,23335,23336],{"class":1384}," child)",[1272,23338,13666],{"class":1278},[643,23340,23341],{},[5583,23342,23343],{},[646,23344,104],{},[1264,23346,23348],{"className":16424,"code":23347,"language":16426,"meta":346,"style":346},"el !== child && el.contains(child);\n",[799,23349,23350],{"__ignoreMap":346},[1272,23351,23352,23355,23358,23361,23364,23366,23368,23370,23373],{"class":1274,"line":1275},[1272,23353,23354],{"class":1384},"el ",[1272,23356,23357],{"class":13810},"!==",[1272,23359,23360],{"class":1384}," child ",[1272,23362,23363],{"class":13810},"&&",[1272,23365,21637],{"class":1384},[1272,23367,9220],{"class":1278},[1272,23369,22762],{"class":14037},[1272,23371,23372],{"class":1384},"(child)",[1272,23374,13666],{"class":1278},[643,23376,23377],{},[646,23378,23379],{},"Elemanın İçerisinde, Verilen Seçiciye Uyan Elemanın, Olup Olmadığını Kontrol Etme (Contains Selector)",[643,23381,23382],{},[5583,23383,23384],{},[646,23385,16269],{},[1264,23387,23389],{"className":16424,"code":23388,"language":16426,"meta":346,"style":346},"$(el).find(selector).length;\n",[799,23390,23391],{"__ignoreMap":346},[1272,23392,23393,23395,23397,23399,23402,23405,23407,23410],{"class":1274,"line":1275},[1272,23394,21149],{"class":14037},[1272,23396,21282],{"class":1384},[1272,23398,9220],{"class":1278},[1272,23400,23401],{"class":14037},"find",[1272,23403,23404],{"class":1384},"(selector)",[1272,23406,9220],{"class":1278},[1272,23408,23409],{"class":1844},"length",[1272,23411,13666],{"class":1278},[643,23413,23414],{},[5583,23415,23416],{},[646,23417,104],{},[1264,23419,23421],{"className":16424,"code":23420,"language":16426,"meta":346,"style":346},"el.querySelector(selector) !== null\n",[799,23422,23423],{"__ignoreMap":346},[1272,23424,23425,23427,23429,23431,23434,23436],{"class":1274,"line":1275},[1272,23426,21307],{"class":1384},[1272,23428,9220],{"class":1278},[1272,23430,21706],{"class":14037},[1272,23432,23433],{"class":1384},"(selector) ",[1272,23435,23357],{"class":13810},[1272,23437,23438],{"class":16444}," null\n",[643,23440,23441],{},[646,23442,23443],{},"Döngü (Each)",[643,23445,23446],{},[5583,23447,23448],{},[646,23449,16269],{},[1264,23451,23453],{"className":16424,"code":23452,"language":16426,"meta":346,"style":346},"$(selector).each(function(i, el){\n\n});\n",[799,23454,23455,23481,23485],{"__ignoreMap":346},[1272,23456,23457,23459,23461,23463,23466,23468,23470,23472,23475,23477,23479],{"class":1274,"line":1275},[1272,23458,21149],{"class":14037},[1272,23460,23404],{"class":1384},[1272,23462,9220],{"class":1278},[1272,23464,23465],{"class":14037},"each",[1272,23467,14049],{"class":1384},[1272,23469,14053],{"class":14052},[1272,23471,14049],{"class":1278},[1272,23473,23474],{"class":16462},"i",[1272,23476,711],{"class":1278},[1272,23478,21637],{"class":16462},[1272,23480,19836],{"class":1278},[1272,23482,23483],{"class":1274,"line":347},[1272,23484,1410],{"emptyLinePlaceholder":352},[1272,23486,23487,23489,23491],{"class":1274,"line":1302},[1272,23488,17126],{"class":1278},[1272,23490,4213],{"class":1384},[1272,23492,13666],{"class":1278},[643,23494,23495],{},[5583,23496,23497],{},[646,23498,104],{},[1264,23500,23502],{"className":16424,"code":23501,"language":16426,"meta":346,"style":346},"var elements = document.querySelectorAll(selector);\nArray.prototype.forEach.call(elements, function(el, i){\n\n});\n",[799,23503,23504,23525,23560,23564],{"__ignoreMap":346},[1272,23505,23506,23508,23511,23513,23516,23518,23521,23523],{"class":1274,"line":1275},[1272,23507,16577],{"class":14052},[1272,23509,23510],{"class":1384}," elements ",[1272,23512,1324],{"class":13810},[1272,23514,23515],{"class":1384}," document",[1272,23517,9220],{"class":1278},[1272,23519,23520],{"class":14037},"querySelectorAll",[1272,23522,23404],{"class":1384},[1272,23524,13666],{"class":1278},[1272,23526,23527,23529,23531,23533,23535,23538,23540,23542,23545,23547,23549,23551,23553,23555,23558],{"class":1274,"line":347},[1272,23528,21586],{"class":20491},[1272,23530,9220],{"class":1278},[1272,23532,20391],{"class":1844},[1272,23534,9220],{"class":1278},[1272,23536,23537],{"class":1384},"forEach",[1272,23539,9220],{"class":1278},[1272,23541,21600],{"class":14037},[1272,23543,23544],{"class":1384},"(elements",[1272,23546,711],{"class":1278},[1272,23548,16456],{"class":14052},[1272,23550,14049],{"class":1278},[1272,23552,21307],{"class":16462},[1272,23554,711],{"class":1278},[1272,23556,23557],{"class":16462}," i",[1272,23559,19836],{"class":1278},[1272,23561,23562],{"class":1274,"line":1302},[1272,23563,1410],{"emptyLinePlaceholder":352},[1272,23565,23566,23568,23570],{"class":1274,"line":1312},[1272,23567,17126],{"class":1278},[1272,23569,4213],{"class":1384},[1272,23571,13666],{"class":1278},[643,23573,23574],{},[646,23575,23576],{},"Elemanın İç Html'ini Alma (Get Inner Html)",[643,23578,23579],{},[5583,23580,23581],{},[646,23582,16269],{},[1264,23584,23586],{"className":16424,"code":23585,"language":16426,"meta":346,"style":346},"$(el).html();\n",[799,23587,23588],{"__ignoreMap":346},[1272,23589,23590,23592,23594,23596,23598,23600],{"class":1274,"line":1275},[1272,23591,21149],{"class":14037},[1272,23593,21282],{"class":1384},[1272,23595,9220],{"class":1278},[1272,23597,1268],{"class":14037},[1272,23599,14084],{"class":1384},[1272,23601,13666],{"class":1278},[643,23603,23604],{},[5583,23605,23606],{},[646,23607,104],{},[1264,23609,23611],{"className":16424,"code":23610,"language":16426,"meta":346,"style":346},"el.innerHTML\n",[799,23612,23613],{"__ignoreMap":346},[1272,23614,23615,23617,23619],{"class":1274,"line":1275},[1272,23616,21307],{"class":1384},[1272,23618,9220],{"class":1278},[1272,23620,23621],{"class":1384},"innerHTML\n",[643,23623,23624],{},[646,23625,23626],{},"Elemanın Dış Html'ini Alma (Get Outer Html)",[643,23628,23629],{},[5583,23630,23631],{},[646,23632,16269],{},[1264,23634,23636],{"className":16424,"code":23635,"language":16426,"meta":346,"style":346},"$('\u003Cdiv>').append($(el).clone()).html();\n",[799,23637,23638],{"__ignoreMap":346},[1272,23639,23640,23642,23644,23646,23649,23651,23653,23655,23657,23659,23661,23663,23665,23667,23670,23672,23674,23676],{"class":1274,"line":1275},[1272,23641,21149],{"class":14037},[1272,23643,14049],{"class":1384},[1272,23645,19764],{"class":1327},[1272,23647,23648],{"class":1331},"\u003Cdiv>",[1272,23650,19764],{"class":1327},[1272,23652,4213],{"class":1384},[1272,23654,9220],{"class":1278},[1272,23656,23162],{"class":14037},[1272,23658,14049],{"class":1384},[1272,23660,21149],{"class":14037},[1272,23662,21282],{"class":1384},[1272,23664,9220],{"class":1278},[1272,23666,23273],{"class":14037},[1272,23668,23669],{"class":1384},"())",[1272,23671,9220],{"class":1278},[1272,23673,1268],{"class":14037},[1272,23675,14084],{"class":1384},[1272,23677,13666],{"class":1278},[643,23679,23680],{},[5583,23681,23682],{},[646,23683,104],{},[1264,23685,23687],{"className":16424,"code":23686,"language":16426,"meta":346,"style":346},"el.outerHTML\n",[799,23688,23689],{"__ignoreMap":346},[1272,23690,23691,23693,23695],{"class":1274,"line":1275},[1272,23692,21307],{"class":1384},[1272,23694,9220],{"class":1278},[1272,23696,23697],{"class":1384},"outerHTML\n",[643,23699,23700],{},[646,23701,23702],{},"Elemanın Text'ini Alma (Get Text)",[643,23704,23705],{},[5583,23706,23707],{},[646,23708,16269],{},[1264,23710,23712],{"className":16424,"code":23711,"language":16426,"meta":346,"style":346},"$(el).text();\n",[799,23713,23714],{"__ignoreMap":346},[1272,23715,23716,23718,23720,23722,23724,23726],{"class":1274,"line":1275},[1272,23717,21149],{"class":14037},[1272,23719,21282],{"class":1384},[1272,23721,9220],{"class":1278},[1272,23723,2600],{"class":14037},[1272,23725,14084],{"class":1384},[1272,23727,13666],{"class":1278},[643,23729,23730],{},[5583,23731,23732],{},[646,23733,104],{},[1264,23735,23737],{"className":16424,"code":23736,"language":16426,"meta":346,"style":346},"el.textContent\n",[799,23738,23739],{"__ignoreMap":346},[1272,23740,23741,23743,23745],{"class":1274,"line":1275},[1272,23742,21307],{"class":1384},[1272,23744,9220],{"class":1278},[1272,23746,23747],{"class":1384},"textContent\n",[643,23749,23750],{},[646,23751,23752],{},"Elemanın Text'ini Güncelleme (Set Text)",[643,23754,23755],{},[5583,23756,23757],{},[646,23758,16269],{},[1264,23760,23761],{"className":16424,"code":23092,"language":16426,"meta":346,"style":346},[799,23762,23763],{"__ignoreMap":346},[1272,23764,23765,23767,23769,23771,23773,23775],{"class":1274,"line":1275},[1272,23766,21149],{"class":14037},[1272,23768,21282],{"class":1384},[1272,23770,9220],{"class":1278},[1272,23772,2600],{"class":14037},[1272,23774,22988],{"class":1384},[1272,23776,13666],{"class":1278},[643,23778,23779],{},[5583,23780,23781],{},[646,23782,104],{},[1264,23784,23785],{"className":16424,"code":23117,"language":16426,"meta":346,"style":346},[799,23786,23787],{"__ignoreMap":346},[1272,23788,23789,23791,23793,23795,23797,23799],{"class":1274,"line":1275},[1272,23790,21307],{"class":1384},[1272,23792,9220],{"class":1278},[1272,23794,23128],{"class":1384},[1272,23796,1324],{"class":13810},[1272,23798,23015],{"class":1384},[1272,23800,13666],{"class":1278},[643,23802,23803],{},[646,23804,23805],{},"Elemanın Css'ini Alma (Get Css)",[643,23807,23808],{},[5583,23809,23810],{},[646,23811,16269],{},[1264,23813,23815],{"className":16424,"code":23814,"language":16426,"meta":346,"style":346},"$(el).css(ruleName);\n",[799,23816,23817],{"__ignoreMap":346},[1272,23818,23819,23821,23823,23825,23827,23830],{"class":1274,"line":1275},[1272,23820,21149],{"class":14037},[1272,23822,21282],{"class":1384},[1272,23824,9220],{"class":1278},[1272,23826,22407],{"class":14037},[1272,23828,23829],{"class":1384},"(ruleName)",[1272,23831,13666],{"class":1278},[643,23833,23834],{},[5583,23835,23836],{},[646,23837,104],{},[1264,23839,23841],{"className":16424,"code":23840,"language":16426,"meta":346,"style":346},"getComputedStyle(el)[ruleName];\n",[799,23842,23843],{"__ignoreMap":346},[1272,23844,23845,23848,23851],{"class":1274,"line":1275},[1272,23846,23847],{"class":14037},"getComputedStyle",[1272,23849,23850],{"class":1384},"(el)[ruleName]",[1272,23852,13666],{"class":1278},[643,23854,23855],{},[646,23856,23857],{},"Elemana Css Ekleme (Set Css)",[643,23859,23860],{},[5583,23861,23862],{},[646,23863,16269],{},[1264,23865,23867],{"className":16424,"code":23866,"language":16426,"meta":346,"style":346},"$(el).css('border-width', '20px');\n",[799,23868,23869],{"__ignoreMap":346},[1272,23870,23871,23873,23875,23877,23879,23881,23883,23886,23888,23890,23892,23895,23897,23899],{"class":1274,"line":1275},[1272,23872,21149],{"class":14037},[1272,23874,21282],{"class":1384},[1272,23876,9220],{"class":1278},[1272,23878,22407],{"class":14037},[1272,23880,14049],{"class":1384},[1272,23882,19764],{"class":1327},[1272,23884,23885],{"class":1331},"border-width",[1272,23887,19764],{"class":1327},[1272,23889,711],{"class":1278},[1272,23891,21771],{"class":1327},[1272,23893,23894],{"class":1331},"20px",[1272,23896,19764],{"class":1327},[1272,23898,4213],{"class":1384},[1272,23900,13666],{"class":1278},[643,23902,23903],{},[5583,23904,23905],{},[646,23906,104],{},[1264,23908,23910],{"className":16424,"code":23909,"language":16426,"meta":346,"style":346},"el.style.borderWidth = '20px';\n",[799,23911,23912],{"__ignoreMap":346},[1272,23913,23914,23916,23918,23920,23922,23925,23927,23929,23931,23933],{"class":1274,"line":1275},[1272,23915,21307],{"class":1384},[1272,23917,9220],{"class":1278},[1272,23919,1978],{"class":1384},[1272,23921,9220],{"class":1278},[1272,23923,23924],{"class":1384},"borderWidth ",[1272,23926,1324],{"class":13810},[1272,23928,21771],{"class":1327},[1272,23930,23894],{"class":1331},[1272,23932,19764],{"class":1327},[1272,23934,13666],{"class":1278},[643,23936,23937],{},[646,23938,23939],{},"Elemanlara Eşitlik Kontrolü Yapma (Match Element)",[643,23941,23942],{},[5583,23943,23944],{},[646,23945,16269],{},[1264,23947,23949],{"className":16424,"code":23948,"language":16426,"meta":346,"style":346},"$(el).is($(otherEl));\n",[799,23950,23951],{"__ignoreMap":346},[1272,23952,23953,23955,23957,23959,23962,23964,23966,23969],{"class":1274,"line":1275},[1272,23954,21149],{"class":14037},[1272,23956,21282],{"class":1384},[1272,23958,9220],{"class":1278},[1272,23960,23961],{"class":14037},"is",[1272,23963,14049],{"class":1384},[1272,23965,21149],{"class":14037},[1272,23967,23968],{"class":1384},"(otherEl))",[1272,23970,13666],{"class":1278},[643,23972,23973],{},[5583,23974,23975],{},[646,23976,104],{},[1264,23978,23980],{"className":16424,"code":23979,"language":16426,"meta":346,"style":346},"el === otherEl\n",[799,23981,23982],{"__ignoreMap":346},[1272,23983,23984,23986,23989],{"class":1274,"line":1275},[1272,23985,23354],{"class":1384},[1272,23987,23988],{"class":13810},"===",[1272,23990,23991],{"class":1384}," otherEl\n",[643,23993,23994],{},[646,23995,23996],{},"Elemanlara Seçici Üzerinden Eşitlik Kontrolü Yapma (Match Element Selector)",[643,23998,23999],{},[5583,24000,24001],{},[646,24002,16269],{},[1264,24004,24006],{"className":16424,"code":24005,"language":16426,"meta":346,"style":346},"$(el).is('.my-class');\n",[799,24007,24008],{"__ignoreMap":346},[1272,24009,24010,24012,24014,24016,24018,24020,24022,24025,24027,24029],{"class":1274,"line":1275},[1272,24011,21149],{"class":14037},[1272,24013,21282],{"class":1384},[1272,24015,9220],{"class":1278},[1272,24017,23961],{"class":14037},[1272,24019,14049],{"class":1384},[1272,24021,19764],{"class":1327},[1272,24023,24024],{"class":1331},".my-class",[1272,24026,19764],{"class":1327},[1272,24028,4213],{"class":1384},[1272,24030,13666],{"class":1278},[643,24032,24033],{},[5583,24034,24035],{},[646,24036,104],{},[1264,24038,24040],{"className":16424,"code":24039,"language":16426,"meta":346,"style":346},"var matches = function(el, selector) {\n  return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector);\n};\n\nmatches(el, '.my-class');\n",[799,24041,24042,24067,24144,24148,24152],{"__ignoreMap":346},[1272,24043,24044,24046,24050,24052,24054,24056,24058,24060,24063,24065],{"class":1274,"line":1275},[1272,24045,16577],{"class":14052},[1272,24047,24049],{"class":24048},"sfCm-"," matches",[1272,24051,16453],{"class":13810},[1272,24053,16456],{"class":14052},[1272,24055,14049],{"class":1278},[1272,24057,21307],{"class":16462},[1272,24059,711],{"class":1278},[1272,24061,24062],{"class":16462}," selector",[1272,24064,4213],{"class":1278},[1272,24066,13638],{"class":1278},[1272,24068,24069,24071,24073,24075,24077,24080,24083,24085,24087,24090,24092,24094,24096,24099,24101,24103,24105,24108,24110,24112,24114,24117,24119,24121,24123,24126,24128,24130,24132,24134,24136,24138,24140,24142],{"class":1274,"line":347},[1272,24070,21628],{"class":17379},[1272,24072,16459],{"class":14067},[1272,24074,21307],{"class":1384},[1272,24076,9220],{"class":1278},[1272,24078,24079],{"class":1384},"matches",[1272,24081,24082],{"class":13810}," ||",[1272,24084,21637],{"class":1384},[1272,24086,9220],{"class":1278},[1272,24088,24089],{"class":1384},"matchesSelector",[1272,24091,24082],{"class":13810},[1272,24093,21637],{"class":1384},[1272,24095,9220],{"class":1278},[1272,24097,24098],{"class":1384},"msMatchesSelector",[1272,24100,24082],{"class":13810},[1272,24102,21637],{"class":1384},[1272,24104,9220],{"class":1278},[1272,24106,24107],{"class":1384},"mozMatchesSelector",[1272,24109,24082],{"class":13810},[1272,24111,21637],{"class":1384},[1272,24113,9220],{"class":1278},[1272,24115,24116],{"class":1384},"webkitMatchesSelector",[1272,24118,24082],{"class":13810},[1272,24120,21637],{"class":1384},[1272,24122,9220],{"class":1278},[1272,24124,24125],{"class":1384},"oMatchesSelector",[1272,24127,4213],{"class":14067},[1272,24129,9220],{"class":1278},[1272,24131,21600],{"class":14037},[1272,24133,14049],{"class":14067},[1272,24135,21307],{"class":1384},[1272,24137,711],{"class":1278},[1272,24139,24062],{"class":1384},[1272,24141,4213],{"class":14067},[1272,24143,13666],{"class":1278},[1272,24145,24146],{"class":1274,"line":1302},[1272,24147,22020],{"class":1278},[1272,24149,24150],{"class":1274,"line":1312},[1272,24151,1410],{"emptyLinePlaceholder":352},[1272,24153,24154,24156,24158,24160,24162,24164,24166,24168],{"class":1274,"line":1340},[1272,24155,24079],{"class":14037},[1272,24157,21603],{"class":1384},[1272,24159,711],{"class":1278},[1272,24161,21771],{"class":1327},[1272,24163,24024],{"class":1331},[1272,24165,19764],{"class":1327},[1272,24167,4213],{"class":1384},[1272,24169,13666],{"class":1278},[643,24171,24172],{},[646,24173,24174],{},"Elemanı Dom'dan Silme (Remove Element)",[643,24176,24177],{},[5583,24178,24179],{},[646,24180,16269],{},[1264,24182,24184],{"className":16424,"code":24183,"language":16426,"meta":346,"style":346},"$(el).remove();\n",[799,24185,24186],{"__ignoreMap":346},[1272,24187,24188,24190,24192,24194,24196,24198],{"class":1274,"line":1275},[1272,24189,21149],{"class":14037},[1272,24191,21282],{"class":1384},[1272,24193,9220],{"class":1278},[1272,24195,22327],{"class":14037},[1272,24197,14084],{"class":1384},[1272,24199,13666],{"class":1278},[643,24201,24202],{},[5583,24203,24204],{},[646,24205,104],{},[1264,24207,24209],{"className":16424,"code":24208,"language":16426,"meta":346,"style":346},"el.parentNode.removeChild(el);\n",[799,24210,24211],{"__ignoreMap":346},[1272,24212,24213,24215,24217,24219,24221,24224,24226],{"class":1274,"line":1275},[1272,24214,21307],{"class":1384},[1272,24216,9220],{"class":1278},[1272,24218,21608],{"class":1384},[1272,24220,9220],{"class":1278},[1272,24222,24223],{"class":14037},"removeChild",[1272,24225,21282],{"class":1384},[1272,24227,13666],{"class":1278},[643,24229,24230],{},[646,24231,24232],{},"Elemanların Döküman Elemanına Olan Mesafesini Alma (Offset)",[643,24234,24235],{},[5583,24236,24237],{},[646,24238,16269],{},[1264,24240,24242],{"className":16424,"code":24241,"language":16426,"meta":346,"style":346},"$(el).offset();\n",[799,24243,24244],{"__ignoreMap":346},[1272,24245,24246,24248,24250,24252,24255,24257],{"class":1274,"line":1275},[1272,24247,21149],{"class":14037},[1272,24249,21282],{"class":1384},[1272,24251,9220],{"class":1278},[1272,24253,24254],{"class":14037},"offset",[1272,24256,14084],{"class":1384},[1272,24258,13666],{"class":1278},[643,24260,24261],{},[5583,24262,24263],{},[646,24264,104],{},[1264,24266,24268],{"className":16424,"code":24267,"language":16426,"meta":346,"style":346},"var rect = el.getBoundingClientRect();\n\n{\n  top: rect.top + document.body.scrollTop,\n  left: rect.left + document.body.scrollLeft\n}\n",[799,24269,24270,24290,24294,24298,24329,24356],{"__ignoreMap":346},[1272,24271,24272,24274,24277,24279,24281,24283,24286,24288],{"class":1274,"line":1275},[1272,24273,16577],{"class":14052},[1272,24275,24276],{"class":1384}," rect ",[1272,24278,1324],{"class":13810},[1272,24280,21637],{"class":1384},[1272,24282,9220],{"class":1278},[1272,24284,24285],{"class":14037},"getBoundingClientRect",[1272,24287,14084],{"class":1384},[1272,24289,13666],{"class":1278},[1272,24291,24292],{"class":1274,"line":347},[1272,24293,1410],{"emptyLinePlaceholder":352},[1272,24295,24296],{"class":1274,"line":1302},[1272,24297,4271],{"class":1278},[1272,24299,24300,24303,24305,24308,24310,24313,24316,24318,24320,24322,24324,24327],{"class":1274,"line":1312},[1272,24301,24302],{"class":22354},"  top",[1272,24304,13647],{"class":1278},[1272,24306,24307],{"class":1384}," rect",[1272,24309,9220],{"class":1278},[1272,24311,24312],{"class":1384},"top",[1272,24314,24315],{"class":13810}," +",[1272,24317,23515],{"class":1384},[1272,24319,9220],{"class":1278},[1272,24321,1427],{"class":1384},[1272,24323,9220],{"class":1278},[1272,24325,24326],{"class":1384},"scrollTop",[1272,24328,17121],{"class":1278},[1272,24330,24331,24334,24336,24338,24340,24343,24345,24347,24349,24351,24353],{"class":1274,"line":1340},[1272,24332,24333],{"class":22354},"  left",[1272,24335,13647],{"class":1278},[1272,24337,24307],{"class":1384},[1272,24339,9220],{"class":1278},[1272,24341,24342],{"class":1384},"left",[1272,24344,24315],{"class":13810},[1272,24346,23515],{"class":1384},[1272,24348,9220],{"class":1278},[1272,24350,1427],{"class":1384},[1272,24352,9220],{"class":1278},[1272,24354,24355],{"class":1384},"scrollLeft\n",[1272,24357,24358],{"class":1274,"line":1373},[1272,24359,2677],{"class":1278},[643,24361,24362],{},[646,24363,24364],{},"Elemanların Bir Üst Elemanına Olan Mesafesini Alma (Offset Parent Element)",[643,24366,24367],{},[5583,24368,24369],{},[646,24370,16269],{},[1264,24372,24374],{"className":16424,"code":24373,"language":16426,"meta":346,"style":346},"$(el).offsetParent();\n",[799,24375,24376],{"__ignoreMap":346},[1272,24377,24378,24380,24382,24384,24387,24389],{"class":1274,"line":1275},[1272,24379,21149],{"class":14037},[1272,24381,21282],{"class":1384},[1272,24383,9220],{"class":1278},[1272,24385,24386],{"class":14037},"offsetParent",[1272,24388,14084],{"class":1384},[1272,24390,13666],{"class":1278},[643,24392,24393],{},[5583,24394,24395],{},[646,24396,104],{},[1264,24398,24400],{"className":16424,"code":24399,"language":16426,"meta":346,"style":346},"el.offsetParent || el\n",[799,24401,24402],{"__ignoreMap":346},[1272,24403,24404,24406,24408,24411,24414],{"class":1274,"line":1275},[1272,24405,21307],{"class":1384},[1272,24407,9220],{"class":1278},[1272,24409,24410],{"class":1384},"offsetParent ",[1272,24412,24413],{"class":13810},"||",[1272,24415,24416],{"class":1384}," el\n",[643,24418,24419],{},[646,24420,24421],{},"Elemanların Dikey Mesafesini Alma (Offset Height)",[643,24423,24424],{},[5583,24425,24426],{},[646,24427,16269],{},[1264,24429,24431],{"className":16424,"code":24430,"language":16426,"meta":346,"style":346},"$(el).outerHeight();\n",[799,24432,24433],{"__ignoreMap":346},[1272,24434,24435,24437,24439,24441,24444,24446],{"class":1274,"line":1275},[1272,24436,21149],{"class":14037},[1272,24438,21282],{"class":1384},[1272,24440,9220],{"class":1278},[1272,24442,24443],{"class":14037},"outerHeight",[1272,24445,14084],{"class":1384},[1272,24447,13666],{"class":1278},[643,24449,24450],{},[5583,24451,24452],{},[646,24453,104],{},[1264,24455,24457],{"className":16424,"code":24456,"language":16426,"meta":346,"style":346},"el.offsetHeight\n",[799,24458,24459],{"__ignoreMap":346},[1272,24460,24461,24463,24465],{"class":1274,"line":1275},[1272,24462,21307],{"class":1384},[1272,24464,9220],{"class":1278},[1272,24466,24467],{"class":1384},"offsetHeight\n",[643,24469,24470],{},[646,24471,24472],{},"Elemanların Dikey Mesafesini, Margin'i de Dahil Ederek Alma (Offset Height With Margin)",[643,24474,24475],{},[5583,24476,24477],{},[646,24478,16269],{},[1264,24480,24482],{"className":16424,"code":24481,"language":16426,"meta":346,"style":346},"$(el).outerHeight(true);\n",[799,24483,24484],{"__ignoreMap":346},[1272,24485,24486,24488,24490,24492,24494,24496,24498,24500],{"class":1274,"line":1275},[1272,24487,21149],{"class":14037},[1272,24489,21282],{"class":1384},[1272,24491,9220],{"class":1278},[1272,24493,24443],{"class":14037},[1272,24495,14049],{"class":1384},[1272,24497,9608],{"class":21911},[1272,24499,4213],{"class":1384},[1272,24501,13666],{"class":1278},[643,24503,24504],{},[5583,24505,24506],{},[646,24507,104],{},[1264,24509,24511],{"className":16424,"code":24510,"language":16426,"meta":346,"style":346},"function outerHeight(el) {\n  var height = el.offsetHeight;\n  var style = getComputedStyle(el);\n\n  height += parseInt(style.marginTop) + parseInt(style.marginBottom);\n  return height;\n}\n\nouterHeight(el);\n",[799,24512,24513,24528,24547,24566,24570,24610,24618,24622,24626],{"__ignoreMap":346},[1272,24514,24515,24517,24520,24522,24524,24526],{"class":1274,"line":1275},[1272,24516,14053],{"class":14052},[1272,24518,24519],{"class":14037}," outerHeight",[1272,24521,14049],{"class":1278},[1272,24523,21307],{"class":16462},[1272,24525,4213],{"class":1278},[1272,24527,13638],{"class":1278},[1272,24529,24530,24533,24536,24538,24540,24542,24545],{"class":1274,"line":347},[1272,24531,24532],{"class":14052},"  var",[1272,24534,24535],{"class":1384}," height",[1272,24537,16453],{"class":13810},[1272,24539,21637],{"class":1384},[1272,24541,9220],{"class":1278},[1272,24543,24544],{"class":1384},"offsetHeight",[1272,24546,13666],{"class":1278},[1272,24548,24549,24551,24553,24555,24558,24560,24562,24564],{"class":1274,"line":1302},[1272,24550,24532],{"class":14052},[1272,24552,8350],{"class":1384},[1272,24554,16453],{"class":13810},[1272,24556,24557],{"class":14037}," getComputedStyle",[1272,24559,14049],{"class":14067},[1272,24561,21307],{"class":1384},[1272,24563,4213],{"class":14067},[1272,24565,13666],{"class":1278},[1272,24567,24568],{"class":1274,"line":1312},[1272,24569,1410],{"emptyLinePlaceholder":352},[1272,24571,24572,24575,24578,24581,24583,24585,24587,24590,24592,24595,24597,24599,24601,24603,24606,24608],{"class":1274,"line":1340},[1272,24573,24574],{"class":1384},"  height",[1272,24576,24577],{"class":13810}," +=",[1272,24579,24580],{"class":14037}," parseInt",[1272,24582,14049],{"class":14067},[1272,24584,1978],{"class":1384},[1272,24586,9220],{"class":1278},[1272,24588,24589],{"class":1384},"marginTop",[1272,24591,21976],{"class":14067},[1272,24593,24594],{"class":13810},"+",[1272,24596,24580],{"class":14037},[1272,24598,14049],{"class":14067},[1272,24600,1978],{"class":1384},[1272,24602,9220],{"class":1278},[1272,24604,24605],{"class":1384},"marginBottom",[1272,24607,4213],{"class":14067},[1272,24609,13666],{"class":1278},[1272,24611,24612,24614,24616],{"class":1274,"line":1373},[1272,24613,21628],{"class":17379},[1272,24615,24535],{"class":1384},[1272,24617,13666],{"class":1278},[1272,24619,24620],{"class":1274,"line":1395},[1272,24621,2677],{"class":1278},[1272,24623,24624],{"class":1274,"line":1401},[1272,24625,1410],{"emptyLinePlaceholder":352},[1272,24627,24628,24630,24632],{"class":1274,"line":1407},[1272,24629,24443],{"class":14037},[1272,24631,21282],{"class":1384},[1272,24633,13666],{"class":1278},[643,24635,24636],{},[646,24637,24638],{},"Elemanların Yatay Mesafesini Alma (Offset Width)",[643,24640,24641],{},[5583,24642,24643],{},[646,24644,16269],{},[1264,24646,24648],{"className":16424,"code":24647,"language":16426,"meta":346,"style":346},"$(el).outerWidth();\n",[799,24649,24650],{"__ignoreMap":346},[1272,24651,24652,24654,24656,24658,24661,24663],{"class":1274,"line":1275},[1272,24653,21149],{"class":14037},[1272,24655,21282],{"class":1384},[1272,24657,9220],{"class":1278},[1272,24659,24660],{"class":14037},"outerWidth",[1272,24662,14084],{"class":1384},[1272,24664,13666],{"class":1278},[643,24666,24667],{},[5583,24668,24669],{},[646,24670,104],{},[1264,24672,24674],{"className":16424,"code":24673,"language":16426,"meta":346,"style":346},"el.offsetWidth\n",[799,24675,24676],{"__ignoreMap":346},[1272,24677,24678,24680,24682],{"class":1274,"line":1275},[1272,24679,21307],{"class":1384},[1272,24681,9220],{"class":1278},[1272,24683,24684],{"class":1384},"offsetWidth\n",[643,24686,24687],{},[646,24688,24689],{},"Elemanların Yatay Mesafesini, Margin'i de Dahil Ederek Alma (Offset Width With Margin)",[643,24691,24692],{},[5583,24693,24694],{},[646,24695,16269],{},[1264,24697,24699],{"className":16424,"code":24698,"language":16426,"meta":346,"style":346},"$(el).outerWidth(true);\n",[799,24700,24701],{"__ignoreMap":346},[1272,24702,24703,24705,24707,24709,24711,24713,24715,24717],{"class":1274,"line":1275},[1272,24704,21149],{"class":14037},[1272,24706,21282],{"class":1384},[1272,24708,9220],{"class":1278},[1272,24710,24660],{"class":14037},[1272,24712,14049],{"class":1384},[1272,24714,9608],{"class":21911},[1272,24716,4213],{"class":1384},[1272,24718,13666],{"class":1278},[643,24720,24721],{},[5583,24722,24723],{},[646,24724,104],{},[1264,24726,24728],{"className":16424,"code":24727,"language":16426,"meta":346,"style":346},"function outerWidth(el) {\n  var width = el.offsetWidth;\n  var style = getComputedStyle(el);\n\n  width += parseInt(style.marginLeft) + parseInt(style.marginRight);\n  return width;\n}\n\nouterWidth(el);\n",[799,24729,24730,24745,24763,24781,24785,24822,24830,24834,24838],{"__ignoreMap":346},[1272,24731,24732,24734,24737,24739,24741,24743],{"class":1274,"line":1275},[1272,24733,14053],{"class":14052},[1272,24735,24736],{"class":14037}," outerWidth",[1272,24738,14049],{"class":1278},[1272,24740,21307],{"class":16462},[1272,24742,4213],{"class":1278},[1272,24744,13638],{"class":1278},[1272,24746,24747,24749,24752,24754,24756,24758,24761],{"class":1274,"line":347},[1272,24748,24532],{"class":14052},[1272,24750,24751],{"class":1384}," width",[1272,24753,16453],{"class":13810},[1272,24755,21637],{"class":1384},[1272,24757,9220],{"class":1278},[1272,24759,24760],{"class":1384},"offsetWidth",[1272,24762,13666],{"class":1278},[1272,24764,24765,24767,24769,24771,24773,24775,24777,24779],{"class":1274,"line":1302},[1272,24766,24532],{"class":14052},[1272,24768,8350],{"class":1384},[1272,24770,16453],{"class":13810},[1272,24772,24557],{"class":14037},[1272,24774,14049],{"class":14067},[1272,24776,21307],{"class":1384},[1272,24778,4213],{"class":14067},[1272,24780,13666],{"class":1278},[1272,24782,24783],{"class":1274,"line":1312},[1272,24784,1410],{"emptyLinePlaceholder":352},[1272,24786,24787,24790,24792,24794,24796,24798,24800,24803,24805,24807,24809,24811,24813,24815,24818,24820],{"class":1274,"line":1340},[1272,24788,24789],{"class":1384},"  width",[1272,24791,24577],{"class":13810},[1272,24793,24580],{"class":14037},[1272,24795,14049],{"class":14067},[1272,24797,1978],{"class":1384},[1272,24799,9220],{"class":1278},[1272,24801,24802],{"class":1384},"marginLeft",[1272,24804,21976],{"class":14067},[1272,24806,24594],{"class":13810},[1272,24808,24580],{"class":14037},[1272,24810,14049],{"class":14067},[1272,24812,1978],{"class":1384},[1272,24814,9220],{"class":1278},[1272,24816,24817],{"class":1384},"marginRight",[1272,24819,4213],{"class":14067},[1272,24821,13666],{"class":1278},[1272,24823,24824,24826,24828],{"class":1274,"line":1373},[1272,24825,21628],{"class":17379},[1272,24827,24751],{"class":1384},[1272,24829,13666],{"class":1278},[1272,24831,24832],{"class":1274,"line":1395},[1272,24833,2677],{"class":1278},[1272,24835,24836],{"class":1274,"line":1401},[1272,24837,1410],{"emptyLinePlaceholder":352},[1272,24839,24840,24842,24844],{"class":1274,"line":1407},[1272,24841,24660],{"class":14037},[1272,24843,21282],{"class":1384},[1272,24845,13666],{"class":1278},[643,24847,24848],{},[646,24849,24850],{},"Elemanların Display'lerine Göre Pozisyonlarını Allma (Position)",[643,24852,24853],{},[5583,24854,24855],{},[646,24856,16269],{},[1264,24858,24860],{"className":16424,"code":24859,"language":16426,"meta":346,"style":346},"$(el).position();\n",[799,24861,24862],{"__ignoreMap":346},[1272,24863,24864,24866,24868,24870,24873,24875],{"class":1274,"line":1275},[1272,24865,21149],{"class":14037},[1272,24867,21282],{"class":1384},[1272,24869,9220],{"class":1278},[1272,24871,24872],{"class":14037},"position",[1272,24874,14084],{"class":1384},[1272,24876,13666],{"class":1278},[643,24878,24879],{},[5583,24880,24881],{},[646,24882,104],{},[1264,24884,24886],{"className":16424,"code":24885,"language":16426,"meta":346,"style":346},"{left: el.offsetLeft, top: el.offsetTop}\n",[799,24887,24888],{"__ignoreMap":346},[1272,24889,24890,24893,24895,24897,24899,24901,24904,24906,24909,24911,24913,24915,24918],{"class":1274,"line":1275},[1272,24891,24892],{"class":1278},"{",[1272,24894,24342],{"class":22354},[1272,24896,13647],{"class":1278},[1272,24898,21637],{"class":1384},[1272,24900,9220],{"class":1278},[1272,24902,24903],{"class":1384},"offsetLeft",[1272,24905,711],{"class":1278},[1272,24907,24908],{"class":22354}," top",[1272,24910,13647],{"class":1278},[1272,24912,21637],{"class":1384},[1272,24914,9220],{"class":1278},[1272,24916,24917],{"class":1384},"offsetTop",[1272,24919,2677],{"class":1278},[643,24921,24922],{},[646,24923,24924],{},"Elemanların Viewport'a Göre Pozisyonlarını Alma (Position To Viewport)",[643,24926,24927],{},[5583,24928,24929],{},[646,24930,16269],{},[1264,24932,24934],{"className":16424,"code":24933,"language":16426,"meta":346,"style":346},"var offset = el.offset();\n\n{\n  top: offset.top - document.body.scrollTop,\n  left: offset.left - document.body.scrollLeft\n}\n",[799,24935,24936,24955,24959,24963,24991,25015],{"__ignoreMap":346},[1272,24937,24938,24940,24943,24945,24947,24949,24951,24953],{"class":1274,"line":1275},[1272,24939,16577],{"class":14052},[1272,24941,24942],{"class":1384}," offset ",[1272,24944,1324],{"class":13810},[1272,24946,21637],{"class":1384},[1272,24948,9220],{"class":1278},[1272,24950,24254],{"class":14037},[1272,24952,14084],{"class":1384},[1272,24954,13666],{"class":1278},[1272,24956,24957],{"class":1274,"line":347},[1272,24958,1410],{"emptyLinePlaceholder":352},[1272,24960,24961],{"class":1274,"line":1302},[1272,24962,4271],{"class":1278},[1272,24964,24965,24967,24969,24972,24974,24976,24979,24981,24983,24985,24987,24989],{"class":1274,"line":1312},[1272,24966,24302],{"class":22354},[1272,24968,13647],{"class":1278},[1272,24970,24971],{"class":1384}," offset",[1272,24973,9220],{"class":1278},[1272,24975,24312],{"class":1384},[1272,24977,24978],{"class":13810}," -",[1272,24980,23515],{"class":1384},[1272,24982,9220],{"class":1278},[1272,24984,1427],{"class":1384},[1272,24986,9220],{"class":1278},[1272,24988,24326],{"class":1384},[1272,24990,17121],{"class":1278},[1272,24992,24993,24995,24997,24999,25001,25003,25005,25007,25009,25011,25013],{"class":1274,"line":1340},[1272,24994,24333],{"class":22354},[1272,24996,13647],{"class":1278},[1272,24998,24971],{"class":1384},[1272,25000,9220],{"class":1278},[1272,25002,24342],{"class":1384},[1272,25004,24978],{"class":13810},[1272,25006,23515],{"class":1384},[1272,25008,9220],{"class":1278},[1272,25010,1427],{"class":1384},[1272,25012,9220],{"class":1278},[1272,25014,24355],{"class":1384},[1272,25016,25017],{"class":1274,"line":1373},[1272,25018,2677],{"class":1278},[643,25020,25021],{},[5583,25022,25023],{},[646,25024,104],{},[1264,25026,25028],{"className":16424,"code":25027,"language":16426,"meta":346,"style":346},"el.getBoundingClientRect()\n",[799,25029,25030],{"__ignoreMap":346},[1272,25031,25032,25034,25036,25038],{"class":1274,"line":1275},[1272,25033,21307],{"class":1384},[1272,25035,9220],{"class":1278},[1272,25037,24285],{"class":14037},[1272,25039,25040],{"class":1384},"()\n",[643,25042,25043],{},[646,25044,25045],{},"Elemanların Attribute'sini Alma (Get Attribute)",[643,25047,25048],{},[5583,25049,25050],{},[646,25051,16269],{},[1264,25053,25055],{"className":16424,"code":25054,"language":16426,"meta":346,"style":346},"$(el).attr('tabindex');\n",[799,25056,25057],{"__ignoreMap":346},[1272,25058,25059,25061,25063,25065,25068,25070,25072,25075,25077,25079],{"class":1274,"line":1275},[1272,25060,21149],{"class":14037},[1272,25062,21282],{"class":1384},[1272,25064,9220],{"class":1278},[1272,25066,25067],{"class":14037},"attr",[1272,25069,14049],{"class":1384},[1272,25071,19764],{"class":1327},[1272,25073,25074],{"class":1331},"tabindex",[1272,25076,19764],{"class":1327},[1272,25078,4213],{"class":1384},[1272,25080,13666],{"class":1278},[643,25082,25083],{},[5583,25084,25085],{},[646,25086,104],{},[1264,25088,25090],{"className":16424,"code":25089,"language":16426,"meta":346,"style":346},"el.getAttribute('tabindex');\n",[799,25091,25092],{"__ignoreMap":346},[1272,25093,25094,25096,25098,25101,25103,25105,25107,25109,25111],{"class":1274,"line":1275},[1272,25095,21307],{"class":1384},[1272,25097,9220],{"class":1278},[1272,25099,25100],{"class":14037},"getAttribute",[1272,25102,14049],{"class":1384},[1272,25104,19764],{"class":1327},[1272,25106,25074],{"class":1331},[1272,25108,19764],{"class":1327},[1272,25110,4213],{"class":1384},[1272,25112,13666],{"class":1278},[643,25114,25115],{},[646,25116,25117],{},"Elemanlara Attribute Ekleme (Set Attribute)",[643,25119,25120],{},[5583,25121,25122],{},[646,25123,16269],{},[1264,25125,25127],{"className":16424,"code":25126,"language":16426,"meta":346,"style":346},"$(el).attr('tabindex', 3);\n",[799,25128,25129],{"__ignoreMap":346},[1272,25130,25131,25133,25135,25137,25139,25141,25143,25145,25147,25149,25152,25154],{"class":1274,"line":1275},[1272,25132,21149],{"class":14037},[1272,25134,21282],{"class":1384},[1272,25136,9220],{"class":1278},[1272,25138,25067],{"class":14037},[1272,25140,14049],{"class":1384},[1272,25142,19764],{"class":1327},[1272,25144,25074],{"class":1331},[1272,25146,19764],{"class":1327},[1272,25148,711],{"class":1278},[1272,25150,25151],{"class":13650}," 3",[1272,25153,4213],{"class":1384},[1272,25155,13666],{"class":1278},[643,25157,25158],{},[5583,25159,25160],{},[646,25161,104],{},[1264,25163,25165],{"className":16424,"code":25164,"language":16426,"meta":346,"style":346},"el.setAttribute('tabindex', 3);\n",[799,25166,25167],{"__ignoreMap":346},[1272,25168,25169,25171,25173,25176,25178,25180,25182,25184,25186,25188,25190],{"class":1274,"line":1275},[1272,25170,21307],{"class":1384},[1272,25172,9220],{"class":1278},[1272,25174,25175],{"class":14037},"setAttribute",[1272,25177,14049],{"class":1384},[1272,25179,19764],{"class":1327},[1272,25181,25074],{"class":1331},[1272,25183,19764],{"class":1327},[1272,25185,711],{"class":1278},[1272,25187,25151],{"class":13650},[1272,25189,4213],{"class":1384},[1272,25191,13666],{"class":1278},[11478,25193,25195],{"id":25194},"olaylar-events",[646,25196,25197],{},"Olaylar (Events)",[643,25199,25200],{},[646,25201,25202],{},"Olay Ekleme (On)",[643,25204,25205],{},[5583,25206,25207],{},[646,25208,16269],{},[1264,25210,25212],{"className":16424,"code":25211,"language":16426,"meta":346,"style":346},"$(el).on(eventName, eventHandler);\n",[799,25213,25214],{"__ignoreMap":346},[1272,25215,25216,25218,25220,25222,25225,25228,25230,25233],{"class":1274,"line":1275},[1272,25217,21149],{"class":14037},[1272,25219,21282],{"class":1384},[1272,25221,9220],{"class":1278},[1272,25223,25224],{"class":14037},"on",[1272,25226,25227],{"class":1384},"(eventName",[1272,25229,711],{"class":1278},[1272,25231,25232],{"class":1384}," eventHandler)",[1272,25234,13666],{"class":1278},[643,25236,25237],{},[5583,25238,25239],{},[646,25240,104],{},[1264,25242,25244],{"className":16424,"code":25243,"language":16426,"meta":346,"style":346},"el.addEventListener(eventName, eventHandler);\n",[799,25245,25246],{"__ignoreMap":346},[1272,25247,25248,25250,25252,25255,25257,25259,25261],{"class":1274,"line":1275},[1272,25249,21307],{"class":1384},[1272,25251,9220],{"class":1278},[1272,25253,25254],{"class":14037},"addEventListener",[1272,25256,25227],{"class":1384},[1272,25258,711],{"class":1278},[1272,25260,25232],{"class":1384},[1272,25262,13666],{"class":1278},[643,25264,25265],{},[646,25266,25267],{},"Olay Kaldırma (Off)",[643,25269,25270],{},[5583,25271,25272],{},[646,25273,16269],{},[1264,25275,25277],{"className":16424,"code":25276,"language":16426,"meta":346,"style":346},"$(el).off(eventName, eventHandler);\n",[799,25278,25279],{"__ignoreMap":346},[1272,25280,25281,25283,25285,25287,25290,25292,25294,25296],{"class":1274,"line":1275},[1272,25282,21149],{"class":14037},[1272,25284,21282],{"class":1384},[1272,25286,9220],{"class":1278},[1272,25288,25289],{"class":14037},"off",[1272,25291,25227],{"class":1384},[1272,25293,711],{"class":1278},[1272,25295,25232],{"class":1384},[1272,25297,13666],{"class":1278},[643,25299,25300],{},[5583,25301,25302],{},[646,25303,104],{},[1264,25305,25307],{"className":16424,"code":25306,"language":16426,"meta":346,"style":346},"el.removeEventListener(eventName, eventHandler);\n",[799,25308,25309],{"__ignoreMap":346},[1272,25310,25311,25313,25315,25318,25320,25322,25324],{"class":1274,"line":1275},[1272,25312,21307],{"class":1384},[1272,25314,9220],{"class":1278},[1272,25316,25317],{"class":14037},"removeEventListener",[1272,25319,25227],{"class":1384},[1272,25321,711],{"class":1278},[1272,25323,25232],{"class":1384},[1272,25325,13666],{"class":1278},[643,25327,25328],{},[646,25329,25330],{},"Dökümanın Yüklenmesi Tamamlandı Olayı (Document Ready)",[643,25332,25333],{},[5583,25334,25335],{},[646,25336,16269],{},[1264,25338,25340],{"className":16424,"code":25339,"language":16426,"meta":346,"style":346},"$(document).ready(function(){\n\n});\n",[799,25341,25342,25358,25362],{"__ignoreMap":346},[1272,25343,25344,25346,25348,25350,25352,25354,25356],{"class":1274,"line":1275},[1272,25345,21149],{"class":14037},[1272,25347,14041],{"class":1384},[1272,25349,9220],{"class":1278},[1272,25351,14046],{"class":14037},[1272,25353,14049],{"class":1384},[1272,25355,14053],{"class":14052},[1272,25357,19754],{"class":1278},[1272,25359,25360],{"class":1274,"line":347},[1272,25361,1410],{"emptyLinePlaceholder":352},[1272,25363,25364,25366,25368],{"class":1274,"line":1302},[1272,25365,17126],{"class":1278},[1272,25367,4213],{"class":1384},[1272,25369,13666],{"class":1278},[643,25371,25372],{},[5583,25373,25374],{},[646,25375,104],{},[1264,25377,25379],{"className":16424,"code":25378,"language":16426,"meta":346,"style":346},"function ready(fn) {\n  if (document.attachEvent ? document.readyState === \"complete\" : document.readyState !== \"loading\"){\n    fn();\n  } else {\n    document.addEventListener('DOMContentLoaded', fn);\n  }\n}\n",[799,25380,25381,25397,25452,25461,25469,25496,25500],{"__ignoreMap":346},[1272,25382,25383,25385,25388,25390,25393,25395],{"class":1274,"line":1275},[1272,25384,14053],{"class":14052},[1272,25386,25387],{"class":14037}," ready",[1272,25389,14049],{"class":1278},[1272,25391,25392],{"class":16462},"fn",[1272,25394,4213],{"class":1278},[1272,25396,13638],{"class":1278},[1272,25398,25399,25401,25403,25405,25407,25410,25413,25415,25417,25420,25423,25425,25428,25430,25433,25435,25437,25439,25441,25443,25446,25448,25450],{"class":1274,"line":347},[1272,25400,21943],{"class":17379},[1272,25402,16459],{"class":14067},[1272,25404,21177],{"class":1384},[1272,25406,9220],{"class":1278},[1272,25408,25409],{"class":1384},"attachEvent",[1272,25411,25412],{"class":13810}," ?",[1272,25414,23515],{"class":1384},[1272,25416,9220],{"class":1278},[1272,25418,25419],{"class":1384},"readyState",[1272,25421,25422],{"class":13810}," ===",[1272,25424,17114],{"class":1327},[1272,25426,25427],{"class":1331},"complete",[1272,25429,1328],{"class":1327},[1272,25431,25432],{"class":13810}," :",[1272,25434,23515],{"class":1384},[1272,25436,9220],{"class":1278},[1272,25438,25419],{"class":1384},[1272,25440,21634],{"class":13810},[1272,25442,17114],{"class":1327},[1272,25444,25445],{"class":1331},"loading",[1272,25447,1328],{"class":1327},[1272,25449,4213],{"class":14067},[1272,25451,4271],{"class":1278},[1272,25453,25454,25457,25459],{"class":1274,"line":1302},[1272,25455,25456],{"class":14037},"    fn",[1272,25458,14084],{"class":14067},[1272,25460,13666],{"class":1278},[1272,25462,25463,25465,25467],{"class":1274,"line":1312},[1272,25464,22002],{"class":1278},[1272,25466,22005],{"class":17379},[1272,25468,13638],{"class":1278},[1272,25470,25471,25474,25476,25478,25480,25482,25485,25487,25489,25492,25494],{"class":1274,"line":1340},[1272,25472,25473],{"class":1384},"    document",[1272,25475,9220],{"class":1278},[1272,25477,25254],{"class":14037},[1272,25479,14049],{"class":14067},[1272,25481,19764],{"class":1327},[1272,25483,25484],{"class":1331},"DOMContentLoaded",[1272,25486,19764],{"class":1327},[1272,25488,711],{"class":1278},[1272,25490,25491],{"class":1384}," fn",[1272,25493,4213],{"class":14067},[1272,25495,13666],{"class":1278},[1272,25497,25498],{"class":1274,"line":1373},[1272,25499,21843],{"class":1278},[1272,25501,25502],{"class":1274,"line":1395},[1272,25503,2677],{"class":1278},[643,25505,25506],{},[646,25507,25508],{},"Varsayılan Olarak Tanımlı Olay Tetikleme (Trigger Native Event)",[643,25510,25511],{},[5583,25512,25513],{},[646,25514,16269],{},[1264,25516,25518],{"className":16424,"code":25517,"language":16426,"meta":346,"style":346},"$(el).trigger('change');\n",[799,25519,25520],{"__ignoreMap":346},[1272,25521,25522,25524,25526,25528,25531,25533,25535,25538,25540,25542],{"class":1274,"line":1275},[1272,25523,21149],{"class":14037},[1272,25525,21282],{"class":1384},[1272,25527,9220],{"class":1278},[1272,25529,25530],{"class":14037},"trigger",[1272,25532,14049],{"class":1384},[1272,25534,19764],{"class":1327},[1272,25536,25537],{"class":1331},"change",[1272,25539,19764],{"class":1327},[1272,25541,4213],{"class":1384},[1272,25543,13666],{"class":1278},[643,25545,25546],{},[5583,25547,25548],{},[646,25549,104],{},[1264,25551,25553],{"className":16424,"code":25552,"language":16426,"meta":346,"style":346},"var event = document.createEvent('HTMLEvents');\nevent.initEvent('change', true, false);\nel.dispatchEvent(event);\n",[799,25554,25555,25584,25615],{"__ignoreMap":346},[1272,25556,25557,25559,25562,25564,25566,25568,25571,25573,25575,25578,25580,25582],{"class":1274,"line":1275},[1272,25558,16577],{"class":14052},[1272,25560,25561],{"class":1384}," event ",[1272,25563,1324],{"class":13810},[1272,25565,23515],{"class":1384},[1272,25567,9220],{"class":1278},[1272,25569,25570],{"class":14037},"createEvent",[1272,25572,14049],{"class":1384},[1272,25574,19764],{"class":1327},[1272,25576,25577],{"class":1331},"HTMLEvents",[1272,25579,19764],{"class":1327},[1272,25581,4213],{"class":1384},[1272,25583,13666],{"class":1278},[1272,25585,25586,25589,25591,25594,25596,25598,25600,25602,25604,25606,25608,25611,25613],{"class":1274,"line":347},[1272,25587,25588],{"class":1384},"event",[1272,25590,9220],{"class":1278},[1272,25592,25593],{"class":14037},"initEvent",[1272,25595,14049],{"class":1384},[1272,25597,19764],{"class":1327},[1272,25599,25537],{"class":1331},[1272,25601,19764],{"class":1327},[1272,25603,711],{"class":1278},[1272,25605,21912],{"class":21911},[1272,25607,711],{"class":1278},[1272,25609,25610],{"class":21911}," false",[1272,25612,4213],{"class":1384},[1272,25614,13666],{"class":1278},[1272,25616,25617,25619,25621,25624,25627],{"class":1274,"line":1302},[1272,25618,21307],{"class":1384},[1272,25620,9220],{"class":1278},[1272,25622,25623],{"class":14037},"dispatchEvent",[1272,25625,25626],{"class":1384},"(event)",[1272,25628,13666],{"class":1278},[643,25630,25631],{},[646,25632,25633],{},"Özel Olarak Tanımlanmış Olayı Tetikleme (Trigger Custom Event)",[643,25635,25636],{},[5583,25637,25638],{},[646,25639,16269],{},[1264,25641,25643],{"className":16424,"code":25642,"language":16426,"meta":346,"style":346},"$(el).trigger('my-event', {some: 'data'});\n",[799,25644,25645],{"__ignoreMap":346},[1272,25646,25647,25649,25651,25653,25655,25657,25659,25662,25664,25666,25669,25672,25674,25676,25679,25681,25683,25685],{"class":1274,"line":1275},[1272,25648,21149],{"class":14037},[1272,25650,21282],{"class":1384},[1272,25652,9220],{"class":1278},[1272,25654,25530],{"class":14037},[1272,25656,14049],{"class":1384},[1272,25658,19764],{"class":1327},[1272,25660,25661],{"class":1331},"my-event",[1272,25663,19764],{"class":1327},[1272,25665,711],{"class":1278},[1272,25667,25668],{"class":1278}," {",[1272,25670,25671],{"class":14067},"some",[1272,25673,13647],{"class":1278},[1272,25675,21771],{"class":1327},[1272,25677,25678],{"class":1331},"data",[1272,25680,19764],{"class":1327},[1272,25682,17126],{"class":1278},[1272,25684,4213],{"class":1384},[1272,25686,13666],{"class":1278},[643,25688,25689],{},[5583,25690,25691],{},[646,25692,104],{},[1264,25694,25696],{"className":16424,"code":25695,"language":16426,"meta":346,"style":346},"if (window.CustomEvent) {\n  var event = new CustomEvent('my-event', {detail: {some: 'data'}});\n} else {\n  var event = document.createEvent('CustomEvent');\n  event.initCustomEvent('my-event', true, true, {some: 'data'});\n}\n\nel.dispatchEvent(event);\n",[799,25697,25698,25713,25763,25771,25798,25844,25848,25852],{"__ignoreMap":346},[1272,25699,25700,25703,25706,25708,25711],{"class":1274,"line":1275},[1272,25701,25702],{"class":17379},"if",[1272,25704,25705],{"class":1384}," (window",[1272,25707,9220],{"class":1278},[1272,25709,25710],{"class":1384},"CustomEvent) ",[1272,25712,4271],{"class":1278},[1272,25714,25715,25717,25720,25722,25724,25727,25729,25731,25733,25735,25737,25739,25742,25744,25746,25748,25750,25752,25754,25756,25759,25761],{"class":1274,"line":347},[1272,25716,24532],{"class":14052},[1272,25718,25719],{"class":1384}," event",[1272,25721,16453],{"class":13810},[1272,25723,16585],{"class":13810},[1272,25725,25726],{"class":14037}," CustomEvent",[1272,25728,14049],{"class":14067},[1272,25730,19764],{"class":1327},[1272,25732,25661],{"class":1331},[1272,25734,19764],{"class":1327},[1272,25736,711],{"class":1278},[1272,25738,25668],{"class":1278},[1272,25740,25741],{"class":14067},"detail",[1272,25743,13647],{"class":1278},[1272,25745,25668],{"class":1278},[1272,25747,25671],{"class":14067},[1272,25749,13647],{"class":1278},[1272,25751,21771],{"class":1327},[1272,25753,25678],{"class":1331},[1272,25755,19764],{"class":1327},[1272,25757,25758],{"class":1278},"}}",[1272,25760,4213],{"class":14067},[1272,25762,13666],{"class":1278},[1272,25764,25765,25767,25769],{"class":1274,"line":1302},[1272,25766,17126],{"class":1278},[1272,25768,22005],{"class":17379},[1272,25770,13638],{"class":1278},[1272,25772,25773,25775,25777,25779,25781,25783,25785,25787,25789,25792,25794,25796],{"class":1274,"line":1312},[1272,25774,24532],{"class":14052},[1272,25776,25719],{"class":1384},[1272,25778,16453],{"class":13810},[1272,25780,23515],{"class":1384},[1272,25782,9220],{"class":1278},[1272,25784,25570],{"class":14037},[1272,25786,14049],{"class":14067},[1272,25788,19764],{"class":1327},[1272,25790,25791],{"class":1331},"CustomEvent",[1272,25793,19764],{"class":1327},[1272,25795,4213],{"class":14067},[1272,25797,13666],{"class":1278},[1272,25799,25800,25803,25805,25808,25810,25812,25814,25816,25818,25820,25822,25824,25826,25828,25830,25832,25834,25836,25838,25840,25842],{"class":1274,"line":1340},[1272,25801,25802],{"class":1384},"  event",[1272,25804,9220],{"class":1278},[1272,25806,25807],{"class":14037},"initCustomEvent",[1272,25809,14049],{"class":14067},[1272,25811,19764],{"class":1327},[1272,25813,25661],{"class":1331},[1272,25815,19764],{"class":1327},[1272,25817,711],{"class":1278},[1272,25819,21912],{"class":21911},[1272,25821,711],{"class":1278},[1272,25823,21912],{"class":21911},[1272,25825,711],{"class":1278},[1272,25827,25668],{"class":1278},[1272,25829,25671],{"class":14067},[1272,25831,13647],{"class":1278},[1272,25833,21771],{"class":1327},[1272,25835,25678],{"class":1331},[1272,25837,19764],{"class":1327},[1272,25839,17126],{"class":1278},[1272,25841,4213],{"class":14067},[1272,25843,13666],{"class":1278},[1272,25845,25846],{"class":1274,"line":1373},[1272,25847,2677],{"class":1278},[1272,25849,25850],{"class":1274,"line":1395},[1272,25851,1410],{"emptyLinePlaceholder":352},[1272,25853,25854,25856,25858,25860,25862],{"class":1274,"line":1401},[1272,25855,21307],{"class":1384},[1272,25857,9220],{"class":1278},[1272,25859,25623],{"class":14037},[1272,25861,25626],{"class":1384},[1272,25863,13666],{"class":1278},[11478,25865,25867],{"id":25866},"araçlar-utils",[646,25868,25869],{},"Araçlar (Utils)",[643,25871,25872],{},[646,25873,25874],{},"Nesne Birleştirme (Extend)",[643,25876,25877],{},[5583,25878,25879],{},[646,25880,16269],{},[1264,25882,25884],{"className":16424,"code":25883,"language":16426,"meta":346,"style":346},"$.extend({}, objA, objB);\n",[799,25885,25886],{"__ignoreMap":346},[1272,25887,25888,25890,25892,25895,25897,25900,25903,25905,25908],{"class":1274,"line":1275},[1272,25889,21149],{"class":1384},[1272,25891,9220],{"class":1278},[1272,25893,25894],{"class":14037},"extend",[1272,25896,14049],{"class":1384},[1272,25898,25899],{"class":1278},"{},",[1272,25901,25902],{"class":1384}," objA",[1272,25904,711],{"class":1278},[1272,25906,25907],{"class":1384}," objB)",[1272,25909,13666],{"class":1278},[643,25911,25912],{},[5583,25913,25914],{},[646,25915,104],{},[1264,25917,25919],{"className":16424,"code":25918,"language":16426,"meta":346,"style":346},"var extend = function(out) {\n  out = out || {};\n\n  for (var i = 1; i \u003C arguments.length; i++) {\n    if (!arguments[i])\n      continue;\n\n    for (var key in arguments[i]) {\n      if (arguments[i].hasOwnProperty(key))\n        out[key] = arguments[i][key];\n    }\n  }\n\n  return out;\n};\n\nextend({}, objA, objB);\n",[799,25920,25921,25941,25956,25960,26001,26021,26028,26032,26058,26086,26115,26119,26123,26127,26135,26139,26143],{"__ignoreMap":346},[1272,25922,25923,25925,25928,25930,25932,25934,25937,25939],{"class":1274,"line":1275},[1272,25924,16577],{"class":14052},[1272,25926,25927],{"class":24048}," extend",[1272,25929,16453],{"class":13810},[1272,25931,16456],{"class":14052},[1272,25933,14049],{"class":1278},[1272,25935,25936],{"class":16462},"out",[1272,25938,4213],{"class":1278},[1272,25940,13638],{"class":1278},[1272,25942,25943,25946,25948,25951,25953],{"class":1274,"line":347},[1272,25944,25945],{"class":1384},"  out",[1272,25947,16453],{"class":13810},[1272,25949,25950],{"class":1384}," out",[1272,25952,24082],{"class":13810},[1272,25954,25955],{"class":1278}," {};\n",[1272,25957,25958],{"class":1274,"line":1302},[1272,25959,1410],{"emptyLinePlaceholder":352},[1272,25961,25962,25965,25967,25969,25971,25973,25976,25979,25981,25983,25986,25988,25990,25992,25994,25997,25999],{"class":1274,"line":1312},[1272,25963,25964],{"class":17379},"  for",[1272,25966,16459],{"class":14067},[1272,25968,16577],{"class":14052},[1272,25970,23557],{"class":1384},[1272,25972,16453],{"class":13810},[1272,25974,25975],{"class":13650}," 1",[1272,25977,25978],{"class":1278},";",[1272,25980,23557],{"class":1384},[1272,25982,14531],{"class":13810},[1272,25984,25985],{"class":1844}," arguments",[1272,25987,9220],{"class":1278},[1272,25989,23409],{"class":1844},[1272,25991,25978],{"class":1278},[1272,25993,23557],{"class":1384},[1272,25995,25996],{"class":13810},"++",[1272,25998,21976],{"class":14067},[1272,26000,4271],{"class":1278},[1272,26002,26003,26006,26008,26011,26014,26016,26018],{"class":1274,"line":1340},[1272,26004,26005],{"class":17379},"    if",[1272,26007,16459],{"class":14067},[1272,26009,26010],{"class":13810},"!",[1272,26012,26013],{"class":1844},"arguments",[1272,26015,13804],{"class":14067},[1272,26017,23474],{"class":1384},[1272,26019,26020],{"class":14067},"])\n",[1272,26022,26023,26026],{"class":1274,"line":1373},[1272,26024,26025],{"class":17379},"      continue",[1272,26027,13666],{"class":1278},[1272,26029,26030],{"class":1274,"line":1395},[1272,26031,1410],{"emptyLinePlaceholder":352},[1272,26033,26034,26037,26039,26041,26044,26047,26049,26051,26053,26056],{"class":1274,"line":1401},[1272,26035,26036],{"class":17379},"    for",[1272,26038,16459],{"class":14067},[1272,26040,16577],{"class":14052},[1272,26042,26043],{"class":1384}," key",[1272,26045,26046],{"class":13810}," in",[1272,26048,25985],{"class":1844},[1272,26050,13804],{"class":14067},[1272,26052,23474],{"class":1384},[1272,26054,26055],{"class":14067},"]) ",[1272,26057,4271],{"class":1278},[1272,26059,26060,26063,26065,26067,26069,26071,26073,26075,26078,26080,26083],{"class":1274,"line":1407},[1272,26061,26062],{"class":17379},"      if",[1272,26064,16459],{"class":14067},[1272,26066,26013],{"class":1844},[1272,26068,13804],{"class":14067},[1272,26070,23474],{"class":1384},[1272,26072,13819],{"class":14067},[1272,26074,9220],{"class":1278},[1272,26076,26077],{"class":14037},"hasOwnProperty",[1272,26079,14049],{"class":14067},[1272,26081,26082],{"class":1384},"key",[1272,26084,26085],{"class":14067},"))\n",[1272,26087,26088,26091,26093,26095,26098,26100,26102,26104,26106,26109,26111,26113],{"class":1274,"line":1413},[1272,26089,26090],{"class":1384},"        out",[1272,26092,13804],{"class":14067},[1272,26094,26082],{"class":1384},[1272,26096,26097],{"class":14067},"] ",[1272,26099,1324],{"class":13810},[1272,26101,25985],{"class":1844},[1272,26103,13804],{"class":14067},[1272,26105,23474],{"class":1384},[1272,26107,26108],{"class":14067},"][",[1272,26110,26082],{"class":1384},[1272,26112,13819],{"class":14067},[1272,26114,13666],{"class":1278},[1272,26116,26117],{"class":1274,"line":1422},[1272,26118,4534],{"class":1278},[1272,26120,26121],{"class":1274,"line":1432},[1272,26122,21843],{"class":1278},[1272,26124,26125],{"class":1274,"line":1454},[1272,26126,1410],{"emptyLinePlaceholder":352},[1272,26128,26129,26131,26133],{"class":1274,"line":1475},[1272,26130,21628],{"class":17379},[1272,26132,25950],{"class":1384},[1272,26134,13666],{"class":1278},[1272,26136,26137],{"class":1274,"line":1496},[1272,26138,22020],{"class":1278},[1272,26140,26141],{"class":1274,"line":1553},[1272,26142,1410],{"emptyLinePlaceholder":352},[1272,26144,26145,26147,26149,26151,26153,26155,26157],{"class":1274,"line":1579},[1272,26146,25894],{"class":14037},[1272,26148,14049],{"class":1384},[1272,26150,25899],{"class":1278},[1272,26152,25902],{"class":1384},[1272,26154,711],{"class":1278},[1272,26156,25907],{"class":1384},[1272,26158,13666],{"class":1278},[643,26160,26161],{},[646,26162,26163],{},"Nesneyi Alt Nesneleriyle Birleştirme (Deep Extend)",[643,26165,26166],{},[5583,26167,26168],{},[646,26169,16269],{},[1264,26171,26173],{"className":16424,"code":26172,"language":16426,"meta":346,"style":346},"$.extend(true, {}, objA, objB);\n",[799,26174,26175],{"__ignoreMap":346},[1272,26176,26177,26179,26181,26183,26185,26187,26189,26192,26194,26196,26198],{"class":1274,"line":1275},[1272,26178,21149],{"class":1384},[1272,26180,9220],{"class":1278},[1272,26182,25894],{"class":14037},[1272,26184,14049],{"class":1384},[1272,26186,9608],{"class":21911},[1272,26188,711],{"class":1278},[1272,26190,26191],{"class":1278}," {},",[1272,26193,25902],{"class":1384},[1272,26195,711],{"class":1278},[1272,26197,25907],{"class":1384},[1272,26199,13666],{"class":1278},[643,26201,26202],{},[5583,26203,26204],{},[646,26205,104],{},[1264,26207,26209],{"className":16424,"code":26208,"language":16426,"meta":346,"style":346},"var deepExtend = function(out) {\n  out = out || {};\n\n  for (var i = 1; i \u003C arguments.length; i++) {\n    var obj = arguments[i];\n\n    if (!obj)\n      continue;\n\n    for (var key in obj) {\n      if (obj.hasOwnProperty(key)) {\n        if (typeof obj[key] === 'object')\n          out[key] = deepExtend(out[key], obj[key]);\n        else\n          out[key] = obj[key];\n      }\n    }\n  }\n\n  return out;\n};\n\ndeepExtend({}, objA, objB);\n",[799,26210,26211,26230,26242,26246,26282,26301,26305,26318,26324,26328,26346,26367,26396,26433,26438,26460,26465,26469,26473,26477,26485,26489,26493],{"__ignoreMap":346},[1272,26212,26213,26215,26218,26220,26222,26224,26226,26228],{"class":1274,"line":1275},[1272,26214,16577],{"class":14052},[1272,26216,26217],{"class":24048}," deepExtend",[1272,26219,16453],{"class":13810},[1272,26221,16456],{"class":14052},[1272,26223,14049],{"class":1278},[1272,26225,25936],{"class":16462},[1272,26227,4213],{"class":1278},[1272,26229,13638],{"class":1278},[1272,26231,26232,26234,26236,26238,26240],{"class":1274,"line":347},[1272,26233,25945],{"class":1384},[1272,26235,16453],{"class":13810},[1272,26237,25950],{"class":1384},[1272,26239,24082],{"class":13810},[1272,26241,25955],{"class":1278},[1272,26243,26244],{"class":1274,"line":1302},[1272,26245,1410],{"emptyLinePlaceholder":352},[1272,26247,26248,26250,26252,26254,26256,26258,26260,26262,26264,26266,26268,26270,26272,26274,26276,26278,26280],{"class":1274,"line":1312},[1272,26249,25964],{"class":17379},[1272,26251,16459],{"class":14067},[1272,26253,16577],{"class":14052},[1272,26255,23557],{"class":1384},[1272,26257,16453],{"class":13810},[1272,26259,25975],{"class":13650},[1272,26261,25978],{"class":1278},[1272,26263,23557],{"class":1384},[1272,26265,14531],{"class":13810},[1272,26267,25985],{"class":1844},[1272,26269,9220],{"class":1278},[1272,26271,23409],{"class":1844},[1272,26273,25978],{"class":1278},[1272,26275,23557],{"class":1384},[1272,26277,25996],{"class":13810},[1272,26279,21976],{"class":14067},[1272,26281,4271],{"class":1278},[1272,26283,26284,26286,26289,26291,26293,26295,26297,26299],{"class":1274,"line":1340},[1272,26285,21983],{"class":14052},[1272,26287,26288],{"class":1384}," obj",[1272,26290,16453],{"class":13810},[1272,26292,25985],{"class":1844},[1272,26294,13804],{"class":14067},[1272,26296,23474],{"class":1384},[1272,26298,13819],{"class":14067},[1272,26300,13666],{"class":1278},[1272,26302,26303],{"class":1274,"line":1373},[1272,26304,1410],{"emptyLinePlaceholder":352},[1272,26306,26307,26309,26311,26313,26316],{"class":1274,"line":1395},[1272,26308,26005],{"class":17379},[1272,26310,16459],{"class":14067},[1272,26312,26010],{"class":13810},[1272,26314,26315],{"class":1384},"obj",[1272,26317,21161],{"class":14067},[1272,26319,26320,26322],{"class":1274,"line":1401},[1272,26321,26025],{"class":17379},[1272,26323,13666],{"class":1278},[1272,26325,26326],{"class":1274,"line":1407},[1272,26327,1410],{"emptyLinePlaceholder":352},[1272,26329,26330,26332,26334,26336,26338,26340,26342,26344],{"class":1274,"line":1413},[1272,26331,26036],{"class":17379},[1272,26333,16459],{"class":14067},[1272,26335,16577],{"class":14052},[1272,26337,26043],{"class":1384},[1272,26339,26046],{"class":13810},[1272,26341,26288],{"class":1384},[1272,26343,21976],{"class":14067},[1272,26345,4271],{"class":1278},[1272,26347,26348,26350,26352,26354,26356,26358,26360,26362,26365],{"class":1274,"line":1422},[1272,26349,26062],{"class":17379},[1272,26351,16459],{"class":14067},[1272,26353,26315],{"class":1384},[1272,26355,9220],{"class":1278},[1272,26357,26077],{"class":14037},[1272,26359,14049],{"class":14067},[1272,26361,26082],{"class":1384},[1272,26363,26364],{"class":14067},")) ",[1272,26366,4271],{"class":1278},[1272,26368,26369,26372,26374,26377,26379,26381,26383,26385,26387,26389,26392,26394],{"class":1274,"line":1432},[1272,26370,26371],{"class":17379},"        if",[1272,26373,16459],{"class":14067},[1272,26375,26376],{"class":13810},"typeof",[1272,26378,26288],{"class":1384},[1272,26380,13804],{"class":14067},[1272,26382,26082],{"class":1384},[1272,26384,26097],{"class":14067},[1272,26386,23988],{"class":13810},[1272,26388,21771],{"class":1327},[1272,26390,26391],{"class":1331},"object",[1272,26393,19764],{"class":1327},[1272,26395,21161],{"class":14067},[1272,26397,26398,26401,26403,26405,26407,26409,26411,26413,26415,26417,26419,26421,26423,26425,26427,26429,26431],{"class":1274,"line":1454},[1272,26399,26400],{"class":1384},"          out",[1272,26402,13804],{"class":14067},[1272,26404,26082],{"class":1384},[1272,26406,26097],{"class":14067},[1272,26408,1324],{"class":13810},[1272,26410,26217],{"class":14037},[1272,26412,14049],{"class":14067},[1272,26414,25936],{"class":1384},[1272,26416,13804],{"class":14067},[1272,26418,26082],{"class":1384},[1272,26420,13819],{"class":14067},[1272,26422,711],{"class":1278},[1272,26424,26288],{"class":1384},[1272,26426,13804],{"class":14067},[1272,26428,26082],{"class":1384},[1272,26430,17150],{"class":14067},[1272,26432,13666],{"class":1278},[1272,26434,26435],{"class":1274,"line":1475},[1272,26436,26437],{"class":17379},"        else\n",[1272,26439,26440,26442,26444,26446,26448,26450,26452,26454,26456,26458],{"class":1274,"line":1496},[1272,26441,26400],{"class":1384},[1272,26443,13804],{"class":14067},[1272,26445,26082],{"class":1384},[1272,26447,26097],{"class":14067},[1272,26449,1324],{"class":13810},[1272,26451,26288],{"class":1384},[1272,26453,13804],{"class":14067},[1272,26455,26082],{"class":1384},[1272,26457,13819],{"class":14067},[1272,26459,13666],{"class":1278},[1272,26461,26462],{"class":1274,"line":1553},[1272,26463,26464],{"class":1278},"      }\n",[1272,26466,26467],{"class":1274,"line":1579},[1272,26468,4534],{"class":1278},[1272,26470,26471],{"class":1274,"line":1602},[1272,26472,21843],{"class":1278},[1272,26474,26475],{"class":1274,"line":1625},[1272,26476,1410],{"emptyLinePlaceholder":352},[1272,26478,26479,26481,26483],{"class":1274,"line":1635},[1272,26480,21628],{"class":17379},[1272,26482,25950],{"class":1384},[1272,26484,13666],{"class":1278},[1272,26486,26487],{"class":1274,"line":1641},[1272,26488,22020],{"class":1278},[1272,26490,26491],{"class":1274,"line":1651},[1272,26492,1410],{"emptyLinePlaceholder":352},[1272,26494,26495,26498,26500,26502,26504,26506,26508],{"class":1274,"line":1671},[1272,26496,26497],{"class":14037},"deepExtend",[1272,26499,14049],{"class":1384},[1272,26501,25899],{"class":1278},[1272,26503,25902],{"class":1384},[1272,26505,711],{"class":1278},[1272,26507,25907],{"class":1384},[1272,26509,13666],{"class":1278},[643,26511,26512],{},[646,26513,26514],{},"Nesnenin Liste Olup Olmadığını Kontrol Etme (Is Array)",[643,26516,26517],{},[5583,26518,26519],{},[646,26520,16269],{},[1264,26522,26524],{"className":16424,"code":26523,"language":16426,"meta":346,"style":346},"$.isArray(arr);\n",[799,26525,26526],{"__ignoreMap":346},[1272,26527,26528,26530,26532,26535,26538],{"class":1274,"line":1275},[1272,26529,21149],{"class":1384},[1272,26531,9220],{"class":1278},[1272,26533,26534],{"class":14037},"isArray",[1272,26536,26537],{"class":1384},"(arr)",[1272,26539,13666],{"class":1278},[643,26541,26542],{},[5583,26543,26544],{},[646,26545,104],{},[1264,26547,26549],{"className":16424,"code":26548,"language":16426,"meta":346,"style":346},"Array.isArray(arr);\n",[799,26550,26551],{"__ignoreMap":346},[1272,26552,26553,26555,26557,26559,26561],{"class":1274,"line":1275},[1272,26554,21586],{"class":1384},[1272,26556,9220],{"class":1278},[1272,26558,26534],{"class":14037},[1272,26560,26537],{"class":1384},[1272,26562,13666],{"class":1278},[643,26564,26565],{},[646,26566,26567],{},"Map Döngüsü (Map)",[643,26569,26570],{},[5583,26571,26572],{},[646,26573,16269],{},[1264,26575,26577],{"className":16424,"code":26576,"language":16426,"meta":346,"style":346},"$.map(array, function(value, index){\n\n});\n",[799,26578,26579,26607,26611],{"__ignoreMap":346},[1272,26580,26581,26583,26585,26588,26591,26593,26595,26597,26600,26602,26605],{"class":1274,"line":1275},[1272,26582,21149],{"class":1384},[1272,26584,9220],{"class":1278},[1272,26586,26587],{"class":14037},"map",[1272,26589,26590],{"class":1384},"(array",[1272,26592,711],{"class":1278},[1272,26594,16456],{"class":14052},[1272,26596,14049],{"class":1278},[1272,26598,26599],{"class":16462},"value",[1272,26601,711],{"class":1278},[1272,26603,26604],{"class":16462}," index",[1272,26606,19836],{"class":1278},[1272,26608,26609],{"class":1274,"line":347},[1272,26610,1410],{"emptyLinePlaceholder":352},[1272,26612,26613,26615,26617],{"class":1274,"line":1302},[1272,26614,17126],{"class":1278},[1272,26616,4213],{"class":1384},[1272,26618,13666],{"class":1278},[643,26620,26621],{},[5583,26622,26623],{},[646,26624,104],{},[1264,26626,26628],{"className":16424,"code":26627,"language":16426,"meta":346,"style":346},"array.map(function(value, index){\n\n});\n",[799,26629,26630,26653,26657],{"__ignoreMap":346},[1272,26631,26632,26635,26637,26639,26641,26643,26645,26647,26649,26651],{"class":1274,"line":1275},[1272,26633,26634],{"class":1384},"array",[1272,26636,9220],{"class":1278},[1272,26638,26587],{"class":14037},[1272,26640,14049],{"class":1384},[1272,26642,14053],{"class":14052},[1272,26644,14049],{"class":1278},[1272,26646,26599],{"class":16462},[1272,26648,711],{"class":1278},[1272,26650,26604],{"class":16462},[1272,26652,19836],{"class":1278},[1272,26654,26655],{"class":1274,"line":347},[1272,26656,1410],{"emptyLinePlaceholder":352},[1272,26658,26659,26661,26663],{"class":1274,"line":1302},[1272,26660,17126],{"class":1278},[1272,26662,4213],{"class":1384},[1272,26664,13666],{"class":1278},[643,26666,26667],{},[646,26668,26669],{},"Html Parse Etme",[643,26671,26672],{},[5583,26673,26674],{},[646,26675,16269],{},[1264,26677,26679],{"className":16424,"code":26678,"language":16426,"meta":346,"style":346},"$.parseHTML(htmlString);\n",[799,26680,26681],{"__ignoreMap":346},[1272,26682,26683,26685,26687,26690,26692],{"class":1274,"line":1275},[1272,26684,21149],{"class":1384},[1272,26686,9220],{"class":1278},[1272,26688,26689],{"class":14037},"parseHTML",[1272,26691,22855],{"class":1384},[1272,26693,13666],{"class":1278},[643,26695,26696],{},[5583,26697,26698],{},[646,26699,104],{},[1264,26701,26703],{"className":16424,"code":26702,"language":16426,"meta":346,"style":346},"var parseHTML = function(str) {\n  var tmp = document.implementation.createHTMLDocument();\n  tmp.body.innerHTML = str;\n  return tmp.body.children;\n};\n\nparseHTML(htmlString);\n",[799,26704,26705,26725,26750,26771,26787,26791,26795],{"__ignoreMap":346},[1272,26706,26707,26709,26712,26714,26716,26718,26721,26723],{"class":1274,"line":1275},[1272,26708,16577],{"class":14052},[1272,26710,26711],{"class":24048}," parseHTML",[1272,26713,16453],{"class":13810},[1272,26715,16456],{"class":14052},[1272,26717,14049],{"class":1278},[1272,26719,26720],{"class":16462},"str",[1272,26722,4213],{"class":1278},[1272,26724,13638],{"class":1278},[1272,26726,26727,26729,26732,26734,26736,26738,26741,26743,26746,26748],{"class":1274,"line":347},[1272,26728,24532],{"class":14052},[1272,26730,26731],{"class":1384}," tmp",[1272,26733,16453],{"class":13810},[1272,26735,23515],{"class":1384},[1272,26737,9220],{"class":1278},[1272,26739,26740],{"class":1384},"implementation",[1272,26742,9220],{"class":1278},[1272,26744,26745],{"class":14037},"createHTMLDocument",[1272,26747,14084],{"class":14067},[1272,26749,13666],{"class":1278},[1272,26751,26752,26755,26757,26759,26761,26764,26766,26769],{"class":1274,"line":1302},[1272,26753,26754],{"class":1384},"  tmp",[1272,26756,9220],{"class":1278},[1272,26758,1427],{"class":1384},[1272,26760,9220],{"class":1278},[1272,26762,26763],{"class":1384},"innerHTML",[1272,26765,16453],{"class":13810},[1272,26767,26768],{"class":1384}," str",[1272,26770,13666],{"class":1278},[1272,26772,26773,26775,26777,26779,26781,26783,26785],{"class":1274,"line":1312},[1272,26774,21628],{"class":17379},[1272,26776,26731],{"class":1384},[1272,26778,9220],{"class":1278},[1272,26780,1427],{"class":1384},[1272,26782,9220],{"class":1278},[1272,26784,21390],{"class":1384},[1272,26786,13666],{"class":1278},[1272,26788,26789],{"class":1274,"line":1340},[1272,26790,22020],{"class":1278},[1272,26792,26793],{"class":1274,"line":1373},[1272,26794,1410],{"emptyLinePlaceholder":352},[1272,26796,26797,26799,26801],{"class":1274,"line":1395},[1272,26798,26689],{"class":14037},[1272,26800,22855],{"class":1384},[1272,26802,13666],{"class":1278},[643,26804,26805],{},[646,26806,26807],{},"Json Parse Etme",[643,26809,26810],{},[5583,26811,26812],{},[646,26813,16269],{},[1264,26815,26817],{"className":16424,"code":26816,"language":16426,"meta":346,"style":346},"$.parseJSON(string);\n",[799,26818,26819],{"__ignoreMap":346},[1272,26820,26821,26823,26825,26828,26830],{"class":1274,"line":1275},[1272,26822,21149],{"class":1384},[1272,26824,9220],{"class":1278},[1272,26826,26827],{"class":14037},"parseJSON",[1272,26829,22988],{"class":1384},[1272,26831,13666],{"class":1278},[643,26833,26834],{},[5583,26835,26836],{},[646,26837,104],{},[1264,26839,26841],{"className":16424,"code":26840,"language":16426,"meta":346,"style":346},"JSON.parse(string);\n",[799,26842,26843],{"__ignoreMap":346},[1272,26844,26845,26848,26850,26853,26855],{"class":1274,"line":1275},[1272,26846,26847],{"class":1844},"JSON",[1272,26849,9220],{"class":1278},[1272,26851,26852],{"class":14037},"parse",[1272,26854,22988],{"class":1384},[1272,26856,13666],{"class":1278},[643,26858,26859],{},[646,26860,26861],{},"Yazıyı Trim Etme (Trim Text)",[643,26863,26864],{},[5583,26865,26866],{},[646,26867,16269],{},[1264,26869,26871],{"className":16424,"code":26870,"language":16426,"meta":346,"style":346},"$.trim(string);\n",[799,26872,26873],{"__ignoreMap":346},[1272,26874,26875,26877,26879,26882,26884],{"class":1274,"line":1275},[1272,26876,21149],{"class":1384},[1272,26878,9220],{"class":1278},[1272,26880,26881],{"class":14037},"trim",[1272,26883,22988],{"class":1384},[1272,26885,13666],{"class":1278},[643,26887,26888],{},[5583,26889,26890],{},[646,26891,104],{},[1264,26893,26895],{"className":16424,"code":26894,"language":16426,"meta":346,"style":346},"string.trim();\n",[799,26896,26897],{"__ignoreMap":346},[1272,26898,26899,26902,26904,26906,26908],{"class":1274,"line":1275},[1272,26900,26901],{"class":1384},"string",[1272,26903,9220],{"class":1278},[1272,26905,26881],{"class":14037},[1272,26907,14084],{"class":1384},[1272,26909,13666],{"class":1278},[643,26911,26912],{},[646,26913,26914],{},"Nesnenin Tipini Alma (Type)",[643,26916,26917],{},[5583,26918,26919],{},[646,26920,16269],{},[1264,26922,26924],{"className":16424,"code":26923,"language":16426,"meta":346,"style":346},"$.type(obj);\n",[799,26925,26926],{"__ignoreMap":346},[1272,26927,26928,26930,26932,26934,26937],{"class":1274,"line":1275},[1272,26929,21149],{"class":1384},[1272,26931,9220],{"class":1278},[1272,26933,13807],{"class":14037},[1272,26935,26936],{"class":1384},"(obj)",[1272,26938,13666],{"class":1278},[643,26940,26941],{},[5583,26942,26943],{},[646,26944,104],{},[1264,26946,26948],{"className":16424,"code":26947,"language":16426,"meta":346,"style":346},"Object.prototype.toString.call(obj).replace(/\\[object (.+)\\]/, '$1').toLowerCase();\n",[799,26949,26950],{"__ignoreMap":346},[1272,26951,26952,26955,26957,26959,26961,26964,26966,26968,26970,26972,26975,26977,26979,26983,26987,26990,26993,26995,26997,27000,27002,27004,27006,27009,27011,27013,27015,27018,27020],{"class":1274,"line":1275},[1272,26953,26954],{"class":20491},"Object",[1272,26956,9220],{"class":1278},[1272,26958,20391],{"class":1844},[1272,26960,9220],{"class":1278},[1272,26962,26963],{"class":1384},"toString",[1272,26965,9220],{"class":1278},[1272,26967,21600],{"class":14037},[1272,26969,26936],{"class":1384},[1272,26971,9220],{"class":1278},[1272,26973,26974],{"class":14037},"replace",[1272,26976,14049],{"class":1384},[1272,26978,5287],{"class":1327},[1272,26980,26982],{"class":26981},"sjYin","\\[",[1272,26984,26986],{"class":26985},"sQRbd","object ",[1272,26988,14049],{"class":26989},"s-KJb",[1272,26991,9220],{"class":26992},"stzsN",[1272,26994,24594],{"class":13810},[1272,26996,4213],{"class":26989},[1272,26998,26999],{"class":26981},"\\]",[1272,27001,5287],{"class":1327},[1272,27003,711],{"class":1278},[1272,27005,21771],{"class":1327},[1272,27007,27008],{"class":1331},"$1",[1272,27010,19764],{"class":1327},[1272,27012,4213],{"class":1384},[1272,27014,9220],{"class":1278},[1272,27016,27017],{"class":14037},"toLowerCase",[1272,27019,14084],{"class":1384},[1272,27021,13666],{"class":1278},[1978,27023,27024],{},"html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .syTEX, html code.shiki .syTEX{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .stp6e, html code.shiki .stp6e{--shiki-light:#39ADB5;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .soE4H, html code.shiki .soE4H{--shiki-light:#8796B0;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sw1J6, html code.shiki .sw1J6{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sfCm-, html code.shiki .sfCm-{--shiki-light:#90A4AE;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjYin, html code.shiki .sjYin{--shiki-light:#90A4AE;--shiki-light-font-weight:inherit;--shiki-default:#22863A;--shiki-default-font-weight:bold;--shiki-dark:#85E89D;--shiki-dark-font-weight:bold}html pre.shiki code .sQRbd, html code.shiki .sQRbd{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .s-KJb, html code.shiki .s-KJb{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":346,"searchDepth":347,"depth":347,"links":27026},[],"2017/09/JavaScript.png","2017-09-11T00:00:00.000Z",{},{"title":109,"description":861},"LBdOKwg54kjddxy8kvw_n1PPEtfLVzQQiqIMar_24uE",{"id":27033,"title":161,"body":27034,"coverImage":27559,"createDate":27560,"description":861,"extension":350,"meta":27561,"navigation":352,"path":162,"seo":27562,"stem":163,"__hash__":27563},"posts/dersler/vue-js/vue-js-nedir.md",{"type":343,"value":27035,"toc":27557},[27036,27039,27043,27046,27049,27052,27057,27080,27085,27088,27094,27100,27105,27111,27118,27121,27135,27138,27145,27150,27156,27159,27162,27167,27174,27177,27180,27431,27434,27540,27548,27551,27554],[639,27037,161],{"id":27038},"vuejs-nedir",[643,27040,27041],{},[646,27042,861],{},[643,27044,27045],{},"Bugüne kadar Javascript dünyasından pek çok framework geldi geçti. Piyasa o kadar hızlı bir dönüşümde ki piyasa hızına\nyetişmek gerçekten oldukça yorucu bir süreç halini alabiliyor. Ancak bütün bu framework'ler belirli dünya ihtiyaçlarına\ngöre belirleniyor. Biz de bugün son dönemlerin popüler framework'ü olan Vue.js hakkında konuşacağız.",[643,27047,27048],{},"Vue.js Şubat 2014 tarihinde, eski bir Google çalışanı olan Evan You tarafından geliştirildi. Kendisi aynı zamanda\nAngular.js 1 geliştirici ekibindendi. Kendisinin Angular.js'de eksik gördüğü yönleri de kapatarak, böyle bir framework\nortaya çıkardı. Daha önce Angular.js ile çalışan kişiler, aralarındaki bazı benzerlikleri (v-if gibi) farkedeceklerdir.",[643,27050,27051],{},"3 yılda ciddi bir gelişim gösteren framework, Github'da 80bin civarı yıldıza sahip, bu da onun popülerliğini gösteriyor.\nŞu an arkasında büyük bir firma olmasa da proje çok düzgün bir şekilde ilerliyor.",[643,27053,27054],{},[646,27055,27056],{},"AVANTAJLARI",[655,27058,27059,27062,27065,27068,27071,27074,27077],{},[658,27060,27061],{},"Saf javascript kullanılması. Bu elbette kişilerin tercihine bağlı bir durum. Ancak frontend developer'ların hepsi\nTypescript, Coffescript bilemezken, Javascript biliyor olacaklardır. Bu da aradaki uyumu arttıracaktır.",[658,27063,27064],{},"Hafif bir script olması. İster büyük mimarilerde kullanın, isterseniz tek bir sayfada kullanın. Tek bir dosyayı\nsayfaya ekleyerek hemen kullanmaya başlayabilirsiniz. (Örn. Angular'da belirli yapılandırmalar gerekmektedir.)",[658,27066,27067],{},"Virtual dom kullanması. Virtual dom, react tarafından kullanılmış bir özelliktir. Avantajı ise değişikller yapıldıkça,\ndoğrudan dom'un değil, memory'deki dom'un clone'nin güncellenmesi ve aradaki farkların uygun zamanda gerçek dom'a\nyansıtılmasıdır. (Angular'da Virtual dom yoktur.)",[658,27069,27070],{},"Performasının çok iyi olması. (Aşağıda detaylı bir performans testi mevcuttur.)",[658,27072,27073],{},"Öğrenim eğrisinin kesinlikle az olması. Diğer framework'lerle kıyaslandığında gerçekten kullanması oldukça kolay.",[658,27075,27076],{},"Basit Javascript objeleriyle çalışması. Bunun avantajı dışarıdan yapılacak müdahelelerin sistemde çalışması. Yani\ndiğer framework'lerdeki gibi wrapper'lara ya da trigger'lara ihtiyaç duymaması.",[658,27078,27079],{},"Geniş framework ve library desteği.Mobil hybrid geliştirmesi için Quasar Framework'ü, mobil native için Weex'i kullanabilirsiniz. Bunun gibi daha pek çok içeriğe sahiptir.",[643,27081,27082],{},[646,27083,27084],{},"PERFORMANS FARKLARI",[643,27086,27087],{},"Performans anlamında diğer framework'lerle kıyaslama yapıldığında, en üst performansa sahip framework olarak görünüyor.",[643,27089,27090],{},[895,27091],{"alt":27092,"src":27093},"Performans tablosu 1","/images/2018/01/Ekran-Alintisi.png",[643,27095,27096],{},[895,27097],{"alt":27098,"src":27099},"Performans tablosu 2","/images/2018/01/Ekran-Alintisi-1.png",[643,27101,27102],{},[646,27103,27104],{},"COMPONENT MİMARİ",[643,27106,27107],{},[895,27108],{"alt":27109,"src":27110},"logo","/images/2018/01/puzzle-icon-28364-150x150.jpg",[643,27112,27113,27114,27117],{},"Son dönem Javascript frameworklerinde ",[646,27115,27116],{},"component mimarı"," oldukça popüler bir hale geldi.",[643,27119,27120],{},"Component mimari, aslında html'de halihazırda bulunan tag'ların genişletilmesidir. Örneğin paragraf için ",[643,27122,27123,27124],{}," kullarız ya\nda başlık için ",[27125,27126,27127,27128],"h",{}," kullanırız. Ama mesela kendi isteğimize göre ",[27129,27130,27131,27132],"custom",{}," gibi bir tag yazarsak, browser bunu düz bir\nmetin olarak basacaktır. Çünkü biz, ne olduğunu bilsek de browser ",[27129,27133,27134],{}," 'ı tanımıyor olacaktır. İşte bu şekilde özel\ntag'lar yazabilmemiz, yeni nesil framework'ler sayesinde mümkün olmaktadır.",[643,27136,27137],{},"Bir diğer dikkat çekici detay da bu mimaride yazılmış framework'lerde her kod parçasının ya da html parçasının kendi\nişini yapmasıdır.",[643,27139,27140,27141,27144],{},"Örneğin, bir alışveriş sitesinde sepetimiz olduğunu varsayalım, sepeti, komple bir component olarak da tasarlayabiliriz,\niçindeki her bir item'i ayrı bir component, toplam tutarı ayrı bir component olarak da tasarlayabiliriz. Böyle\nyapmamızın avantajı ve bu framework'lerin en önemli özelliği, ",[646,27142,27143],{},"yeniden kullanılabilirlik (reusable)","'dir. Yani biz\nsepeti, herhangi bir kod değişikliği yapmadan farklı yerlerde aynı şekilde kullanabiliriz. Bunun bizlere sağladığı\nesneklik ve aynı kodu tekrar yazmama özelliği muazzamdır.",[643,27146,27147],{},[646,27148,27149],{},"MVVM",[643,27151,27152],{},[895,27153],{"alt":27154,"src":27155},"Mvvm","/images/2018/01/mvvm-light-300x90.png",[643,27157,27158],{},"Bahsettiğimiz framework'lerin bir diğer güzelliği ise bizlere Mvvm pattern'ini sunmasıdır.",[643,27160,27161],{},"Mvvm; kısaca model'deki veri güncellendiğinde, view'daki verinin de otomatik olarak güncellenmesi, aynı şekilde tam\ntersine bir güncelleme işleminin de olmasıdır. Bunun avantajları çok daha az kod ile hızlıca işlemlerin çıkarılması,\nveri değişimlerinin hızlıca yapılmasıdır. Bunu yaygınlaştıran ise Silverlight, Knockout.js gibi popüler yapılar\nolmuştur.",[643,27163,27164],{},[646,27165,27166],{},"JQUERY'DEN YAZIM FARKI",[643,27168,27169,27170,27173],{},"Kesinlikle en büyük farkları, az kod satırı ve yüksek performansa sahip olmasıdır. Buradaki sihir, Vue.js'nin ",[646,27171,27172],{},"declaretive"," bir yapıya sahip olmasıdır. Bu yapıyla bütün veri değişiklikleri otomatik olarak gerekli yerlere\nyansıtılıyor. Bizlerin bunun için hiç bir şey yapmamıza gerek kalmıyor.",[643,27175,27176],{},"Kod farkını anlamak için şu örneğe bakalım;",[643,27178,27179],{},"JQuery ile şöyle yaparken,",[1264,27181,27183],{"className":1266,"code":27182,"language":1268,"meta":346,"style":346},"6 \u003Cdiv id=\"app\">\n7     \u003Ch1>Merhaba Vue\u003C/h1>\n8     \u003Cinput id=\"message\">\n9 \u003C/div>\n11 \u003Cscript src=\"https://code.jquery.com/jquery-2.1.4.min.js\">\u003C/script>\n12 \u003Cscript type=\"text/javascript\">\n13     $('#message').on('keyup', function(){\n14         var message = $('#message').val();\n15         $('h1').text(message);\n16 })\n17 \u003C/script>\n",[799,27184,27185,27206,27226,27248,27259,27285,27306,27344,27379,27409,27419],{"__ignoreMap":346},[1272,27186,27187,27190,27192,27194,27196,27198,27200,27202,27204],{"class":1274,"line":1275},[1272,27188,27189],{"class":1384},"6 ",[1272,27191,1295],{"class":1278},[1272,27193,1437],{"class":1282},[1272,27195,9488],{"class":1286},[1272,27197,1324],{"class":1278},[1272,27199,1328],{"class":1327},[1272,27201,16377],{"class":1331},[1272,27203,1328],{"class":1327},[1272,27205,1290],{"class":1278},[1272,27207,27208,27211,27213,27215,27217,27220,27222,27224],{"class":1274,"line":347},[1272,27209,27210],{"class":1384},"7     ",[1272,27212,1295],{"class":1278},[1272,27214,639],{"class":1282},[1272,27216,1381],{"class":1278},[1272,27218,27219],{"class":1384},"Merhaba Vue",[1272,27221,1388],{"class":1278},[1272,27223,639],{"class":1282},[1272,27225,1290],{"class":1278},[1272,27227,27228,27231,27233,27235,27237,27239,27241,27244,27246],{"class":1274,"line":1302},[1272,27229,27230],{"class":1384},"8     ",[1272,27232,1295],{"class":1278},[1272,27234,9485],{"class":1282},[1272,27236,9488],{"class":1286},[1272,27238,1324],{"class":1278},[1272,27240,1328],{"class":1327},[1272,27242,27243],{"class":1331},"message",[1272,27245,1328],{"class":1327},[1272,27247,1290],{"class":1278},[1272,27249,27250,27253,27255,27257],{"class":1274,"line":1312},[1272,27251,27252],{"class":1384},"9 ",[1272,27254,1388],{"class":1278},[1272,27256,1437],{"class":1282},[1272,27258,1290],{"class":1278},[1272,27260,27261,27264,27266,27268,27270,27272,27274,27277,27279,27281,27283],{"class":1274,"line":1340},[1272,27262,27263],{"class":1384},"11 ",[1272,27265,1295],{"class":1278},[1272,27267,13973],{"class":1282},[1272,27269,5388],{"class":1286},[1272,27271,1324],{"class":1278},[1272,27273,1328],{"class":1327},[1272,27275,27276],{"class":1331},"https://code.jquery.com/jquery-2.1.4.min.js",[1272,27278,1328],{"class":1327},[1272,27280,1572],{"class":1278},[1272,27282,13973],{"class":1282},[1272,27284,1290],{"class":1278},[1272,27286,27287,27290,27292,27294,27296,27298,27300,27302,27304],{"class":1274,"line":1373},[1272,27288,27289],{"class":1384},"12 ",[1272,27291,1295],{"class":1278},[1272,27293,13973],{"class":1282},[1272,27295,1505],{"class":1286},[1272,27297,1324],{"class":1278},[1272,27299,1328],{"class":1327},[1272,27301,14027],{"class":1331},[1272,27303,1328],{"class":1327},[1272,27305,1290],{"class":1278},[1272,27307,27308,27311,27314,27316,27318,27321,27323,27325,27327,27329,27331,27333,27336,27338,27340,27342],{"class":1274,"line":1395},[1272,27309,27310],{"class":13650},"13",[1272,27312,27313],{"class":14037},"     $",[1272,27315,14049],{"class":1384},[1272,27317,19764],{"class":1327},[1272,27319,27320],{"class":1331},"#message",[1272,27322,19764],{"class":1327},[1272,27324,4213],{"class":1384},[1272,27326,9220],{"class":1278},[1272,27328,25224],{"class":14037},[1272,27330,14049],{"class":1384},[1272,27332,19764],{"class":1327},[1272,27334,27335],{"class":1331},"keyup",[1272,27337,19764],{"class":1327},[1272,27339,711],{"class":1278},[1272,27341,16456],{"class":14052},[1272,27343,19754],{"class":1278},[1272,27345,27346,27349,27352,27355,27357,27360,27362,27364,27366,27368,27370,27372,27375,27377],{"class":1274,"line":1401},[1272,27347,27348],{"class":13650},"14",[1272,27350,27351],{"class":14052},"         var",[1272,27353,27354],{"class":1384}," message",[1272,27356,16453],{"class":13810},[1272,27358,27359],{"class":14037}," $",[1272,27361,14049],{"class":14067},[1272,27363,19764],{"class":1327},[1272,27365,27320],{"class":1331},[1272,27367,19764],{"class":1327},[1272,27369,4213],{"class":14067},[1272,27371,9220],{"class":1278},[1272,27373,27374],{"class":14037},"val",[1272,27376,14084],{"class":14067},[1272,27378,13666],{"class":1278},[1272,27380,27381,27384,27387,27389,27391,27393,27395,27397,27399,27401,27403,27405,27407],{"class":1274,"line":1407},[1272,27382,27383],{"class":13650},"15",[1272,27385,27386],{"class":14037},"         $",[1272,27388,14049],{"class":14067},[1272,27390,19764],{"class":1327},[1272,27392,639],{"class":1331},[1272,27394,19764],{"class":1327},[1272,27396,4213],{"class":14067},[1272,27398,9220],{"class":1278},[1272,27400,2600],{"class":14037},[1272,27402,14049],{"class":14067},[1272,27404,27243],{"class":1384},[1272,27406,4213],{"class":14067},[1272,27408,13666],{"class":1278},[1272,27410,27411,27414,27417],{"class":1274,"line":1413},[1272,27412,27413],{"class":13650},"16",[1272,27415,27416],{"class":1278}," }",[1272,27418,21161],{"class":1384},[1272,27420,27421,27424,27427,27429],{"class":1274,"line":1422},[1272,27422,27423],{"class":13650},"17",[1272,27425,27426],{"class":1278}," \u003C/",[1272,27428,13973],{"class":1282},[1272,27430,1290],{"class":1278},[643,27432,27433],{},"Vue.js ile şöyle yaparız,",[1264,27435,27437],{"className":1266,"code":27436,"language":1268,"meta":346,"style":346},"\u003Cdiv id=\"app\">\n2     \u003Ch1>{{ message }}\u003C/h1>\n3     \u003Cinput v-model=\"message\">\n4 \u003C/div>\n1 new Vue({\n2     el: '#app',\n3     data: {\n4         message: ''\n5     }\n6 })\n",[799,27438,27439,27457,27477,27499,27510,27515,27520,27525,27530,27535],{"__ignoreMap":346},[1272,27440,27441,27443,27445,27447,27449,27451,27453,27455],{"class":1274,"line":1275},[1272,27442,1295],{"class":1278},[1272,27444,1437],{"class":1282},[1272,27446,9488],{"class":1286},[1272,27448,1324],{"class":1278},[1272,27450,1328],{"class":1327},[1272,27452,16377],{"class":1331},[1272,27454,1328],{"class":1327},[1272,27456,1290],{"class":1278},[1272,27458,27459,27462,27464,27466,27468,27471,27473,27475],{"class":1274,"line":347},[1272,27460,27461],{"class":1384},"2     ",[1272,27463,1295],{"class":1278},[1272,27465,639],{"class":1282},[1272,27467,1381],{"class":1278},[1272,27469,27470],{"class":1384},"{{ message }}",[1272,27472,1388],{"class":1278},[1272,27474,639],{"class":1282},[1272,27476,1290],{"class":1278},[1272,27478,27479,27482,27484,27486,27489,27491,27493,27495,27497],{"class":1274,"line":1302},[1272,27480,27481],{"class":1384},"3     ",[1272,27483,1295],{"class":1278},[1272,27485,9485],{"class":1282},[1272,27487,27488],{"class":1286}," v-model",[1272,27490,1324],{"class":1278},[1272,27492,1328],{"class":1327},[1272,27494,27243],{"class":1331},[1272,27496,1328],{"class":1327},[1272,27498,1290],{"class":1278},[1272,27500,27501,27504,27506,27508],{"class":1274,"line":1312},[1272,27502,27503],{"class":1384},"4 ",[1272,27505,1388],{"class":1278},[1272,27507,1437],{"class":1282},[1272,27509,1290],{"class":1278},[1272,27511,27512],{"class":1274,"line":1340},[1272,27513,27514],{"class":1384},"1 new Vue({\n",[1272,27516,27517],{"class":1274,"line":1373},[1272,27518,27519],{"class":1384},"2     el: '#app',\n",[1272,27521,27522],{"class":1274,"line":1395},[1272,27523,27524],{"class":1384},"3     data: {\n",[1272,27526,27527],{"class":1274,"line":1401},[1272,27528,27529],{"class":1384},"4         message: ''\n",[1272,27531,27532],{"class":1274,"line":1407},[1272,27533,27534],{"class":1384},"5     }\n",[1272,27536,27537],{"class":1274,"line":1413},[1272,27538,27539],{"class":1384},"6 })\n",[643,27541,27542,27543,27547],{},"Aradaki fark, Jquery'de, bir input'a id ver, onun keyup event'ini yakala, değerini al ve istediğin bir yere yaz\nşeklindeyken, Vue.js'de data objesine field'ı bağla, basılacak yerde ",[27544,27545],"binding",{"value":27546},"..."," şeklinde yaz.",[643,27549,27550],{},"Bu fark, özellikle büyük projelerde çok çok ciddi zaman ve kod uzunluğu oluşturuyor.",[643,27552,27553],{},"Sonuç olarak Vue.js çok iyi bir framework. Kullanmanızı kesinlikle tavsiye ediyorum.",[1978,27555,27556],{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":346,"searchDepth":347,"depth":347,"links":27558},[],"2018/01/what-is-vuejs-definition.png","2018-01-13T00:00:00.000Z",{},{"title":161,"description":861},"pRal08Vlzk_RkYOpYF1KWKEn_Ehw20vbumGM_UVlqaA",1762871731993]