Multi-threads Form Log Manager

This simple C# application shows how you can create a visual log manager for multi-threading applications using a different window for each thread that you want to trace, so easily you will be able to see what is doing each thread.

The best point of this log manager is that you won’t need to add any extra logic in your multi-threading application to manage the corresponding windows of each thread. Simply, you only have to do something as easy like this:

public   void YourMethodInYourApplication()
{    
     MultithreadsFormLogManager.Instace.WriteMessage(“my message from this thread”);
}

Automatically, if this thread already has a windows, a new message will be added to it; in other way, a new windows will be created with this first message.

To test it, I have created a Multi-threading Ping application, which will lunch a thread for each ping request that you want to do. So, you will see on independents windows how each ping request is working:

.png" rel=WLPP>image

In my case, I applied this tool to Microsoft Dynamics CRM. It was very useful to test a multi-threading application which managed a organisation for each thread. So, I could see what was happening in each organisation.

You can download the code from http://code.msdn.microsoft.com/MultiThreadFormLog

enviado 21 abril 09 03:23 por rtebar | 0 comentarios   
Archivado en: ,
Trace and Debug Plug-in in Microsoft Dynamics CRM 4

One fundamental point in CRM are the plug-ins. With this extension mechanism, we can add any business logic over our CRM solution. However, test and debug it is usually harder, since this assembly will be integrated in the server. Here are shown several options to drive this problem:

  • DevErrors in web.config: This configuration setting indicates what kind of error will be showed to the end user. By default, it will be a generic error without any information. If we enable this setting, we’ll get a more useful error page.

How to modify the Web.config file to show more detailed error messages in Microsoft CRM

  • Enable trace generated by CRM platform. From the register. In this article you can find the keys that you need to update:

How to enable tracing in Microsoft Dynamics CRM

To manage these traces easily, we have several tools:

  • Trace File Viewer: a extension for the Stunnware Tool to visualize easier the traces files generated by the platform

Stunnware Tools for Microsoft Dynamics CRM 4.0 - Trace File Viewer (free extension)

IMPORTANT NOTE: This trace are enabled for all the organisation and all users, so the performance of our system will be affected considerably. Remember to disable when you finish.

  • Custom Traces from inside of our plug-ins: without doubts, this is the cooler options, since we could even test live environment. The idea is create a trace entity in CRM which can be accessed like another entity. So, you can check the traces by web interface, outlook, web services, …. A very good example of implementation for this idea can be found in the framework of David Jack, which is described in his great book CRM as a Rapid Development Platform. You can read more and download the code from this site: http://www.thecrmbook.com/. In addition, in this framework he’s also developed another cool windows application tool “Plug-in Test Harness” to test a plug-in simulating that it has been registered in CRM, but without really need it.

Finally, we could debug our code step by step using Visual Studio:

  1. Copy the .pdb file, which is together with our generated dll in Debug folder, to C:\Program Files\Microsoft Dynamics CRM Server\Server\bin\assembly
  2. In Visual Studio, we go to Debug->Attach to Process
  3. Selected "w3wp.exe":

enviado 16 abril 09 11:04 por rtebar | 1 comentarios   
Archivado en: , , ,
opends60.lib and extended stored procedure in 64-bit SQL Server

If you want to create some extension for Microsoft SQL Server, you will need to create a DLL that contains extended stored procedures functions (read more about it). A very good and useful example: imagine that you want to call a external application from a trigger or a stored procedure in your SQL Sever (00, 05 or 08). Cool, isn’t it? You can find this example in this nice article of The Code Project: Run external programs from SQL Server stored procedures.

But this example is focused in 32-bit platforms. If you want to run this extension, or any one that you have developed, you will need to recompile it for x64 platforms. In this last case, the library opends60 will be required. You can find it in your SQL Server (e.g. for a SQL Server 2008):

opends60.dll => ~\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn

opends60.lib => ~\Program Files\Microsoft SQL Server\90\SDK\Lib\x64

(read more about it)

So, to recompile it, you can do that from Visual Studio (e.g. 05 or 08):

1) Add a reference to the static library:

image

2) Place the opends60.lib file in the root of you Visual Studio C++ project:

image

3) In the Visual Studio settings, select x64 platform, and rebuild the project.

image

4) Automatically, in the root of your C++ VS project, a new x64 folder will appear with this new recompiled DLL.

