Entradas en la etiqueta ‘ASP.NET’

Ebooks gratuitos: Linq, ASP.NET Ajax, Silverlight

Para los que les interesen estos temas, pueden descargar (requiere tener una cuenta passport) los siguientes libros:

  • Introducing Microsoft LINQ de Paolo Pialorsi and Marco Russo.
  • Introducing Microsoft ASP.NET AJAX de Dino Esposito.
  • Introducing Microsoft Silverlight 1.0 de Laurence Moroney.

Libros gratuitos: Linq, ASP.NET Ajax, Silverlight

Tags: , ,

ASP.NET, ReportViewer y Firefox

Firefox es, desde que pude pagar por mis propios medios una conexión ADSL –a mediados del 2004 aproximadamente :) , el navegador que uso casi para todo; aunque inicialmente me subí al coche sólo por ser Software Libre, ahora sin duda es una herramienta que no puede faltar en mi entorno de desarrollo.

Retomando el tema de la entrada, puesto que generalmente las cosas que salen de Microsoft sólo funcionan bien en Internet Explorer, el control ReportViewer no genera el HTML/CSS adecuado para que los reportes se muestren correctamente en Firefox:

Salida del control ReportViewer en Firefox

Luego de revisar un poco la estructura del documento que genera ese control (gracias a Firebug), pude preparar un pequeño código para que al menos se muestre el reporte completo, las líneas que importan están resaltadas:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    
    <script type="text/javascript">    
    window.onload=function() {
        window.frames['ReportFrame<%= ReportViewer1.ClientID %>'].
            window.frames['report'].
                document.getElementById('oReportCell').
                    style.width='100%';
    }    
    </script>
    
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="cmdExportar" runat="server" OnClick="cmdExportar_Click" Text="Button" />
        <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
            Height="400px" Width="100%">
            <LocalReport ReportPath="Productos.rdlc">
            </LocalReport>
        </rsweb:ReportViewer>
        </div>
        
    </form>
</body>
</html>

Es evidente que este hack sólo funcionará si el reporte está en el mismo servidor que la aplicación Web, esto debido a las restricciones de seguridad que imponen los navegadores sobre los i/frames.

No sé si a alguien más aparte de mi le vaya a servir esta entrada, sólo lo comento por el desazón que tuve durante algunas jornadas de trabajo ;)

Tags: , , ,

ASP.NET MVC

Siguiendo con esta serie de entradas cortas, acaba de salir ASP.NET 3.5 Extensions Preview, que entre las novedades más importantes incluye la primera versión para el público del Framework MVC desarrollado por Microsoft.

Plantilla para crear un proyecto MVC
Estructura de la aplicación MVC

Habrá que ver que tan bueno es esta implementación del patrón MVC en comparación a otras que ya llevan algo de tiempo en esto como MonoRail y Spring.NET. Aunque con respecto a este tema, el equipo que está tras el desarrollo de MonoRail ya expresó su posición:

Regarding the Microsoft MVC

To The .Net Community,

You are probably wondering how the recently announced Microsoft MVC project will compete with Castle’s MonoRail.

We think that any attempt to offer more productive tools, better testability and better separation of concerns is valuable, no matter who is the author. We are certainly pleased to see that Microsoft is delivering something that allows a more agile and productive type of web software development.

We also believe that MonoRail has been providing the same thing for the past two and half years, and will continue to do so. We’re grateful that MS has chosen to offer integration points for Monorail and the Castle stack and as soon as it’s available we will be working to integrate it with the rest of our projects.

Is MS’ MVC better? Worse? Only once we have used both will we be able to tell.

Tags: ,

Videos sobre seguridad en ASP.NET

Por si no lo vieron todavía, una serie de videos introductorios — en inglés — sobre seguridad en ASP.NET:

  • Canonicalization: Explica sobre los ACLs e impersonación de usuarios para acceder a recursos, así como usar Server.MapPath para limitar el acceso sólo a rutas que esten dentro del directorio virtual de una aplicación.
  • Cookies: Muestra como detectar la alteración de cookies.
  • Cross-Site Scripting: Explica que es XSS y como prevenir éstos ataques.
  • Regular Expressions: Explica el uso de expresiones regulares para la validación de los datos.
  • SQL Injection: Explica que es SQL Injection y cómo evitar este tipo de ataques usando consultas parametrizadas.
  • Validation Controls

Fuente: Blog de J.D. Meier

Tags: , , , ,

Para los que puedan estar interesados, Misión Géminis 48 hs. es un concurso de Microsoft para…

… demostrar en 2 etapas qué tanto sabes acerca de .Net y PHP. Durante la primera etapa deberás responder una serie de preguntas de selección múltiple sobre estos lenguajes de programación. Los participantes que contesten correctamente todo el cuestionario, con la posibilidad de múltiples intentos, podrán pasar a la segunda etapa – La Misión. Allí deberás estar preparado para el reto de desarrollar una aplicación web funcional, un sistema de Control Epidemiológico basado en PHP, y migrarla a ASP.NET. Tendrás sólo 48 horas para hacerlo, y los primeros 48 que lo hagan estarán participando por increíbles premios. Los 3 ganadores designados por especialistas calificados recibirán U$D 1.000, U$D 800 y U$D 400, respectivamente.

Para mayor información revisen la página del concurso.

#Permalink Comentarios (2) .NET, Microsoft, Miniposts, PHP