MVC, WCF, EF, LINQ - Sono solo io? [chiuso]


17

... o le cose si stanno complicando?

Mi sembra che sia necessario conoscere molte cose per sviluppare "correttamente" un'app Web MS in questi giorni. Ai vecchi tempi in cui non sapevamo nulla di meglio avevamo tabelle di database, ASP.NET, ADO.NET e tu costruivi un'app Web usando concetti relativamente semplici.

In questi giorni sembra esserci un sacco di framework per "aiutare" a farlo "bene", ma non sono convinto che questo renda tutto più facile e migliore. Ho la sensazione che sarò in una piccola minoranza con questo sentimento, ma c'è qualcun altro là fuori che pensa che le cose siano diventate un po 'pazze?


MVC = ASP.Net, WCF = Web services + .Net Remoting, EF = ADO.Net, Linq sostituisce alcuni loop foreach. Ora ci sono tanti framework quanti prima.
vortexwolf,

Giovanni, devo essere "parzialmente" d'accordo con te. Attualmente sto ripulendo le mie abilità .Net, sicuramente molto di più da superare rispetto a 5 anni fa.
TeaDrinkingGeek

Mentre ci possono essere molte tecnologie DB nell'arena MS, questa domanda è davvero fuori tema su questo sito. Non fa davvero una domanda e cade esattamente nel "... fa schifo, vero?" categoria elencata nelle FAQ
Walter

Risposte:


17

Tutte queste cose sono opzionali, usale se sono utili, non se non lo sono. E 'così semplice. Puoi sicuramente scrivere app web buone / appropriate senza uno di quegli acronimi nella tua soluzione.

Personalmente, tendo a trovare MVC come un framework piuttosto leggero e facile da usare (molto più facile da iniziare rispetto ai webform, imo). Allo stesso modo, LINQ fornisce un modo comune di interrogare qualsiasi cosa; anche buono. EF, WCF e io abbiamo avuto i nostri disaccordi, ma in questo caso non li uso.


2
+1 su "usali se sono utili". Provo a usare la regola, provo a fare 1 nuova "cosa" in ogni progetto. Dopo un po 'avrai esperienza con molte cose e vedrai che le cose stanno diventando più facili man mano che le usi di più.
Jan_V

Fai +1 su di te anche per "prova a fare 1 nuova cosa su ogni progetto". Mi piace anche imparare e crescere.
Paul

1
Cerco di fare 1 nuova cosa su ogni progetto, ma di solito è perché la nuova cosa che ho imparato l'ultimo progetto è ormai obsoleta :)
gbjbaanb,

9

No, non proprio. LINQ è la cosa migliore da quando il pane a fette durante l'interazione con un database.

Quello che dovresti ricordare è che queste cose sono costruite su altre cose. LINQ non aggiunge al numero di cose che devi sapere per sviluppare un sito Web ASP.NET, perché ora non è necessario conoscere SQL. E LINQ è OO, che è molto più in linea con il normale sviluppo di applicazioni, il che rende uno shitton completo più facile da fare rispetto a SQL e molto più facile da integrare con C #.

Se non pensi che LINQ sia più semplice di SQL, forse dovresti pubblicare alcuni esempi di qualcosa di più difficile nei nuovi paradigmi.

Ancora più importante, in precedenza i siti Web avevano funzionalità molto meno. Come hai intenzione di creare nuovi siti Web con prestazioni migliori, ridimensionamento migliore e offrire nuove funzioni nello stesso codice?


4
Un join sinistro in LINQ è più difficile che in SQL. Inoltre, se stai cercando di risolvere i problemi del database, finirai comunque per guardare SQL. Inoltre, conoscere SQL ti aiuterà se desideri passare a una piattaforma di sviluppo non Microsoft.
btilly

10
Nessun framework ORM è potente come SQL. Ci sono domande che devo eseguire che sono quasi impossibili da fare in un framework ORM.
bit-twiddler,

1
@ bit-twiddler> sì, ed è per questo che la maggior parte dei framework ORM ti consente di eseguire anche SQL raw (o sprocs). Puoi avere un bravo ragazzo C # a scrivere la maggior parte delle query pedonali, e gli esperti di DB come te possono impacchettare le cose difficili per loro in uno sproc o in una vista.
Paul,

1
Mentre disegno database di grandi dimensioni e scrivo tonnellate di SQL lato client e lato server, non sono un DBA. Sono un ingegnere del software. Non ho mai lavorato da nessuna parte dove gli sviluppatori di software erano qualificati come uni. In un dato giorno, posso scrivere codice in C, C ++, Java, Object Pascal, PL / SQL o linguaggio assembly Intel (non considero HMTL, XML e CSS come linguaggi di programmazione perché non sono Turing Complete). Mantengo i miei set di strumenti e un ambiente di test basato su Tomcat (tutti i membri del mio team dispongono del proprio server Tomcat).
bit-twiddler,

1
Scrivere LINQ per interagire con un database (LINQ-to-SQL, LINQ-to-Entities) senza conoscere SQL ...? Ricetta per il disastro.
Kirk Broadhurst il

3

Se i vecchi concetti che hai citato non funzionassero più, sarei d'accordo che sarebbe pazzo, ma i nuovi quadri sono alternative. L'accettazione cieca sarebbe pazza. Devi giustificare. Personalmente, SQL in sé non è un problema per me. Cercando di aggiungere alcune funzionalità dei siti Web moderni, i moduli web non la tagliano più.

Sono sicuro che alcune persone ASP classiche si sono sentite allo stesso modo su .NET, ma pochi possono continuare a sostenere questo argomento. Costruisco un paio di siti in ASP classico e non ci tornerei.


2

"Diventato un po 'matto". Questo è esattamente il modo in cui descriverei una soluzione DataSet, ADO.NET, ASP.NET. :)

Sono d'accordo che c'è molto di più da imparare, ma ciascuno dei framework citati ha migliorato lo sviluppo di .NET.


0

Direi che questo è un problema globale che può interessare praticamente ogni framework o piattaforma (di sviluppo). Quando viene rilasciato un nuovo framework, di solito appare piccolo e compatto, ma col passare del tempo e nuove caratteristiche / funzionalità / API sono incluse (sia per roadmap / richiesta, nuovi concetti / tendenze / tecnologie o semplicemente per evoluzione), diventa "gonfio". Hai iniziato con "un modo di fare le cose" e ora ci sono più possibilità tra cui scegliere (e - non sai / non sei sicuro - quale scegliere). Può richiedere molto tempo imparare cose nuove, tuttavia possono offrirti soluzioni molto più flessibili / più veloci / migliori agli stessi problemi che erano stati precedentemente risolti da un insieme limitato di opzioni.

Una volta mi sono imbattuto in una citazione divertente - "tutto il codice si trasforma in s #! T con tempo e mani sufficienti" - che IMHO sintetizza perché dovrebbero emergere nuove cose all'interno di strutture esistenti per portare nuove idee in azione e fare l'evoluzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.