Proyectos


15
may 12

Unable to build project output group ‘Content Files from x (Active)’

No Gravatar
Unable to Build Project Output Group

Unable to Build Project Output Group

Estoy trabajando en un proyecto con ASP MCVC bastante complejo con muchos archivos, muchas reglas y sobre todo comunicación con otro servicios .. y sucede que la semana pasada hice un cambio importante en el código y necesité generar nuevamente los archivos de instalación.. pero algo fallaba y no se podía generar el archivo .msi (setup) .. el error citaba algo como “Unable to build project output group ‘Content Files from ___ (Activate)” .. no me había pasado antes.. y pues el error no describía nada más .. por lo que encontrar el porque era algo tardado quizás..

Buscando un poco entoncré que esto ocurre cuando un archivo del proyecto fue eliminado del disco, pero no fue eliminado del entorno de desarrollo.. entonces al crear el archivo de instalación no se encuentra una fuente por consiguiente falla al generar el archivo instalador.

La solución.. simple!! solo expande todos las carpetas de tu proyecto y busca archivos que tengan un símbolo de admiración amarillo .. pues esos son los que están dando problemas.. o los restauras o los eliminas y listo.. si intentas nuevamente la generación del instalador, estoy super, super seguro de que no habrá más errores.

:)

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

24
abr 12

Etiquetas para documentar código en C# .NET

No Gravatar
doc-comment tag

doc-comment tag

Si estas empezando en el mundo de la programación utilizando C# .NET.. o quizás siendo ya un poco experimentado en este ambiente.. seguramente te estarás preguntando como rayos documentar el código, me imagino que en algun momento has utilizado algunas de las etiquetas para este fin, pero las utilizas todas y sabes que significa cada una de ellas ??

Este artículo es una reseña sobre las diferentes etiquetas que se utilizan sobre métodos y clases para generar documentación.. bien puede ser utilizando SandCastle o para documentar los objetos sobre el desarrollo cuando estos son invocados.

Por ejemplo, agregando “///” al inicio de una clase, el entorno de desarrollo de .NET automáticamente genera una secuencia especial de comentarios sobre el código y se ve de esta manera:

/// <summary>
/// Pretendo construir un reloj y esta es la descripcion de este objeto
/// </summary>
public Color reloj
{
    private int hora { get; set; }
}

Y como resultado, al implementar el objeto reloj .. Visual Studio me mostraría como documentación lo que escribí dentro de la etiqueta summary.

Creo que este tipo de etiquetas son llamadas “doc-comments tags” y forman parte del intellisense del editor de código de Visual Studio .. utilicé el ejemplo de “summary” porque virtualmente en cada miembro sea clase, método, propiedad, evento, etc.. se puede utilizar.. A continuación muestro una tabla con todas las etiquetas necesarias para documentar completamente un proyecto de software, veamos.

Continue reading →

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

3
abr 12

RESTful API Frameworks en PHP

No Gravatar
REST vs SOAP

RESTful services

La semana anterior liberé la versión 0.4.0 de Celestic y una cosa que había prometido y que al final no logré hacer era escribir una API en REST para  utilizarla desde equipos móviles.. Bueno, al menos hay una versión preliminar pero decidí no subirla a los respositorios de código porque eran pruebas .. y es que durante varios días estuve investigando y probando herramientas para el desarrollo de esta API, al final no utilicé ninguno de estos frameworks y estoy escribiendo mi propia extensión para Yii la cual funcionará tomando datos de los modelos y exportando los resultados a json y xml..

Entonces al grano, esta es una lista de frameworks o librerías que podrían ayudarte a construir tu propia API en REST sobre PHP ..

FRAPI – Fue una de mis primeras opciones.. pero después de pocos minutos revisando como instalarlo y configurarlo lo abandoné porque al ver que tenía una parte de administración y otra de consumo me desanimé.. en realidad lo que buscaba era algo más simple.. Desde la interfaz de administración y también consola se pueden crear acciones (esto viene hererado del MVC donde solicitas a un controlador una accion específica que termina siendo un método a ejecutarse).

