domingo, 13 de mayo de 2007

Silverlight en Linux, ¿como por Dios?

Hola a todos, pues eso, Silverlight va a llegar a Linux de la mano de Mono y tomará el nombre de Moonlight.
Pincha aquí para acceder al sitio oficial´
Un Saludo

miércoles, 9 de mayo de 2007

WPF y las pantallas multipunto

Buenas a todos,
acabo de ver un post muy interesante sobre la potencia que puede llegar a tener Windows Presentation Fundation.
Es de lectura y visualización obligada.

WPF y Pantallas Multipunto

Un Saludo
Sergio

martes, 17 de abril de 2007

Silverlight, WCF, WPF/E, InfoCard, Workflows, que bonito juego de palabras

Buenas a todos,
Llevo ya unos días leyendo en varios sitios, sobre que versión es mejor o peor del .NET Framework, unos dicen la 2.0, otros la 3.0, y yo digo
¿Por que no puede ser la 1.1?
¿No tengdrá nada que ver con eso de que es la más vieja de las tres?, porque a su favor siempre tendrá la experiencia, creo yo. No dicen que el vino contra más viejo mejor, pues porque no va a pasar lo mismo con el Framework.
Bueno que nos vamos, yo puedo pensar que una buena versión del framework es la 2.0, ya que trae mejoras considerables con respecto a su antecesor la versión 1.1, pero sinceramente, no me molestaría en pasar las aplicaciones de la versión 1.1 a la 2.0, porque este año ya va a salir el Visual Studio Orcas, que no es otra cosa que la versión 2007 del Visual Studio y la versión 3.5 del framework, entonces ya veremos si el tren de versiones se para un poco y migramos, porque sino estamos siempre a contra remolque migrando cosas.
Con respecto a la comparación del framework 2.0 con el 3.0, a mi criterio cabe destacar WPF/E, Silverlight o como lo queramos llamar, ya que por la interfaz gráfica que pueden adquirir nuestras aplicaciones, podremos abrumar a más de un usuario peleon, pero por lo demás no es nada que no se podría hacer antes, o con otras herramientas o desarrollando el código, en fin que me parece un bonito juego de palabras, que las mentes pensantes del marketing han realizado para ponerle una cara bonita al .net 2.0.
Un Saludo a todos.

martes, 27 de marzo de 2007

A mi entender fallo en Seguridad ASP.NET 2.0

Buenas a todos, hoy estaba realizando un WebService con autenticación windows, en la que sólo permito el acceso a varios usuarios NT autenticados, cuando haciéndolo como lo he hecho toda la vida en ASP.NET versión 1.1, me ha estado funcionando toda la vida, ahora lo he traspasado a ASP.NET version 2.0 y resulta, que todo usuario tenía permiso de ejecución.
Claro al ver esto, me he echado las manos a la cabeza y he dicho, a ver que tengo mal. A continuación muestro el código del WebConfig en la versión 1.1 que es como la había echo al principio.

Pues bien, este código que siempre me ha funcionado a la perfección en la versión 1.1, ha dejado de ser efectivo en la versión 2.0, lo peor de todo es que si no te das cuenta, cuantos WebServices vas a pasar a producción, rompiendose toda la seguridad, yo creo que esto lo deberían de haber pensado antes de hacerlo, avisarlo en letras MAYÚSCULOS, o que es un bug?, o sino que alguien me diga que pasa aquí.
Para que entendais que la solución no tiene ni pies ni cabeza, ya que como muestro a continuación es como he solucionado el problema.

A que cuesta creerlo, por lo menos a mi sí. A saber cuantas aplicaciones que pensamos que las tenemos seguras, realmente tienen las puertas abiertas, jeje.
Os recomiendo que por si acaso las reviseis todas.
Un Saludo

domingo, 25 de marzo de 2007

Remoting Vs WebService

