MVC, WCF, EF, LINQ - Sadece ben miyim? [kapalı]


17

... ya da işler daha da karmaşıklaşıyor mu?

Bana öyle geliyor ki, bu günlerde bir MS web uygulaması 'düzgün' geliştirmek için çok şey bilmeniz gerekiyor. Daha iyi bilmediğimiz kötü eski günlerde ASP.NET, ADO.NET veritabanı tablolarımız vardı ve nispeten basit kavramları kullanarak bir web uygulaması oluşturdunuz.

Bu günlerde 'doğru' yapmanıza 'yardımcı olmak için çok fazla çerçeve var gibi görünüyor, ancak bunun daha kolay ve daha iyi olmasını sağlayacağına inanmıyorum. Bu duygu ile oldukça küçük bir azınlıkta olacağım hissine kapıldım, ama işlerin biraz delirdiğini düşünen başka biri var mı?


MVC = ASP.Net, WCF = Web servisleri + .Net Remoting, EF = ADO.Net, Linq bazı foreach döngülerinin yerini almaktadır. Şimdi eskisi kadar çok çerçeve var.
vortexwolf

John seninle 'kısmen' anlaşmak zorundayım. Şu anda .Net becerilerimi geliştiriyorum, kesinlikle 5 yıldan daha uzun bir süre önce geçmek için çok daha fazla.
Mayıs

MS arenasında çok sayıda DB teknolojisi olsa da, bu soru bu sitede gerçekten konu dışıdır. Gerçekten bir soru sormuyor ve "... berbat, haklı mıyım?" rant kategorisi SSS bölümünde listelenmiştir
Walter

Yanıtlar:


17

Tüm bu şeyler isteğe bağlıdır, eğer faydalılarsa kullanın, eğer değillerse değil. Bu kadar basit. Çözümünüzde bu kısaltmalar olmadan iyi / uygun web uygulamaları yazabilirsiniz.

Şahsen, MVC'yi oldukça hafif ve kullanımı kolay bir çerçeve olarak görmeye eğilimliyim (başlamak için web formlarından, imo'dan çok daha kolay). Benzer şekilde, LINQ herhangi bir şeyi sorgulamanın ortak bir yolunu sunar; aynı zamanda iyi. EF ve WCF ile anlaşmazlıkları yaşadık, ama durum böyle olduğunda onları kullanmıyorum.


2
'Yararlı olursa onları kullanın' +1. Kuralı kullanmaya çalışıyorum, her projede 1 yeni şey yapmaya çalışıyorum. Bir süre sonra çok fazla şey deneyimleyecek ve daha çok kullandıkça işlerin kolaylaştığını göreceksiniz.
Ocak

'Her projede 1 yeni şey yapmaya çalışın' için + 1'leyin. Öğrenmeyi ve büyümeyi de seviyorum.
Paul

1
Her projede 1 yeni şey yapmaya çalışıyorum, ancak bunun nedeni genellikle son projeyi öğrendiğim yeni şeyin artık eski olması :)
gbjbaanb

9

Hayır gerçek değil. LINQ, bir veritabanıyla etkileşime girerken dilimlenmiş ekmeklerden bu yana en büyük şeydir.

Hatırlamanız gereken şey, bu şeylerin başka şeylere dayandığıdır. LINQ, ASP.NET web sitesi geliştirmek için bilmeniz gereken şeylerin sayısını eklemiyor çünkü artık SQL bilmenize gerek yok . Ve LINQ, düzenli uygulama geliştirme ile çok daha uyumlu olan OO'dur, bu da SQL'den daha kolay bir işlem yapmasını ve C # ile entegrasyonunu çok daha kolay hale getirir.

LINQ'nun SQL'den daha kolay olduğunu düşünmüyorsanız, belki de yeni paradigmalarda daha zor olan şeylere bazı örnekler göndermelisiniz.

Daha da önemlisi, daha önce web sitelerinin çok daha az işlevselliği vardı. Daha iyi performans gösteren, daha iyi ölçeklenen ve aynı kodda yeni işlevler sunan yeni web sitelerini nasıl yapacaksınız?


