jueves, 31 de enero de 2013

Aplicaciones Multi-Idioma en ASP.NET



Globalización es el mecanismo mediante el cual una aplicación puede extender su uso de forma nativa con personas que vive en diferentes partes del mundo y que habla diferente idioma. Por esta razón ASP.NET suministra la infraestructura para crear aplicaciones Web que se ajuste automáticamente a idiomas y formatos, conforme al usuario es privilegiado con la cultura e idioma propio.
ASP.NET utiliza archivos de recursos compatibles con varios Idiomas. Este contiene el texto de un idioma específico para un página o un sitio completo.
Hay dos tipos de recursos en ASP.NET: Local y Global.
  Recursos Local: Son específico para una simple página Web y debe ser usado para suministrar versiones de un página Web en diferentes Idiomas. Esto son almacenado en el subdirectorio  App_LocalResources que está localizado a raíz de la solución ASP.NET.
    Los archivos de recursos son nombrado usando el formato: Pagina.aspx.Idioma.resx. Ejemplo: Default.aspx.en.resx (Ingles), Default.aspx.es.resx (Español), Default.aspx.es-ni.resx (Español-Nicaragua).
    Los Archivos de Recursos Local, se puede generar de forma automática, usando la opción Generar Recurso Local que está situado en el menú de la opción herramienta de la IDE.
Recursos Global: Se puede leer desde cualquier página o código que está en el sitio Web. Solo debe usar esto cuando se necesita acceder a un simple recurso desde múltiple pagina Web. Estos recursos debe ser almacenado en el subdirectorio App_GlobalResources que está localizado a raíz de la solución ASP.NET. Estos recursos son también archivos con extensión .resx  y el régimen del esquema de nombramiento del archivo es el mismo que el de los archivos de recurso local.
Acceso a valores de recursos mediante programación: Para acceder a determinado valor de un recurso, se utiliza la sintaxis: Resources.ArchivoRecurso.Recurso.
Label1.Text = Resources.LocalizedText.Saludos ‘Visual Basic
Label1.Text = Resources.LocalizedText.Saludos; //C#
Configuración de la Cultura
En cualquier página Web ASP.NET, usa dos propiedades de página diferente para establecer la cultura:
    Culture Determina el resultado de las funciones dependiente de una cultura, como la fecha, número y formato de moneda. Solo puede definir el objeto Culture con culturas especifica que define requerimientos tanto de formato regional e idioma como “es-NI” o “fr-FR”. No puede definir el objeto Culture con culturas neutrales que define solo un idioma, tal como “es” o “fr”.
    UICulture Determina cuál de los recursos locales o globales son cargado para la página. Puede definir UICulture con tanto culturas específicas o neutral.

Puede declarar declarativamente por pagina o por sitio:
Page uiculture=”es” culture=”es-NI”           A nivel de Pagina ASPX

globalization uiculture=”es” culture=”es-NI”   A nivel de Web.Config

Visual Basic
Protected Overloads Overrides Sub InitializeCulture()
UICulture = “es”   ‘Define el Idioma
Culture = “es-ni” ‘Define el formato (requiere un cultura especifica)
End If
MyBase.InitializeCulture()
End Sub

C#
protected override void InitializeCulture()
{
UICulture = “es”; //Define el idioma
Culture = “es-ni”;  //Define el Formato (requiere una cultura especifica)
base.InitializeCulture();
}

miércoles, 30 de enero de 2013

Dividir Web.Config en varios archivos



Web.config es el archivo principal de opciones de configuración para una aplicación web en ASP.NET. El archivo es un documento XML que define información de configuración concerniente a la aplicación web. El archivo web.config contiene información que controla la carga de modulos, configuraciones de seguridad, configuraciones del estado de la sesión, opciones de compilación y el lenguaje de la aplicación.

Aquí la estructura básica de un archivo de configuración:
xml version = "1.0" ?>
<conguration>
       <appSettings > . . .</appSettings>
       <connectionStrings > . . .</connectionStrings>
       <system.web > . . .</system.web>
</configuration>

            Este archivo es posible dividirlo en sub-archivos por cada sección, de modo que cada sección de configuración pueda contener su propio archivo.  Para realizarlo solo debemos indicar la propiedad configSource en la sección donde deseamos incluir el otro archivo con la extensión siempre .config.
            Ejemplo:     <connectionStrings configSource="Conexiones.config"/>
                   <appSettings configSource ="Configuraciones.config"/>
                
Cada archivo de configuración deberá tener las propiedades que lo definan de esta forma:
            <connectionStrings>
              <add name="BDPrincipal" connectionString="Data Source …"/>
</connectionStrings>

O bien,
<appSettings>
                    <add key ="SMTP" value ="smtp.gmail.com"/>
       </appSettings>

lunes, 28 de enero de 2013

Expresiones Regulares



Guia practica de Expresiones Regulares en .NET  (Regular Expressions)



Caracteres Especiales


\w
Cualquier carácter alfanumérico
\s
Espacio en Blanco
\d
Cualquier digito
\b
Inicio o Fin de una Palabra
^
Inicia una Cadena
$
Finaliza una Cadena

Repeticiones


*
Repetir cualquier cantidad de veces
+
Repetir una o más veces
?
Repetir cero o una vez
{n}
Repetir n veces
{n,m}
Repetir al menos n, pero no más de m veces
{n,}
Repetir al menos n veces

Negación


\W
NO es alfanumerico
\S
NO es espacio en blanco
\D
NO es un digito
[^x]
NO es X
[^aeiou]
Ningun character es aeiou

Alternativas
El simbolo| marca opcion entre una alternative u otra.   Ejemplo:  Codigos Postales de 5 o 9 digitos:  \b\d{5}-\d{4}\b|\b\d{5}\b

Rangos
Por ejemplo las vocales [aeiou],   o letras entre la a-z en minúscula [a-z]   o bien  números del 0 al 5  [0-5]

Ejemplos:
Palabra que inicia con A
\ba\w*\b

Palabra de seis letras
\b\w{6}\b

Telefono de siete dígitos
^\d{3}-\d{4}$

Palabra de 5  a 6 letras
\b\w{5,6}\b