﻿
{"id":6995,"date":"2018-03-07T21:32:51","date_gmt":"2018-03-07T21:32:51","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=6995"},"modified":"2018-03-07T22:22:16","modified_gmt":"2018-03-07T22:22:16","slug":"angularjs-nedir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/angularjs-nedir\/","title":{"rendered":"AngularJS Nedir?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>G\u00fcn\u00fcm\u00fczde web programlama s\u00fcreci; art\u0131k salt veritaban\u0131 i\u015flemleri ve sunucu tarafl\u0131 kodlamadan ziyade, kullan\u0131c\u0131 dostu ve etkile\u015fimli aray\u00fczler gerektiren ve t\u00fcm bunlar\u0131n yan\u0131nda sunucu taraf\u0131ndaki a\u011f\u0131rl\u0131\u011f\u0131 en asgari boyut olan bir boyut kazanm\u0131\u015f bulunmaktad\u0131r. Yani demek istedi\u011fim o ki, orta d\u00fczeyli bir web projesinde client tabanl\u0131 yap\u0131lan i\u015flemler sunucu tarafl\u0131 yap\u0131lan ve sadece programatik u\u011fra\u015f gerektiren i\u015flerden kat be kat daha fazla zaman ve maliyet gerektirmektedirler. Haliyle d\u00fcnya bu de\u011fi\u015fime h\u0131zl\u0131 \u00e7\u00f6z\u00fcm aray\u0131\u015flar\u0131na girmekte ve mevcut JavaScript yap\u0131s\u0131n\u0131n yetersizlik ve hantall\u0131\u011f\u0131 kar\u015f\u0131s\u0131nda daha sa\u011flam, h\u0131zl\u0131 ve etkili framework yap\u0131lar\u0131n\u0131 in\u015fa etmeye y\u00f6nelmektedir. Bu frameworklerden biriside AngularJS&#8217;dir. Bu i\u00e7eri\u011fimizde AngularJS&#8217;nin ne oldu\u011funa de\u011finece\u011fiz ve bir vade bu framework \u00fczerinde seri tad\u0131nda makaleler ele alaca\u011f\u0131z. S\u00fcre\u00e7te AngularJS&#8217;nin di\u011fer versiyonlar\u0131 olan Angular2, Angular4 vs. versiyonlar\u0131n\u0131da ele alacak ve bu konuda ak\u0131llarda soru i\u015faretine yer b\u0131rakmamaya \u00e7al\u0131\u015faca\u011f\u0131z. O halde haydi buyrun ba\u015flayal\u0131m.<\/p>\n<h3>AngularJS Nedir?<\/h3>\n<p>Google taraf\u0131ndan JavaScript kullan\u0131larak geli\u015ftirilmi\u015f bir frameworkt\u00fcr. MVW altyap\u0131s\u0131nda tasarlanm\u0131\u015f bir mimari.<\/p>\n<h3>Peki MVW(Model-View-Whatever) Nedir?<\/h3>\n<p><em>MVVM(Model-View-ViewModel)de mi \u00e7al\u0131\u015f\u0131yoruz? yoksa MVP(Model-View-Presenter)de mi? \u00e7al\u0131\u015f\u0131yoruz? ya da hi\u00e7biri de\u011fil de MVC(Model-View-Controller)de mi?<\/em> sorular\u0131n\u0131 sormay\u0131n diye olu\u015fturulmu\u015f ve bir modeliniz olsun, birde sonu\u00e7lar\u0131 g\u00f6sterece\u011finiz viewiniz olsun yeter gerisi her ne olursa olsun diyen bir yakla\u015f\u0131m.<\/p>\n<h3>AngularJS&#8217;nin Avantajlar\u0131 Nelerdir?<\/h3>\n<ul>\n<li><strong>Dependency Injection(Ba\u011f\u0131ml\u0131l\u0131k Enjeksiyonu)<\/strong><br \/>\nAsl\u0131nda bir tasar\u0131m deseni olan ve hatta <a href=\"http:\/\/www.gencayyildiz.com\/blog\/bagimliligin-ters-cevrilmesi-prensibidependency-inversion-principle-dip\/\" target=\"_blank\" rel=\"noopener\">Dependency Inversion<\/a> ile prensip haline(SOL\u0130<strong>D<\/strong>) gelen Depedency Injection, programatik olarak ba\u011f\u0131ml\u0131l\u0131klar\u0131 minimize etmeyi ve y\u00f6netmeyi hedeflemektedir.AngularJS, ba\u011f\u0131ml\u0131l\u0131k enjeksiyonunu f\u0131trat\u0131nda bar\u0131nd\u0131rmakta ve rahat\u00e7a bu i\u015flemi ger\u00e7ekle\u015ftirmektedir.<\/li>\n<li><strong>Two Way Data Binding(\u0130ki Y\u00f6nl\u00fc Veri Ba\u011flama)<\/strong><br \/>\nAngularJS&#8217;in en g\u00fc\u00e7l\u00fc ve etkili \u00f6zelliklerinden birisidir diyebiliriz. Model ve View aras\u0131nda e\u015fzamanl\u0131 bir etkile\u015fim kurar. Modelde bir de\u011fi\u015fiklik oldu\u011fu an bunu Viewdeki ilgili alana yans\u0131t\u0131r. Ayn\u0131 \u015fekilde tam tersi ge\u00e7erli oldu\u011funda yani viewde olu\u015fan bir de\u011fi\u015fiklik an\u0131nda model \u00fczerinde de kendini g\u00f6sterecektir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/03\/Two-Way-Data-Binding\u0130ki-Y\u00f6nl\u00fc-Veri-Ba\u011flama.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7001 size-medium\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/03\/Two-Way-Data-Binding\u0130ki-Y\u00f6nl\u00fc-Veri-Ba\u011flama-300x128.png\" alt=\"Two Way Data Binding(\u0130ki Y\u00f6nl\u00fc Veri Ba\u011flama)\" width=\"300\" height=\"128\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/03\/Two-Way-Data-Binding\u0130ki-Y\u00f6nl\u00fc-Veri-Ba\u011flama-300x128.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/03\/Two-Way-Data-Binding\u0130ki-Y\u00f6nl\u00fc-Veri-Ba\u011flama.png 550w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/li>\n<li>\n<strong>Test Edilebilirlik<\/strong><br \/>\nAngularJS uygulamalara kolayca test yazmam\u0131z\u0131 sa\u011flamaktad\u0131r.\n<\/li>\n<li>\n<strong>MVC, MVVM ya da MVP<\/strong><br \/>\n\u0130\u00e7eri\u011fimizin ba\u015f\u0131nda belirtti\u011fim gibi AngularJS MVW yakla\u015f\u0131m\u0131n\u0131 sergilemektedir. Burada W(Whatever) her hangi bir \u015fey(C-Controller, VM-ViewModel ya da P-Presenter) olabilir.\n<\/li>\n<\/ul>\n<h3>AngularJS&#8217;yi Kullanabilmek \u0130\u00e7in Ne Yapmak Gerekiyor?<\/h3>\n<p>Tabi ki de framework\u00fc elde edip projeye entegre etmeniz gerekmektedir. Bunun i\u00e7in <a href=\"https:\/\/angularjs.org\/\" rel=\"noopener\" target=\"_blank\">https:\/\/angularjs.org\/<\/a> adresinden ilgili framework\u00fc elde edip kullanabilirsiniz.<\/p>\n<p>\u0130\u015fte g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi AngularJS teoride bu \u00e7er\u00e7evede de\u011ferlendirilebilir bir k\u00fct\u00fcphanedir.<\/p>\n<p>Bir sonraki makalemizde AngularJS&#8217;nin temel teknik boyutunu ele alaca\u011f\u0131z.<\/p>\n<p>O halde sonraki yaz\u0131m\u0131zda g\u00f6r\u00fc\u015fmek \u00fczere diyorum ve iyi \u00e7al\u0131\u015fmalar diliyorum&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, G\u00fcn\u00fcm\u00fczde web programlama s\u00fcreci; art\u0131k salt veritaban\u0131 i\u015flemleri ve sunucu tarafl\u0131 kodlamadan ziyade, kullan\u0131c\u0131 dostu ve etkile\u015fimli aray\u00fczler gerektiren ve t\u00fcm bunlar\u0131n yan\u0131nda sunucu taraf\u0131ndaki a\u011f\u0131rl\u0131\u011f\u0131 en asgari boyut olan bir boyut kazanm\u0131\u015f&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":7002,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2022],"tags":[2024,2023,951,946,945,2033,284,2028,2026,802,2030,283,2025,801,2029,2027,2032,120,807,2031],"class_list":["post-6995","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angularjs","tag-angularjs","tag-angularjs-nedir","tag-bagimlilik-enjeksiyonu","tag-dependency-injection","tag-dependency-inversion","tag-iki-yonlu-veri-baglama","tag-model","tag-model-view-controller","tag-model-view-presenter","tag-model-view-viewmodel","tag-model-view-whatever","tag-mvc","tag-mvp","tag-mvvm","tag-mvw","tag-presenter","tag-two-way-data-binding","tag-view","tag-viewmodel","tag-whatever"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/6995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=6995"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/6995\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/7002"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=6995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=6995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=6995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}