MXPA04008851A - Interfase de programacion para una plataforma de computo. - Google Patents

Interfase de programacion para una plataforma de computo.

Info

Publication number
MXPA04008851A
MXPA04008851A MXPA04008851A MXPA04008851A MXPA04008851A MX PA04008851 A MXPA04008851 A MX PA04008851A MX PA04008851 A MXPA04008851 A MX PA04008851A MX PA04008851 A MXPA04008851 A MX PA04008851A MX PA04008851 A MXPA04008851 A MX PA04008851A
Authority
MX
Mexico
Prior art keywords
functions
functionality
allow
user interface
screen
Prior art date
Application number
MXPA04008851A
Other languages
English (en)
Inventor
P Mckee Timothy
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of MXPA04008851A publication Critical patent/MXPA04008851A/es

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

Una interfase del usuario para una plataforma de computo que puede incluir varias funcionalidades. En algunas modalidades, la interfase de programacion incluye uno o mas del primer grupo de servicios relacionados con controles que se vuelven a utilizar en la interfase del usuario, un segundo grupo de servicios relacionados con dialogos de la interfase del usuario y ayudas automaticas de la interfase del usuario, un tercer grupo de servicios relacionados con la extension de la funcionalidad de la interfase del usuario y un cuarto grupo de servicios relacionados con la extension de la funcionalidad de la interfase del usuario en una computadora de escritorio.

Description