Enjoy!

Organise the icons of your desktop

Cool and useful! These two words I would use to describe this free tool for XP, Vista and Windows 7 that my friend Juanan told me last week. Take a look at the following video.

You can download it from its official website:

http://www.stardock.com/products/fences/

Enjoy!

enviado 05 abril 09 01:46 por rtebar | 1 comentarios   
Archivado en: , , , ,
Microsoft SharedView y Microsoft Office Live

Os gustan los entornos colaborativos? Pues Microsoft sigue invirtiendo en ello.

El que más o el que menos, ha utilizado algún Google Document compartido con varias personas para trabajar cómodamente online al mismo tiempo. Evidentemente, ésta es una herramienta super útil y de gran futuro.

Microsoft ha notado ello, y desde hace algún tiempo tenemos los servicios de Office Live (officelive.com). Ya que el origen del modelo de negocio de Microsoft parte de un producto off-line, el lado opuesto a Google, la evolución es diferente y las funcionalidades también, creando su ventajas y desventajas.

Vinculado a estos nuevos servicios de Office Live, Microsoft publicó el pasado año 18/02/2008 la aplicación gratuita Microsoft SharedView, muy interesante, para trabajar de forma colaborativo en tiempo real con documentos de office, pudiendo compartir la pantalla hasta un máximo de 15 personas.

Sin duda, es una batalla muy interesante donde encontraremos nuevas interesantes funcionalidades y nuevas oportunidades de negocio.

Microsoft Dynamics European Tour

Si estais interesados en conocer algo más sobre "la parte de Business" en los productos de Microsoft, hay un evento bastante completito en Madrid. Aquí podeis darle un ojo:

http://msevents.microsoft.com/cui/EventDetail.aspx?culture=es-ES&EventID=1032405703

AGENDA

09:30 - 10:00 Registro de asistentes y entrega de documentación

10:00 – 11:00 Microsoft Dynamics en el mundo real

Microsoft Dynamics es una línea de soluciones integradas y adaptables para la administración empresarial (ERP) y la gestión de las relaciones con los clientes (CRM). Mostraremos los productos que forman parte de Dynamics y cómo hay ya más de un cuarto de millón de empresas que lo utilizan hoy en día. Microsoft Dynamics no es sólo una solución óptima para la gestión del negocio empresarial sino una potente plataforma de desarrollo de aplicaciones.

11:00 – 11:15: Microsoft y su compromiso académico.

Durante esta sesión mostraremos los recursos disponibles para estudiantes y facultativos interesados en  Microsoft Dynamics y las tecnologías relacionadas.

11:15 – 11:30 Descanso

11:30 – 12:30 Dynamics CRM como Plataforma de Desarrollo de Apliciones de Negocio

Microsoft Dynamics es una plataforma robusta (“xRM”) para el desarrollo de múltiples aplicaciones de negocio. Veremos cómo se puede extender esta plataforma de forma sencilla para crear y capturar datos externos y aprovechar algunas de sus características como la gestión de flujos de trabajo, acceso offline y visualización de informes. En la sesión también se mostrará cómo se puede usar CRM y el Framework .NET para crear aplicaciones empresariales “en la nube”. Veremos también como Microsoft Dynamics CRM puede ser integrado con Microsoft Office, Microsoft SharePoint, Microsoft Live Services, WPF, Silverlight, Office Communications Server y otras muchas tecnologías para ofrecer soluciones completas para la empresa.

12:30 – 13:30: Dynamics AX 2009 y .NET, la pareja perfecta.

Microsoft Dynamics AX 2009 es una solución de gestión empresarial completa para organizaciones de tamaño medio y grandes organizaciones que trabajan con el conocido software de Microsoft para mejorar la productividad del personal.

En esta sesión veremos lo bien que encaja Dynamics AX 2009 con el Framework .NET demostrando cómo se pueden realizar desarrollos desde el entorno de Microsoft Visual Studio que aprovechen las potentes reglas de negocio que ya implementa Dynamics AX 2009. Utilizando el Dynamics AX Application Integration Framework (AIF), también se mostrará cómo utilizar librerías .NET desde el código de Dynamics AX así como el uso de Servicios Web y otros escenarios posibles de integración.


enviado 20 febrero 09 01:14 por rtebar | 0 comentarios   
Archivado en: ,
“Un espia en el bolsillo: Google Latitude”

