Performancing Metrics

Return(GiS);

Return(GiS);

Posted: por
Comparte este post:

Comentarios

El Bruno ha opinado:

Bienvenida :D

Saludetes

# October 20, 2009 10:59 PM

Juan Carlos González Martín ha opinado:

Bienvenida!

# October 20, 2009 11:02 PM

José Fabricio Rojas ha opinado:

En buena hora.

Exitos y Saludos desde Perú

# October 20, 2009 11:04 PM

Rodrigo Corral ha opinado:

Bienvenida!!! Espero que disfrutes de tu nueva etapa blogera en Geeks.ms.

# October 20, 2009 11:04 PM

Jorge Serrano ha opinado:

Hola Gisela... un gusto tenerte por aquí. ;-)

Un abrazo.

Jorge

# October 20, 2009 11:06 PM

David Salgado ha opinado:

Una pena todo el curro en los estilos, lo tenías niquelado!! :_)

welcome!

# October 21, 2009 12:40 AM

John Alexander Bulla ha opinado:

Bienvenida Gisela

Saludos

# October 21, 2009 6:02 AM

Gisela ha opinado:

Muchas gracias a todos :)

Igualmente, me gustó la cabecera que me improvisé para este... jejeje es todo lo que hice :p

¡Saludos!

# October 21, 2009 7:28 AM

Gisela ha opinado:

Hola preguntoncojonero :p ,

No, no estoy usando Snag-it :)

Simplemente estoy haciendo un Alt + Impr Pant y bueno, en Windows 7 tienes algo parecido a Snag-it en cuanto a que puedes tener el mismo selector para seleccionar la parte que quieras de la pantalla y te genera una imagen :)

¡Saludos!

# October 21, 2009 3:30 PM

Gisela ha opinado:

Hola preguntoncojonero :p ,

Espero que sea así :)

Intentaré actualizarlo lo antes posible con los post que ya tengo.

¡Saludos!

# October 21, 2009 3:31 PM

johnbulla ha opinado:

Hola Gisela, al principio quede loco por que SQL Server 2008 no me permitía modificar la estructura de las tablas y efectivamente es por que trae esta restricción y simplemente lo que hay que hacer es lo que tu planteas.

Saludos

# October 21, 2009 3:49 PM

Ibon Landa ha opinado:

Bienvenida!

# October 21, 2009 4:40 PM

Francisco J ha opinado:

Gracias Gisela, yo estuve dándole vueltas al tema durante muchísimo tiempo y al final me comentaron dicha opción. Lo que sí me advirtieron que estaba deshabilitada para evitar problemas de integridad en las tablas (relaciones, claves, etc.)

Saludos y gracias nuevamente.

Francisco J.

# October 21, 2009 5:29 PM

Eduardo Ortega ha opinado:

Felicidades por la incorporación a esta panda de frik...friends :)

Esperamos impacientes esa lluvia de post ;)

Salu2

# October 21, 2009 6:43 PM

Sergio Tarrillo ha opinado:

Bienvenida Gisela,

Me gustado mucho tu post de bienvenida de tu otro blog: returngis.blogspot.com/.../public-intro-new-intro.html

Y se esperan tus posts...

Saludos,

# October 21, 2009 9:24 PM

Gisela ha opinado:

Gracias por vuestros comentarios :)

Quizás es interesante dejar habilitado el check una vez tenemos la versión "final" (Nada es final en informática :p) de nuestra base de datos, para evitar modificaciones por error.

Lo que si que es cierto es que, en un principio, resulta incómodo tenerlo habilitado cuando aún estamos en fase de diseño.

¡Saludos!

# October 22, 2009 12:00 AM

Gisela ha opinado:

Gracias a todos por vuestros comentarios de bienvenida :)

Espero que esta parte que me corresponde de Internet, sea de utilidad :P

¡Saludos!

# October 22, 2009 12:01 AM

Arturo ha opinado:

Hola en el ultimo código de ejemplo, para demostrar tu punto, tendría que ser:

static void ejemplo(string saludo,string nombre = Arturo)

Aun así, como tu indicas, el compilar preferiría el ultimo método:

static void ejemplo(string saludo)

Muchas gracias por publicarlo, no sabia esto.

Saludos

# October 22, 2009 1:39 AM

Gisela ha opinado:

Hola Arturo,

Tienes toda la razón, en el último ejemplo se me olvidó dar valor al parámeto opcional del segundo método. Fallo mío.

Ya está corregido :)

¡Muchas gracias por comentarlo!

¡Saludos!

# October 22, 2009 7:10 AM

Eduard Tomàs i Avellana ha opinado:

@preguntoncojonero

No creo... :)

Tipos anónimos no deberían ser interesantes para reflection salvo para usarlos como "diccionarios dinámicos", lo que no va más allá de recojer todas sus propiedades y sus valores. De todos modos los tipos anónimos de .NET son de juguete, así que poca cosa se puede hacer con ellos ;-)

Los parámetros opcionales tampoco creo que afecten a reflection: ya existia antes la propiedad DefaultValue en ParameterInfo (para dar soporte a VB supongo), así que no creo que nada vaya a cambiar mucho.

@Gisela

Buen blog... bienvenida :D

# October 22, 2009 3:54 PM

Lucas A. Romão ha opinado:

Parabéns! Show este post! =)

# October 25, 2009 2:32 PM

Fran Diaz ha opinado:

Hola,

Un pequeño truco sería tirar de las vistas del sistema (ver si las tiene claro ;)) y cargar las tablas de nuestra BBDD en un treeview de una aplicación :D....

Saludos!

# October 26, 2009 8:53 AM

Dag König ha opinado:

Try out this instead if you want to use SQL Azure in VS2010.

sqlazureexplorer.codeplex.com

/dag

DE, Microsoft Sweden

# October 26, 2009 8:56 AM

Gisela ha opinado:

Gracias por vuestros comentarios,

@Fran si, sería una forma de poder ver los objetos. De todas formas, para ello, podemos usar SQL Azure Manager que básicamente lo que nos muestra es un treeview e incluso podemos eliminar y crear bases de datos y tablas. Quizás con esta aplicación nos podría bastar para tener una visión de lo que tenemos en la nube :)

@Dag Thanks for your advise :) I'll try it.

¡Saludos!

# October 26, 2009 9:46 AM

Marc Rubiño ha opinado:

Un buen consejo, igual que primero instalar el IIS y después el framework. Pero para utilizar Visual Studio no es imprescindible utilizar o tener instalado el IIS, porque tiene su propio servidor web desde la versión del 2005.

Saludos ;-)

# October 27, 2009 9:01 PM

Gisela ha opinado:

Hola Marc,

Si, tienes razón en cuanto a que Visual Studio tiene su propio Development Server y en principio nos debería bastar. El caso es que, cuando creas un servicio web con WCF, no tienes forma de que te interprete (O yo no la encontre... :( ) el archivo svc correctamente. En el post donde explico cómo crear un servicio web con WCF, realmente me estoy creando un proyecto de tipo librería. Si intento ejecutar el archivo svc sin montarlo en el IIS me aparecería algo como esto:

geeks.ms/.../svc.PNG

´

Por otro lado, como no tengo otro punto de entrada a mi aplicación (Formulario Windows o Página web) necesito montarlo en el IIS para arrancarlo.

De ahí todo el tema del IIS :)

¡Saludos!

# October 27, 2009 11:01 PM

José A. Fernández ha opinado:

Hola Gisela

Antes que anda bienvenida a Geeks.ms!

Ya había un post al respecto, pero "el conocimiento no ocupa lugar (solo algunos bytes en los servers de Geeks.ms)" jeje

 - SQL Server 2008: Management Studio … “Impedir guardar cambios que requieran volver a crear tablas”    geeks.ms/.../sql-server-2008-management-studio-impedir-guardar-cambios-que-requieran-volver-a-crear-tablas.aspx

Saludos

# October 29, 2009 2:12 PM

Gisela ha opinado:

Hola José,

Antes de nada, darte las gracias por la bienvenida :)

La verdad es que no tenía idea de que hubiera otro post relacionado con este tema ya que, actualmente, estoy moviendo todos los post que tenía escritos en Blogger a Geeks. Mil perdones si te he causado alguna molestia por ello.

Estoy intentando no perder todo aquello que en su momento me tuve que sentar a redactar :)

¡Saludos!

# October 29, 2009 2:32 PM

José A. Fernández ha opinado:

Gisela, no fue molestia. Al contrario.

Solo quería hacer autoreferencia, para que los dos artículos queden relacionados.

Saludos.

# October 29, 2009 2:45 PM

PabloNetrix ha opinado:

Voto a bríos! Pero esto que es!

Uno de los blogs más interesantes (y prácticos) de todo el sitio, y no te pone nadie ni un comentario.

Si está claro, que "la miel no se hizo para..." ;) ;)

Saludos

# October 30, 2009 11:23 AM

Gisela ha opinado:

Muchas gracias por el comentario PabloNetrix :)

Me alegra que pienses así :D

¡Saludos!

# October 30, 2009 4:37 PM

Eber Irigoyen ha opinado:

importante señalar que a partir de .NET 3.5 tenemos los delegados Func<> y Action<>, que nos permite evitar la mayoria de las declaraciones de delegados, en este ejemplo tuyo

delegate void Delegado(string cadena);

se puede reemplazar simplemente por:

Action<string> (delegado que toma un string y no regresa resultado (void)) directamente donde lo necesites, por ejemplo:

Action<string> delegando = Saludo;

   delegando += Despedida;

   delegando(txtCadena.Text);

nota que ya no se requiere tener una declaracion exterior separada del delegado

salu2

# October 31, 2009 8:49 PM

Manuel Iglesias ha opinado:

también puedes usar expresiones lambda para crear delegados:

static void Main(string[] args)

{

   Action<string> delegando = (x => Console.Out.WriteLine("Hola " + x));

   delegando += (x => Console.Out.WriteLine("Adios " + x));

   delegando("Manolo");

}

# October 31, 2009 11:05 PM

Gisela ha opinado:

Gracias por vuestros comentarios :)

En realidad estoy interesada en este asunto por la forma de trabajar con LINQ  y bueno... Parece que este tema de delegados, expresiones lambda, etc. genera cierto miedo :D

Intentaré escribir más sobre los puntos que comentáis para intentar tener dos o tres pasos (post) de comprensión sobre este tema ;)

¡Saludos!

# November 1, 2009 2:03 PM

Carlos ha opinado:

Por si no conoces este framework te recomiendo que lo veas...

http://fluentnhibernate.org/

# November 1, 2009 5:41 PM

Gisela ha opinado:

Hola Carlos,

No, aún no tuve tiempo de echarle un vistazo, aunque ya había oido sobre él. Muchas gracias por el link :)

Tengo taaaaaaaantas cosas que ver :D

Gracias por tu comentario, ¡Saludos!

# November 1, 2009 5:46 PM

Arturo ha opinado:

Hola Gisela. Muchas gracias por tan buen post.

Estaré a la espera de tus otros post de nHibernate.

Una consulta. ¿Conoces el Entity Framework? ¿Cuales son las ventajas y desventajas del nHibernate en comparación al Entity Framework?

Saludos

# November 1, 2009 8:51 PM

Gisela ha opinado:

Hola Arturo,

Muchas gracias por tu comentario :)

En realidad, por motivos de trabajo, he utilizado más NHibernate que Entity Framework, aunque si he podido hacer alguna demo con ello.

A simple vista te puedo decir que Entity Framework está más integrado en Visual Studio que NHibernate y, este último necesita realizar algunas configuraciones de una forma más manual.

En cuanto a rendimiento no sabría decirte si es un dato considerable.

Si te parece, puedo hacer un post con la configuración para EF en este mismo contexto.

¡Saludos!

# November 1, 2009 9:09 PM

Arturo ha opinado:

Hola Gisela.

Claro que si me parece! :)

Muchas gracias

Saludos

# November 1, 2009 9:27 PM

José Romaniello ha opinado:

El manejo de la sesión tiene para mi un "smell".

Veo "Bind" pero no veo "unbind", dado que la sessionFactory es privada, nadie incluso desde afuera de esa clase puede hacer unbind. Por otro lado no entiendo el hecho de que al pedirle a esa clase la sesión actual se haga un bind SIEMPRE.

Si lo que estas haciendo es session-per-request, es decir "session y transaction tienen el mismo ciclo de vida que el request web", el bind debería ser realizado en el beginrequest (podes hacerlo directamente en Global.Asax), y el unbind en EndRequest. Luego inyectar ISessionFactory en los repositorios/daos que es lo que hacemos la mayoría, y a él solicitarle GetCurrentSession.

Si no estas haciendo "session-per-request" (MUY RECOMENDADO), no te hace falta hacer nada con el context (ni si quiera configuralo en el config).

# November 2, 2009 11:37 AM

Gisela ha opinado:

Buenos días José :)

Mi idea era dejar preparada más o menos la clase Connection.cs para usar session-per-request utilizando Global.asax y, obvio, HttpModule... Pero no me llega el tiempo para hacer un post tan largo :(

Por otro lado, también quería hacer session-per-request con Action Filter, como comencé en el anterior Blog pero utilizando un mismo atributo para la sesión y la transacción.

Entiendo que, una vez implementada la clase que hereda IHttpModule, debo bindear al inicio y hacer el unbind al final, eliminando el Bind que se encuentra dentro del método GetCurrentSession();

Cuando tenga configurada la aplicación para hacer session-per-request  el atributo session factory debería ubicarse en el Global.asax para tener acceso desde toda la app. ¿Puede ser?

Quizás lo dejé un toke a medias y podía haberlo simplificado más... Intentaré revisarlo en cuanto pueda y elimino las cosas innecesarias, para que se entienda qué es lo necesario en este caso en concreto.

Gracias por tu comentario

¡Saludos!

# November 2, 2009 11:48 AM

Gisela ha opinado:

Ufff creo que ya está ;D

Por el momento, como quiero seguir escribiendo post sobre NHibernate, MVC, etc, no me interesa hacerlo todo perfecto ni mucho menos sino introducir mejoras y que el lector sepa por qué se introducen.

Gracias a José Romaniello, del que siempre aprendo algo :D, intento mejorar todo lo que hago en cuanto a NH se refiere.

No soy ninguna experta en esta librería y hay muchas cosas con las que no he tenido que pelearme y por lo tanto aprender de ellas.

Quiero intentar hacer las cosas lo más simple posible para luego poder explicar las ventajas que supone modificar el código de una forma u otra :)

¡Saludos!

# November 2, 2009 1:44 PM

Juan Carlos Febrer ha opinado:

Hola Gisela!! Enhorabuena por tu nuevo "hogar". Espero que estés muy a gusto con gente tan interesante como el "Gran Rodri" (es compañero de curro) y muchos otros. Únicamente comentarte que la imagen de cabecera ocupa 227 kb, y simplemente abriendo la paint, y guardándola como jpg, se quedan en 33 kb. Ya sabes, en internete hay que aprovechar al máximo los bytes. Besos y suerte!!!

# November 3, 2009 11:37 PM

Gisela ha opinado:

Buenas noches Juan Carlos,

Muchas gracias por tu comentario y gracias por el tema de la cabecera! La verdad es que eres el primero que me lo dice y como las conexiones de ahora vuelan :D

En seguida lo cambio ;)

Muchas gracias,

¡Saludos!

# November 3, 2009 11:42 PM

Gisela ha opinado:

Solucionado ;)

¡Saludos y gracias de nuevo!

# November 3, 2009 11:48 PM

El Bruno ha opinado:

Y yo que pensaba que me iba a escapar de ASP.Net MVC ahora me toca estudiar .. y ya por donde voy a empezar :D

# November 4, 2009 2:14 PM

Gisela ha opinado:

Yo te explico lo que pueda Bruno ;D

# November 4, 2009 2:52 PM

Luis Bol ha opinado:

