sábado, 12 de marzo de 2016

Predicciones del Equipo de Telerik para JavaScript en el 2016


¿Seguirá el uso de Javascript en aumento?, ¿Qué hay en el mercado para los frameworks más utilizados? ¿Qué sigue para JavaScript en la ejecución de aplicaciones web, móviles y de escritorio del lado del servidor?

Las respuestas a estas preguntas las responden los expertos de Telerik y personal influyende de la industria junto con los autores de algunos de las librerías más importantes de JavaScript.

En el siguiente link encontrarán el video que les ayudará con estas respuestas.

The Future of JavaScript: 2016 and Beyond

Ciclo de vida de una página ASP.NET

Cuando se ejecuta una página ASP.NET, ésta recorre un ciclo de vida en el que realiza una serie de pasos de procesamiento. Entre ellos se incluyen:

  1. La inicialización
  2. La creación de instancias de controles
  3. La restauración y el mantenimiento del estado
  4. La ejecución del código del controlador de eventos
  5. La representación. 

Es importante que se logre comprender el ciclo de vida de la página para que pueda escribir código en la fase del ciclo de vida apropiada y conseguir el efecto deseado. Además, si creamos controles personalizados, debemos estar familiarizado con el ciclo de vida de la página para poder inicializarlos, asignar datos de estado de vista a las propiedades de los controles y ejecutar la lógica de comportamiento de éstos correctamente. (El ciclo de vida de un control está basado en el ciclo de vida de la página, pero ésta produce en un control más eventos de los que están disponibles para la página ASP.NET por sí sola.)

Fases generales del ciclo de vida de la página


En términos generales, la página recorre las fases descritas en la tabla siguiente. Además de las fases del ciclo de vida de la página, existen las fases de la aplicación que se producen antes y después de una solicitud, pero no son específicas de una página.


Solicitud de página

La solicitud de página se produce antes de que comience el ciclo de vida de la página. Cuando un usuario solicita la página, ASP.NET determina si ésta se debe analizar y compilar (a fin de que comience el ciclo de vida de la página) o si se puede enviar una versión en caché de la página como respuesta sin ejecutar la página.

Inicio

En el paso de inicio, se establecen las propiedades de la página, como Request y Response. En esta fase, la página también determina si la solicitud es una devolución de datos o una nueva solicitud, y establece la propiedad IsPostBack. Además, durante esta fase se establece la propiedad UICulture de la página.

Inicialización de página

Durante la inicialización de la página, los controles incluidos en ella están disponibles y se establece la propiedad UniqueID de cada uno de ellos. Además, se aplican los temas correspondientes a la página. Si la solicitud actual es una devolución de datos, los datos de devolución aún no se han cargado y los valores de las propiedades del control no se han restaurado a los valores del estado de vista.

Carga

Durante la carga, si la solicitud actual es una devolución de datos, las propiedades del control se cargan con información recuperada del estado de vista y del estado del control.

Validación

Durante la validación, se llama al método Validate de todos los controles de validación, que establece la propiedad IsValid de cada uno de los controles de validación y de la página.
Control de eventos de devolución de datos
Si la solicitud es una devolución de datos, se llama a los controladores de eventos.

Representación

Durante la representación, el estado de vista se guarda en la página y, a continuación, ésta llama a cada uno de los controles para que aporte su salida representada al valor OutputStream de la propiedad Response de la página.

Descarga

Se llama a la descarga cuando la página se ha representado completamente, se ha enviado al cliente y está lista para ser descartada. Llegado este momento, se descargan las propiedades de la página, como Response y Request, y se llevan a cabo las operaciones de limpieza correspondientes.

Eventos del ciclo de vida


Dentro de cada fase del ciclo de vida de una página, ésta produce eventos que puede controlar para ejecutar su propio código. En los eventos de control, el controlador de sucesos se debe enlazar al evento, bien mediante declaración utilizando atributos como onclick o bien en el código.

Las páginas también admiten la conexión automática de eventos, lo que significa que ASP.NET busca métodos con nombres determinados y los ejecuta automáticamente cuando se producen ciertos eventos. Si el atributo AutoEventWireup de la directiva @ Page se establece en true (o si no está definido, ya que de forma predeterminada es true), los eventos de página se enlazan de forma automática a los métodos que utilizan la convención de nomenclatura Page_event, por ejemplo Page_Load y Page_Init. 

En los siguientes puntos se muestran los eventos del ciclo de vida de la página que se utilizan con más frecuencia. Hay más eventos que los mostrados. Sin embargo, no se utilizan en la mayoría de los escenarios de procesamiento de páginas. Los utilizan fundamentalmente los controles de servidor de la página Web ASP.NET para sus propias tareas de inicialización y representación. Si desea escribir sus propios controles de servidor ASP.NET, necesitará saber más sobre estas fases.

Page_PreInit

  • Utilice la propiedad IsPostBack para determinar si ésta es la primera vez que se procesa la página.
  • Crear o volver a crear controles dinámicos.
  • Establecer una página maestra de forma dinámica.
  • Establecer la propiedad Theme de forma dinámica.
  • Leer o establecer los valores de las propiedades de perfil.