APIFY – Muy parecido a Frapi, incluso al descomprimirlo vemos una estructura de carpetas tipo MVC.. lo probé pero por alguna razón que aun desconozco nunca funcionó.. su documentación es muy escasa.. en realidad toma muchas cosas de Zend Framework y la librería base para crear REST se reduce a clases Request y Response.

Recess – No tuve oportunidad de probarlo a fondo, al igual que los demás utiliza el patrón de diseño MVC, su interfaz para el desarrollo del servicio esta basado en web a través del navegador. Creo que es de los mejores, pero tiene bastantes archivos y eso no me gustó mucho. Utiliza PDO y mapeo de basee de datos, punto negativo creo que son las consultas entre tablas anidadas.

Slim – No tuve ganas de probarlo, aunque a diferencia de los demás Slim no es un framework, sino más bien una librería o un set de librerías.. Me gustó cuando ví el código pero me desanimó el hecho de que utilizan sus propias rutas y la ausencia de activeRecords.

Tonic – También es una librería, es bastante simple para lo que buscaba y de las cosas que alcancé a probar pues de eso decidí mejor construir mis propias clases para generar REST, me dió la impresión de que me ahorra muy pocas cosas..

En general todos los frameworks y librerías son muy buenos para trabajar utilizando su propio esquema o estructura de carpetas.. Un punto negativo que tienen todos es que los que utilizan PDO y model mapping no es muy bueno con los join y las consultas complejas puede que sea un dolor de cabeza.. Ninguna utiliza un esquema de autenticación compleja como OAuth o al menos Basic Auth .. y si utilizan seguridad lo hacen mediante un parámetro extra que se envia por la url..

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

16
mar 12

Mundos Virtuales

No Gravatar

Desde hace mucho tiempo me interesa el desarrollo de aplicaciones 3D supongo que fue por ver muchas peliculas de ciencia ficción en especial “El jardinero, asesino inocente” y Tron, también creo que por leer artículos de una revista que colecciono de hace mas tiempo, en especial un número de 1995 que habla sobre los próximos 100 años de la tecnología. En este número mencionan “En la sociedad del conocimiento, buena parte de nuestra vida transcurrirá en mundos sintéticos y hasta buscaremos pareja en ellos. Las computadoras imitarán el cerebro humano, habrá granjas moléculares, llevaremos tarjetas de crédito bajo la piel y unos microrrobots se encargarán de quitar el polvo a la computadora cuando la apaguemos” [1]

Los primeros acercamientos a esta area que tuve fue con un libro de 1997 llamado Realidad Virtual. Construcción de Proyectos de Joe Gradecki.

“Los mundos virtuales son lugares donde experimentamos nuevas realidades. Contienen todos los objetos que podemos ver y manejar. Nos permiten además, experimentar cosas que no son posibles en el mundo real” [2]

“Un verdadero programa de realidad virtual debe contener dos componentes:

  1. El punto de vista de un usuario en primera persona que debe realizar movimientos completos a voluntad en tiempo real.
  2. La capacidad de visualizar y modificar el entorno virtual en tiempo real” [3]

Con el tiempo pude realizar algo relacionado con los objetos virtuales cuando conocí VRML (Virtual Reality Modeling Language)

En español “Lenguaje para Modelado de Realidad Virtual” curiosamente su primera especificación fue publicada en 1995.

http://en.wikipedia.org/wiki/VRML

Silicon

Primer acercamiento a web 3d con vrml 1999

Después vinieron los Proyectos 3D con OpenGL , Mesa,  Blender, Maya y mas recientemente

3D Studio,  GLScene y actualmente NeoAxis pero afortunada o desafortunadamente en desarrollos de escritorio.

Los primeros mundos virtuales que conocí vivian en la web, en internet, así que va siendo hora que

