Esta capa de presentación autónoma, que se puede alojar, desarrollar e implementar independientemente de la interfaz de usuario de administración de contenido y el backend operativo, marca el comienzo de un conjunto completamente nuevo de conceptos y capacidades de edición de páginas.
En esta entrada de blog, seguiremos los pasos que se siguieron para crear una página de .NET Core de ejemplo. La página fue construida usando el nuevo editor y una de las mejores cosas de ella es la excelente experiencia WYSIWYG. Solo compruébalo por ti mismo.
¿Interesado? Vamos a profundizar en...
Primero, necesitamos configurar la instancia de Sitefinity, a la que vamos a conectar nuestro renderizador de .NET Core. Descargue la solución y siga los pasos descritos en este repositorio de ejemplos de Sitefinity. Una vez que haya configurado el proyecto, debe tener una página,Quantum Sample Page,marcada con una etiqueta de "nuevo editor", un tipo de contenido testimonial y un formulario de registro (asegúrese de seguir con precisión todos los pasos en los archivos léame).
A continuación, siga las instrucciones de conexión de Sitefinity a una aplicación independiente de ASP.NET Core para configurar la instancia para que funcione con el representador de .NET Core.
Comencemos a configurar nuestro proyecto de representador de .NET Core. Puede optar por la plantilla de inicio proporcionada por el equipo de Sitefinity o puede seguir las instrucciones de este artículo de documentación para crear una aplicación .NET Core en blanco. En esta demostración, usaré la plantilla de inicio.
Aquí es donde puedes encontrar la plantilla de inicio completa. Todo lo que necesita hacer es cambiar la URL en appsettings.json para que coincida con la del proyecto de muestra de Quantum, que configuramos desde el principio.
Una vez descargada la plantilla, ábrala con el IDE de su elección y cambie la URL de la instancia de Sitefinity en appsetings.json "Sitefinity" -> "URL".
"Sitefinity":{
"Url":"http://nstefano.com:8080",
"WebServicePath":"api/default"
}
En caso de que los widgets listos para usar simplemente no se adapten a sus necesidades de diseño, puede seguir adelante y crear widgets personalizados dentro del proyecto de .NET Core. Por el bien de la demostración, los widgets que necesitamos serían:
Tenga en cuenta que el widget Diseño se utiliza como marcador de posición para otros widgets. El widget Contenido se utiliza para presentar contenido, estático o dinámico.
Comencemos con el widget de sección estática. Está ahí para que inserte un widget de sección con marcado específico. Puede obtener este widget directamente desde el repositorio de la página de ejemplo. Basta con copiar los siguientes archivos en sus directorios correspondientes:
Todos los archivos *.cshtml a [Views/Shared/Components/StaticSection]
Ahora, podemos centrarnos en crear el widget Testimonio. Siguiendo los pasos del artículo Crear un widget de .NET Core personalizado,debemos crear los siguientes archivos en los directorios relevantes, como se indica a continuación:
Después de que se hayan creado todos los archivos, debemos agregar la siguiente línea 'servicios. AddScoped<ITestimonialModel, TestimonialModel>();' al método'ConfigureServices()' en 'Startup.cs'. El método AddScoped registra el servicio con una vida útil con ámbito: la de una sola solicitud.
publicvoidConfigureServices(IServiceCollection services)
{
// add sitefinity related services
services.AddScoped<ITestimonialModel, TestimonialModel>();
services.AddSitefinity();
services.AddViewComponentModels();
}
Por último, necesitamos el widget "Formulario de solicitud de demostración".
Una vez que hayamos terminado con el desarrollo de widgets, podemos comenzar a prepararnos para dar estilo a la página. En primer lugar, debemos decirle al proyecto .NET Core que use archivos estáticos. Podemos hacerlo agregando laaplicación ' . UseStaticFiles();' al método'ConfigureServices()' en'Startup.cs.
publicvoidConfigure(IApplicationBuilder app,IWebHostEnvironment env)
{
if(env.IsDevelopment())
{
aplicación. UseDeveloperExceptionPage(); }
aplicación. UseStaticFiles();
aplicación. UseRouting();
aplicación. UseSitefinity();
aplicación. UseEndpoints(endpoints =>{
puntos finales. MapControllerRoute(nombre: "default",patrón: "{controller=Home}/{action=Index}/{id?}" );
Ahora necesitamos algunos estilos, scripts y fuentes. Todos los archivos de origen utilizados para el estilo de la página se colocarán en el directorio "client-src". Simplemente obtenga todos los archivos de la carpeta client-src de muestra y colóquelos en su proyecto. Para "jugar" con ellos, debe instalar NodeJS (versión 14.15.1) y ejecutar "npm i" y "npm start".
Esto precompilará todo el archivo SCSS a CSS, copiará todos los activos necesarios (fuentes) y minimizará el archivo JavaScript de la muestra, colocándolos todos en el directorio "wwwroot". Luego vinculamos los archivos en Layout.cshtml que se encuentra en Views/Shared.
Compile e inicie el proyecto de .NET Core y navegue hasta Sitefinity a través de localhost:5000/sitefinity (5000 es el puerto de proyecto predeterminado de .NET Core). Abra Páginas y seleccione "Ver" para la página de muestra de Quantum o navegue directamente a localhost:5000/netcore-renderer/quantum-sample-page. Se ve bien, ¿no?
Ahora permítanme repasar los pasos que debemos seguir implementando el diseño de la página. Para el propósito de la demostración, vamos a crear otra página de .NET Core y llamarla "Página de muestra cuántica 2". A continuación, seleccionamos "_Layout.cshtml" (plantillas de .NET Core) para la plantilla de página.
Desglosaré el estilo en los tres componentes principales: Diseño, Principal y Pie de página.
Para la sección Diseño, crearemos la base de la página. Comenzando con una página vacía, necesitamos agregar dos widgets de sección uno tras otro.
La configuración de visualización de Relleno y Márgenes representa clases CSS. Estas clases se pueden cambiar modificando las propiedades correspondientes en "OffsetClassess" en "appsettings.json". De forma predeterminada, representan las clases de utilidades de espaciado Bootstrap 4.
Ahí lo tienes, hemos terminado con el diseño de la página y debería verse así.
Continuemos con la sección Principal. Este necesitará un poco de trabajo extra:
<h4 class="qu-txt-white mb-2">QUANTUM WEB DESIGN WIZARD</h4>
<h1 class="qu-txt-white">Complete redesign for less than a week? We do this.</h1>
Para cambiar a Ver HTML, simplemente seleccione el botón de marcado que se muestra a continuación.
Edite el widget CTA y escriba "Obtener una demostración gratuita" en el campo de acción principal debajo de la etiqueta Acción. En Configuración de pantalla, cambie el valor de Acción principal a Acción secundaria. Establezca margen arriba en M.
Edite el segundo bloque de contenido, cambie a Ver HTML e inserte lo siguiente:
<h2>Improve the Customer Experience on Your Website</h2>
Columna 1 = "col-lg-5 col-md-12"
Columna 2 = "col-lg-1 col-md-12"
Columna 3 = "col-lg-6 col-md-12 mt-lg-0 mt-5 pl-xl-5"
<p class="qu-txt-gray qu-txt-medium">We design beautiful websites for any business, portfolio, organization and more with the help our wizard designers and front-end gurus.</p>
Cambie a la vista HTML y pegue lo siguiente:
<div class="media">
{{image markup}}
<div class="media-body">
<h4>EASY TO CHANGE</h4>
<p class="qu-txt-gray">
by applying the color scheme of their campaign.</p>
</div>
</div>
Ahora reemplace {{image markup}} con el marcado real de la imagen insertada anteriormente. Al final a todos les debería gustar algo como esto:
<div class="media">
<img sf-custom-thumbnail="true" src="http://localhost:5000/images/default-source/quantum-sample-page/a1.png?Status=Master&sfvrsn=43fbcc09_0" style="margin-right:10px;" sf-size="8218" width="80" alt="..." sf-constrain-proportions="true" sfref="[images%7COpenAccessDataProvider]b9038a2f-59f8-46a8-b9c5-a310aa9c758e"
/ data-sf-ec-immutable="">
<div class="media-body">
<h4>EASY TO CHANGE</h4>
<p class="qu-txt-gray">Enable marketers to manage the look and feel of your website by applying the color scheme of their campaign.</p>
</div>
</div>
Edite el segundo bloque de contenido, cambie a Ver HTML e inserte lo siguiente:
<h2>Mobile-Ready Solution Out of the Box</h2>
Columna 1 = "col-lg-5 col-md-12"
Columna 2 = "col-lg-1 col-md-12"
Columna 3 = "col-lg-6 col-md-12 mt-lg-0 mt-5 pl-xl-5"
<p class="qu-txt-gray qu-txt-medium">Quickly create a mobile site optimized for any device. All our designs are touch-friendly, easy to customize and offer accelerated mobile pages.</p>
Y eso es todo, estamos listos con la sección Principal. Solo asegúrate de revisar la estructura de la página también, ya que cambiamos las etiquetas de las secciones para ser más visibles en la estructura.
Queda una sección más, y así es como vamos a hacerlo:
<h2 id="get-free-demo" class="qu-txt-white">Get a Free Demo</h2>
Columna 1 = "col-lg-5 col-md-12"
Columna 2 = "col-lg-1 col-md-12"
Columna 3 = "col-lg-6 col-md-12 mt-lg-0 mt-5 pl-xl-5"
<hr class="-white" />
<p class="qu-txt-white qu-txt-small">© 2020 Quantum. All rights reserved.</p>
Y, hemos terminado con la última sección de nuestra página. No se ve mal, ¿verdad?
Siéntase libre de probarlo y siga la conversación en nuestro hilo dedicado a la comunidad. Allí, puede mezclarse con personas de ideas afines y mantenerse al día con lo último en Sitefinity y .NET Core. Le invitamos a unirse a nuestro seminario web dedicado a .NET Core y descubrir cómo la nueva arquitectura de 3 niveles le ayuda a preparar sus proyectos para el futuro. Presione el enlace de abajo para reservar su asiento.
Regístrese para un seminario web en vivo de .NET Core
Nikolay es un desarrollador frontend en Progress. Está trabajando para proporcionar una mejor experiencia de edición de contenido a través de la nueva aplicación de administración para Sitefinity CMS que se basa en Angular. Puedes encontrarlo en LinkedIn o Twitter.
Deje que nuestros expertos le enseñen cómo utilizar las mejores funciones de Sitefinity para ofrecer experiencias digitales atractivas.
Aprende másSuscríbete para recibir todas las noticias, información y tutoriales que necesitas para crear mejores aplicaciones y sitios de negocios