Mucha Gracias, con esta ayuda he resuelto el problemita, mil gracias

# November 4, 2009 6:24 PM

Arturo ha opinado:

Wow... Gisela ¡Casate conmigo!... eres la mujer ideal :P

# November 4, 2009 7:57 PM

HardBit ha opinado:

Muy buena info =)

# November 4, 2009 8:06 PM

José Fabricio Rojas ha opinado:

Hola Gisela, buena la explicación de tu post, pero ne salieron algunas dudas:

1.-Como haces para testearlo? pq al testear tus controladores , tienes que verificar que tenga declarado el atributo en cada uno.

2.- Al tener declarado el atributo tienes que hacerle un testing al atributo(que cree una sesion) y testear el controlador en si.

3.- No te parecere que la aplicación pierde "mantenibilidad"

4.- Tambien me parece que esa manera la aplicacion se vuelve más acoplada

Saludos desde Lima, Perú

# November 5, 2009 4:03 AM

Gisela ha opinado:

Buenos días a todos :)

En primer lugar, gracias por vuestros comentarios.

@José Fabricio Rojas te muestro un ejemplo de cómo podríamos testear si un controlador tiene declarado un atributo en concreto. En realidad es bastante simple:

[TestMethod]
public void HomeUtilizaSessionPerReQuest()
{
var homeController = new HomeController();
var attributes = AttributeUsageAttribute.GetCustomAttributes(homeController.GetType());
CollectionAssert.Contains(attributes, new SessionPerRequest());
}

El segundo punto que me comentas, me parece bastante interesante a la par que cierto :) Efectivamente sería bastante recomendable testear el atributo en cuestión. Y realmente debería de ser así porque deberíamos asegurarnos de varias cosas, como si la sesión está abierta después de llamar a ese método, lo mismo con la transacción, qué pasa si se produce un error (si el commit se realiza o no). Es decir, creo que son puntos importantes que se podrían testear y descartar estas posibilidades a la hora de que nuestra aplicación falle.

Sobre el mantenimiento de la aplicación, la verdad no sé decirte... Uno de los puntos desde los cuales se puede enfocar Session Per Request desde un Action Filters es que el programador tiene mayor control para decidir qué controles/acciones tienen disponible la posibilidad de usar NH si lo necesitan. Es posible que tengamos controladores o acciones que no necesiten persistencia, que estén realizando sus consultas a un webservice, que nada tiene que ver con NH o abriendo un archivo, etc. Quizás tenemos controladores que, aunque el costo de abrir una session sea mínimo... no es necesario hacerlo (No me hace falta utilizar unas deportivas si no voy a salir a correr...) No sé si me explico.

Otra ventaja que veo es poder reutilizar estos filtros en otros proyectos/aplicaciones... Algo que también se podría hacer con HttpModule pero, en el caso de Global.asax es bastante posible que tengas otros métodos, inicializaciones en él que realmente no te permiten reutilizar en otro proyecto. (En MVC por defecto inicializamos las rutas necesarias para poder arrancar la aplicación en el Global.asax)

Espero haber resuelto tus dudas :)

¡Saludos!

# November 5, 2009 11:32 AM

Gisela ha opinado:

Muchas gracias por vuestros comentarios :)

¡A modificar tablas! ;D

¡Saludos!

# November 6, 2009 11:35 AM

Fabio Maulo ha opinado:

Si queres testeare solo el attribute

typeof(XyzControler).Should().Have.Attribute<SessionPerRequestAttribute>();

# November 6, 2009 1:21 PM

Arturo ha opinado:

Muchas gracias, muy buen par de post. Muy simples y claros.

Saludos

# November 8, 2009 7:04 PM

Gisela ha opinado:

Muchas gracias Arturo :D

Espero seguir avanzando con JQuery para mostrar lo fácil que es trabajar con esta gran librería :)

¡Saludos!

# November 8, 2009 8:26 PM

preguntoncojonero ha opinado:

Muy bueno !!!

Algún artículo para Linq to SQL ??

salu2grz

# November 11, 2009 8:20 AM

Gisela ha opinado:

Muchas gracias por tu comentario preguntoncojonero :)

Todo se andará ;D

¡Saludos!

# November 11, 2009 9:25 AM

jorge ha opinado:

Gisela....

.... cuando me meta a fondo con jQuery va a ser de tu mano, ;-)

# November 12, 2009 9:23 AM

Gisela ha opinado:

Muchas gracias jorge por tu comentario :),

¡Saludos!

# November 13, 2009 7:32 AM

Diego ha opinado:

MUCHAS GRACIAS!!!

ya estaba que rompia el monitor del stress XD ajajajjaja

Saludos!

# November 14, 2009 2:38 AM

Gisela ha opinado:

@Diego, sé a lo que te refieres :p

Gracias por tu comentario :D

¡Saludos!

# November 14, 2009 11:31 AM

Arturo ha opinado:

Muchas gracias. Estoy metiéndome con ASP.NET MVC y tus explicaciones en español, me son muy claras.

Saludos

# November 16, 2009 4:32 AM

Montse ha opinado:

Esto del JQuery me ha venido muy bien, pero echo en falta ver cómo funcionan los ejemplos :-)

# November 16, 2009 8:48 PM

Gisela ha opinado:

¡Hola Montse! :)

He adjuntado al post un rar con los ejemplos que muestro en él. Si necesitas algo más avísame ¿Ok?

Gracias por tu comentario,

¡Saludos!

# November 17, 2009 10:24 AM

Gisela ha opinado:

Gracias a ti Arturo por pasarte :)

¡Saludos!

# November 17, 2009 10:57 AM

MD ha opinado:

Muy buenas, Gis!

Aunque no me entere demasiado de que va esto (soy un analfabeto en muchos temas, y éste es uno de esos...jeje) te deseo toda la suerte en este proyecto porque, la verdad, te lo estas currando muchísimo y porque le dedicas un tiempo considerable para ayudar a los demas.

Si eso, cuando tengas un rato me traspasas todos estos conocimientos, una tarde vale?

Un beso!

# November 19, 2009 1:30 AM

preguntoncojonero ha opinado:

Lo grabarán ???

Gracias !!!

# November 19, 2009 9:59 AM

El Bruno ha opinado:

@pregunton, pues no lo creo. Pero tendrás las ppts y algunas fotos en algun post posterior (interesante combinacion de palabras "post posterior")

Saludos

# November 19, 2009 7:17 PM

Gisela ha opinado:

@pregunton exactamente como dice El Bruno (Che gracias por la respuesta =) )

¡Saludos!

# November 19, 2009 7:36 PM

El Bruno ha opinado:

de nada che !! :D

# November 20, 2009 3:06 PM

Your IP Adress ha opinado:

tengo un problema justo en Add firewall rule, en el nombre Your IP Adress me aparece un IP y es el siguiente: 190.40.35.150 no se porque me aprece este IP, pero de tadas maneras yo coloco la IP de mi PC en IP Range y cuando quiero conectarme desde el visual studio a sql azure me sale un error de IP y es el siguiente:

Cannot open server 'gdpw6i2ain' requested by the login. client with IP address '190.235.14.216' is not allowed to access the server.

login failed user 'miconsa'  

# November 20, 2009 10:29 PM

Gisela ha opinado:

Hola Your IP Adress (Miconsa) :)

¿Estás usando algún proxy? ¿Has probado a añadir la IP que te indican en la página de SQL Azure al Firewall? Es posible que tu proveedor de Internet esté utilizando un proxy entre tu IP pública y las peticiones y es por ello que la que te ofrece SQL Azure es distinta a la tuya.

Si accedes a www.cualesmiip.es ¿Qué IP te aparece?

También debes tener en cuenta que lo más propable es que tu IP sea dinámica y la misma varía pasado un tiempo, por desconexión, etc. y la configuración del Firewall en estos casos queda "obsoleta" al no tener una IP fija.

¡Saludos!

# November 20, 2009 10:52 PM

Adrián Solorza ha opinado:

Se reconoce el talento

# November 21, 2009 12:07 AM

Gisela ha opinado:

Muchas gracias por tu comentario Adrián, me alegra que te sea de utilidad =)

¡Saludos!

# November 21, 2009 12:24 AM

Your IP Adress ha opinado:

El IP de mi PC es 192.168.1.55  he ingresado al link www.cualesmiip.es y me aparece el siguiente IP: 190.235.26.120

# November 21, 2009 10:25 PM

Gisela ha opinado:

Miconsa,

La IP que tu me indicas es efectivamente la IP que tiene tu equipo dentro de tu RED LOCAL. La dirección IP que necesita SQL Azure es la IP pública que te facilita tanto esa página como la de SQL Azure.

Prueba a añadir la segunda que me escribes como regla en el Firewall. Tomará unos minutos para que tenga efecto el cambio.

¡Saludos!

# November 21, 2009 10:30 PM

Vanesa barbosa ha opinado:

Muy bueno tu blog. Queria preguntarte si has probado el MVP y cuales fueron tus experiencias. Gracias

# November 23, 2009 3:48 PM

Gisela ha opinado:

Hola Vanesa, muchas gracias por tu comentario :)

En realidad si he trabajado con MVP y puedo decir que le veo numerosas ventajas a MVC en comparación. Por nombrarte algunas, en MVP aún se trabajaba con WebForms, tenías que lidiar con ViewStates, no tenías la facilidad que proporciona el Routing para generar URL amigables (y por lo tanto mejorar la localización de la página). Creo que MVC es el siguiente paso que le podía faltar a MVP :)

Después de trabajar con ambos patrones, creo que MVC genera un código mucho más limpio y claro y, por supuesto, mucho más testeable.

Espero que pueda servirte,

¡Saludos!

# November 23, 2009 4:15 PM

Edward Linares ha opinado:

Hola pues esta bueno el articulo, pero quiero decirte que los ejemplos siempre son los mismo!, entonces la pregunta es, porque no hacen un ejemplo con entidades relacionada?, tratar de persistir una entidad con diferentes ObjectContext, no he encontrado un ejemplo completo de insercion, actualizacion y eliminación de entidades. POrque te comentos esto, porque solo tengo problemas con la actualización por mas que busco en internet y aplico las sugerencia para actualizar una entidad relacionada me salen multiples errores.

De todas formas es un bueno articulo para los que quieren enterarse de que es esta nueva tecnología.

# November 24, 2009 7:59 PM

javier ha opinado:

Podrias poner el html basico, para poder probar estos ejemplos.

# November 24, 2009 11:12 PM

Gisela ha opinado:

Hola javier,

En este post, tienes un proyecto adjunto con todos los ejemplos. Si necesitas alguna cosa más, no dudes en ponerte en contacto conmigo.

Gracias por tu comentario,

¡Saludos!

# November 24, 2009 11:17 PM

Gisela ha opinado:

Hola Edward,

En primer lugar, muchas gracias por tu comentario y por la propuesta. Entiendo que arrancar con Entity Framework puede ser de los más sencillo pero la cosa puede llegar a complicarse llegados a un punto, más allá de listar una tabla.

Intentaré ampliar esta parte con más ejemplos con relaciones, actualización, etc. en cuanto tenga un momento =)

¡Saludos!

# November 25, 2009 9:20 AM

Gisela ha opinado:

Gracias Fabio por tu aportación =)

# November 26, 2009 11:21 AM

paco ha opinado:

esperaremos tu ejemplo, por lo pronto ya me di de alta y realice todos los pasos de tu ejemplo.

saludos

# November 27, 2009 5:58 PM

Gisela ha opinado:

Hola Paco,

Muchas gracias por tu comentario, ya está disponible la siguiente entrega ;)

¡Saludos!

# November 29, 2009 1:07 PM

El Bruno ha opinado:

Buenisimo el ejemplo ...  a ver cuando me pongo a jugar un poco con AppFabric :D

# November 30, 2009 5:51 PM

Gisela ha opinado:

Muchas por tu comentario Bruno :)

¡Saludos!

# November 30, 2009 11:04 PM

paco ha opinado:

Hola Gisela nuevamente saludos, gracias por agregar el codigo de ejemploi, porque lo intente hacer por mi cuenta y no me dio =(

espero que sigas ayudando a todos con tu conocimiento, felicidades!!

# December 1, 2009 11:00 PM

preguntoncojonero ha opinado:

Gracias !!!

# December 9, 2009 8:40 AM

Gisela ha opinado:

Gracias por tu comentario preguntoncojonero =)

¡Saludos!

# December 9, 2009 9:53 AM

Gisela ha opinado:

Hola Paco,

En primer lugar, muchas gracias por tu comentario y mis disculpas por tardar en contestar.

¿Recuerdas qué problemas encontraste por el camino? Quizás sería interesante verlo =)

¡Saludos!

# December 9, 2009 9:54 AM

JTorrecilla ha opinado:

Muchas Gracias, tus post me están viniendo perfectos para meterme en el mundillo de MVC y jquery!

# December 9, 2009 10:57 AM

Gisela ha opinado:

Muchas gracias por tu comentario JTorrecilla.

Si tienes alguna petición, sugerencia al respecto, por favor no dudes en ponerte en contacto conmigo ;)

¡Saludos!

# December 9, 2009 11:33 AM

Rodolfo ha opinado:

muy bueno el post, bastante claro esta.

gracias gisela.

# December 9, 2009 1:30 PM

Eduard Tomàs i Avellana ha opinado:

Gis,

Cual es tu opinión acerca de la libreria Ajax de MS? Hay gente que comenta que es muy pesada y que de hecho no hace nada que no se pueda hacer con jQuery, y recomiendan usar solo jQuery.

Contando que jQuery ya viene incluída con el project template por defecto de MVC, hay alguna razón para utilizar / no utilizar la librería de ajax de MS?

Entiendo que se pierde toda la funcionalidad por defecto incluída en el AjaxHelper, pero no debería ser especialmente complejo recrearla...

Que opinas sobre esto??? ;-)

# December 9, 2009 3:57 PM

Eduard Tomàs i Avellana ha opinado:

@JTorrecilla

Sí, sí... eso ya lo decía en mi comentario :)

Mi pregunta va más en "porque usar la librería de ajax de MS existiendo jQuery y que esta viene incorporada en las plantillas por defecto"?

Gracias por tu respuesta!!!! ;-)

Un abrazo!

# December 9, 2009 5:33 PM

Gisela ha opinado:

Gracias por vuestros comentarios =)

@Eduard, por lo poco que he visto hasta ahora de MS Ajax, no me invita a reemplazar JQuery por esta la verdad...

Quizás los chicos de Microsoft en este aspecto han dado también más juego a JQuery asumiendo la librería como un estándar de las plantillas MVC, integración con VS 2010,etc.

Me gustaría poder echarle un vistazo más detenidamente pero ya te digo, por lo pronto no se me ocurre una buena razón que las diferencie a favor de MS Ajax.

¡Saludos!

# December 10, 2009 9:55 AM

José Romaniello ha opinado:

Excelente! ahora lo que podes hacer es utilizar data annotations ahí o NHV ;)

Si lo haces así genericamente, podes resolverlo en una clase base y te olvidas.

Otra cosa que a mi me gusta de IDataErrorInfo es que funciona de esta manera "automática" con cualquier tecnología de binding en lo que es Presentación (wpf, winforms, asp.net, asp.net mvc, y silverlight).

# December 11, 2009 11:38 PM

Gisela ha opinado:

Hola José,

Gracias por tu comentario =)

Aunque en la versión oficial aún no soporta Data Annotations, ya sabemos que en la versión 2.0 viene ya listo y preparado ;)

¡Saludos!

# December 13, 2009 1:48 AM

preguntoncojonero ha opinado:

Fabuloso !!! salu2&grz

# December 14, 2009 10:54 AM

Gisela ha opinado:

Muchas gracias por tu comentario preguntoncojonero =)

¡Saludos!

# December 15, 2009 9:08 AM

Jhon Marmolejo ha opinado:

