Bilmek istediğin her şeye ulaş

Asp.NET mi yoksa MVC mi? Hangisinden başlamak daha doğru olur?

Arkadaşlar ben öncelikle asp.net öğrenip daha sonra mvc geçmeyi düşünüyorum bu konudaki düşünceleriniz nelerdir? Amaç ne diye sorarsanız .net kütüphanesinde ilerlemekDüzenle
Asp.Net, HTTP mevzularını geliştiriciden büyük oranda gizleyerek kodlama alt yapısı sağlamaktadır. Yani bir web uygulamasında tarayıcı ile sunucu arasında HTTP aksiyonları meydana gelirken Asp.Net bunu kitaplığında bulunan kontroller ile gizleyerek geliştiriciyi sanki bir windows form uygulaması geliştiriyormuş hissinde programlama imkanı sağlamaktadır. Bkz: Event'ler. Bunun iyi ya da kötü olduğu tartışılır, durumu anlamak için Asp.Net'in getirdiği avantaj ve dezavantajları araştırabilirsiniz (viewstate, page life cycle vb konular)

Eğer daha önceden web programlama konusuna aşina değilseniz ve temelde bir web uygulamasının nasıl işlediğini de kavramak istiyorsanız başlangıçta MVC'yi tercih etmenizi öneririm. Böylece daha açık şekilde web programlamayı anlamış olursunuz. Aynı zamanda MVC genel geçer bir mimari kalıp (architectural pattern) olduğu için yapısal açıdan kod yazma hakkında da bir bakış açınız oluşacaktır. Devamında ise, temiz kod yazma konularına el atabilirsiniz.

MVC ile geliştirme yaparak bir miktar fikir edindikten sonra Asp.Net'e geçmenizi ve iki geliştirme ortamını eş zamanlı olarak öğrenmeye devam etmenizi öneririm. Böylece ikisi arasında bir karşılaştırma yapma fırsatı bulabilirsiniz. Öncelikli olarak karşılacağınız farklar ise, MVC'nin stateless bir yapıya sahip olması, Asp.Net'in ise viewstate ile bunu kotardığı olacaktır.
  • Paylaş
4

Ömer Abanoz, Yorumunuz gayet açıklayıcı oldu, fakat üniversitede asp.net gördüm alt yapısını mantığını az çok biliyorum fakat mvc hiç görmedim açıkçası asp.net gördüğüm için asp.net'i geliştirip mvc geçsem bir kaybım olur mu yada asp.net'in bana mvc geçtikten sonra katkısı ne olabilir.

Brutal Code, Bence bu kadar detaylı bir hesap yapmanıza gerek yok. Her iki teknolojiyi de öğrenmeniz faydanıza olacaktır. Sonuç olarak iki farklı teknoloji öğreniyorsunuz ve bir proje geliştirmek istediğinizde iki farklı alternatifiniz mevcut olmuş oluyor. Projenize uygun olanı seçmek için değerlendirme yapacak bir bilgi birikiminiz olmuş oluyor.
Bu teknolojileri de insanlar geliştiriyor ve Asp.Net'i geliştiren ekip, bu geliştirmesine karşılık zarar görmemek için aman MVC geliştirme ekibine girmeyeyim yoksa bana faydası olmaz gibi bir şey demiyordur. :)

Madem Asp.Net'te bir miktar bilginiz mevcut, öyleyse MVC'yi inceleyebilirsiniz. Mevcut bilginiz size daha kısa sürede MVC'yi anlamanıza yardımcı olacaktır. Ben 3-4 sene boyunca Asp.Net ile uğraştım. Henüz bir iki hafta önce MVC'yi inceleme şansım oldu ve çok kolay şekilde adapte olduğumu söyleyebilirim.

MVC açık kaynaklı bir proje bu arada. Codeplex'ten kodlarını indirip inceleme şansınız da mevcut.

Ömer Abanoz, Teşekkür ediyorum çok aydınlatıcı bilgiler oldu bunlar dediğiniz kısmı uygulayacağım peki son olarak bir sorum olacak kusura bakmayın sizi de yordum. Bunların yanında SQL bilgim var bağlantı kurup veri çekme yazma vs.. gibi bilgi komutlarına hakim sayılırım bunun dışında SQL'i daha fazla bilmeme gerek var mı ileride büyük projelerde yer almak istesem veri tabanı olarak daha fazla bilgiye ihtiyacım olabilir mi ?

