[{"data":1,"prerenderedAt":961},["ShallowReactive",2],{"navigation":3,"categories":339,"/dersler/yazilim-mimarisi/kurumsal-web-uygulamalari-gelistirme":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",{"id":578,"title":170,"body":579,"coverImage":956,"createDate":957,"description":591,"extension":350,"meta":958,"navigation":352,"path":171,"seo":959,"stem":172,"__hash__":960},"posts/dersler/yazilim-mimarisi/kurumsal-web-uygulamalari-gelistirme.md",{"type":343,"value":580,"toc":954},[581,585,592,599,602,605,612,617,622,625,630,633,638,651,656,676,682,687,691,694,698,701,705,713,717,737,743,748,752,755,759,762,766,771,777,782,786,789,793,801,805,812,818,823,827,830,834,837,841,845,851,856,860,863,867,872,878,883,887,890,894,897,900,905,908,913,916,921,924,928,945,948,951],[582,583,170],"h1",{"id":584},"kurumsal-web-uygulamaları-geliştirme",[586,587,588],"p",{},[589,590,591],"strong",{},"Merhaba Arkadaşlar,",[586,593,594,595,598],{},"Sizlerle daha önce ",[589,596,597],{},"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.",[586,600,601],{},"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.",[586,603,604],{},"İ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.",[586,606,607],{},[608,609],"img",{"alt":610,"src":611},"Katmanlı mimari","/images/2014/04/katmanli-mimari.gif",[586,613,614],{},[589,615,616],{},"GENEL MİMARİ",[586,618,619],{},[589,620,621],{},"Sorun",[586,623,624],{},"Ö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.",[586,626,627],{},[589,628,629],{},"Çözüm",[586,631,632],{},"İş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).",[586,634,635],{},[589,636,637],{},"Geliştiricinin Sahip Olması Gereken Bilgiler",[639,640,641,645],"ul",{},[642,643,644],"li",{},"Nesne yönelimli programlama (object oriented programming),",[642,646,647,650],{},[589,648,649],{},"(tercihe bağlı)"," Bağımlılıkların dışarıdan enjekte edilmesi - tasarım deseni (dependency injection pattern)",[586,652,653],{},[589,654,655],{},"​Kullanılabilecek Kütüphaneler",[639,657,658,661,664,667,670,673],{},[642,659,660],{},"Autofac (.Net),",[642,662,663],{},"Ninject (.Net),",[642,665,666],{},"Google Guice (Java),",[642,668,669],{},"Pico Container (Java),",[642,671,672],{},"PHP-DI (PHP),",[642,674,675],{},"Pimple (PHP)",[586,677,678],{},[608,679],{"alt":680,"src":681},"Veritabanı","/images/2014/04/veritabani-simge-150x150.png",[586,683,684],{},[589,685,686],{},"VERİTABANI",[586,688,689],{},[589,690,621],{},[586,692,693],{},"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.",[586,695,696],{},[589,697,629],{},[586,699,700],{},"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.",[586,702,703],{},[589,704,637],{},[639,706,707,710],{},[642,708,709],{},"Nesne yönelimli programlama(object oriented programming),",[642,711,712],{},"Temel veritabanı mantığı hakkında bilgi",[586,714,715],{},[589,716,655],{},[639,718,719,722,725,728,731,734],{},[642,720,721],{},"Entity Framework (.Net),",[642,723,724],{},"NHibernate (.Net),",[642,726,727],{},"Hibernate (Java),",[642,729,730],{},"SimpleORM (Java),",[642,732,733],{},"Propel (PHP),",[642,735,736],{},"php-activerecord(PHP)",[586,738,739],{},[608,740],{"alt":741,"src":742},"Model","/images/2014/04/c-model-300x190.jpg",[586,744,745],{},[589,746,747],{},"MODELLER",[586,749,750],{},[589,751,621],{},[586,753,754],{},"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.",[586,756,757],{},[589,758,629],{},[586,760,761],{},"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.",[586,763,764],{},[589,765,637],{},[639,767,768],{},[642,769,770],{},"Nesne yönelimli programlama(object oriented programming)",[586,772,773],{},[608,774],{"alt":775,"src":776},"Servis","/images/2014/04/servis-300x175.png",[586,778,779],{},[589,780,781],{},"SERVİSLER",[586,783,784],{},[589,785,621],{},[586,787,788],{},"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.",[586,790,791],{},[589,792,629],{},[586,794,795,796,800],{},"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",[797,798,799],"code",{},"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.",[586,802,803],{},[589,804,637],{},[639,806,807,809],{},[642,808,709],{},[642,810,811],{},"Servisleri Dependency Injection ile Controller'e enjekte etmek istersek, Dependency Injection",[586,813,814],{},[608,815],{"alt":816,"src":817},"Metod","/images/2014/04/metod-300x127.gif",[586,819,820],{},[589,821,822],{},"FONKSİYONLAR, METODLAR",[586,824,825],{},[589,826,621],{},[586,828,829],{},"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.",[586,831,832],{},[589,833,629],{},[586,835,836],{},"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.",[586,838,839],{},[589,840,637],{},[639,842,843],{},[642,844,770],{},[586,846,847],{},[608,848],{"alt":849,"src":850},"Kontrolcü","/images/2014/04/kontrolcu-300x240.png",[586,852,853],{},[589,854,855],{},"İŞ KATMANLARI, KONTROLCÜLER",[586,857,858],{},[589,859,629],{},[586,861,862],{},"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.",[586,864,865],{},[589,866,637],{},[639,868,869],{},[642,870,871],{},"Kullandığı platformun, iş katmanı hakkında yeterli bilgi. (Örneğin Asp.Net Mvc'de Controller katmanı bilgisi.)",[586,873,874],{},[608,875],{"alt":876,"src":877},"Html","/images/2014/04/html-300x152.jpg",[586,879,880],{},[589,881,882],{},"ÖN YÜZLER, GÖRÜNÜMLER",[586,884,885],{},[589,886,621],{},[586,888,889],{},"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.",[586,891,892],{},[589,893,629],{},[586,895,896],{},"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.",[586,898,899],{},"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ı.",[586,901,902],{},[589,903,904],{},"Jquery",[586,906,907],{},"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.",[586,909,910],{},[589,911,912],{},"Knockout, Backbone",[586,914,915],{},"Ö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.",[586,917,918],{},[589,919,920],{},"Bootstrap",[586,922,923],{},"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.",[586,925,926],{},[589,927,637],{},[639,929,930,933,936,939,942],{},[642,931,932],{},"Html, JavaScript, Css bilgisi,",[642,934,935],{},"Ajax bilgisi,",[642,937,938],{},"Knockout, Backbone vs. bilgisi,",[642,940,941],{},"Responsive tasarım bilgisi,",[642,943,944],{},"BootStrap bilgisi",[586,946,947],{},"Evet, profesyonel uygulamaları nasıl inşa etmeliyiz? Bu konulara değinmeye çalıştık. Umarım yazı faydalı olur.",[586,949,950],{},".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.",[586,952,953],{},"Hepinize kolaylıklar diliyorum.",{"title":346,"searchDepth":347,"depth":347,"links":955},[],"2014/04/kurumsal-01.jpg","2014-04-25T00:00:00.000Z",{},{"title":170,"description":591},"i_lnvJov8FoN92iJj1xcE0NLboeut50Qedro_P5DNBI",1762871734439]