Asp.Net ten Mvc ye Geçiş
19
●4.806
- 29-05-2014, 23:02:13Üyeliği durduruldu
- 30-05-2014, 00:07:48Kimlik doğrulama veya yönetimden onay bekliyor.Sakın önceki versiyonlarla başlama, arada uçurum farklar var çünkü. Şu an Mvc 5 son sürüm. Direk onunla başla.
Msdn'den öğrenebilirsin ama klasik üstün körü anlatıyor. Eğer imkanın varsa Pluralsight hesabı alıp MVC 5 ve Entity Framework 6 ile yola devam et.
Özellikle EF kısmında http://pluralsight.com/training/Auth...s/julie-lerman şu kadın sağlam anlatıyor. Tabi herşeyi en ince ayrıntısına kadar anlatmıyorlar ama en ince ayrıntılarıda öğrenmek istiyorsan http://www.ebook3000.com/Programming...on_212916.html buradan devam et. - 30-05-2014, 08:53:22üstadım teşekkür ederim. dediğin doğru ama başlamışken en son versiyonundan başlasak ne kadar güzel olur. Fakan şurasını nasıl halledicem. web formda herşey konponet ve postback ile oluyor. mvc tamamen başka birşekilde. şimdi ben en azından o temel mvc bilgilerini bilmeliyim. Ben hala visual sutudio 2008 de file new projet deyip bir çalışma oluşturup içine sayfa ekleyip sonra grid ekleyip sayfa loadında if(!page.isPostback) deyip butona basınca gride veriyi bind ediyorum.
mvc de hiç böyle değil, bir iki videoya filan baktım aspdeki mantığa benziyor ama çok farklı bir şey, Razor diyor vs. eskisi gibi değilki dosyadan new dedinmi 80 tane seçenek geliyor suyunu çıkardılar iyice.
uzun oldu ama daha emeklemeyi bilmeden koşmaya çalışmak gibi olmazmı. yani en azından temel şeyleri anlayabileceğim türkçe kaynak olması lazım. yanlız yanlış öğretmeyecek türkçe kaynak
edit:
Not: Bu arada aklınıza yanlış bir şey gelmesin. Asp.Net te nacizane her işimi yapabiliyorum. Millet mvc bilmezken ben web formda katmanlı mimari de ayrı katmanla çalışıyordum ki halada çalışıyorum. Birçok büyük proje tamamladım. Yani acemi yada orta düzey bir web formcu değilim. Web form da bu olmuyor diye birşey yok fakat takla atmaktan sıkıldım, bazı şeyler için hakikaten akla gelmedik şeyler deneyerek çözüm buluyoruz. Gereksiz yere uğraşı veriyoruz. Ama mvc tamamen farklı bir teknoloji.. - 30-05-2014, 10:41:36Mvc 5 zaten sıfırdan öğretiyor. Birbirinin devamı gibi düşünme. Sadece yeni özellikler ekleniyor o kadar. İlk başta gözün korkabilir, ama bu gayet normal, herkese olan birşey. İnan birazcık öğrenince neden daha önce öğrenmemişim diyeceksin. Ben şuan kendime çok kızıyorum neden daha önce öğrenmedim diye.
Karşılaştırma yapmak çokta doğru değil elbette çünkü webforms'a karşı yapılmış bir atak değil, tam tersi alternatif olarak sunulan bir teknoloji. Ama sana sunduğu yapı daha düzenli ve daha sağlam, sayfalar üzerindeki hakimiyet daha fazla, daha performanslı, url yapısı daha düzenli ve kolay, en önemlisi ise 100% javascript hakimiyetin var.
Postback en baştan beri saçma sapan bir olaydı, geçte olsa anladılar hatalarını ve mvc ile yırttılar postback olayından. Onclick olayların mvc'de tamamen action'lara denk geliyor.
-- webforms protected void btnSubmit_Click(object sender, EventArgs e) { // kodların } -- mvc (normal) public ActionResult Index() { // kodların return View(); } -- mvc (asenkron) public async Task<ActionResult> Index() { // kodların return View(); }Mvc'de 2 türlü kod yazabilirsin. Birisi razor diğeri aspx. İkiside view üzerinde yazılıyor, en basitinden @ ile başlayıp kod yazıyorsan razor, <% %> arasında kod yazıyorsan aspx. Eğer asp biliyorsan zorlanmazsın, gerçi bilmene de çok gerek yok, 2-3 denemeden sonra alışıyorsun.
Bunları da karşılaştırmak çok doğru değil bana göre çünkü 2side farklı view engine. Ama çoğu kişi buna bende dahil razor tercih ediyor, çünkü html tarafında hakimiyeti çok daha fazla.
Şuradan 2 tarafında yaptığı şeyleri görebilirsin. http://www.c-sharpcorner.com/UploadF...r-view-engine/
İşin özü öğrendikçe zevk alacağın bir teknoloji. Adamlar ciddi çaba harcamışlar ve sonuna kadar hakediyorlar. İnce ayrıntılara kadar düşünmüşler.
Eğer singlepage app yazıcaksan webform ile devam edebilirsin.
Ama tek sayfada birden fazla bağımsız şey göstermek istiyorsan (_partial) kesinlikle Mvc kullan. Yeni şeyler öğrenmek her zaman iyidir, aradaki farkları görürsün, neyin gerekli neyin gereksiz olduğunu görürsün. En önemlisi kendini geliştirirsin. Bu nedenle öğrenmekten çekinme. - 30-05-2014, 14:04:08teşekkür ederim hocam baya emek ve zaman ayırmışsın. kesinlikle artık sonraya bırakmak yok mvc ye geçicem. razor mu aspx mi bunu ikisinide ufaktan bakarım. duruma göre birini seçerim. ama her halükarda ikisininde giriş seviyesini kafadan bir öğrenicem.
tekrar teşekkürler. - 30-05-2014, 15:23:24ASP.NET Web Forms her zaman MVC den üstün! Ama MVC yi tercih ediyorum. Daha hızlı ve daha rahat kodlama sağlıyor.
Kısaltmalar:
ASP.NET Web Forms: WF
ASP.NET MVC: MVC
WF İyi Nedenleri:
+ Tamamen OOP tasarım,
+ Gelişmiş ve fazla kütüphane sayısı,
+ Kütüphaneye ve İşletim sistemine maksimum erişim,
+ Gelişmiş Event mimarisi,
+ Çok fazla dökümantasyon ve kaynak.
+ Kısaca istek ile cevap arasında html olsun, diğer işler olsun en alt seviyeye kadar müdehale şansı.
WF Kötü Nedenleri:
- Birden fazla kişi tek projede çalışırken tasarım ve kodlama sapıtıyor ve zorlanılıyor.
- Eğer Viewstate yapısını abartırsanız html tarafında çok fazla kod oluşuyor.
- Controller ve Page yapısını çok iyi bilmeli ve olay sürüşünü(event driven) iyi bilmiyorsanız sunucu çok fazla kaynak tüketmeye başlıyor.
- Sürükle bırak kodlama bazen çok fazla kod üretip visual studio da adamı felce sürüklüyor.
- URL Routing .net 3.5.1 den önce iğrençti. Şimdi System.Web.Routing namespace i ile MVC deki gibi routing yapılabiliyor ama türkçe kaynaklarda çoğu gerzek!(alınan alınsın) birbirinden kopya yapıştır mantığıyla iğrenç bir routing yaptırıyorlar bu yüzden sistem zorlanıyor.
- İyi bir proje ortaya çıkartmak için çok iyi bir oop bilgisi gerekli!
Edit(Ekleme):
- View tarafında html ile iç içe server side kod yazmak gıcık ediyor ve okunması zorlaşıyor
-----------------------------------------------------------------------
MVC İyi Nedenleri:
+ Basit bir yapı ile Model View Controller mekanızması tam oturmuş.
+ Birden fazla view engine(görüntüleme motoru) kullanılıyor. En rahatı Razor. @ işaretini koy ve view içinde istediğin programlama dili ile kod yaz! Bağımsızsın.
+ Proje büyükse, ekip ile çok rahat çalışıyorsun.
+ Viewstate gibi saçma yada bir view içinde bir tek form gibi kısıtlama yok. Gereksiz kod yok. Sen ne yazmışsan o vardır.
+ Html extension (@Html dediğiniz anda hazır eklenmiş yapılar) ile uzun uzun form kontrolü olsun vs olsun uğraşmadan kodlama yapılabiliyor.
+ Veritabanı ve model çalışmaları çok rahat. Control içinde action'a istediğin veriyi çek ve return kısmında modeli gönder. View tarafında modeli istediğin gibi oyna.
+ Hızlı, çok hızlı.
+ Güvenlik yapısı(Asp.NET Membership) aynen WF dan geliyor. Bunu daha da genişletip istediğin gibi bir yapı oluşturabiliyorsun.
+ Roting çok rahat. Özellikle 5. versiyon çocuk oyuncağına çevrilmiş.
+ Kodlama süren eğer html bilgin iyiyse çok hızlanıyor.
+ View tarafında layout yapısını iyi oturtursan partialview olsun, sectionlar olsun çok rahat yaparsın istediğini.
+ POST, GET, HEAP vs işlemleri bir attiribute'a bakıyor.
MVC Kötü Nedenleri:
- Hazır kütüphaneler hala çok yaygın değil,
- HTML bilgin kötüyse proje geliştirme çok uzayacaktır.
- OOP yapısı çok gerekli değil ama ortanın üstünde bilmiyorsan performans bir anda yerlere düşecektir ve algoritman yüzünden tekrar tekrar hata alacaksın.
- Güvenlik açıklarına maruz kalmak çok basit. En azından querystring yada sql injection konusunda bilgili olmalısın.
- Visual Studio da sürükle bırak yada design ekranı yok. Salt kod yazmak zorundasın.
- database olarak entity framework kullanırsan linq işlemlerinde eğer doğru algoritma kurmazsan veritabanı performansı ve model tasarımı işkenceye dönecektir.
- WF daki OOP yapısı olmadığı için bir kontroller'ı çalışma anında html içindeki bir bölüme yerleştirmek(WF kullananlar bilir, bir html nesneyi runat ile server nesnesine çevirip LoadControl ile istediğiniz gibi çalışma anında müdahele edip işlem yapabiliyorsunuz)
- Bir işlemi hem görüntülemek hem düzenlemek(get - post) için iki action belirmek yada düzgün bir algoritma kurmak zorundasın. Spagetti koda müsait yani.
Ben tercihimi mvc tarafına çektim. Bir süre sonra html ile konuşuyor gibi oluyorsun. HTML bilgin çok yükseliyor. Olması gereken de bu diyorsun. Ama yinede 6 yıllık WF'u özlemiyor değilim.
Bir tane default.aspx im olurdu. Alt sayfalarım hep usercontrol olurdu(kendi mvc mi yapmıştım açıkçası) ve tema desteğim olurdu projelerimde. Bu sayede çok hızlı bir şekilde proje geliştirirdim. Performans konusunda WF bana çok şey kazandırdı. Onun sayesinde bir çok bilgi öğrendim açıkçası.
Tercih yapmak istiyorsan MVC den başla yada tamamen mvc e geç.
http://asp.net/mvc altında bir çok makale var. Ama ingilizce şart. Türkçe kitap olarak okumadım ama Kodlab yayınlarının kitaplarını incele derim.
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:21:06 -->-> Daha önceki mesaj 15:16:37 --
Razorda(.cshtml)betmo adlı üyeden alıntı: mesajı görüntüle
<ul>
@foreach(tablo_Firma firma as Model.Firmalar)
{
<li data-id="@firma.Id">@firma.Adi</li>
}
</ul>
aspx de:
<ul>
<%
foreach(tablo_Firma firma as Model.Firmalar)
{
%>
<li data-id="<%=firma.Id%>"><%=firma.Adi%></li>
<%
}
%>
bir tane @ ile çok rahat kodlama. Hızı mükemmel.
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:23:24 -->-> Daha önceki mesaj 15:21:06 --
Bu arada kullanacaksan: Visual Studio 2013 kullan. Ve Update 2 yi yükle.
Çok hızlı ve rahat bir şekilde proje geliştirir ve öğrenme hızını arttırırsın.
