Sí—puedes incrustar un visor de archivos en línea seguro y sin complementos en cualquier aplicación ASP.NET Core, MVC o WebForms en solo unos minutos, y Doconut App hace todo el trabajo pesado.
Las empresas que ofrecen contratos, planos o activos de diseño necesitan un visor que respete las políticas de seguridad corporativas, funcione en cualquier navegador y nunca obligue a los usuarios a instalar complementos de terceros. Doconut App entrega exactamente eso: un visor basado en el navegador que soporta PDF, Office, CAD y más de 50 formatos adicionales, con cifrado AES‑256, cargas solo por SSL y una interfaz totalmente personalizable. Esta publicación te guía a través de todo el flujo de trabajo—desde asegurar la carga del archivo hasta renderizar el visor—para que puedas entregar una solución pulida y de nivel empresarial sin escribir un motor de renderizado desde cero.
1. Por qué la seguridad y el renderizado sin complementos son importantes para aplicaciones web .NET
Las empresas modernas tratan cada documento como una posible fuga de datos. Cuando incrustas un visor que depende de ActiveX, Flash o un cliente nativo, heredas tres riesgos:
| Riesgo | Impacto en tu aplicación .NET | Cómo lo elimina Doconut App |
|---|---|---|
| Dependencia de complementos | Los usuarios deben instalar o habilitar un complemento del navegador, lo que genera tickets de soporte y dolores de cabeza de cumplimiento. | Doconut se ejecuta completamente en HTML5/Canvas, requiriendo cero complementos. |
| Tránsito sin cifrar | Los archivos viajan por HTTP o se almacenan en texto plano, violando GDPR, HIPAA o políticas internas. | Todas las cargas pasan por SSL y se almacenan con cifrado AES‑256. |
| Ciclo de vida no controlado | Los archivos pueden permanecer en el servidor, aumentando la superficie de vulnerabilidad. | Doconut elimina automáticamente archivos después de la visualización, garantizando una ventana de retención corta. |
Porque el visor se entrega como un componente JavaScript que se comunica con el servicio de renderizado seguro de Doconut, mantienes la pila .NET limpia—sin bibliotecas nativas adicionales, sin binarios de terceros y sin auditorías de cumplimiento extra.
2. Preparando tu proyecto .NET – la configuración mínima para ASP.NET Core, MVC y WebForms
Independientemente de si utilizas ASP.NET Core, MVC 5 o WebForms, los pasos de preparación son idénticos:
-
Agregar el paquete de scripts de Doconut
Doconut aloja un visor ligero en su CDN. Añade la siguiente línea a tu página de diseño (por ejemplo,_Layout.cshtmloSite.Master):<script src="https://doconut.app/viewer.min.js"></script> -
Crear un elemento marcador
El visor inserta un lienzo en cualquier<div>que designes. Ejemplo para Razor:<div id="docViewer" style="width:100%; height:800px;"></div>Para WebForms, coloca un
<asp:Panel>conrunat="server"y asígnaleID="docViewer". -
Referenciar el CSS de Doconut (opcional)
Si deseas la barra de herramientas y el tema predeterminados, incluye el archivo CSS:<link rel="stylesheet" href="https://doconut.app/viewer.min.css" />
Eso es todo lo que necesitas en cuanto a activos estáticos. El resto del trabajo ocurre en tu código del lado del servidor (carga, cifrado, generación de tokens) y en un pequeño script de inicialización del lado del cliente.
3. Construyendo un endpoint de carga segura – AES‑256, SSL y eliminación automática
El visor nunca accede a los archivos directamente en tu sistema de archivos. En su lugar, subes el documento a una ubicación de almacenamiento temporal y cifrada que Doconut lee bajo demanda. A continuación se muestra una descripción de alto nivel de los pasos requeridos para ASP.NET Core; las mismas ideas se aplican a MVC y WebForms.
Flujo de trabajo del lado del servidor
- Aceptar el archivo cargado – Usa el estándar
IFormFile(oHttpPostedFileen WebForms) para recibir el documento del cliente. - Cifrar el archivo con AES‑256 – Antes de persistir el flujo, encripta el contenido usando una biblioteca probada como
System.Security.Cryptography.Aes. Almacena el blob cifrado en una ubicación segura (por ejemplo, Azure Blob Storage con cifrado del lado del servidor habilitado, o un bucket S3 con SSE‑AES256). - Generar una URL firmada de corta duración – Crea una URL válida solo por unos minutos (por ejemplo, 5 minutos). La URL debe ser HTTPS e incluir un token criptográfico que Doconut pueda validar. La mayoría de los proveedores de almacenamiento en la nube ofrecen una función de “URL pre‑firmada” que cubre esta necesidad.
- Devolver la URL firmada al cliente – Envía una respuesta JSON que contenga la URL. El cliente entregará esa URL al visor Doconut.
- Programar la eliminación automática – Tras la expiración de la URL firmada, un trabajo en segundo plano (Hangfire, Azure Functions, etc.) elimina el blob cifrado, garantizando que el archivo no permanezca en el servidor.
Equivalentes en MVC / WebForms
- MVC – Coloca la misma lógica dentro de una acción de controlador regular y devuelve
JsonResult. - WebForms – Implementa un manejador
.ashxo un método de página que siga los mismos pasos: recibeRequest.Files[0], cifra, genera una URL pre‑firmada y escribe la respuesta JSON.
La única diferencia es la sintaxis de enrutamiento; el flujo de trabajo de seguridad sigue siendo idéntico.
4. Renderizando el visor Doconut – de la URL al lienzo en el navegador
Una vez que el cliente recibe la URL firmada, el visor puede iniciarse con una única llamada JavaScript. El SDK de Doconut maneja automáticamente el streaming, el renderizado y las interacciones de la interfaz.
<script>
// Assume `response.viewerUrl` contains the signed URL returned from the upload endpoint
function launchViewer(viewerUrl) {
// Initialise the Doconut viewer. The global object provided by the script is `DoconutViewer`.
DoconutViewer.init({
containerId: "docViewer", // The <div> we placed earlier
fileUrl: viewerUrl, // Signed, HTTPS URL to the encrypted file
toolbar: true, // Show the built‑in toolbar
theme: "light" // Optional visual theme
});
}
// Example: after a successful upload
fetch("/api/document/upload", {
method: "POST",
body: myFormData,
credentials: "include"
})
.then(r => r.json())
.then(data => launchViewer(data.viewerUrl));
</script>
Por qué esto funciona para cualquier variante .NET
- ASP.NET Core Razor – El script vive en la misma vista que aloja el formulario de carga, por lo que el flujo es continuo.
- MVC – Usa
@section Scriptspara inyectar el mismo fragmento; el controlador devuelve JSON que$.ajaxde MVC puede consumir. - WebForms – Registra el script con
ClientScript.RegisterStartupScriptdespués de que la carga se complete, y llama alaunchViewerde la misma manera.
Porque Doconut transmite el documento directamente desde la URL firmada, el servidor nunca vuelve a tocar el archivo después del paso de carga. El visor renderiza PDFs, archivos Word, dibujos CAD y todos los demás formatos enumerados en los datos del producto—sin ninguna conversión adicional del lado del servidor.
5. Personalizando el visor para que coincida con tu marca – afinando el visor de archivos en línea
Las empresas a menudo necesitan que el visor se vea como una parte nativa de su portal. La UI totalmente personalizable de Doconut App te permite:
| Personalización | Cómo aplicarlo en .NET |
|---|---|
| Diseño de la barra de herramientas | Pasa toolbar: false y crea tus propios botones que llamen a la API JavaScript del visor (por ejemplo, zoomIn(), print()). |
| Esquema de colores | Establece theme: "dark" o suministra un archivo CSS personalizado que sobrescriba las clases predeterminadas. |
| Idioma y accesibilidad | Doconut respeta el atributo lang en el contenedor; también puedes inyectar etiquetas ARIA mediante la opción accessibility. |
| Ganchos de eventos | Callbacks como onPageChange, onError y onDownload te permiten registrar métricas de uso en tu pipeline de telemetría existente. |
Todos estos ganchos se configuran en el mismo objeto JavaScript mostrado en la sección anterior. Como el visor vive completamente en el cliente, no hay carga extra en el servidor—tu backend .NET sigue centrado en autenticación, cifrado y lógica de negocio.
6. Rendimiento y escalabilidad – mantén la experiencia ágil
Incrustar un visor en un portal de alto tráfico plantea dos preocupaciones prácticas: tiempo de carga y renderizado concurrente. Doconut App aborda ambos desde el primer momento, pero puedes reforzar el rendimiento con algunos trucos específicos de .NET.
| Preocupación | Ventaja incorporada de Doconut | Consejo adicional para .NET |
|---|---|---|
| Descarga inicial | El script del visor pesa solo ~150 KB, comprimido con gzip. | Habilita compresión de archivos estáticos (app.UseResponseCompression()) y caché (Cache‑Control: public, max‑age=31536000). |
| Streaming de archivos | Doconut transmite solo las páginas necesarias, usando solicitudes de rango HTTP. | Almacena los blobs cifrados en una CDN regional (Azure Front Door, Amazon CloudFront) para reducir la latencia. |
| Usuarios concurrentes | El renderizado ocurre en el cliente; el servidor solo sirve el archivo cifrado una vez por visualización. | Limita la entrada del endpoint de carga con IApplicationRateLimiter para proteger contra picos. |
| Huella de memoria | No hay bibliotecas de conversión PDF del lado del servidor, por lo que el proceso ASP.NET permanece ligero. | Ejecuta el servicio de carga en un microservicio separado si ya dispones de una cola de trabajos pesada. |
Siguiendo estas directrices, puedes soportar miles de visores simultáneos sin escalar la capa web .NET más allá de lo que ya tienes.
Conclusiones clave
- Doconut App proporciona un visor sin complementos y 100 % seguro que funciona con ASP.NET Core, MVC y WebForms.
- Las cargas son solo SSL, se almacenan con cifrado AES‑256, y se eliminan automáticamente después de que la URL firmada expira.
- La integración requiere solo un script CDN, un contenedor
<div>y un pequeño endpoint del lado del servidor que devuelva una URL firmada. - El visor admite PDF, Office, CAD y más de 50 formatos de imagen—no se necesita conversión del lado del servidor.
- La UI puede ser totalmente personalizable para coincidir con la marca corporativa, y el visor ofrece herramientas integradas de zoom, medición y capas para archivos CAD.
- El rendimiento se maneja del lado del cliente; los desarrolladores .NET solo necesitan asegurar la compresión de archivos estáticos y la caché opcional en CDN.
- Todo el flujo de trabajo—desde la carga segura hasta el renderizado en el navegador—se integra limpiamente en los pipelines de autenticación y autorización .NET existentes.
Preguntas frecuentes
P1: ¿Necesito instalar algún paquete NuGet para usar Doconut?
No. El visor se entrega como un bundle JavaScript del lado del cliente desde el CDN de Doconut. Tu servidor solo necesita el middleware habitual de ASP.NET Core para cargas de archivos y cifrado, que probablemente ya tengas.
P2: ¿Cómo garantiza Doconut que el archivo se elimine después de la visualización?
Doconut genera una URL firmada de corta duración que expira tras un período configurable (comúnmente cinco minutos). Después de que la URL expira, tú (o un trabajo de limpieza en segundo plano) eliminas el blob cifrado. Esto garantiza que el documento no se retenga más tiempo del necesario, cumpliendo con políticas estrictas de retención de datos.
P3: ¿Puedo usar el visor para imprimir o exportar el documento?
Sí. La barra de herramientas integrada de Doconut incluye opciones de impresión y exportación que preservan la calidad y el diseño original del archivo fuente.
¿Listo para incrustar un visor de documentos seguro y sin complementos en tu aplicación .NET? Comienza hoy con Doconut App y entrega PDF, Office, CAD y docenas de formatos adicionales de forma segura e instantánea.