Silverlight 2, Menu Contextual

.Net, Silverlight 4 Comentarios »

Llevaba tiempo esperando poder reescribir el control Menu Contextual que hice hace ya tiempo, ya que este dejó de funcionar en la sucesivas versiones alfas, betas y gammas de Silverlight (y no más versiones preliminares porque se le acabarían las letras a Microsoft, menuda pifia por su parte). Bueno el caso, es que no me apatecía volver a escribir el control hasta que Silverlight 2 no fuera una cosa seria. Parece ser que ahora si tenemos una versión final.

El código de este ejemplo lo puedes descargar aquí.

La lógica y funcionamiento del control sigue siendo la misma y practicamente no ha cambiado nada. Lo cambios mas importantes han sido la forma de aplicar propiedades sobre los objetos, y además que en esta nueva versión del Control MenuContextual , el userControl MenuContextaul estará formado por objetos OpcionMenu, siendo estos los encargados de pintarse y modificar su estado cuando el raton entre y salga de ellos. El control de los eventos delegados seguirá estando en el control padre MenuContextual.

Enlaces Relacionados:

Que tan importante es la versión de un Provider

Oracle Sin comentarios »

Y quien no iba  estar de acuerdo con tal afirmación. Otra máxima, mas importante aun si cabe, “el entorno de desarrrollo  debe ser lo más parecido, si no idéntico, al entorno de producción”- y quien no iba a estar de acuerdo con esta uútima?. El problema es que no siempre se puede disponer un entorno de desarrollo idéntico al que se dispone en producción, por muy diversos motivos, razones que no vamos a analizar en este post. Ultimamente estoy divirtiendome, y mucho con Oracle, por lo que será la version del Provider de Oracle para .Net el protagonista del artículo. Provider, ¿y esto que es?, definamoslo (para  el objetivo del artículo) como una tubería por la que se envian  y reciben datos entre una aplicación y la base de datos.

Bien, ahora veamos un entorno que simule nuestro ejemplo:

Entornos de Trabajo

Leer el artículo completo »

Desabilitar Validador ASP.Net desde Javascript

.Net Sin comentarios »

Si alguna vez necesitamos desactivar un control 'Validator' desde Javascript, solo necesitamos conocer el nombre del validador en cliente, y llamar a la funcion ValidatorEnable de la siguiente forma:

JAVASCRIPT:
  1. function DesactivarValidador()
  2. {
  3. var control= document.getElementById('Validator.ClientID');
  4. ValidatorEnable(control, false);
  5. }

Comprobado desde la version 1.1 en adelante.

Desinstalar Visual Studio 2008 – A problem has been encountered while loading the setup components. Canceling Setup.

General, Sistemas 14 Comentarios »

Ayer estuve en una conferencia del Guille Community Tour 2008, y hoy me he levantado con ganas de trastear un poquito mi Visual Studio. La sorpresa ha sido cuado intentar desisntalar Visual Studio, para realizar una instalacion en limpio y aplicarle el Service Pack 1, que, ademas de corregir unos cuantos bugs y mejoras en la performance, instala de serie algunas extensiones como por ejemplo Data Service (antiguo Astoria), Entity Framwork y Dinamic Data.

A lo que iba, pues al intentar desinstalar VS me aparece el siguiente error:

Error al desinstalar Visual Studio 2008

El problema lo provoca un hotfix instalado por Windows Update, que se supone que corrige una vulnerabilidad de seguridad en maquinas que tienen instalado Visual Studio 2008. Para solucionar el problema solo tenemos que desinstalar el hotfix KB952241  y reiniciar nuestra maquina.

Menu Contextual (Context Menu) en Silverlight

Silverlight Sin comentarios »

Hace un par de semanas, formaba parte de un pequeño  equipo de desarrollo de una aplicación en Silverlight 2, y casi llegando al final del desarrollo pensamos que el uso de un menú contextual  podría sernos de gran utilidad. Nos encontramos con dos problemas.