Hola a todos de nuevo, ayer encontré el siguiente artículo que lo escribí hace tiempo, pero que quiero compartirlo con vosotros.
Después de haber cambiado mi servicio que estaba basado en WebService, de la prueba de rendimiento entre la versión 1.1 y 2.0 como describí en artículo anterior, y pasarlo a que se basará en Remoting, he realizado una prueba de estrés entre las dos aplicaciones web, la que tira contra los WebService y la que tira contra Remoting y el ganador del combate ha sido Remoting, pero no con tanta diferencia como yo me esperaba, ya que en un artículo que leí hace tiempo, eso si se refería al Framework 1.1, la diferencia era abismal, a favor del Framework 2.0, hay que decir que la comunicación Soap ha sido mejorada y que la comunicación de Remoting, yo la hago segura, así que también eso pierde rendimiento, pero al final Remoting gana.
Pero Remoting no sólo gana en rendimiento, también gana en facilidades para el programador, a la hora de pasar objetos entre un Servicio y otro, claro que para dicha facilidad no sólo es Remoting, sino que las listas genéricas también ayudan, así que quien no las conozca que se las estudie, ya que una vez que te acostumbres a ellas no habrá forma de dejarlas.A todo esto que me estoy yendo por las ramas, voy a intentar resumen con una frase cuando utilizar WebService o Remoting.
Supongamos que tenemos un bollicao que no lo vamos a compartir con nadie más y que a ti el bollicao que más te gusta es sólo de cacao, pues bien, te vas a comprar un bollicao de cacao y leche, por si algún día lo compartes con alguien, si ya sabes de antemano que nunca va a ser así. Pues con los WebService pasa lo mismo, si vas a compartir Servicios, lógicamente WebService, sino, piénsatelo dos veces, porque si lo que quieres es buen rendimiento Remoting será tú solución.
Así que la siguiente vez que programes en Servicios, piensa que es lo que quieres, comunicación conection people o los quieres para tí solitos, eses es el dilema.
Un Saludo

domingo, 18 de marzo de 2007

Que día, que sol, que nieve, sobraooo

Hola a todos,
este domingo, sin duda ha sido uno de los mejores fines de semana, debido a que no tenía ninguna intención de ir a la nieve, pero ayer sábado me encontré con mi hermano y me llego a convencer para ir hoy a Astún.
La verdad que había oído que iba a hacer malo y la verdad es que no me apetecía demasiado magrudar, para llegar y que haría malo. En otra temporada de nieve diferente igual me daría más igual, pero en esta que está siendo tan mala no, ya que para cuatro días que hemos ido por lo menos que sean buenos.
Así que después de un rato de hablar con mi hermano, que va a hacer bueno, que tenemos unos 20 kilometros de pistas, que vamos a calentar para el temporal que se nos avecina, decidí ir el domingo a Astún, ya que todavía no había ido en todo el año.
Nos levantamos un poquitín más tarde de lo habitual, debido a que esperabamos que habría poca gente en la estación.
Cuando salimos hacía Astún, se veían nubes, pero conforme ibamos llegando han ido todas desapareciendo, para dejar un dio totalmente soleado, de principio a fin.
Al llegar a Astún, llegando a las 10 de la mañana, tarde para ser un día normal, vemos que el parking está practicamente vacio, miramos hacia las pistas, vemos que hay nieve y decimos, venga para arriba que hoy vamos a disfrutar y efectivamente no nos equivocamos, nada de colas en el telesilla y encima hasta las 3 de la tarde la nieve a aguantado perfectamente, así que hoy hemos superado el día con buena nota, tal y como lo indica el título.
Ahora a la espera de ver la nieve que nos deja este temporal está semana, para ver si nos podemos pegar el último festival de buena nieve.
Un Saludo

jueves, 15 de marzo de 2007

Por fin veré las aplicaciones chulas del CSI en mi escritorio