Muchas gracias, ya solicité mi invitación aunque algo tarde, pero espero que me llegue.

Un saludo,

Jhon

# December 15, 2009 12:30 PM

Gisela ha opinado:

Hola Jhon, gracias por tu comentario =)

Depende de la época están tardando más o menos en enviar los tokens, pero en principio deberían seguir llegando =)

¡Saludos!

# December 16, 2009 11:07 AM

Javier Torrecilla ha opinado:

Como siempre muchas Gracias, este fin de semana lo probaremos!!

Un saludo

# December 18, 2009 1:52 PM

Gisela ha opinado:

Muchas gracias por tu comentario Javier Torrecilla =)

¡Que pases buen fin de semana!

¡Saludos!

# December 18, 2009 2:57 PM

Joaquín Sosa Martín ha opinado:

Muy buen aporte Gisela, gracias.

# December 18, 2009 3:19 PM

Gisela ha opinado:

Muchas gracias por tu comentario Joaquín =)

¡Saludos!

# December 19, 2009 2:25 PM

El Bruno ha opinado:

nice post !!! y linod ejemplo, especialmente los fuentes de los forms :P jeje

Saludos

# December 20, 2009 1:12 AM

Gisela ha opinado:

Gracias por tu comentario Bruno =)

No encontré información nada clara sobre el tema y Twitter me inspiró en el resto jejejeje.

¡Que te mejores Che!

¡Saludos!

# December 20, 2009 1:19 AM

Gisela ha opinado:

Hola Jose Manuel

¿JMHB? No entiendo...

¡Saludos!

# December 20, 2009 2:35 AM

Juan Irigoyen ha opinado:

Muy buen post. Me encanta tu blog.

Un saludo.

# December 20, 2009 12:29 PM

Gisela ha opinado:

Muchas gracias por tu comentario Juan =)

¡Saludos!

# December 20, 2009 1:44 PM

Lorenzo ha opinado:

Gracias por el comentario si funciona.

# December 21, 2009 12:18 AM

preguntoncojonero ha opinado:

Bravísimo !!! siga así señora con posts molones durante el 2010 !!!

# December 21, 2009 8:35 AM

Gisela ha opinado:

Muchas gracias por tu comentario preguntoncojonero, se intentará  =)

¡Saludos!

# December 21, 2009 12:09 PM

Gisela ha opinado:

Gracias por tu comentario Lorenzo, espero que te haya sido de utilidad =)

¡Saludos!

# December 21, 2009 12:10 PM

Jusay ha opinado:

Me ha arrancado una carcajada el ver a HardBit en la imagen de tu aplicación... maldito twitter, hace el mundo mas pequeño... Aaa, como siempre, excelente información... Gracias

# December 31, 2009 7:59 PM

Gisela ha opinado:

¡Gracias por tu comentario Jusay!

Jajajaja para que se vea que son articulos frescos =D

Espero que a HardBit no le importe =/

¡Saludos y feliz año!

# December 31, 2009 8:05 PM

cprieto ha opinado:

Solo que los AsynControllers existen desde la RTM de la versión 1.0, claro, poco fueron usados.

Aquí está la información en un docx de MS

aspnet.codeplex.com/.../ProjectReleases.aspx

Saludos

# January 3, 2010 10:57 PM

Gisela ha opinado:

Hola cprieto,

En primer lugar, gracias por tu comentario. Lo poco que he me ha dado tiempo a leer del doc es que en esa versión estaba la clase de un modo experimental, aunque revisaré el mismo de todos modos =)

Al menos, en la versión Beta de ASP.NET MVC 2 se ofreció como feature y no como mejora...

aspnet.codeplex.com/wikipage

Igualmente lo revisaré, me dejaste con la duda.

Gracias de nuevo ;)

¡Saludos!

# January 3, 2010 11:32 PM

cprieto ha opinado:

Yep,

De hecho, el AsynController (como muchas otras mejoras de la ASP.NET MVC 2) estaba incluído en ASP.NET MVC Futures.

# January 3, 2010 11:42 PM

preguntoncojonero ha opinado:

fabuloso !!! AcmBrowser es open source ?? salu2&grz , feliz añooooo

# January 4, 2010 9:23 AM

Gisela ha opinado:

Hola preguntoncojonero,

AcmBrowser puedes encontrarlo dentro de Windows Azure Platform Training Kit. De hecho, te facilitan la solución completa y, como indico en el post, necesitas compilarlo para obtener el ejecutable y empezar a funcionar ;)

Gracias por tu comentario =)

¡Saludos!

# January 4, 2010 5:06 PM

Eber Irigoyen ha opinado:

y que paso con el full RSS? :(

# January 4, 2010 6:23 PM

Gisela ha opinado:

Hola Eber Irigoyen,

Ya, lo sé =(

Me puse en contacto con Rodrigo Corral, administrador de Geeks, para comentarle que estoy teniendo problemas con este asunto.

Espero que para la próxima publicación quede solucionado.

Perdonad las molestias.

# January 4, 2010 6:24 PM

Gisela ha opinado:

Si, es cierto Cristian =)

Pero es por ello que tendremos que esperar a la versión final de 2.0 para disfrutar de ellas de una manera más eficaz... O empezar a trastear con la RC =)

¡Gracias por tu comentario!

¡Saludos!

# January 5, 2010 10:23 AM

Ivan Martinez ha opinado:

Excelente tutorial, gracias por compartirlo. Saludos!

# January 6, 2010 11:51 PM

Gisela ha opinado:

Muchas gracias por tu comentario Ivan =)

¡Saludos!

# January 7, 2010 7:37 AM

preguntoncojonero ha opinado:

mola !!! salu2

# January 8, 2010 2:08 PM

Gisela ha opinado:

Gracias por tu comentario preguntoncojonero =)

¡Saludos!

# January 12, 2010 1:02 PM

Juan ha opinado:

Excelente post Gisela, me sirvió de mucha ayuda. Seguí así.

Saludos.

# January 14, 2010 8:51 PM

Gisela ha opinado:

Hola Juan,

Muchas gracias por tu comentario. Si tienes cualquier duda o necesitas alguna otra cosa relacionada, no dudes en ponerte en contacto conmigo =)

¡Saludos!

# January 14, 2010 9:17 PM

Ivan Martinez ha opinado:

Un buen tutorial paso a paso. Leyendo tus posts cada vez tengo más interés en empezar con Azure. Muchas gracias por el trabajo hecho, saludos!

# January 18, 2010 11:10 PM

Gisela ha opinado:

Muchas gracias por tu comentario Ivan =)

¡Aún queda mucha nube por investigar! =D

¡Saludos!

# January 19, 2010 9:31 AM

williams rodriguez ha opinado:

Excelente, Gracias por compartirnos tu conocimientos, Felicidadess..

# January 21, 2010 2:20 PM

williams rodriguez ha opinado:

Felicidades por tu blog esta muy padre.. muchisima informacion.... :D

# January 21, 2010 2:21 PM

Gisela ha opinado:

Muchas gracias Williams,

Se agradecen este tipo de comentarios =)

¡Espero seguir aportando más y mejor!

¡Saludos!

# January 21, 2010 3:18 PM

Gisela ha opinado:

Gracias por tu comentario Williams =)

¡Saludos!

# January 21, 2010 3:19 PM

Arturo ha opinado:

Hola Gisela

Muchas gracias, me es de mucha utilidad. Sigue con tus cookbooks de mvc y jquery, que son de mucha ayuda.

Saludos

# January 25, 2010 4:28 PM

Gisela ha opinado:

Muchas gracias por tu comentario Arturo :)

Me alegro que te sea de utilidad.

¡Saludos!

# January 26, 2010 8:25 PM

luis ha opinado:

Hola Gisela

bueno  esta bien  interesante  tu aplicacion pero  no se  puede hacer una pero visual  basic   bueno ando buscando y buscando  pero no se por q todos   usan mas c#  sera por es muy parecido php ?

bueno te agradeceria mucho si isiera una aplicacion  con ajax  pero vb .net

q tengas un buen dia  luis

# January 27, 2010 5:42 AM

Gisela ha opinado:

¡Gracias por la aportación!

Saludos :)

# February 1, 2010 11:09 PM

Gisela ha opinado:

Hola Luis,

El motivo por el cual muestro los ejemplos con C# es simplemente por comodidad personal :)

En cualquier caso no supone mucha complicación pasar de un lenguaje a otro.

Te dejo un link donde tienes un conversor online por si te sirve de ayuda:

www.developerfusion.com/.../csharp-to-vb

¡Saludos!

# February 1, 2010 11:12 PM

Arturo ha opinado:

Muchas gracias! Simple, claro y directo

Saludos

# February 1, 2010 11:37 PM

Gisela ha opinado:

Gracias a ti por tu comentario Arturo :)

¡Saludos!

# February 2, 2010 9:21 AM

Jairo ha opinado:

Muchas Gracias de verdad Gise ya estaba preocupado porque no funcionaba. Me fue de gran ayuda..

# February 3, 2010 6:20 PM

Gisela ha opinado:

Gracias por tu comentario Jairo, me alegra que te haya sido de ayuda :)

¡Saludos!

# February 4, 2010 9:33 AM

Hadi Hariri ha opinado:

You're still not going to get away from our deal :).

# February 7, 2010 9:19 AM

José M. Aguilar ha opinado:

Magnífico post, Gisela!

# February 7, 2010 10:57 AM

Gisela ha opinado:

@Hari Ouch! =P

@José M. Aguilar ¡Gracias!

¡Saludos!

# February 7, 2010 4:31 PM

@ChristianLevini ha opinado:

Bastante claro y preciso... ;)

# February 7, 2010 5:26 PM

Gisela ha opinado:

Gracias por tu comentario @ChristianLevini =)

¡Saludos!

# February 7, 2010 10:16 PM

Juan Irigoyen ha opinado:

Excelente artículo Gisela. Por hacer un poco de abogado del diablo, no quiero poner en duda las ventajas de las pruebas unitarias, pero la complejidad añadida para poder testar una aplicación como la del ejemplo, me hace preguntarme hasta que punto merecerá la pena este esfuerzo si la función no es muy determinante. Además, sin quererlo se aumentan las dependencias ya que tienes que utilizar Rhino.mocks y el framework structureMap que por supuesto no controlas, creo que este es un claro ejemplo del porque este tipo de test suponen un aumento de complejidad importante con el agravante de que muchas veces te obligan incluso a modificar el propio código. Espero que en un futuro sea mas fácil realizar este tipo de pruebas.

Un saludo.

# February 8, 2010 12:14 PM

Asier ha opinado:

Genial artículo. Para algunos que desarrollamos en php con frameworks como Symfony, no nos pilla por sorpresa el uso de la inyección de dependencias.

Por si algún día tienes que lidiar con estos asuntos en php (nunca digas nunca), te dejo un enlace a una brutal herramienta inspirada en Spring para manejar clases php que implementen dicho patrón components.symfony-project.org/dependency-injection  

Un saludo

# February 8, 2010 1:38 PM

Eduard Tomàs i Avellana ha opinado:

Gis,

Yo estoy aplicando los patrones relacionados con IoC en más de un proyecto profesional. Te puedo decir que no ha sido fácil "educar" (así, entre comillas) al equipo en el uso de los distintos patrones que hay debajo de IoC y evitar el uso de ciertos antipatrones que tarde o temprano terminan por aparecer... Aunque ahora, a posteriori, puedo decir que el esfuerzo vale realmente la pena: un código muy desacoplado, que permite cambios con relativa facilidad, una clara separación de responsabilidades y la sensación de "que estamos haciendo las cosas bien".

Y ya centrándonos en MVC, es genial que el framework esté tan pensado para poder enchufar un contenedor IoC... probablemente el único punto que cojea un poco en todo este tema sea los custom filters, pero esto es más culpa del CLR que de MVC, mucho me temo...

Saludos!

# February 8, 2010 3:28 PM

Unai ha opinado:

Buen post Gisela, justamente esta semana pasada tuve una call en la que se habló precisamente de algo como lo que se comenta en los post, "la complejidad de IoC, si es que la hay, y los valores que aporta". Creo que tanto tu como ciertos comentarios expresan de forma clara y concisa los verdaderos valores de IoC, ayuda a realizar una correcta separación de responsabilidades, mejora la mantenibilidad y el diseño. Por poner una pega, y así tambíen se responde a Juan Irigoyen podrías haber usado Pex y sus Moles para el mock ( con lo cual te quitarías una dependencia de terceros, por lo menos en vs2010)... :-)

Te seguiré leyendo

# February 8, 2010 4:10 PM

Hadi Hariri ha opinado:

@Unai, @Juan,

El objetivo de la inyección de dependencias no son las pruebas únicamente. Lamentablemente es uno de los caso de uso más frecuente y muchas veces se confude con que es la única ventaja que tienen.

# February 8, 2010 9:09 PM

José M. Alarcón Aguín ha opinado:

Buenísimo!

# February 8, 2010 11:38 PM

Pedro ha opinado:

Excelente.

# February 9, 2010 12:22 AM

Pedro ha opinado:

Jeje, y no solo eso, también disponemos de la vista previa , el diseñador ...

# February 9, 2010 12:25 AM

Unai ha opinado:

Hadi, acaso has entendido esto de mi comentario?? creo que lo he dicho bien clarito :-)

"expresan de forma clara y concisa los verdaderos valores de IoC, ayuda a realizar una correcta separación de responsabilidades, mejora la mantenibilidad y el diseño"

# February 9, 2010 1:39 AM

Ibon Landa ha opinado:

Ni idea que se podía!

Lo único, por ser un poco picajoso, decir que no me gusta mucho utilizar skins porque aplica los estilos inline y es peor desde el punto de vista de rendimiento. Prefiero aplicar los estilo desde ficheros CSS para así poder cachearlos en el cliente.

Pero bueno, que el post venía por otro cosa, pero ya que estamos...:-)

Un saludo,

# February 9, 2010 8:37 AM

Gisela ha opinado:

Gracias a todos por los comentarios =)

@Ibon tienes toda la razón y es el motivo por el cual no me gustan =) Pero algunos proyectos si que hacen uso de temas y, dentro de la gravedad, ¡Qué menos que tener intellisense! ;)

¡Saludos!

# February 9, 2010 9:57 AM

Hadi Hariri ha opinado:

@Unai,

Estaba resaltando la referencia a Moles, y haciendo incapie en lo mismo que estuvimos charlando el otro día en el conference call.

# February 9, 2010 10:07 AM

Unai ha opinado:

Y yo precisamente igual, es el mismo argumento expuesto por Juan sobre la complejidad el que rechazábamos en esa call, el tema de moles es una simple acolación al uso de Rhyno que para nada creo que tenga importancia en el contexto de lo que hablamos no?? :-)

a más ver

Unai

# February 9, 2010 10:32 AM

Hadi Hariri ha opinado:

@Unai,

Hombre tu sabes que yo no creo que esto tenga complejidad :).

El que haga un recalco sobre Moles es porque tanto Moles, como TypeMock son herramientas que permiten evitar la inyección de dependencias si el único fín con la que se usa es su re-emplazo en pruebas unitarias. Lo que yo intentaba explicar con mi comentario, es que hay que evitar caer en la trampa de que esto sea únicamente para hacer pruebas e ignorar las demás ventajas y posibilidades que ofrece.

Es importante entender que este "esfuerzo" (y pongo esfuerzo entre comillas porque realmente no lo es una vez que se entienda lo simple que es todo), no es para realizar pruebas. Si uno quiero hacer eso solamente, tal como comentabas correctamente tú, PEX y sus Moles o TypeMock les puede servir perfectamente.

# February 9, 2010 10:53 AM

Pedro ha opinado:

Sobre la aplicacion de estilos en linea ... se aplican estilos en linea si se definen las propiedades sobre el control asp.net, lo ideal es aplicar solo un CssClass y definirlo en un css aparte.