Primero , no existe un control  para tal funcionalidad en el conjunto de controles de Silverlight 2 (por ahora) - no pasa nada pensamos, nos creamos uno.  Aquí nos apareció el segundo problema: El plugin de Silverlight no  implementa los eventos sobre el botón derecho (si pulsamos el botón derecho sobre una aplicación Silverlight nos aparece un menú contextual propio del plugin). Por motivos de tiempo desistimos de crear un menú contextual. 

Suerte que un servidor todavía disfruta de un poco de tiempo libre los fines de semana  :) .

Leer el artículo completo »

ORA-12638: Credential retrieval failed / Fallo de Recuperacion de Credenciales

.Net, Bases de Datos, Oracle 19 Comentarios »

Hay cosas que le hacen perder a uno ademas de la paciencia, el tiempo, y en nuestra profesión no esta pagado. Pues bien esto me hizo perder bastante del mío. Despues de instalar Oracle Provider for Ole DB 9.2.0.7.0 y Oracle Data Provider for .NET 9.2.0.7.0 y creer solucionado el problema, este seguia persistiendo.

La solucion estuvo en la configuración del fichero sqlnet.ora ubicado en Oracle_Home/network/admin:

  • Original : SQLNET.AUTHENTICATION_SERVICES= (NTS)
  • Modificado : SQLNET.AUTHENTICATION_SERVICES= (NONE)

ADO.NET Entity Framework

.Net, ADO.NET 3 Comentarios »

Hace más o menos un año, en mi anterior  @ empresa,  cuando me encontraba en una situación de “Entre Proyectos”, se me asignó la tarea de investigar el Framework NHibernate y desarrollar  un proyecto Interno, para demostrar la valía del Framework .

La verdad es que ya había tenido un primer contacto con el padre de NHibernate, es decir Hibernate, por lo que el proyecto me resulto interesante. Como idea, prometía. El resultado no me resultó del todo satisfactorio. No vi el framework totalmente integrado con .Net. Desde mi punto de vista el uso  de NHibernate para el desarrollo de un proyecto serio en .Net no aporta ventajas frente al uso de la capa DAO tradicional.

Ahora con la aparición de ADO.NET Entity Framework  me ha vuelto a picar la curiosidad.

¿Qué es ADO.NET Entity Framework?

Para definir al Entity Framework me voy a basar en una definición del modelo entidad-relacion. En el modelo entidad-relacion tal y como lo conocemos, tenemos que implementar un conjunto de clases que definen el modelo conceptual de la base de datos y tenemos que definir la capa de acceso a datos, de tal manera que sea esta la encargada de acceder a la base de datos y mapear los datos en las clases creadas para tal efecto.

Manteniendo esta definición en mente, definimos el Entity Framework como un modelo entidad-relación ejecutable, (misma definición para NHibernate).  El Entity Framework nos permite trabajar con los objetos definidos a partir del modelo de datos sin tener que preocuparnos de la capa de acceso a datos ya que él se encarga automáticamente de su persistencia.

Leer el artículo completo »

Comunicación Silverlight – Aplicacion Web

.Net, Silverlight 2 Comentarios »

No descubriríamos América si afirmásemos  que las aplicaciones Web  han dejado de ser  meras páginas Web con funcionalidad,  y se asemejan cada vez más a aplicaciones de escritorio. Para lograr este objetivo se ha mejorado mucho el tiempo que transcurre entre la acción del cliente y la respuesta del servidor, y esto no ha sido gracias la red de  Telefónica, sino mas bien a la optimización de la información que viaja desde la aplicación en el navegador y el servidor y viceversa – sirva de ejemplo, Ajax para solicitar información o javascript para validaciones en cliente.

