- 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>
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
- 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.
- Enable trace generated by CRM platform. From the register. In this article you can find the keys that you need to update:
To manage these traces easily, we have several tools:
- Crm Diagnostic Tool: Windows application to enable and manage the trace options, instead access directly to the register:
- 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:
- 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
- In Visual Studio, we go to Debug->Attach to Process
- Selected "w3wp.exe":
- 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:
2) Place the opends60.lib file in the root of you Visual Studio C++ project:
3) In the Visual Studio settings, select x64 platform, and rebuild the project.
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!
- 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.
- “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.
- 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.
Después de esta buena experiencia, y aunque mi beca Leonardo Da Vinci todavía no ha
teminado, 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...;)
- Mesh is ready
-
Vamos a ver si retomamos el blog...
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/
- 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!
- 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
Podeis encontrar más información en su blog personal sobre Silverlight
- 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:
Introduces el nombre de tu nuevo grupo arriba a la derecha:
Tras
presionar "Create Now!", te aparece la dirección del nuevo bot que
acabas de crear. Esta tienes que añadirla en tu Messeger.
Tras añadir este contacto a tu Messeger, te aparecerá un contacto constantemente conectado (como buen currante Bot que es):
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:
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....;)
- 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
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:
No obstante, al hacerlo desde la ventana de propiedades lo más que obtenemos es lo siguiente:
¿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
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:
Esta tarea es la que se supone que tendría que hacer VS cuando modificamos la URL desde la ventana de propiedades.
- 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:

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:
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".

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.

- Tortoise con algunos "apaños" (también free):
Como muchos sabemos, el cliente de Tortoise se integra con el
explorador del propio Windows. Pero también podemos llamarlo desde
otras herramientas y hacer algo similar a lo que nos ofrece ankhsvn. Si
estais interesado en ello, darle un ojo a alguno de los siguientes
artículos, donde explica como crear tus propias vssettings para añadir
los iconos y menús de Tortoise al Visual Studio:
Visualsvn
(no free
): Una mezcla de las dos herramientas anteriores,
integrando visualmente de forma automática el cliente de Tortoise en el
Visual Studio.