viernes, 20 de agosto de 2010

Instalar PHP con IIS

Ayer encontré este post buenísimo en http://www.desarrolloweb.com/ y quise agregarlo a mi colección y aqui les dejo su contenido.

Descargar archivos de http://www.php.net/downloads.php#v5
Se recomienda bajar los archivos PHP 5.2.1 zip package y las extensiones adicionales PECL PECL 5.2.1 Win32 binaries
1. Crear directorio en C:PHP y extraer los archivos de ph 5.21zip package y extraer los archivos de PECL 5.2.1 WIN32 binaries en el directorio C:PHPEXT.
2. Renombrar el archivio php.ini-recommended como php.ini
3. Modificar archivo php.ini en las siguientes variables short_open_tag = On extension_dir = "c:phpext" cgi.force_redirect = 0
4. Copiar php.ini a c:windows o c:winnt
5. Registrar la DLL regsvr32 php5activescript.dll
6. Agregar ruta de del directorio php y las extenciones en la opcion de Environment Variable de windows2003

7. Configuración en IIS



8. Configurando extensiones en IIS








9. Probando PHP
Crear archivo index.php en C:Inetpub\wwwroot
Copiar el codigo siguiente en el archivo


2. Abrir IE6 y poner la dirección http://localhost/index.php, si le da error verificar los pasos de la instalación.
Si no da error saldra una pantalla con información sobre la versión de php.

lunes, 16 de agosto de 2010

INSTALACIÓN ASP.NET 2.0 AJAX Extensions

Instalando el paquete de ASP.Net 2.0 AJAX Extensions, paso a paso:

Si piensas implementar y trabajar con AJAX en tus proyectos de ASP.NET, primero debemos antes de agregar el AJAXTOOLKIT a nuestro Visual Studio 2005 o 2008, Descargar el fichero de instalación ASPAJAXExtSetup.msi desde la siguiente ubicación
Microsoft ASP .Net 2.0 AJAX Extensions 1.0.
Ejecutamos el archivo descargado (ASPAJAXExtSetup.msi).
Nos aparecerá la siguiente ventana:



Y seguimos las indicaciones de la instalación.

Y con esto estaremos listos para agregar posteriormente la librería de AJAXTOOLKIT.

Saludos

viernes, 13 de agosto de 2010

Visua Studio Express 2008 y 2010

Si necesitas realizar algunos proyectos con las funcionabilidades básicas de visual studio .NET ya sea 2008 o 2010 aqui les dejo el link para puedan descargarlo:
pincha aqui

miércoles, 11 de agosto de 2010

Escribir Archivo XML desde ASP.NET

Amigos, el día de ayer me toco la tarea de escribir un archivo XML desde mi pagina asp.net, el objetivo era generar un archivo *.xml como un log de errores. y para ello generé las siguientes clases:


1. Generé una clase llamada CLS_Logger e incluí los siguientes import
Imports System
Imports System.Data
Imports System.Diagnostics
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Serialization
Imports System.Data.SqlClient
Imports System.Exception
Imports System.Data.Sql
Imports System.Text
Imports System.Collections.Generic
Imports System.Configuration.ConfigurationManager
Imports System.Web
Imports System.Web.UI.Page





2. En el codebehind de mi pagina lo implemente así, agregando a la vez la referencia de la clase anterior:


tiene que ajustar este codigo de acuerdo a tu necesidad, pero tienes aqui la idea básica de como funciona.


Espero les siva. Saludos.

martes, 10 de agosto de 2010

SQL Server 2005 Problemas de Conexión Remota

Después de instalar SQL Server 2005 EXPRESS y querer atacar con mi aplicación al servidor de SQL Server 2005 EXPRESS me daba error de conexión o acceso denegado al servidor.

Investigando he encontrado que el problema es de configuración del servidor, ya que por defecto no admite conexiones TCP/IP para conexiones remotas.
Para habilitar las conexiones remotas: Inicio, Todos los programas, Microsoft SQL Server 2005, Configuration Tools, SQL Server Configuration Manager.
De la lista de SQL Server Configuration Manager seleccionar SQL Server 2005 Network Configuration. Aparecerá Protocols for SQLEXPRESS (SQLEXPRESS porqué es la version que hemos instalado).En la derecha aparecen los protocolos para SQLEXPRESS:

Seleccionar el protocolo TCP/IP y darle doble clic. Hay que ponerlo Enabled = Yes.
Pulsamos en aplicar, y aparece el mensaje que es necesario reiniciar el servicio para que tenga efecto las modificaciones del protocolo TCP/IP.
Aceptamos y reiniciamos el servicio SQL SERVER EXPRESS
Si sigues con problemas de conectividad, intenta arrancar el servicio "SQL Server Browser" en servicios del servidor.