Ahora entra en escena Silverlight. Una aplicación Web ASP.NET con Silverlight, está formada por dos aplicaciones distintas, uno que se ejecuta en el servidor y otro que se ejecuta en el cliente.  Pero aunque sean dos aplicaciones que se ejecutan en entornos distintos las dos forman una única aplicación, y por lo tanto debe de existir un flujo de comunicación entre ambas. Silverlight simplifica y optimiza operación que no necesita de la acción del servidor, así como la comunicación si fuese necesario. Leer el artículo completo »

Adaptador de bucle invertido (LoopBack)

Sistemas 7 Comentarios »

Crear Red entre una maquina Host y una maquina Virtual 

Como desarrolladores es muy probable que alguna vez necesitemos de un servidor de base de datos.  También es muy probable que no nos guste la idea de tener instalado una instancia del mismo en nuestra maquina. Y también es muy problema que echemos mano de una maquina virtual para solucionar ambos problemas. Hasta aquí todo correcto.

Como recomendación, VirtualBox, sistema de virtualización que podemos usar de forma gratuita, de la que disponemos dos versiones: una Enterprise que podemos usar si no es con fin comercial, y una versión OpenSource que dispone de prácticamente las mismas características. Es de reseñar, que la empresa que desarrolla Virtualbox, Innotek, ha sido recientemente adquirida por Sun, lo cual dice mucho de las posibilidades de este software. Decir que el rendimiento de esta es muy parecido al VMWare (a mi me da la sension de ser bastante más fluida que esta) y supera con creces a la solución propuesta por  Microsoft, VirtualPC. Leer el artículo completo »

Storyboard Dinámicos Silverlight 2.0

Silverlight Sin comentarios »

Cambios en Silverlight 2.0 con respecto a la versión alfa 1.1

Hace un par de semanas explicaba como generar objetos y animaciones dinamicamente en Silverlight. Si recordamos en la versión 1.1 habia un bug, el cual nos impedía añadir los objetos Stroryboard a la coleccion Resources, si estos se creaban a partir de la clases que ofrecía Silverlight.

Ahora en Silverlight 2.0 este bug está resuelto por lo que podemos crear objetos Storyboard y DoubleAnimation y añadirlos a la coleccion Resource. Veamos como quedaría nuestro código despues de modificar la función onClick, en la parte en que se el objeto Storyboard para cada una de las bolas que se crea.

C#:
  1. Storyboard sb = new Storyboard();
  2.  
  3. sb.SetValue(NameProperty, "sb_" + contador);
  4.  
  5. DoubleAnimation da = new DoubleAnimation();
  6. da.SetValue(Storyboard.TargetNameProperty, circulo.Name);
  7. da.SetValue(Storyboard.TargetPropertyProperty, "(Canvas.Top)");
  8. da.To = to;
  9. da.From = puntoClick.Y;
  10.  
  11. da.Duration = new TimeSpan(0, 0, 2);
  12. sb.Children.Add(da);
  13.  
  14. sb.Completed += delegate(object s, EventArgs eventArgs)
  15. {
  16.   this.Resources.Remove(sb);
  17.   Contenedor.Children.Remove(circulo);
  18. };
  19.  
  20. Contenedor.Children.Add(circulo);
  21. this.Resources.Add(sb);
  22. contador++;
  23. sb.Begin();

En cualquier caso, puede que alguna vez tengamos que inyectar código XAML en nuestro control, para lo cual podemos actuar de la misma forma vista en el primer ejemplo de Bolas. Pero ahora en  Siverlight 2.0, cuando generemos el String que define nuestro XAML tenemos que añadir todos los namespace. Así quedaría nuestro código:

C#:
  1. Storyboard sb = XamlReader.Load(String.Format(
  2. @"<Storyboard  xmlns=""http://schemas.microsoft.com/client/2007"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
  3.     <DoubleAnimation Storyboard.TargetName=""{1}""
  4.       Storyboard.TargetProperty=""(Canvas.Top)"" To=""{2}"" Duration=""00:00:01"">                     
  5.     </DoubleAnimation>   
  6.   </Storyboard>", "sb_" + contador, circulo.Name, to)) as Storyboard;

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Acceder

Switch to our mobile site