Buenas a todos,
Acabo de instalarme el Framework .NET 3.0, para empezar a probar las cosas nuevas que trae y la primera con la que he dicho Wow, no ha sido porque haya visto el Vista, sino porque me he topado con Windows Presentation Fundation, que viene a ser, la nueva generación de interfaces gráficas para aplicaciones Windows.
Con WPF, por fin podremos soñar con esas aplicaciones que ves en la tele, porque a vosotros no se, pero a mi como Analista / Programador, siempre he echado de menos el poder hacer esas interfaces gráficas, cosa que cuando las veía en la tele me creaba una confusión inmensa, porque por Dios, que a mi me digan los programadores que han hecho los programas que maneja el CSI, con que lenguaje de programación están hechos, ya que dudo que sea Visual 6.0 o Visual .NET o Java, ya que si sería cierto el rendimiento se iría por la nubes, pero en fin, luego pienso, es sólo ficción. Lo que pasa es que la ficción con WPF pasa a ser una realidad, que ya por fin nuestras aplicaciones windows podrán tener toda una maquetación gráfica, debido a que el programador pondrá la parte funcional de la pantalla y el diseñador la dejará bonita, que al final ellos son los que saben de colores, formas, etc., nosotros los programadores seguiremos picando código, pero eso sí, veremos que nuestras aplicaciones serán mucho más chulas que hasta ahora y eso no se a vosotros, pero a mi me llena de orgullo ver una aplicación bonita y eficiente.
Un Saludo

viernes, 9 de marzo de 2007

Es beneficioso el cambio de .NET 1.1 a 2.0

Buenas a todos, este artículo lo he recuperado del anterior blog en el que todavía escribo, porque mi intención es en pocos días, poder realizar un post en el que comparemos el .NET 2.0 con el .NET 3.0.
Así que para que en el futuro podaís entender el post, es mejor haberse leído este post y el siguiente que publicaré, comparando Remoting y WebService, que también está en el otro blog.
Tenía una aplicación web, con tecnología 1.1, que junto con una capa de Negocio se comunica con un Servicio que corre en COM+ a la base de datos. La comunicación entre las distintas capas era a través de DataSets.
Por otro lado he creado la misma aplicación web, pero todo con tecnología 2.0, y he cambiado lo siguiente, en vez de que la capa de negocio se comunique con un Servicio que corre en COM+, lo haga con con un Service que corre con WebService y este a su vez se comuniquen con la base de datos.
En la siguiente imagen, lo primero perdón por como se ve la imagen, no he conseguido ponerla mejor, se muestra brevemente las arquitecturas empleadas en el ejemplo:
Pues bien el resultado de las dos pruebas es claramente superior el de la tecnología 2.0 puede que no este del todo correcto, ya lo sé, que se podría mejorar seguro que si, de echo la siguiente prueba va a ser que el Servicio en vez de ir con WebService vaya con Remoting, pero en fin, lo importante es haber mejorado el rendimiento de la versión 1.1. A continuación paso a exponer una serie de acciones que he ido implantando en la versión 2.0, para acabar consiguiente ese mejor rendimiento:
- He cambiado la comunicación entre el Servicio y la capa de negocio, para que entre ellos se pasen colecciones genéricas, en vez de DataSets, ya que los Generics, esto está contrastado en muchos artículos, tiene mejor rendimiento que no utilizarlos, y los DataSets, aparte parece que carga más cosas de las que vemos.
- La comunicación de las Reglas de Negocio con el WebService es con Soap 1.2, que se supone que es más eficiente que la versión 1.1, esto es una de las mejoras en la versión 2.0 de .NET.- La comunicación de la aplicación web con las reglas de negocio, se hace atrevas de objetos, porque hemos demostrado que atrevas de DataSets era menos eficiente.- La aplicación web al correr en la versión 2.0 de .NET, da mejor respuesta al usuario y parece que es más eficiente que la versión 1.1.
Bueno con esto lo voy a dejar por hoy, espero que hayáis comprendido el ejemplo y veáis los beneficios de pasar del .NET 1.1 al 2.0.El día que tenga la misma prueba con Remoting ya comentaré los resultados.
Espero que os haya gustado, Un Saludo

