ES2609508T3 - Acciones de control definidas de forma declarativa - Google Patents

Acciones de control definidas de forma declarativa Download PDF

Info

Publication number
ES2609508T3
ES2609508T3 ES06802747.3T ES06802747T ES2609508T3 ES 2609508 T3 ES2609508 T3 ES 2609508T3 ES 06802747 T ES06802747 T ES 06802747T ES 2609508 T3 ES2609508 T3 ES 2609508T3
Authority
ES
Spain
Prior art keywords
action
control
event
computer
executing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06802747.3T
Other languages
English (en)
Inventor
Nikhil Kothari
Andres M. Sanabria
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2609508T3 publication Critical patent/ES2609508T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

Un procedimiento implementado por ordenador para definir de forma declarativa una acción de control, comprendiendo el procedimiento: asociar (600) una primera acción con un control (200, 300, 400, 500) dentro de un código (230, 320, 420, 540) para definir de forma declarativa el control, en el que la primera acción y el control son unos componentes que se pueden personalizar de forma independiente; asociar (610) un evento con el control; recibir un valor en el control; ejecutar (630) la primera acción cuando se genera el evento (620), en el que ejecutar la primera acción comprende realizar una operación lógica sobre el valor; asociar (610) una segunda acción con la primera acción y el control dentro del código, en el que la primera acción, la segunda acción y el control son unos componentes que se pueden personalizar de forma independiente, en el que al menos una de la primera y la segunda acciones está asociada con una propiedad de tipo enumerado (470) que tiene un conjunto fijo de valores que se presentan visualmente en un menú desplegable (480) dentro del código para asegurar que una selección de usuario de uno de los valores de entre el conjunto fijo de valores de la propiedad de tipo enumerado da lugar a que una selección de valor válida se asocie con las al menos una primera y una segunda acciones; y ejecutar (630) la segunda acción cuando se genera el evento.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Acciones de control definidas de forma declarativa Antecedentes
Las aplicaciones de soporte logico informatico se estan desarrollando cada vez mas de una forma declarativa para simplificar el proceso de desarrollo. En los marcos de trabajo de desarrollo de aplicaciones de usuario y de interfaz, el comportamiento de la logica y no de interfaz de usuario esta integrado en componentes de interfaz de usuario para ampliar las propiedades de control asociadas con los componentes de interfaz de usuario. El comportamiento no de interfaz de usuario se puede integrar en composiciones de componentes de interfaz de usuario. Los controles compuestos pueden ser muy grandes, con muchas propiedades diferentes, cuya modificacion por parte de los usuarios para dar cabida a diferentes necesidades es diffcil. El gran numero de propiedades complica la personalizacion del control debido a que el usuario puede no estar familiarizado con la totalidad de las propiedades asociadas. El modelo de objeto se sobredimensiona de tal modo que, cuando el control esta incluido en un formulario, los usuarios se pueden ver abrumados por la funcionalidad que es ofrecida por el control.
El documento EP1 403 765 A se refiere a un sistema de manejo de eventos que comprende un modelo, una vista y un controlador. La vista presenta el modelo a un usuario y genera un evento de sistema. El controlador manipula el modelo en respuesta al evento de sistema. La vista asigna el evento de sistema a una accion que es proporcionada por el controlador. El controlador realiza una llamada a un codigo de aplicacion a traves de una funcion de manejo de eventos que esta asignada a la accion. Es expone que los controladores de vista de modelo de la tecnica anterior permiten sustituir una vista sin modificacion adicional del controlador con respecto al enlace de datos, pero no con respecto al manejo de eventos. Por lo tanto, se propone un sistema en el que un evento de sistema esta desacoplado del evento de aplicacion correspondiente. Dicho de otra forma, no es necesario que el manejador de eventos de sistema implemente una logica de aplicacion de manejo de eventos, sino que simplemente invoca el manejador de eventos de aplicacion correspondiente. Esto permite que un desarrollador de aplicaciones sustituya vistas en el patron de diseno de controladores de vista de modelo ampliado sin modificar el controlador o modelo correspondiente.
Sumario
El objeto de la presente invencion es proporcionar un marco de trabajo de diseno de control ampliable para definir de forma declarativa un control (tanto visual como no visual) y otros componentes.
Este objeto se soluciona mediante la materia objeto de las reivindicaciones independientes.
En las reivindicaciones dependientes se dan realizaciones.
La funcionalidad de un control se puede ampliar anadiendo de forma declarativa unos comportamientos y una semantica por medio de un objeto que se denomina accion. El control no se vuelve excesivamente complejo por la adicion de los comportamientos y de la semantica. El objeto de accion encapsula una funcionalidad bien definida y esta asociado con un control existente. El objeto de accion tambien esta asociado con un evento o con algun otro desencadenador, de tal modo que la funcionalidad se ejecuta de forma automatica cuando se genera el evento. La funcionalidad se puede empaquetar en un componente de aplicacion independiente, de tal modo que un usuario que no esta familiarizado con el codigo de programacion puede definir con facilidad una logica y una funcionalidad para una aplicacion en un entorno de diseno.
El presente Sumario se proporciona para introducir una seleccion de conceptos de una forma simplificada que se describe adicionalmente en lo sucesivo en la Descripcion Detallada. El presente Sumario no tiene como objeto identificar caractensticas clave o caractensticas esenciales de la materia objeto que se reivindica, y no tiene como objeto usarse como una ayuda en la determinacion del ambito de la materia objeto que se reivindica.
Breve descripcion de los dibujos
La figura 1 es un diagrama de arquitectura de sistema informatico que ilustra un sistema informatico que se usa en y que es proporcionado por las diversas realizaciones de la invencion.
La figura 2 es un componente de aplicacion a modo de ejemplo que implementa unos controles definidos de forma declarativa.
La figura 3 es un componente de aplicacion a modo de ejemplo que implementa unos controles definidos de forma declarativa.
La figura 4 es un componente de aplicacion a modo de ejemplo que implementa unos controles definidos de forma declarativa.
La figura 5 es un componente de aplicacion a modo de ejemplo que implementa unos controles definidos de forma declarativa.
La figura 6 es un diagrama de flujo operativo que ilustra un procedimiento para unas acciones de control definidas de forma declarativa.
La figura 7 es un codigo a modo de ejemplo que muestra como se implementa el marco de trabajo de diseno de
5
10
15
20
25
30
35
40
45
50
55
control en un disenador de control.
La figura 8 es un codigo a modo de ejemplo que muestra como un control basico puede proporcionar una
funcionalidad para definir de forma declarativa unas acciones de control.
Descripcion detallada
A continuacion se describiran mas plenamente unas realizaciones de la presente divulgacion con referencia en lo sucesivo en el presente documento a los dibujos adjuntos, los cuales forman parte de la misma, y los cuales muestran, a modo de ilustracion, unas realizaciones a modo de ejemplo espedficas para poner en practica la invencion. No obstante, la presente divulgacion se puede materializar de muchas formas diferentes y no se debena interpretar como limitada a las realizaciones que se exponen en el presente documento; en su lugar, estas realizaciones se proporcionan de tal modo que la presente divulgacion sea exhaustiva y completa, y transmita en su totalidad el ambito a los expertos en la materia. Entre otras cosas, la presente divulgacion se puede materializar como procedimientos o dispositivos. Por consiguiente, la presente divulgacion puede adoptar la forma de una realizacion en su totalidad en soporte ffsico, una realizacion en su totalidad en soporte logico o una realizacion que combina unos aspectos de soporte logico y de soporte ffsico. Por lo tanto, la siguiente descripcion detallada no se ha de tomar en un sentido limitante.
Haciendo referencia a continuacion a los dibujos, en los que numeros similares representan elementos similares, se describiran diversos aspectos de la presente invencion. En particular, la figura 1 y el analisis correspondiente tienen como objeto proporcionar una descripcion breve y general de un entorno informatico adecuado en el que se puedan implementar unas realizaciones de la invencion. A pesar de que la invencion se describira en el contexto general de los modulos de programa que se ejecutan en sistemas informaticos de servidor y personales, los expertos en la materia reconoceran que la invencion tambien se puede implementar en combinacion con otros tipos de sistemas informaticos y de modulos de programa.
En general, los modulos de programa incluyen rutinas, programas, componentes, estructuras de datos y otros tipos de estructuras que realizan tareas particulares o que implementan tipos de datos abstractos particulares. Ademas, los expertos en la materia apreciaran que la invencion se puede poner en practica con otras configuraciones de sistemas informaticos, que incluyen dispositivos de mano, sistemas de multiples procesadores, electronica de consumo programable o basada en microprocesadores, miniordenadores, ordenadores centrales, y similares. La invencion tambien se puede poner en practica en entornos informaticos distribuidos, en los que las tareas son realizadas por dispositivos de procesamiento remotos que estan enlazados a traves de una red de comunicaciones. En un entorno informatico distribuido, los modulos de programa pueden estar ubicados en dispositivos de almacenamiento de memoria tanto locales como remotos.
Entorno operativo ilustrativo
Haciendo referencia a continuacion a la figura 1, se describira una arquitectura informatica ilustrativa para un ordenador 100 que se usa en las diversas realizaciones de la invencion. La arquitectura informatica que se muestra en la figura 1 ilustra un ordenador de escritorio o portatil convencional, que incluye una unidad de procesamiento central 110 (“CPU”, central processing unit), una memoria de sistema 120, que incluye una memoria de acceso aleatorio (“RAM”, random access memory) 120 y una memoria de solo lectura (“ROM”, read only memory) 124, y un bus de sistema 130, que acopla la memoria a la CPU 110. En la ROM 124 esta almacenado un sistema basico de entrada/salida que contiene las rutinas basicas que ayudan a transferir informacion entre los elementos dentro del ordenador, tales como durante el arranque. El ordenador 100 incluye adicionalmente un dispositivo de almacenamiento en masa 140 para almacenar un sistema operativo 142, programas de aplicacion y otros modulos de programa, los cuales se describiran con mayor detalle en lo sucesivo.
El dispositivo de almacenamiento en masa 140 esta conectado a la CPU 110 a traves de un controlador de almacenamiento en masa (que no se muestra) que esta conectado al bus 130. El dispositivo de almacenamiento en masa 140 y sus medios legibles por ordenador asociados proporcionan un almacenamiento no volatil para el ordenador 100. A pesar de que la descripcion de los medios legibles por ordenador que esta contenida en el presente documento se refiere a un dispositivo de almacenamiento en masa, tal como un disco duro o una unidad de CD-ROM, los expertos en la materia deberan apreciar que los medios legibles por ordenador pueden ser cualquier medio disponible al que se pueda acceder por medio del ordenador 100.
A modo de ejemplo, y no de limitacion, los medios legibles por ordenador pueden comprender medios de almacenamiento informatico y medios de comunicacion. Los medios de almacenamiento informatico incluyen medios volatiles y no volatiles, extrafbles y no extrafbles, que estan implementados en cualquier procedimiento o tecnologfa para el almacenamiento de informacion, tales como instrucciones legibles por ordenador, estructuras de datos, modulos de programa u otros datos. Los medios de almacenamiento informatico incluyen, pero no se limitan a, RAM, ROM, EPROM, EEPROM, memoria flash u otra tecnologfa de memoria de estado solido, CD-ROM, discos versatiles digitales (“DVD”, digital versatile disk) u otro almacenamiento optico, casetes magneticos, cinta magnetica, almacenamiento en disco magnetico u otros dispositivos de almacenamiento magnetico, o cualquier otro medio que se pueda usar para almacenar la informacion deseada y al cual se pueda acceder por medio del ordenador 100.
5
10
15
20
25
30
35
40
45
50
55
De acuerdo con diversas realizaciones de la invencion, el ordenador 100 puede operar en un entorno de red usando conexiones logicas a ordenadores remotos a traves de una red 150, tal como Internet. El ordenador 100 se puede conectar a la red 150 a traves de una unidad de interfaz de red 160 que esta conectada al bus 130. La unidad de interfaz de red 160 tambien se puede usar para conectarse a otros tipos de redes y de sistemas informaticos remotos. El ordenador 100 puede tambien incluir un controlador de entrada/salida 170 para recibir y procesar entradas de datos a partir de un numero de otros dispositivos, que incluyen un teclado, un raton, un lapiz electronico (que no se muestran en la figura 1). De forma similar, el controlador de entrada/salida 170 puede proporcionar una salida a una pantalla de presentacion visual, una impresora u otro tipo de dispositivo de salida.
Tal como se ha mencionado brevemente en lo que antecede, un numero de modulos de programa y de archivos de datos se pueden almacenar en un dispositivo de almacenamiento en masa 140 y una rAm 122 del ordenador 100, incluyendo una aplicacion 148 y el sistema operativo 142 que es adecuado para controlar el funcionamiento de un ordenador personal en red, tal como el sistema operativo WINDOWS XP de MICROSOFT CORPORATION de Redmond, Washington. El dispositivo de almacenamiento en masa 140 y la RAM 122 tambien pueden almacenar uno o mas modulos de programa. En particular, el dispositivo de almacenamiento en masa 140 y la RAM 122 pueden almacenar un programa de aplicacion de explorador web 144. El programa de aplicacion de explorador web 144 se puede operar para solicitar, recibir, presentar y proporcionar interactividad con documentos electronicos, tales como una pagina web 146, a la que se ha dado formato usando HTML. De acuerdo con una realizacion de la invencion, el programa de aplicacion de explorador web 144 comprende el programa de aplicacion de explorador web INTERNET EXPLORER de MICROSOFT CORPORATION. No obstante, se debena apreciar que tambien se pueden usar otros programas de aplicacion de explorador web facilitados por otros fabricantes para materializar los diversos aspectos de la presente invencion, tales como la aplicacion de explorador web FIREFOX facilitada por la FUNDACION MOZILLA.
Acciones de control definidas de forma declarativa
Un marco de trabajo de diseno de control ampliable se usa para definir de forma declarativa un control (tanto visual como no visual) y otros componentes. La funcionalidad de un control se puede ampliar anadiendo de forma declarativa unos comportamientos y una semantica por medio de un objeto que se denomina accion. El control no se vuelve excesivamente complejo por la adicion de los comportamientos y de la semantica. El objeto de accion encapsula una funcionalidad bien definida y esta asociado con un control existente. El objeto de accion tambien esta asociado con un evento o algun otro desencadenador, de tal modo que la funcionalidad se ejecuta de forma automatica cuando se genera el evento. La funcionalidad se puede empaquetar en un componente de aplicacion independiente, de tal modo que un usuario que no esta familiarizado con el codigo de programacion puede definir con facilidad una logica y una funcionalidad para una aplicacion en un entorno de diseno.
El marco de trabajo simplifica el desarrollo rapido de aplicaciones (RAD, rapid application development). Un disenador puede seleccionar y colocar los componentes de aplicacion usando una superficie de diseno visual. Los componentes de aplicacion se pueden conectar usando la superficie de diseno visual. Los componentes de aplicacion tambien se pueden personalizar con unas propiedades por medio de la escritura de un codigo para manejar eventos y para realizar operaciones relacionadas con el evento. Los componentes de aplicacion se pueden invocar de forma automatica cuando se genera el evento. El marco de trabajo se puede aplicar a otros entornos de diseno que incluyen diseno web, programacion basada en secuencias de comandos, programacion basada en formularios, y similares.
El marco de trabajo de diseno de control se explica con referencia a un evento de clic que esta asociado con un control de boton. Se debena apreciar que, a pesar de que las realizaciones que se describen en el presente documento se presentan en el contexto de un evento de clic que esta asociado con un control de boton, se puede usar cualquier evento o desencadenador que se defina en las interfaces de control.
El marco de trabajo de diseno de control empaqueta la funcionalidad de control en componentes. Los componentes se asocian usando acciones y comportamientos declarativos.
La figura 2 ilustra un componente a modo de ejemplo que implementa unos controles definidos de forma declarativa. Un desarrollador puede crear un componente de inicio de sesion 220 como un control compuesto en un formulario con unos controles de cuadro de texto individuales 210, 212 y un control de boton 220. Cada control dentro del componente de inicio de sesion 200 es una entidad independiente a la que se puede acceder de forma singular en el formulario, de tal modo que los controles se pueden personalizar y recolocar. Un usuario puede introducir valores en los cuadros de texto 210, 212 y hacer clic en el control de boton 220. El evento de clic que se genera en el control de boton 220 esta asociado con un procedimiento de inicio de sesion 230.
El procedimiento de inicio de sesion 230, incluye un codigo a modo de ejemplo para definir de forma declarativa unos controles. El procedimiento de inicio de sesion 230 extrae, de los controles del cuadro de texto 210, 212, unos valores cuando se genera el evento de clic que esta asociado con el control de boton 220. El procedimiento de inicio de sesion 230 realiza una logica sobre los valores y la interfaz de usuario se actualiza de acuerdo con el resultado de la operacion logica de inicio de sesion (por ejemplo, se concede o se deniega el inicio de sesion).
5
10
15
20
25
30
35
40
45
50
55
El marco de trabajo de diseno de control permite que se definan de forma declarativa diferentes escenarios de aplicacion sin crear unos controles personalizados para cada escenario espedfico. Haciendo referencia al codigo a modo de ejemplo en el procedimiento de inicio de sesion 230, se implementa un escenario de inicio de sesion sin un control de inicio de sesion. El componente de inicio de sesion 200 se define con unos controles tales como dos cuadros de texto 240, 250 y un boton 260. Los cuadros de texto 240, 250 y el boton 260 se pueden personalizar y recolocar de forma independiente debido a que los controles no estan limitados a una estructura de formulario particular. Cada cuadro de texto 240, 250, tiene una propiedad de texto asociada 265, 270 (por ejemplo, un nombre, una contrasena), y el boton 260tambien esta asociado con una propiedad de texto 275 (por ejemplo, Haga Clic Aqrn).
El boton 260 esta asociado con unas ClickActions (acciones de clic) 280. Las ClickActions 280 incluyen una LoginAction (accion de inicio de sesion) 285. La LoginAction 285 es un componente de inicio de sesion que se puede personalizar (por ejemplo, un nombre y una contrasena). La LoginAction 285 se desencadena de forma automatica cuando se genera el evento de clic debido a que la LoginAction 285 esta incluida en las ClickActions 280. El componente de inicio de sesion definido de forma declarativa 200 tiene la misma funcionalidad que un control de inicio de sesion que se define por medio de un codigo escrito. El control definido de forma declarativa se beneficia de la flexibilidad anadida de programar usando unos controles de bloque de creacion en una superficie de diseno visual. Si es necesario, un desarrollador puede personalizar adicionalmente los controles en la superficie de diseno visual.
La figura 3 ilustra como el marco de trabajo de diseno de control adjunta comportamiento adicional a un control. Se describe la anexion de comportamiento adicional con referencia a un boton 310 en una interfaz de usuario 300. La interfaz de usuario 300 puede tambien incluir unos cuadros de texto 305 para que un usuario introduzca valores de datos. Los cuadros de texto 305 se pueden agrupar (por ejemplo, los cuadros de texto 305 se agrupan y se nombran “Grupol”). El boton 310 esta asociado con un procedimiento de ampliacion de propiedad 320.
El procedimiento de ampliacion de propiedad 320 define un control de boton simple 330 con una propiedad de texto 340. Cuando se hace clic en el boton 3l0 se genera un evento de clic (por ejemplo, una ValidationAction (accion de validacion) 350, una CounterAction (accion de contador) 360 y una WorkflowAction (accion de flujo de trabajo) 370).
La semantica de aplicacion se puede adjuntar al boton 310 de una forma ampliable, de tal modo que las propiedades de control se puedan cambiar con facilidad. Las propiedades de control pueden desencadenar o invocar cualquier logica de aplicacion (imperativa o declarativa) segun se haya configurado. Por ejemplo, la ValidationAction 350, la CounterAction 360 y la WorkflowAction 370 se pueden realizar cuando se hace clic en el boton 310. La ValidationAction 350 valida los valores de datos en los cuadros de texto 305 que se identifican como el Grupo1 en la interfaz de usuario 300 cuando se hace clic en el boton 310. La CounterAction 360 mantiene un recuento del numero de veces que se ha hecho clic en el boton 310. La WorkflowAction 370 inicia o reanuda la ejecucion de cualquier logica (imperativa o declarativa) que este asociada con una aplicacion (tal como un flujo de trabajo) cuando se hace clic en el boton 310. Por lo tanto, se adjuntan de forma declarativa propiedades adicionales al boton 310 sin complicar un modelo de objeto existente o solicitar la creacion de un modelo de objeto nuevo.
La figura 4 ilustra como el marco de trabajo de diseno de control proporciona una capacidad de descubrimiento y un enfoque con establecimiento inflexible de tipos a un control. Un control de FormView (vista de formulario) esta asociado con el contenido a partir de una fila de base de datos. Un control de boton que esta asociado con el control de FormView realiza unas operaciones de la base de datos en la fila. Por ejemplo, se puede asociar un boton de “Update” (actualizar) con el control de FormView tal como se muestra en lo sucesivo:
<asp:Button CommandName = “Update”/> en el que “Update” es una propiedad de cadena.
El control de FormView busca de forma espedfica un nombre de comando que se denomina “Update”. La logica de actualizacion se ejecuta cuando se hace clic en el boton. No obstante, la logica de actualizacion no se puede descubrir en los marcos de trabajo de control actuales. Dicho de otra forma, un desarrollador que usa el control de FormView en un programa puede no conocer los subcomandos asociados con el control de FormView. Ademas, no queda claro si el nombre del comando es sensible a mayusculas y minusculas. Por ejemplo, el control de FormView puede buscar, de forma espedfica, “Update”, de tal modo que “update” puede dar como resultado un error y se puede pasar por alto. Ademas, un error tipografico puede dar lugar a que falle el formulario. Por ejemplo, puede que la logica de actualizacion no se realice cuando se hace clic en el boton si se busca “Update1” en lugar de “Update”. Los marcos de trabajo de programacion de control conocidos requieren que un usuario explore el codigo para localizar el error tipografico.
El marco de trabajo de diseno de control proporciona un enfoque con establecimiento inflexible de tipos para los controles de programacion. La expresion “con establecimiento inflexible de tipos” se refiere a nombrar y teclear de forma explfcita los procedimientos y los miembros variables de una clase. El tipo de datos se conoce en tiempo de compilacion y, en ese sentido, permite que las asignaciones de tipos de datos incorrectas se resuelvan en tiempo de compilacion en lugar de en tiempo de ejecucion, ahorrando procesamiento y disminuyendo la posibilidad de error en los codigos. El marco de trabajo de diseno de control tambien proporciona varias acciones integradas. Tal como se
5
10
15
20
25
30
35
40
45
50
55
ha analizado en lo que antecede, los desarrolladores de aplicaciones y terceras partes pueden desarrollar nuevas acciones que sean espedficas para escenarios particulares. Las acciones se debenan poder descubrir en el disenador de control, u otros usuarios no familiarizados con las acciones recien definidas no sabnan que estas existen.
La capacidad de descubrimiento y el enfoque con establecimiento inflexible de tipos se describen con referencia a un boton 410 en una interfaz de usuario 400. La interfaz de usuario 400 tambien puede incluir un cuadro de texto 405 para que el usuario introduzca un valor de datos tal como “artfculo”. El boton 410 esta asociado con un procedimiento de capacidad de descubrimiento y de enfoque con establecimiento inflexible de tipos 420. El procedimiento de capacidad de descubrimiento y de enfoque con establecimiento inflexible de tipos 420 define un control de FormView 430 y un control de boton simple 440 con una propiedad de texto 445.
Un desarrollador no necesita conocer el conjunto espedfico de cadenas que son usadas por el control de FormView 430. En su lugar, el modelo de objeto de una accion asociada proporciona esa informacion. El control de boton 440 no incluye un nombre de comando. El control de boton 440 incluye una FormViewAction (accion de vista de formulario) 450 dentro de las ClickActions 460 que estan asociadas con el boton 440. La FormViewAction 450 incluye una propiedad de Operation = “Edit” (Operacion = “Editar”) 470. La propiedad de Operation = “Edit” 470 es un tipo enumerado (en lugar de una cadena) de tal modo que la propiedad esta asociada con un conjunto fijo de valores (por ejemplo, editar, suprimir, actualizar, etc.). Los tipos enumerados permiten que un editor y un analizador exijan un valor valido para la enumeracion. Por ejemplo, un desarrollador puede teclear “Operation =“. Entonces se puede presentar visualmente un menu desplegable 480 con los diferentes valores de la enumeracion, de tal modo que el usuario puede seleccionar un valor valido. Por lo tanto, un desarrollador puede descubrir los subcomandos que estan asociados con un control.
El desarrollador puede introducir un error tipografico cuando se teclea la propiedad 470. Por ejemplo, el desarrollador puede haber tecleado “Editl” o “edit” en lugar de “Edit”. Cuando se analiza la pagina, “Editl” da como resultado un error para el analizador debido a que “Editl” es un valor no conocido. “Edit” tambien puede dar como resultado un error para el analizador si la funcion de busqueda es sensible a mayusculas y minusculas. Podna no darse como resultado un error si el valor fuera una cadena. En su lugar, un evento de clic que se genera en el boton 410 podna no dar como resultado accion alguna. Por lo tanto, la propiedad de tipo enumerado es un valor con establecimiento inflexible de tipos que elimina una clase de errores que se producen por las equivocaciones de tecleo de los desarrolladores.
La figura 5 ilustra como se puede usar el marco de trabajo de diseno de control para aplicar un efecto a un control. Una interfaz de usuario 500 esta dispuesta para recibir la entrada de datos para realizar una busqueda. Un cuadro de texto 510 esta dispuesto para recibir terminos de busqueda. El usuario puede hacer clic en un boton de busqueda 520 para iniciar la busqueda. Los resultados se presentan visualmente como una lista de busqueda en un panel 530.
El boton de busqueda 520 se puede asociar con un procedimiento de aplicacion de efecto 540, de tal modo que se puede aplicar un efecto a la lista de busqueda cuando se presenta visualmente en el panel 530. Por ejemplo, se puede aplicar un efecto de animacion de aparicion progresiva tal como un FadelnEffect (efecto de aparicion progresiva) 550 a un objeto objetivo 560, tal como la lista de busqueda. La lista de busqueda aparece de forma progresiva cuando se presenta visualmente en el panel 530. El FadelnEffect 550 incluye un procedimiento de reproduccion 570 que es invocado por el evento de clic 580. El evento de clic 580 tambien acopla una propiedad 590 al panel 530, de tal modo que el panel 530 se hace visible. Cuando se hace clic en el boton de busqueda 520, se aplica el FadelnEffect 550 al panel 530 y el panel 530 se hace visible. Por lo tanto, se puede definir de forma declarativa un procedimiento mediante la invocacion del procedimiento y la definicion de un objeto particular.
La figura 6 es un diagrama de flujo operativo que ilustra un proceso para definir de forma declarativa unas acciones de control. El proceso comienza en una operacion de inicio en la que se dispone un control para realizar una funcion.
El procesamiento continua en la operacion 600, en la que una accion se asocia con un control. Por ejemplo, el control puede ser un control de boton, un control de cuadro de texto o un control de vista de formulario. La accion encapsula unos comportamientos y una semantica, de tal modo que se amplfa la funcionalidad del control. La accion es un componente de aplicacion independiente, de tal modo que el control no se vuelve excesivamente complejo cuando se asocia la accion con el control. El componente de aplicacion independiente permite que la accion se defina como un bloque de creacion en un entorno de diseno de aplicacion. Un desarrollador puede desarrollar con facilidad una aplicacion al ensamblar los bloques de creacion para definir una logica y una funcionalidad para la aplicacion. En una realizacion, la accion incluye una propiedad enumerada que identifica un conjunto fijo de valores. El conjunto fijo de valores se puede presentar visualmente a un desarrollador cuando se teclea la propiedad. Si el desarrollador teclea de forma erronea un valor de propiedad, se obtiene como resultado un error debido a que el valor tecleado de forma erronea no esta incluido en el conjunto fijo. En otra realizacion, se puede asociar mas de un control con una accion. Por ejemplo, una accion se puede anidar dentro de otra accion. Todavfa en otra realizacion, se pueden asociar unas propiedades adicionales con el control.
Avanzando a la operacion 610, se asocia un evento con el control. Por ejemplo, si el control es un boton, el evento asociado puede ser un evento de clic que se genera en el boton. Avanzando a la operacion 620, el control detecta
5
10
15
20
25
30
que se va a generar el evento asociado. En una realizacion, el control detecta que el evento asociado se va a generar cuando se recibe un valor en el control.
Pasando a la operacion 630, la accion se ejecuta cuando se genera el evento. La accion se puede ejecutar mediante la realizacion de una operacion logica sobre el valor. Los ejemplos de ejecucion de la accion incluyen el procesamiento de valores, la validacion de valores, el recuento del numero de veces que se genera un evento, el inicio de la ejecucion de un flujo de trabajo, la reanudacion de la ejecucion de un flujo de trabajo, el descubrimiento de propiedades asociadas con un control, la resolucion de asignaciones de tipos de datos incorrectas en tiempo de compilacion, la aplicacion de un efecto a un control y similares.
Tambien se pueden ejecutar otras acciones independientes que esten asociadas con el evento. En una realizacion, se repite el proceso para ejecutar una secuencia de acciones. Una accion en la secuencia se puede ejecutar y retornar un valor “falso”, interrumpiendo de ese modo la secuencia de acciones. El procesamiento termina entonces en una operacion de fin.
La figura 7 es un segmento de codigo a modo de ejemplo 700 que muestra como se implementa el marco de trabajo de diseno de control en un disenador de control. El disenador de control puede ofrecer de forma automatica un editor de acciones para los controles que soportan acciones por medio de un panel de tareas. El editor de acciones presenta el conjunto de acciones disponibles en los conjuntos a los que hace referencia la aplicacion. Las acciones proporcionan una funcionalidad de disenador asociada para proporcionar una experiencia de edicion rica mas alla de una red de propiedades. El segmento de codigo a modo de ejemplo 700 indica que una accion se puede ejecutar antes o despues de que tenga lugar un evento.
Se proporciona una clase de base para todas las acciones de control. Cada accion puede especificar si la accion se ejecuta antes o despues de que se genere el evento. El valor de retorno es significativo para las acciones que se ejecutan antes de que se genere el evento. La accion podna retornar “verdadero” para cancelar la posterior generacion del evento. Una accion se puede usar en la personalizacion del comportamiento de devolucion. Los controles pueden realizar una llamada a acciones que implementan una interfaz para las acciones que estan asociadas con eventos relacionados con la devolucion.
La figura 8 es un segmento de codigo a modo de ejemplo 800 que muestra como un control de boton basico puede proporcionar una funcionalidad para definir de forma declarativa unas acciones de control.
La memoria descriptiva, ejemplos y datos anteriores proporcionan una descripcion completa de la fabricacion y el uso de la composicion de la invencion. Debido a que se pueden realizar muchas realizaciones de la invencion sin apartarse del ambito de la invencion, la invencion reside en las reivindicaciones que se adjuntan en lo sucesivo en el presente documento.