Page_Init

Leer o inicializar las propiedades de los controles.

Page_Load

Leer y actualizar las propiedades de los controles.

Control events

Realizar el procesamiento específico de la aplicación:
Si la página contiene controles de validación, compruebe la propiedad IsValid de la página y de cada uno de los controles de validación antes de realizar cualquier procesamiento.
Controlar un evento específico; por ejemplo, para el control Button, el evento Click.

Page_PreRender

Realizar los cambios finales en el contenido de la página.

Page_Unload

Llevar a cabo el trabajo de limpieza final, que podría incluir:
  • El cierre de los archivos abiertos y de las conexiones a bases de datos.
  • La finalización del registro o de otras tareas específicas de cada solicitud.


Consideraciones adicionales sobre el ciclo de vida de la página

Tenga en cuenta la siguiente información adicional sobre el ciclo de vida de la página:
  • Cada uno de los controles de servidor ASP.NET tiene su propio ciclo de vida, que es similar al ciclo de vida de la página. Por ejemplo, se llama a los métodos Init y Load de un control durante los eventos de página correspondientes. Si ha incluido un control en la página, se llamará primero al método Init de dicho control, seguido por el método Init de la página. Sin embargo, se llamará antes al método Load de la página que al método Load del control.


  • Para personalizar la apariencia o el contenido de un control, deberá controlar sus eventos. Por ejemplo, todos los controles producen eventos Init, Load y Unload, aunque no es común que los desarrolladores de páginas controlen dichos eventos. Es más frecuente controlar los eventos específicos del control, como el evento Click del control Button y el evento SelectedIndexChanged del control ListBox. En determinadas circunstancias, también se pueden controlar los eventos DataBinding o DataBound de un control. 


  • Además de controlar los eventos producidos por la página, también puede reemplazar los métodos de la clase base de la página. Por ejemplo, puede reemplazar el método InitializeCulture de la página para establecer dinámicamente una referencia cultural. Tenga en cuenta que cuando se crea un controlador de eventos con la sintaxis Page_event, se llama a la implementación base de forma implícita y, por consiguiente, no es necesario llamarla de nuevo en el método. Por ejemplo, siempre se llama al método OnLoad de la clase de la página base, tanto si se crea un método Page_Load como si no. Sin embargo, si reemplaza el método OnLoad de la página por la palabra clave override (Overrides en Visual Basic), deberá llamar de forma explícita al método base. Por ejemplo, si reemplaza el método OnLoad de la página, deberá llamar a base.Load (MyBase.Load en Visual Basic) para poder ejecutar la implementación base.





Cómo cambiar el tipo de letra en los Scripts de TOAD

Algunas veces se nos es incómodo poder acomodar nuestros scripts en TOAD con cierto tipo de letra, por tal motivo es bueno saber donde podemos cambiar el tipo de letra que se utiliza en el Editor de TOAD.

Pasos para Cambiar el tipo de letra del Editor de TOAD

1. Ir a menú View y luego a Toad Options





2. Luego posicionarse en la sección Editor y luego en Display, posteriormente buscar la sección de Fonts y presionar el botón Editor tal y como se muestra en la imagen.





Espero que esto les sea de ayuda y les permita ver de forma más ordenada sus scripts.

Por acá les dejo un link acerca de indentación:
¿Qué es Indentación?


Saludos,

ASP.Net 4.0 no se ha registrado en el servidor web

Algunas veces cuando cuando vamos a trabajar con ASP.Net se nos asignan germinales que no están instaladas en el orden correcto y dejan por fuera la instalación del asp.net sobre el servidor web IIS (Internet Information Services) provocando que se nos presente el siguiente error:

"ASP.NET 4.0 no se ha registrado en el servidor web. Es necesario configurar manualmente el servidor web para ASP.NET 4.0 para que el sitio funcione correctamente"

ASP.Net 4.0 / aspnet_regiis.exe

Para solucionar este problema se debe ejecutar el comando aspnet_regiis.exe -i

Este comando se encuentra en el directorio:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

aspnet_regiis.exe

Espero que esto les ayuda a solucionar este problema que común mente pasa cuando desarrollamos en web y en máquinas no son instaladas por otras personas.

Saludos,

martes, 26 de mayo de 2009

Como cambiar la Cultura en Reporting Services (rdlc)

Globalization, Changing Culture of Reporing Services (RDLC)

Hace unos días tuve que hacer un projecto el cual debía trabajar con varios Idiomas (Globalization) y como reporteador utilizamos Reporting Services de forma desconectada o Reporting Services Stand Alone. Los reportes tipo RDLC cuando se trabajan en el diseño es posible cambiar la cultura o el idioma del reporte por medio de la propiedad Language, pero en tiempo de diseño no esta tan sencillo como cambiar una propiedad.

En nuestro caso, la aplicación podría cambiar de cultura al momento de iniciar, lo que nos trajo un problema con los reportes. Este problema yo lo ataque de la sigueinte manera:


'''
''' Este método establece la nueva cultura
''' para el reporte según el parámetro recibido
'''

''' Path del reporte
''' Nueva cultura especificada para el reporte.
'''

Public Shared Sub SetCultureToReport(ByVal ReportPath As String, ByVal Culture As String)
Dim xmlDoc As XmlDocument
xmlDoc = New XmlDocument
'---------------------------------------------
'Read the XML structure of the Report, for get
'the tag 'Language' of the report and
'to modify with the culture of the application.
'---------------------------------------------
xmlDoc.Load(ReportPath)
'---------------------------------------------
'Change the Culture.
'en-US
'---------------------------------------------

xmlDoc.ChildNodes(1).Item("Language").InnerText = Culture
'---------------------------------------------
'Save the Report with the new Culture.
'---------------------------------------------

xmlDoc.Save(ReportPath)
xmlDoc = Nothing
End Sub


Como ven lo que hace el metodo prácticamente es sobreescribir el reporte inicial y con eso se puede trabajar con varios idiomas en tiempo de ejecución. Lo mismo aplica para aplicaciones Asp.Net como aplicaciones Windows Forms.

Espero que sea de utilidad para alguna persona!!!

Saludos!

Visita: InfoDotNet.com y encontraras mucha información acerca de programación con .Net

jueves, 16 de abril de 2009

Could not load type 'System.Web.UI.ScriptReferenceBase'

Este error se ha vuelto muy comun cuando estamos trabajando con .Net Framework 3.5 SP1 y luego montamos nuestra aplicación en un servidor con .Net Framework 3.5 sin SP1.

Could not load type 'System.Web.UI.ScriptReferenceBase' from assembly 'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

De modo que hay dos posibles soluciones
1. Actualizar nuestro servidor con .Net Framework 3.5 SP1

2. Compilar nuestra aplicación sin el .Net Framework 3.5 SP1

Por otra parte, si estás trabajando con un provedor de servicio de hospedaje como Mosso y has registrado tus dominios antes de que Mosso haya actualizado los cluster, debes o bien solicitar a Mosso que te vuelva a registrar tu dominio sin el borrado de las cuentas de correo o bien si no te interesan las cuentas de correo, pues seria nada mas de volver a registrar el dominio y este se hospedará en los cluster actualizados con el SP1 y tu problema se resuelve.

Suerte con la actualización a .Net Framework 3.5 SP1.

martes, 7 de abril de 2009

Por que no aparece el icono de Imprimir con Reporting Services (rdlc)?

He estado trabajando ultimamente con Reporting Services 2005 con definición de reportes en el cliente (rdlc), pero me he topado con la sorpresa de que el control ReportViewer que viene incorporado en .Net 2005 no proporciona compatibilidad de impresión.


Lo que Microsoft recomienda es:
1. utilizar la opción de impresión del navegador (IE, Firefox, Safari)
2. exportar a PDF o Excel ya que estos dos brindarían mejores acabados de impresión.

Pero en ocasiones por cuestiones de seguridad y requerimientos del usuario no es posible habilitar la opción de exportación a otro formato.

De modo que aquí tendríamos dos posibles soluciones.

1. Utilizar el servidor de Reporting Services, ya que cuando se está trabajando con dicho servidor si se habilita la funcionalidad del botón de impresión.

2. Imprimir directamente nuestro reporte a una impresora ya predeterminada.

A continuación desarrollaremos un ejemplo pequeño de como enviar directamente a la impresora un Reporte de tipo rdlc.


Primero debemos incluir los siguientes Imports.







Ahora crearemos 3 variables que se utilizaran para almacenar los objetos de tipo stream y los nombres de los archivos temporales a crear.



Se debe crear un botón donde coloquemos la funcionalidad de impresión, de modo que este botón estaría realizando el llamado al reporte, la carga de datos del reporte (pasar el datasource), luego realizar la exportacion del reporte a archivos temporales de tipo emf y posteriormente enviar a impresora cada uno de estos archivos por medio del método Print.








Crearemos un método llamado CreateStream el cual se va a invocar posteriormente en el método render del reporte que están en el método Export.









Posteriormente creamos el método Export, el cual se encarga de enviar los parametros de margenes y tamaño de pagina para los archivos emf y además invoca al método CreateStream.









Ahora se crean los métodos Print y PrintPage los cuales se encargan de enviar todos los archivos emf a la impresora seleccionada.
















Con el codigo anterior se puede enviar sin ningun problema un reporte directamente a impresora, queda pendiente para hacer una solución más elegante, mostrar un cuadro de dialogo donde se listen las impresoras disponibles en la maquina del usuario, pero eso será para una segunda entrega de este artículo.


Cualquier mejora que se le pueda hacer al codigo será bienvenida.

P.D. Si alguien sabe como subir archivos en este blog se lo agradecería para poder subir el ejemplo. De momento me pueden escribir a info@infodotnet.com para enviarles el ejemplo por correo.