continuemos con el principio. “El final es en donde parti” dice una canción de La Renga.

http://www.youtube.com/watch?v=ozC9hETOt2I

Así que desde hace tiempo he estado aprendiendo un poco sobre WebGL y en un futuro no muy lejano espero tener algunas aplicaciones.

WebGL: Es una especificación estándar que está siendo desarrollada actualmente para mostrar gráficos en 3D en navegadores Web.

Los mejores ejemplos en Chrome Experiments http://www.chromeexperiments.com/tag/webgl/

 

Referencias :

[1]: Muy Interesante Especial Los próximos 100 Años. P 27.
[2,3]: Realidad Virtual Construcción de Proyectos. Joe Gradecki. 1997 AlfaOmega. P 2. y P 3

Mas Info : http://www.popsci.com/archive-viewer?id=S812DHiH7dUC

Bonus :   The Popular Science Archive Explorer

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

28
feb 12

jQuery Mobile lo bueno y lo malo

No Gravatar
JQuery Mobile

JQuery Mobile

Desde mi blog la semana pasada hacía una reseña sobre 3 diferentes alternativas para desarrollar aplicaciones web para teléfonos móviles (iPhone, Android, Blackberry, Windows Phone, etc) .. al final decidí quedarme con jQuery Mobile por la sencillez y rápida curva de aprendizaje.. además que estaba trabajando en un prototipo de proyecto que no debía tomarme más de 3 días desarrollarlo. En fin, el propósito de este artículo es mostrarles de que manera funciona esta librería.. las carencias que encontré y las virtudes que pueden ayudar a escribir aplicaciones móviles en casi cuestión de horas.

Como funciona

Las aplicaciones web básicamente trabajan 2 capas que son el procesamiento de datos, algo que siempre ocurre del lado del servidor y la presentación de la información que es lo que el servidor regresa a los navegadores en un formato de meta etiquetas (html) .. pues bueno, jQuery Mobile agrega una capa extra que sería como una especie de manejador de eventos que se encarga de escuchar todas las pulsaciones que hacemos sobre los enlaces y botones de formularios para luego solicitar al servidor su proceso vía ajax .. La verdad es que la lógica de como funciona es muy simple porque todo ocurre mediante callbacks.. Si llegan a ver algunos ejemplos de como son estas aplicaciones desarrolladas con jQuery Mobile verán transiciones de entrada y salida entre las páginas y pues esto es el resultado de esas peticiones administradas vía ajax.. Y como todo lo que se hace con javascript, jQuery Mobile se puede parametrizar para que tenga el comportamiento que deseamos.

La tecnología que emplea

Es importante mencionar que esta librería y así he decidido llamarlo porque no creo que llegue al nivel de framework.. su uso esta basado totalmente en HTML5 .. ese nuevo estandar de desarrollo web que se está poniendo de moda.. y CSS3 que vienen a ser como el estilista del HTML5.. entonces si defino a jQuery Mobile diría que es una combinación de mucho HTML5 que utiliza inteligentemente metadatos en las etiquetas, canvas para dibujar algunos botones y CSS3 para administrar la capa visual (esquinas redondeadas, gradientes lineares, sombras y más)…

Una buena recomendación

Si estan interesados en empezar a desarrollar aplicaciones móbiles nativas, creo que antes deberían de entrarse un poco en el uso de este tipo de herramientas para desarrollar la visión del diseño de como son las aplicaciones móbiles, ya que la naturaleza de este tipo de aplicaciones requiere de otro tipo de destrezas relacionadas más que todo con usabilidad que al final es la parte visual y lo que más interesa a los usuarios. Con esto no estoy tratando de decir que las aplicaciones móbiles web son mejores que las nativas.. claro que no!! sería imposible hacer la comparación, pero en el caso de que se necesita escribir una aplicación en tiempo record que sea multiplataforma.. lo más obvio sería utilizar jQuery Mobile o cualquier otra herramienta para este propósito y bueno, eso sin mencionar que el costo monetario es mucho muy inferior.