jueves, 8 de marzo de 2007

Parece que este fin de semana si....

Buenas a todos, pues eso, que ayer a la tarde noche estuve viendo unos canales de noticias, y me lleve la grata sorpresa de que ha nevado lo suficiente, como para pensar en que la temporada no está terminada.
Así que este fin de semana habrá que aprovechar, coger la tabla e ir a realizar unas cuantas bajadas, ya que puede que sean las últimas.
Un Saludo

domingo, 4 de marzo de 2007

Un día de snow en Formigal, o casi....

Buenas a todos/as,
Ayer sábado, me levante temprano para ir a realizar el deporte extremo que más me gusta realizar. Estaba ilusionado, ya que está semana había nevado y aunque las temperaturas habían sido bastantes altas durante dos o tres días atrás, me espera encontrar nieve Primavera pero juguetona a su vez.
En fin seguimos, me levante a las 6 de la mañana ya que habíamos quedado a las 7. Al llegar al punto de encuentro con los amigos, estuvimos debatiendo a donde ibamos a ir, pero al final nos decantamos por Formigal, que viendo el parte, 39 kilometros esquiables, pensamos que tendría nieve sufiente.
Al llegar a la estación no llevamos un chasco, ya que de esos teóricos 39 kilometros, yo sólo ví decentes 3. Sólo había una pista que no se veía de color marrón y sin ningúna calva, claro todo esto desde abajo, así que ya no pensemos las piedras que te podrías encontrar en el camino. En fin con este panorama decidimos no pagar por dicha estafa, ya que de 100 kilometros que tiene la estación para esquiar sólo en 3 me parece que te cobren todo el forfait una desproporción enorme.
Así que, o pega una buena nevada, cosa que dudo porque las temperaturas están muy altas para el mes de Marzo o habrá que despedir un malísimo año.
Que se le va a hacer la vida es así.
Un Saludo a todos.

martes, 27 de febrero de 2007

Un poquito de historia del blog

Buenos días a todos/as
Este post no va a tener nada técnico, sólo va a servir porque decidí en su día crear un blog propio.
Todo esto es debido gracias a Ander que en su día me dejo escribir en su blog y con ello hizo que me picará el gusanillo de tener el mío propio. Así que Ander gracias por todo.
Eso si, a partir de ahora cuando publique un artículo técnico, lo publicaré en los dos sitios, en el mío y en el de Ander. También vais a tener disponible desde la sección de links un vínculo directo al blog de Ander ya que me parece un blog más que interesante, en el que escribe no sólo él, sino más gente.
Mi blog va a tener más que nada cosas relacionadas con .NET y Sql Server, pero bueno también tendrá alguna cosilla más.
Así que nada ya nos iremos viendo.
Un Saludo
Sergio

lunes, 26 de febrero de 2007

Como pasar parámetros opcionales en C#