Brutal Code, Elbette. Özellikle büyük veri akışı olan (transaction diye tabir edilir. bkz: TPS - transaction per second) projelerde veritabanı tarafındaki efektiflik önemli bir hal alacaktır. Şu an çalıştığım şirkette geliştirilmesinde aktif olarak rol aldığım projelerde ay içinde bir milyon civarında (bazı dönemler daha fazla) transaction gerçekleşiyor. Bu bağlamda SQL açısından şunu söyleyebilirim ki, ilk aşamada T-SQL konusuna hakim olmanız veritabanı programlama yapabilmeniz için gerekli. Profesyonelliğiniz arttıkça (yani sektörde vakit geçirdikçe) veritabanını daha efektif kullanabiliyor olmanız beklenir. Bu bakımdan veritabanı optimizasyon konularına bakabilirsiniz. Örneğin index'leme, snapshot'lar, multithread uygulamalarda veritabanı tarafında dikkat edilecekler (örn. deadlock almamak için gerekenler) vb.

Not: yorulmuyor, keyif alıyorum. Başarılar dilerim.

Asp.Net ile WebForms kavramlarını birbirine karıştırmamak gerekir. Visual Studio altında oluşturduğunuz MVC projeleri de aslında Asp.Net çatısı üzerinde çalışmaktadır. HttpRequest, HttpResponse, Session gibi özellikler, BeginRequest, BeginSession gibi life cycle metotları, Asp.Net'ten gelir. WebForms veya MVC projesi olma durumuna göre, ASP.NET browser tarafından gelen istekleri farklı şekilde dallandırır. Örneğin; MVC için ilgili Controller'ı üretir ve ilgili Action metodunu tetikler. WebForms için ilgili sayfadaki event metodunu (örneğin PageLoad) tetikler.

MVC, web geliştiriciler için daha arkadaş canlısı, daha tanıdık bir mimariyi size sunar. Daha önce WebForms kullanmış olmaktan ötürü, masaüstü uygulama geliştirmeye benzer web programlamaya alıştığınız için başta biraz yabancı kalabilir. Ancak alıştıkça, WebForms ile uygulama geliştirmenin aslında web programlama ile uzaktan yakından alakası olmadığını göreceksiniz. Microsoft'un web programlama konusunda yapmış olduğu belki de en hain, en kalleşçe adımdır WebForms... Geliştiricileri HTML, CSS ve Javascript'ten uzak bir dünyaya itmiştir. MVC projelerinde ise, bu üç başlıkta yeterli bilgi ve beceriye sahip olmadan pek elle tutulur bir ürün ortaya çıkaramazsınız. Yani önce temel client-side dillerde kendinizi geliştirmeniz gerekecektir.
  • Paylaş
4

Hakan Köse, Çok doğru noktalara temas etmişsin bence..

Ömer Abanoz, Yorumunuz için teşekkürler HTML,CSS bilgim mevcut fakat CSS çok ileri düzeyde diyemem HTML daha ileri seviye diyebilirim. Asp.net tercih etmemdeki neden üniversitede php de gördüm fakat asp.net in mantık yapısı kod kütüphanesi kontrolleri daha düzgün geldi bana php de daha karışık lafı fazla dolandırmadan şunu belirtmek istiyorum asp.net tabanım biraz var asp.net ile ileri seviyeye gidip mvc ile application veya her türlü gerek sosyal medya sitelerinde gerekse web üzerinde yapabilceklerim neler olabilir. Bu konuda kafam karışık nereden başlayacağım konusunda fikir sahibi olmak için sizlere danışayım dedim

İbrahim Aydın, MVC, Asp.Net WebForms'dan daha ileri seviyedir diye bir durum yok aslında. Veya, MVC ile şu tarz projeler yapılır, WebForms ile de şu tarz projeler yapılır diye bir durum da yok... Hangisini kullanacağınız sizin hangi tip kod yazmaya alışık olduğunuzla alakalıdır.

Dediğim gibi; daha çok client-side programlama yapmayı seviyorsanız, özellikle JavaScript ve jQuery konusunda sağlam bir deneyiminiz varsa, web sitenizdeki HTML üzerinde tam hakimiyet istiyorsanız, MVC yapısı size daha yakın olacaktır. Ancak bu konularda henüz kendinizi hazır hissetmiyorsanız, WebForms'un event yapısı ve server-side çalışan hazır componentler sizin için daha anlaşılır ve kullanımı daha kolay olacaktır. Birinde yapılan bir proje, diğerinde yapılamaz diye bir durum yok. Sadece şu var; WebForms ile çalışmak client-side dillerde kendinizi geliştirmek konusunda sizi biraz alıkoyabilir. Bu da ileride web programlama konusunda bir iş koluna atılacaksanız, sizi esas bilgi birikiminiz olması gereken noktadan uzaklaştırmış olacaktır. Ayrıca her ne kadar biri diğerinden daha ileri seviye olmasa da, çalışma biçimi olarak tavsiye edilen her zaman MVC yapısıdır. Çoğu firmanın da artık mevcut WebForms projelerini MVC yapısına taşımaya başladıklarını ve iş ilanlarında MVC bilen eleman aradıklarını fark edebiirsiniz.