jueves, 5 de agosto de 2010

Leer cadena de conexión del WebConfig desde Una Clase

Con este truco informático podremos leer la cadena de conexión del Web Config en ASP.NET 2.0. Primero crearemos la cadena de conexión en el web config:

<;connectionstrings>;
<;remove name="LocalSqlServer">;
<;add name="LocalSqlServer" connectionString="DataSource=myDBServer;database=myDB;Integrated Security=True;" providerName="System.Data.SqlClient"/>;
<;/connectionStrings>;

Ahora ya tenemos la cadena de conexión creada en el Web Config. Podemos leerla así de fácil:

En C#:

string strConnString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;

En VB.NET:

Dim strConnString As String = ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString

Response.Redirect desde una Clase "*.cs"

Hoy día, necesité hacer un response.redirect("xxxxxx.aspx"); desde una clase de mi proyecto ASP.NET.

Mi clase se ubica en la capa de Negocio del proyecto, ahora, para poder realizar este proceso se tiene que agregar la referencia System.Web y System.Configuration en la capa.



Luego de esto: cuando requieras hacer el response debes de colocar la siguiente línea:


System.Web.HttpContext.Current.Response.Redirect("ErrorUsuario.aspx");

y listo

Convertidor de Codigo .NET

Navengado encontré esta interesante herramientas para todo aquel que le apasione el desarrollo de aplicaciones, o necesite simplemente migrar un fragmento de código de un lenguaje a otro.


Propiedades en C#

Amigos, aqui les dejo la estructura de como declarar propiedades en C #

public clase SomeClass {
SomeClass someclass = new SomeClass();

public static uint Somenum
{

set { m_somenum = value; }

get { return m_somenum; }

}
}

Cosas básicas pero muy utiles. Espero les sirva

miércoles, 4 de agosto de 2010

ASP.NET AJAX en .NET 3.5 y VS 2008

ASP.NET AJAX incluído en .NET 3.5
ASP.NET AJAX 1.0 se publicó como una descarga aparte que se instalaba encima de ASP.NET 2.0. Con .NET Framework 3.5, todas estas características vienen incluídas en ASP.NET, con lo que no tendremos que descargar ni instalar para construir o desplegar aplicaciones.
Cuando creamos nuevas aplicaciones ASP.NET o sitios web con VS 2008 con el framework .NET 3.5, VS añadirá las líneas necesarias para AJAX en el web.config y añadirá los controles de servidor de ASP.NET AJAX en nuestra barra de herramientas.



La versión de ASP.NET AJAX que viene con .NET 3.5 tiene unas cuantas mejoras – entro otras el soporte para usar UpdatePanels en WebParts, soporte para WCF basado en end-points JSON, soporte para usar ASP.NET Profile, Role y Login Application Services con JavaScript, y se han corregido algunos bugs y se ha mejorado el rendimiento.

Entendiendo el versionado de ASP.NET AJAX
ASP.NET AJAX 1.0 y .NET 3.5 pueden estar instalado en la misma máquina. ASP.NET AJAX 1.0 está implementado en la V1.0 del ensamblado System.Web.Extensions.dll. La versión V3.5 de System.Web.Extensions.dll es totalmente compatible con la implementación 1.0 (con lo que no tenemos que cambiar ningún código para usarlo).
Cada aplicación ASP.NET en una máquina puede elegir qué versión de ASP.NET AJAX se usara para construir y ejectuarse. Esto se configura en la sección del web.config, así como con el assembly con el que se haya compilado (en proyectos de tipo sitios web estas referencias se registran en la sección del web.config, en proyecto del tipo aplicaicon web está referenciada en el archivo de proyecto).
Podemos usar VS 2008 para aplicaciones de ASP.NET AJAX 3.5, y usar el soporte multitargeting para construir aplicaciones web ASP.NET 2.0 que usen ASP.NET AJAX 1.0. Veremos cómo hacer esto en las siguientes secciones.

Información importante sobre la Beta 2
Hace unos días publicamos la Beta 2 en la web, descubrimos un problemilla con ASP.NET AJAX. Si leeis el post original VS 2008 and .NET 3.5 Beta Released, recordaréis que comenté un parche para instalar y resolver el problema:

Debemos descargar y ejecutar este archivo batch. Sólo tarda unos pocos
segundos en ejecutarse y arregla un problema que hemos encontrado hace una
semana con la política de versiones de System.Web.Extension.dll – que es el
assembly que contiene a ASP.NET AJAX. Si no ejecutamos este archivo, entonces
los proyectos de ASP.NET 2.0 creados con ASP.NET AJAX 1.0 y VS 2005 usará la
versión que viene en la Beta 2 de .NET 3.5. Esto funcionará bien - pero
introduciremos una dependencia con .NET 3.5 en aplicaciones que creemos con VS
2005. La ejecución del archivo Batch la política de enlazado del assembly
System.Web.Extensions.dll y nos aseguraremos que sólo usaremos la versión
nueva de .NET 3.5 en los proyectos en los que usemos explícitamente .NET
3.5
Las buenas noticias es que corregimos el problema, y permite que podamos desarrollar apilcaciones con ASP.NET AJAX en la misma máquina tanto con VS 2005 y VS 2008.
El primer síntoma es que VS 2008 detecta una versión incorrecta de ASP.NET AJAX cuando abrimos proyectos de ASP.NET 2.0 (en concreto puede hacer que VS 2008 piense que en realidad se está usando .NET 3.5). Esto hace necesario un par de pasos adicionales cuando abramos con la Beta2 por primera vez un proyecto con ASP.NET AJAX 1.0. No tendremos que hacer estos pasos con la release final de VS 2008.
Actualizar aplicaciones ASP.NET AJAX 1.0 para usar ASP.NET AJAX 3.5
Cuando usemos VS 2008 para abrir una aplicacion existente de ASP.NET 2.0 que usa ASP.NET AJAX 1.0, podemos elegir si queremos actualizar la aplicación para que use .NET 3.5 (y la versión de ASP.NET AJAX que incluye).

El equipo de herramientas web de Visual Studio ha publicado el post Upgrading ASP.NET AJAX 1.0 Websites and Web Applications to .NET Framework 3.5 que nos describe las instrucciones para conseguir usar VS 2008 Beta 2. Las buenas noticias es que esa actualización NO requiere ningún cambio en nuestro código, y sólo tardará unos minutos en terminar.

Como parte de la actualización de ASP.NET AJAX 1.0 a .NET 3.5, querremos actualizar los controles de la librería de ASP.NET AJAX que estemos usando. El equipo de ASP.NET AJAX Control Toolkit está publicando versiones tanto para ASP.NET AJAX 1.0 y .NET 3.5 que podemos descargar aquí:

El post Upgrading ASP.NET AJAX 1.0 Websites and Web Applications to .NET Framework 3.5 también describe cómo añadir esta versión ASP.NET AJAX 3.5 del AJAX Control Toolkit en la barra de herramientas de VS 2008


Usando VS 2008 para construir aplicaiones ASP.NET AJAX 1.0 (con Multi-Targeting).
Cuando usamos VS 2008 para abrir aplicaiones de ASP.NET 2.0 que usen ASP.NET AJAX 1.0 podemos elegir no actualizarlo a la versión .NET 3.5, y usar el multi-targeting de VS 2008 para construirla con ASP.NET 2.0 y ASP.NET AJAX 1.0
El equipo de herramientas web de VS ha publicado el post Using VS 2008 to Target ASP.NET AJAX 1.0 que describe cómo hacer esto.
En ese post hay una serie de pasos manuales que tendremos que hacer en la Beta2 para tener en la barra de herramientas tanto las herramientas de ASP.NET AJAX 1.0 como los controles de ASP.NET AJAX Control Toolkit. Para la versión final de VS 2008 pondremos un paquete de instalación para hacer esto automáticamente, y añadiremos templates tanto de items como de proyectos para ASP.NET AJAX 1.0.
Os estaréis preguntado – ¿Porque usar VS 2008 para hacer aplicaciones con ASP.NET AJAX 1.0 en vez de VS 2005?. Las ventajas son que podremos aprovechar las nuevas características de VS 2008 como el intellisense de JavaScript, debugging de javaScript, mejor diseñador WYSISWYG, administración de CSS, las mejoras del editor de código, test unitarios en VS Professional, integración con TFS, y más.

Resumen
.NET 3.5 incluye soporte para todas las características de ASP.NET AJAX 1.0. Escribiré algunos post más adelante sobre cómo aprovecharlas.
Podemos usar VS 2008 tanto para crear proyectos con .NET 3.5 como para versiones anteriores del framework. El equipo de herramientas web de VS ha publicado algunos post sobre cómo hacer esto paso por paso.
Espero que sirva.

Abrir Popup con JavaScript