Lo que hay que tener en cuenta

Es bueno recordar que las aplicaciones móbiles no deben ser complejar, el contenido debe invitar a los usuarios a navegar y al mismo tiempo a constuir un mapa de enlaces en la mente para que sepan como utilizarla casi inmediatamente. Eso significa que no se deben de pensar en interfaces complejas o en componentes que puedan confundir a quienes la usen. Jquery Mobile tiene como elementos básicos los componentes de formularios (input, select, checkbox, radio y button).. otros elementos serían las listas, barra de navegación y es todo.. igual que con jQuery hay desarrolladores externos que estan escribiendo plugins como por ej. datepickers o uploaders que son necesarios y no estan incluidos en la librería.

Utilizarlo con moderación

Creo que antes de decidir su uso o no.. deberían de tomar uno de los ejemplos de la página de ayuda y ver si es compatible con los dispostivos en los que pensarían utilizarlo.. por. ej. yo utilizo un Android 2.3 donde las imágenes y animaciones no son tan fluídas.. lo he probado en un iPhone 3GS y lo ví un poco torpe con las animaciones.. con el iPhone 4 se vé de maravilla al igual que con una tablet android con 3.0 y tampoco tuvo problemas..

Al final la aplicación que escribí es un ligero CRM con un enfoque hacia seguimiento de ventas.. si!! tarde 3 días en el desarrollo, aun es una versión beta y fue rápido hacerlo porque tras el código estuvo una arquitectura MVC.. si me animo quizás suba el código a github y luego al laboratorio de Qbit para que aprendan un poco sobre jQuery Mobile.

Y para finalizar el resultado final en un teléfono LG Optimus Black.. nada mal eh..!!

Mobile CRM

Mobile CRM

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

14
feb 12

REST vs SOAP

No Gravatar
REST vs SOAP

REST vs SOAP

Aunque REST y SOAP son arquitecturas muy similares de intercambio de información entre aplicaciones web y de escritorio con servidores, antes de decidirse por uno de ambas es importante tener en cuenta las siguientes consideraciones. Trataré de ser objetivo en este artículo ya que hasta hace poco empecé a utilizar REST (4 meses), todo lo que aprendí sobre websvices esta basado en SOAP.

Primeramente hay que entender que REST esta basado en una arquitectura donde se identifican los recursos claves a consumirse.. veámoslo como una forma semántica de escritura ante la web donde hay métodos que al ser interpretados nos retornan información… Algo como por ejemplo utilizando el método GET del protocolo HTTP (digo GET porque también se puede utilizar POST, PUT, HEAD, DELETE, etc.. ) haría una petición de la siguiente manera: “http://servidor.com/api/proyecto/1/tarea/5″  .. donde api es el contenedor de mi webservice y lo que sigue sería equivalente a decir.. Del proyecto con identificador no. 1 seleccionar la tarea con identificador no. 5 y mostrar el resultado en formato json o xml.

Así de fácil es REST, mientras que SOAP es un poco más complicado por que lo que se consumen son métodos o funciones almacenadas igualmente en un servidor.. entonces si quisiera hacer lo mismo.. en SOAP tendría que escribir algo como lo siguiente: “http://miservidor.com/api/calcula” donde calcula contiene una definición de funciones (sumar y restar) que se pueden implementar mediante la creación de un objeto, un concepto de la programación orientada a objetos .. del uso de alguno de los métodos listados en el servicio calcula como respuesta obtendría una salida en xml con una definición del tipo de datos que respondió el servidor..

Si se fijan ambos tipos de conexión ya sea REST o SOAP se parecen mucho, ya que sirven para solicitar información a un servidor, pero distan de implementarse de una manera similar.. verán que REST es mucho más fácil y SOAP conlleva escribir un poco más de código..

