﻿
{"id":927,"date":"2012-11-18T09:17:42","date_gmt":"2012-11-18T09:17:42","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=927"},"modified":"2012-11-18T09:17:42","modified_gmt":"2012-11-18T09:17:42","slug":"asp-net-mvc-mimarisinin-avantajlari-ve-ozellikleri","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-mvc-mimarisinin-avantajlari-ve-ozellikleri\/","title":{"rendered":"Asp.NET MVC Mimarisinin Avantajlar\u0131 ve \u00d6zellikleri"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>G\u00fcnler ge\u00e7tik\u00e7e teknolojik a\u00e7\u0131dan Asp.NET&#8217;ten ziyade, Asp.NET MVC mimarisine daha \u00e7ok talep yo\u011funla\u015fmakta ve bu yo\u011funla\u015fma neticesinde i\u015f hayat\u0131ndaki tercihlerin MVC teknolojisinin yeteneklerine daha yatk\u0131n olmas\u0131ndan dolay\u0131 art\u0131k Asp.NET MVC mimarisinin kap\u0131s\u0131n\u0131 bizde \u00e7almaya ba\u015flayal\u0131m.<\/p>\n<p><center><strong>MVC(Model View Controller)<\/strong><\/center>MVC, Model View Controller katmanlar\u0131n\u0131n ba\u015f harflerinden olu\u015fmaktad\u0131r.Buradan anla\u015f\u0131lmaktad\u0131r ki, MVC katmanl\u0131 bir mimaridir.Bu katmanlar\u0131 incelersek e\u011fer,<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/11\/Ekran-Al\u0131nt\u0131s\u0131.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-928\" title=\"Ekran Al\u0131nt\u0131s\u0131\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/11\/Ekran-Al\u0131nt\u0131s\u0131.png\" alt=\"\" width=\"567\" height=\"494\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/11\/Ekran-Al\u0131nt\u0131s\u0131.png 567w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/11\/Ekran-Al\u0131nt\u0131s\u0131-300x261.png 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/a><\/p>\n<p><center><span style=\"color: #0000ff;\"><strong>Model<\/strong><\/span><\/center><br \/>\nElimizdeki verilerin neler oldu\u011funu, nas\u0131l i\u015flenece\u011fi ve nas\u0131l de\u011fi\u015ftirilece\u011fi hakk\u0131nda bize kurallar koyan bir s\u0131n\u0131f k\u00fcmesidir.Database i\u00e7indeki verileri encapsulate eder.<br \/>\nMesela, database imizi olu\u015fturduk.Database \u015femalar\u0131 olan Entity Framework, LINQ To SQL vs. olsun database \u015femalar\u0131n\u0131 olu\u015fturan bu s\u0131n\u0131flar\u0131 bu katmanda tutuyoruz.Uzun laf\u0131n k\u0131sas\u0131, Database ile birebir ileti\u015fime ge\u00e7en katman bu katmand\u0131r.<\/p>\n<p><center><span style=\"color: #0000ff;\"><strong>View<\/strong><\/span><\/center><br \/>\nUygulaman\u0131n kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc g\u00f6sterir.<\/p>\n<p><center><span style=\"color: #0000ff;\"><strong>Controller<\/strong><\/span><\/center><br \/>\nKullan\u0131c\u0131 ile ileti\u015fime ge\u00e7ilen, elimizdeki uygulaman\u0131n ak\u0131\u015f\u0131n\u0131n ve mant\u0131\u011f\u0131n\u0131n belirlendi\u011fi bir s\u0131n\u0131f k\u00fcmesidir.Ayr\u0131ca View ile Model aras\u0131ndaki ileti\u015fimi sa\u011flar.<br \/>\nView sadece bilgileri g\u00f6r\u00fcnt\u00fclerken, kullan\u0131c\u0131 giri\u015f ve etkile\u015fimlerini Controller y\u00f6netir.Her View i\u00e7in gerekli kontroller bu katmanda yap\u0131l\u0131r.Kullan\u0131c\u0131dan gelecek istekler ve kullan\u0131c\u0131ya d\u00f6nd\u00fcr\u00fclecek olan verilen istenmesi bu katmanda ger\u00e7ekle\u015ftirilir.Controller,Model ve View katmanlar\u0131 aras\u0131ndaki merkezi bir katmand\u0131r.<\/p>\n<p><center><strong>Asp.NET VS Asp.NET MVC<\/strong><\/center><\/p>\n<ul>\n<li><span style=\"line-height: 13px;\">Asp.NET&#8217;te durum y\u00f6netimi vard\u0131r.\u00d6rne\u011fin, herhangi bir TextBox nesnesine yaz\u0131lan bir de\u011fer, Button nesnesi sayesinde servera g\u00f6nderildi\u011finde, bir hata olsun ya da olmas\u0131n, serverdan verilerimiz geri geldi\u011finde bu TextBox nesnesinde o de\u011feri tekrardan g\u00f6rece\u011fiz.Bunu sa\u011flayan ViewState yap\u0131s\u0131d\u0131r.Gelen ekran\u0131n kaynak koduna bakarsak e\u011fer, tipi hidden olan bir input nesnesinin valuesinin baya\u011f\u0131 kabar\u0131k oldu\u011funu g\u00f6r\u00fcr\u00fcz.Ancak ViewState durumu sayfam\u0131z\u0131n ge\u00e7 y\u00fcklenmesine sebep olmaktad\u0131r.Baz\u0131 sitelerde 100 kb&#8217;ta kadar bu verilerin sakland\u0131\u011f\u0131 g\u00f6r\u00fclm\u00fc\u015ft\u00fcr.\n<p>Ancak Asp.NET MVC teknolojisinde ViewState mevzusu yoktur.<\/p>\n<p>O halde Asp.NET MVC yi kullan\u0131rken sayfadaki kontrollerin durumunu haf\u0131zada nas\u0131l tutaca\u011f\u0131z? diyorsan\u0131z e\u011fer, bu i\u015flemi MVC&#8217;de yapan bir mekanizma mevcuttur.Bu mekanizma ne kullan\u0131c\u0131ya, ne de servera y\u00fck getirmektedir.<\/span><\/li>\n<li><span style=\"line-height: 13px;\">Asp.NET yap\u0131s\u0131nda Event mant\u0131\u011f\u0131 varken, MVC yap\u0131s\u0131nda yoktur.<\/span><\/li>\n<li><span style=\"line-height: 13px;\">Asp.Net Teknolojisinde, HTML b\u00f6l\u00fcm\u00fcne tam olarak kontrol yap\u0131lamamaktad\u0131r.ToolBox penceresinden eklenen nesneler server taraf\u0131ndan derlendikten sonra HTML kodlar\u0131na \u00e7evriliyorlard\u0131.MVC yap\u0131s\u0131 HTML yap\u0131s\u0131na %100 kontrol sa\u011flar.<\/span><\/li>\n<li><span style=\"line-height: 13px;\">Asp.NET&#8217;te SEO tabanl\u0131 uygulamalar yapmam\u0131z i\u00e7in i\u015flemler yapmam\u0131z gerekirken, MVC&#8217;de haz\u0131r olarak gelmektedir.<\/span><\/li>\n<\/ul>\n<div><span style=\"line-height: 13px;\">Asp.NET MVC Framework yap\u0131s\u0131na azda olsa giri\u015f yapm\u0131\u015f bulunmaktay\u0131z.\u0130lerideki yaz\u0131lar\u0131mda MVC yap\u0131s\u0131n\u0131 daha detayl\u0131 irdeleyece\u011fiz.<\/span><\/div>\n<div><span style=\"line-height: 13px;\">\u015eimdilik g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/span><\/div>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>G\u00fcnler ge\u00e7tik\u00e7e teknolojik a\u00e7\u0131dan Asp.NET&#8217;ten ziyade, Asp.NET MVC mimarisine daha \u00e7ok talep yo\u011funla\u015fmakta ve bu yo\u011funla\u015fma neticesinde i\u015f hayat\u0131ndaki tercihlerin MVC teknolojisinin yeteneklerine daha yatk\u0131n olmas\u0131ndan dolay\u0131 art\u0131k Asp.NET MVC mimarisinin kap\u0131s\u0131n\u0131 bizde \u00e7almaya&#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":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[285,284,283,120],"class_list":["post-927","post","type-post","status-publish","format-standard","hentry","category-asp-net-mvc","tag-controller","tag-model","tag-mvc","tag-view"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/927","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=927"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/927\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}