Es mas costoso, pero siempre se puede hacer en una segunda pasada!

# February 9, 2010 11:36 AM

Gisela ha opinado:

Hola Pedro,

Si pero si utilizamos los archivos .skin para determinar el estilo del control especificado, al renderizar los aplica in line. Obviamente resulta más óptimo utilizar archivos css y dejar de lado los .skins =)

Gracias por tu comentario,

¡Saludos!

# February 9, 2010 11:39 AM

René ha opinado:

Buenísimo el post, pensé que no se podía utilizar con los skins.

Lo que yo hacía, y supongo que no era el único, era montarlos los controles en una page, y luego Ctrl+X Ctrl+V en el .skin quitando el atributo ID del control.

Gran ayuda la de este post, muchas gracias.

# February 9, 2010 8:14 PM

Marc Rubiño ha opinado:

Muy buen truco Gisela ;-)

# February 9, 2010 8:17 PM

Gisela ha opinado:

¡Gracias por los comentarios René y Marc!

Saludos =)

# February 10, 2010 3:16 PM

yngir ha opinado:

Live Mesh es una alternativa más que interesante ;)

Son muy útiles estos servicios!

# February 10, 2010 11:16 PM

Gisela ha opinado:

@yngir, si, también he trasteado un poquillo con ello pero tampoco lo he llegado a usar realmente. ¿Sabes si te permite ver el histórico de los archivos y recuperar versiones anteriores? La verdad es una de las cosas que me gustó de Dropbox =)

Gracias por tu comentario =)

¡Saludos!

# February 10, 2010 11:25 PM

cpsaez ha opinado:

Sugar free es mas potente porque permite sincronizar mas directorios y dá mas espacio. Tambien es más barato.

# February 11, 2010 11:01 AM

Eduard Tomàs i Avellana ha opinado:

Buenas!!

Yo estoy probando http://www.projectlocker.com/ que ofrecen hosting de SVN de forma gratuita. Para proyectos personales compartidos parece una alternativa razonable.

Ya contaré mis experiencias al respecto... :D

He estado buscando hostings de TFS gratis, pero no he encontrado nada de nada...

Saludos!

# February 11, 2010 11:42 AM

yngir ha opinado:

@Gisela pues creo que live mesh no soporta control de versiones :(

@Eduard como hosting de SVN yo he probado http://www.xp-dev.com y va realmente bien!

un saludo

# February 11, 2010 1:27 PM

Eduard Tomàs i Avellana ha opinado:

@yngir

Pues muchas gracias por el enlace... voy a probarlo también!!!

Un saludo!!!!

# February 11, 2010 2:52 PM

Aaron ha opinado:

Muy útil y práctico como tus otros posts.

A mi también me gusta mucho investigar estos temas sobre todo SOA. Me gustaría invitarte a escribir un artículo técnico, mi correo es: aibanezw@gmail.com

Felicitaciones y que sigan los éxitos.

Aarón Ibáñez W.

# February 12, 2010 3:15 AM

preguntoncojonero ha opinado:

adelante !!! estaremos atentos sra, salu2grz

# February 12, 2010 8:16 AM

Joaquín Sosa Martín ha opinado:

Genial Gis!!!

Gracias.

# February 12, 2010 9:59 AM

jorge ha opinado:

Fenomenal Gisela!!!.

Aprendí jQuey de tu mano, y ahora gracias a tí me introduciré en LuzDePlata.

:-)

# February 12, 2010 1:01 PM

Gisela ha opinado:

Gracias Joaquín y Jorge por vuestros comentarios =)

¡Saludos!

# February 12, 2010 1:17 PM

Gisela ha opinado:

@Eduard probaré lo que comentas porque la verdad es que me gustaría tener control de versiones y parece ser que DropBox es una ayuda pero claro no es el fin...

Estuve mirando un poco las posibilidades de Mesh y efectivamente no soporta histórico de versiones (o al menos yo no lo encontré).

@yngir ¡Gracias por tu enlace también! Los tendré muy en cuenta para ver cuál me compensa más...

Al final tener tanto proyecto, tanta prueba y encima probando en varios equipos distintos esto se vuelve una locura.

¡Saludos!

# February 12, 2010 1:22 PM

Gisela ha opinado:

¡Gracias por tu comentario preguntoncojonero!

Ya está disponible la siguiente entrega =)

¡Saludos!

# February 12, 2010 1:23 PM

Gisela ha opinado:

Gracias a todos por vuestros comentarios =)

La verdad es que son temas que pueden dar mucho que hablar y muchas veces hay que ser conscientes de las magnitudes del proyecto y la complejidad del mismo para evaluar si es factible ponerlo en práctica.

¡Saludos!

# February 12, 2010 1:27 PM

Arturo ha opinado:

Hola

Muchas gracias Gisela!

Saludos

# February 14, 2010 4:06 PM

Gisela ha opinado:

Muchas gracias por tu comentario Arturo :)

¡Saludos!

# February 14, 2010 8:24 PM

preguntoncojonero ha opinado:

señora, señores, algún aplicación-ejemplo real con código fuente donde se aplique Ioc-ID, por ejemplo, aplicación que utilice applogic, agentes, servicios wcf (implementacion, dominio, ....)

salu2grz

# February 16, 2010 8:35 PM

El Bruno ha opinado:

Alli nos veremos !!! :D

# February 17, 2010 12:20 AM

Shuster ha opinado:

Gisela, me agrada como expresas tus ideas. Este artículo es un buen inicio para aquellos que se aventuran a usar NH. Ojalá lo puedas complementar.

Un saludo!!

# February 17, 2010 5:29 AM

Roberto Ramírez ha opinado:

y si mi request lo hice con una petición Ajax? se puede implementar tu solución?

# February 17, 2010 11:55 PM

preguntoncojonero ha opinado:

señora, grabénlo por favor !!! salu2grz

# February 18, 2010 8:32 AM

Gisela ha opinado:

Hola Roberto,

La implementación funciona de la misma manera, aunque realices la llamada a través de AJAX, lo que pasa es que la respuesta se debería manipular de otra forma.

Cuando utilizas el helper de Ajax y añades las propiedades al objeto AjaxOptions, tienes una propiedad llamada OnFailure donde puedes especificar qué función js quieres que se ejecute en el caso de error.

<%=Ajax.ActionLink("HttpException 404 with Ajax", "NotFoundHttpExcepcion", new AjaxOptions { OnFailure = "onException", OnSuccess = "onSuccess", UpdateTargetId = "ajaxTest" })%>

Realmente el control de errores sería a través de esa función.

Puedes recuperar el mensaje del error:

<script language="javascript" type="text/javascript">
function onException(d) {
alert(d.get_response().get_statusText());
}
</script>

O bien puedes recuperar el mensaje de respuesta (obtenemos la página a donde nos hubiera redirigido con el control de errores que implementamos).

<script language="javascript" type="text/javascript">
function onException(d) {
$("#ajaxTest").html(d.get_response()._xmlHttpRequest.responseText);
}
</script>

Espero que resuelva tu duda.

¡Saludos!

# February 18, 2010 5:46 PM

Gisela ha opinado:

¡Eso espero Bruno! ¡¡Traeme algo de Seatle!! :P (Por pedir...)

@preguntoncojonero por el momento no tenemos intención de grabar estas sesiones, pero se está valorando la posibilidad de comenzar con el mundo de los webcast :)

¡Saludos!

# February 18, 2010 5:55 PM

Gisela ha opinado:

Muchas gracias Shuster por tu comentario =)

Espero poder dedicarle más tiempo a escribir sobre NHibernate en futuros posts.

¡Saludos!

# February 18, 2010 5:59 PM

Eduard Tomàs i Avellana ha opinado:

Ya os currais unos buenos eventazos en MAD.NUG, ya... xD

Saludos!

# February 18, 2010 8:10 PM

Gisela ha opinado:

@Eduard :) Este año tenemos preparados cada eventazo !! Espero animarme más adelante y preparar alguno chulo! :D

Gracias por tu comentario ¡Saludos!

# February 19, 2010 11:39 AM

Javier Torrecilla ha opinado:

Gisela, una preguntilla: es necesario que nos llevemos algun portatil para el evento?

# February 19, 2010 11:57 AM

Gisela ha opinado:

No Javier, no es necesario. Pero IMPORTANTE: La cartera si, que luego nos solemos tomar algo ;)

¡Saludos!

# February 19, 2010 12:03 PM

Javier Torrecilla ha opinado:

Jejeje Tomo nota!! Salu2

# February 19, 2010 12:06 PM

Vicente ha opinado:

Muy buena intro Gis! :)

# February 23, 2010 12:11 AM

Eugenio Estrada ha opinado:

Haciendo pruebas con Expresiones Lambda y Dynamic de C# 4.0, llegue a algo similar a esto:

Func<dynamic, dynamic, dynamic> algo = a, b => b(a);

Básicamente es aplicar una función a un valor, pudiendo hacer:

algo(Math.Abs, -20);

:-P

Dynamic + Functional me parece muy versatil :-D

# February 23, 2010 12:20 AM

Julio Trujillo Leon ha opinado:

Hola Gisela

Haces referncia a una expresion lambda en C# con el operador de ámbito como este ejemplo:

suma = (a, b) =>                

{                    

return a + b;                

};

Con dicho operador puedes componer una expresion de varias líneas de código. Sin embargo yo trabajo en VB.NET y no he visto manera de poder expresar una expresion lambda en varias líneas de código (quizás por desconocimiento mío) ¿Sabes si se puede hacer y cómo?

Gracias

# February 23, 2010 8:48 AM

Javier Torrecilla ha opinado:

Muy buen articulo Gisela!

# February 23, 2010 9:28 AM

Gisela ha opinado:

Gracias a todos por vuestros comentarios.

@Julio en cuanto a tu pregunta, una de las novedades que traerá Visual Basic 2010 será el soporte multi-línea en las expresiones lambda y subrutinas, lo cual hasta ahora no soportaba :(

Te dejo un link para que puedas echarle un vistazo de cómo será posible.

¡Saludos!

# February 23, 2010 9:55 AM

cesar gaitan ha opinado:

oie muy buen aporte... gracias eres lo maximo

# February 23, 2010 3:48 PM

Gisela ha opinado:

Muchas gracias por tu comentario cesar :) Me alegro que te sea de utilidad.

¡Saludos!

# February 23, 2010 6:00 PM

Joaquín Sosa Martín ha opinado:

Muy bien Gisela, claro y conciso.

# February 23, 2010 6:43 PM

Eber Irigoyen ha opinado:

Excelente introduccion, solo no entendi porque dices que los arboles de expresion son usados

"más concretamente con LINQ To XML."

Creo que los beneficios de los arboles de expresion son utiles para cualquier implementacion de LINQ, ya que son las expresiones lambdas, convertidas basicamente a datos, para que puedan ser traducidas al destino que se les este dando a estas, LINQ to DB, XML, etc.

Un tip adicional por algo que he notado que batallan algunos developers, con el delegato generico Action<T>, si quisieras usarlo para un metodo que no toma parametros ni regresa valor (void), tendrias que usar el tipo Action (el no generico), si se analiza un poquito tiene sentido, porque Action<T> nunca regresa valor (void), asi que si no tenemos ningun parametro, pues no hay ningun <T> que usar

salu2

# February 23, 2010 7:19 PM

Gisela ha opinado:

Gracias Joaquín y Eber por vuestros comentarios :)

@Eber, tienes razón, la verdad es que no recuerdo por qué concreté con XML ya que se usa en todas ellas ¡Actualizado! Gracias por tu última aportación ;)

¡Saludos!

# February 23, 2010 7:47 PM

Joaquín Sosa Martín ha opinado:

Gracias Gisela, seguimos tu curso!

# February 25, 2010 3:16 AM

Gisela ha opinado:

¡Gracias a ti por seguirlo! :)

¡Saludos Joaquín!

# February 25, 2010 7:49 PM

jorge ha opinado:

Hola Gisela.

Gran Post. Una duda....

Cuando defines en un control Silverlight su invisibilidad con [Visibility="Collapsed"], en tiempo de diseño desde el Ms Blend tb desaparece. Esto me  resulta muy molesto porque se hace complicado seleccionar el control para hacer cualquier cosa con él. En Windows.Forms no se ocultaba y era mucho más cómodo. ¿Sabes si se puede en el Ms Blend desabilitar esto (que no se oculte en diseño aunque tenga [Visibility="Collapsed"])?. No quiero tener que ocultarlo por código al mostrar la pantalla.

Muchas gracias y un super-saludo !!!.

# February 26, 2010 10:59 AM

miguel angel ferrer ha opinado:

gracias por el tutorial muy bien explicado.

# February 28, 2010 12:24 AM

Gisela ha opinado:

Hola jorge,

En primer lugar, muchas gracias por tu comentario :)

Efectivamente en Expression Blend, al modificar la propiedad Visibility a collapsed, perdemos el elemento en la ventana de diseño :(

Por otro lado, he comprobado que en Visual Studio 2010 esto no ocurre y funciona "correctamente" . Por lo que he podido leer, la mayoría de la gente hace lo mismo que me comentas.

Si encuentro alguna solución "elegante" intentaré postearla :)

¡Saludos!

# February 28, 2010 10:24 PM

Gisela ha opinado:

Muchas gracias por tu comentario miguel :)

¡Saludos!

# February 28, 2010 10:25 PM

El Bruno ha opinado:

Ahi nos veremos !!!

# March 3, 2010 8:24 PM

Juan Carlos González Martín ha opinado:

Buen aporte Gisela,

Sólo un pequeño detalle, 500 MB de RAM para SharePoint 2007 son "muy mínimos". Mi recomendación:

- 1 GB al menos para WSS 3.0.

- 2 GB para MOSS.

Si hablamos de SharePoint 2010, el tema se complica:

- 2 GB al menos para SharePoint Foundation 2010.

- 5 GB para SharePoint Serer 2010.

JC's

# March 6, 2010 6:47 PM

Jorge ha opinado:

Porras Gisela!!! ..... deja de postear cosas que me interesan que si no no voy a tener vida social.... ;-)

# March 6, 2010 6:57 PM

Gisela ha opinado:

Hola Juan Carlos,

Muchas gracias por tu recomendación :) Estuve mirando más información al respecto y vi que efectivamente se queda algo corto con lo que pude comprobar inicialmente :/

Actualizaré los valores mínimos para una instalación stand-alone.

¡Gracias!

@Jorge :) jejejeje ... ¡Es que si no apunto estas cosas luego se me olvidan! :P Gracias por tu comentario.

¡Saludos!

# March 6, 2010 7:40 PM

Gisela ha opinado:

¡¡A ver si es verdad Bruno!! :)

¡Saludos che!!

# March 6, 2010 7:45 PM

@blaxzoser ha opinado:

MUy buen detalle me sirvio de mucho

saludos

# March 10, 2010 6:52 PM

Pancho ha opinado:

Muy buen artículo, ya hacia tiempo que no me interesaba por los controles telerik, se ve bastante bien que tengan opcion para ASP.Net MVC

# March 11, 2010 6:18 PM

Joaquín Sosa Martín ha opinado:

Gracias Gisela!

# March 11, 2010 8:07 PM

Pablo Espada ha opinado:

Un detalle, no soportan multi-idioma. Por ejemplo los filtros automáticos del grid (y algún texto) están hardcoded.

Se puede hacer un hack basado en localizar los ficheros javascript pero símplemente tenedlo en cuenta!!!

# March 12, 2010 10:17 AM

Gisela ha opinado:

Gracias por vuestros comentarios :)

@Pablo, estuve revisando la doc de Telerik, y veo que al menos en el Grid está disponible la localización: (Aunque no lo he llegado a comprobar)

To localize the grid you must perform the following steps:

You need to create folder named "App_GlobalResources", where localization files will be copied:

Check the App_GlobalResources folder within the installation location of Telerik Extensions for ASP.NET MVC where you can find localization files for English, German, French or Bulgarian.


¡Saludos!

# March 12, 2010 10:59 AM

novato en ASP ha opinado:

muy bueno, pero sería mejor utilizar por lo menos 2 tablas y relacionarlas, yo he querido hacerlo, pero cuando compilo me dice que la tabla1 no esta asignada, le quito las relaciones a las tablas y todo marcha bien

# March 22, 2010 9:32 PM

Cristian ha opinado:

Hola Gisela, me encanto tu blog, a favoritos !!

Un consulta, la grilla puede mostrar un combo?

Otra cosa, la grilla se le puede cambiar el estilo, para que tenga un formato mas tipo simple, por ejemplo sin color ni imagenes de fondo??

Gracias y saludo.

# March 23, 2010 12:08 AM

Carlos Peix ha opinado:

Con el permiso de Gisela, le contesto a José:

Una implementación posible, a la que estoy seguro de que Gisela llegará en breve, inyectaría el repositorio en el controller via el constructor (con la ayuda de Windsor y reemplazando la ControllerFactory de MVC).

De esta manera, el controller se puede probar ya que se inyecta el repositorio, el cual, por supuesto, estará "mockeado" y, por lo tanto, no necesitara del session factory.

Por otro lado, no creo que sea necesario probar el atributo puesto que su código es sumamente sencillo y menos aun el funcionamiento asociado al controller puesto que eso es responsabilidad del runtime de MVC.

Por ultimo, con este diseño, creo que quedan atendidas las dudas que planteas en el punto 3 y 4.

Un saludo

# March 24, 2010 1:06 PM

jurl ha opinado:

library does not mean "libreria"

this is a bookshop

"biblioteca" is the correct

# March 26, 2010 12:23 PM

Pablo ha opinado:

muy bueno, felicitaciones. los ejemplos son claros y directos.

Saludos.

# April 1, 2010 6:33 PM

Gisela ha opinado:

Muchas gracias por tu comentario Pablo, me alegro que sea de utilidad :)

¡Saludos!

# April 2, 2010 5:14 PM

Gonzalo Perez ha opinado:

Hola, una consulta, tienes el ejemplo para Word2007?

Saludos,

g

# April 5, 2010 9:33 PM

Gisela ha opinado:

Hola Gonzalo,

No, no tengo ese ejemplo... sorry.

Intentaré publicar algo al respecto proximamente.

¡Saludos!

# April 7, 2010 2:18 PM

CharePoint ha opinado:

Dios mío que me sangran los ojos, me estas diciendo que tiras de de backup en MOSS?

Que dios nos pille confesaos :S y que viva el Site Definition

Saludos

# April 7, 2010 3:49 PM

Gisela ha opinado:

Hola CharePoint,

El comentario del restore vino a que me pidieron realizar una copia exacta de un entorno a una máquina virtual y me indicaron que utilizaban stsadm.exe para hacer las copias.

Desconozco si es la forma correcta o no, ya que apenas llevo 2 días con temas de Sharepoint, pero lo único que me importaba por el momento era conseguir la misma versión del sitio del cual procedía el backup.

¡Saludos!

# April 7, 2010 4:18 PM

Javier ha opinado:

Gracias por estos post.

# April 9, 2010 7:30 PM

Javier ha opinado:

Gracias por estos post.

Realmente estan grandiosos..

Seguiremos en espera de mas

saludosa

# April 9, 2010 7:30 PM

Javier Torrecilla ha opinado:

Ouch que lastima no poder asistir. Si vuelvo a pedir un día en mi empresa para asistir a un evento me despiden :(

# April 10, 2010 7:27 AM

Gisela ha opinado:

Muchas gracias por tu comentario Javier, me alegra que sean de utilidad :)

¡Saludos!

# April 10, 2010 10:39 AM

Jorge Serrano ha opinado:

¡Olé Gisela!

Te veo enganchada ya a las charlas. Me alegra y mucho. :-))

Jorge

# April 11, 2010 9:48 PM

sebastian ha opinado:

probe esta opcion y tuve resultados parciales. si bien en localhost/proyecto figura el index, cuando presiono algun link da error (eg: asp.net mvc el link de about) Que puede ser que me este faltando, chequee las rutas pero estan en default. debo cambiar algo?

gracias!

sebastian.

# April 12, 2010 10:12 PM

sebastian ha opinado:

Hola Gisela,

como estas? una nueva consulta y muchas gracias desde ya por la orientacion... Lei los controles telerik y observe los controles grid siendo una lista de datos de tabla. Conoces si estos controles se puede customizar para mostrar una lista de productos con sus imagenes, texto, precios, etc tal como seria en una aplicacion estandar de comercio electronico cuando lista una categoria?.

muchas gracias, excelente el blog!.

sebastian

# April 12, 2010 10:29 PM

Gisela ha opinado:

Hola Sebastian,

¿Tienes instaladas las librerías de ASP.NET MVC en ese equipo? En caso contrario, deberías poner las siguientes dll de tu proyecto con copia local:

System.Web.Abstractions

System.Web.Mvc

System.Web.Routing

En el post Subir una aplicación ASP.NET MVC a Windows Azure aparece la forma de hacerlo.

Espero que sea de utilidad :)

¡Saludos!

# April 12, 2010 10:54 PM

Gisela ha opinado:

Muchas gracias por vuestros comentarios :)

@Cristian si, es posible mostrar un combo añadiendo uno de los campos como tipo template. Por ejemplo:

columns.Template(o =>{
                         %>
                           <%=Html.DropDownList("Combo") %>            
                         <%                               
});

Por otro lado, existen una serie de css donde puedes modificar el estilo. Incluso en la página de Telerik tienen algunos disponibles desde lo más simple.

¡Lamento la espera! No me di cuenta de tu comentario en el correo :(

@Sebastian es posible hacer lo que comentas :) En realidad estos controles son bastante customizables y puedes modificar la mayor parte de su comportamiento y estilo.

¡Saludos!

# April 12, 2010 11:07 PM

sebastian ha opinado:

Gracias Gisela, segui el consejo modificando a true las propiedades de las dll pero no funciono. De hecho cambie todas las dll dentro de References a true pero tampoco. Me llamo la atencion que en modo start debugging funciona perfecto con las mismas url´s no ha si en IIS usando localhost.

Seguire intentando, muchas gracias por todo!.

# April 13, 2010 2:31 AM

sebastian ha opinado:

Listo, habia olvidado de sacar el checkbox a "comprobar si el archivo" existe dentro de "agregar o modificar asignacion de extension". muchas gracias nuevamente!

# April 13, 2010 2:33 AM

Gisela ha opinado:

¡Gracias por los comentarios!

@Javier es que con tanto evento es complicado asistir a todos :)

@Jorge bueno enganchada, enganchada jejejeje hago lo que puedo... Pero todavía me resulta complicado y me falta soltura con estas cosas :/

¡Saludos!

# April 18, 2010 10:40 AM

Jesús Bosch ha opinado:

Si está Vicente es una buena garantía de calidad... lástima que ese día no podré pasarme por Madrid...

# April 19, 2010 8:30 AM

Anónimo ha opinado:

Un pequeño consejo, deberias comprobar los parametros antes del envio del mensaje y devolver el estado del metodo send para comprobar si la operación se ha realizado correctamente. Quizas olvidastes el test unitario ???

Un saludo.

# April 19, 2010 8:34 PM

Gisela ha opinado:

Hola Anónimo,

Soy consciente de que hay que realizar ese tipo de comprobaciones. De hecho, para que quede más elegante, esa funcionalidad no debería estar en este método. Se podría utilizar tanto Data Annotations, IDataErrorInfo, etcétera :)

La idea de este post es mostrar cómo se pueden embeber imágenes dentro de un email de la forma más simple posible.

Tampoco olvidé las pruebas unitarias :) Es cuestión de simplificar una funcionalidad en concreto.

Gracias por tu comentario.

¡Saludos!

# April 19, 2010 10:35 PM

tu follower ha opinado:

Excelente como siempre.

Tenia tiempo con esta duda.

# April 19, 2010 10:55 PM

Ricardo Sanchez ha opinado:

hola, buen post! sobretodo para los usuarios que piden correos masivos(mkt).

Saludos

# April 19, 2010 11:21 PM

raquel ha opinado:

Hola, tengo un problema con los controles de telerik, el scrolling e IE7. Si tenemos los controles dentro de una capa con la propiedad css scrolling:overflow, los controles no se mueven según más manejando el scroll, pero sí las demás capas que no forman parte de los controles de telerik (cómo es lógico). Con IE8 no hay este problema ¿sabrías darnos alguna pista de como solucionarlo? Muchas gracias y un saludo. Raquel

# April 20, 2010 9:45 AM

Gisela ha opinado:

Seguro que si :D

¡Gracias por tu comentario Jesús!

¡Saludos!

# April 20, 2010 9:49 AM

Gisela ha opinado:

Muchas gracias por vuestros comentarios :)

¡Saludos!

# April 20, 2010 9:53 AM

preguntoncojonero ha opinado:

Muy útil, grz sra.

por curiosidad, ¿qué plugin utiliza para WLW para escribir código fuente formateado ?

salu2&grz

# April 20, 2010 9:56 AM

Mario Cortés Flores ha opinado:

Me gustó mucho tu charla, se nota que te gusta la informática, sigue así.

# April 21, 2010 3:03 PM

Jorge ha opinado:

Buenas Tardes.

Me gustaría formular una pregunta. Si necesitara implementar el Servicio en N puntos diferentes (servidores), como haría para, a partir de una URI, poder llamar de manera dinámica a uno en particular?

Muchas gracias por la posible colaboración prestada.

# April 22, 2010 1:32 AM

Gisela ha opinado:

¡Muchas gracias Mario!

Este tipo de comentarios siempre animan a una a continuar :)

¡Saludos!

# April 22, 2010 12:05 PM

Gisela ha opinado:

Hola preguntoncojonero :)

No es un plugin para WLW, es una librería llamada

SyntaxHighlighter.

¡Saludos!

# April 22, 2010 12:08 PM

Gisela ha opinado:

Hola Raquel,

Existe un bug relacionado con el scrolling en IE7. No sé si lo habéis revisado. Te mando un link sobre ello:

http://bit.ly/aOpOlT

Espero que sea de utilidad.

¡Saludos!

# April 22, 2010 12:56 PM

Gisela ha opinado:

Gracias por tu comentario blaxzoser :)

Hola Jorge, creo que no entiendo bien el escenario que planteas. ¿Podrías explicarlo con algo más de detalle?

¡Saludos!

# April 22, 2010 1:22 PM

Jorge ha opinado:

Buenos Días.

La situación es la siguiente: tengo desarrollado el servicio web que se encarga de la consulta de un archivo en una ruta especificada.

Ahora se debe colocar ese servicio en varios lugares diferentes, y se debe acceder a ese servicio para traer archivos de esos lugares.

Desde una aplicación cliente tengo las diferentes Url's de donde debería implementar el servicio, pero necesito saber como indicar esa ruta para poder invocar el servicio.

Muchas gracias.

# April 22, 2010 2:13 PM

Mau ha opinado:

Excelente tuto, se agradece. Ya tenía cubierta la funcionalidad de Word y en Excel estaba un poco turbio.

Me has ayudado bastante con un proyecto que tengo en este momento.

Gracias!

# April 26, 2010 6:00 PM

Edwin ha opinado:

Hola Gisela, he intentado poner en IIS el servicio como indicas, configurando como página de inicio el Service.svc, pero resulta en error 404, no lo encuentra con tu ejemplo de cliente ni en el explorador q podrá ser?, gracias

# April 26, 2010 6:33 PM

Gisela ha opinado:

Hola Jorge, si lo que quieres es acceder a los distintos servicios desde una aplicación cliente de forma dinámica, podrías hacerlo de la siguiente manera:

var uri = new Uri("MyDinamicUri");
var myService = ChannelFactory<IService>.CreateChannel(new BasicHttpBinding(), new EndpointAddress(uri));
myService.Suma(1, 2);

Hola Edwin ¿Pusiste en el directorio virtual el archivo .svc como archivo de inicio?

¡Saludos!

# April 26, 2010 8:34 PM

Gisela ha opinado:

Muchas gracias por tu comentario Mau, me alegra que te fuera de utilidad :)

¡Saludos!

# April 26, 2010 8:39 PM

Edwin ha opinado:

Sii Gise, supuestamente está todo bien, mi ISS esta loco :(.

# April 26, 2010 9:48 PM

Gisela ha opinado:

Hola Edwin,

Vaya :( También escribí un par de post sobre casos que pueden ocurrir:

System.InvalidOperationException IIS 7

Failed to access IIS metabase

¿Qué SO estás usando?

Espero que te sirva,

¡Saludos!

# April 26, 2010 9:57 PM

Miguel ha opinado:

Tengo todo tal cual siguiendo los pasos y el IIS me tira este error, sabrias orientarme a que se puede deber ? ... ya que no logro dar en la tecla

Error de servidor en la aplicación '/WCF'.

Error de configuración

Descripción: Error durante el procesamiento de un archivo de configuración requerido para dar servicio a esta solicitud. Revise los detalles de error específicos siguientes y modifique el archivo de configuración en consecuencia.

Mensaje de error del analizador: Se ha producido un error al cargar el archivo de configuración: No se pudo empezar a supervisar los cambios de 'C:\Documents and Settings\mpeccin\Mis documentos\Visual Studio 2008\Projects\WCF' porque se ha denegado el acceso.

Error de código fuente:

[Líneas de código fuente no relevantes]

Archivo de origen: C:\Documents and Settings\mpeccin\Mis documentos\Visual Studio 2008\Projects\WCF\web.config    Línea: 0

Información de versión: Versión de Microsoft .NET Framework:2.0.50727.3603; Versión ASP.NET:2.0.50727.3082

# April 26, 2010 11:23 PM

livanbal ha opinado:

Hola, esta buenisimo tu post, pero no me funciona en un servidor con windoes 2003 server, ya se esto es para windows xp...pero yo estoy haciendolo correr en win2003 server, tendras algo por ahi que me pueda orientar al respecto, gracias

# April 27, 2010 1:28 AM

Gisela ha opinado:

Hola livanbal,

En ese caso, la versión de IIS es la 6. Te paso el link de cómo sería la configuración para ese caso :)

Subir una aplicación ASP.NET MVC a IIS 6

¡Saludos!

# April 27, 2010 6:51 AM

Gisela ha opinado:

Hola Miguel,

El error te está indicando que tiene problemas con el web.config.

Comprueba los permisos del directorio y que está correctamente el archivo de configuración.

¡Saludos!

# April 27, 2010 7:20 AM

Juan Pablo ha opinado:

Gisela,

¿Hay algún sitio dónde se pueda ver el video de la presentación de ese día?. Estuve apuntado para asistir pero al final no pude ir.

Muchas gracias.

Juan Pablo

# April 27, 2010 7:58 AM

Gisela ha opinado:

Hola Juan Pablo,

Lamento decirte que no fue grabado dicho evento :(

¡Saludos!

# April 27, 2010 9:21 AM

Edwin ha opinado:

Hi Gise, ya lo he logrado en ISS 7, pero lo llamo desde un cliente en la misma aplicacion hecho en ajax y me retorna el error 500, además al cambiarle cualquier cosa en el web.config, se daña el servicio y arroja errores aleatorios de la forma:

Could not load file or assembly 'App_Web_xi4hie0l, Version=0.0.0.0, ..........

A que se podrá deber eso?

Gracias.

# April 27, 2010 5:26 PM

Gisela ha opinado:

Hola Edwin,

Cuando te responde con un error 500 lo más probable es que esté lanzando el servicio WCF una excepción no controlada. Para localizar el problema, te recomiendo que ataches el proceso donde está corriendo tu servicio (Debug => Attach to process) y seguramente llegues al error :)

En cuanto a los archivos App_Web_xXxXxX lo primero que probaría es a eliminar los archivos temporales de la siguientes ruta:

   C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\

¡Saludos!

# April 27, 2010 8:33 PM

preguntoncojonero ha opinado:

No tiene alguna implicación o daño colateral quitar ese módulo ??

salu2&grz

# April 29, 2010 8:03 AM

Raúl Moreno ha opinado:

Excelente post, gracias por compartir la información Gisela. Un saludo!!

# April 30, 2010 11:55 PM

El Bruno ha opinado:

Que skin mas guapo le has puesto al VS2010, es igualito a su hermano mayor jeje ^^

Alu2

# May 1, 2010 2:29 PM

Gisela ha opinado:

Muchas gracias por tu comentario Rául, me alegra que te sea de utilidad :)