En la actualidad muchos de los servicios que utilizamos a diario como twitter, facebook, fourquare, delicious, flickr, etc.. estan basados en REST por la facilidad de imlementación y la simplesa que se obtiene en los resultados.

SOAP ya que tiene una arquitectura de respuesta más compleja, es utilizado comunmente en corporaciones, hasta me atrevería a decir que la mayoría de empresas que utilizan sistemas basados en .NET o Java tienen sus servicios de comunicación basados en SOAP .. porque ha decir verdad es muy fácil implementar esos objetos y consumir esos métodos.. porque claro!! hay personas que ya hicieron todo el trabajo pesado de crear librerías que se usan casi con un par de líneas. Además que en estos lenguajes se tienen componentes visuales que se conectan casi de manera transparente a webservices basados en SOAP por lo que como dije.. ya todo lo interesante ya se hizo.

Entonces ya que tenemos una mejor idea de que hace REST vs SOAP podemos hacer comparaciones y obtener una conclusión..

REST

En lo que es genial

  • Es muy ligero, sus respuestas contienen exactamente la información que necesitamos.
  • Para los nosotros los humanos es muy fácil y simple de interpretar.
  • Es sencillo de desarrollar y no se necesita mucho código extra.
  • Es flexible en cuanto al tipo de respuesta que se necesita, ya que puede ser xml o json.
En lo que falla
  • Creo que la seguridad es un problema y puede llegar a ser una tarea muy difícil implementarla correctamente.
  • No hay un estándar en sus respuestas por lo que no se definen tipos de datos.
SOAP

En lo que es genial

  • Si trabajas con componentes y utilizas .NET o Java es muy sencillo de consumir.
  • El resultado que siempre es XML contiene una definición específica del tipo de dato, lo que hace del protocolo algo muy estricto.
  • Se dice que es más seguro porque su implementación siempre o la mayoría de las veces se hace del lado del servidor.

En lo que falla

  • Una vez implementado, si se desea cambiar algo en el servidor impacta de forma negativa en los clientes ya que estos tienen que hacer muchas modificaciones al código.
  • Las respuestas son demasiado complejas y difíciles de interpretar si no se tienen las herramientas correctas para hacerlo.

Conclusión

Creo que ambas arquitecturas de intercambio de información tienen sus nichos bien definidos, cuando se trata de aplicaciones públicas refiriéndome a servicios de uso masivo es mucho mejor utilizar REST por la sencillez en su implementación y respuestas, inclusive en clientes móviles es mucho más fácil utilizar REST. Por otro lado si se esta pensando en webservices para corporaciones donde se manejan datos complejos y se necesita una presición detallada en las respuestas se debe de utilizar SOAP, entornos de desarrollo como Visual Studio hacen que el desarrollo e implementación de SOAP sea sumamente sencillo sin tener que escribir código de más para interpretar respuestas.

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

3
feb 12

Certificaciones de Calidad en Desarrollo de Software

No Gravatar
   Equipo

El outsourcing de desarrollo de software ha madurado en tan solo un par de décadas y la certificación de calidad ha adquirido un significado totalmente nuevo para los proveedores y clientes.

Hay dos grandes tipos de certificaciones de calidad que se puede obtener por las empresas de desarrollo de software. Una de ellas es la norma ISO 9001:2000 y el otro los distintos niveles de SEI CMM.

CMM: Modelo orientado a la mejora de los procesos empresariales, evaluando la calidad de los productos o servicios que desarrolla y clasificándolos según cinco niveles de madurez.

Uno de los principales beneficios de la certificación de calidad en una empresa de desarrollo de software es que muestra la madurez y la continuidad de la organización.

Ambas certificaciones de calidad prestan atención a los procesos. En ISO se tienen directrices del estado que debe definir un proceso y asegurarse que se está siendo seguido mientras que SEI CMM son dictados de ciertos parámetros de un proceso en el que la empresa debería funcionar.

Las empresas no certificadas tienen un momento difícil al competir con una empresa certificada y esa es la razón por la cual más y más empresas de desarrollo de software se están moviendo hacia la certificación de calidad.