Esta es la primera noticia que me encuentro esta mañana en el periódico Metro de Londres. ¿Y que puedo hacer yo ante ello? Evidentemente, probarlo!! ;)

 

Tal como dice en la web de este servicio http://www.google.com/latitude/, está disponible para Windows Mobile 5 y superiores, el cual es mi caso.

Esa pantalla que ahí veis es una Google Gadget, y desde el escritorio estoy viendo mi actual posición dectectada automáticamente (la cual debo decir que no es totalmente acertada…). En el móvil me aparece algo similar.

Ahora empiezan las preguntas…..¿cuántas parejas romperá este servicio? ¿Más o menos que un Erasmus? ¿cuántas más casas, coches…. serán robados? ¿habrá llegado el fin de nuestro tradicional “juego del escondite” (“hide-and-seek”)?…..

¿Qué opinais de esa opción “Set your Location”, donde puedes establecer manualmente tu posición? Interesante verdad…, otra oportunidad para los infieles maridos ;)

Bueno, creo que tampoco hay que tener un pesamiento tan oscuro y ser tan dramático, ya que siempre nos quedará la opción de que algún sábado noche nos encuentre alguna chica desamparada de nuestra lista de contactos en la barra de algún barecito perdido hahaha.

enviado 05 febrero 09 11:08 por rtebar | 0 comentarios   
Archivado en: ,
CRM in London

Desde el pasado Octubre del 2008, me encuentro en Londres realizando una internship en la empresa internacional Alfapeople, dedicada exclusivamente a la implantación, hosting y consultoría de la plataforma Microsft Dynamics CRM.

version-iconDespués de esta buena experiencia, y aunque mi beca Leonardo Da Vinci todavía no ha aboutboxteminado, ya soy parte del equipo ;). A la voz del señor Marco Amoedo, (quisiera tener los poderos de Peter Petrelli para “robarle” todos los conocimientos que este hombre tiene de CRM!!), resolvemos cualquier problema de esta “peazo” plataforma.

También debo mencionar al resto de mis fabulosos compañeros, que además de ser “enormes” personas, hacen muy buen trabajo y aportan todo su esfuerzo. Además, cada unos de ellos son de una parte del mundo, con lo que no me queda otra que practicar mi inglés. Nuestro último joven y brillante fichaje es un cercano pariente de Sevilla, Jesús Lucas.

Así, además de hostear, instalar y asesorar acerca de la mejor solución para integrar CRM en tu negocio, como ingenieros software, diseñamos y desarrollamos nuevas personalizaciones y configuraciones del CRM mediante plugins, workflows, integración con web services (tal como Live Services o cualquier otro) y web sites (conectamos los existentes portales web con CRM para englobar todo en una solución global), integración con clientes ricos como Silverlight, personalización de informes,…

Por tanto ya sabes, si vienes por Londres, CRM + pintas aseguradas...;)

enviado 03 febrero 09 05:46 por rtebar | 1 comentarios   
Archivado en: ,
Mesh is ready

Vamos a ver si retomamos el blog...Wink

Ya teneis disponible un servicio mu chulo llamado Windows Live Mesh, el cual permite crear una nube de archivos en internet y sincronizarlos entre distintos dispositivos. Hasta hace muy poco, este servicio solo estaba disponible en EEUU, al menos ahora, en UK tambien lo tenemos, espero que en Spain sea tambien asi. Queria justamente que lo probarais y me comentarais.

Podeis probarlos en la direccion https://www.mesh.com/

 

enviado 03 noviembre 08 11:01 por rtebar | 1 comentarios   
Archivado en: ,
Firefox + IE en uno

Con el plugin para Firefox IE Tab podeis tener el Firefox y el IE juntos en la misma aplicación, si tener que abrir dos ventanas, solamente pulsando un iconito. Esto puede ser muy últil cuando se está testeando apliaciones Web y teneis constantemente que comprobar el funcionamiento y rederización en ambos exploradores.

 Podeis descargarlo de https://addons.mozilla.org/es-ES/firefox/addon/1419

 Gracias Ana por esta herramienta!

 Un saludo!

 

enviado 19 junio 08 12:26 por rtebar | 0 comentarios   
Archivado en: ,
Tutoriales Silverlight 2 PDF

