ASP.NET MVC è completamente (ed esclusivamente) basato sulle convenzioni?

4

- TL; DR

  • Esiste un "Hello World!" Esercitazione su ASP.NET MVC che non si basa su convenzioni e progetti "stock"?
  • È persino possibile sfruttare la tecnologia senza riutilizzare la struttura predefinita dei file e iniziare da un singolo file "hello_world.asp" o qualcosa del genere (come in PHP)?
  • Sono completamente in errore e dovrei cercare altrove, forse questo ?
  • Sono interessato al framework MVC, non ai Web Form

- Sfondo

In passato ho giocato un po 'con PHP, solo per divertimento, e ora sono tornato a farlo da quando lo sviluppo web è diventato di nuovo rilevante per me. Non sono un professionista, ma cerco di acquisire più conoscenza e controllo sulla tecnologia con cui sto lavorando il più possibile.

Uso Visual Studio 2012 per C # - il mio linguaggio "desktop" di scelta - e da quando ho ottenuto la Professional Edition da Dreamspark, sono disponibili gli strumenti di sviluppo Web, incluso ASP.NET MVC 4. Non toccherò Web Forms, ma MVC Framework ha attirato la mia attenzione perché il pattern MVC è qualcosa a cui posso davvero fare riferimento, dal momento che fornisce il controllo che voglio ma ... non proprio .

Imparare PHP è stato facile - e sin dall'inizio potevo semplicemente creare un file "hello_world.php" e fare qualcosa del genere per risultati immediati:

<!-- file: hello_world.php -->
<?php>
    echo "Hello World!";
<?>

Ma non sono riuscito a trovare un singolo tutorial su ASP.NET (MVC) (comprerò sicuramente uno dei prossimi libri su MVC 4, a solo un mese di distanza) che inizierebbe in quel modo. Iniziano tutti con un progetto di esempio, sviluppando le conoscenze dalle basi e utilizzando pesantemente le convenzioni mentre vanno avanti. Che va bene, suppongo, ma ora è il modo migliore per imparare le cose.

Anche il modello di progetto "vuoto" per una nuova applicazione ASP.NET MVC 4 in VS2012 non è affatto vuoto: diversi file e cartelle sono creati per te, proprio come un nuovo progetto di applicazione desktop C #, ma con C # posso infatti inizia da zero, creando me stesso la struttura del progetto.

Non è il caso di PHP:

  • Posso scegliere tra una pletora di diversi framework MVC
  • Posso solo creare il mio framework
  • Posso semplicemente saltare tutti i framework e gettare il PHP casualmente insieme al mio HTML su un singolo file e farlo funzionare

Capisco che il framework abbia bisogno di stabilire alcune regole, ma cosa succede se voglio creare un sito web a pagina singola con una logica C # dietro? Ho davvero bisogno di creare un sacco di file e cartelle per convenzione?

Inoltre, ti prego di capire che non sono andato molto lontano su nessuno di questi tutorial principalmente a causa di questo motivo, ma, se questo è l'unico modo per farlo, ci andrò usando uno dei libri che ho menzionato prima. Questo è il mio primo contatto con ASP.NET ma dai pochi confronti che ho letto, credo che dovrei stare lontano da Web Form.

Grazie. (Si prega di perdonare l'inglese rotto - non è la mia lingua principale.)

    
posta Mike Valeriano 01.10.2012 - 15:54
fonte

2 risposte

2

EDIT: Per riassumere, penso di capire da dove vieni - a prima vista, il framework ASP.Net MVC sembra avere (anche) molte parti, ed è difficile iniziare a capirlo. Detto questo, direi che stai guardando questo torto. ASP.Net MVC è non un framework MVC particolarmente pesante (dovresti confrontarlo con framework PHP MVC per essere corretto), ma sì, è basato su molte convenzioni. C'è un sacco di buoni ragionamenti dietro quella scelta di design, e la vostra prima priorità nell'apprendimento del framework sarebbe imparare le sue convenzioni e forse il ragionamento per esse. Se per qualche motivo vuoi assolutamente approfondire, il framework è open source e puoi scavare in esso qui .

I can just skip frameworks altogether, and toss random PHP along with my HTML on a single file and make it work

Bene, non con un framework MVC (anche in PHP). Avrai almeno un modello, una vista e un controller. Questi sono un po 'minimi, quindi non sono sicuro di cosa stai cercando qui; è un confronto di mele e arance.

Dopodiché, ci saranno alcuni altri file che probabilmente ti serviranno; come la configurazione per il routing, ecc. Questo è abbastanza standard e paragonabile ai framework MVC di PHP.

Se si desidera un modello "a pagina singola", è possibile provare WebForms, anche se in genere tale tecnologia tenta di spostare la logica in una pagina separata "code behind". Sono abbastanza sicuro di poter saltare quest'ultimo, tuttavia, e di avere i file .aspx logicamente identici ai file .php che si trovano lì.

Do I really need to create a whole bloat of files and folders...

Il modello di progetto VS predefinito tende a copiare un sacco di cose potenzialmente non necessarie (script, ecc.), ma è possibile rimuovere la maggior parte di quelli. Di nuovo, probabilmente avrai un numero minimo di cose lì. Questi davvero ti causano maggiore preoccupazione? Hai visto come si presenta un'installazione Symfony?

... for the sake of convention?

La convenzione è una grande cosa. Il concetto è chiamato "convenzione sulla configurazione", e per la maggior parte dei progetti non banali, è una cosa meravigliosa. Impedisce alla gente di reinventare le cose e fornisce degli standard che dovrebbero essere seguiti.

Dato che dici che questo è un esercizio di apprendimento, ti suggerirei di smettere di preoccuparti troppo di queste cose. ASP.Net MVC parla molto delle convenzioni e ti stai rendendo un disservizio cercando di aggirarle. In effetti, per imparare MVC, dovresti imparare le convenzioni tanto quanto qualsiasi degli interni.

    
risposta data 01.10.2012 - 16:23
fonte
1

Se stai cercando pagine C # semplici, consulta Pagine Web ASP.NET . Questi sono progettati per essere un modo "senza struttura" di costruire applicazioni web in stile ASP.NET MVC, come sarebbe fatto in PHP non elaborato.

L'intero framework ASP.NET MVC fa molto affidamento sulle convenzioni, ma è esso stesso un framework, non "raw" ASP.NET.

    
risposta data 01.10.2012 - 16:16
fonte

Leggi altre domande sui tag