La mayoría de medianas y grandes empresas se están moviendo hacia la certificación SEI CMM.

Aunque se ha mencionado la certificación ISO 9001:2000 de calidad, y la de SEI CMM} hay otras certificaciones de tecnología específica que también puede ser obtenida por las empresas de desarrollo de software. Por lo general, estas certificaciones son dadas por los fabricantes de software u organismos independientes y, aunque podría no ser tan crítica como las certificaciones de calidad mencionadas, tienen un buen nivel de importancia en la evaluación de un proveedor.

MOPROSOF

Modelo de Procesos para la Industria del Software. Modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software. Desarrollado por la Asociación Mexicana para la Calidad en Ingeniería de Software a través de la Facultad de Ciencias de la Universidad Nacional Autónoma de México (UNAM) y a solicitud de la Secretaría de Economía para obtener una norma mexicana que resulte apropiada a las características de tamaño de la gran mayoría de empresas mexicanas de desarrollo y mantenimiento de software.

Moprosoft considera que los modelos de evaluación y mejora CMMI e ISO/IEC 15504 no resultan apropiados para empresas pequeñas y medianas de desarrollo y mantenimiento de software.

Importancia de la certificación de un proveedor aliado en empresa de software

Ventajas para la Empresa Responsable

Mantener su capacidad de respuesta al cliente.
Mantener la calidad en sus procesos de desarrollo e implantación de sistemas.
Continuidad en su desarrollo empresarial y generación de historia.

Ventajas para ambas empresas
Desarrollo de alianzas estratégicas.
Continuidad en desarrollos e implantaciones (experiencia).
Mayor posibilidad de obtener proyectos.
Mayor probabilidad de ingresos constantes.

Riesgos a combatir
Aumento de precio al cliente.

Más Info:

 

Imagen :
    http://blog.wikimemoires.com/2011/08/evolution-de-la-gestion-de-grh/

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

31
ene 12

Probador virtual, el futuro de las compras

No Gravatar
Intellifit

http://www.uniquescan.com/

Uno de estos fines de semana paseaba por una tienda de la ciudad para buscar algo de ropa, sorpresa fue la que me llevé al encontrar una cabina muy grande llamada  Probador Virtual.

Muy excéptico al inicio me quedé a ver como funcionaba o de que trataba, hasta ese momento nadie se atrevía a entrar por lo que mientras llegaba alguien para experimentar, mi mente empezaba a imaginar como era su funcionamiento. Rato después llegaría una niña, el operador de la máquina dió unas cuantas instrucciones, la niña entró a la cabina y 20 segundos después salió del provador.. seguido de esto el operador dió una lista de aproximadamente 60cm (creo) y tan tan.. así termino todo.

Investigué un poco sobre la máquina y averigué que se trata de un scanner 3D que toma la figura del cuerpo obteniendo medidas para luego ofrecer una lista de posibles tallas que estan disponibles en la tienda.

Las específicaciones técnicas del aparato son las siguientes:

  • Informa de medidas instantáneo
  • Precisión de 1 cm
  • Análisis en 20 seg.
  • 7′ de diámetro por 8′ de altura
  • Captura mediante un infrarojo que proyecta 200,000 puntos

En realidad la idea suena muy innovadora, además de conocer las medidas casi exactas del cuerpo.. lo promocionan en estas tiendas  diciendo que ahorrarás tiempo buscando ropa ya que con las medidas obtenidas y las posibles opciones de ropa para esas medidas el tiempo de búsqueda se reduce enormemente.. aunque estoy un poco en desacuerdo, ya que entra el criterio de “si me gusta o no me gusta, si el color es el que busco o no” .. y aun más importante, suele ocurrir muchas veces que las tallas varían de acuerdo a las marcas..