Para abrir una ventana, se hace con el método 'open()' al que se le debe pasar primero la dirección de la página; después el nombre de la ventana (en este caso venta);los atributos de la ventana (en este caso : pantallacompleta, herramientas, direcciones, estado, barramenu, barrascroll, cambiatamano, ancho, alto, izquierda, arriba, sustituir) y si el url será añadido o reemplazado al historial de la página (en este caso: sustituir).
La dirección de la ventana y el nombre no creo que necesiten mas explicación; sin embargo los atributos sí a continuación los explicamos:
  • fullscreen: Hace que la ventana se abra en toda la pantalla
  • toolbar: Hace que la ventana se abra con o sin barra de herramientas
  • location: Hace que la ventana se abra con o sin barra de direcciones
  • status: Hace que la ventana se abra con o sin barra de estado
  • menubar: Hace que la ventana se abra con o sin barra de menú
  • scrollbars: Hace que la ventana presente o no las barras de desplazamiento
  • resizable: Si la ventana puede cambiar de tamaño o no
  • width: El ancho de la ventana
  • height: El alto de la ventana
  • top: La posición vertical de la ventana
  • left: La posición horizontal de la ventana

Estos atributos recibirán como valor 1 para que estén activos, o 0 para que no. Además de estos atributos, esta función también tiene otros que no se han puesto por no considerarlos demasiado importantes como channelmode, alwaisraised o dependent. Esta función aunque esta muy especializada es algo complicada para lo sencillo que es el método open().Así la podrías poner tú directamente.
Por ejemplo:
open("tuarchivo.htm","Juan","toolbar=0");

Para hacer que abra la página en cuanto el usuario entre; seria:


En el Head:

Desplazarse con ENTER en asp.net

Este ejemplo va para darle mas facilidades al usuario final y un poco tratando de que nuestras aplicaciones Web se parezcan alas aplicaciones Windows con todas las funcionalidades que nos brinda.
Para pasar de un control a otro pulsando la tecla enter Función que nos permite pasar de un control a otro


Aquí lo k hacemos es agregar la funcion de javascript a nuestros controles del lado del servidor.

For Each Con As Control In Page.FindControl("Form1").ControlsIf (TypeOf Con Is TextBox) Then
CType(Con, TextBox).Attributes.Add("onKeyDown", "SiguienteObjeto();")
ElseIf (TypeOf Con Is DropDownList) Then
CType(Con, DropDownList).Attributes.Add("onKeyDown", "SiguienteObjeto();")
ElseIf (TypeOf Con Is RadioButtonList) Then
CType(Con, RadioButtonList).Attributes.Add("onKeyDown", "SiguienteObjeto();")'
ElseIf (TypeOf Con Is CheckBox) Then ' para los CheckBox'
CType(Con, CheckBox).Attributes.Add("onKeyDown", "SiguienteObjeto();")'
ElseIf (TypeOf Con Is CheckBoxList) Then 'para los CheckBoxList'
CType(Con, CheckBoxList).Attributes.Add("onKeyDown", "SiguienteObjeto();")' si hay controles de otro tipo solo agregar como los ejemplos anteriores
End If
Next

Como evitar Sys no Esta definido

Cuando salio la version 1 de Ajax intente implementarla pero siempre me generaba Sys no esta definido, intente con todo lo posible pero no me funcionaba, despues de unas semanas encontre la solucion , era la configuracion del Web.config , a continuación les muestro los tags necesarios para poder realizar esta configuracion.
<;assemblies>;
<;add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">;
<;/assemblies>;
<;httphandlers>;
<;remove path="*.asmx" verb="*">;
<;add path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" verb="*" validate="false">;
<;add path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" verb="*" validate="false">;
<;add path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" verb="GET,HEAD" validate="false">;
<;/httphandlers>;
<;pages>;
<;controls>;
<;add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" namespace="System.Web.UI" tagprefix="asp">;
<;/controls>;
<;/pages>;

Leer la conectionstring del web.config desde un proyecto asociado

Premisa: Tenemos una solución compuesta por un proyecto del tipo Sitio web y un proyecto del tipo Biblioteca de clases en donde estamos construyendo nuestra capa de datos y que hemos llamado DAL.
Queremos, desde la DAL, recuperar la conectionstring que está almacenada en el web.config del proyecto Sitio Web.
Solución:

  1. Añadir las referencias del tipo .NET: System.Web y System.Configuration




  2. Añadir los using, que sí son duplicados pero nos simplifican la sintaxis del código. using System.Web; using System.Configuration;

  3. Invocar a la cadena de conexión en el web.config con el siguiente método (o la variación que se te ocurra. ///
    /// Devuelve la cadena de conexion a la base de datos
    ///

    ///
    public string cadenaConexion()
    {
    string retValue = string.Empty; retValue= System.Web.Configuration.WebConfigurationManager.ConnectionStrings ["pruebaConnectionStringSQL"].ConnectionString;
    return retValue;
    }