2013-09-01 15 views
5

Per molti sviluppatori ASP.NET e ASP.NET Web Form sono le stesse cose. Da un po 'di tempo utilizzo Web Forms, ma di recente ho appreso che Web Forms è costruito solo su ASP.NET. Divento più curioso di come appare una semplice applicazione ASP.NET. Ho imparato a conoscere 3 modelli di programmazione ASP.NET: Web Forms, pagine Web e MVC (Here Scott Hanselman spiega brevemente le differenze). Ma continua a pensare che tutti e 3 gli approcci si trovano sopra ASP.NET.Esempio di applicazione semplice ASP.NET semplice (senza moduli Web e MVC)

Stavo cercando di trovare un'applicazione di esempio che utilizza ASP.NET puro, ma non ho trovato nulla.

Ho iniziato a scavare più a fondo nel codice sorgente della pagina Web ASP.NET e ho scoperto che ogni pagina Web è in realtà HTTP Handler (ogni pagina implementa l'interfaccia IHTTPHandler). Significa che la pura applicazione ASP.NET sarebbe solo un'implementazione del Gestore HTTP? O mi sta sfuggendo qualcosa.

Nella mia comprensione, i moduli Web ASP.NET corrispondono a Win Form nel mondo desktop. Ma nel mondo desktop è ancora possibile scrivere un'applicazione console che non utilizza Win Form. Allora, qual è l'equivalente di un'applicazione console nel mondo web?

Qualsiasi commento o riferimento apprezzato. Grazie in anticipo.

+0

Per confrontare: C# (Language), .NET (Technology) e Win Forms (dove è possibile creare applicazioni Windows in tempo reale) ... Ora confrontarlo con C# (Language), ASP.NET (Technology) e Web Forms (Dove puoi costruire applicazioni WEB in tempo reale). Solo che ASP.NET è la tecnologia sottostante (Framework) che definisce come devono essere eseguite le applicazioni web (scritte in queste lingue supportate dal tempo di esecuzione di ASP.NET). – Prash

+0

@Prash, grazie per l'input. È vero. Ma puoi scrivere un'applicazione in .NET senza usare Win Form (scrivendo una semplice applicazione console). E come scrivere un'applicazione in ASP.NET senza utilizzare Web Form. –

+0

Poiché si sta citando Win Form come esempio, direi; nell'app Win Forms si nasconde solo la Console. Puoi andare alle impostazioni del progetto e modificare le impostazioni per mostrare la console. In altre parole, è possibile dire che Win Forms è anche un'applicazione console, in cui viene aperta un'interfaccia utente grafica su un thread separato. – Prash

risposta

5

ASP.NET è un insieme molto ampio di tecnologie e include WebForms .. e come MVC5, include anche MVC, WebApi e WebPages. Questo è ciò che Microsoft sta ora chiamando l'iniziativa "One ASP.NET".

Questi sono tutti parte di ASP.NET, proprio come ASP.NET fa parte di .NET. Questi sono solo strati. Non esiste una parte 'separata' chiamata asp.net che non contenga questi pezzi (e anche nelle versioni precedenti, non c'era alcuna versione di asp.net che non includesse WebForms).

Come tale, non esiste una app "pure asp.net". Puoi sicuramente scrivere un'app che non usa WebForms (che significa nessun file .aspx o ascx o .master, nessun Controlli Server di alcun tipo ... sostanzialmente tutto ciò che esiste nello spazio dei nomi System.Web.UI.)

al massimo, si potrebbe considerare questo tutto ciò che è nel namespace System.Web (senza ulteriori livelli di spazi dei nomi. in sostanza ciò che è qui http://msdn.microsoft.com/en-us/library/system.web.aspx)

Quindi sarebbe cose come l'oggetto Request, l'oggetto Response, la gestione dei cookie, Membership, FormsAuthentication, ecc ... Questo è l'impianto idraulico di base che non è tutto ciò che è utile da solo. Dovresti scrivere un tuo quadro di presentazione per sederti sopra.

Esistono altri framework, come FubuMVC, Nancy, MonoRail, ecc. Questi sono proprio come MVC o WebForms o WebPages ... utilizzando le classi ASP.NET di base per svolgere il proprio lavoro.

0

Mi piacerebbe fare riferimento, ad esempio, a ASP.NET MVC. ASP.NET MVC è un framework in cima a di ASP.NET ma non è sicuramente Web Form (infatti, lo sostituisce completamente e, a mio parere, per il meglio).

ASP.NET fornisce servizi comuni al web in generale, le cose come ad esempio:

  • gestione delle richieste e le risposte
  • di sicurezza, autenticazione, ecc rappresentazione
  • Curare una 'Application' (la nozione di Global.asax ad esempio come framework per instradare le app, chiuderle, gestire le cose centrali come Route, gestire eccezioni non rilevate, ecc.)
  • Prendersi cura delle autorizzazioni di hosting
  • fisiche & applicazioni virtuali
  • interfacciamento con IIS (o altri server web), in generale
  • Esecuzione Moduli (oltre a HTTP gestori)

Web Form aggiunge uno strato presentazione in cima dell'infrastruttura di ASP.NET. Fornisce cose come Forms, ViewState e così via. Ad esempio, "traduzione" del codice code-behind alla rappresentazione HTML. Questi sono solo alcuni esempi.

La separazione tra ASP.NET come infrastruttura e Web Form come livello di presentazione ha consentito la creazione di ASP.NET MVC in seguito. ASP.NET MVC non si basa affatto su "Moduli", non tenta di imitare i flussi di lavoro di sviluppo di WinForms (oscurando l'HTML grezzo utilizzando "metodi" code-behind e "proprietà" e così via) e in effetti fornisce un valore molto migliore & corretto modo di fare sviluppo web.

Si stava chiedendo di puro ASP.NET. Ecco un esempio di ASP.NET puro, nessun WebForms, nessun MVC. Eccone uno: http://support.microsoft.com/kb/308001.È un gestore HTTP di base che, in questo esempio, viene eseguito ogni volta che si passa a un indirizzo che termina con .sync ("insegnando" a ASP.NET per gestire ogni richiesta che utilizza tale estensione). A proposito, puoi trattarlo come un'app "console" (secondo i tuoi termini). Ottiene un URL, non importa da dove (è possibile utilizzare curl se lo si desidera) e restituisce una risposta di testo, e questo è tutto.

+0

* cough * WebForms ViewEngine * cough * –