Mi idea de probador virtual era más como un aparato el cual ayudara a probar ropa de manera virtual.. algo así como un vestidor simulado.. imaginaba algo más cercano a la realidad aumentada, viéndome en una pantalla y teniendo opciones de ropa que podría utilizar. Un video que encontré en Youtube puede darles una mejor idea de lo que esperaba.

Ya anteriormente había leído algo similar aunque nunca había estado cerca de un aparato de estos.. Sé que estas cosas las estan haciendo también con kinects.. y en youtube encontrarán muchos videos similares.

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

27
ene 12

Invocando un método de un objeto especifico usando Quartz .NET y Spring .NET

No Gravatar

En algunas ocaciones necesitamos dejar una tarea programada que se ejecute cada cierto tiempo, para hacer eso se puede utilizar Quartz.

¿Que es Quartz?

Es un sistema de calendarización de tareas que puede ser integrado o usado virtualmente con cualquier otro sistema de software, en este contexto una tarea calendarizada (“job scheduler”) es un sistema que es responsable de ejecutar o notificar a otros componentes de software cuando un tiempo predeterminado ha sucedido.
http://quartznet.sourceforge.net/faq.html

¿Que es un Trigger?

Es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación.

¿Que es Spring?

Es un “framework” de código abierto de desarrollo de aplicaciones para la plataforma Java. La primera versión fue escrita por Rod Jonhson, quien lo lanzó primero con la publicación de su libro Expert One-on-One Java EE Design and Development (Wrox Press, octubre 2002). También hay una versión para la plataforma .NET, Spring .NET.
http://es.wikipedia.org/wiki/Spring_Framework
http://www.springframework.net/doc-latest/reference/html/introduction.html#introduction-overview

¿Que es .NET?

.Net es un “framework” de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones.
http://es.wikipedia.org/wiki/.NET

Si estas utilizando el “framework” Spring .NET esto te puede ser de utilidad.

