Dudas con mi agenda!! c#.

Iniciado por Hartigan, 26 Agosto 2010, 14:16 PM

0 Miembros y 1 Visitante están viendo este tema.

Hartigan

Buenas de nuevo, os comento porque me han surgido varias dudas.

El caso es que en mi agenda he creado un formulario para crear alarmas. Cada alarma tiene una fecha y hora de inicio, y además se establecen propiedades de recurrencia, es decir cuando queremos que se repita esa alarma. Entonces como puedo gestionar todo esto????

Es decir he de crear un timer para cada alarma y que esté continuamente comprobando con la hora local??? o como puedo hacerlo???

Gracias.

[D4N93R]

Lo mejor es que crees un servicio de windows..  :D De esa forma siempre va a estar corriendo..

Saludos!

Hartigan

#2
Cita de: [D4N93R] en 26 Agosto 2010, 14:30 PM
Lo mejor es que crees un servicio de windows..  :D De esa forma siempre va a estar corriendo..

Saludos!

???, y creo un servicio que lleve a cabo todas las alarmas???? o creo un servicio por cada alarma?? o como??

Esque no es demasiado caótico tener por ejemplo 500 servicios??? uno por cada alarma?

KuraraGNU

#3
vamos a ver, ¿qué hace exactamente un timer? Quizás no tienes por qué usarlo, simplemente crea un dato que contenga el datatime.now y cuando establezcas la hora a la que quieres que salte la alarma haces una condición que salte al ser los dos datos iguales y ya haces lo que quieras, pues con el timer pasa lo mismo, yo cuando lo usé tuve que poner qué quería que pasase cuando cumpliese el tiempo.

El problema vendría en que si haces eso, se repetiría todos los días, así que al crear la alarma debes de controlar también que se ponga en null o en el valor por defecto del atributo time después de que ocurra si quieres que pase solo una vez. Si quieres que pase una vez por semana ya tendrías que meter también una condición de día, en fin, yo te recomiendo, que primero lo hagas a lo básico y luego te compliques poniendo condiciones, así lo hago yo cuando veo que es mucha lata, siempre puedes sacarle punta a un programa aunque pienses que está terminado ;)

¿Qué tienes hecho por ahora? Por favor, explícamelo detalladamente que me entere, no tan breve como has sido, aunque sólo lo tengas planteado dime el planteamiento con pelos y señales.


Modificado después de leer lo del servicio: ¿Para que quieres 500 servicios? O.o No entiendo tu planteamiento, ¿que no ves que con uno se puede? (Aunque yo nunca he hecho servicios, pero al ser un programa en segundo plano pues me supongo como sería)

Hartigan

Hola, lo primero gracias por contestar a ambos.

A ver aun no tengo nada, pero el planteamiento es como he dicho. Yo tengo un formulario para crear alarmas y por ejemplo quiero crear una alarma nueva para que cuando llegué a X fecha y X hora salte un mensaje en pantalla por ejemplo.

Otro ejemplo sería que se apagase el ordenador, o que se ejecute un programa. Entoncs como se hace para que salte la señal de alarma cuando llegue a la fecha y hora indicadas??? es decir, al iniciar mi aplicación como hago para que se vayan comprobando todas las alarmas que tengo almacenadas y que si se cumple alguna salte un mensaje o apague el ordenador... etc....  como por ejemplo el programador de tareas de windows.. algo así estoy haciendo, pero si puedo NO meterme en los servicios de windows mejor que mejor porque nunca los he usado...

Saludos. 

[D4N93R]

Te digo lo de los servicios porque la aplicacion de tareas de windows corre bajo un servicio windows. Por que sino, dime que pasaría si una tarea debe ser ejecutada y tu aplicación está cerrada..?

Un saludo!

Hartigan

Cita de: [D4N93R] en 26 Agosto 2010, 20:42 PM
Te digo lo de los servicios porque la aplicacion de tareas de windows corre bajo un servicio windows. Por que sino, dime que pasaría si una tarea debe ser ejecutada y tu aplicación está cerrada..?

Un saludo!

umm tienes razón, a la noche me pongo a estudiar los servicios a ver si me entero de algo y ya os comento. xD  Solo espero que no sea demasiado complicado porque me queda poco tiempo para entregar mi proyecto. xD

Gracias D4N93R. xD


[D4N93R]

Una sugerencia con respecto al desarrollo de servicios windows:

Primero ,desarrolla toda la aplicación, que funcione bien, y luego lo conviertes en servicio, por lo que la aplicación debe ser una librería.

Segundo, El servicio de windows no se comunica con GUI en ningún momento, por lo que no vas a poder depurar, ni mandar MessageBox, ni abrir formularios. Por lo que depura primero con una aplicacion de prueba (Ver punto 1)

Tercero, tienes que buscar una forma de comunicación entre la interfaz de configuración y el servicio, puede ser un archivo XML, Base de datos, etc.

Saludos y suerte!

Hartigan

Cita de: [D4N93R] en 26 Agosto 2010, 20:51 PM
Una sugerencia con respecto al desarrollo de servicios windows:

Primero ,desarrolla toda la aplicación, que funcione bien, y luego lo conviertes en servicio, por lo que la aplicación debe ser una librería.

Segundo, El servicio de windows no se comunica con GUI en ningún momento, por lo que no vas a poder depurar, ni mandar MessageBox, ni abrir formularios. Por lo que depura primero con una aplicacion de prueba (Ver punto 1)

Tercero, tienes que buscar una forma de comunicación entre la interfaz de configuración y el servicio, puede ser un archivo XML, Base de datos, etc.

Saludos y suerte!

bufff, lo veo muy complicado... no se que hacer...

[D4N93R]

Bueno primero termina la aplicación :) y luego si te da tiempo o no haces el servicio..

:P