Tenemos un montón de entidades de dominio que deben representarse en un formato html, que muestra sus detalles en una ventana emergente.Rendering C# Objects to Html
estaría contento de hacer algo como esto:
Product product = new Product(...);
product.ToHtml(); // or: HtmlRenderer.Render(Product);
pero mi principal problema es cómo hacer estas cosas por detrás. tengo 3 respuestas diferentes:
1. Render Por Código:
que simplemente hay que escribir el código para renderizar el código HTML dentro del Método ToHTML (C#) - el problema es que es demasiado estática. si desea mover un poco el encabezado hacia el centro, debe cambiar el código. además, es muy difícil leer sangría Html en C#.
2. El uso de XSL:
XSL archivos pueden administrar fácilmente la plantilla HTML y mediante XSLT puedo transformar archivo XML en el lugar adecuado de los documentos. el analizador ya escrito por otra persona (solo necesita aprender la sintaxis) ** para esto necesitaremos que cada objeto se pueda serializar a Xml. y si el objeto cambió -> se cambiará el Xml -> el xslt también se debe cambiar ** esto también me dará la opción de aplicar sangría al html fácilmente, por ejemplo: agregar capacidades css y \ o cambiar el diseño html
3. utilizar otro motor de plantilla:
Escribir mi propia C# -> HTML plantilla de motor por lo que leerá la plantilla de archivo (* .template) e insertará la propiedad adecuada en el lugar correcto de la plantilla usando la reflexión. ** en esta solución tenemos muchos problemas que podemos pensar, por ejemplo: ¿cómo debería ser la sintaxis? ¿esto está bien? % Nombre%% Descripción% y cómo podemos gestionar las matrices? ** tal vez podamos usar un motor existente (Brail o T4-Templating)?
¿Qué prefieres? ¿conoces un buen motor? por el momento prefiero la segunda solución, pero va a ser muy lenta.
gracias
No estoy trabajando en un equipo web, estoy renderizando objects-as-html y enviándoselo a cualquier otra persona, quien puede usar esto en wpf \ palm \ web-site u otra tecnología, así que supongo que ascx no es bueno para mí. – rabashani
En ese caso, puede serializarlo en formato JSON y enviarlo para que lo usen otros usuarios. – shahkalpesh
todavía no es lo suficientemente bueno. Quiero que todos obtengan la misma interfaz de usuario. no manejan la lógica de renderizado por sí mismos. – rabashani