INTERFASE DE PROGRAMACION PARA UNA PLATAFORMA DE COMPUTO Campo de la Invención La presente invención se refiere a un software (programa) y el desarrollo de dicho software Mas particularmente, la presente invención se refiere a una interfase de programación que facilita el uso de una plataforma de software mediante softwares de aplicación y hardware de computo Antecedentes de la Invención Muy pronto, el software de computo llego a ser categorizado como un software de sistema operativo' o software de 'aplicación' Hablando de una manera general, una aplicación es un software que significa realizar una tarea especifica para el usuario de la computadora, tal como solucionar una ecuación matemática o procesar un procesamiento de palabras de soporte El sistema operativo es el software que maneja y controla el hardware de computo La meta del sistema operativo es hacer disponibles los recursos de la computadora al programador de la aplicación mientras que al mismo tiempo, oculta la complejidad necesaria para realmente controlar el hardware El sistema operativo hace disponibles los recursos por medio de las funciones que son colectivamente conocidas como la Interfase de Software de Aplicación o API El termino API es también utilizado haciendo referencia a una sola de estas funciones Las funciones con frecuencia son agrupadas en términos de los recursos o servicios proporcionan al programador de la aplicación El software de aplicación solicita recursos invocando las funciones API individuales Las funciones API también sirven como el medio por medio del cual el sistema operativo proporciona los mensajes y la información que son retransmitidas al software de aplicación Ademas de los cambios en el hardware (equipo), otro factor que lleva a la evolución del software del sistema operativo, ha sido el deseo de simplificación y el desarrollo de un software de aplicación de velocidad El desarrollo del software de aplicación puede ser una tarea desalentadora, que a veces requiere años de tiempo del desarrollador para crear un software sofisticado con millones de lineas de códigos Para un sistema operativo popular, tal como las diferentes versiones del sistema operativo Microsoft Windows®, los desabolladores del software de aplicación escriben cada año miles de aplicaciones diferentes que utilizan el sistema operativo Se requiere una base coherente y que se pueda utilizar para el sistema operativo para que soporte muchos desabolladores de aplicaciones muy diversos Con frecuencia, el desarrollo del software de aplicación se puede hacer mas simple haciendo el sistema operativo mas complejo Es decir, si una función puede ser útil para vanos softwares de aplicación diferentes, puede ser mejor escribirla una vez para incluirla en el sistema operativo, que requerir docenas de desarrolladores de software para escribirlo docenas de veces, para su inclusión en docenas de diferentes aplicaciones De esta manera, si el sistema operativo soporta un amplio rango de la funcionalidad común requerida por un numero de aplicaciones, se pueden lograr ahorros importantes en los costos del desarrollo del software de aplicaciones y en tiempo Independientemente de en donde se encuentre la linea entre el sistema operativo y el sistema de aplicación, es claro que para un sistema operativo útil, el API entre el sistema operativo y el hardware de computo y el software de aplicación es tan importante como la operación interna eficiente del sistema operativo mismo Desde hace unos cuantos años, la adopción universal de la Internet y la tecnología de red en general, han cambiado el panorama para los desarrolladores de softwares de computo Tradicionalmente, los desarrolladores del software se enfocaban en aplicaciones de software de un solo sitio para computadoras de escritorio independientes o computadoras basadas en la LAN que eran conectadas a un numero limitado de otras computadoras por medio de una red de área local (LAN) Dichas aplicaciones de software eran a las que se referían generalmente como productos de "envolturas compactadas" debido a que el software era comercializado y vendido en un paquete de envoltura compactado Las aplicaciones utilizaron APIs bien definidos para tener acceso al sistema operativo subyacente de la computadora Conforme evoluciono la Internet y gano una aceptación difundida, la industria comenzó a reconocer el poder de las aplicaciones de las computadoras centrales en diferentes sitios en la red mundial (World Wide Web) (o simplemente la Web") En la red mundial, los clientes de cualquier parte podrían presentar solicitudes para aplicaciones basadas en un servidor centralizado en diferentes localizaciones y recibir respuestas en fracciones de segundos Sin embargo, estas aplicaciones de la Web, generalmente eran desarrolladas utilizando la misma plataforma del sistema operativo que originalmente fue desarrollada para las maquinas computadoras independientes o las computadoras de redes locales Desafortunadamente, en algunos casos, estas aplicaciones no se transfieren de manera adecuada al régimen de computo distribuido La plataforma subyacente simplemente no fue construida con la idea de soportar números ilimitados de computadoras interconectadas Con el objeto de acomodar el cambio al ambiente de computo distribuido que estaba siendo guiado por la Internet, Microsoft Corporation desarrollo una plataforma de red conocido como " NET" Framework (leerlo como "Dot Net") Microsoft® NET es el software para conectar gente, información, sistemas y aparatos La plataforma permite que los desarrolladores creen servicios de la Web que ejecutaran por la Internet Este cambio dinámico fue acompañado por un conjunto de funciones API para la Estructura NET™ de Microsoft Conforme se fue haciendo crecientemente mas común el uso de la NET™ Framework, han sido identificados medios para aumentar la eficiencia y/o el funcionamiento de la plataforma Los inventores han desarrollado un conjunto único de funciones de interfase de programación para permitir dicha eficiencia y/o funcionamiento aumentado Sumario de la Invención Una inferíase de programación para una plataforma de computo tal y como aquí se describe De acuerdo con ciertos aspectos, la interfase de programación puede incluir uno o mas de los siguientes grupos de servicios un primer grupo de servicio relacionado con los controles de inferíase del usuario que se pueden volver a utilizar, un segundo grupo de servicio relacionado con los diálogos de inferíase del usuario y las ayudas automáticas (wizards) de interfase del usuario, un tercer grupo de servicios relacionado con extender la funcionalidad de la interfase del usuario y un cuarto grupo de servicios relacionado con extender la funcionalidad de una computadora de escritorio de la interfase del usuario Breve Descripción de los Dibuios En todos los dibujos se utilizan números similares para hacer referencia a características similares La figura 1 ilustra una arquitectura de red en la cual los clientes acceden a los servicios de la Web por la Internet, utilizando protocolos convencionales La figura 2 es un diagrama de bloque de una arquitectura de software para una plataforma de red, la cual incluye una mterfase de software de aplicación (API) La figura 3 es un diagrama de bloque de nombres de espacios únicos soportados por la API, asi como las clases de función de las diferentes funciones API La figura 4 es un diagrama de bloque de una computadora de ejemplo que puede ejecutar toda o parte de la arquitectura del software Las figuras 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, y 16, ilustra las diferentes implementaciones de ejemplo de una mterfase de programación Descripción Detallada de la Invención La descripción se refiere a una mterfase de programación, tal como una mterfase de aplicación de software (API), para una plataforma de red sobre la cual los desarrolladores pueden construir aplicaciones y servicios de la Web Mas particularmente, se describe una API para los sistemas operativos que utilizan la plataforma de la red tal como la NET™ Framerwork, creada por Microsoft Corporation La NET™ Framerwork es una plataforma de software para servicios de la Web y aplicaciones de la Web implementada en un ambiente de computo distribuido Representa la siguiente generación del computo de Internet, utilizando estándares abiertos de comunicación para comunicarse entre servicios de la Web acoplados de manera suelta que están colaborando para realizar una tarea particular En la implementacion descrita, la plataforma de la red utiliza el XML (lenguaje de marca extensiva), un estándar abierto para describir datos El XML es administrado por un Consorcio de la Red Mundial (W3C) El XML es utilizado para definir los elementos de los datos en una pagina Web y en documentos de negocio a negocio El XML utiliza una estructura de marca similar al HTML, sin embargo, mientras el HTML define la forma en que los elementos son desplegados en la pantalla, el XML define lo que contienen dichos elementos El HTML utiliza marcas previamente definidas, pero el XML permite que las marcas sean definidas por el desarrollador de la pagina Por lo tanto, se pueden identificar virtualmente cualquier partida de datos, permitiendo que las paginas Web funcionen igual que los registros de bases de datos A través del uso del X L y otros protocolos abiertos, tales como el Protocolo de Acceso Simple de Objetos (SOAP), la plataforma de red permite la integración de un amplio rango de servicios que pueden ser diseñados para las necesidades del usuario Aunque las modalidades aquí descritas se describen en conjunto con el XML y otros estándares abiertos, estos no son requeridos para la operación de la invención reivindicada Serian suficientes otras tecnologías igualmente viables para implementar las invenciones aquí descritas Como se usa en la presente descripción, la frase interfase de aplicación del software o API incluye mterfases tradicionales que emplean métodos e invocaciones de funciones, asi como invocaciones remotas (por ejemplo, una procuración o una relación de asistente de instalación), o las invocaciones SOAP/XML AMBIENTE DE RED DE EJEMPLO La figura 1 muestra un ambiente de red 100 en el cual puede ser implementada la plataforma de red tal como la NET™ Framework, El ambiente de red 100 incluye servicios representativos de la Web 102(1), 102(N), los cuales proporcionan servicios a los que se puede tener acceso por la red 104 (por ejemplo, Internet) Los servicios de la Web, a los que se hace referencia generalmente como el numero 102, son componentes de aplicación que se pueden programar y que se pueden volver a usar e interactuan programáticamente por la red 104, generalmente a través de los protocolos Web estándar de la industria, tales como XML, SOAP, WAP (protocolo de aplicación inalámbrica), HTTP, (protocolo de transporte de hipertexto) y SMPT (protocolo de transferencia simple de correo) aunque también se pueden utilizar otros medios para interactuar con los servicios de la Web por la red, tales como la Llamada de Procedimiento Remoto (RPC), o la tecnología de tipo de corredor de objetos Un servicio de la Web puede ser auto-descrito y con frecuencia definido en términos de formatos y ordenamiento de mensajes Los servicios de la Web 102 son accesibles directamente por otros servicios (tal y como lo representa el enlace de comunicación 106) o una aplicación de software, tal como la aplicación Web 110 (tal y como se representa por los enlaces de comunicación 112 y 114) Cada servicio de la Web 102 esta ilustrado como que incluye uno o mas servidores que ejecutan el software para manejar las solicitudes de servicios particulares Dichos servicios con frecuencia mantienen bases de datos que almacenan información para que se vuelvan a servir de retorno a los solicitantes Los servicios de la Web pueden estar configurados para realizar cualquiera de una variedad de servicios diferentes Los ejemplos de los servicios de la Web incluyen, la verificación del nombre de cuenta, notificación, almacenamiento de base de datos, localización de existencias, directorios de localización, elaboración de mapas, música, cartera electrónica, calendario/programador, listas telefónicas, noticias e información, juegos, elaboración de boletos y asi sucesivamente Los servicios de la Web pueden ser combinados entre ellos y con otras aplicaciones para construir experiencias interactivas inteligentes El ambiente de red 100 también incluye aparatos representativos de cliente 120(1 ), 120(2), 120(3), 120(4), 120(M), que utilizan los servicios de la Web 102 (representados por el enlace de comunicación 122), y/o la aplicación Web 110 (tal y como lo representan los enlaces de comunicación 124, 126, y 128) Los clientes se pueden comunicar entre ellos utilizando también protocolos estándar, representados por el enlace de ejemplo XML 130, entre los clientes 120(3) y 120(4) Los aparatos del cliente, a los que nos referimos generalmente como el numero 120, pueden ser im plem entados de muchas maneras diferentes Los ejemplos de las implementaciones posibles del cliente incluyen, sin limitación, computadoras portátiles, computadoras estacionarias, PCs de tableta, cajas de descodificadores de televisiones/señal de cable, aparatos de comunicación inalámbrica, asistentes digitales personales, consolas de juegos, impresoras, fotocopiadoras y otros aparatos inteligentes La aplicación de la Web 110, es una aplicación diseñada para operar en la plataforma de red y puede utilizar los servicios de la Web 102 cuando maneja y da servicio a solicitudes de los clientes 120 La aplicación de la Web 110 esta compuesta de una o mas aplicaciones de software 130, que operan en la parte superior de una sistema de programación 132, las cuales están siendo ejecutadas en uno o mas servidores 134 u otros sistemas de computo Observar que una porción de la aplicación de la Web 110, puede residir realmente en uno o mas clientes 120 Alternativamente, la aplicación de la Web 110 puede coordinarse con otros softwares en los clientes 120, para realizar realmente sus tareas El sistema de programación 132 es la metodología que soporta las aplicaciones y servicios desarrollados por los desarrolladores de aplicación Permite un desarrollo de lenguaje múltiple y una integración continua utilizando lenguajes múltiples de soporte Soporta protocolos abiertos, tales como el SOAP y encapsula el sistema operativo subyacente y los servicios de modelo de objeto El sistema proporciona un ambiente de ejecución robusto y seguro para lenguajes de programación múltiples y ofrece bibliotecas de clase integrada segura El sistema 132 es una arquitectura de capas múltiples que incluye una capa de interfase de software de aplicación (API) 142, un tiempo de ejecución de lenguaje común (CLR) 144, y una capa operativa de sistemas/servicios 146 Esta arquitectura en capas permite las actualizaciones y modificaciones de las diferentes capas sin impactar otras porciones del sistema Una especificación común de lenguaje (CLS) 140 permite que los diseñadores de diferentes lenguajes escriban códigos que pueden tener acceso a la funcionalidad de biblioteca subyacente La especificación 140 funciona como un contrato entre los diseñadores de lenguaje y los diseñadores de bibliotecas que puede ser utilizado para promover la interoperabihdad del lenguaje Adhiriéndolas a los CLS, las bibliotecas escritas en un lenguaje pueden ser accesibles directamente a los módulos de código escritos en otros lenguajes para lograr una integración continua entre los módulos de código escritos en un lenguaje y los módulos de código escritos en otro lenguaje Una implementacion de ejemplo detallada de un CLS, se describe en el estándar ECMA creado por los participantes en el EC A TC39/TG3 El lector se puede dirigir al sitio web ECMA a la dirección www ecma ch La capa de API 142 presenta grupos de funciones que pueden invocar las aplicaciones 130 para acceder a los recursos y servicios proporcionados por la capa 146 Exponiendo las funciones API para una plataforma de red, los desarrolladores de aplicación pueden crear aplicaciones Web para sistemas de computo distribuidos que hacen un uso completo de los recursos de la red y otros servicios de la Web, sin necesitar entender los trabajos internoscomplejos de la forma en como operan realmente estos recursos de la red, o como se hacen disponibles Ademas, las aplicaciones de la Web pueden ser escritas en cualquier numero de lenguajes de programación y traducidas en un lenguaje intermedio soportado por un tiempo de ejecución de lenguaje común 144, e incluidos como parte de la especificación de lenguaje común 140 De este modo, la capa API 142 puede proporcionar métodos para una amplia y diversa variedad de aplicaciones Adicionalmente, el sistema 132 puede estar configurado para soportar las invocaciones de la API de las solicitudes remotas que se ejecutan remotamente desde los servidores 134, que alojan el sistema Las aplicaciones representativas 148(1) y 148(2) que residen en los clientes 120(3) y 120( ), respectivamente, pueden utilizar las funciones API haciendo llamadas directamente o indirectamente a la capa API 142 por la red 104 El sistema también puede ser implementado en los clientes El cliente 120(3) representa la situación en la cual el sistema 150 es implementado en el cliente Este sistema puede ser idéntico al sistema basado en el servidor 132, o modificado para propósitos del cliente Alternativamente, el sistema basado en el cliente puede ser condensado en el caso de que el cliente sea un aparato de función limitada o dedicado, tal como un telefono celular, un asistente personal digital, una computadora portátil u otro aparato de comunicación/computo SISTEMA DE PROGRAMACION DE LOS DESARROLLADORES La figura 2 muestra la sistema de programación 132 con mayor detalle La capa de especificación de lenguaje común (CLS) 140 soporta las aplicaciones escritas en una variedad de lenguajes 130(1), 130(2), 130(3), 130(4), 130(K) Dichos lenguajes de aplicación incluyen Visual Basic, C+ + , C#, COBOL, Jscript, Perl, Eiffel, Pitón, etc, La especificación de lenguaje común 140 especifica un subconjunto de características o reglas acerca de las característica que, de ser seguidas, permiten que se comuniquen diferentes lenguajes Por ejemplo, algunos lenguajes no soportan un tipo determinado (por ejemplo, un tipo "int* ) que podría ser soportado de otro modo por un tiempo de ejecución de lenguaje común 144 En este caso, la especificación del lenguaje común 140 no incluye el tipo Por otra parte, los tipos que son soportados por todos o la mayor parte de los lenguajes (por ejemplo, el tipo int[ ] ) esta incluido en la especificación de lenguaje común 140 de modo que los desarrolladores de la biblioteca tienen la libertad de utilizarlo y están asegurados de que los lenguajes se pueden manejar Esta es la capacidad para comunicar los resultados en una integración continua entre los módulos de código escritos en un lenguaje y los módulos de código escritos en otro lenguaje Debido a que los lenguajes diferentes están particularmente bien adecuados para tareas particulares, la integración continua entre los lenguajes permite que un desarrollador seleccione un lenguaje particular para un modulo de código particular, con la capacidad de utilizar ese modulo de código con los módulos escritos en lenguajes diferentes El tiempo de ejecución de lenguaje común 144 permite el desarrollo de un lenguaje múltiple continuo, con la herencia de lenguaje cruzado, y proporciona un ambiente de ejecución robusto y seguro para los lenguajes de programación múltiples Para mayor información sobre la especificación del lenguaje común 140 y el tiempo de ejecución del lenguaje común 144, el lector deberá consultar las solicitudes también pendientes tituladas "Método y Sistema para Recopilar Lenguajes Múltiples , presentada el 6/21/2000 (serie numero 09/598,105) y "Sistema y Método Unificado de Tipo de Datos', presentada el 7/10/2000 (serie numero 09/613,289), las cuales están incorporadas a la presente descripción como referencia El sistema 132 encapsula el sistema operativo 146(1) (es decir, los sistemas operativos de la marca Windows® y los servicios de modelo de objeto 146(2) (por ejemplo, el Modelo de Objeto de Componente (COM) o el CO distribuido) El sistema operativo 146(1) proporciona funciones convencionales, tales como la administración de archivos, notificación, manejo de eventos, mterfases del usuario (por ejemplo, la apertura de ventanas, menus, diálogos, etc ), la seguridad, autenticación, verificación procesos y series de artículos, administración de memoria y asi sucesivamente Los servicios del modelo de objeto 146(2) proporcionan la interfase con otros objetos para realizar diferentes tareas Las llamadas hechas a la capa API 142 son enviadas a la capa de tiempo de ejecución del lenguaje común 144 para la ejecución local por parte del sistema operativo 146(1) y/o los servicios de modelo de objeto 146(2) Los grupos API, API 142 funcionan en espacios de nombre (asignación) múltiples Los espacios de nombre esencialmente definen una colección de clases, mterfases, delegados, enumeraciones y estructuras, los cuales son denominados colectivamente "tipos , que proporcionan un conjunto especifico de funcionalidad relacionada Una clase representa, los datos distribuidos en un área especial en la memoria utilizada para almacenar recursos importantes manejados que tienen semánticas de asignación de referencia Un delegado es un señalador de función orientado al objeto Una enumeración es un tipo especial de un tipo de valor que representa las constantes nombradas Una estructura representa, los datos estáticos distribuidos que tienen semánticas de asignación de valor Una interfase define un contrato que puede implementar otros tipos Utilizando los espacios de nombre, un diseñador puede organizar un conjunto de tipos en un espacio de nombre jerárquico El diseñador puede crear grupos múltiples a partir de conjuntos de tipos, conteniendo cada grupo por lo menos un tipo que expone una funcionalidad relacionada lógicamente En la implementacion de ejemplo, el API 142 esta organizado para que incluya tres espacios de nombre de raíz Deberá observarse que aunque solamente están ilustrados en la figura 2 tres espacios de nombre de raíz, también pueden ser incluidos espacios de nombre de raíz adicionales en el API 142 Los tres espacios de nombre de raíz ilustrados en el API 142 son un primer espacio de nombre 200, para un subsistema de presentación (el cual incluye un espacio de nombre 202 para un interprete de ordenes del sistema operativo (shell) de la de interfase del usuario) un segundo espacio de nombre 204 para servicios de la web, y un tercer espacio de nombre 206 para un sistema de archivo Entonces a cada grupo se le puede asignar un nombre Por ejemplo, los tipos en los espacios de nombre de presentación de subsistemas 200 pueden ser asignados con el nombre Ventana', y los tipos en los espacios de nombre en el sistema de archivo 206 pueden ser asignados con el nombre "Almacenamiento1' Los grupos nombrados pueden ser organizados bajo un solo espacio de nombre de "raíz global", para los APIs del nivel del sistema, tales como el espacio de nombre del Sistema general Seleccionando y fijando previamente un identif icador superior del nivel, los tipos de cada grupo pueden ser referenciados fácilmente por un nombre jerárquico que incluye un identif icador superior de nivel seleccionado previamente fijado al nombre del grupo que contiene el tipo Por ejemplo, los tipos de espacio de nombre en el sistema de archivo 206 pueden tener una referencia utilizando el nombre jerárquico System Storage De este modo, los espacios de nombre individuales 200, 204 y 206 se convierten en unas ramificaciones principales fuera del espacio de nombre del sistema y pueden llevar una designación en donde los espacios de nombre individuales son previamente fijados por un diseñador, tales como un prefijo "System" Los espacios de nombre de presentación del subsistema 200 pertenecen al desarrollo de programación y contenido Este suministra tipos que permiten la generación de aplicaciones, documentos, presentaciones de medios y otros contenidos Por ejemplo, el espacio de nombre de presentación del subsistema 200 proporciona un modelo de programación que permite que los desabolladores obtengan servicios del sistema operativo 146(1) y/o servicios de modelo de objeto 146(2) El espacio de nombre del interprete de ordenes del sistema operativo (shell) 202 pertenece a la funcionalidad de mterfase del usuario Suministra tipos que permiten que los desabolladores incrusten la funcionalidad de mterfase del usuario en sus aplicaciones y permite ademas que los desabolladores extiendan la funcionalidad de la mterfase del usuario El espacio de nombre de servicios de la web 204 pertenece a una infraestructura para hacer posible la creación de una amplia variedad de aplicaciones, por ejemplo, aplicaciones tan simples como una aplicación de chat (conversación) que opera entre dos participantes en una intranet, y/o tan complejos como un servicio de la Web que se puede escalar para millones de usuarios La infraestructura descrita es altamente variable, de manera ventajosa uno solamente necesita aquellas partes que son apropiadas para la complejidad de una solución particular La infraestructura proporciona una cimentación para construir aplicaciones basadas en mensajes de diferentes escalas y complejidad La infraestructura proporciona APIs para el envío de mensajes básicos, el envío de mensajes seguros, el envío de mensajes confiables y el envío de mensajes negociados En una modalidad que se describe mas adelante los APIs asociados han sido factorizados dentro de la jerarquía de espacios de nombre de una manera que han sido elaborados cuidadosamente para equilibrar la utilidad, la capacidad de uso, la capacidad de extensión y la capacidad de formación de versiones El espacio de nombre de sistema de archivo 206 pertenece al almacenamiento Proporciona tipos que permiten el almacenamiento y recuperación de información Ademas del sistema 132, se proporcionan herramientas de programación 210 para ayudar al desarrollador a construir servicios y/o aplicaciones de la Web Un ejemplo de las herramientas de programación 210, es el Visual Studio™, un paquete integrado de programas de herramientas de programación de lenguaje múltiple ofrecido por Microsoft Corporation ESPACIOS DE NOMBRE DE RAIZ API La figura 3 muestra el espacio de nombre del subsistema de presentación 200 con mayor detalle En una modalidad, los espacios de nombre son identificados de acuerdo con la convención de denominación jerárquica, la cual eslabona los nombres, y son concatenados con los periodos Por ejemplo, el espacio de nombre del subsistema de presentación 200 esta identificado por el nombre de raíz "System Windows Dentro del espacio de nombre "System Windows" esta otro espacio de nombre para el shell, identificado como 'Sistema Ventanas Explorador" ("System Windows Explorer ), el cual identifica ademas otros espacios de nombre para controles conocidos como 'System Windows Explorer Controls" Con esta convención de denominación en mente, lo siguiente proporciona una revisión general de la presentación de los espacios de nombre de los subsistemas 200, aunque podrían ser utilizadas otras convenciones de denominación con un efecto igual El espacio de nombre Shell 202 ("System Windows Explorer ), incluye las clases y las APIs que soportan la funcionalidad de la interfase del usuario para permitir que los usuarios finales exploren y naveguen a un conjunto de puntos finales, tales como partidas en sistemas de almacenamiento, archivos en localizaciones FTP o DAV (Autoría y Elaboración de Versiones Distribuidas) en sus localizaciones, applets del panel de control en los paneles de control, aplicaciones y asi sucesivamente Esta navegación puede comprender la abertura de uno o mas archivos, asi como la abertura de archivos dentro de las carpetas El espacio de nombre Shell 202 permite que los desarrolladores incrusten dicha funcionalidad en sus aplicaciones y ademas, permite que los desarrolladores extiendan esta funcionalidad de exploración y navegación En las versiones del sistema operativo Windows®, esta inferíase del usuario es a la que nos referimos generalmente como el "Explorador" En ciertas modalidades, el sistema de almacenamiento de la funcionalidad de la interfase del usuario del espacio de nombre Shell 202, permite que el usuario explore y navegue a través de una plataforma de almacenamiento activo para organizar buscar y compartir todo tipo de información Esta plataforma define un modelo de datos rico, se construye en la parte superior de una maquina de almacenamiento de relaciones, soporta un modelo de programación flexible, y proporciona un conjunto de servicios de datos para el monitoreo, administración y manipulación de datos Los datos pueden ser datos basados en archivos, o datos que no son de archivos, y a los datos generalmente nos referimos como una "partida" El sistema de archivo extiende la funcionalidad proporcionada generalmente por los sistemas de archivo, debido a que también maneja partidas que no son datos de archivo, tales como contactos personales, calendarios de eventos y mensajes de correo electrónico Un ejemplo de dicho sistema de archivo es el sistema de archivo "WinFS Un almacén de datos universal del sistema de almacenamiento que permite que la funcionalidad de la interfase del usuario del espacio de nombre Shell 202, permite que el usuario explore y navegue a través de los implementos del modelo de datos que soportan la organización, búsqueda, participación, sincronización y seguridad de los datos que residen en el almacén La unidad fundamental de información del almacenamiento de este almacén de datos es a la que nos referimos como una partida El modelo de datos proporciona un mecanismo para declarar partidas y extensiones de partidas, para establecer relaciones entre las partidas y para organizar las partidas en archivos y en categorías Una partida es una unidad de información que se puede almacenar que, a diferencia de un archivo simple, es un objeto que tiene un conjunto de propiedades básico que son soportadas comunmente en todos los objetos expuestos a un usuario o software de aplicación por el sistema de almacenamiento Las partidas también tienen propiedades y relaciones que son generalmente soportadas en todos los tipos de partidas que incluyen características que permiten que sean introducidas nuevas propiedades y relaciones A estos datos de propiedad y relación también nos podemos referir a ellos como metadatos asociados con una partida Tal y como se explicara con mayor detalle mas adelante, los metadatos pueden ser almacenados de acuerdo con un esquema de decoración de partidas Este esquema de decoración de partidas puede indicar de una manera apropiada en cual esquema presentar la partida a un usuario Las partidas son los objetos para operaciones comunes tales como copia, borrado, mover, abrir, imprimir, soporte, restaurar, duplicar, y asi sucesivamente Las partidas son las unidades que pueden ser almacenadas y recuperadas y todas las formas de información que se puede almacenar manipuladas por la plataforma de almacenamiento que existen en la forma de partidas, propiedades de partidas o relaciones entre las partidas, siendo explicada cada una de ellas con mayor detalle mas adelante Las partidas pretenden representar unidades del mundo real y fácilmente entendibles de datos como contactos, agente, servicios, localizaciones, documentos (todos de diferentes tipos) y asi sucesivamente Las partidas son objetos independientes, por lo tanto, si es borrada una partida, también son borradas todas las propiedades de la partida De un modo similar, cuando se recupera una partida lo que es recibido es la partida y todas sus propiedades contenidas en los metadatos de la partida Ciertas modalidades pueden hacer posible que uno solicite un subconjunto de propiedades cuando esta recuperando una partida especifica, sin embargo, la función por omisión (default) para muchas de dichas modalidades es proporcionar la partida con todas sus propiedades inmediatas y heredadas cuando es recuperada Ademas, las propiedades de las partidas también pueden ser extendidas, agregando nuevas propiedades a las propiedades existentes de ese tipo de partida Estas "extensiones" son propiedades de bona fide, de las partidas posteriores, y los subtipos de los tipos de partida pueden incluir automáticamente las propiedades de extensión A las extensiones también nos podemos referir como metadatos asociados con un archivo Los grupos de partidas pueden ser organizados en partidas especiales denominadas Carpetas de partidas (Iss cuales no va a ser compartidas con las carpetas de archivo) No obstante, a diferencia de la mayor parte de los sistemas de archivo, una partida puede pertenecer a mas de una carpeta de partidas, de modo que cuando se accede a una partida en una carpeta de partidas y es revisada, esta partida revisada entonces puede ser accedida directamente desde otro archivo de partidas En esencia, aunque el acceso a una partida puede ocurrir desde diferentes carpetas de partidas, a lo que se esta accediendo realmente es, de hecho, a la misma partida Sin embargo, la carpeta de partidas no posee necesariamente todas sus partidas de elementos, o pueden ser sencillamente partidas que simplemente son copropiedad en conjunto con otros archivos de partidas, de modo que el borrado de un archivo de partidas, no necesariamente es el resultado del borrado de la partida Los grupos de partidas también pueden ser organizados en Categorías Las categorías son conceptualmente diferentes de los archivos de partidas, debido a que mientras los archivos de partidas pueden comprender partidas que no están interrelacionadas (por ejemplo, sin una característica descrita común) cada partida de una categoría tiene un tipo, propiedad o valor común (una 'capacidad de concordancia'), que se describe para esa categoría, y esta capacidad de concordancia forma la base para la relación y entre las otras partidas en la Categoría Ademas, mientras la membresia de la partida en un archivo particular no es obligatoria, basada en cualquier aspecto particular de esa partida, para ciertas modalidades todas las partidas que tienen una capacidad de concordancia se pueden categorizar en relación con una categoría y podrían llegar a ser automáticamente un miembro de la Categoría en el nivel de sistema de interfase del hardware/software Conceptualmente, también se pueden considerar las Categorías de un Archivo de partida virtual, cuya membresia esta basada en los resultados de una fila especifica (tal como en el contexto de una base de datos), y las partidas que cubren las condiciones de esta fila (definidas por las capacidad de concordancia de la Categoría), por lo tanto, comprenderían la membresia de la Categoría En contraste con los archivos, carpetas y directorios, las partidas, los Archivos de partida y Categorías de la presente invención, no son característicamente "físicas" por naturaleza, debido a que no tienen equivalentes conceptuales de contenedores físicos, y por lo tanto, las partidas pueden existir en mas de una de dichas localizaciones La capacidad para que las partidas existan en mas de una localización de un Archivo de partidas, asi como de que sean organizadas en Categorías, proporciona un grado mejorado y enriquecido de manipulación de datos y capacidades de estructura de almacenamiento en el nivel de interfase del hardware/software, mas alia del que esta disponible actualmente en la técnica Las partidas también pueden contener información de relaciones, la cual permite que sean determinadas relaciones entre dos o mas partidas Las relaciones son relaciones binarias cuando una partida es designada como la fuente y la otra partida como el objetivo La partida fuente y la partida objetivo están relacionados por la relación Las partidas en el almacén universal de datos son presentadas al usuario por medio de un buscador del Shell que proporciona una interfase del usuario (utilizando las clases y el espacio de nombre del Shell de las APIs 202) que permite que el usuario vea e interactue con la interfase del hardware/software Cada partida en el almacén universal de datos es almacenada de acuerdo con el esquema de datos universales Este esquema incluye un mecanismo para describir las partidas invocadas por las asociaciones de tipos Cada asociación de tipo tiene una representación básica en el Shell, almacenando una partida de acuerdo con una asociación de tipo, el Shell puede desplegar en pantalla una partida de acuerdo con al menos una vista de despliegue básico o por omisión (default) Una asociación de tipo es una propiedad asociada con una partida, cuando se colocan datos en el almacén universal de datos de una o mas propiedades asociadas con los datos, las cuales deben de ser declaradas como para determinar el tipo de partida que son Estas propiedades pueden estar incluidas como metadatos asociados con los datos El Shell tiene un conjunto de asociaciones de tipo por omisión (default) la cual representa la mayoría de las propiedades básicas y mínimas, las cuales deben de ser manifestadas para una partida Mas alia de las manifestaciones de la propiedad, los metadatos asociados con una partida pueden incluir datos que indican la forma en que se decoraría el Shell de una presentación de partida Las decoraciones, en este caso, se puede considerar que son "sugerencias" en cuanto a como presentar la partida a un usuario Estos metadatos pueden ser almacenados de acuerdo con un esquema de decoración de partidas El esquema de decoración de partidas define la visión de decoración de partidas que puede utilizar el shell para presentar la partida Por ejemplo, los datos de decoración de partidas pueden describir las propiedades manifestadas mas importantes para una partida Estas propiedades de "alto valor pueden ser las mas deseables para la presentación en el Shell Para presentar una partida, los datos de decoración de partida pueden indicar un conjunto de campos de visión apropiados para la presentación de la partida Los campos de visión son proyecciones de las propiedades manifestadas y los campos de visión común pueden incluir "titulo", autor , fecha de creación o 'ultima edición El Shell incluye un conjunto de campos de visión estándar y los vendedores independientes del software (ISVs) pueden definir campos de visión, los cuales son apropiados para la presentación de sus datos Cuando se desarrollan nuevos tipos de partidas, el ISVs puede, ya sea elaborar un mapa de las propiedades de la partida que ellos definen para los campos de visión del Shell, o pueden proporcionar sus propios campos de visión Por ejemplo, los datos de partidas particulares pueden contener datos de canciones El conjunto de propiedades declaradas puede incluir propiedades tales como el titulo de la canción, el artista, la fecha en que fue grabada, el álbum, el tiempo de duración de la canción y otras manifestaciones apropiadas para dicha partida de canción Los datos de decoración de partidas pueden indicar que los campos de visión "Titulo", "Artista", y "Album" deben de ser desplegados al usuario cuando se presenta la partida en el Shell Las decoraciones de partida pueden ser cualquier aspecto del despliegue soportado por el shell Algunas otras decoraciones de partidas comunes son, por ejemplo el formateo de datos, el orden de clasificación por omisión (default), el tamaño del icono por omisión (default) Adicionalmente, los datos de decoración de partida pueden describir controles comunes para utilizarlos en el despliegue de una partida determinada Por ejemplo, un campo de Ratings podría utilizar un control de calificaciones que representan la calificación como una serie de estrellas Los datos de decoración de partida pueden describir tareas o verbos apropiados para utilizarlos con una partida Los términos "tarea' y "verbo' describen alguna acción que deberá ser tomada con respecto a una partida y dichos términos pueden ser utilizados de manera intercambiable Por ejemplo, "Editar" o "Vista Previa pueden ser tareas/verbos apropiados asociados con una partida El Shell puede ser configurado adicionalmente para lanzar aplicaciones que soportan estas tareas al momento de la selección del usuario, para realizar la acción con respecto a la partida Una vista de decoración de partida es suficiente para presentar completamente una partida determinada o un conjunto de partidas homogéneo, que comprende partidas que tienen visiones de decoración de partida similares Para desplegar en pantalla las partidas con diferentes esquemas de decoración de partida, el Shell proporciona esquemas de visión del shell que presenta partidas de acuerdo con la vista de decoración del Shell El esquema de visión de protección permite que el esquema o el ISVs declare las visiones apropiadas para conjuntos determinados de datos heterogéneos Las partidas seleccionadas para la representación dentro de la visión de decoración del shell pueden incluir una característica común Pueden ser aceptables una amplia variedad de características comunes para una visión de decoración del shell Por ejemplo, un esquema de visión del shell podría definir una visión de una "Fotografía" utilizada para desplegar campos y metadatos comunes y apropiados para todos los tipos de fotos conocidos (por ejemplo, GIF, JPEG, BMP, TIFF, etc) El esquema de visión del shell omite los atributos de despliegues en conflicto para una visión de decoración de partida determinada y presenta cada partida de fotografía de acuerdo con el esquema de visión del shell Como otro ejemplo, el shell podría proporcionar una visión del shell de "Documento" que esta optimizada alrededor de columnas apropiadas y metadatos para estas partidas producidas por aplicaciones de productividad típicas, tales como documentos de procesamiento de textos, hojas de trabajo o bases de datos, aunque las decoraciones de partida para cada uno de estas partidas podría variar grandemente entre ellas Dicha visión tiene valor para proporcionar propiedades comunes entre cada uno de estos documentos Cuando los últimos tipos de documentos son instalados, la visión del shell podra presentar estas nuevas partidas de acuerdo con una visión del shell consistente aunque el tipo nuevo puede no haber estado considerado cuando se creo por primera vez la visión Los esquemas de visión del shell pueden proporcionar una amplia variedad de atributos de despliegue y los ISVs pueden querer proporcionar dichas visiones del shell Los atributos de la pantalla pueden incluir sin limitación el tamaño del panel de vista previa, los metadatos para desplegarlos dentro del panel de vista previa, los controles de diseño que van a ser utilizados y las tareas y verbos apropiados para las partidas presentadas El shell puede presentar partidas de acuerdo con una visión de despliegue del explorador A un "explorador nos podemos referir como una aplicación de almacenamiento y puede ser proporcionado por el shell o por el ISVs Por ejemplo, el explorador puede posibilitar al usuario para ver, solicitar, analizar, navegar, lanzarse dentro de las tareas y organizar las partidas seleccionadas en un almacén de datos El termino "explorador", debe implicar una localización en donde residen las partidas desplegadas en la pantalla y términos tales como "centro de actividad", "visuahzador y biblioteca" pueden ser utilizados de manera intercambiable con explorador" para describir una aplicación de almacenamiento Una jerarquía de ejemplo del esquema del explorador incluye, una capa inferior la cual es un esquema de visión de partidas El esquema de visión de partidas proporciona el despliegue de pantalla básico necesario para representar una partida y el esquema de visión del explorador puede aplazar o regresar a sus elementos de despliegue cuando son requeridos El esquema de visión del explorador también incluye, un esquema de visión del shell y decoraciones del explorador Las decoraciones del explorador decoran al explorador en su totalidad y proporcionan elementos de pantalla tales como colores distintivos y elementos de marcas Estas decoraciones del explorador persisten entre las diferentes visiones que proporciona el explorador Una amplia variedad de atributos de pantalla pueden ser apropiadas para las decoraciones del explorador Por ejemplo, las solicitudes de datos o tareas/verbos asociados con las partidas del explorador pueden ser apropiadas para desplegarlas con un explorador Las tareas desplegadas con frecuencia están acopladas con una aplicación que tiene la capacidad de realizar la tarea El esquema de visión del explorador puede incluir de manera opcional un esquema de visión del shell o esquemas de visión múltiples del shell El esquema de visión del shell puede estar configurado para proporcionar una visión del shell para un subconjunto de partidas del explorador Por ejemplo, un explorador puede estar configurado para desplegar partidas de canciones a un usuario Un primer esquema de visión del shell puede estar incluido para proporcionar una pantalla de los álbumes y un segundo esquema de visión del shell puede estar incluido para proporcionar un despliegue de las pistas de las canciones De esta manera, ambos tipos de partidas tendrán visiones apropiadas dentro del explorador Tal y como se explico anteriormente, la utilización de la visión del shell se relaciona con la presentación de un conjunto de partidas el cual, opcionalm ente puede compartir una característica común El explorador también puede depender de las visiones del shell incluidas dentro del shell Si las partidas seleccionadas para presentación dentro de un explorador no están soportadas por visiones del shell algunas incluidas por el explorador, el shell puede proporcionar una visión del shell apropiada para utilizarla dentro del explorador De un modo similar y tal como se explico anteriormente, el explorador también puede regresar a una visión de despliegue de una partida o una visión de despliegue por omisión (default) proporcionada por la protección Esta funcionalidad asegura que cualquier partida, la cual pueda ser desplegada por el shell, también tiene la capacidad de despliegue dentro del explorador El explorador puede estar configurado para diferir estos esquemas de despliegue proporcionados por el shell y pueden depender de, por ejemplo, proporcionar una pantalla para datos no anticipados El espacio de nombre del shell 202 soporta la funcionalidad de interfase del usuario que permite que las partidas sean manipuladas e interactuadas de una manera consistente independientemente de la localización de los datos subyacentes para la partida (por ejemplo, los contenidos de archivo, los datos de imagen y los datos de información de contacto, etc ) que están almacenados Desde el punto de vista del diseñador de una aplicación, la funcionalidad soportada por el espacio de nombre del shell 202 da como resultado una experiencia mejor de desarrollo por lo menos en parte, debida a que dichas partidas pueden ser tratadas de una manera consistente a pesar de los datos subyacentes que están siendo almacenados en localizaciones diferentes Se proporciona una experiencia coherente del diseñador cuando se utiliza el espacio de nombre del shell 202 no obstante la presencia potencial de dichas localizaciones diferentes de almacenamiento de datos El espacio de nombre del shell 202 define espacios de nombres adicionales, incluyendo un espacio de nombre de controles 302, un espacio de nombre de diálogos 304, un espacio de nombres Addm 306 y un espacio de nombre de Computadora de Escritorio 308 Cada uno de estos espacios de nombre adicionales 302, 304, 306, y 308 en el espacio de nombre del shell incluye uno o mas servicios o componentes que proporcionan diferentes funcionalidades, tales como controles, diálogos y/o administradores tal y como se explicaran con mayor detalle mas adelante El espacio de nombre del shell 202 define un modelo de objeto que puede ser utilizado por cada uno de los espacios de nombre adicionales 302, 304, 306, y 308 Este modelo de objeto incluye los siguientes objetos · Un objeto Explorerltem (al que también nos referimos como un objeto de Partida) utilizado para describir partidas que pueden ser presentadas al usuario por medio del Shell, tales como carpetas de archivos, pilas archivos individuales, partidas individuales WinFS (por ejemplo, albums, canciones fotos, etc ) y asi sucesivamente • Un objeto Librarles usado para describir una consulta contra el Explorerltem • Un objeto ViewFields (al que también nos referimos como un objeto Properties) usado para proyectar datos de las partidas (por ejemplo, tal y como se representaron por los objetos del Explorerltem ) para desplegarlos en pantalla al usuario Una proyección definida entre propiedades en el sistema de almacenamiento y un objeto ViewFields puede realizar cálculos o procesamiento adicionales basados en las Explorerltem s Por ejemplo, si esta siendo desplegada en pantalla una carpeta que representa un aparato de almacenamiento y el diseñador desea incluir en esa carpeta una cantidad de espacio libre en ese aparato de almacenamiento, entonces la proyección calcula la cantidad de espacio libre basada en la capacidad total del aparato de almacenamiento y los tamaños de los archivos (representados como Explorerltems) almacenados en el aparato de almacenamiento • Un objeto StorageFavorites utilizado para describir un enlace a una lista dinámica, la cual es una forma persistente de un objeto Library El objeto StorageFavontes es una combinación de una consulta y una vista para presentar al usuario los resultados de la consulta Este modelo de objeto se explico con mayor detalle en la Solicitud de Patente Norteamericana No Expediente Legal No MFCP 109834 (MS# 306923 01), presentada el 10/23/03, titulada "Sistema y método para presentar partidas a un usuario con una presentación de contexto , la cual esta incorporada a la presente descripción como referencia El espacio de nombre de controles 302 ("System Windows Explorer Controls ) define una colección de controles de inferíase del usuario que se pueden volver a utilizar y que pueden ser usados por las aplicaciones Debido a que aplicaciones múltiples diferentes pueden utilizar estos controles, estos controles pueden ser vistos como que se vuelven a utilizar Esta colección de controles que se vuelven a utilizar pueden simplificar el diseño de la aplicación, debido a que los diseñadores de la aplicación pueden depender de estos controles, en vez de que se les requiera diseñar sus propias versiones de los controles Adicionalmente, utilizando esta colección de controles que se vuelven a utilizar, se pueden lograr aplicaciones múltiples consistentes para ver y sentir Los controles definidos por el espacio de nombre de controles 302 permiten la manipulación y/o despliegue de las protecciones de la inferíase del usuario, incluyendo la manipulación y/o despliegue de las partidas en la interfase del usuario Tal y como se explico anteriormente, estas partidas que pueden ser desplegadas dentro de los shells de interfase del usuario representan cualquiera de una amplia variedad de tipos de datos y no son simplemente archivos" tradicionales almacenados en un sistema de archivo Ademas, los controles definidos por el espacio de nombre de Controles 302, permiten a los diseñadores de la aplicación utilizar los mismos controles cuando trabajan con datos provenientes de una amplia variedad de localizaciones, dando como resultado una experiencia de diseño consistente y coherente El espacio de nombre de controles 302 define los siguientes controles que se pueden volver a utilizar • Un control ExplorerView es utilizado para encapsular la experiencia de almacenamiento del usuario La experiencia de almacenamiento del usuario es definida como que trabaja en las partidas con las relaciones, solicitudes y asi sucesivamente Esta experiencia de almacenamiento del usuario permite que los usuarios finales, por ejemplo, formulen consultadas basadas en los valores de la propiedad, apilen partidas WinFS con valores de propiedad comunes les permiten jalar y soltar desde las partidas que no están apiladas a las apiladas (por ejemplo, ajustando el valor de una propiedad en un predicado de propiedad para lo que existe en la pila) y asi sucesivamente El control ExplorerView también puede ser utilizado para describir un expediente para despliegue en pantalla que tiene la misma apariencia que puede ser encontrada en los sistemas operativos anteriores (a los que también nos referimos como sistemas de herencia), tales como las versiones anteriores del sistema operativo Microsoft® Windows® (por ejemplo, las versiones Windows® XP o Windows® 98 del sistema operativo Windows®) En control Explorerltem View, utilizado para desplegar los Explorerltems La distribución y diseño de los Explorerltems pueden ser definidos por el diseñador de la aplicación El sistema operativo también puede definir una experiencia del usuario que impone algunas restricciones en la distribución y diseño que pueden ser definidas por el diseñador de la aplicación, de modo que la distribución y el diseño definidos por el diseñador de la aplicación sea consistente con la experiencia del usuario definida por el sistema operativo Por lo tanto, el control del Explorerltem View permite que el diseñador determine la forma en que van a ser desplegados en pantalla para el usuario los datos provenientes del Explorerltem (por ejemplo en columnas, filas o en alguna otra configuración), asi como cuales datos van a ser desplegados para el usuario Un Control BasketControl utilizado para permitir que las partidas sean agregadas a una barra lateral (las barras laterales son explicadas detalladamente mas adelante) Una partida puede ser agregada a la barra lateral de una manera de "arrastrar y soltar" utilizando un aparato de control del cursor para seleccionar una partida y arrastrarla sobre la barra lateral, en donde puede ser soltada (por ejemplo, liberando un botón del control del cursor) El control BasketControl se explica con mayor detalle en la solicitud de Patente Norteamericana No Expediente Legal No 003797 00695 ( S# 304631 1 ), presentada el 10/13/03, titulada, "Creación Extensible y Edición de Colecciones Integradas", la cual esta incorporada a la presente descripción como referencia Un control ListMaker utilizado para permitir que las partidas sean agregadas a una lista o grupo Se pueden crear listas o grupos de partidas de una manera de "arrastrar y soltar" utilizando un aparato de control del cursor para seleccionar una partida y arrastrarla sobre la lista o grupo apropiado, en donde puede ser soltada (por ejemplo, liberando un botón del control del cursor) Por ejemplo, las partidas pueden ser canciones y la lista una lista de ejecución, las partidas pueden ser imágenes y la lista un álbum fotográfico y asi sucesivamente • Un componente PreviewlmageControl utilizado para permitir imágenes de vista previa de las partidas que van a ser presentadas al usuario Cuando es seleccionada una partida, la imagen de vista previa puede ser presentada al usuario, siendo generalmente la imagen de vista previa mas grande que una miniatura para la imagen, pero menor que el área completa de la pantalla de la interfase del usuario El espacio de nombre Dialogs 304 ('System Windows Explorer Dialogs ) define una colección de diálogos y ayudas automáticas de la interfase del usuario que puede ser utilizados por las aplicaciones Similar a los controles del espacio de nombre de controles 302, los diálogos y ayudas automáticas en el espacio de nombre de diálogos 304 se pueden volver a utilizar, de modo que pueden utilizar estos diálogos y ayudas automáticas diferentes aplicaciones múltiples Esta colección de diálogos y ayudas automáticas que se vuelven a utilizar ayudan a mantener una visión y sentimiento consistente en todas las aplicaciones múltiples Los diálogos y ayudas automáticas definidos por el espacio de nombre de diálogos 304 permiten que se realicen acciones dentro de un shell de la interfase del usuario Tal y como se explico anteriormente, estos shells pueden estar basados en partidas que pueden representar cualquiera de una amplia variedad de tipos de datos, y no son simplemente "archivos tradicionales almacenados en un sistema de archivo Ademas, los diálogos y ayudas automáticas definidas por el espacio de nombre de diálogos 304 permiten que los diseñadores de la aplicación utilicen los mismos diálogos y ayudas automáticas cuando están trabajando con datos provenientes de una amplia variedad de localizaciones, dando como resultado una experiencia de diseño consistente y coherente El espacio de nombre Dialogs 304 define los siguientes diálogos y ayudas automáticas • Los diálogos Open/Save utilizados para permitir que los archivos y los expedientes sean abiertos y guardados Estos diálogos también se pueden extender permitiendo que los diseñadores de la aplicación extiendan la funcionalidad de los diálogos Por ejemplo, estos diálogos pueden ser extendidos para utilizar los diferentes metadatos adicionales referentes a los archivos y/o carpetas que el diseñador de la aplicación desea utilizar • Las ayudas automáticas para quemar CD/DVD utilizadas permiten que se escriban discos ópticos tales como CDs y/o DVDs Los diseñadores del hardware (equipo) pueden proporcionar sus propias ayudas automáticas incluyendo sus propios pasos específicos para el hardware que permiten que sean escritos los CDs y/o DVDs • La ayuda automática Send Photos para enviar fotos utilizada para ayudar al usuario para enviar imágenes por medio del correo electrónico La ayuda automática permite que el usuario vuelva a dimensionar la imagen a un tamaño particular La ayuda automática puede volver a dimensionar la imagen a un tamaño particular que se considera adecuado para el envío por correo electrónico, o alternativamente puede permitir que el usuario seleccione de dos o mas tamaños diferentes El espacio de nombre Addin 306 ("System Windows Explorer Addin") define una colección de clases de bases e interfases para extender la funcionalidad de la interfase del usuario El espacio de nombre de adición 306 permite que los diseñadores de la aplicación agreguen códigos administrados que extienden la funcionalidad de la interfase del usuario Por ejemplo, esta extensión permite que los diseñadores de la aplicación personalicen porciones de la interfase del usuario conforme lo ven adecuado El espacio de nombre Addin 306 permite la extensión de los shells de la interfase del usuario que son utilizados para desplegar las partidas en pantalla, los cuales representan cualquiera de una amplia variedad de tipos de datos y no son simplemente "archivos" tradicionales almacenados en el sistema de archivos Ademas, el espacio de nombre Addin 306 permite que los diseñadores de la aplicación extiendan los shells de la interfase del usuario de una manera coherente, proporcionando una experiencia de diseño mejor administrada y mejorada Los códigos administrados para las diferentes funcionalidades son soportados por el espacio de nombre Addin 306, tales como • Procesadores de Gestión del menú del contexto A los menus de contexto se puede acceder, por ejemplo, haciendo un che derecho en una partida que esta siendo desplegada Los procesadores de gestión del menú del contexto permite que los diseñadores de la aplicación definan sus propias entradas que van a ser agregadas a estos menus de contexto · Los extractores de Miniaturas Los extractores de Miniaturas permiten que los diseñadores de la aplicación desarrollen sus propias miniaturas (por ejemplo, para archivos, carpetas, y/o otras partidas que están siendo desplegadas en pantalla), e identifican aquellas miniaturas para el sistema operativo para su despliegue en pantalla o para el usuario Procesadores de gestión para proyecciones de composición/descomposición provenientes del WmFS para el Explorador Estos procesadores de gestión permiten que los diseñadores de la aplicación realicen varios cálculos cuando despliegan en pantalla información con respecto a los archivos y/o carpetas para el usuario (por ejemplo, permitiendo la cantidad de espacio libre en el aparato de almacenamiento que va a ser calculado) El espacio de nombre Desktop 308 ("System Windows Explorer Desktop") define una colección de funcionalidad que permite que los diseñadores de la aplicación extiendan la funcionalidad de la computadora de escritorio desplegada a los usuarios El espacio de nombre Desktop puede ser parte de un espacio de nombre del Shell 202 (por ejemplo, "System Windows Explorer Desktop , o alternativamente, pueden ser parte del espacio de nombre del subsistema de presentación 200, pero no parte del espacio de nombre del Shell 202 'System Windows Desktop El espacio de nombre Desktop incluye elementos comprendidos en la barra lateral y las notificaciones Incluyendo los elementos de la barra lateral y notificaciones en el espacio de nombre Desktop se le proporciona al usuario un control centralizado para la barra lateral y las notificaciones Por ejemplo, las reglas con respecto a las notificaciones de todas las aplicaciones pueden ser establecidas por el usuario una sola vez, en vez de requerir que el usuario navegue a través de las definiciones de las reglas de acceso para cada aplicación que utiliza notificaciones En general, la barra lateral proporciona un acceso de comunicación dinámico y una alerta de información en una pantalla de alerta periférica interactiva integrada dentro de la cual los contactos de comunicación y los elementos de información son rastreados o recibidos dinámicamente y proporcionados a un usuario en una base en progreso En ciertas modalidades, esta capacidad es proporcionada por medio de por lo menos una miniatura dinámica que se puede personalizar desplegada en una o mas columnas en una tira de pantalla persistente a lo largo de una orilla del aparato de pantalla convencional Ademas, en modalidades adicionales las miniaturas son desplegadas en cualquiera de una porción o porciones de una pantalla, incluyendo la pantalla completa La modalidad en donde es cubierta la pantalla completa es particularmente útil en los casos en que la barra lateral sera utilizada en un aparato que tiene un área de pantalla relativamente pequeña, tal como por ejemplo, un aparato de computo manual o de bolsillo, un telefono celular o cualquier otro aparato electrónico que tiene un área de pantalla hm itada Cada una de las miniaturas dinámicas que se pueden personalizar representa, por ejemplo, contactos particulares de comunicaciones (tales como por ejemplo, personas individuales, negocios, organizaciones u otras entidades), o elementos de información particulares en los que puede estar interesado un usuario Dichos elementos de información incluyen, por ejemplo, cuando son modificados archivos o carpetas compartidas, cuando es compartida la información en una base de datos o cambios en el espacio de trabajo las condiciones del correo electrónico, calendarios, paginas web de Internet, condiciones climáticas citas softwares, información estadística, cotizaciones de materiales, información de trafico o cualquier otra información a la que se pueda acceder por medio de la red o Internet que pueda ser de ínteres para el usuario Las miniaturas dinámicas anteriormente mencionadas comprenden generalmente una combinación de un "mosaico" (a la que también nos referimos como un boleto"), que describe el contacto o la información de ínteres y un "visualizador" especializado para el despliegue en pantalla de cualesquiera contactos de comunicaciones o información que sean representados por un mosaico Dicho mosaico y el visualizador pueden, por ejemplo, ser una partida en el sistema de almacenamiento a la que se pueda acceder por medio de la funcionalidad de interfase del usuario proporcionada en el espacio de nombre del Shell 202 El uno o mas "servicios" son utilizados para interactuar automáticamente con, el rastreo o recepción de la condición actual de la información y/o la condición de los contactos de comunicaciones descritos por cada mosaico La condición actual de la información y la condición de los contactos de comunicaciones, entonces son proporcionados dinámicamente, centralizando cada mosaico en un "contenedor" que reside dentro de una interfase de advertencia periférica interactiva para el despliegue en pantalla gráfica y/o textualmente de las partidas La interfase de advertencia periférica despliega la información y/o los contactos de comunicaciones de un modo tal que reducen cualquier distracción o interrupción potencial para el usuario En general, un mosaico es representado por una estructura de datos, tal como un archivo de datos XML Cada mosaico incluye instrucciones con respecto a que información o contacto de comunicaciones va a ser representado por el mosaico asi como lo señaladores para servicios particulares que representan cualquiera de un numero de medios convencionales para tener acceso y/o interactuar con la información o los contactos de comunicaciones Estos servicios son seleccionados automáticamente o manualmente a partir de las bibliotecas de servicios del usuario que se pueden definir o que están previamente definidas En particular, los diferentes servicios representan códigos o funciones compartidas que proporcionan funcionalidad para tener acceso, recibir, recuperar y/o interactuar de otro modo con cualquier información convencional, fuente de información o contacto de comunicaciones Estos servicios son compartidos en el sentido de que son utilizados, ya sea solos, o en combinación o pueden ser utilizados simultáneamente por uno o mas mosaicos Por consiguiente, deberá observarse que en ciertas modalidades son utilizados servicios múltiples en combinación para proporcionar interacciones complejas con cualquier información convencional, fuente de información o contacto de comunicaciones Un ejemplo de un servicio es la funcionalidad necesaria para monitorear una carpeta de correo electrónico, conectándola a un servidor MAPL convencional Otro ejemplo de un servicio, es la funcionalidad para enviar o recibir mensajes por correo electrónico Los servicios relacionados proporcionan funcionalidad para comunicarse con los contactos, o transferir información por medio de cualquier numero de métodos convencionales, tales como por ejemplo, esquemas de comunicaciones de envío de mensajes instantáneos, o de persona a persona Otro ejemplo de un servicio es la funcionalidad para convertir un archivo de texto de un lenguaje al otro Un ejemplo adicional de un servicio es la funcionalidad necesaria para monitorear una base de datos Todavía otros ejemplos de servicios incluyen la funcionalidad para recibir o recuperar datos provenientes de un sitio Web o un servidor remoto Claramente, cualquier método para la interacción con cualquier comunicación, fuente de información o contacto de comunicaciones, puede ser implementado como un servicio compartido para utilizarlo por uno o mas mosaicos Ademas, tal y como se indico anteriormente las instrucciones de cada mosaico incluyen un señalador para uno de un numero de visuahzadores especializados que tienen la capacidad para desplegar en pantalla cualquier tipo de información o contacto de comunicaciones que sea representado por el mosaico En otras palabras, cada mosaico representa una combinación de la información o contacto que el usuario desea rastrear con una definición de la forma en que el usuario desea ver esa información o contacto particular, asi como la capacidad para utilizar cualquiera de un numero de servicios para tener acceso e interactuar con la información o contacto Dicho acceso o interacción se pueden lograr localmente, o por medio de intranets locales, extrañéis, redes locales o inalámbricas, la Internet etc , por medio de cualquier protocolo de comunicaciones convencional Los visualizadores generalmente despliegan el mosaico como una miniatura que se puede volver a dimensionar, o una ventana del tamaño de un icono que tiene la información o los datos de contacto recuperados por medio de uno o mas de los servicios En particular, el visualizador tiene la capacidad de desplegar en pantalla dinámicamente un mosaico que tiene información textual, audible o gráfica que incluye imágenes fijas o vivas, o cualquier combinación de información textual, audible o gráfica Por ejemplo, un tipo de visualizador tiene la capacidad de desplegar en pantalla la información de contacto, por ejemplo, un mosaico de persona", otro tiene la capacidad de desplegar en pantalla información especifica del correo electrónico, tal como por ejemplo, el numero de mensajes recibidos o el numero de mensajes de una fuente particular, otro visualizador esta diseñado para interactuar con una base de datos para proporcionar un resumen de la información particular de la base de datos en la miniatura Los ejemplos adicionales de los tipos de visualizadores incluyen visualizadores con capacidad para desplegar en pantalla imágenes fijas, imágenes de video y un resumen de condiciones de comunicaciones, los resultados de una solicitud a la base de datos, etc Claramente, cualquier tipo de visuahzador puede ser diseñado para que este asociado con cualquier tipo correspondiente de información para asegurar que pueda ser desplegada en pantalla cualquier información posible La barra lateral, tal como se explico con mayor detalle en la Solicitud de Patente Norteamericana No 10/063 296, titulada "Un sistema y proceso para proporcionar un acceso de información dinámica y una advertencia de información , la cual esta incorporada a la presente descripción como referencia La funcionalidad de la barra lateral del espacio de nombre 308 permite que los diseñadores de la aplicación agreguen mosaicos a las barras laterales Las notificaciones (por ejemplo, notificaciones audibles o visuales) son parte del contexto de un sistema de contexto del usuario que, de acuerdo con ciertas modalidades, incluye tres elementos que son comparados para una decisión con respecto a la forma del procesamiento de una notificación El primer elemento es el contexto del usuario (como puede ser proporcionado por el sistema operativo o softwares arbitrarios que lo tienen extendido) El segundo elemento son las reglas del usuario y las preferencias El tercer elemento es la notificación misma (la cual contiene elementos tales como datos y propiedades que pueden coincidir con las reglas del usuario) El sistema de contexto del usuario opera mediante el sistema operativo u otros softwares que declaran los contextos del usuario, después de los corredores del usuario, los contextos del usuario y las reglas Las notificaciones son originadas por otros softwares que invocan ai sistema El contexto del usuario, las reglas y los elementos de la notificación son comparados y luego se toma una determinación con respecto a lo que se debe hacer con la notificación Los ejemplos de varias opciones de lo que se puede hacer con la notificación incluyen, la negativa (por ejemplo, si no se permite que la notificación dibuje o haga ruido o la notificación de que nunca sea vista por el usuario), aplazamiento por ejemplo la notificación es detenida hasta que cambia el contexto del usuario o las reglas del usuario dictan que es apropiado entregarla posteriormente, entrega (por ejemplo, se permite que la notificación sea entregada de acuerdo con el contexto y las reglas del usuario) y enrutamiento (por ejemplo, las reglas del usuario indican que la notificación debe de ser enviada a otro sistema, independientemente de si también se permite que la notificación sea entregada en el sistema presente) En general, el usuario puede estar en una condición que se considera "no disponible en cuyo caso la notificación ya sea que no es entregada o es detenida, hasta que el usuario llega a estar "nuevamente disponible" Por ejemplo, si el usuario esta operando una aplicación de pantalla completa, se puede considerar que el usuario no esta disponible O el usuario puede estar "disponible", pero en una condición tal que la notificación necesita ser modificada para que sea apropiada para el usuario Por ejemplo, si el usuario esta escuchando música o se encuentra en una junta, el usuario puede haber indicado que las notificaciones deben de ser entregadas a la pantalla del usuario pero que el sonido que hacen, deberá ser ya sea mas callado o no haber ruido Tal y como se indico anteriormente, el contexto del usuario puede determinar, en parte, si las notificaciones son mostradas en la pantalla del usuario Cuando una notificación es mostrada, puede ser mostrada basada en ciertos gradientes dentro del contexto del usuario En otras palabras, existen niveles diferentes de invasividad de la forma de las notificaciones giradas que pueden ser especificados Por ejemplo, una notificación normal esta libre para saltar en un área del cliente y obscurecer previamente una ventana Si el usuario se encuentra en un contexto ligeramente restrictivo, la notificación puede estar libre para mostrarse, pero solamente de una manera menos invasiva, de modo que podría no permitírsele aparecer en la parte superior de otra ventana Como otro ejemplo en una modalidad en donde el usuario esta ejecutando una aplicación maximizada, el ajuste por omisión (default) puede ser que esto signifique que el contexto esta ligeramente restringido, y que el usuario ha hecho claramente una manifestación de que quiere que esta aplicación obtenga el área completa del cliente En este ajuste, todavía se puede permitir girar una notificación, pero se puede hacer que solamente aparezca una dentro de la barra lateral En otras palabras, este tipo de invasividad reducida en la forma de envío de notificaciones, disminuye el impacto de la notificación y disminuye la carga cognitiva general Los sistemas del contexto del usuario se explican con mayor detalle en la Solicitud de Patente Norteamericana No 10/402,179, presentada el 3/26/03, titulada Sistema y Método que Utilizan Notificaciones de Prueba", la cual esta incorporada a la presente descripción como referencia La funcionalidad de notificaciones de los espacios de nombre 308, permite a los diseñadores de la aplicación crear sus propias notificaciones y hacer que ellas sean desplegadas en la computadora de escritorio para notificar al usuario, cuando ha sucedido algo que puede ser de ínteres para el usuario (por ejemplo, que se ha recibido un mensaje de correo electrónico, que se ha recibido un mensaje instantáneo, y asi sucesi amente) La funcionalidad de la notificación del espacio de nombre 308 proporciona ademas una localización central para los usuarios para definir sus reglas y preferencias para las notificaciones de aplicaciones múltiples, liberando a los usuarios de la carga de ajustar las mismas reglas y preferencias múltiples vanas veces (una vez por cada una de las aplicaciones múltiples) Adicionalmente, un espacio de nombre de contactos define una colección de controles y diálogos para información de contacto Esta información de contacto puede ser almacenada como partidas en el sistema de almacenamiento Un "contacto generalmente se refiere a cualquier persona, grupo, organización, negocio, hogar, u otro tipo de identidad que se puede identificar La "información de contacto' generalmente se refiere a cualquier información que corresponde a un contacto y que se puede considerar importante para identificar, contactar, tener acceso, corresponder o comunicarse con el contacto La información de contacto es utilizada por una aplicación para realizar una función deseada, tal como por ejemplo, enviar un correo electrónico, iniciar una llamada telefónica, acceder a un sitio Web, iniciar una sesión de juegos, realizar una transacción financiera, y asi sucesivamente Los ejemplos no limitativos de la información de contacto incluyen nombres, alianzas, números telefónicos, direcciones de correo electrónico, direcciones domesticas, elaboración de direcciones para el envío de mensajes instantáneos (IM) y direcciones de la Web La información de contacto también se puede referir a otros tipos de información, tales como la condición de un contacto Por ejemplo, la información que indica que un contacto esta actualmente en linea, o en una linea telefónica también puede ser considerada ampliamente como una información de contacto El espacio de nombre Contacts puede ser parte del espacio de nombre del subsistema de presentación 200, pero no parte del espacio de nombre del Shell 202, tal como los "System Windows Contacts , 'System Windows Controls (los controles 310 de la figura 3), o "System Windows Collaboration Alternativamente, el espacio de nombre de los contactos puede ser parte del espacio de nombre del Shell 202 El espacio de nombre de contactos expande la funcionalidad del espacio de nombre del System Windows, pero no necesita ser implementado como parte del Shell (es decir, no necesita ser parte del espacio de nombre del System Windows Explorer 302) El espacio de nombre de contactos permite que la información de contactos sea ingresada una vez por el usuario que ya ha tenido acceso a aplicaciones múltiples diferentes Por lo tanto, el usuario es liberado de la carga de ingresar la misma información del contacto varias veces (una por cada una de las aplicaciones múltiples) Los controles y diálogos en el espacio de nombre de contactos incluyen • Un dialogo Contact Picker utilizado para permitir que los usuarios seleccionen o escojan un contacto de sus contactos almacenados Por ejemplo, permite que los usuarios seleccionen un contacto al cual sera enviado un mensaje de correo electrónico, o un contacto para una elaboración de mensajes instantánea El usuario puede buscar a través de una lista, por ejemplo, de todos los contactos del usuario almacenados como partidas en el sistema de almacenamiento seleccionar uno o mas de esos contactos El dialogo Contact Picker se explica con mayor detalle en la Solicitud de Patente Norteamericana No 10/324,746 presentada el 12/19/02, titulada "Seleccionador de Contacto", la cual esta incorporada a la presente descripción como referencia • El control Contact Textbox generalmente permite que los usuarios ingresen información de contacto, tal como un nombre en una forma libre (por ejemplo, tecleando el nombre en) y conforme es ingresada la información del contacto el contacto resuelve la información a uno o mas contactos de los contactos almacenados del usuario La información resuelta puede ser desplegada en pantalla, por ejemplo, en un menú que se despliega, o puede ser ingresado automáticamente en una linea de escritura en donde el usuario estuvo ingresando el nombre en la forma libre Un control Contact utilizado para desplegar la información de contacto para los usuarios La edición o el ingreso en la forma libre de la información de contacto no esta soportada por este control EJEMPLOS DE LOS ELEMENTOS DEL ESPACIO DE NOMBRE Esta sección incluye tablas múltiples que describen los ejemplos de elementos que pueden ser expuestos por los espacios de nombre de ejemplo (por ejemplo, espacios de nombre en el espacio de nombre del subsistema de presentación 200 de la figura 3) Estos nombres expuestos pueden incluir, por ejemplo, clases, interfases, enumeraciones y delegados Se puede apreciar que los elementos descritos en estos ejemplos, son solamente ejemplos, y que pueden ser expuestos otros elementos alternativamente por los espacios de nombre Deberá apreciarse que en algunas de las descripciones de los espacios de nombres siguientes, las descripciones de ciertas clases, interfases, enumeraciones y delegados se dejan en blanco Se pueden encontrar descripciones mas completas de estas clases, interfases, enumeraciones y delegados en el asunto materia de los discos compactos que almacenan el SDK Svstem Windows Explorer Controls Las siguientes tablas hacen una lista de los ejemplos de los elementos expuestos por el espacio de nombre System Windows Explorer Controls Clases DefauItCommandEventArqs Contiene datos del evento para el evento DefauItCommandEvent ExplorerView Permite que un usuano vea la información acerca del contenido de las carpetas FolderSelectionChanqedEventArqs Contiene datos del evento para el evento FolderSelectionChangedEvent IncludeltemEventArgs Contiene datos del evento para el evento IncludeltemEvent ItemVerbModifyEventArgs Inicializa un nuevo caso de la clase ItemVerbModifyEventArqs NaviqationCompleteEventArqs Contiene datos del evento para el evento NaviqationCompleteEvent NavigationFailedEventArgs Contiene datos del evento para el evento NavigationFailedEvent NaviqationPendinqEventArqs Contiene datos del evento para el evento NavigationPendin Event Enumeraciones FolderViewFlaqs Indica las propiedades de visuahzacion para el Expío rerView FolderViewMode Indica la modalidad de visuahzacion para el ExplorerView Delegados DefauItCommandEventHandler Representa un método que administrara el DefauItCommandEvent FolderSelectionC anaedEventHandler Representa un método que administrara el evento FolderSelectionChangedEvent IncludeltemEventHandler Representa un método que administrara el evento IncludeltemEvent ItemVerb odifyEventHandler Representa un método que administrara el evento ItemVerbModifvEvent NavigationCompleteEventHandler Representa un método que administrara el evento NaviqationCompleteEvent NavigationFailedEventHandler Representa un método que administrara el evento NavigationFailedEvent NavigationPendingEventHandler Representa un método que administrara el evento NaviqationPendinqEvent System Windows Explorer Dialogs Las tablas siguientes son una lista de los ejemplos de los elementos expuestos por el espacio de nombre System Windows Explorer Díale gs Clases ColorDialoq CommonDialog DialoaControlltemSelectedEventArqs FileDialog Una clase abstracta que es utilizada como la clase de ongen del QpenFileDialoq y el SaveFileDialoqBase FileDialogCheckButton Representa un control de cuadro de venficacion que puede ser colocado en un FileDialoq FileDialoaComboBox FileDialogContainerControIBase Una clase abstracta que es utilizada como la clase de ongen del OpenFileDialog y el SaveFileDialogBase FileDialooComboBox, FileDialoqODenDropDown, FileDialoqRadioButtonGroup, y FileDialoqToolbarMenu FileDialogControIBase Una clase abstracta que es utilizada como la clase de FileDialogCheckButton, FileOialoqEditBox, FileDialooPushButton, v FileDialoqContainerControIBase FileDialoqControlltem FileDialogEditBox Representa un control de cuadro de texto que puede ser colocado en un FileDialoq FileDialoqQpenDropDown FileDialogPushButton Representa un control de botón que puede ser colocado en un FileDialog FileDialogRadioButtonGroup FileDialo ToolbarMenu FileOkEventArqs FileType OpenFileDialoq Permite que un usuario seleccione para abrir uno o mas archivos Esta clase no puede ser heredada SaveAsFileDialoq Hace posible que un usuario seleccione una localización en la cual guardar un archivo, y especificar un nombre de archivo Esta clase no puede ser heredada SaveFileDialog Permite que un usuario seleccione una localización en la cual guardar un archivo Esta clase no puede ser heredada SaveFileDialogBase Una clase abstracta que es utilizada como la clase de ongen de SaveASFileDialog y SaveFileDialog Enumeraciones FileDialoaLavout TileAttnbutes Delegados DialoqControlltemSelectedEventHandler FileOkEventHandler Svstem Windows Desktop Las tablas siguientes son una lista de los ejemplos de los elementos expuestos por el espacio de nombre System Windows Desktop Este espacio de nombre contiene los elementos que comprenden la barra lateral y las notificaciones Clases AnaloqClockPanel Appbar AreaButton BaseComTile BaseSidebarClockSettinqs BaseTile Una clase abstracta utilizada como la clase de ongen de una implementacion de mosaico personalizado de barra lateral BasketControl CalendarElement Calendarlmages ChildrenWontñtArgs ClockHacks ClockPanel DataSourceEventArgs Representa los datos del evento pasados de una fuente de datos DigitalDateTimeElement DraqButton DraaControlWindow DraaaableButton DragWindow DropArgs DropEventArgs ExtraSpaceArgs FillAlphaPresenter FilllmageResourcePresenter FillPanel FillPresenter Flvout FlvoutLinkClickEventArgs Representa datos de evento presentados a un RMAActionEventHandler en respuesta a un evento que se ongmo desde un enlace opcional encontrado en la parte infenor de una vista de vuelo de los mosaicos de la barra lateral FlvoutPresenter FlvoutStuff FocusableButton FocusWithinWorkaroundHelper FolderContentsChangedEventArgs Representa datos del evento pasados a un FolderContentsChangedEvent Handler en respuesta a un cambio en el contenido de la carpeta GlobalSettino HackBorder Hacklmage ImaqeButton ImageResource ImaqeResourcePresenter ItemControl ItemToolbarControl ListMakerControl MenuStuff NativeResource NativeResourceHelper NativeResources NativeResourceTypeConverter NormalButton Notifi catión Representa un mensaje y sus datos asociados que envía el sistema al usuario en una pieza de una interfase del usuano (Ul) Notifi cationArea NotrficationButton Define un botón que aparece en una notificación Notifi cationClickedEventArqs Contiene datos asociados con un evento de clic en una ventana de notificación NotificationContext Declara si una aplicación esta actualmente en una condición particular Esta condición es utilizada como parte de la definición del contexto del usuario NotificationTimerPresenter NotifvCompleteEventArgs NotifyWindow OptionsButton OuterTile OverflowableCollection OverflowableControlCollection OverflowPanel OverflowPresenter OverFlowWrapper Panellnfo ProgressBar QuickLaunchTile RMAActionEventArqs Representa datos del evento generados por una Aplicación Rica Minimizada (RMA) Consumida por un RMAActionEventHandler RMAData SetDataArravEventArqs Representa datos del evento generado por una adaptación de datos y los envía a un SetDataArravEventHandler Sidebar SidebarAlarmClock SideBarClock SidebarClockSettmgs SlideShowTile StackAlphaPresenter StacklmaaeResourcePresenter StartButton SvncHelper SvncItemBar SvncTile Taskbar TaskCheyron TaskGroup Taskltem TaskList TaskOverflow TaskOverflowableControlCollection TaskPresenter TestTile TestTimeZone TextElementFontlnfo Theme ThemeHelper ThemeHelperOId Themelmage ThemelmaqeTvpeConverter ThemeResources Tile TileCollection TileOverflow TileThumb TileThumbDotNet Timer TimerStuff TimeZone ViewStatusControl WebHostEventArqs WmdowOriqin WindowOriginOId WindowStuff Interfases ICOMDataSourceHandler Utilizada para crear y comunicarse con una fuente de datos implementada en un código sin administración IQverflow IQverflowList ISidebar Proporciona el acceso a la barra lateral, la cual aloja mosaicos individuales La computadora central es responsable de la barra lateral para abrir y cerrar los archivos, desplegando menus de corte de nombre y respondiendo eventos que comprenden los mosaicos individuales ISidebarAlarm Enumeraciones AlarmState BasketFIaqs DraqWmdowPos InvokeFolderActionEnum Enumeración para definir que hacer cuando un usuario invoca un ItemControl para una carpeta Utilizado con InvokeFolderAction y ItemControlInvokeFolderAction RMAAction Constantes utilizadas con la propiedad Action para definir una acción de un evento SelectionModeEnum Delegados ChildrenWontFitHandler DocumentCompleteEventHandler DropEventHandler DropHandler DummvDelegateToSetupAppDomainProperlv ExtraSpaceHandler FlvoutClosinQEventHandler FlvoutLinkClickEventHandler Representa el método que administra los eventos FlyoutLinkClickEvent FolderContentsChanqedEventHandler NaviqateErrorEventHandler NotificationChckedEventHandler Representa el método que administra los eventos NotificationChckedEvent NotifvCompleteEventHandler Representa el método que administra los eventos NotifvCompleteEvent RMAActionEventHandler Representa el método que administra los eventos RMAActionEvent SetDataArravEventHandler Representa el método que administra los eventos SetDataArravEventHandler Svstem Windows Controls Proporciona clases e interfases utilizadas por los componentes del shell Las tablas siguientes enumeran los ejemplos de los elementos expuestos por el espacio de nombre System Windows Controls Clases ContactControl ContactPickerDialoq ContactPropertvRequest ContactPropertvRequestCollection ContactSelection ContactSelectionCollection ContactTextBox ContactTextBoxSelectionChanqedEventArqs ContactTextBoxTextChanqedEventArqs ContactTextBoxTextResolvedEventAr s IncludeContacEventArqs IteratedEventAras Iterator OKCancelAppIvEventArqs OKCancelApplyStrip Enumeraciones ContactControlPropertvPosition ContactPickerDialoqLavout ContactPropertvCate orv ContactPropertvType ContactType OKCancelAppIvTvpe Delegados ContactTextBoxSelecttonChanqedEventHandler ContactTextBoxTextChanaedEventHandIer ContactTextBoxTextResolvedEventHandler IncludeContactEventHandler IteratedEventHandler OKCancelAppIvEventHandler OpenedEventHandler SISTEMA DE COMPUTO Y AMBIENTE DE EJEMPLO La figura 4 ilustra un ejemplo de un ambiente de computo adecuado 400 dentro del cual puede ser implementado el sistema de programación 132 (ya sea completa o parcialmente) El ambiente de computo 400 puede ser utilizado en las arquitecturas de computadora y redes aquí descritas El ambiente de computo de ejemplo 400 es solamente un ejemplo de un ambiente de computo y no pretende sugerir cualquier limitación en lo que se refiere al alcance del uso o funcionalidad de las arquitecturas de las computadoras y las redes Ni deben de ser interpretados los ambientes de computo 400 como que tienen dependencia alguna o requerimientos relacionados con cualquiera o una combinación de componentes ilustrados en el ambiente de computo de ejemplo 400 El sistema 132 puede ser implementado con otros numerosos ambientes del sistema de computo de uso general o para propósitos especiales o configuraciones Los ejemplos de los sistemas, ambientes y/o configuraciones de computo bien conocidos que pueden ser adecuados para utilizarlos incluyen, pero no están limitados a, computadoras personales, computadoras de servidor sistemas de multiprocesador, sistemas basados en microprocesadores, PCs de redes, minicomputadoras computadoras de estructura principal, ambientes de computo distribuidos que incluyen cualquiera de los sistemas o aparatos anteriores y asi sucesivamente Las versiones compactas o subconjuntos del trabajo de estructura también pueden ser implementados en los clientes de recursos limitados, tales como telefonos celulares asistentes personales digitales computadoras portátiles, y otros aparatos de comunicación/computo El sistema 132 puede ser descrito en el contexto general de las instrucciones ejecutables por computadora, tales como módulos de software, siendo ejecutados por una o mas computadoras o aparatos Generalmente, los módulos de software incluyen rutinas, softwares, objetos componentes, estructuras de datos, etc , que realizan tareas particulares o implementan tipos de datos abstractos particulares El trabajo de estructura 132 también puede ser practicado en los ambientes de computo distribuidos, en donde las tareas son realizadas por aparatos de procesamiento remotos que están enlazados a través de redes de comunicaciones En un ambiente de computo distribuido, los módulos del software pueden estar localizados, tanto en los medios de almacenamiento de la computadora locales como remotos incluyendo los aparatos de almacenamiento de memoria El ambiente de computo 400 incluye un aparato de computo de uso general en la forma de una computadora 402 Los componentes de la computadora 402 pueden incluir, pero no están limitados a, uno o mas procesadores o unidades de procesamiento 404, una memoria del sistema 406, un bus del sistema 408 que conecta varios componentes del sistema incluyendo el procesador 404 a la memoria del sistema 406 El bus del sistema 408 representa uno o mas de varios tipos posibles de estructuras del bus, incluyendo un bus de memoria o un controlador de memoria, un bus periférico, un puerto de gráficos acelerado y un procesador o bus local que utiliza cualquiera de una variedad de arquitecturas del bus A modo de ejemplo, dichas arquitecturas pueden incluir un bus de Arquitectura Estándar de la Industria (ISA), un bus de la Arquitectura de Microcanal (MCA), un bus ISA Mejorado (EISA), un bus local de la Asociación de Estándares de Componentes Electrónicos de Video (VESA) y un bus de Interconexión de Componentes Periféricos (PCI), conocido como un bus Mezzanine La computadora 402 generalmente incluye una variedad de medios legibles por computadora Dichos medios pueden ser cualquier medio disponible al que se pueda acceder por medio de la computadora 402 e incluye, tanto medios volátiles como no volátiles y tanto medios removibles como no removibles La memoria del sistema 406, incluye una memoria legible por computadora en la forma de una memoria volátil, tal como una memoria de acceso aleatorio (RAM) 410, y/o, una memoria no volátil (tal como una memoria solo de lectura (ROM) 412 Un sistema básico de entrada/salida (BIOS) 414, contiene las rutinas básicas para ayudar a transferir información entre los elementos dentro de la computadora 402, tal como durante el arranque, y es almacenado en la memoria ROM 412 La memoria RAM 410 contiene generalmente módulos de datos y/o software a los que se puede acceder inmediatamente y/o que son operados actualmente sobre una unidad de procesamiento 404 La computadora 402 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volatiles/no volátiles A modo de ejemplo, la figura 4 ilustra una unidad un disco duro 416 para leer y escribir en un medio magnético no removible, no volátil (no mostrado), una unidad de disco magnético 418 para leer y escribir en un disco magnético removible, no volátil 420 (por ejemplo, un diskette"), y una unidad de disco óptico 422 para leer y/o escribir en un disco óptico removible no volátil 424, tal como un CD-ROM, DVD-ROM, u otro medio óptico La unidad del disco duro 416, la unidad del disco magnético 418, y la unidad del disco óptico 422 son conectadas cada una al bus del sistema 408 por una o mas interfases de medios de datos 426 Alternativamente la unidad del disco duro 416, la unidad del disco magnético 418 y la unidad del disco óptico 422 pueden ser conectadas al bus del sistema 408 por medio de una o mas interfases (no mostradas) Las unidades de discos y sus medios legibles por computadora asociados proporcionan el almacenamiento no volátil de las instrucciones legibles por computadora, estructuras de datos, módulos de software y otros datos para la computadora 402 Aunque el ejemplo ilustra un disco duro 416, un disco magnético removible 420 y discos ópticos removibles 424, se puede apreciar que también pueden ser utilizados otros discos magnéticos de los medios legibles por computadora que pueden almacenar datos a los que se puede acceder por una computadora, tales como los cassettes magnéticos o los aparatos de almacenamiento magnético, las tarjetas de memoria instantánea, el CD-ROM, los discos digitales versátiles (DVD), u otros almacenamientos ópticos, las memorias de acceso aleatorio (RAM), las memorias solo de lectura (ROM), las memorias solo de lectura que se pueden programar y que se borran eléctricamente (EEPROM), y similares, para implementar los sistemas y ambientes de computo de ejemplo Cualquier numero de módulos de software puede ser almacenado en el disco duro 416, el disco magnético 420, el disco óptico 424, el ROM 412, y/o RAM 410, incluyendo a modo de ejemplo, un sistema operativo 426, uno o mas softwares de aplicación 428, otros módulos de software 430 y los datos del software 432 Cada uno del sistema operativo 426, uno o mas softwares de aplicación 428 otros módulos de software 430 y datos del software 432 (o alguna combinación de los mismos) puede incluir elementos de trabajo del sistema de programación 132 Un usuario puede ingresar comandos e información en la computadora 402 por medio de aparatos de entrada, tales como el teclado 434 o un aparato de señalamiento 436 (por ejemplo, un 'ratón ) Otros aparatos de entrada 438 (no mostrados específicamente) pueden incluir un micrófono, una palanca, una almohadilla de juegos, un plato de satélite, un puerto de serie, un escáner o similares Estos y otros aparatos de entrada son conectados a la unidad de procesamiento 404, por medio de las interfases de entrada/salida 440 que están conectadas al bus del sistema 408 pero pueden ser conectadas por otra inferíase y estructuras de bus, tales como un puerto paralelo, un puerto de juego, o un bus de serie universal (USB) También pueden ser conectados un monitor 442 u otro tipo de aparato de pantalla al bus del sistema 408 por medio de una interfase, tal como un adaptador de video 444 Ademas del monitor 442, otros aparatos periféricos de salida pueden incluir componentes tales como bocinas (no mostradas) y una impresora 446, la cual puede ser conectada a la computadora 402 por medio de interfases de entrada/salida 440 La computadora 402 puede operar en un ambiente de red utilizando conexiones lógicas a una o mas computadoras remotas tales como un aparato de computo remoto 448 A modo de ejemplo, el aparato remoto 448 puede ser una computadora personal, una computadora portátil, un servidor, un enrutador, una computadora de red, un aparato semejante, u otros nodos de red común y asi sucesivamente El aparato computo remoto 448 esta ilustrado como una computadora portátil que puede incluir muchos o todos los elementos y características aquí descritos en relación con la computadora 402 Las conexiones lógicas entre la computadora 402 y la computadora remota 448 se ilustran como una red de área local (LAN) 450, y una red de área ancha general (WAN) 452 Dichos ambientes de red son un lugar común en las oficinas las redes de computo anchas de empresa, intranets y la I nternet Cuando es implementada en un ambiente de red LAN la computadora 402 es conectada a una red local 450 por medio de una interfase de red o adaptador 454 Cuando es implementada en un ambiente de red WAN, la computadora 402 generalmente incluye un modem 456 u otros medios para establecer comunicaciones por una red ancha 452 El modem 456, el cual puede ser interno o externo a la computadora 402, puede ser conectado al bus del sistema 408 por medio de interfases de entrada/salida 440 u otros mecanismos apropiados Deberá apreciarse que las condiciones de red ilustradas son de ejemplo, y que se pueden emplear otros medios para establecer enlaces de comunicación entre las computadoras 402 y 448 En un ambiente de red, tal como la que se ilustro con el ambiente de computo 400, los módulos del software ilustrados en relación con la computadora 402, o porciones de los mismos, pueden ser almacenados en un aparato de almacenamiento de memoria remoto A modo de ejemplo, los softwares de aplicación remota 458 residen en un aparato de memoria de la computadora remota 448 Para propósitos de ilustración, los softwares de aplicación y otros componentes del software que se pueden ejecutar, tales como el sistema operativo aquí se ilustran como bloques separados, aunque deberá reconocerse que dichos softwares y componentes residen varias veces en componentes de almacenamiento diferentes del aparato de computo 402 y son ejecutados por el procesador de datos de la computadora Una im plem entacion del trabajo de estructura 132, y particularmente, el API 142 o las llamadas hechas al API 142, pueden ser almacenados o transmitidos por alguna forma de medios legibles por computadora Los medios legibles por computadora pueden ser cualesquiera medios disponibles a los que se puede acceder por la computadora A modo de ejemplo, y no de limitación, el medio legible por computadora puede comprender, el "medio de almacenamiento de computadora", y 'medio de comunicaciones El "medio de almacenamiento de computadora" incluye medios volátiles y no volátiles, removibles y no removibles, implementados en cualquier método o tecnología para el almacenamiento de información, tal como las instrucciones legibles por computadora, las estructuras de datos, módulos de software, u otros datos Los medios de almacenamiento de computadora incluyen, pero no están limitados a memorias RAM, ROM, EEPROM, memoria instantánea, u otra tecnología de memoria, CD-ROM, discos digitales versátiles (DVD), u otro almacenamiento óptico, cassettes magnéticos, cintas magnéticas, almacenamiento de disco magnético u otros aparatos de almacenamiento magnéticos, o cualquier otro medio el cual puede ser utilizado para almacenar la información deseada y al cual se puede acceder por medio de una computadora Los "medios de comunicación generalmente incorporan instrucciones legibles por computadora, estructuras de datos, módulos de software u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte Los medios de comunicación también incluyen cualquier medio de entrega de información El termino "señal de datos modulada significa una señal que tiene una o mas de sus características ajustadas o cambiadas de un modo tal como para codificar la información en la señal A modo de ejemplo, y no de limitación, los medios de comunicación incluyen medios cableados, tales como redes cableadas o conexiones de cable directo, y medios inalámbricos, tales como acústicos, RF, infrarrojos y otros medios inalámbricos También están incluidas las combinaciones de cualquiera de las anteriores dentro del alcance de los medios legibles por computadora Alternati amente, pueden ser implementadas porciones del trabajo de estructura en el hardware o en una combinación de hardware, software y/o firmware Por ejemplo, uno o mas circuitos integrados específicos de aplicación (ASICs) o aparatos lógicos programables (PLDs), podrían ser diseñados o programados para implementar una o mas porciones del trabajo del sistema Una interfase de programación (o mas simplemente, interfase) puede ser vista como cualquier mecanismo, proceso, protocolo para posibilitar uno o mas segmentos de código para que se comuniquen con o tengan acceso con la funcionalidad proporcionada por uno o mas de otros segmentos de códigos Alternativamente, una interfase de programación puede ser vista como uno o mas mecanismos, métodos, llamadas de función, módulos, objetos etc , de un componente de un sistema con capacidad para la conexión de comunicación con uno o mas mecanismos métodos, llamadas de función, módulos, etc , de otros componentes El termino segmento de código" en la oración anterior pretende incluir una o mas instrucciones o lineas de códigos, e incluye, por ejemplo, módulos de código, objetos, subrutinas, funciones, y asi sucesivamente, independientemente de la terminología aplicada o de si los segmentos de código son recolectados por separado, o si los segmentos de código están proporcionados por una fuente, intermediario o código de objeto, si los segmentos de código son utilizados en un sistema de tiempo de ejecución o proceso, o si ellos están localizados en la misma o maquinas diferentes o distribuidos en maquinas múltiples o si la funcionalidad representada por los segmentos de código son implementados en su totalidad en el software, en su totalidad en el hardware o una combinación del hardware y el software Como una noción, una interfase de programación puede ser vista genéricamente, tal y como se muestra en la figura 5 o en la figura 6 La figura 5 ilustra una interfase Interfasel como un conducto a través del cual se comuniquen el primer y segundo segmentos de código La figura 6 ilustra una interfase como que comprende los objetos de mterfase 11 y 12 (los cuales pueden o no ser parte del primer y segundo segmentos de códigos), los cuales hacen posible que el primer y segundo segmentos de código de un sistema se comuniquen por el medio M En la vista de la figura 6, se puede considerar como objetos de interfase 11 y 12 como interfases separadas del mismo sistema y uno puede también considerar que los objetos 11 y 12 mas el medio comprende la interfase Aunque las figuras 5 y 6 muestran un flujo bidireccional e interfase en cada lado del flujo, ciertas implementaciones pueden tener solamente flujo de información en una dirección (o no tener flujo de información tal y como se describirá mas adelante) o pueden solamente tener un objeto de interfase por un lado A modo de ejemplo, y no de limitación términos tales como la programación de aplicación o inferíase de software (API), punto de entrada, método, función, subrutina, llamado de procedimiento remoto, mterfase de modelo de objeto del componente (COM), están comprendidos dentro de la definición de mterfase de programación Los aspectos de dicha mterfase de programación pueden incluir el método por medio del cual el primer segmento de códigos transmite la información (en donde información es utilizado en su sentido mas amplio e incluye datos, comandos, solicitudes, etc ) con el segundo segmento de código, por medio de dicho método el segundo segmento de código recibe la información y la estructura, secuencia sintaxis, organización, esquema, programación y contenido de la información En este aspecto, el medio de transporte subyacente por si mismo puede no ser importante para la operación de la interfase, si el medio es cableado o inalámbrico, o una combinación de ambos, siempre que la información sea transmitida de la manera definida por la interfase En ciertas situaciones, la información puede no ser pasada en una o ambas direcciones en el sentido convencional, ya que una transferencia de información puede, ser ya sea por medio de otro mecanismo (por ejemplo, la información colocada en una memoria intermedia, archivo, etc , separado del flujo de información entre los segmentos de código), o no existente, tal como cuando un segmento de código simplemente tiene acceso a la funcionalidad realizada por el segundo segmento de código Cualquiera o todos de estos aspectos pueden ser importantes en una situación determinada, por ejemplo, dependiendo de si los segmentos de código son parte de un sistema en una configuración conectada estrechamente o conectada de manera suelta y de este modo esta lista debe ser considerada como ilustrativa y no limitativa Esta noción de una interfase de programación es conocida por aquellos expertos en la técnica, y es clara a partir de la descripción detallada anterior de la presente invención Sin embargo, existen otros medios para implementar una inferíase de programación, y a menos que estén incluidos expresamente, estos también deben estar comprendidos por las reivindicaciones que se establecen al final de la presente descripción Dichos otros medios pueden parecer mas sofisticados o complejos de la vista simplificada de las figuras 5 y 6, pero sin embargo, ellos realizan una función similar para realizar el mismo resultado general Ahora describiremos brevemente algunas implementaciones alternativas de ilustración de una interfase de programación A FACTORIZACION Una comunicación de un segmento de código a otro puede ser realizada indirectamente, dividiendo la comunicación en múltiples comunicaciones separadas Esto es ilustrado esquemáticamente en las figuras 7 y 8 Tal y como se muestra, algunas interfases pueden ser descritas en términos de conjuntos visibles de funcionalidad Por lo tanto, la funcionalidad de la interfase de las figuras 5 y 6 puede ser factonzada para lograr el mismo resultado, justamente como uno podría proporcionarle matemáticamente 24 o 2 por 2 por 3 por 2 Por consiguiente, tal y como se ilustro en la figura 7, la función proporcionada por la Interfasel puede ser subdividida para convertir las comunicaciones de la interfase en interfases múltiples InterfaselA, InterfaselB, InterfaselC etc , aunque se logra el mismo resultado Tal y como se ilustro en la figura 8, la función proporcionada por la interfase 11 puede ser subdividida en las interfases múltiples 11a, 11b, 11c, etc , mientras se logra el mismo resultado De un modo similar, la interfase 12 del segundo segmento de códigos, el cual recibe la información del primer segmento de códigos puede ser factorizada en mterfases múltiples I2a, I2b, I2c, etcétera Cuando se hace la factorizacion , el numero de mterfases incluidas con el primer segmento de código no necesita coincidir con el numero de mterfases incluidas con el segundo segmento de códigos En cualquiera de los casos de las figuras 7 y 8, el espíritu funcional de las mterfases Interfasel e 11, permanecen iguales que en las figuras 5 y 6, respectivamente La factorizacion de las mterfases también puede seguir propiedades asociativas, conmutativas u otras matemáticas, de modo que la factorizacion pueda ser difícil de reconocer Por ejemplo, la ordenación de operaciones puede no ser importante, y por consiguiente, una función llevada a cabo por una interfase puede ser llevada a cabo, bien por anticipado antes de alcanzar la interfase, por otra pieza de código o mterfase o realizada por un componente separado del sistema Ademas, un experto en la técnica del arte de programación puede apreciar que existe una variedad de medios para hacer diferentes llamadas de función para lograr el mismo resultado B REDEFINICION En algunos casos, puede ser posible ignorar, agregar, o volver a definir ciertos aspectos (por ejemplo, parámetros) de una interfase de programación mientras que todavía se logra el resultado pretendido Esto se ilustra en las figuras 9 y 10 Por ejemplo, supongamos que la Interfasel de la figura 5 incluye una función de elevación al cuadrado de llamada (entrada, precisión, salida), una llamada que incluye tres parámetros, entrada, precisión y salida, y la cual es emitida desde el primer segmento de código al segundo segmento de código Si el parámetro medio de precisión no es preocupante para un escenario determinado, tal y como se muestra en la figura 9, este podría también ser ignorado y aun reemplazado por un parámetro sin importancia (en esta situación) También se pueden agregar un parámetro adicional que no es de importancia En cualquier caso, se puede lograr la funcionalidad de elevación al cuadrado, siempre y cuando la salida sea regresada después de que la entrada sea elevada al cuadrado por el segundo segmento de código La precisión puede muy bien ser un parámetro importante para alguna porción descendente o de otro tipo, del sistema de computo, sin embargo, una vez que se ha reconocido que la precisión no es necesaria para el proposito estrecho de calcular el cuadrado, esta puede ser reemplazada o ignorada Por ejemplo, en vez de pasar un valor valido de precisión , se podría pasar un valor menos importante, tal como la fecha de nacimiento, sin afectar de manera adversa el resultado De un modo similar, y tal como se muestra en la figura 10, la interfase 11 es reemplazada por la interfase 11 , definida nuevamente para ignorar o agregar parámetros a la interfase La inferíase 12 puede ser redefinida de un modo similar con la interfase 12', redefinida para ignorar los parámetros innecesarios, o los parámetros que pueden ser procesados en alguna otra parte Aquí, el punto es que en algunos casos, una interfase de programación puede incluir aspectos, tales como parámetros que no son necesarios para algún proposito, y de este modo, ellos pueden ignorados o redefinidos, o procesados en alguna otra parte para otros propósitos C CODIFICACION EN LINEA También puede ser factible unir algunas y todas las funcionalidades de dos módulos de código separados, de modo que la 'interfase" entre ellos cambie de forma Por ejemplo, la funcionalidad de las figuras 5 y 6 puede ser convertida en la funcionalidad de las figuras 11 y 12, respectivamente En la figura 11 el primer y segundo segmentos de códigos previos de la figura 5, son unidos en un modulo que contiene ambos de ellos En este caso, los segmentos de código todavía pueden estarse comunicando entre ellos, pero la inferíase puede estar adaptada a una forma la cual es mas adecuada para un solo modulo Por lo tanto, y por ejemplo, las declaraciones de llamada y regreso formales pueden no ser necesarias ya, pero todavía pueden estar en efecto los procesamientos o respuestas similares siguiendo la Interfasel De un modo similar y como se muestra en la figura 12, parte de (o toda) la interfase 12 de la figura 6 puede ser escrita en linea dentro de la interfase 11 para formar la interfase 11 Tal y como se ilustro, la interfase 12 es dividida en I2a e 12 b , y la porción de la interfase I2a ha sido codificada en linea con la interfase 11 para formar la interfase 11' Para un ejemplo concreto, considerar que la interfase 11 de la figura 6 realiza una elevación al cuadrado de llamada de función (entrada, salida) la cual es recibida por la interfase 12, la cual después del procesamiento del valor pasado por la entrada (para elevarlo al cuadrado) por el segundo segmento de código, vuelve a pasar el resultado de la elevación al cuadrado con la salida En dicho caso, el procesamiento realizado por el segundo segmento de códigos (elevado al cuadrado a la entrada) puede ser realizado por el primer segmento de código sin una llamada a la interfase D SEPARACION Una comunicación de un segmento de código a otro puede ser llevada a cabo indirectamente, dividiendo la comunicación en comunicaciones múltiples separadas Esto es ilustrado esquemáticamente en las figuras 13 y 14 Tal y como se muestra en la figura 13, se proporcionan una o mas piezas de middleware (Interfase de Separación, ya que separa las funciones de funcionalidad y/o interfase de la interfase original) para convertir las comunicaciones de la primera interfase, Interfasel, para volverlas a formar en una interfase diferente, en este caso las interfases lnterfase2A lnterfase2B, e lnterfase2C Esto se podría hacer, por ejemplo, en los casos en que existe una base instalada de aplicaciones diseñada para comunicarse con, digamos un sistema operativo de acuerdo con un protocolo de la Interfasel, pero entonces el sistema operativo es cambiado para utilizar una interfase diferente, en este caso las interfases lnterfase2A, lnterfase2B, e lnterfase2C El punto es que la interfase original utilizada por el segundo segmento de códigos es cambiada, de modo que ya no es compatible con la interfase utilizada por el primer segmento de códigos, y de este modo, se utiliza un intermediario para hacer que las interfases vieja y nueva sean compatibles De un modo similar, tal y como se muestra en la figura 14, un tercer segmento de código puede ser introducido con la interfase de separación DI1 para recibir las comunicaciones de la interfase 11 y separarlas de la interfase DI2, para transmitir la funcionalidad de interfase a, por ejemplo, las interfases I2a, e 12 b , rediseñadas para funcionar con el DI2, pero proporcionan el mismo resultado funcional De un modo similar, las interfases DI1 y DI2 pueden funcionar juntas para traducir la funcionalidad de las interfases 11 e 12, de la figura 6 a un nuevo sistema operativo mientras que se proporciona un resultado funcional igual o similar E SOBRE ESCRITURA Todavía otra variante posible es volver a escribir dinámicamente el código para reemplazar la funcionalidad de la interfase con algo mas, pero lo cual logra el mismo resultado general Por ejemplo, puede existir un sistema en el cual el segmento de código presentado en un lenguaje intermedio (por ejemplo, Microsoft IL, Java ByteCode, etc ) es proporcionado en un recopilador o interpretador Justo-a-Tiempo (JIT), en un ambiente de ejecución (tal como el que se proporciona por la metodología Net, el ambiente de tiempo de ejecución Java u otros ambientes de tiempo de ejecución similares) El recolector JIT puede ser escrito de modo que convierta dinámicamente las comunicaciones del primer segmento de código al segundo segmento de código, por ejemplo, que los conforme a una interfase diferente como puede ser requerido por el segundo segmento de código (ya sea el segundo segmento de código original o uno diferente) Esto se ilustra en las figuras 15 y 16 Como se puede apreciar en la figura 15, este método es similar al escenario de Separación descrito anteriormente Se podría hacer, por ejemplo, en los casos en que la base de aplicaciones instaladas están diseñadas para comunicarse con un sistema operativo de acuerdo con un protocolo de Interfasel, pero entonces el sistema operativo es cambiado para utilizar una interfase diferente El Recolector JIT podría ser usado para darle forma a las comunicaciones al vuelo de las aplicaciones básicas instaladas a la mterfase nueva del sistema operativo Tal y como se ilustra en la figura 16, este método para volver a escribir dinámicamente la interfase(s) puede ser aplicado para factorizar dinámicamente, o también alterar de otro modo la mterfase También deberá observarse que los escenarios anteriormente descritos para lograr el mismo resultado o un resultado similar como una mterfase por medio de modalidades alternativas, puede ser combinado de diferentes maneras, en serie y/o en paralelo, o con otros códigos de intervención Por lo tanto, las modalidades alternativas presentadas anteriormente, todas se incluyen mutuamente y pueden ser mezcladas, emparejadas y combinadas para producir el mismo escenario o escenarios equivalentes a los escenarios genéricos presentados en las figuras 5 y 6 También deberá observar que, igual que con la mayoría de las construcciones de programación, existen otros medios similares para lograr la misma funcionalidad o una funcionalidad similar de una mterfase, la cual puede no haber estado descrita en el presente documento, pero sin embargo, están representados por el espíritu y alcance de la presente invención, es decir, deberá observarse que la funcionalidad esta por lo menos representada parcialmente por, y que los resultados ventajosos los hace posible una inferíase que subyace al valor de una inferíase Conclusión Aunque la presente invención ha sido descrita en un lenguaje especifico para características estructurales y/o las acciones metodológicas, deberá quedar entendido que la presente invención definida en las reivindicaciones adjuntas, no esta necesariamente limitada a las características y acciones especificas descritas En vez de ello, las características y acciones especificas se describen como formas de ejemplo para implementar la invención reclamada

Claims (1)

  1. REIVINDICACIONES 1 Una interfase de programación incorporada en uno o mas medios legibles por computadora, la cual comprende un primer grupo de servicios relacionado con controles de interfase del usuario que se pueden volver a utilizar, un segundo grupo de servicios relacionado con diálogos de interfase del usuario y ayudas automáticas en la interfase del usuario, un tercer grupo de servicios relacionado con la extensión de la funcionalidad de la interfase del usuario y un cuarto grupo de servicios relacionado con la extensión de la funcionalidad de una computadora de escritorio de una interfase del usuario 2 Una interfase de programación tal y como se describe en la reivindicación 1, caracterizada porque el primer grupo de servicios incluye un primer control que encapsula la experiencia de almacenamiento del usuario, un segundo control que permite que una partida sea desplegada en pantalla de una manera definida por la aplicación, un tercer control que permite que las partidas sean agregadas a una barra lateral de una computadora, un cuarto control que permite que las partidas sean agregadas a una lista, y un quinto control que permite las imágenes de vista previa de las partidas para ser desplegadas 3 Una interfase de programación tal y como se describe en la reivindicación 1, caracterizada porque el segundo grupo de servicios incluye un primer dialogo que permite que sean abiertos y guardados archivos y carpetas, una primera ayuda automática que permite que sean escritos los discos ópticos, y una segunda ayuda automática que facilita el envío de imágenes por correo electrónico 4 Una interfase de programación tal y como se describe en la reivindicación 1, caracterizada porque el tercer grupo de servicios incluye una primera funcionalidad para permitir las adiciones a los menus de contexto, una segunda funcionalidad para permitir la identificación de miniaturas definidas por la aplicación, y una tercera funcionalidad que permite el calculo que se va a realizar cuando se despliega en pantalla información con respecto a uno o mas archivos o carpetas 5 Una inferíase de programación tal y como se describe en la reivindicación 1, caracterizada porque el cuarto grupo de servicios incluye una primera funcionalidad que permite que sea desplegada en pantalla en la computadora una barra lateral, y una segunda funcionalidad que permite que sean desplegadas en pantalla notificaciones definidas por la aplicación en la computadora 6 Un sistema que comprende medios para exponer un primer conjunto de funciones que hacen posible los controles que se pueden volver a utilizar de una interfase del usuario, medios para exponer un segundo conjunto de funciones que hace posible los diálogos que se pueden volver a utilizar de la interfase del usuario, ayudas automáticas que se vuelven a utilizar de la interfase del usuario, y medios para exponer un tercer conjunto de funciones que hacen posible extender la funcionalidad de la interfase del usuario de una computadora de escritorio 7 Un sistema tal y como se describe en la reivindicación 6, el cual comprende ademas medios para exponer un cuarto conjunto de funciones que hacen posible extender la funcionalidad de la inferíase del usuario 8 Un sistema tal y como se describe en la reivindicación 7, caracterizado porque los medios para exponer el cuarto conjunto de funciones comprenden medios para exponer una o mas funciones para permitir adiciones a los menus de contexto, medios para exponer una o mas funciones para permitir la identificación de las miniaturas definidas de la aplicación, y medios para exponer una o mas funciones para permitir que se realicen cálculos cuando se despliega en pantalla la información con respecto a uno o mas archivos o carpetas 9 Un sistema tal y como se describe en la reivindicación 6, caracterizado porque los medios para exponer el primer conjunto de funciones comprenden medios para exponer una o mas funciones que encapsulan una experiencia de almacenamiento del usuario, medios para exponer una o mas funciones que permiten que sea desplegada en pantalla una partida de una manera definida por la aplicación, medios para exponer una o mas funciones que permiten que sean agregadas las partidas a una barra lateral de la computadora de escritorio, medios para exponer una o mas funciones que permiten que las partidas sean agregadas a una lista, y medios para exponer una o mas funciones que permiten que las imágenes de vista previa de las partidas sean desplegadas en pantalla 10 Un sistema tal y como se describe en la reivindicación 6, caracterizado porque los medios para exponer el segundo conjunto de funciones comprenden medios para exponer una o mas funciones que permiten que sean abiertos y guardados archivos y carpetas, medios para exponer una o mas funciones que permiten que sean escritos discos ópticos, y medios para exponer una o mas funciones que permiten que sean enviadas imágenes por correo electrónico para que sean dimensionadas de nuevo 11 Un sistema tal y como se describe en la reivindicación 6, caracterizado porque los medios para exponer el tercer conjunto de funciones comprenden medios para exponer una o mas funciones que permiten que sea desplegada en pantalla una barra lateral en la computadora de escritorio, y medios para exponer una o mas funciones que permiten que sean desplegadas en la pantalla de la computadora de escritorio notificaciones definidas por la aplicación 12 Un método para organizar un conjunto de tipos para una interfase del usuario en un espacio de nombre jerárquico que comprende crear una pluralidad de grupos de un conjunto de tipos, conteniendo cada grupo por lo menos un tipo que expone una funcionalidad relacionada lógicamente, asignar un nombre a cada grupo de la pluralidad, en donde uno de los grupos de la pluralidad incluye la funcionalidad relacionada con controles de interfase del usuario que se vuelven a utilizar, y en donde otro de los grupos de la pluralidad incluye la funcionalidad realizada con los diálogos de la interfase del usuario que se vuelve a utilizar y las ayudas automáticas de la interfase del usuario que se vuelven a utilizar, y seleccionar un identificador de nivel superior y prefijar el nombre de cada grupo con el identif icador de nivel superior de modo que los tipos de cada grupo tengan una referencia debida al nombre jerárquico que incluye el identif icador de nivel superior seleccionado previamente fijado al nombre del grupo que contiene el tipo 13 Un sistema tal y como se describe en la reivindicación 12, en donde todavía otro de los grupos de la pluralidad incluye la funcionalidad relacionada con extender la funcionalidad de la mterfase del usuario 14 Un sistema tal y como se describe en la reivindicación 6, caracterizado porque la funcionalidad relacionada con la extensión de la funcionalidad de mterfase del usuario comprende una primera funcionalidad para permitir las adiciones a los menus de contexto, una segunda funcionalidad para permitir la identificación por aplicación de las miniaturas, y una tercera funcionalidad para permitir que se lleven a cabo cálculos cuando se despliega en pantalla información con respecto a uno o mas archivos o carpetas 15 Un método tal y como se describe en la reivindicación 13, caracterizado porque la asignación comprende asignar un nombre de Addin al grupo que incluye la funcionalidad relacionada con la extensión de la funcionalidad de mterfase del usuario, de modo que el nombre jerárquico para el grupo que incluye la funcionalidad relacionada con la extensión de la funcionalidad de mterfase del usuario sea System Windows Explorer Addin 16 Un método tal y como se describe en la reivindicación 12, caracterizado porque todavía otro de los grupos de la pluralidad incluye la funcionalidad relacionada con extender la funcionalidad de la mterfase del usuario de una computadora de escritorio 17 Un método tal y como se describe en la reivindicación 16, caracterizado porque la funcionalidad relacionada con la extensión de la funcionalidad de una mterfase del usuario de una computadora de escritorio, comprende una primera funcionalidad para permitir que una barra lateral sea desplegada en la pantalla de la computadora y una segunda funcionalidad para permitir que sean desplegadas en la pantalla de la computadora notificaciones definidas por la aplicación 18 Un método tal y como se describe en la reivindicación 16, caracterizado porque la asignación comprende asignar un nombre de computadora al grupo que incluye la funcionalidad relacionada con la funcionalidad que extiende la interfase del usuario de una computadora de escritorio, de modo que el nombre jerárquico para el grupo que incluye la funcionalidad relacionada para extender la funcionalidad de la interfase del usuario de la computadora de escritorio sea System Windows Explorer Desktop 19 Un método tal y como se describe en la reivindicación 12, caracterizado porque la asignación comprende asignar un nombre de controles a los grupos que incluyen la funcionalidad relacionada con los controles que se vuelven a utilizar de la interfase del usuario, de modo que el nombre jerárquico para el grupo que incluye la funcionalidad relacionada con los controles de interfase del usuario que se vuelven a utilizar sea System Windows Explorer Controls, y asignar un nombre de diálogos al grupo que incluye la funcionalidad relacionada con los diálogos que se vuelven a utilizar de la interfase del usuario y las ayudas automáticas de la interfase del usuario que se vuelven a utilizar, de modo que el nombre jerárquico del grupo que incluye la funcionalidad relacionada con los diálogos que se vuelven a utilizar de la interfase del usuario y las ayudas automáticas que se vuelven a utilizar de la interfase del usuario sea System Windows Explorer Dialogs 20 Un método tal y como se describe en la reivindicación 12, caracterizado porque la funcionalidad relacionada con los controles de la interfase del usuario que se vuelven a utilizar comprende el primer control que encapsula una experiencia de almacenamiento del usuario, un segundo control que permite que sea desplegada en pantalla una partida de una manera definida por la aplicación , un tercer control que permite que sean agregadas las partidas a una lista, y un cuarto control que permite que sean desplegadas en pantalla las imágenes de vista previa de las partidas 21 Un método tal y como se describe en la reivindicación 12, caracterizado porque la funcionalidad relacionada con los diálogos que se vuelven a utilizar de la mterfase del usuario y las ayudas automáticas que se vuelven a utilizar de la mterfase del usuario, comprenden un primer dialogo que permite que sean abiertos y guardados archivos y carpetas, una primera ayuda automática que permite que sean escritos discos ópticos, y una segunda ayuda automática para facilitar el envío de imágenes por correo electrónico 22 Un método, el cual comprende crear un primer espacio de nombre con funciones que hacen posible extender la funcionalidad de una interfase del usuario, y crear un segundo espacio de nombre con funciones que hacen posible extender la funcionalidad de la interfase del usuario de una computadora de escritorio 23 Un método tal y como se describe en la reivindicación 22, el cual comprende ademas crear un tercer espacio de nombre con funciones que hacen posible los controles que se vuelven a utilizar de la interfase del usuario 24 Un método tal y como se describe en la reivindicación 23, caracterizado porque el tercer espacio de nombre incluye un primer control que encapsula una experiencia de almacenamiento del usuario, un segundo control que permite que sea desplegada en pantalla una partida de una manera definida por la aplicación , un tercer control que permite que sean agregadas partidas de una barra lateral de la computadora de escritorio , un cuarto control que permite que sean agregadas las partidas a una lista, y un quinto control que permite que sean desplegadas las imágenes de vista previa de las partidas 25 Un método tal y como se describe en la reivindicación 22, el cual comprende ademas crear un tercer espacio de nombre con funciones que hacen posible los diálogos de interfase del usuario y las ayudas automáticas de interfase del usuario 26 Un método tal y como se describe en la reivindicación 25, caracterizado porque el tercer espacio de nombre incluye un primer dialogo que permite que sean abiertos y guardados archivos y carpetas, una primera ayuda automática que permite que sean escritos los discos ópticos, y una tercera ayuda automática que facilita el envío de imágenes por correo electrónico 27 Un método tal y como se describe en la reivindicación 22, caracterizado porque el primer espacio de nombre incluye una primera funcionalidad para permitir las adiciones a los menus de contexto, una segunda funcionalidad para permitir la identificación de las miniaturas definidas por la aplicación y una tercera funcionalidad que permite que se realicen cálculos cuando se esta desplegando en pantalla información con respecto a uno o mas archivos o carpetas 28 El método tal y como se describe en la reivindicación 22, caracterizado porque el segundo espacio de nombre incluye una primera funcionalidad para permitir que sea desplegada en pantalla una barra lateral en la computadora de escritorio, y una segunda funcionalidad para permitir que sean desplegadas en la pantalla de la computadora notificaciones definidas por la aplicación 29 Un método el cual comprende invocar una o mas primeras funciones para utilizar los controles de una interfase del usuario, y invocar una o mas segundas funciones para extender la funcionalidad de la interfase del usuario 30 Un método tal y como se describe en la reivindicación 29, el cual comprende ademas invocar una o mas terceras funciones para extender la funcionalidad de una computadora de interfase del usuario 31 Un método tal y como se describe en la reivindicación 30, caracterizado porque las funciones para extender la funcionalidad de la computadora de escritorio incluye una o mas funciones que permite que sea desplegada en pantalla una barra lateral en la computadora de escritorio, y una o mas funciones que permite que sean desplegadas en pantalla en la computadora de escritorio notificaciones definidas por la aplicación 32 Un método tal y como se describe en la reivindicación 29, el cual comprende ademas invocar una o mas terceras funciones para utilizar diálogos y ayudas automáticas de la interfase del usuario 33 Un método tal y como se describe en la reivindicación 32, caracterizado porque las funciones para utilizar los diálogos y ayudas automáticas de la interfase del usuario incluyen una o mas funciones para utilizar un dialogo para permitir que sean abiertos y guardados archivos y carpetas, una o mas funciones para utilizar una ayuda automática para permitir que sean escritos discos ópticos, y una o mas funciones para utilizar otra ayuda automática para facilitar el envío de imágenes por correo electrónico 34 Un método tal y como se describe en la reivindicación 29, caracterizado porque las funciones para utilizar los controles de la interfase del usuario incluyen una o mas funciones que encapsulan una experiencia de almacenamiento del usuario, una o mas funciones que permiten que sea desplegada en pantalla una partida de una manera definida por la aplicación, una o mas funciones que permiten que sean agregadas a una lista las partidas, y una o mas funciones que permiten que sean desplegadas en pantalla imágenes de vista previa de las partidas 35 Un método tal y como se describe en la reivindicación 29 caracterizado porque las funciones para extender la funcionalidad de la interfase del usuario incluyen una o mas funciones para permitir las adiciones a los menus de contexto, una o mas funciones para permitir la identificación de miniaturas definidas por la aplicación, y una o mas funciones para permitir que se lleven a cabo cálculos cuando se despliega en pantalla información con respecto a uno o mas archivos o carpetas 36 Un método el cual comprende recibir una o mas invocaciones para una o mas primeras funciones para utilizar los controles de la interfase del usuario, y recibir una o mas invocaciones par una o mas segundas funciones para extender la funcionalidad de una interfase del usuario de una computadora de escritorio 37 Un método tal y como se describe en la reivindicación 36, el cual comprende ademas recibir una o mas invocaciones para una o mas terceras funciones para extender la funcionalidad de la interfase del usuario 38 Un método tal y como se describe en la reivindicación 37, caracterizado porque las funciones para extender la funcionalidad de la interfase del usuario incluyen una o mas funciones para permitir adiciones a los menus de contexto, una o mas funciones para permitir la identificación de miniaturas definidas por la aplicación, y una o mas funciones para permitir que se realicen cálculos cuando se despliega en pantalla información con respecto a uno o mas archivos o carpetas 39 Un método tal y como se describe en la reivindicación 36, el cual comprende ademas recibir una o mas invocaciones para una o mas terceras funciones para utilizar diálogos y ayudas automáticas de la interfase del usuario 40 Un método tal y como se describe en la reivindicación 39, caracterizado porque las funciones para utilizar los diálogos y ayudas automáticas de la interfase del usuario incluyen una o mas funciones para utilizar un dialogo para permitir que sean abiertos y guardados archivos y carpetas, una o mas funciones para utilizar una ayuda automática para permitir que sean escritos discos ópticos, y una o mas funciones para utilizar otras ayudas automáticas para facilitar el envío de imágenes por correo electrónico 41 Un método tal y como se describe en la reivindicación 46, caracterizado porque las funciones para utilizar los controles de la interfase del usuario incluyen una o mas funciones que encapsulan una experiencia de almacenamiento del usuario, una o mas funciones que permiten que sea desplegada en pantalla una partida de una manera definida por la aplicación una o mas funciones que permiten que sean agregadas las partidas a una barra lateral de la computadora de escritorio, una o mas funciones que permiten que sean agregadas las partidas a una lista, y una o mas funciones que permiten que sean desplegadas en pantalla las imágenes de vista previa de las partidas 42 Un método tal y como se describe en la reivindicación 36, caracterizado porque las funciones para extender la funcionalidad de la computadora de escritorio incluyen una o mas funciones para permitir que sea desplegada en pantalla una barra lateral en la computadora de escritorio, y una o mas funciones para permitir que sean desplegadas en pantalla notificaciones definidas por la aplicación en la computadora de escritorio
MXPA04008851A 2003-10-24 2004-09-10 Interfase de programacion para una plataforma de computo. MXPA04008851A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/693,718 US7493592B2 (en) 2003-10-24 2003-10-24 Programming interface for a computer platform

Publications (1)

Publication Number Publication Date
MXPA04008851A true MXPA04008851A (es) 2005-06-17

Family

ID=34394597

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04008851A MXPA04008851A (es) 2003-10-24 2004-09-10 Interfase de programacion para una plataforma de computo.

Country Status (10)

Country Link
US (4) US7493592B2 (es)
EP (1) EP1526450A3 (es)
JP (2) JP2005174283A (es)
KR (1) KR101076904B1 (es)
CN (1) CN1609794A (es)
AU (1) AU2004206974B2 (es)
BR (1) BRPI0403821A (es)
CA (1) CA2481552C (es)
MX (1) MXPA04008851A (es)
RU (1) RU2365972C2 (es)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493592B2 (en) 2003-10-24 2009-02-17 Microsoft Corporation Programming interface for a computer platform
US7636922B2 (en) * 2004-05-03 2009-12-22 Microsoft Corporation Generic user interface command architecture
US20060059569A1 (en) * 2004-08-27 2006-03-16 Microsoft Corporation Application and device user verification from an operating system-based authentication service
US7788300B2 (en) * 2004-09-15 2010-08-31 Sap Ag Garbage collection for shared data entities
DE102005009529A1 (de) * 2005-03-02 2006-09-07 Siemens Ag Datenverarbeitungssystem zur Integration zweier Frameworks
US7761848B1 (en) * 2005-03-15 2010-07-20 Open Invention Network, Llc Code generator tool for building software applications with reusable components
US7685175B2 (en) * 2005-08-12 2010-03-23 Michael Lee Carroll Content manager
US20070074185A1 (en) * 2005-08-30 2007-03-29 Microsoft Corporation Identifier expressions
US7694285B2 (en) * 2005-08-30 2010-04-06 Microsoft Corporation Relaxed and extended delegates
US8863010B2 (en) * 2005-12-27 2014-10-14 Sap Ag Linking user interface design environment and application development environment
US20070174384A1 (en) * 2006-01-25 2007-07-26 John Abd-El-Malek Sidebar communication system and method
US20070223462A1 (en) * 2006-03-27 2007-09-27 Steven Hite Enhanced service delivery platform that provides a common framework for use by IMS and Web applications in delivering services
US7739660B2 (en) * 2006-03-31 2010-06-15 Sap Ag Code management in a distributed software development environment
US7730478B2 (en) * 2006-10-04 2010-06-01 Salesforce.Com, Inc. Method and system for allowing access to developed applications via a multi-tenant on-demand database service
US8375362B1 (en) * 2006-11-28 2013-02-12 Emc Corporation Wizard for web service search adapter
US20080155559A1 (en) * 2006-12-21 2008-06-26 Ilja Fischer Portal eventing directory
US8001530B2 (en) * 2006-12-28 2011-08-16 Sap Ag Method and framework for object code testing
US8566781B2 (en) * 2007-04-23 2013-10-22 Siemens Aktiengesellschaft Model-based view parts and reusable data source configurations
US20080270911A1 (en) * 2007-04-24 2008-10-30 Nehal Dantwala System and method to develop a custom application for a multi-function peripheral (mfp)
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
WO2009070319A1 (en) * 2007-11-27 2009-06-04 Ortiz David J Computer graphic user interface and display system
US8505038B2 (en) * 2008-01-28 2013-08-06 Blue Coat Systems, Inc. Method and system for enhancing MS exchange (MAPI) end user experiences in a split proxy environment
US8302017B2 (en) * 2008-03-05 2012-10-30 Microsoft Corporation Definition for service interface
US8055619B2 (en) 2008-06-05 2011-11-08 Novell, Inc. Mechanisms to support object-oriented version control operations
US20100037240A1 (en) * 2008-08-08 2010-02-11 Microsoft Corporation Non Intrusive Application Mechanism
US8676942B2 (en) * 2008-11-21 2014-03-18 Microsoft Corporation Common configuration application programming interface
US8527953B2 (en) 2009-06-11 2013-09-03 Accenture Global Services Limited Assessment system for choosing maintenance approaches for GUI-directed test scripts
CN101957750A (zh) * 2009-07-20 2011-01-26 鸿富锦精密工业(深圳)有限公司 电子装置及在电子装置上实现用户界面的方法
US8935656B2 (en) * 2009-09-09 2015-01-13 International Business Machines Corporation Communicating information in computing systems
US20110131523A1 (en) * 2009-11-30 2011-06-02 International Business Machines Corporation Grouping of windows based on user-defined contexts
US10089119B2 (en) * 2009-12-18 2018-10-02 Microsoft Technology Licensing, Llc API namespace virtualization
US20110271184A1 (en) * 2010-04-28 2011-11-03 Microsoft Corporation Client application and web page integration
US9158444B2 (en) * 2010-05-26 2015-10-13 Avaya Inc. User interface for managing communication sessions
US8863001B2 (en) 2010-06-11 2014-10-14 Microsoft Corporation Web application home button
US8671384B2 (en) * 2010-06-11 2014-03-11 Microsoft Corporation Web application pinning including task bar pinning
US9164671B2 (en) 2010-06-11 2015-10-20 Microsoft Technology Licensing, Llc Web application navigation domains
US8793650B2 (en) 2010-06-11 2014-07-29 Microsoft Corporation Dynamic web application notifications including task bar overlays
US8826134B2 (en) * 2010-09-10 2014-09-02 Sony Computer Entertainment America Llc Pivot command for playlist
US8694956B2 (en) * 2010-10-14 2014-04-08 Red Hat Israel, Ltd. PowerShell cmdlets code generating tool for communicating to the web services
US8407159B2 (en) * 2010-11-17 2013-03-26 Microsoft Corporation Automatic batching of GUI-based tasks
US9176742B2 (en) * 2010-12-27 2015-11-03 Microsoft Technology Licensing, Llc Converting desktop applications to web applications
WO2012094482A1 (en) * 2011-01-05 2012-07-12 Onqueue Technologies Inc. Methods and apparatuses for imparting functionality to a mobile computing device
US8866701B2 (en) 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US9210213B2 (en) 2011-03-03 2015-12-08 Citrix Systems, Inc. Reverse seamless integration between local and remote computing environments
CN102779032B (zh) * 2011-05-11 2016-02-03 深圳市金蝶中间件有限公司 基于复合组件的请求处理方法及系统
US9003318B2 (en) * 2011-05-26 2015-04-07 Linden Research, Inc. Method and apparatus for providing graphical interfaces for declarative specifications
US20120304283A1 (en) * 2011-05-27 2012-11-29 Microsoft Corporation Brokered item access for isolated applications
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
US10417018B2 (en) * 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
US9483304B2 (en) 2011-07-29 2016-11-01 National Instruments Corporation Interface wires for a measurement system diagram
US8776094B2 (en) 2011-08-11 2014-07-08 Microsoft Corporation Runtime system
US9304518B2 (en) * 2011-08-24 2016-04-05 Bio-Rad Laboratories, Inc. Modular automated chromatography system
US8695021B2 (en) 2011-08-31 2014-04-08 Microsoft Corporation Projecting native application programming interfaces of an operating system into other programming languages
US9946430B2 (en) 2011-09-21 2018-04-17 Facebook, Inc. Displaying social networking system user information via a timeline interface
US8832560B2 (en) 2011-09-21 2014-09-09 Facebook, Inc. Displaying social networking system user information via a historical newsfeed
US9773284B2 (en) 2011-09-21 2017-09-26 Facebook, Inc. Displaying social networking system user information via a map interface
US8869017B2 (en) 2011-09-21 2014-10-21 Facebook, Inc Aggregating social networking system user information for display via stories
US8726142B2 (en) 2011-09-21 2014-05-13 Facebook, Inc. Selecting social networking system user information for display via a timeline interface
US8887035B2 (en) 2011-09-21 2014-11-11 Facebook, Inc. Capturing structured data about previous events from users of a social networking system
US10296159B2 (en) * 2011-09-21 2019-05-21 Facebook, Inc. Displaying dynamic user interface elements in a social networking system
US9182886B2 (en) 2011-11-14 2015-11-10 Bio-Rad Laboratories Inc. Chromatography configuration interface
US9628438B2 (en) * 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US9003349B1 (en) 2013-06-28 2015-04-07 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing a physical electronic design with area-bounded tracks
US9117052B1 (en) 2012-04-12 2015-08-25 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for interactively implementing physical electronic designs with track patterns
US8984465B1 (en) 2013-06-28 2015-03-17 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for automatically assigning track patterns to regions for physical implementation of an electronic design
US9251299B1 (en) 2013-06-28 2016-02-02 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for associating track patterns with rules for electronic designs
CN102722367B (zh) * 2012-05-21 2015-11-25 深圳市茁壮网络股份有限公司 一种数据处理的方法、处理器及终端
US9213793B1 (en) 2012-08-31 2015-12-15 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing electronic designs using flexible routing tracks
US9104830B1 (en) * 2013-06-28 2015-08-11 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for assigning track patterns to regions of an electronic design
US9183343B1 (en) 2012-08-31 2015-11-10 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing high current carrying interconnects in electronic designs
WO2014035936A2 (en) 2012-08-31 2014-03-06 Citrix Systems Inc. Reverse seamless integration between local and remote computing environments
CN103685688B (zh) * 2012-09-06 2016-08-03 中兴通讯股份有限公司 控制移动终端消息的方法、系统及移动终端
US9691128B2 (en) 2012-09-20 2017-06-27 Facebook, Inc. Aggregating and displaying social networking system user information via a map interface
US9766783B2 (en) 2012-09-20 2017-09-19 Facebook, Inc. Displaying aggregated social networking system user information via a map interface
US9817941B2 (en) 2012-12-04 2017-11-14 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing high current carrying interconnects in electronic designs
US9430133B2 (en) 2012-12-17 2016-08-30 Sap Se Career history exercise with stage card visualization
US9996322B2 (en) * 2012-12-22 2018-06-12 Oracle International Corporation Dynamically generated user interface
RU2536391C1 (ru) * 2013-04-26 2014-12-20 Общество с ограниченной ответственностью "1С" Способ автоматизированного изменения интерфейса (варианты)
US9165103B1 (en) 2013-06-28 2015-10-20 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for tessellating and labeling routing space for routing electronic designs
US9569105B2 (en) * 2014-06-18 2017-02-14 Mediatek Inc. Method for managing virtual control interface of an electronic device, and associated apparatus and associated computer program product
CN105446711B (zh) * 2014-08-08 2018-10-02 国际商业机器公司 获取用于软件开发任务的上下文信息的方法及装置
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
CN104991452A (zh) * 2015-05-12 2015-10-21 广东瑞德智能科技股份有限公司 一种在面向对象编程中用于家电控制框架的设计方法
US10235163B2 (en) * 2017-06-16 2019-03-19 Red Hat, Inc. Coordinating software builds for different computer architectures
US10678809B2 (en) * 2017-09-11 2020-06-09 Microsoft Technology Licensing, Llc Synchronizing non-file content stored on a collaborative workspace environment
CN110362412A (zh) * 2018-04-09 2019-10-22 华为技术有限公司 一种服务api调用方法和相关装置
CN109976861B (zh) 2019-03-28 2023-01-10 北京小米移动软件有限公司 交互界面显示方法、装置及存储介质
US11379104B2 (en) 2019-06-07 2022-07-05 Microsoft Technology Licensing, Llc Sharing user interface customization across applications
CN110851240B (zh) * 2019-11-18 2022-04-29 北京小米移动软件有限公司 功能调用方法、装置及存储介质
US11368373B2 (en) * 2020-06-16 2022-06-21 Citrix Systems, Inc. Invoking microapp actions from user applications
CN112965832B (zh) * 2021-02-18 2023-09-26 腾讯科技(深圳)有限公司 一种远程过程调用rpc服务调用方法和相关装置
US11966573B2 (en) * 2021-06-02 2024-04-23 Microsoft Technology Licensing, Llc Temporarily hiding user interface elements
CN113741879B (zh) * 2021-08-30 2022-03-22 北京宇信科技集团股份有限公司 一种可视化开发平台、方法、介质和设备

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321750A (en) 1989-02-07 1994-06-14 Market Data Corporation Restricted information distribution system apparatus and methods
US5339392A (en) 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5297032A (en) 1991-02-01 1994-03-22 Merrill Lynch, Pierce, Fenner & Smith Incorporated Securities trading workstation
EP0592638B1 (en) 1992-04-30 2001-02-07 Apple Computer, Inc. Method and apparatus for organizing information in a computer system
US5701462A (en) * 1993-12-29 1997-12-23 Microsoft Corporation Distributed file system providing a unified name space with efficient name resolution
US5689700A (en) * 1993-12-29 1997-11-18 Microsoft Corporation Unification of directory service with file system services
US5689701A (en) * 1994-12-14 1997-11-18 International Business Machines Corporation System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US5819284A (en) 1995-03-24 1998-10-06 At&T Corp. Personalized real time information display as a portion of a screen saver
US5933599A (en) * 1995-07-17 1999-08-03 Microsoft Corporation Apparatus for presenting the content of an interactive on-line network
US5903753A (en) * 1995-08-18 1999-05-11 International Business Machines Corporation Name space registry with backward compatibility for older applications
JPH09330214A (ja) * 1996-06-12 1997-12-22 Hitachi Ltd プログラム自動生成方式
US6216141B1 (en) 1996-12-06 2001-04-10 Microsoft Corporation System and method for integrating a document into a desktop window on a client computer
US5959621A (en) * 1996-12-06 1999-09-28 Microsoft Corporation System and method for displaying data items in a ticker display pane on a client computer
RU2127019C1 (ru) 1997-08-01 1999-02-27 Рыжов Владимир Александрович Пульт дистанционного управления устройствами бытовой техники и компьютерными системами
JP2001523853A (ja) 1997-11-14 2001-11-27 アベスタ テクノロジーズ, インコーポレイテッド 略リアルタイムで複数のデータソースのデータを表示するシステムおよび方法
US6311058B1 (en) 1998-06-30 2001-10-30 Microsoft Corporation System for delivering data content over a low bit rate transmission channel
US6449638B1 (en) 1998-01-07 2002-09-10 Microsoft Corporation Channel definition architecture extension
US6278448B1 (en) 1998-02-17 2001-08-21 Microsoft Corporation Composite Web page built from any web content
US6038567A (en) 1998-02-19 2000-03-14 Microsoft Corporation Method and system for propagating object properties in a desktop publishing program
US6094706A (en) * 1998-03-02 2000-07-25 International Business Machines Corporation Caching in a data processing system using the pigeon hole principle
US6446253B1 (en) * 1998-03-20 2002-09-03 Novell, Inc. Mechanism for achieving transparent network computing
US6832355B1 (en) 1998-07-28 2004-12-14 Microsoft Corporation Web page display system
US6915301B2 (en) * 1998-08-25 2005-07-05 International Business Machines Corporation Dynamic object properties
US6188405B1 (en) 1998-09-14 2001-02-13 Microsoft Corporation Methods, apparatus and data structures for providing a user interface, which exploits spatial memory, to objects
US6510553B1 (en) 1998-10-26 2003-01-21 Intel Corporation Method of streaming video from multiple sources over a network
US6456334B1 (en) 1999-06-29 2002-09-24 Ati International Srl Method and apparatus for displaying video in a data processing system
US6618716B1 (en) 1999-07-30 2003-09-09 Microsoft Corporation Computational architecture for managing the transmittal and rendering of information, alerts, and notifications
US6976210B1 (en) 1999-08-31 2005-12-13 Lucent Technologies Inc. Method and apparatus for web-site-independent personalization from multiple sites having user-determined extraction functionality
US6968438B1 (en) * 1999-09-20 2005-11-22 Texas Instruments Incorporated Application programming interface with inverted memory protocol for embedded software systems
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US7987431B2 (en) 1999-10-29 2011-07-26 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US7028264B2 (en) 1999-10-29 2006-04-11 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US6724403B1 (en) 1999-10-29 2004-04-20 Surfcast, Inc. System and method for simultaneous display of multiple information sources
WO2001033349A2 (en) * 1999-11-03 2001-05-10 Accenture Llp Architectures for netcentric computing systems
US6753885B2 (en) 2000-04-06 2004-06-22 Microsoft Corporation System and theme file format for creating visual styles
US6762767B2 (en) 2000-04-06 2004-07-13 Microsoft Corporation Theme aware management using fusion
AU2001266820A1 (en) 2000-06-09 2001-12-17 The Trustees Of Columbia University In The City Of New York Distributed computer system using a graphical user interface toolkit
JP4046994B2 (ja) * 2001-12-06 2008-02-13 キヤノン株式会社 情報処理装置及び情報処理方法
US6964025B2 (en) 2001-03-20 2005-11-08 Microsoft Corporation Auto thumbnail gallery
US7185290B2 (en) * 2001-06-08 2007-02-27 Microsoft Corporation User interface for a system and process for providing dynamic communication access and information awareness in an interactive peripheral display
US20020186257A1 (en) * 2001-06-08 2002-12-12 Cadiz Jonathan J. System and process for providing dynamic communication access and information awareness in an interactive peripheral display
US7546602B2 (en) * 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US7581231B2 (en) * 2001-07-10 2009-08-25 Microsoft Corporation Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer
US7549129B2 (en) * 2001-10-31 2009-06-16 Microsoft Corporation Computer system with enhanced user interface for images
US6845403B2 (en) * 2001-10-31 2005-01-18 Hewlett-Packard Development Company, L.P. System and method for storage virtualization
JP3908944B2 (ja) * 2001-11-30 2007-04-25 ソフトバンクモバイル株式会社 携帯通信機器
EP1326189A3 (en) * 2001-12-12 2005-08-17 Microsoft Corporation Controls and displays for acquiring preferences, inspecting behaviour, and guiding the learning and decision policies of an adaptive communications prioritization and routing systems
US7712034B2 (en) * 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US7409644B2 (en) 2003-05-16 2008-08-05 Microsoft Corporation File system shell
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7343567B2 (en) * 2003-04-25 2008-03-11 Microsoft Corporation System and method for providing dynamic user information in an interactive display
US7281202B2 (en) * 2003-06-19 2007-10-09 Microsoft Corporation Framework for creating modular web applications
US7669140B2 (en) * 2003-08-21 2010-02-23 Microsoft Corporation System and method for providing rich minimized applications
US7493592B2 (en) 2003-10-24 2009-02-17 Microsoft Corporation Programming interface for a computer platform
US8375293B2 (en) * 2005-01-09 2013-02-12 Apple Inc. Method and apparatus for defining documents
US8819569B2 (en) 2005-02-18 2014-08-26 Zumobi, Inc Single-handed approach for navigation of application tiles using panning and zooming
US7933632B2 (en) 2005-09-16 2011-04-26 Microsoft Corporation Tile space user interface for mobile devices
US8316105B2 (en) 2007-03-22 2012-11-20 Microsoft Corporation Architecture for installation and hosting of server-based single purpose applications on clients
US8176466B2 (en) * 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US20100251143A1 (en) 2009-03-27 2010-09-30 The Ransom Group, Inc. Method, system and computer program for creating and editing a website
US8819172B2 (en) 2010-11-04 2014-08-26 Digimarc Corporation Smartphone-based methods and systems
US8589815B2 (en) 2010-03-10 2013-11-19 Microsoft Corporation Control of timing for animations in dynamic icons

Also Published As

Publication number Publication date
RU2004127215A (ru) 2006-02-20
US20130159965A1 (en) 2013-06-20
AU2004206974A1 (en) 2005-05-12
JP2012128878A (ja) 2012-07-05
KR101076904B1 (ko) 2011-10-25
CA2481552C (en) 2012-01-03
BRPI0403821A (pt) 2005-06-21
US7493592B2 (en) 2009-02-17
US20130031504A1 (en) 2013-01-31
RU2365972C2 (ru) 2009-08-27
US20090125822A1 (en) 2009-05-14
CN1609794A (zh) 2005-04-27
EP1526450A3 (en) 2008-05-07
US9430193B2 (en) 2016-08-30
CA2481552A1 (en) 2005-04-24
US20050091670A1 (en) 2005-04-28
JP2005174283A (ja) 2005-06-30
KR20050039547A (ko) 2005-04-29
AU2004206974B2 (en) 2009-11-12
EP1526450A2 (en) 2005-04-27
US8312422B2 (en) 2012-11-13
US9459837B2 (en) 2016-10-04

Similar Documents

Publication Publication Date Title
MXPA04008851A (es) Interfase de programacion para una plataforma de computo.
JP5787963B2 (ja) コンピュータプラットフォームのプログラミングインターフェース
US20200050464A1 (en) Collaborative and non-collaborative workspace application container with application persistence
Johnson Expert one-on-one J2EE design and development
US7406664B1 (en) System for integrating HTML Web site views into application file dialogs
US7568165B2 (en) Sidebar engine, object model and schema
EP1419632B1 (en) Network-based software extensions
RU2365978C2 (ru) Интерфейс программирования для компьютерной платформы
US8099664B2 (en) Dynamic help user interface control with secured customization
US7114148B2 (en) Runtime services for network software platform
JP5075920B2 (ja) ウェブデータ使用のプラットフォーム
US20070220429A1 (en) Layered customization of a help user interface
JPH08511118A (ja) コンテナ・オブジェクト・システム
JPH08511117A (ja) プレース・オブジェクト・システム
JP5650877B2 (ja) 複数のコンピューティング機能ソースを用意するための装置及び方法
Shen et al. A generic WebDAV-based document repository manager for collaborative systems
Redmond Working with TeamLinks: Client-server Office Computing for Microsoft Windows
Munro Learn FileMaker Pro 16
Germano et al. Framework and network based multimedia object management environment