¡Saludos!

# May 1, 2010 4:56 PM

Gisela ha opinado:

¡JAJAJAJA! Es que soy una nostálgica Bruno :P

¡Saludos!

# May 1, 2010 4:59 PM

Gisela ha opinado:

Hola preguntoncojonero,

En realidad estás usando la nueva versión de ServiceModel y soporta la funcionalidad anterior que necesitamos. No debería haber problema.

Gracias por tu comentario :)

¡Saludos!

# May 4, 2010 11:29 AM

preguntoncojonero ha opinado:

Por favor, grabénlo !!! o que se pueda bajar el material-presentación-demos-código...

Lo harán en SecondNug en un futuro ??

Salu2&grz

# May 6, 2010 12:34 PM

ruben ha opinado:

muy bueno felicidades no se si me podrias ayudar necesito hacer un chat que el servico este alojado en iis desde 0 y no tengo mucho conocimiento

# May 6, 2010 7:46 PM

Javi López ha opinado:

Hola,

como a preguntoncojonero a mi también me interesa bastante este tema. No puedo bajar a Madrid sólo para acudir al evento (bueno, poder si puedo, pero es mucha tirada sólo para eso :), pero estaría bien poder verlo en directo online, o después si lo graban, o al menos una transcripción o algo.

Un saludo

# May 7, 2010 1:51 PM

sebastian ha opinado:

Hola Gisela,

te hago una consulta... es Entity framework el data access oficial de ASP.net MVC o Linq to SQL?. Tenes conocimiento si Microsoft se decidio por alguna de las dos tecnologias?. Estoy comenzando un desarrollo que sera mi primero en .net y no se que acceso de datos elegir...

Gracias!!. Sebastian.

# May 7, 2010 9:06 PM

Eduard Tomàs i Avellana ha opinado:

@sebastian

Linq to SQL ha entrado en modo "mantenimiento" y NO será ya mejorado... siendo políticamente incorrectos podríamos decir que si no está muerto está moribundo.

Si te estás planteando usar un framework de acceso a datos, no consideres Linq to SQL, considera Entity Framework u otras alternativas que no están nada mal como Nhibernate.

Un saludo!

# May 8, 2010 9:56 AM

El Bruno ha opinado:

Usualmente no los grabamos, pero como se que es muy util tenerlo guardado, le damos una vuelta y vemos si lo podemos grabar.

Salu2

# May 8, 2010 5:09 PM

sebastian ha opinado:

@Eduard muchas gracias! Voy a leer sobre ellas. saludos y gracias.

# May 8, 2010 6:29 PM

Gisela ha opinado:

Gracias Bruno por contestar :) Veremos lo que podemos hacer.

¡Gracias por vuestros comentarios! ¡Saludos!

# May 9, 2010 10:50 AM

Gisela ha opinado:

Muchas gracias por vuestros comentarios y a Eduard por resolver la duda :) Estuve en modo OFF el fin de semana por motivos varios.

¡Saludos!

# May 9, 2010 10:53 AM

Gisela ha opinado:

Hola Ruben,

En el training kit de Visual Studio 2010 tienes justamente una Lab que te muestra como crear un chat con WCF. Puedes descargarlo en el siguiente enlace.

Espero que sea de utilidad.

¡Saludos!

# May 11, 2010 11:07 AM

preguntoncojonero ha opinado:

Señora,

está el Configuration Section Designer en codeplex.com, puede ser útil para ello,

Sería interesante saber cómo encriptar secciones personalizadas.

Salu2&grazie

# May 19, 2010 11:34 AM

Eber Irigoyen ha opinado:

otro hit! gracias

# May 20, 2010 1:22 AM

Gisela ha opinado:

Gracias por vuestros comentarios y por el programa preguntoncojonero.

¡Saludos!

# May 22, 2010 8:37 PM

Facundo ha opinado:

Muchísimas gracias!! Me solucionaste algo que me estaba volviendo loco!!

# May 31, 2010 5:23 AM

Eduard Tomàs i Avellana ha opinado:

Muy buen post!!

Un detalle: La aplicación en Codeplex dice que no está todavía publicada!

Un saludo!

# May 31, 2010 8:16 AM

Gisela ha opinado:

Hola Facundo,

Muchas gracias por tu comentario, me alegra que te haya sido de utilidad :)

¡Saludos!

# May 31, 2010 1:26 PM

Gisela ha opinado:

Muchas gracias por tu comentario Eduard :)

Ya está publicada la app en Codeplex. Ayer no me dió tiempo a subirla :(

¡Saludos!

# May 31, 2010 2:03 PM

Andoni Arroyo ha opinado:

Muy bien trabajado el post, felicidades!

# June 1, 2010 12:07 AM

Gisela ha opinado:

Muchas gracias por tu comentario Andoni :)

¡Saludos!

# June 1, 2010 9:12 AM

Cojonero a secas ha opinado:

"Autenticación Básica con todo lo que ello suponía: el envío de nuestras credenciales con cada petición fácilmente descifrable."

Por Https como debe de hacerse es bastante segura ;)

Saludos

# June 1, 2010 11:22 AM

Gisela ha opinado:

Hola Cojonero jeje,

Es otra de las opciones pero no es una dentro de las posibilidades de las APIs que ofrecen estas compañías, por lo que no valdría en este caso :(

Gracias por tu comentario.

¡Saludos!

# June 1, 2010 11:41 AM

aprendiz ha opinado:

gracias ,muy interesante y muy bien explicado.

# June 9, 2010 9:52 PM

Gisela ha opinado:

Gracias por tu comentario aprendiz :)

¡Saludos!

# June 10, 2010 11:17 AM

preguntoncojonero ha opinado:

señora se podrá descargar la presentación y código ?? no graba´ran estos eventos ??

# June 16, 2010 9:01 AM

preguntoncojonero ha opinado:

señora, se puede descargar el código del ejemplo ? salu2&grz

# June 16, 2010 10:24 AM

Gisela ha opinado:

Hola preguntoncojonero,

Si, la presentación se podrá descargar desde www.madriddotnet.com cuando termine el evento. En esta sesión en concreto, no creo que haya código como tal. De cualquier modo todo el material que Roberto nos facilite será publicado :)

Por el momento no podemos garantizar las grabaciones en MAD.NUG pero estamos trabajando en ello.

¡Saludos!

# June 16, 2010 7:59 PM

Gisela ha opinado:

Hola preguntoncojonero :),

En la página de Telerik puedes descargar todas las demos Open Source para ASP.NET MVC. Por otro lado, si lo que te interesa es comprobar que efectivamente se puede cambiar el idioma, puedes adjuntar a sus demos el código compartido en el enlace tal y como explico en el post.

¡Saludos!

# June 16, 2010 8:03 PM

Fran Díaz ha opinado:

Dos buenas formas para ver un evento :D.

Saludos!

# June 21, 2010 5:54 PM

Gisela ha opinado:

¡Gracias por tu comentario Fran! :)

¡Saludos!

# June 21, 2010 6:34 PM

El Bruno ha opinado:

Y eso que Gise es buena gente y no comenta nada de las cervecitas post-evento !! eso si, solo disponibles en la versión "live"

Salu2

# June 21, 2010 10:33 PM

Quique Martínez ha opinado:

la gente de SNUG, tenemos muchas ganas de hacer este evento en modo coop! :D

# June 22, 2010 10:03 AM

Jorge Serrano ha opinado:

Los de la versión Live os diremos en otro momento como estaban de ricas las cervecitas. :-)

(Hecho en falta a preguntoncojonero diciendo algo sobre esta noticia... que ha costado pero ha llegado). :-)

# June 22, 2010 2:51 PM

Silver ha opinado:

Hola,

muy interesante habia logrado llegar hasta el encabezado de los grupos. Ahora cambiar el texto de los demas componentes era algo que neesitaba hace tiempo. Por otra parte no sabes como hacer lo ismo pero en los grid de telerik para winforms?

# June 22, 2010 5:29 PM

preguntoncojonero ha opinado:

Ay Jorge!!!

La verdad es que me parece muy bien aunque prefiero los nuevos capítulos de Enjuto Mojamuto :)

# June 22, 2010 5:39 PM

Gisela ha opinado:

Hola Silver,

En primer lugar gracias por tu comentario :)

A día de hoy no he trabajado con los controles para WinForms. Existe un apartado para localización y puedes acceder a través de este enlace.

Si bien creo que no hay ninguno en español, te pueden dar una ligera idea de cómo realizarlo.

Espero que te sea de utilidad.

¡Saludos!

# June 22, 2010 5:41 PM

preguntoncojonero ha opinado:

por fin lo han conseguido señores, un paso adelante !! bravo !!!

salu2&grz

veo que hay plagiadores, eso demuestra que la parte cojonera ha cumplido su misión :-)

# June 24, 2010 8:33 AM

Vic ha opinado:

Hola Oye y si yo solo necesito mostrar un tabbedpanel como lo haria con el $(document).ready de verdad soy bastante nuevo en este tema.

Muchas gracias y se ve que este post me va a sevir mucho para entrar a JQUERY mil Gracias

# June 24, 2010 5:29 PM

Eduardo ha opinado:

gracias estaba batallando, ya pude hacer la grafica, gracias por la informacion

# June 24, 2010 8:07 PM

Gisela ha opinado:

Hola Vic,

En primer lugar, muchas gracias por tu comentario :)

No tengo claro si lo que necesitas es crear un tabbedpanel o simplemente mostrar uno que tienes oculto.

Te paso este link donde puedes ver cómo utilizar el tabbedpanel de JQuery UI jqueryui.com/.../tabs

Si lo que tienes es un tabbedPanel oculto y simplemente necesitas mostrarlo podrías hacer lo siguiente:

$(document).ready(function() {

   $("#idTabbedPanel").show();

});

En realidad, lo único que hace ese método de JQuery es mostrar el elemento seleccionado poniendo su propiedad display a block.

Espero que te ayude.

¡Saludos!

# June 24, 2010 11:02 PM

Gisela ha opinado:

Hola Eduardo,

Me alegra que te haya sido de utilidad :) ¡Muchas gracias por tu comentario!

¡Saludos!

# June 24, 2010 11:03 PM

Vic ha opinado:

creo que no formule bien la pregunta ahi va

¿Necesito utilizar el Document.ready para que el contenido de las pestañas se muestre?

Gracias!!!!

# June 25, 2010 8:10 PM

Carlos ha opinado:

Hola. Muy bueno el post. Pero me quedó una duda. Como hago para testear una action de un controller ? lo quise hacer y me dice que la session no tiene un contexto asociado.

Gracias

# June 29, 2010 1:57 AM

Jorge ha opinado:

Hola Gisela

Si, no se puede utilizar un tabbedpanel anidado con otro, yo tengo usando la version 2.2.1 y tampoco me aparece el contenido de los tabs.

Alguna ayuda con esto, se utilizara el document.ready?

Saludos.

# June 29, 2010 11:09 PM

Gisela ha opinado:

Hola Jorge y Vic,

En primer lugar disculpad la espera, estos días han sido un caos por motivos de trabajo y no he podido estar pendiente del Blog :(

No he tenido la oportunidad de trabajar con el plugin Struts2 y desconozco su funcionamiento por el momento. Lamento no poder ayudaros a día de hoy pero, si mi tiempo me lo permite, intentaré pelearme con él para ver si conseguimos una solución al respecto.

¡Saludos!

# July 4, 2010 10:34 PM

Eugenio Estrada ha opinado:

¿Realmente haría falta la clase Computer?

¿No nos llegaría con "unir" el comportamiento de Computer-Machine y acceder al objeto actual this?

# July 5, 2010 10:23 AM

Gisela ha opinado:

Hola Eugenio,

Si que podemos omitir la clase Machine e incluir directamente sus propiedades dentro de Computer y así ahorrarnos dicha clase (Creo que es a eso a lo que te refieres).

El motivo por el que he decidido incluirla en vez de eliminarla es porque, si se sigue ampliando dicho ejemplo, las propiedades incluidas dentro de Machine son un conjunto y por lo tanto un objeto en sí (Están dentro de la máquina).

Si el día de mañana quiero añadir periféricos a la clase Computer igual crearía un List<Devices> o algo así. Solamente era porque no me parece elegante soltar las propiedades directamente en computer cuando se compone de más objetos :)

Gracias por tu comentario :D

¡Saludos!

# July 5, 2010 10:35 AM

El Bruno ha opinado:

Cada día lo creo mas ... ASP.NET MVC los lleva al lado oscuro !! :P

Salu2

# July 5, 2010 11:51 AM

Eduard Tomàs i Avellana ha opinado:

MMmmm...

Las ventajas de una fluent interface no son solamente que el código es más "legible" (que también) sinó sobre todo que como desarrollador que uso una fluent interface, su uso es mucho más sencillo, ya que la interfaz me ofrece sólo en cada momento aquellos métodos (o propiedades) relevantes para lo que estoy haciendo (en contraposición a una interfaz "tradicional" donde se me exponen todos los métodos y yo debo escoger cual quiero).

Si se usa junto con algo tipo "intellisense" (y que IDE no lleva algo parecido hoy en dia?) el resultado es brutal: vas descubriendo los métodos y propiedades "a medida que las necesitas"...

saludos! ;-)

# July 5, 2010 12:03 PM

Gisela ha opinado:

Gracias por la aportación Eduard :) No caí en ello cuando lo escribí.

¡Saludos!

# July 5, 2010 12:13 PM

Lentucky ha opinado:

¿Se parece al WITH de VB, o es deja vu?

# July 6, 2010 9:45 PM

Andres Alvarez ha opinado:

y la base de datos?  me pide una base de datos.

# July 17, 2010 1:13 AM

Gisela ha opinado:

Hola Andrés,

Este post es parte de una serie de artículos que escribí durante la primera versión de ASP.NET MVC. En el mismo, antes de comenzar con la parte de AJAX, te facilito el enlace en el cual se crea la base de datos :)

geeks.ms/.../mvc-nhibernate.aspx

¡Saludos!

# July 17, 2010 1:30 AM

Fausto Argeni ha opinado:

Saludos, tengo el siguiente problema:

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Unrecognized configuration section section.

Source Error:

Line 76:

Line 77:   <!-- Hibernate configuration. -->

Line 78:   <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" requirePermission="false"/>

Line 79:   <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">

Line 80:     <session-factory>

# July 19, 2010 6:18 AM

Fausto Argeni ha opinado:

Gisela o alguien mas ayudeme por favor.

:P

# July 19, 2010 9:51 PM

Gisela ha opinado:

Hola Fausto,

Perdona por la espera,

Parece que no está reconociendo correctamente la nueva sección de la configuración de NHibernate.

Comprueba que está correctamente definida dentro de <configSections> Sin que esté ubicada dentro de ningún  </sectionGroup>. Me explico:

<configuration>
<configSections>
<sectionGroup ...

</sectionGroup>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" requirePermission="false"/>
</configSections>

Espero que con esto te sirva :)

¡Saludos!

# July 20, 2010 12:09 AM