Claims (18)

10
15
20
25
30
35
40
45
REIVINDICACIONES
1. Un procedimiento implementado por ordenador para definir de forma declarativa una accion de control, comprendiendo el procedimiento:
asociar (600) una primera accion con un control (200, 300, 400, 500) dentro de un codigo (230, 320, 420, 540) para definir de forma declarativa el control, en el que la primera accion y el control son unos componentes que se pueden personalizar de forma independiente; asociar (610) un evento con el control; recibir un valor en el control;
ejecutar (630) la primera accion cuando se genera el evento (620), en el que ejecutar la primera accion comprende realizar una operacion logica sobre el valor;
asociar (610) una segunda accion con la primera accion y el control dentro del codigo, en el que la primera accion, la segunda accion y el control son unos componentes que se pueden personalizar de forma independiente, en el que al menos una de la primera y la segunda acciones esta asociada con una propiedad de tipo enumerado (470) que tiene un conjunto fijo de valores que se presentan visualmente en un menu desplegable (480) dentro del codigo para asegurar que una seleccion de usuario de uno de los valores de entre el conjunto fijo de valores de la propiedad de tipo enumerado da lugar a que una seleccion de valor valida se asocie con las al menos una primera y una segunda acciones; y ejecutar (630) la segunda accion cuando se genera el evento.
2. El procedimiento implementado por ordenador de la reivindicacion 1, en el que la operacion logica sobre el valor es espedfica de una aplicacion que esta asociada con el control.
3. El procedimiento implementado por ordenador de la reivindicacion 1, en el que ejecutar la primera o la segunda accion comprende adicionalmente determinar un numero de veces que se genera el evento (360).
4. El procedimiento implementado por ordenador de la reivindicacion 1, en el que ejecutar la primera o la segunda accion comprende adicionalmente empezar la ejecucion de una logica que esta asociada con una aplicacion (285).
5. El procedimiento implementado por ordenador de la reivindicacion 1, en el que ejecutar la primera o la segunda accion comprende adicionalmente reanudar la ejecucion de una logica que esta asociada con una aplicacion (370).
6. El procedimiento implementado por ordenador de la reivindicacion 1, en el que ejecutar la primera o la segunda accion comprende adicionalmente aplicar un efecto al control (550).
7. El procedimiento implementado por ordenador de la reivindicacion 1, en el que detectar que el evento se va a generar comprende adicionalmente recibir un valor en el control.
8. El procedimiento implementado por ordenador de la reivindicacion 7, en el que ejecutar la primera o la segunda accion comprende adicionalmente validar el valor (350).
9. El procedimiento implementado por ordenador de la reivindicacion 7, en el que ejecutar la primera o la segunda accion comprende adicionalmente resolver una asignacion de datos incorrecta que esta asociada con el valor (420).
10. El procedimiento implementado por ordenador de la reivindicacion 1, en el que al menos la primera accion se ejecuta antes de que se genere el evento (700).
11. El procedimiento implementado por ordenador de la reivindicacion 1, en el que al menos la segunda accion se ejecuta despues de que se haya generado el evento (700).
12. Un sistema para definir de forma declarativa una accion de control, que comprende:
una primera accion (350) y una segunda accion (360) que esta asociada con la primera accion (350) dentro de un codigo (230, 320, 420, 540) para definir de forma declarativa un control (200, 300, 400, 500), en el que al menos una de la primera y la segunda acciones esta asociada con una propiedad de tipo enumerado (470) que tiene un conjunto fijo de valores que se presentan visualmente en un menu desplegable (480) dentro del codigo para asegurar que una seleccion de usuario de uno de los valores de entre el conjunto fijo de valores de la propiedad de tipo enumerado da lugar a que una seleccion de valor valida se asocie con las al menos una primera y una segunda acciones;
el control que esta asociado con la primera accion (350) y la segunda accion (360) dentro del codigo, en el que la primera accion (350), la segunda accion (360) y el control son unos componentes que se pueden personalizar de forma independiente; y
un evento que esta asociado con el control, en el que la primera accion (350) y la segunda accion (360) se ejecutan cuando se genera el evento.
13. El sistema de la reivindicacion 12, en el que la segunda accion (360) esta anidada dentro de la primera accion (350).
5
10
15
20
25
14. El sistema de la reivindicacion 12, en el que la segunda accion (360) esta asociada con unas propiedades de tipo enumerado, de tal modo que una seleccion de una de las propiedades de tipo enumerado da lugar a que una seleccion de propiedad valida se asocie con la segunda accion (360).
15. El sistema de la reivindicacion 12, en el que la segunda accion (360) cancela la ejecucion de una tercera accion (370) cuando se ejecuta la segunda accion (360).
16. Un medio legible por ordenador que tiene unas instrucciones ejecutables por ordenador para definir de forma declarativa una accion de control, comprendiendo las instrucciones:
asociar (600) una primera accion con un control (200, 300, 400, 500) dentro de un codigo (230, 320, 420, 540) para definir de forma declarativa el control, en el que la primera accion y el control son unos componentes que se pueden personalizar de forma independiente; asociar (610) un evento con el control; recibir un valor en el control;
ejecutar (630) la primera accion cuando se genera el evento (620), en el que ejecutar la primera accion comprende realizar una operacion logica sobre el valor;
asociar (610) una segunda accion con la primera accion y el control dentro del codigo, en el que la primera accion, la segunda accion y el control son unos componentes que se pueden personalizar de forma independiente;
asociar al menos una de la primera y la segunda acciones con una propiedad de tipo enumerado (470) que tiene un conjunto fijo de valores que se presentan visualmente en un menu desplegable (480) dentro del codigo para asegurar que una seleccion de usuario de uno de los valores de entre el conjunto fijo de valores de la propiedad de tipo enumerado da lugar a que una seleccion de valor valida se asocie con las al menos una primera y una segunda acciones; y
ejecutar (630) la segunda accion cuando se genera el evento.
17. El medio legible por ordenador de la reivindicacion 16, en el que asociar la segunda accion con la primera accion comprende adicionalmente anidar la segunda accion dentro de la primera accion.
18. El medio legible por ordenador de la reivindicacion 16, en el que ejecutar la primera accion comprende adicionalmente asociar una semantica logica con el control, en el que la semantica logica es espedfica de una aplicacion que esta asociada con el control.
ES06802747.3T 2005-09-12 2006-08-29 Acciones de control definidas de forma declarativa Active ES2609508T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71656205P 2005-09-12 2005-09-12
US716562P 2005-09-12
US333870 2006-01-17
US11/333,870 US7730495B2 (en) 2005-09-12 2006-01-17 Declaratively defined control actions
PCT/US2006/034122 WO2007032926A1 (en) 2005-09-12 2006-08-29 Declaratively defined control actions