4
LINQ'da sol birleşim SQL'den daha zordur. Ayrıca veritabanı sorunlarını gidermeye çalışıyorsanız, yine de SQL'e bakmak zorunda kalırsınız. Ayrıca, Microsoft dışında bir geliştirme platformuna geçmek isterseniz SQL'i bilmek size yardımcı olacaktır.
btilly

10
Hiçbir ORM çerçevesi SQL kadar güçlü değildir. Bir ORM çerçevesinde yapılması imkansız olan yanında gerçekleştirmem gereken sorgular var.
bit-twiddler

1
@ bit-twiddler> evet, bu yüzden çoğu ORM çerçevesi ham SQL (veya sprocs) çalıştırmanıza izin verir. İyi bir C # adamının yaya sorgularının çoğunu yazmasını sağlayabilirsiniz ve sizin gibi DB uzmanları bir sproc veya görünümde onlar için zor şeyleri paketleyebilir.
Paul

1
Büyük ölçekli veritabanları tasarlarken bir sürü istemci tarafı ve sunucu tarafı SQL yazarken, ben bir DBA değilim. Ben bir yazılım mühendisiyim. Yazılım geliştiricilerin yetenekli olduğu hiçbir yerde çalışmadım. Herhangi bir günde, C, C ++, Java, Nesne Pascal, PL / SQL veya Intel derleme dilinde kod yazabilirim (Turing Tamamlanmadığı için programlama dili olarak HMTL, XML ve CSS saymıyorum). Kendi araç setlerimi ve Tomcat tabanlı bir test ortamımı da koruyorum (ekibimdeki herkesin kendi Tomcat sunucusu var).
bit-twiddler

1
SQL bilmeden bir veritabanı (LINQ-to-SQL, LINQ-to-Entities) ile etkileşim için LINQ yazma ...? Afet tarifi.
Kirk Broadhurst

3

Bahsettiğiniz eski kavramlar artık işe yaramazsa, bunun çılgın olacağını kabul ediyorum, ancak yeni çerçeveler alternatifler. Kör kabul etmek deli olur. Gerekçelendirmeniz gerekir. Şahsen, SQL'in kendisi benim için bir sorun değil. Modern web sitelerinin bazı işlevlerini eklemeye çalışırken, web formları artık onu kesmiyor.

Bazı klasik ASP millet .NET hakkında aynı şekilde hissettim eminim, ancak birkaç bu tartışmayı yapmaya devam edebilirsiniz. Klasik ASP birkaç site inşa ve geri gitmek değildir.


2

"Biraz deliye döndü". DataSetADO.NET, ASP.NET çözümünü tam olarak bu şekilde tanımlıyorum . :)

Öğrenecek çok şey olduğunu kabul ediyorum, ancak bahsettiğiniz çerçevelerin her biri .NET geliştirmeyi daha iyi hale getirdi.


0

Bunun hemen hemen her çerçeveyi veya (geliştirici) platformu etkileyebilecek küresel bir sorun olduğunu söyleyebilirim. Yeni çerçeve piyasaya sürüldüğünde genellikle küçük ve kompakt görünür, ancak zaman geçtikçe ve yeni özellikler / işlevsellik / API'ler eklendikçe (yol haritası / istek, yeni kavramlar / eğilimler / teknolojiler veya sadece evrim yoluyla) "şişirilir". "Bir şeyler yapmanın tek yolu" ile başladınız ve şimdi seçebileceğiniz daha fazla olasılık var (ve - bilmiyorsunuz / emin değilsiniz - hangisini seçeceğiniz). Yeni şeyler öğrenmek zaman alabilir, ancak daha önce sınırlı seçeneklerle çözülmüş olan aynı sorunlara çok daha esnek / daha hızlı / daha iyi çözümler sunabilirler.

Bir keresinde komik bir alıntı üzerine tökezledim - "tüm kod s #! T yeterli zaman ve eller verildi" - IMHO, mevcut çerçeveler içinde yeni fikirlerin eyleme geçmesi ve evrimi gerçekleştirmesi için neden ortaya çıkması gerektiğini özetliyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.