Buenas a todos, desde hace ya como cosa de 1 o 2 meses, he empezado a programar en C# porque si programaba en VB.NET, como también programo a menudo en VB6, me estaba dando cuenta que no estaba realizando código 100% .NET, debido a que seguía utilizando funciones de VB6 en .NET, etc., etc.
Eso si mi cambio no ha venido dado porque diga que C# es mejor que VB.NET ni nada por el estilo, sino por obligarse a uno mismo a no tener vicios de VB6 en .NET, aparte y lo más importante para ello es, que el cambio ha venido porque también se algo de Java y entonces la similitud con C#, me ayudo a verlo con mejores ojos. Bueno al grano que me estoy yendo por las ramas.Ayer estaba intentando abrir en ADOB.Recordset, sin más para hacer unas pruebas de rendimiento con VB6 y una dll hecha en .NET expuesta en modo COM, estaba continuamente fallándome el siguiente método, porque ni me compilaba.Rs.Open();Entonces yo me preguntaba, porque me estará fallando este puñetero método sin VB.NET o VB6 tira hacia delante. Bien mirando un poco me fije que el Rs.Open(), tiene una serie de parámetros, que aunque no los necesite pasar porque lo creo desde cero, C# me obliga a ponerlos. Entonces listo de mí dije, pues ale, te paso lo siguiente, con todos los parámetros asignados y con null, que no tiene valor:Rs.Open(null, null, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, 0)Así el compilador lo dejo pasar, obviamente, el ya se cree que tiene todos los parámetros, pero al ejecutar cual fue mi sorpresa, que dicha sentencia fallo, me decía algo así como error en los tipos, pues bien falla, porque se cree que el parámetro 1 tiene valor y no ha sido omitido como se puede, debido a que está especificado como opcional.Pues bien, haciendo simplemente un F1 en menos de un minuto di con la solución “Type.Missing”, es para especificar que un parámetro opcional no tiene valor, entonces la sentencia me quedaría de la siguiente manera:Rs.Open(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)Así si que funciona correctamente, pero C#, como eres con el tema de no dejar pensar al compilador, lo quieres todo estrictamente, pero eso me gusta mucho, ya que me ayuda a detectar muchisimos fallos de primeras.En fin que me vuelvo a ir por las ramas, a ver después de explicar como pasar parámetros que son opcionales a un procedimiento, ahora vamos a intentar poner un parámetro opcional en una función de C#.Después de intentarlo, el compilador da el siguiente error:“No se permiten especificadores de parámetros predeterminados”Así que ya sabéis en C# no se pueden poner parámetros como opcionales en un procedimiento o función, eso si, si realmente lo queremos así, nos podemos basar en la sobrecarga y punto.Os paso un link de una página donde pone lo que es de una forma en VB.NET es igual en C#, por si alguien se atreve a venirse al lado de C#.http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.htmlUn Saludo y hasta otra

Update en SqlServer

Este post va a tratar una cuestión curiosa que me encontré un día, con mi ya querido SQL Server, digo querido, porque lo único que me está demostrando es que con el exceso de registros en las tablas, dicho SQL Server, pasa a mutar o algo así, en fin que cambia la forma de trabajar que con pocos registros, empieza a utilizar índices que a priori tú sabes que son menos eficientes, pero a el le da por creer que lo son.Por ello voy a aprovechar a deciros en este post, que siempre que un procedimiento almacenado, empiece a exceder de tiempo, revisemos el plan de ejecución de dicho procedimiento almacenado, en el servidor donde este aumentando de tiempo y veamos que es lo que falla.Después de semenjante chapa direis, porque el título pone algo de Updates en SQL, y todavía ni las ha nombrado, pues bien el tema es el siguiente. ¿Habeis intentado forzar un índice alguna vez en una Update?.Yo la única forma que lo conseguí fue haciendo una vista de la tabla, en la que dicha select forzaba ese índice y luego hacer la Update contra la vista. Lo digo porque igual algún día lo necesita alguien.
Un Saludo
Sergio

Presentación del Blog

Buenas a todos y todas.
Me llamo Sergio y soy Analista / Programador y llevo en esto como cosa de 6 o 7 años, ya que con el tiempo uno se hace más mayor y va perdiendo memoria. Desarrollo programas con VB6, .NET, tanto VB.NET y C#, ASP.NET, Com+, SQL Server, Crystal Reports, tratamiento de imágenes DICOM, etc., etc., así que a partir de ahora pasaré a escribir cuando pueda curiosidades sobre las marterias que domino, pero sobre todo intentaremos tratar temas de .NET y SQL Server, ya que todo esto da para mucho.
Nos vemos por el blog