Benim tavsiyem; eğer hali hazırda hemen bir proje geliştirmeniz gerekiyorsa, WebForms ile başlayın. Ama bir taraftan da HTML, CSS, Javascript, jQuery, Bootstrap, vb.. client-side diller ve kütüphaneler konusunda kendinizi geliştirerek MVC üzerinde test uygulamaları geliştirin derim.

Ömer Abanoz, Çok teşekkür ederim ibrahim bey gayet net bir şekilde anlatmışsınız eğitim setleri ile başlıyacağım zaten asp.net orta ve ileri düzey bir set aldım onunla yola koyulup mvc de boş bırakmayacağım fakat dediğiniz gibi javascript de yazma hevesim var bunuda boş bırakmayacağım ama daldan dala atlayarakta gidemem zamanla hepsini kavrayarak gideceğim inşallah çok teşekkür ederim.

Bu kadar cevaptan sonra benimde çorbada tuzum olsun istedim. MVC, yazılım geliştirmede kullanılan bir Mimari Desendir (Architectural Pattern) . Büyük çaplı projelerde kullanılan bu desen sayesinde proje farklı katmanlara ayrılarak, hem geliştirilmesi hem de yönetiminin kolaylaştırılması amaçlanmıştır. #MVC deseni, Asp.Net ile ortaya çıkan bir desen değildir. 1979 yılında Trygve Reenskaug tarafından oluşturulmuş ve o günden itibaren PHP ve Java gibi bir çok dilde kullanılmıştır. Microsoft MVC'yi Asp.Net'e 2009 yılında entegre etmiştir. #
  • Paylaş
Mvc nedir once onu bilmeniz gerekli. MVC asp.net e ozgu birsey degil baska dillerde de var bu. Asp.net te bildigim kadari ile c# cok kullaniliyor. Simdi mvc ye gelelim. Sizin herhangi bir dilde mvc kullanmaniz icin oncelikle o dili bilmeniz gerekli. Eger siz o dile hakim degilseniz zaten mvc lerinide kullanamazsiniz. Mvc bir framework yontemidir ki OOP ozelligi olan dillerle yapilir. Hatta siz kendi mvc nizide yapabilirsiniz. Bunu bir nevi taslak gibi dusunun. Her projede kullanilabilecek bir taslak gibi. Bazi temel ogelerin onceden yazili oldugu bir taslak. Dolayisiyla oncelikle calismis oldugunuz dili bilmeniz tavsiyede edilir ayrica.
  • Paylaş
3

Ömer Abanoz, Çalışmış olduğum dil birden fazla fakat çoğu çok profesyonel diyemem sadece kendime bir dil seçip "Asp.net" onu geliştirdikten sonra MVC yi kullanmak istiyorum bunun bana bir kaybı olur mu diye fikirlerinize başvurdum mantıklı olan herşeyi sırası ile zamanında yapmak daldan dala atlamak istemiyorum üniversitede bunun sıkıntısını çok yaşadım yeni mezunum ama mezun oldukta ne oldu kafamda kocaman bir soru işareti var üniversitede birden fazla programlama dili ayrı dallarda öğrendik şimdi ise iş hayatındayım gel gör ki kararsızım buda kötü bir şey maksat sabit bir dil ile başlayıp çevresindeki dillere zamanla yayılmak, yorumunuz gayet güzel teşekkür ederim.

Omer Ayverdi, Sadece bir dil yeterli degil ama bir dili cok iyi bilmeniz iyi olur. Digerlerine de en azindan bir goz atmis olmaniz iyi olur. Calisma mantiklari syntaxleri en azindan. Zaten cogu dil birbirine benzemekte zorluk cekeceginizi zannetmem. Eger is bulma hakkinda ise sorununuz turkiye de asp.net sik kullaniliyor bu yuzden asp.net e yogunlasabilirsiniz ama php ye yada java veya ruby ve python gibi platformlara da en azindan bir goz atmis olmaniz sizin icin iyidir bence.

Ömer Abanoz, Çok teşekkür ederim Ömer Bey, çok açıklayıcı ve anlaşılır bir şekilde yorumlarınız için tavsiyelerinizi uygulayacağım.

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

381 Görüntülenme7 Takipçi4 Yanıt