Publications (1)

Publication Number Publication Date
ES2609508T3 true ES2609508T3 (es) 2017-04-20

Family

ID=37856792

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06802747.3T Active ES2609508T3 (es) 2005-09-12 2006-08-29 Acciones de control definidas de forma declarativa

Country Status (9)

Country Link
US (1) US7730495B2 (es)
EP (1) EP1924927B1 (es)
JP (1) JP5108773B2 (es)
KR (1) KR20080043345A (es)
CN (1) CN101263484B (es)
ES (1) ES2609508T3 (es)
MX (1) MX2008003417A (es)
RU (1) RU2431187C2 (es)
WO (1) WO2007032926A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341598B2 (en) 2008-01-18 2012-12-25 Microsoft Corporation Declartive commands using workflows
US8504985B2 (en) * 2009-04-30 2013-08-06 Adobe Systems Incorporated Context sensitive script editing for form design
CN102929632B (zh) * 2012-11-06 2017-02-15 丁黄香 控件动作执行方法
RU2583736C2 (ru) * 2014-02-13 2016-05-10 Общество С Ограниченной Ответственностью "Яндекс" Система и способ отображения результатов поиска
US20160077709A1 (en) * 2014-09-12 2016-03-17 Microsoft Corporation Actionable item switcher
US9288235B1 (en) * 2014-09-17 2016-03-15 Microsoft Technology Licensing, Llc Contextually aware device management
CN107544820A (zh) * 2016-06-29 2018-01-05 平安科技(深圳)有限公司 图表展示方法及装置
US10635416B2 (en) 2018-07-31 2020-04-28 Microsoft Technology Licensing, Llc Property filtering

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6160549A (en) * 1994-07-29 2000-12-12 Oracle Corporation Method and apparatus for generating reports using declarative tools
US6449659B1 (en) * 1997-07-14 2002-09-10 Microsoft Corporation System for instance customization with application independent programming of controls
US6014666A (en) * 1997-10-28 2000-01-11 Microsoft Corporation Declarative and programmatic access control of component-based server applications using roles
US6083276A (en) * 1998-06-11 2000-07-04 Corel, Inc. Creating and configuring component-based applications using a text-based descriptive attribute grammar
WO2000054202A2 (en) 1999-03-11 2000-09-14 Paysys International, Inc. Methods and systems for developing applications and for interfacing with users
US6493837B1 (en) * 1999-07-16 2002-12-10 Microsoft Corporation Using log buffers to trace an event in a computer system
US6856322B1 (en) * 1999-08-03 2005-02-15 Sony Corporation Unified surface model for image based and geometric scene composition
WO2001082071A1 (en) * 2000-04-21 2001-11-01 Togethersoft Corporation Methods and systems for supporting and deploying distributed computing components
US6677962B1 (en) * 2000-06-26 2004-01-13 Microsoft Corporation Methods and systems for manipulating user interface controls
US6715107B2 (en) * 2000-12-26 2004-03-30 International Business Machines Corporation Method and system for reducing the computation tree to include only model behaviors defined succinctly by a user via regular expressions as being of interest
US20050210263A1 (en) * 2001-04-25 2005-09-22 Levas Robert G Electronic form routing and data capture system and method
JP4536971B2 (ja) * 2001-09-28 2010-09-01 キヤノン株式会社 サーバ装置及びその制御方法
US7831655B2 (en) * 2001-10-18 2010-11-09 Bea Systems, Inc. System and method for implementing a service adapter
US7076766B2 (en) * 2002-06-03 2006-07-11 Steve Wirts Software application development methods and framework
AU2003262702A1 (en) * 2002-08-23 2004-03-11 Jway Group, Inc. Extensible user interface (xui) framework and development environment
DE60230512D1 (de) * 2002-09-25 2009-02-05 Sap Ag Verfahren und Rechnersystem zur Ereignisbehandlung
US20040233237A1 (en) * 2003-01-24 2004-11-25 Andreas Randow Development environment for DSP
JP2004318848A (ja) * 2003-03-28 2004-11-11 Daiwa Securities Group Inc 画面自動生成装置、画面自動生成方法、画面自動生成プログラム、記録媒体、実行装置、ファイル編集装置、ファイル編集方法およびファイル編集プログラム
US7576878B2 (en) * 2003-04-03 2009-08-18 Hewlett-Packard Development Company, L.P. Enhanced management of raster image processing resources
US7644367B2 (en) 2003-05-16 2010-01-05 Microsoft Corporation User interface automation framework classes and interfaces
US7503043B2 (en) * 2003-09-05 2009-03-10 International Business Machines Corporation Method of building dynamic installation packages using a declarative authoring tool
JP2005099975A (ja) * 2003-09-24 2005-04-14 Hitachi Ltd プログラム編集装置
US20050144174A1 (en) * 2003-12-31 2005-06-30 Leonid Pesenson Framework for providing remote processing of a graphical user interface
JP2005227865A (ja) * 2004-02-10 2005-08-25 Fuji Xerox Co Ltd 印刷制御装置、方法およびプログラム