Nuestro compañero Jesse Liberty se ha currado unos tutoriales de Siverlight 2 en formato PDF. Podeis descargarlos de los siguientes enlaces:

 1 Creating Applications With Controls and Events

2 Binding Data In Silverlight

3 Filling a DataGrid using Sql, Linq and WCF

4 Instant Code Reuse: User Controls in Silverlight

5 Introducing Expression Blend For Silverlight Developers

 

Podeis encontrar más información en su blog personal sobre Silverlight

 

enviado 07 junio 08 04:22 por rtebar | 0 comentarios   
Archivado en:
Messenger Group - Un bot gratuito para tu Messenger

Hace 2 años, Microsoft organizó un concurso de bots a nivel mundial para publicitar esta herramienta tan flexible y potente. Por gusto propio y curiosidad, me anime a participar e hice un simple bot equivalente a una "calculadora friendly" o algo así, vamos, algo muy sencillo por concursar y ver como era eso.

Cual fue mi sorpresa cuando ahora, 2 años después, un de los chicos de China que trabaja para Incensoft, la plataforma sobre la que me apoyé para desarrollar mi bot, contacto conmigo y me comentó que estaban probando un nuevo bot y que si me gustaría ayudarles a testearlo y probarlo, que no tenían a nadie de España. (por supuesto, he aceptado!!)

La idea de este bot es sencilla pero útil. Desde la web de Messeger Group, podreis crear vuestro propio nuevo bot, el cual representará a un grupo de contactos que tu quieras ir añadiendo, para en cualquier momento mantener una conversación múltiple con ellos. Es una forma rápida de agrupar tus contactos y comunicarte con un colectivo concreto.

El bot es gratuito y podeis probarlo en cualquier momento. Sólo teneis que ir a la siguiente dirección web y seguir estos pasos para crear vuestros propios grupos:

image

Introduces el nombre de tu nuevo grupo arriba a la derecha:

image

Tras presionar "Create Now!", te aparece la dirección del nuevo bot que acabas de crear. Esta tienes que añadirla en tu Messeger.

image

Tras añadir este contacto a tu Messeger, te aparecerá un contacto constantemente conectado (como buen currante Bot que es):

image

Si pulsamos sobre él y le enviamos un nudge, nos aparecerá una extensión a la derecha indicándonos los miembros que forman nuestro grupo, así como una barra de herramienta para añadir o gestionar los contactos que lo forman:

image

image

En la siguiente web aparece la gente que se aburre como yo y está echándoles una mano:

http://www.messengergroupchat.com/mfc.html

Si alguno más os animais a participar, decírmelo y les digo que hay un nuevo español en el equipo....;)

enviado 02 junio 08 06:24 por rtebar | 0 comentarios   
Archivado en: ,
Consumir un servicio web del ordenador local desde Windows Mobile

Muchos compañeros me han preguntado varias veces esta cuestión aparentemente sencilla, pero que a mí en su momento también me entretuvo bastante y por si a alguna otra persona le puede ayudar, lo quería dejar definitivamente escrito.

La situación es la siguiente. Vamos a realizar una aplicación para nuestro dispositivo móvil, la cual va a consumir un servicio web que estará corriendo, en un principio durante el testeo, en nuestro ordenador de desarrollo y al cual está conectado nuestra PDA o Smartphone.

Cuando agregamos la referencia web en nuestro proyecto de Visual Studio de Smart Device, la cual apunta al otro proyecto de Web Service en la misma solución, tenemos una referencia local tal que:

http://localhost:49217/WebServiceName/Service.asmx

image

Al ejecutar esto en el dispositivo móvil, él entiende que localhost es él, y que ahí no está corriendo el servicio que le indicamos, por lo que se producirá un error. Por tanto, una vez que nos damos cuenta de ello, el siguiente paso que habitualmente se nos ocurre, y que es lo más natural, es cambiar en la ventana de propiedades que antes mostrábamos la Web Reference URL, e indicarle una IP de alguna interfaz de red de nuestro ordenador, por ejemplo:

image

No obstante, al hacerlo desde la ventana de propiedades lo más que obtenemos es lo siguiente:

image

¿Y ahora qué? Ahora viene una posible solución. En lugar de establecer esta última IP en la ventana de propieades de forma visual, nos iremos al fichero Reference.cs que se encuentra en el siguiente directorio:

.....\NuestroSmartDeviceProject\Web References\WebServiceName\Reference.cs

image

Y en el constructor de la clase contenida Service, veremos que se inicializar una propiedad llamada URL. Ésta asignación es la que debemos cambiar, y sustituir localhost por la IP deseada:

image

image

Esta tarea es la que se supone que tendría que hacer VS cuando modificamos la URL desde la ventana de propiedades.

enviado 25 abril 08 08:03 por rtebar | 0 comentarios   
Archivado en: ,
ClickOnce + DotNetCenter: solucionando problemas con los ficheros de configuración XML

Mediante ClickOnce podemos publicar en la red nuestras aplicaciones de escritorio usando Visual Studio, del mismo modo que publicamos un servicio o pagina web. Al mismo tiempo que conseguimos que nuestra aplicación pueda ser descargada por cualquier persona, nos proporciona implícitamente un gestor de versiones, avisando al usuario de cualquier nueva actualización de nuestra aplicación. Desde las propiedades de nuestro proyecto podemos encontrar toda la configuración necesaria para reliazar la publicación:

configClickOne

Automáticamente, ClickOnce te genera una pagina web en el sitio de publicación (en este caso veis que he usado una conexión por ftp para subir los ficheros) para poder realizar la instalación de la aplicación. El aspecto de la web es el siguiente:

webclickOne

En el proyecto DotNetCenter queríamos aprovechar esta herramienta. Aparte de poder encontrar toda la información sobre dicho proyecto en el link anterior, simplemente resumiros que dicha aplicación fue lanzada por algunos coordinadores de los DotNetClubs de diferentes partes de España para intentar crear una sencilla y genérica aplicación para la gestion administrativa interna de los clubs. Alguna de las características más atractivas del proyecto son:

  • Soporte de nuevos módulos mediante plugins

  • Histórico para soporte de errores mediante un log común

  • Información de las plugins cargadas

  • Envío de feedback o errores de Plugins por Email

  • Pequeñas configuraciones mediante XML

  • Soporte multilenguaje mediante XML

  • Control de versiones automático mediante ClickOnce

  • Control de código fuente mediante CodeGoogle

Estos últimos días, me encontraba con Javier Cantón preparando la actualización automática mediante ClickOnce. Pero teníamos un pequeño problema con los ficheros XML de configuración, los cuales están situados junto al fichero ejecutable principal del programa y no eran encontrados cuando se iniciaba la instalación desde la web. La razón de ello se debía a que Visual Studio cataloga por defecto estos ficheros como de datos, y cuando se inicia la instalación desde la web, los copia en directorios distintos, por lo que la aplicación principal nos los encuentra donde los esperaba. Para solucionar ello simplemente debemos indicarle en Propiedades del proyecto -> Publish -> Applications Files que dichos ficheros XML serán incluidos, es decir, cambiamos su estado de publicación "Data File" por "Include".

applicationsFiles

Para terminar, simplemente deciros que este proyecto es totalmente Open Source y cualquier persona es bien recibida a colaborar. Además de para la gestión de los DotNetClub, también podría ampliarse a los grupos de usuarios, ¿qué os parece?

Como os decía, podeis encontrar toda la información del proyecto en:

http://dotnetcenter.dotnetclubs.com/

Un saludete!

Clientes SVN intengrados con Visual Studio 2008

En muchas ocasiones, por cuestiones de tiempo, dinero, recursos ..., no tenemos la oportunidad de montar un TFS. Aún más, si simplemente queremos un control de código para organizarnos un poquito, tal vez nos esté sobrando con algo más sencillo. Concretamente, en mi caso, quería trabajar con unos compañeros en un proyecto subido en Code Google, el cual da un servicio de repositorio gratuito para proyectos open source. ¿Y cómo conectamos Visual Studio con dicho respositorio para ahorrarnos trabajo?. La solución es integrar un cliente SVN a dicha herramienta. Probando, las siguientes opciones han sido las que más me han gustado:

  • AnkhSVN (mi favorita, y es free): Este cliente se integra totalmente con VS2005 y VS2008, mostrando el estado de cada unos de los ficheros en el propio explorador de la solucion.


Visualsvn (no freeSad ): Una mezcla de las dos herramientas anteriores, integrando visualmente de forma automática el cliente de Tortoise en el Visual Studio.
Más envíos Página siguiente >