mai ha opinado:

Hola, estoy intentado que funcione en mi equipo el ejemplo y me pide un PIN

# July 21, 2010 12:12 PM

Nachetex ha opinado:

Buenas boluda!!

El jquery es divino... pero para integración de ajax y jquery como java no hay nada, olvídate de Microsoft.

# July 21, 2010 1:11 PM

ATP ha opinado:

En la declaracion private readonly IMachine _machine; creao que el tipo de dato es Machine o esta sin definir la interface IMachine.

Saludos y gracias.

# July 21, 2010 2:49 PM

Gisela ha opinado:

Hola mai,

Cuando eliges el servicio que quieres utilizar y accedes al segundo tab, solicitas los tokens y, automáticamente, la aplicación abre una ventana del navegador, donde debes aceptar la autorización al servicio a través de tu aplicación. Una vez que des el OK te dará un número en el caso de Twitter y un conjunto de letras en el caso de Yahoo :)

Espero que esto te sirva para continuar.

¡Saludos!

# July 21, 2010 2:59 PM

Gisela ha opinado:

Hola Nachetex,

Gracias por tu comentario :) Espero volver a tocar algún día Java pero, por el momento, mi mayor parte del tiempo se la dedico a .NET que es con lo que trabajamos.

¡Ojalá pudiera abarcar más! :)

¡Saludos!

# July 21, 2010 3:00 PM

Gisela ha opinado:

Hola a todos,

@Lentucky, creo que si... La verdad es que hace mucho que abandoné el VB.NET pero viene siendo lo mismo sólo que ahora se estila también en C#...

Hola @ATP, el tipo de la variable privada _machine es correcto: Debe ser IMachine. Esto es así porque la clase Machine está implementando dicha interfaz cuando cambio el ejemplo a Fluent Interface... sólo que no mostré esa parte en el ejemplo :/ Lo agrego entonces para que quede más claro :) ¡Gracias por la observación! :D

¡Saludos!

# July 21, 2010 3:04 PM

Jesús Bosch ha opinado:

Me parece una moda curiosa esto de las fluent interfaces. Supongo que triunfará como la cocacola :-P

# July 21, 2010 3:05 PM

Gisela ha opinado:

Gracias por tu comentario Jesús :)

La verdad es que he visto utilizarla en varias APIS y demás y queda bastante elegante :D Yo empecé a usarlo hace poco para extender los controles de ASP.NET MVC.

¡Saludos!

# July 21, 2010 3:59 PM

Gisela ha opinado:

Hola de nuevo,

Después de todas las personas que han preguntado sobre la semejanza del WITH de VB.NET con Fluent Interface, el Guille ha escrito un artículo sobre ello:

www.elguillemola.com/.../fluent-interface-no-es-solo-simular-el-with-de-vb

Espero que resuelva las dudas :)

¡Saludos!

# July 23, 2010 6:30 PM

Lentucky ha opinado:

Si no estoy en un error, la gran diferencia entre el uso de una interfaz y el with de VB es que con el último NO estamos obligados a utilizar todos los miembros, métodos y propiedades de la interfaz.

Ahora, una pregunta: ¿no se compromete el rendimiento al tener que tener una interfaz por cada objeto, sólo para tener un código más "mantenible"?

¡Saludos!

# July 24, 2010 9:41 AM

sch ha opinado:

Muy buen articulo, mis felicitaciones. Me ha servido de gran ayuda.

# July 27, 2010 8:12 PM

Gisela ha opinado:

Hola sch,

Gracias por tu comentario, me alegra que te haya sido de utilidad :)

¡Saludos!

# July 28, 2010 10:59 AM

Lentucky ha opinado:

Para complementar tu ejemplo, en un simple webform (sin MVC) se puede usar el control HyperLink para lo mismo:

HyperLink hlink = new HyperLink();

           hlink.NavigateUrl = @"http://www.gravatar.com/" + result;

           hlink.ImageUrl = @"www.gravatar.com/.../" + result;

           this.Controls.Add( hlink );

¡Saludos!

# July 28, 2010 9:32 PM

Gisela ha opinado:

Muchas gracias por el aporte Lentucky :)

¡Saludos!

# July 28, 2010 10:31 PM

sebastian ha opinado:

Hola Gis,

disculpa el fuera de topico pero estoy aprendiendo aspnet mvc y tengo dudas. cuento con un desarrollo en webforms donde los aspx y los aspx.cs - aspx.cs.designer - estan todos juntos. Busco refactorizar para enviar los cs a controllers y los aspx a views. En tu experiencia puedo hacerlo asi de simple o me voy a encontrar con mas dificultades. Que curso de accion me sugeris sino para realizar esta modificacion refactor del codigo?.

como siempre muy agradecido, sebastian.

# July 29, 2010 10:36 PM

Si, es correcto ha opinado:

El problema en micaso es que la página la he pasado por varios servidores, y busca aún módulos antiguos, perfecto, los nuevos deben de cumplir las funciones de los antiguos.

Muchas gracias.

# July 30, 2010 4:33 PM

Cloudy ha opinado:

Hola, necesito saber como usar las siguientes referencias y de donde las saco:

using Microsoft.WindowsAzure;

using Microsoft.WindowsAzure.StorageClient;

gracias

# August 1, 2010 10:31 PM

Marco Fernández ha opinado:

Gracias..., GRACIAS :'(..., ya teniá un ratillo buscando algo como tu artículo, sigue adelante que por personas como vos se progresa

# August 2, 2010 4:58 AM

Gisela ha opinado:

Hola Marco,

Muchas gracias por tu comentario, me alegra que te haya sido de utilidad :)

¡Saludos!

# August 2, 2010 11:10 PM

daniela ha opinado:

como puedo hacer lo mismo pero llamando desde cualquier *.js a un jquery.js

# August 3, 2010 8:31 PM

Roger ha opinado:

Hola Gis, esta  muy interesante el blog seria posible que publiques tambien el source.

Saludos

# August 8, 2010 1:03 AM

Gisela ha opinado:

Hola Roger,

En el apartado Attachment del post puedes encontrar el link para descargar el source del ejemplo. Sería el siguiente:

geeks.ms/.../ClienteJSON.rar

Muchas gracias por tu comentario :)

¡Saludos!

# August 8, 2010 1:19 AM

Edgardo ha opinado:

A mi lo de Fluent Interfaces me parece genial

saludos

# August 11, 2010 1:13 AM

Edgardo ha opinado:

Recuerdo que eso lo hacia desde hace mucho con PHP :-)

igual esta bueno

saludos

# August 11, 2010 1:28 AM

Eduard Tomàs i Avellana ha opinado:

@Lentucky

El uso de interfaces no compromete en absoluto el rendimiento... o sea que tranquilo en este punto! :)

La verdad es que como comenta Guille en el enlace que ha pasado Gisela, Fluent Interfaces es un tema mucho más complejo que el encadenamiento de métodos (aunque este sea lo primero que se vea). Puedes pensar que una interfaz fluida es una interfaz que "se va describiendo a si misma a medida que la vas usando". A ver si algún dia de estos saco algo de tiempo y comento algo más al respecto en mi blog!

Un saludo!

# August 11, 2010 7:03 PM

Gisela ha opinado:

Hola Edgardo,

Se ve que cada lenguaje va a su ritmo :)... Mientras que no se queden estancados la cosa no va mal ^^

¡Gracias por tu comentario!

# August 11, 2010 8:07 PM

Gisela ha opinado:

Hola Edgardo,

A mi también me gusta mucho la idea :)

@Eduard Gracias por tu aportación...

¡Saludos!

# August 11, 2010 8:09 PM

Gisela ha opinado:

Hola Daniela,

¿Podrías exponer tu caso concreto? No entiendo bien a lo que te refieres...

¡Saludos!

# August 11, 2010 8:13 PM

Gisela ha opinado:

Hola Cloudy,

Las dll se encuentran dentro de Archivos de Programas en una carpeta llamada Windows Azure SDK. Dentro de ella encontrarás una llamada ref donde podrás seleccionarlas :)

En el apartado Windows Azure de mi Blog verás varios ejemplos con estas dll.

Espero que sea de utilidad :)

¡Saludos!

# August 11, 2010 8:20 PM

Gisela ha opinado:

Gracias a ti por tu comentario :)

¡Saludos!

# August 11, 2010 8:22 PM

Gisela ha opinado:

Hola sebastian,

Hace algún tiempo realizamos una migración de ASP clásico a ASP.NET MVC. Si bien no hay ninguna herramienta o pautas a seguir en este tipo de conversiones, lo que te recomiendo es que intentes migrar la aplicación por funcionalidades. De esta forma puedes permitir que una app conviva con la otra y también ir comprobando que, posiblemente,  parte de la funcionalidad que ya tienes migrada pueda ser reutilizada en otros escenarios.

Si toda la lógica de negocio de la aplicación Web Forms está en el code behind de las páginas es muy posible que la tarea sea más tediosa :(

No es tarea fácil pero creo que merece la pena.

Muchas gracias por tu comentario y perdona el retraso.

¡Saludos!

# August 11, 2010 8:29 PM

Sebastian ha opinado:

Hola Gisela,

muchas gracias por tu mensaje. Lei bastante sobre el tema y encontre varios errores. Lo mejor que encontre al momento es www.packtpub.com/.../mixing-asp.net-webforms-and-asp.net-mvc donde muestra como mezclar soluciones.

En el caso actual tengo varios problemas con los archivos mas que nada con el error

"[InvalidOperationException: The view at '~/.....ascx' must derive from ViewPage, ViewPage<TViewData>, ViewUserControl, or ViewUserControl<TViewData>.]"

todo lo demas lo pude empatar, pero no comprendo porque presenta un problema cuando hago un renderpartial de archivo.

Seguire buscando:S  muchas gracias!!

sebastian.

# August 17, 2010 3:28 AM

Irving ha opinado:

Hola Gisela

Excelente el ejemplo que muestras. Muchas Felicidades.

# August 17, 2010 8:42 PM

andrea ha opinado:

disculpen apenas ando en el mundo de telerik, y quisiera preguntarles si alguien tiene un manual en español donde explique los controles telerik. porfavor me urge gracias.

# August 18, 2010 1:49 AM

Gisela ha opinado:

Hola Andrea,

No hay problema ninguno ^^. Creo que no hay actualmente manuales en español sobre los controles de Telerik :( Pero si nos explicas lo que necesitas igual algun@ podemos ayudarte :)

¡Saludos!

# August 19, 2010 12:09 PM

Gisela ha opinado:

Muchas gracias por tu comentario Irving :) Me alegra que te haya gustado ;)

¡Saludos!

# August 19, 2010 12:17 PM

Bohorkez ha opinado:

Hola! Sé que este blog trata temas de .Net pero en el ejemplo veo que usas la función bind() de jQuery sabes cual es la diferencia entre bind() y poner solamente click()? Llevo  tiempo buscando eso...

Gracias Gisela.

# August 20, 2010 8:53 PM

Gisela ha opinado:

Hola Bohorkez,

En primer lugar, gracias por tu comentario :) Si bien la mayoría de los ejemplos son en .NET, tengo un apartado de JQuery donde tengo algunos artículos relacionados.

La diferencia entre bind y click es que en bind puedes indicar el evento que vas a asociar a el/los elementos e incluso asociar varios eventos a la vez (además puedes asignar eventos personalizados), por ejemplo: click, focus, etcétera. Cuando ocurre cualquiera de esos eventos la función definida se ejecutará.

Sin embargo, cuando usas click es únicamente para dicho evento.

Te adjunto el enlace donde hablo de ello por si te es de utilidad:

geeks.ms/.../los-eventos-en-jquery.aspx

¡Saludos!

# August 20, 2010 9:02 PM

Bohorkez ha opinado:

Más claro imposible. Jalón de orejas para mí por no darme cuenta que habías escrito un post entero sobre ese tema!!

Gracias por tomarte el tiempo de responderme Gisela.

Saludos!

# August 20, 2010 9:15 PM

Gisela ha opinado:

Gracias a ti por tus comentarios :)

¡Saludos!

# August 21, 2010 5:36 PM

Shuster ha opinado:

Hola, soy un desarrollador nuevo en ASP.NET MVC

y este tema de las "fluent interfaces" me parece interesante, espero pronto hacer uso de ellas.

Saludos!!

# August 21, 2010 7:04 PM

Alberto Diaz Martin ha opinado:

Ánimo y recúperate que se echan de menos tus artículos.

Un saludo!!!!!!!!!!!!

# September 4, 2010 1:56 PM

Juan Carlos González Martín ha opinado:

Ánimo Gis,

Espero que todo se solucione y pronto estés por aquí dando guerra :-).

Un abrazo!

JC's

# September 4, 2010 3:41 PM

Joaquín Sosa Martín ha opinado:

Muchó ánimo Gisela, paciencia y tiempo que seguro que mejoras!!!

Saludos.

# September 4, 2010 7:56 PM

Arturo ha opinado:

Te deseo todo lo mejor Gisela. Que te mejores pronto. Saludos

# September 4, 2010 8:34 PM

Rodrigo Corral ha opinado:

Ha mejorarse!!!! Se nota tu ausencia en Geeks.ms :(

# September 4, 2010 11:39 PM

Jorge Serrano ha opinado:

Gi,... ya sabes, un fuerte abrazo y a mejorarse. ;-)

Ya nos veremos.

Jorge

# September 5, 2010 8:56 AM

Juan Maria Nieves ha opinado:

Cuidate , mejorate y sigue formandote leyendo que para eso con el brazo izquierdo y el mouse tienes suficiente :-).

# September 5, 2010 11:01 AM

José M. Aguilar ha opinado:

Hola, Gis!

Mucho ánimo, seguro que pronto estás de vuelta dando caña :-)

Mientras tanto, a cuidarse mucho!

# September 5, 2010 1:29 PM

Luis Viña ha opinado:

Muchos ánimos Gis, y a recuperarte lo más rápidamente posible.

(Sólo te conozco por tus colaboraciones, y soy bastante más mayor, sólo intento aportar un punto de vista positivo, pido disculpas a quien le pudiese molestar mi intervención)

Quizás pueda estar equivocado, pero  desde un punto de vista alternativo, sugiero que aproveches las circunstancias para desconectar un poco de las tareas que puedan implicar una cierta tensión. (Y en esto, quizás… habría que incluir el Twitter).

A veces, los dolores pueden tener su origen en tensiones, puntos de estrés, y posturas corporales forzadas, que vamos acumulando y de las que no somos plenamente conscientes, con frecuencia cuando intentamos hacer más actividades de las que la prudencia aconseja.

Si este pudiese ser el origen…, lo más aconsejable sería reducir tensiones e intentar cambiar en algo los hábitos. Una expresión que se atribuye a Einstein, dice que “Locura es intentar obtener resultados diferentes haciendo lo mismo”

Si tienes oportunidad de leer  un libro, creo que podría ser de utilidad, quizás en tu caso y en otros muchos, para “deshacer” dolores crónicos: “MOVIMIENTO CONSCIENTE. de Anat Baniel“

edicionesurano.blogspot.com/.../movimiento-consciente-anat-baniel.html

(no tengo ninguna relación ni con la editorial ni con ningún centro vinculado a estas terapias, simplemente me parece positivo)

# September 5, 2010 11:12 PM

Eduard Tomàs i Avellana ha opinado:

Ánimo Gis,

Lo importante es que antes que nada te mejores!!!

Cuando vuelvas aquí seguiremos, esperándote!

Un abrazo!

# September 6, 2010 9:46 AM

Enrique ha opinado:

No entendí nada pero sos muy linda asique lo lei todo igual

# September 6, 2010 10:30 AM

Cristhian Fernández ha opinado:

Que no decaiga el ánimo!! Tómatelo como unas merecidas vacaciones =)

# September 7, 2010 8:15 AM

Germansn ha opinado:

muy buena la explicacion!

# September 7, 2010 4:52 PM

Rob ha opinado:

Buenas;

tengo un problema, no me genera el excel, nosé si es que hago mal la llamada desde el main o algo, ¿me podrías ayudar?

Otra cosa:¿Con qué nombre se debería generar el excel?

Saludos y gracias :)

# September 10, 2010 11:20 AM

Leonardo ha opinado:

Muy bueno, me saco muchas dudas, felicitaciones!!!!!!!!!!!!!!!!!

# September 15, 2010 10:20 PM

Return(GiS); ha opinado:

Versión Actualizada aquí Una vez que tenemos agregado un servicio en Windows Azure , estamos

# September 17, 2010 4:37 PM

Gisela ha opinado:

Muchas gracias a todos :)

Está siendo mucho más lento de lo que pensaba :(

¡Saludos!

# September 18, 2010 10:34 PM

Gisela ha opinado:

Muchas gracias por tu comentario Leonardo, me alegra que te fuera de utilidad :) ¡Saludos!

# September 21, 2010 10:37 PM

Gisela ha opinado:

Hola Germansn,

¡Muchas gracias por tu comentario!

¡Saludos!

# September 21, 2010 10:38 PM

Gisela ha opinado:

Hola Shuster,

Me alegra que te haya parecido interesante, creo que es una forma bastante bonita de hacer las cosas :)

¡Gracias por tu comentario!  ¡Saludos!

# September 21, 2010 10:39 PM

Jhon ha opinado:

bien ahi....renegué -_- jja gracias

# September 22, 2010 6:49 PM

Gisela ha opinado:

¡Gracias por tu comentario Jhon! Me alegra que te fuera de utilidad :) ¡Saludos!

# September 23, 2010 10:57 AM

manuel alejandro ha opinado:

gracias...

recien toy empezando a usar sql server 2008

y ese probleme se me atrabezo...

deberas muchas gracias

# September 26, 2010 1:36 AM

Gisela ha opinado:

Hola Manuel Alejandro,

¡Muchas gracias a ti por tu comentario! :)

¡Saludos!

# September 26, 2010 2:03 AM

Eveli ha opinado:

necesito hacer una grafica de dispersion

podrian porfavor ayudarme  saludoss

# September 29, 2010 7:40 PM

Gisela ha opinado:

Hola Eveli,

Creo que puedes encontrar graficas de dispersión en el proyecto de ejemplos, en la siguiente dirección:

code.msdn.microsoft.com/mschart

Espero que te sea de utilidad :)

¡Saludos!

# October 2, 2010 11:27 PM

Ariel ha opinado:

Gracias por la informacion.. no entendi esta parte

"Una vez añadido, necesitamos especificar el idioma en nuestro grid a través del método Localizable que ofrece Telerik:"

Eso donde va?

# October 4, 2010 7:41 AM

miguelpancho ha opinado:

muchas gracias por el aporte..!! es muy valioso...pero me perdi en el mismo lugar que ariel...:( llegue hasta colocar el archivo en la carpeta...esto solo sirve para ASP.NET MVC?? yo trabajo con el asp.net comun....desde ya muchas cracias!!!

# October 8, 2010 9:26 PM

Roberto ha opinado:

Hola disculpa una pregunta yo utilizo un componente calendario de jquery el cual funciona perfecto ejecutando solo en un formulario o ventana, pero cuando a ese formulario es llamado por medio de ajax (en forma asincrona), ese calendario en especifico ya no quiere funciona tu me podrias a ayudar para saber que es lo que tengo que hacer.

Roberto

# October 9, 2010 9:58 AM

Gisela ha opinado:

Hola Ariel y miguelpancho,

En primer lugar, perdonad la demora (actualmente estoy teniendo problemas de salud y me impide estar al día con el blog :()

Si os fijáis en el ejemplo que muestro del grid, podéis ver que uso el método localizable que os comento:

.Localizable("es-ES")

En cuanto a otros controles de Telerik, desconozco si será el mismo procedimiento :(

Espero que os sea de utilidad.

Muchas gracias por vuestros comentarios ¡Saludos!                      

# October 10, 2010 2:38 PM

Gisela ha opinado:

Hola Roberto,

Podrías copiar el código (por ejemplo aquí: http://paste.ideaslabs.com/ )

Quizás así podamos ver dónde está el problema :)

Gracias por tu comentario ¡Saludos!

# October 10, 2010 2:45 PM

Nabolar ha opinado:

Hola, a mí me pasa igula que a Ariel y a miguelpancho.

No se en que archivo se encuentra el método Localizable, entonces no podemos modificar dicho método.

# October 11, 2010 5:26 PM

Jesús Bosch ha opinado:

yo añadiría "<" como carácter sospechoso, que evitará ataques de iñección de script, que pueden generarse a partir de iñección sql :-P

# October 29, 2010 2:57 PM

PyxisPyro ha opinado:

El mejor tip para este tipo de ataques seria utilizar procedimientos almacenados en nuestra BD.

# October 29, 2010 3:43 PM

Juan Irigoyen ha opinado:

@PyxisPyro, el uso de Procedimientos Almacenados sobre todo en EF, es poco recomendable ya que debes abstraerte de la base de datos, las recomendaciones de este post no son utilizar SP de forma masiva.

# October 30, 2010 1:03 AM

El Bruno ha opinado:

@Juan, ¿porqué dices que los SPs no son recomendables? hasta donde yo entiendo de EF (que es más bien poco), existe una posibilidad de utilizar EF+SPs, es más trabajosa, pero los commands+params pueden ahorrarte más de un susto en este escenario.

Ojo que esto saca 2 temas pa debatir:

- realmente necesitamos abstraernos de una base de datos? cuantas veces hemos cambiado Oracle por SQL, o Informix por DB2 en un proyecto?

- usar SPs o no usar SPs. Ahora la tendencia vuelve a ser no utilizar SPs, pero como esto cambia cada vuelta de reloj :D

Ahh y @Gise, nice article XD

# October 30, 2010 3:09 PM

PyxisPyro ha opinado:

@creo que el concepto de abstraerse de la base de datos no es tanto como olvidar que los motres de BD tienen herramientas que nos ayudan mucho en el desarrollo y en la proteccion de la información, ademas en el entity framework esta soportado la utilización de procedimientos almacenados(msdn.microsoft.com/.../bb896279.aspx).

# October 30, 2010 3:41 PM

PyxisPyro ha opinado:

# October 30, 2010 3:44 PM

Juan Irigoyen ha opinado:

@Bruno, en base a esas ideas, por que no usar Entity to Sql, se supone que EF

se diseña entre otras cosas para permitir abstraerse de la base de datos que utilizas,

la sencillez del diseño de consultas en EF con la utilización de parámetros hace que solo en casos

determinados donde quieras sacar verdadero partido a Sql sea necesario el uso de SP, no hay que olvidar

que el uso de SP supone un coste mayor en cuanto al mantenimiento del SP y del código que lo utiliza y crea dependencias sobre la base de datos, si en algun momento quieres migrar esto tendra un alto coste, los SP también son fruto de problemas, tienes que mantener sincronizados el código de sql y de tu aplicación y es fácil olvidarse de cambiar el tamaño o el nombre de cualquier parámetro en los dos sitios.

No sere yo el que desaconseje el uso de SP, de hecho mi aplicación actual usa de forma masiva

SP, tengo mas de 400, se que alguno pondria el grito en el cielo, pero en mi caso comence el proyecto hace ya varios años y EF no era una opción. Entiendo que el artículo de Gisela se refiere a parametrizar consultas para evitar SQL Injection, no al consejo de hacer todo con SP, por eso deje la nota en post.

Es un tema muy interesante para discutir y estoy deacuerdo que muchas decisiones se toman por moda, aunque insisto, si mi aplicación utilizara EF, intentaria reducir mis SP al máximo ya que son muy pocas las situaciones donde la ganancia por rendimiento merezca la pena, y pienso que es importante que todo tu código de acceso a datos se encuentre en una sola capa y sea facil de mantener, algo que muchas veces no tenemos en cuenta.

Un saludo.

# October 30, 2010 6:45 PM

Eduard Tomàs i Avellana ha opinado:

No voy a entrar en si usar SPs o no... sólo que, que si el motivo de usarlos es OBTENER MAYOR SEGURIDAD, estamos un error. Las consultas parametizadas ofrecen el mismo nivel de seguridad. Asi, pues usar SPs o no puede dar (ha dado y dará :p) para muchas discusiones, pero no creo que la seguridad tenga nada que decir al respecto.

@Bruno

Abstraernos de la BBDD? No creo que la respuesta sea abstraernos para cambiar de SQL Server a Oracle. Yo *quiero* abstraerme de la BBDD, no porque quiera cambiarla, sinó porque NO quiero saber nada de ella: quiero saber de mi modelo de dominio, no de mi modelo de datos. Usar una BBDD és una opción tecnológica que debería condicionarme lo más mínimo. Ahí es donde entran herramientas como EF. :)

Saludos!

# October 30, 2010 11:04 PM

Gisela ha opinado:

¡Buenas a todos!

En primer lugar, muchas gracias a todos por vuestros comentarios. Da gusto cuando un tema da de qué hablar :)

En primer lugar, como bien comenta Eduard, gracias a las consultas parametrizadas conseguimos del mismo modo que con los SPs evitar los ataques de inyección de SQL que era el objetivo principal de este post.

Por otro lado, me gustaría añadir que no soy muy partidaria del uso de SPs. En mi opinión estos deberían usarse lo mínimo posible ya que soy creyente de que la lógica de negocio debería residir en la aplicación y no en la base de datos.

Jesús Bosch, en cuanto al carácter < como bien dices sería necesario omitirlo o denegarlo por temas de inyección de scripts, de lo que me gustaría crear un post sobre algunos tips al respecto también :)

Creo que este tipo de post son necesarios ya que me he dado cuenta de que no todo el mundo tiene en consideración este tipo de cosas :(

¡Saludos!

# October 31, 2010 1:24 AM

Gisela ha opinado:

Hola Nabolar,

En primer lugar, disculpa la demora ya que he tenido que permanecer desconectada por problemas de salud.

El método Localizable pertenece a <% Html.Telerik().Grid(Model) tal y como muestro en el código de ejemplo.

¡Saludos!

# October 31, 2010 1:27 AM

Ana ha opinado:

Buenos días a todos, a ver si me pudieseis ayudar...

Tengo el siguiente codigo y necesito que una de las columnas, venga dada a traves de una consulta a un método, con el código como esta puesto se me muestran todos los titulos de peliculas seguidos y luego el grid con las columnas pertinentes, ¿como hago para meter los datos dentro de la columna? Alguna ayuda?

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">

pelisvistas

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<%: ViewData["Message"] %>

   <%      

       Html.Telerik().Grid(Model)

       .Filterable()

       .Name("video")

       .Pageable(settings => settings.PageSize(20))

       .Sortable()

       .Columns(columns =>

      {

          columns.Bound(o => o.id_peli).Title("ID");

          columns.Bound(o => o.estado).Title("Estado");

         columns.Bound(o => o.descrip).Title("descripcion");

          columns.Command(o =>

          {%>

          <% foreach (var lib in this.Model)

          {%>

               <%= intrahelper.labelpeli("id_peli", (int)lib.id_peli) %>

           <%} %>

          <%}).Title("pelicula");    

          columns.Template(o =>

          {%>            

               <%: Html.ActionLink("Más", "Details", new { @id = o.id_pfc })%>

               <%: Html.ActionLink("Modificar", "Pledit", new { @id = o.id_pfc })%>

          <% });          

      })

      .Render();

    %>

Muchas Gracias!!

# November 3, 2010 12:14 PM

Lluis Franco ha opinado:

Coñe! Ojalá la hubiese conocido antes... yo me he llegado a despertar por la noche para parar algun deployment :-)

Piensa que además para las demos que suelo hacer cojo una máquina ExtraGrande con 8 cores, y eso significa: preciohora * 8 :-S

# November 22, 2010 9:58 AM

Gisela ha opinado:

¡Hola Lluis!

La verdad es que es muy útil y no eres el único que se ha levantado a las tantas diciendo ¡coñe! ¡El deploy! jeje.

Gracias por tu comentario,

¡Saludos!

# November 24, 2010 10:11 AM

Julio Trujillo Leon ha opinado:

Hola Gisela

Para realizar las pruebas del post es necesario que Microsoft te incluya en el programa Beta de servicios extras de Azure no?

# December 3, 2010 8:57 AM

Gisela ha opinado:

Buenas Julio,

Para este escenario en concreto no es necesario el programa beta.

A día de hoy, el programa beta es solamente para poder utilizar el tamaño Extra small de las VMs, Azure Connect para la creación de VPNs y el VM Role para poder subir tus propias imagenes de Windows Server 2008 :)

¡Saludos!

# December 3, 2010 9:01 AM

Roberto ha opinado:

Muy buen post Gisela

# December 3, 2010 5:22 PM

Gisela ha opinado:

¡Muchas gracias Roberto!

¡Saludos!

# December 3, 2010 10:58 PM

Carles Company ha opinado:

Tambien podemos usar bindings directamente para pasar el fichero a la acción:

[HttpPost]

public ActionResult CreateBlob(HttpPostedFileBase newFile){

   //Retrieve the file by name

   var file = newFile

   if (file.ContentLength > 0) {  

       SaveBlob(file.InputStream);

   }

   return RedirectToAction("Index");

}

Un saludo.

Carles

# December 10, 2010 8:54 AM

Gisela ha opinado:

Hola Carles,

Muchas gracias por tu comentario :) La verdad es que me parece una manera más acertada utilizar bindings y la verdad no era consciente de que en este caso se podía hacer :)

Ya he modificado el código.

¡Gracias por tu aportación!

¡Saludos!

# December 10, 2010 11:15 AM

Julio Trujillo Leon ha opinado:

Hola Gisela

Una de las cosas que Microsoft nos recalca de continuo es que Azure no es un sistema propietario, es decir, que puedes llevarte tus aplicaciones de Azure a un hosting de tu propiedad.

En este caso, si usamos estas entidades ¿existe soporte a ellas fuera de Azure?

Gracias

# December 15, 2010 8:47 AM

Gisela ha opinado:

Hola Julio,

Buena pregunta :) Windows Azure Storage como tal no existe fuera de la plataforma Azure.

En el caso de las tablas lo único que se me ocurre que se podría hacer sería migrarlas a una base de datos si cambiaras de hosting, pero a día de hoy no existe ninguna herramienta que te de esta opción. Tendrías que crearte una aplicación a medida para hacer la migración automática.

Un saludo.

# December 15, 2010 5:03 PM

Gisela ha opinado:

Hola Ana,

Creo que no es posible llamar a un método para generar una columna, pero si es posible llamar a una propiedad. En ese caso tendrías que utilizar esto último para poder devolver los datos necesarios para ese campo.

Perdona por el retraso :(

¡Saludos!

# December 19, 2010 10:41 PM

rolando ha opinado:

Interesante!!

Pero sobre que versiones de office podría trabajar tu ejemplo?

# December 23, 2010 1:59 PM

Gisela ha opinado:

Hola rolando,

Muchas gracias por tu comentario :)

Si bien este formato se introdujo a partir de Office 2007, podemos hacer uso del mismo en versiones anteriores (Microsoft Office 2000, Office XP y Office 2003) con un pack que salió de compatibilidad. Te adjunto el link por si te fuera de utilidad:

office.microsoft.com/.../microsoft-office-compatibility-pack-for-word-excel-and-powerpoint-2007-file-formats-HA010168676.aspx

¡Saludos!

# December 26, 2010 9:00 PM

fravelgue ha opinado:

A mi me resulta muy cómodo usar Topshelf para la creación de servicios.

- github.com/.../topshelf

# January 5, 2011 12:46 PM

Jim ha opinado: