2010-05-29 14 views
6

He logrado obtener una página asp de C# ejecutándose bajo ubuntu/apache/mono, pero no quiero escribir mi marco en estas páginas ASP, quiero usar C# directo y luego usaré un lenguaje de plantillas por mis puntos de vista. Pero no sé por dónde empezar?¿Cómo crear un marco web en C# sin ASPX?

C# es un lenguaje compilado, así que ... ¿cómo podría hacer esto? ¿Compilaría todo y luego tendré apache en el ejecutable (único) y pasaré la URL de solicitud? ¿Puedo solicitar páginas específicas de .cs y luego decirle a apache que compile y luego "mostrar" solo si se ha actualizado? ¿Pueden los archivos "ver" compilarse individualmente para evitar tener que volver a compilar todo cada vez que hay un cambio? ¿Hay alguna "base" de la que pueda trabajar, o voy a tener que reinventar el acceso a las variables GET y POST (leyendo la información del encabezado) y todo tipo de cosas que damos por sentado en idiomas como PHP?

Respuesta

3

yo sepa no hay ninguna razón por la que no se puede hacer lo que quiere en la parte superior de la ASP.NET core, utilizando cosas como HttpApplication, HttpHandler, etc. Por ejemplo, puede enrutar todas las URL a un único HttpHandler y tomarlas desde allí manualmente.

Sugiero ver cómo lo hace ASP.MVC: cree un nuevo proyecto ASP.NET MVC en MonoDevelop, mire Global.asax.cs, abra Web.config y mire los manejadores http personalizados y módulos que registra. ASP.NET MVC es OSS, por lo que puedes investigar eso también.

+0

Ahh ... excelente. He estado tratando de averiguar qué eran los huesos necesarios para una aplicación ASP.net. Creo que esto funcionará – mpen

1

Si realmente es adverso al uso de ASP, puede intentar leer el código fuente de ASP y ver cómo implementan las funciones que va a necesitar, como acceder a información POST y GET, enrutamiento, administración de sesión , etc.

Sin embargo, eso será una tonelada de trabajo. Lo que podría hacer es implementar la gran mayoría de su lógica en librerías de clase C# y simplemente usar ASP para "alojar" la aplicación y pasar los datos que necesita.

+0

No es realmente el "motor" de ASP al que soy reacio, en general no me gusta la sintaxis. Si pudiera usar ASP pero evitar las páginas .asp, esta es una posibilidad. – mpen

+0

AFAIK, conseguir ASP clásico para ejecutar fuera de un entorno IIS es un orden mucho más alto que ASP.NET. –

+0

Lo siento, pensé que se daba por sentado que la discusión estaba en referencia a asp.net –

1

Nadie le pide que ponga código pesado en páginas ASPX. (Por favor, no use ASP, que es otra cosa).

En el modelo WebForms de ASP.NET, puede utilizar el modo Code Behind.

En el modelo ASP.NET MVC, tiene mucho más control sobre casi todos los aspectos.

Por lo tanto, dedique algo de tiempo y sumérjase en los modelos existentes. Intentar lanzar el tuyo puede ser una pérdida de tiempo.

Mono admite ambos modelos.

Además, ASP.NET fue diseñado de una manera diferente a PHP, y debe saber que introduce diferencias que no siempre pueden cumplir sus requisitos anteriores.

+0

. Estoy buscando un cruce entre Django y RoR. Tendré que profundizar en estas cosas para ver si realmente puedo doblarlo para satisfacer mis necesidades. Pensé que ASP.NET MVC ya era un framework. Yo * no * quiero ser forzado a usar * cualquiera * de sus paradigmas. Quiero un control total sobre cómo y cuándo se llama a cada función/acción de vista, qué se le pasa, qué se debe devolver, qué plantilla se debe cargar ... Quiero escribir mi propio enrutador de URL, etc., etc. lo he hecho en PHP antes, pero con PHP todavía obtienes todas las variables mágicas globales. Estoy bien pasando por algún tipo de objeto de "solicitud" ... – mpen

+0

... si es necesario, como Python/Django (mod_wsgi ??) lo hace. Solo estoy tratando de descubrir por dónde empezar/qué construir. – mpen

+0

Impresionado. Bueno, entonces probablemente deberías utilizar Apache y alguna parte de Mono para construir tu propio modelo de ASP.NET. :) –

1
  1. Has dicho ASP. ¿Estas páginas ASP o ASP.NET han funcionado? Gran diferencia.
  2. Puede acceder a Solicitud/Respuesta en las páginas ASP.NET, de ser así, debería poder acceder al GET/POST.
  3. ¿Sabes cómo crear lo que estás intentando en IIS/ASP.NET normales? Si no es así, por favor, sálvate la cordura y al menos trabaja primero allí. Ese es solo el consejo general para reducir el número de variables/incógnitas con las que está trabajando a la vez.
  4. En última instancia, está construyendo sus propios controladores. Imagino que necesitará tener un poco de dll que verá la solicitud de la página xxx, leerá esa página y creará una instancia de la clase de respaldo. Una mirada a la fuente asp.net mvc puede ayudar mucho (bajo descargas adicionales).
+0

1. Uh ... no sé. ¿Cuál es la diferencia? Tengo una sola página 'index.aspx' que puedo ver en localhost ... 2. Err ... Debería poder. 3. No, no es una pista :) He usado PHP, PHP con Cake y Python/Django. Asumo que los conceptos deberían ser transferibles a C#. ¿Por qué debería construirlo en ASP.NET también? – mpen

1

Hay una gran cantidad de lenguajes de plantillas alternativas disponibles para ASP .NET MVC, consulte esta pregunta para obtener una lista muuuucho: ASP.NET MVC View Engine Comparison

+0

Bueno, no es * solo * el lenguaje de plantillas. He encontrado con cada marco que he usado, todos tienen pros y contras, pero todos hacen algo de una manera que realmente odio. Me gustaría construir un * mi * camino, incluso si nadie lo usa. – mpen

+0

Bueno, dado que está trabajando en C#, comience con ASP .NET MVC, que es agradable y de código abierto, con uno de esos motores de plantillas, y comience a evolucionar en la dirección que desee. De esa forma, comienzas con algo que funciona y puedes responder a problemas que encuentras a medida que desarrollas algo útil –

+0

Debo añadir, si quieres algo como Django o RoR, ASP .NET MVC plus Fluido NHibernate más un motor de plantilla mejor es más o menos allí ya No te obliga a nada, y como dije, es de código abierto, así que si no te gusta algo, puedes cambiarlo. –

Cuestiones relacionadas