Also Published As

Publication number Publication date
US20070061741A1 (en) 2007-03-15
JP5108773B2 (ja) 2012-12-26
RU2431187C2 (ru) 2011-10-10
JP2009508254A (ja) 2009-02-26
EP1924927A4 (en) 2008-12-24
EP1924927B1 (en) 2016-10-12
CN101263484B (zh) 2010-09-08
CN101263484A (zh) 2008-09-10
KR20080043345A (ko) 2008-05-16
RU2008109248A (ru) 2009-10-10
WO2007032926A1 (en) 2007-03-22
US7730495B2 (en) 2010-06-01
MX2008003417A (es) 2008-03-27
EP1924927A1 (en) 2008-05-28

Similar Documents

Publication Publication Date Title
ES2609508T3 (es) Acciones de control definidas de forma declarativa
US9047583B2 (en) Ontology context logic at a key field level
Bracha The Dart programming language
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
US20050268280A1 (en) Encapsulating changes to a software application
US9372683B2 (en) Automatic generation of class identifiers from source code annotations
US10459708B2 (en) Composing a module system and a non-module system
Balasubramanian et al. Polyglot: modeling and analysis for multiple statechart formalisms
DeLine et al. The Fugue protocol checker: Is your software baroque
Zakas Maintainable JavaScript: Writing Readable Code
US9311111B2 (en) Programming environment with support for handle and non-handle user-created classes
CN115437684A (zh) 一种针对Linux内核源代码的文件级裁剪方法和系统
CN107589940B (zh) 一种基于Lua脚本语言的软件开发辅助系统
US7926022B2 (en) Surrogate-based and extends-based context look-up
De Smet C# 4.0 Unleashed
WO2022127263A1 (zh) 一种代码处理方法以及相关设备
Gabrijelčič Hands-On Design Patterns with Delphi: Build applications using idiomatic, extensible, and concurrent design patterns in Delphi
Macero García et al. A Minimal Frontend with React
EP3164800B1 (en) Bridging a module system and a non-module system
Kumar et al. Programming with Java
Ahmad et al. Unification of Programming Languages.
Smyth Objective-C 2. 0 Essentials
Dos Reis An introduction to programming using JAVA
Friesen et al. Focusing on Odds and Ends
Schwartz Java Bootcamp