Alternar bloques de comentarios en C#

Magnífico truco de mi compañero A.J. Busquiel el que aquí publico, una forma de alternar dos bloques de comantarios para, cuando andamos haciendo pruebas comentando y descomentando trozos de codigo:

//*
Bloque de código 1
/*/
Bloque de código 2
/**/

Probemos en Visual Studio que quitando la primera barra (/) comentamos el primer bloque de código y dejandolo puesto comentemos el bloque 2.

Silverlight con parametros

Esta mañana tenia la necesidad de compartir un pequeño control de Silverlight en varias paginas y tenia que mostrar secciones distintas según la pagina que la llamaba.

La primera idea que tuve (y esa he aplicado) es pasarle parametros al silverlight mediante su propiedad InitParametrers tal como esto:

<asp:Silverlight ID="Silverlight1" runat="server" Source="~/ClientBin/ComponentesSilverlight.xap" MinimuVersion="2.0.31005.0" Width="100%" Height="100%" InitParameters="pantalla=enlaces" />

Con esta llamada al elemento Silverlight podremos obtener los parametros en el Startup de App.aspx.cs tal como sigue:

private void Application_Startup(object sender, StartupEventArgs e)
{
string pantalla = string.Empty;
if(e.InitParams.Keys.Contains("pantalla")) pantalla = e.InitParams["pantalla"];
this.RootVisual = new Page(pantalla);
}

Y pos supuesto tendremos que cambiar el constructor de la clase Page del componente Silverlight con el/los parametros que vamos a utilizar por ejemplo:


private string _pantalla;

public Page(string pantalla)
{
InitializeComponent();
_pantalla = pantalla;
}

Luego podremos usar la variable privada _pantalla para lo que pretendamos.

Update para rempllazar contenido en tablas de una bd

Hoy tenía la necesidad de hacer unos cambios en los datos de una BD para hacer una demo y hacerla con datos reales. He googleado un poco y rapidamente he encontrado la función replace() de T-SQL paar este fin y me ha ido de maravilla. Este es el UPDATE que he utilizado para ir cambiando ciertas palabras de ciertas columnas de mi BD, espero que le sirva a alguien además de a mi:

update noticia set contenido = replace(contenido, 'Florentino', 'Deportivo') where contenido like '%Florentino%'

Documentación MSDN:

http://msdn.microsoft.com/es-es/library/ms186862.aspx

Operadores ternarios en C#

¿Conociais el operador ?? de c#?, yo no y creo que me va a encantar.

¿Conociais el operador ?:?

Pues bien, la mejor explicación, un ejemplo:

String cadena = null;
MessageBox.Show(cadena??"(null)");
MessageBox.Show(cadena==null?"(null)":cadena);

Los dos MessageBox son equivalentes.

Obtener instancias de SQLServer 2000 y 2005

.Net Framework nos facilita la tarea de obtener las instancias en la red de SQLServer 2000-2005 mediante una unica linea de codigo coomo sigue:


System.Data.DataTable dtServidores = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources();

Con esto obtendremos un registro por cada instancia de SQL server con cuatro columnas:
  • ServerName: Nombre del servidor.
  • InstanceName: Nombre de la instancia del servidor. En el caso de tratarse de la instancia predeterminada estará en blanco.
  • IsClustered: Yes o No segun la instancia forme parte de un cluster de servidores.
  • Version: Versión del servidor.(8.0.x, para SQL2000 y 9.00.x para SQL 2005)

Obtener la estructura de una tabla con T-SQL

Si queremos ver la estructura de una tabla con una select, basta con consultar el catálogo. Hay una vista en information_schema.columns que tiene informacion de las columnas de todas las tablas de la BD, bastaría con filtrar por nombre de tabla con la siguiente Select:


SELECT * FROM information_schema.columns WHERE table_name = 'facturascompra'
GO

Con este ejemplo obtendremos los campos de la tabla facturascompra

Insertar código XML en un HTML

En la publicación del anterior post me surgió el problema, como a muchos otros (supongo), que ya habrán solucionado, de insertar codigo XML dentro de mi post. Pues bien, la única forma de solucionarlo que encontré fué utilizar los caracteres de escape de HTML de los caracteres especiales como <, >, / ...

Desde esta web se puede obtener la cadena que hay que copiar en el post para mostrar un xml en el:

http://www.simplebits.com/cgi-bin/simplecode.pl?mode=process

Esta es una tabla con otros caracteres especiales de HTML:


CarácterCódigoCarácterCódigo
<&lt;±&plusmn;
>&gt;·&middot;
¡&iexcl;×&times;
¿&iquest;÷&divide;
©&copy;¼&frac14;
®&reg;½&frac12;
&trade;¾&frac34;
¢&cent;¹&sup1;
£&pound;²&sup2;
¥&yen;³&sup3;
&euro;&permil;
ª&ordf;&sum;
º&ordm;&prod;
Á&Aacute;&radic
á&aacute;&infin;
É&Eacute;&asymp;
é&eacute;&ne;
Í&Iacute;&equiv;
í&iacute;&le;
Ó&Oacute;&ge;
ó&oacute;Ñ&Ntilde;
Ú&Uacute;ñ&ntilde;
ú&uacute;Ç&Ccedil;
Ü&Uuml;ç&ccedil;
ü&uuml;˜&tilde
&&amp;π&pi;

Acceso mediante silverlight a un Servicio Web de otro dominio

Por razones de seguridad, un servicio web no se puede consumir desde Silverlight sin que se especifiquen los permisos en un archivo xml llamado clientaccesspolicy.xml.

Un ejemplo basico de este archivo que permite al acceso desde cualquier dominio a un servicio web sería este:


<?xml version="1.0" encoding="utf-8"?>

<access-policy>

<cross-domain-access>

<policy>

<allow-from http-request-headers="*">

<domain uri="*"/>

</allow-from>

<grant-to>

<resource path="/" include-subpaths="true"/>

</grant-to>

</policy>

</cross-domain-access>

</access-policy>



Tambien puede ser usado el archivo que usa Flash, crossdomain.xml, un ejemplo del cual seria:


<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>

<allow-http-request-headers-from domain="*" headers="*"/>

</cross-domain-policy>



Estos archivos deben de estar accesibles por el cliente Silverlight en la raiz de la web donde se alojan los servicios, ya que lo primero que hará Silverlight será descargase uno de estos archivos para comprobar la seguridad.

Buscar este blog

Seguidores

Blogs amigos