Maquinas de estado finitas c#

27 views
Skip to first unread message

Carlos Admirador

unread,
Mar 18, 2018, 6:53:15 PM3/18/18
to AltNet-Hispano
Hola grupo,

algún caso práctico o ejemplo para usar Maquinas de estado finitas ?

Saludos.


State machines
  • Stateless - Create state machines and lightweight state machine-based workflows directly in .NET code
  • Automatonymous - A state machine library for .NET - allows you to write fluent style state machines
  • Appccelerate - State Machine - A powerful state machine library - configured with a fluent API and synchrounous and asynchronous state transition support
  • LiquidState - Efficient asynchronous and synchronous state machines for .NET


Juan Nallar

unread,
Mar 18, 2018, 8:34:42 PM3/18/18
to altnet-...@googlegroups.com
Se usan para analizar y validar sintaxis. Alguna vez usé alguna para validar fórmulas matemáticas simples ingresadas por los usuarios.
También queries simples (por el tema de los AND y OR y los paréntesis.

--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a altnet-hispano+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a altnet-hispano@googlegroups.com.
Visita este grupo en https://groups.google.com/group/altnet-hispano.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Carlos Peix

unread,
Mar 19, 2018, 7:14:49 AM3/19/18
to altnet-hispano
Yo las uso bastante cuando la respuesta a determinados eventos depende del estado de un subsistema.

En particular lo implemento con variantes del patrón state, siempre escrito desde cero, lo cual me da la posibilidad de escribir los estados de acuerdo a la semántica del dominio.

Saludos

----------------------------------
Carlos Peix

Ale Miralles

unread,
Mar 19, 2018, 8:14:33 AM3/19/18
to altnet-...@googlegroups.com
Se suelen utilizar cuando laburas con parsers, interpretes y cosas por
el estilo. Trabaje bastante con eso aunque nunca utilice ninguna de
las librerias que mencionas.

Tambien lo he visto en aplicaciones de negocios para representar
transiciones validas entre los diferentes estados de una entidad. Por
ejemplo, cuando realizan una compra en cuenta corriente, podrias tener
las siguientes transiciones: recepcion de un pedido -> facturacion ->
empaquetado -> delivery. En este caso el proceso de la compra esta
representado por un set finito de transiciones entre los distintos
estados de esa operacion. La compra se inicia, realiza una serie de
transiciones y finaliza.

"The dragon book" es *el* libro de referencia sobre estos temas. En
este libro, Aho se despacha en unas cuantas paginas sobre automatas
finitos/infinitos, deterministicos, no deterministicos, etc... (Si te
gusta disenar lenguajes, esta buenisimo, sino, es un embole.)

http://amzn.to/2kuw68G

Y tambien tenes uno sobre DSLs de Fowler (state machines, transition
tables, etc...)
http://amzn.to/2GIpM6W

Saludos, Ale Miralles.
http://amiralles.com.ar
>> envía un correo electrónico a altnet-hispan...@googlegroups.com.
>> Para publicar en este grupo, envía un correo electrónico a
>> altnet-...@googlegroups.com.
>> Visita este grupo en https://groups.google.com/group/altnet-hispano.
>> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de
> Grupos de Google.
> Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes,
> envía un correo electrónico a altnet-hispan...@googlegroups.com.
> Para publicar en este grupo, envía un correo electrónico a
> altnet-...@googlegroups.com.

Carlos Admirador

unread,
Mar 22, 2018, 10:21:51 AM3/22/18
to AltNet-Hispano
Gracias por los comentarios y por las aportaciones, gracias por compartir.

Me interesa lo que comenta Ale, para "aplicaciones de negocios para representar transiciones validas entre los diferentes estados de una entidad".

"Por ejemplo, cuando realizan una compra en cuenta corriente, podrias tener las siguientes transiciones:

recepcion de un pedido -> facturacion -> empaquetado -> delivery.

En este caso el proceso de la compra esta representado por un set finito de transiciones entre los distintos estados de esa operacion. 
La compra se inicia, realiza una serie de transiciones y finaliza." 

Me gustaría ver algún ejemplo de código, o implementación completa de ese tipo de funcionalidad.

Gracias de antemano.

Carlos Admirador

unread,
Apr 13, 2018, 5:33:18 AM4/13/18
to AltNet-Hispano
La vía va por poder utilizar Máquinas de estado a nivel de presentación WebForms.

Este artículo por ejemplo,

Finite State Machines, Wizards, and the Web


No sólo como Wizard, sino que en as transiciones entre estados se comprueben ciertas condiciones.

Qué opinan?, Cómo ha evolucionado?
Saludos grupo!

Carlos Admirador

unread,
Apr 13, 2018, 6:47:25 AM4/13/18
to AltNet-Hispano
He visto esta librería Stateless -  A State Machine library for .NET Core

Depende del contexto. 
Igual no aplica bien a nivel Presentación (ejemplo Aplicación de Encuestas, con flujo de preguntas según las respuestas (de tipo Si-No-No Procede, o selección de RadioButton o Checkbox, ...)


"Workflow. If you’ve built line-of-business apps in a government department, or complex “enterprise” environment, you’ll immediately recognize the kind of application I’m talking about. States, flowcharts, arcane rules… If you haven’t had this experience: modelling bugs in a bug tracker is a close approximation, but generally orders of magnitude less complex than the horrors that large organizations can cook up."

https://nblumhardt.com/2016/11/stateless-30/



Message has been deleted

Carlos Admirador

unread,
Dec 30, 2022, 2:44:42 AM12/30/22
to AltNet-Hispano
Reply all
Reply to author
Forward
0 new messages