Entre las caracteristicas del “framework” Spring se encuentra la integración de clases para el soporte de calendarización, actualmente Spring soporta “Quartz Scheduler” (http://quartznet.sourceforge.net/).

“Quartz” usa objetos Trigger,Job y JobDetail para realizar calendarización de todo tipo de tareas.

Por propositos de conveniencia, Spring ofrese una serie de clases que simplifican el uso de “Quartz” en aplicaciones basadas en “Spring”.

Usando MethodInvokingJobDetailFactoryObject
En ocaciones se necesita invocar un método de un objeto especifico. Usando MethodInvokingJobDetailFactoryObject Se puede hacer de la siguiente manera:

JobDetail :


<object id="EjemploJob"
type="Spring.Scheduling.Quartz.MethodInvokingJobDetailFactoryObject, 
Spring.Scheduling.Quartz">
<property name="TargetObject" ref="smsService" />
<property name="TargetMethod" ref="EnviarUnMensaje" />
</object>

El resultado del ejemplo anterior será llamar el método “EnviarUnMensaje” de un objeto de la clase“smsService”


public class smsService {
  // propiedades y eventos
  public void EnviarUnMensaje() {
    // realizar la tarea de enviar un mensaje
  }
}
<object id="smsService" type="business.Sms.SmsServiceImp, enviosms.business"/>

Para hacer que los resultados de las tareas “MethodInvokingJobDetailFactoryObject” sean no concurrentes, poner la bandera “concurrent” a “false”.


<object id="EjemploJob"
type="Spring.Scheduling.Quartz.MethodInvokingJobDetailFactoryObject, 
Spring.Scheduling.Quartz">
<property name="TargetObject" ref="smsService" />
<property name="TargetMethod" ref="EnviarUnMensaje" />
<property name="Concurrent" value="false" />
</object>

Nota: Por omisión, las tareas se ejecutaran de manera simultanea

Configurando tareas usando “triggers” y SchedulerFactoryObject

Hemos creado una tarea “JobDetail” de ejemplo (EjemploJob), necesitamos ahora calendarizar esa tarea. Esto se hace usando “triggers” y SchedulerFactoryObject.
Varios tipos de “triggers” estan disponibles con “Quartz”. “Spring” ofrece dos subclases de “triggers” :

CronTriggerObject and SimpleTriggerObject.

Usaremos de ejemplo un SimpleTriggerObject.

Los “Triggers” necesitan ser calendarizados. “Spring” ofrece un SchedulerFactoryObject que trata a los “triggers” como propiedades, SchedulerFactoryObject calendariza las tareas actuales con esos “triggers”.


<objectid="TriggerEjemplo" 
type="Spring.Scheduling.Quartz.SimpleTriggerObject, 
Spring.Scheduling.Quartz">

<property name="JobDetail" ref="EjemploJob" />

<!-- 10 segundos -->

<property name="StartDelay" value="10s" />

<!-- repetir cada 120 segundos -->

<property name="RepeatInterval" value="120s" />

</object>

El “trigger” configurado se ejecutara cada 50 segundos con un retardo inicial de 10 segundos.
Ya solo resta configurar el “SchedulerFactoryObject”


<object id="quartzSchedulerFactory"
type="Spring.Scheduling.Quartz.SchedulerFactoryObject, Spring.Scheduling.Quartz">
<property name="triggers">
<list>
<ref object="TriggerEjemplo" />
</list>
</property>
</object>

Usando Quartz tendremos en nuestra aplicación un proceso que se repite cada 120 segundos y que
hace la llamada al evento EnviarUnMensaje() de un objeto de la clase smsService.

Más info aqui:

http://www.springframework.net/docs/1.2.0/reference/html/scheduling.html

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

20
ene 12

Una visión sin acción es un sueño

No Gravatar

¿Que es una visión?

Visión es el resultado de nuestros sueños en acción, generalmente una visión precede al éxito tanto para las naciones, para las personas como para las empresas”

Joel Baker

La visión tiene un significado de poder ver a futuro el alcance de la empresa, por eso es importante tener claro lo que el negocio es y lo que debería ser en 3, 5 o 10 años, pero ademas debe ser una vista que sea realista y creible para la organización, por lo que si la visión no se convierte en creencia, puede que esta no sirva para nada pues como algunos autores comentan “El poder de las creencias genera resultados.”,  cabe decir que las creencias son las que asumen las personas internamente.

En muchas ocasiones dar el primer paso para realizar algo diferente es muy dificil, sobre todo cuando se esta en un momento de estabilidad o de éxito, o se llega a una situación donde ya no se puede crecer pero los ingresos económicos son muy buenos, en estos casos hay que tener en mente que “ NINGÚN CAMBIO PARTE DEL ESTADO DE COMODIDAD”.

Por eso los cambios nos hacen poner en marcha todas nuestras capacidades para adaptarnos y es en esos momentos cuando pueden darse excelentes oportunidades, nacen nuevas ideas.

Una visión sin acción es un sueño.

Una acción sin visión carece de sentido.

Una visión puesta en practica puede cambiar el mundo”

Joel Baker

QbitCumple

QbitCumple

El día de mañana Qbit Mexhico cumple 4 años desde que comenzamos a emprender acciones para convertir en realidad nuestra visión, han sido momentos de crecimiento y aprendizaje, de nuevos proyectos, de relación con clientes, de colaboración con las personas que nos apoyan, de toma de decisiones, de desarrollar con nuevas tecnologías, de ir a eventos, aún falta camino por recorrer esquivando obstáculos usando estrategias, pero nuestra misión sigue día a día para darle la dirección adecuada a Qbit. Gracias a todos nuestros clientes,amigos y seres queridos que nos han acompañado durante estos años.

 

El poder de una visión:

http://www.starthrower.com/power_of_vision.htm

http://www.starthrower.com/joel_barker.htm

Gorrito de cumple :

http://nicecliparts.com/images-Birthday_Hat.php

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

Qbit Mexhico Blog is using WP-Gravatar