Title: Himalia
1Himalia
Leonardo Vernazza
28.02.07 / Architect Forum / Microsoft / Santiago
de Chile
2Agenda
- El concepto
- Himalia Guilder
- Himalia DragOn
- Estado
3El concepto
4Inicio
- Por qué hay lenguajes para DB y no para UI?
- SQL existe desde 1970!!!!
- Historia enfoque bottom-up, desde la plataforma
a su interfaz gráfica.
5Hipermedia
6Objetivos
- Un lenguaje para construir UI orientadas a
servicios. - Modelo está basado en tres pilares
- Hipermedia
- Controles (composite)
- Patrones
- Un paso real hacia UI semánticas.
7Los modelos
Cultures (globalization)
User Profiles
Presentation
Controls
Layout
Behavior
Themes
Use Cases
Navigation
Accessibility
Adaptability
Services
8Comparación
9Himalia Guilder
for Visual Studio 2005
Guild To build a graphic user interface.
10Caracterísitcas
- Guilder
- Add-In para Visual Studio 2005
- Hecho con DSL Tools
- Runtime
- Para WPF
- Back/Forward real
- Undo/Redo
11Himalia Guilder
12Elección de controles
GUI
13El Runtime
Runtime
Controls
Session
Services
.hui
- Manejar la interfaz
- Sincronizar casos de uso
- Efectuar la navegación
- Sincronizar las areas de la pantalla
- Interactuar con el exterior
- Invocar servicios
- Obtener y cargar los controles
- Proveer los servicios de UI
- Back/Forward
- Undo/Redo
- Status
14Al alcance de la mano
Ud ha estado inactivo por 30 minutos, desea ver
un Replay de lo que estaba haciendo?
A Cómo hago para llegar a tal lado? B Esperá un
segundo que te mando mi sesión
- Anotaciones en todos lados
15Himalia DragOn
16Visión y estrategia
- Aprovechar la base de conocimiento (user-side)
- Interoperabilidad en la UI a nivel semántico
- Asistida por el usuario (no deductiva)
- Sustentada por la Adaptabilidad y la Adaptatividad
17El caso de uso
- Dos aplicaciones PetShop y un EmailClient.
- El usuario arrastra el carrito desde el PetShop a
un contacto del EmailClient. - Himalia pregunta al usuario qué acción tomar.
- Usuario responde
- Ejecutar Proceed to Check Out
- Completar Delivery Address con
Contact.Address - La siguiente vez que el usuario arrastra el
carrito desde el PetShop a un contacto en el
EmailClient, se hace automáticamente.
18Pero hay más
- 1. Eventualmente (usando adaptabilidad) podría
agregar una acción directamente en el carrito,
llamada regalar a un amigo. - 2. Los usuario pueden compartir esta información.
Fulano agregó una acción entre dos aplicaciones
que usted tiene, desea agregarla Ud también?
3. DragOn como distribuidor de aplicaciones (long
tail?)
Las personas que usan PetShop también usan
MyDeliverySystem, desea bajarlo y probarlos
juntos?
19Estado
20Versiones
- Versión 0.8 beta actual
- Disponible desde el dic/06
- Versión 1
- Documentación, ejemplos, etc.
- Acciones asincrónicas
- EasyThemes, EasyEffects
- Cultures (básico)
- Templates
- Depurar APIs de integración (controles y
servicios) - DragOn alfa
- Luego de la versión 1
21Difusión e Integración
- Architect Forum de Montevideo y Santiago.
- Libro de Steve Cook sobre DSL Tools.
- Integrando con productos de terceros.
- DeKlarit
- TangibleArchitect
- d2B
22www.himalia.net
23Extras on demand
24Himalia Controls
- HimaliaManifesto(
- HimaliaControlType.NavigationalContent,
- typeof(IndexViewer),
- typeof(FxControlProxyltIndexViewergt),
- typeof(IndexViewerContract),
- "IndexViewerDescription",
- "IndexViewerImg"
- )
- public partial class IndexViewer
- UserControl, IFxNavElementContainer
-
-
- public INavElement NavigationalContent get
set - public IFxControlProxy Helper get set
-
-
25Service Invoker
- public partial class ShoppingCartProceedToChec
kout - AbsUndoNotRequiredServiceInvoker
-
- protected override AbsServiceInvoker
Clone() - public override void invoke()
-
- Si se hereda de AbsUndoRequiredServiceInvoker hay
que - Implementar invokeUndo()
- Guardar el estado necesario en esta clase para
poder deshacer/compensar
26Catálogos de patrones
- Comunidad Hipermedia
- http//www.designpattern.lu.unisi.ch/index.htm
- Ejemplo Oportunistic Link
- Jenifer Tidwell (HCI)
- http//designinginterfaces.com/
- Ejemplo Visual Framework
27Hypermedia
- HDM
- RDM
- EORM
- SOHDM
- WSDM
- RNA
- OOHDM
- LoweHall
- UWE
- OO-H
- GuiLayout
-
- Paper comparativo de Nora Koch, creadora de UWE
(2000) - http//www.pst.informatik.uni-muenchen.de/personen
/kochn/techrep/hypdev.pdf