Documentación de Velneo
29
29
  • Introducción
  • Velneo
    • Requerimientos de Velneo
    • Notas de la versión
    • Funcionalidades comunes a los componentes de Velneo
      • Instalación
      • Conexión con Velneo vServer
      • Cambiar el estilo de visualización
      • Ver u ocultar barras de herramientas
      • Mensajería interna entre usuarios
      • Soporte de alta resolución (HighDPI)
      • Carpetas de trabajo de los componentes de Velneo
      • Numeración de versiones de Velneo
      • Certificado de firma digital para componentes de Windows
    • Tipos de archivo generados por Velneo
    • Velneo Web
      • Plataformas y navegadores compatibles
      • Acceso a recursos del sistema
      • Siempre https
      • Funcionamiento de vatp por websocket
      • CORS para llamadas xmlhttprequest
  • Velneo vDevelop
    • ¿Qué es Velneo vDevelop?
    • Interfaz de Velneo vDevelop
      • Menú Soluciones
      • Menú Proyectos
      • Menú Objetos
      • Menú Scripts
      • Menú Edición
      • Menú Ver
      • Menú Componentes
      • Menú Ayuda
    • Lista de teclas aceleradoras de Velneo vDevelop
    • Soluciones y proyectos
    • Control y edición de proyectos
    • Herencia
    • Inspectores
    • Proyectos objetos y editores
      • Proyecto de datos
      • Proyecto de aplicación
        • Crear CSS para aplicar a objetos en edición
      • Objeto
      • Objetos de proyecto de datos
        • Indice complejo
        • Tabla
          • Actualización
          • Campo
          • Enlace
          • Indice
          • Plural
          • Traspaso de campo
          • Trigger
        • Tabla estática
        • Variable
      • Objetos de proyecto de aplicación
        • Acción
        • Alternador de lista
        • Arbol visor de tablas
        • Bloc de formularios
        • Casillero
        • Cesta
        • ComboView
        • Control SVG
        • Dispositivo serie
        • Formulario
          • Controles de visualización
            • Texto estático
            • Nombre de campo
            • Visor HTML
            • Dibujo
            • Imagen SVG
            • Caja de grupo
            • Menú arbolado
            • Barra de progreso
            • Reloj
            • Manómetro
            • Termómetro
          • Controles de edición
            • Caja de texto
            • Caja de texto enriquecido
            • Data catcher edit
            • Edición alfabética
            • Edición fecha
            • Edición fecha/hora
            • Edición fórmula
            • Edición hora
            • Edición numérica
            • Edición senda fichero
            • Edición senda directorio
            • Objeto dibujo
          • Controles de entrada
            • Botón
            • Botón de check
            • Botón de radio
            • Calendario
            • ComboBox
            • Deslizador
            • Dial
            • ListBox
            • Rueda
          • Contenedores
            • Área de scroll
            • Caja de formularios
            • Pila de formularios
            • Separador de formularios
            • Splitter
            • Vista de datos
          • Layout
          • Tree widget
          • Controles SVG
          • Extensión de ficha
        • Formulario QML
        • Gráfico
        • Imagen SVG
        • Impresora lógica
        • Informe
          • Editor de informes
          • Agrupamiento
          • Sección
          • Cálculo
        • Informe personalizable
          • Diseñando un informe personalizable básico
          • Diseño avanzado
          • Diseñando un informe personalizable
          • Añadiendo orígenes de datos
          • Añadiendo elementos al informe
          • Características avanzadas
          • Etiquetas
          • Asistente de scripts
          • Impresión de gráficos
          • Opciones html
        • ListView
        • Lista QML
        • Localizador
        • Marco
        • Menú
        • Multivista
        • Protocolo TCP-IP
        • Reemplazo
        • Rejilla
          • Propiedades de columna de rejilla
        • Rejilla avanzada
          • Propiedades de columna de rejilla avanzada
        • Toolbar
        • ViewFlow
        • Sub-objetos de vistas de datos
          • Conexión de evento
          • Drop
          • Inserción
          • Manejador de evento
      • Objetos comunes a proyecto de datos y de aplicación
        • Búsqueda
        • Cola
        • Constante
        • Dibujo
        • Esquema de tablas
        • Fichero adjunto
        • Función
        • Librería externa
        • Lupa
        • Proceso
          • Indice de comandos de instrucción de proceso
          • Comandos de base de datos
            • API
            • Bases de datos externas
            • Búsquedas
            • Campos (grupo de comandos)
            • Cestas
            • Fichas
            • Fichas seleccionadas
            • Listas
            • Tablas
            • Tubos
          • Básicos
            • Controles de flujo
            • Debug
            • Ejecución
            • Salida/retornos
            • Scripts (grupo de comandos)
            • Transacciones (comandos)
            • Variables
          • Comunicación
            • Internet
            • Protocolo TCP
            • Puerto serie
            • SDV
          • Interfaz
            • Acciones (comandos)
            • Control
              • Ejemplo de CSS
            • Diálogos
            • Formularios - comandos
            • Localizadores
            • Objeto - grupo de comandos
            • Ventana principal
            • Vista de datos - comandos
          • Sistema
            • Comandos de Sistema
            • Configuración
            • Directorios
            • Ficheros
        • Tubo de ficha
        • Tubo de lista
        • Variable local
      • Editores
        • Asistente de fórmulas
          • Operadores
          • Funciones estándar
            • Funciones API
            • Funciones básicas
            • Funciones de cadenas
              • Expresiones regulares
            • Funciones científicas
            • Funciones de Cliente-servidor
            • Funciones de color
            • Funciones de códigos
            • Funciones de directorios
            • Funciones de fechas
            • Funciones de ficha en curso
            • Funciones de horas
            • Funciones JSON
            • Funciones de Internet
            • Funciones de juegos de caracteres
              • Codecs
            • Funciones numéricas
            • Funciones de sistema
            • Funciones de tiempo
            • Funciones trigonométricas
          • Funciones de dll
          • Funciones de proceso
          • Funciones de campo
          • Campos
          • Constantes
          • Variables globales
          • Variables locales
          • Variables del sistema
          • Verificador de fórmulas
          • Conversión automática de datos
          • Introducción de datos literales
          • Secuencias de escape en cadenas de caracteres
          • Composición de sendas en fórmulas
          • Operar con datos de tipo fecha, hora y tiempo
        • Editor de imágenes
        • Selector de fuentes
    • Scripts
      • Lenguajes
        • JavaScript
          • Procesos JavaScript
          • Fórmulas JavaScript
          • Clases
            • Funciones globales
            • Objetos
            • VAbstractBrowser
            • VAbstractDataView
            • VAbstractListDataView
            • VAdvandedGridListDataView
            • VAlternatorListDataView
            • VApp
            • VBoundFieldComboBox
            • VBoundFieldEdit
            • VBoundFieldEditBrowser
            • VBoundFieldListBox
            • VByteArray
            • VCheckBox
            • VClipboard
            • VClockWidget
            • VComboBox
            • VComboListDataView
            • VCoverFlowListDataView
            • VCWebView
            • VDataCatcherEdit
            • VDataCatcherEditBrowser
            • VDataView
            • VDataViewDialog
            • VDateEdit
            • VDateEditBrowser
            • VDateTimeEdit
            • VDateTimeEditBrowser
            • VDial
            • VDir
            • VExtension
            • VFile
            • VFileInfo
            • VFilePathEditBrowser
            • VFinder
            • VFont
            • VFormBlockListDataView
            • VFormDataView
            • VFormulaEditBrowser
            • VGaugeWidget
            • VGridListDataView
            • VGroupBox
            • VImage
            • VImageEdit
            • VImageWidget
            • VInstancesList
            • VInstance
            • VInstances
            • VItemRegisterPattern
            • VLabel
            • VLineEdit
            • VLineEditBrowser
            • VListBox
            • VListDataView
            • VLogin
            • VMainWindow
            • VMdiView
            • VMimeData
            • VMultiDataView
            • VNumberSpinBox
            • VNumberSpinBoxBrowser
            • VObjectInfo
            • VObjectInstance
            • VProcess
            • VProgressBar
            • VProjectInfo
            • VPushButton
            • VQmlFormDataView
            • VQmlListDataView
            • VQmlListModel
            • VQuery
            • VRadioButton
            • VRegister
            • VRegisterList
            • VReportListDataView
            • VRequest
            • VResponse
            • VRoot
            • VScreen
            • VScrollArea
            • VServerAdmin
            • VSettings
            • VSlider
            • VSlotListDataView
            • VSolutionInfo
            • VSplitter
            • VSqlDatabase
            • VSSLCertificate
            • VSSLInfo
            • VSSLSessionCipher
            • VStackedWidget
            • VSvgButton
            • VSvgSlideSwitch
            • VSvgToggleSwitch
            • VSvgWidget
            • VSysInfo
            • VTableInfo
            • VTabWidget
            • VTextEdit
            • VTextFIle
            • VThermometerWidget
            • VThumbWheel
            • VTimeEdit
            • VTimeEditBrowser
            • VToolBox
            • VTreeItem
            • VTreeItemRegister
            • VTreeListDataView
            • VTreeMenu
            • VTreeMultiTableListDataView
            • VTreeWidget
            • VUser
            • VUserGroup
            • VUserGroupList
            • VUserList
            • VXmlReader
            • VXmlWriter
            • Widget
            • XMLHttpRequest
        • QML
          • Tipos QML
          • Funciones específicas de QML
    • Depuración
      • Depuración de procesos de Velneo
      • Depuración de procesos JavaScript
      • Monitor de vClient
    • Extensiones de Velneo vDevelop
    • Acceso directo a una solución desde vDevelop
    • Buenas prácticas
      • Buenas prácticas de organización
        • Proyectos
        • Organización de carpetas
        • Proyecto de datos
        • Proyecto de aplicación
      • Buenas prácticas de codificación
        • Identificadores
        • Teclas aceleradoras
        • Documenta
        • Diseña los formularios como si no existiesen los layouts
      • Buenas prácticas de rendimiento
        • Arquitectura
          • Listas de registros
          • Lista de resultados de una búsqueda
          • Las cestas
          • Las variables globales
          • La caché de fichas
          • Programa en cloud
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • Base de datos
          • Campos
          • Indices
          • Actualizaciones
          • Eventos de tabla o triggers
          • Variables globales y constantes
          • Tablas en memoria vs tablas en disco
          • Optimizar migraciones de datos
          • Búsquedas en el servidor ¿Cuándo y Cómo?
          • Campos fórmula vs campos en disco
          • Indices condicionados vs búsquedas complejas
          • ¿Cuándo usar tablas de extensión?
          • Indices de trozos y palabras
          • ¿Cuándo usar cada tipo de campo alfa?
        • Procesos y funciones y eventos
          • 1º, 2º, 3º y 4º plano ¿Cuándo usar cada uno?
          • Bloqueo blando vs bloqueo duro
          • Pasar información del cliente al servidor
          • ¿Cómo optimizar transacciones grandes?
          • ¿Cómo gestionar las transacciones?
          • Grabaciones optimizadas para el usuario
        • Carga de registros en objetos de lista
          • Rejillas
            • Campos punteros a singular
            • Totales
            • Condiciones de activo, visible y color en columna
            • Campos de tipo objeto
        • Conoce los límites
      • Imágenes
      • Buenas prácticas para el desarrollo en equipo
    • Análisis de bases de datos para aplicaciones de Velneo
      • Un centro de enseñanza
      • Facturas de un cliente
      • Repartos de obras de teatro
      • Galería de arte
      • Gestión de un colegio
      • Instalación de lunas para vehículos
      • Libros y autores
      • Tienda de discos
      • Últimos pedidos de un proveedor
      • Existencias por almacén y precios por cliente
      • Generación de tickets para un quiosco
      • Navegación por facturas
  • Velneo vDevelop Web
  • Velneo vAdmin
    • ¿Qué es Velneo vAdmin?
    • Gestión de usuarios
    • Gestión de aplicaciones
      • Soluciones
      • Instancias
      • Disco
    • Monitorización
      • Lista de comandos
    • Tareas
    • Acceso directo
    • Velneo vAdmin Web
  • Velneo vClient
    • ¿Qué es Velneo vClient?
    • Movilidad
    • Funcionalidades de Velneo vClient
      • Accesos directos y VRL
      • Cambiar idioma
      • Panel de procesos en 2º plano
      • Manejo de rejillas
        • Submenú de filtros
      • Uso de la rejilla avanzada
      • Manejo de cestas
      • Refrescos
      • Caché local
      • Edición de campos enlazados a maestro
      • Edición de campos de tipo fecha
      • Capturar imagen desde una cámara
      • Asignar impresoras lógicas
      • Actualización automática
      • Personalización de la ventana de conexión de Velneo vClient
      • Instalador personalizado de Velneo vClient
      • Ordenación de listas
  • Velneo vServer
    • ¿Qué es Velneo vServer?
    • Instalación y configuración
      • Activación de la licencia
      • Línea de comandos de Velneo vServer
      • Parámetros configurables de Velneo vServer
      • Estructura de directorios
    • Iniciar y detener Velneo vServer
    • Funcionalidades
      • Protocolo VATP
      • Protocolo VATPS
      • Multi-hilo
      • Integridad referencial
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
    • Mensajes de log de sistema
    • vPacker
  • Velneo vInstallBuilder
    • ¿Qué es Velneo vInstallBuilder?
    • Configurar una instalación
    • Probar una instalación
    • Crear el instalable
    • Accesos directos
  • Velneo vModApache
    • ¿Qué es Velneo vModApache?
    • Instalación y configuración
    • Nomenclatura de objetos en urls
    • Uso de ficheros adjuntos
    • Caché local de Velneo vModApache
  • Velneo vDataClient
    • ¿Qué es Velneo vDataClient?
    • Iniciar Velneo vDataClient
    • Interfaz de Velneo vDataClient
    • Procesos
    • Utilidades
    • Acceso directo a una instancia de datos
  • Velneo vTranslator
    • ¿Qué es Velneo vTranslator?
    • Importación y exportación basada en XLIFF
    • Acceso directo a una solución
  • Velneo ODBC Driver
    • ¿Qué es velneo ODBC Driver?
    • Referencia de comandos SQL
  • Velneo vVersion
    • ¿Qué es Velneo vVersion?
  • Velneo vERP
    • ¿Qué es Velneo vERP?
    • Manual del programador
    • Documentación de la ApiRest
    • Novedades de la versión
  • Velneo vTutor
    • ¿Qué es vTutor?
    • Tutores de objetos básicos
      • Tutor de árboles visores de tablas arboladas
      • Tutor de búsquedas
      • Tutor de cestas
      • Tutor de formularios
      • Tutor de informes
      • Tutor de localizador básico
      • Tutor de marcos
      • Tutor de rejillas
      • Tutor de rejillas avanzadas
    • Tutores de objetos avanzados
      • Tutor de alternadores de lista
      • Tutor de comboview
      • Tutor de drag and drop
      • Tutor de eventos
      • Tutor de tablas de extensión y extensiones de ficha
      • Tutor de grabación de fichas
      • Tutor de gráficos
      • Tutor de impresión de informes
      • Tutor de lupas
      • Tutor de protocolo TCP/IP
      • Tutor de reemplazo
    • Tutores de controles
      • Tutor de botones de menú
      • Tutor de controles SVG
      • Tutor de edición numérica
      • Tutor de visor html dinámico
      • Tutor de vistas de datos de lista
    • Tutores de procesos y manejadores de evento avanzados
      • Tutor de cambio de marco
      • Tutor de comandos de interfaz y acciones
      • Tutor de importación y exportación de ficheros ASCII
      • Tutor de portapapeles
      • Tutor de procesos
      • Tutor de SDV
    • Tutores de scripts
      • QML: hola mundo
      • QML: tutor básico
      • QML: tutor de vistas
      • Tutor de XMLHttpRequest (webServices)
  • Velneo cloud
    • ¿Qué es Velneo Cloud?
    • Panel de control vServer cloud
      • URC
      • vServer
      • Apache
      • SFTP
      • Usuarios
    • Copias de seguridad
    • Velneo cloud API
      • Uso de Velneo cloud API
    • Explorador de archivos cloud sFTP
    • TCP en Velneo cloud
    • Velneo vModApache en cloud
    • SLA
    • Hora de los servidores en el cloud de Velneo
    • ¿Qué puedo hacer si tengo una incidencia en mi servidor cloud?
Con tecnología de GitBook
En esta página
  • Paso 1. Instalación de servidores
  • Paso 2. Instalar Velneo vVersion
  • Paso 3. Instalación de la solución
  • Paso 4. Aplicar Scrum o similar
  • Paso 5. Desarrollo de tareas
  • Paso 6. Integrar cambios en servidor corporativo
  • Paso 7. Marcar objetos a modificar
  • Paso 8. Testeo en el servidor corporativo
  • Paso 9. Edición en modo solo lectura
  • Paso 10. Actualizar servidor individual de desarrollo
  • Recomendaciones
  • Normalización
  • Comunicación
  • Realizar un vin de cada versión y revisión
  • Numeración de versiones

¿Te fue útil?

  1. Velneo vDevelop
  2. Buenas prácticas

Buenas prácticas para el desarrollo en equipo

Última actualización hace 4 años

¿Te fue útil?

Ante la necesidad de coordinar un equipo de programadores que van a desarrollar una aplicación de forma colaborativa, se recomienda trabajar cada programador con su servidor de desarrollo individual, más uno corporativo donde mantener integrado el desarrollo de todo el equipo.

A continuación se detalla la metodología a seguir por el equipo de programadores, así como una serie de recomendaciones muy importantes que de forma conjunta nos ayudarán a que el desarrollo día a día sea lo más sencillo, productivo y fiable posible.

Paso 1. Instalación de servidores

Cada programador deberá disponer de un servidor personal, será donde realizará de forma aislada y segura sus desarrollos. Además, tendrá sus propios datos de pruebas independientes del resto del equipo y nunca entrará en conflicto de concurrencia con otros desarrolladores.

El equipo dispondrá además de un servidor corporativo común, donde encontraremos la versión más actualizada al contener las integraciones de todos los miembros del equipo.

Haciendo uso de los servidores de desarrollo que Velneo facilita, podemos asignar sin problemas uno a cada desarrollador y disponer de otro corporativo.

Para garantizar la calidad de nuestros desarrollos se recomienda programar en Cloud, por ese motivo todos los desarrolladores disponen de su propio servidor en Velneo Cloud. Esta buena práctica consigue que el código desarrollado esté optimizado.

Lógicamente todos los servidores, corporativo y personales deben estar con la misma versión de la plataforma Velneo. Se recomienda que esta versión sea siempre la última disponible porque nos aporta más funcionalidad y estabilidad.

Paso 2. Instalar Velneo vVersion

En todos los servidores de desarrollo instalaremos el componente encargado de almacenar las diferentes versiones de desarrollo de nuestras soluciones, lo que nos garantiza disponer de copias de seguridad y un comparador versiones para conocer los objetos y propiedades que han cambiado en un proyecto.

Cuando trabajamos con este componente en Cloud, para evitar un excesivo consumo de disco, debemos configurarlo indicando el número de días de copias de seguridad que se guardarán.

Paso 3. Instalación de la solución

Para comenzar a desarrollar debemos instalar la solución tanto en el servidor corporativo como en los servidores personales y si es posible con datos, que siempre ayudan al desarrollador en su trabajo.

Paso 4. Aplicar Scrum o similar

Estas buenas prácticas de desarrollo ayudan a que todo el equipo funcione de forma homogénea y sea más productivo. Al trabajar orientados a aportar valor en ciclos de desarrollo cortos, entre 2 y 4 semanas, tanto el equipo como el cliente compartirán los constantes avances en el desarrollo y la validación de los mismos se realiza de forma constante y no una única vez al finalizar el proyecto. Existe abundante información sobre estos frameworks de trabajo ágil tipo Scrum.

Paso 5. Desarrollo de tareas

A partir de aquí cada programador desarrolla la tarea asignada en su servidor personal con sus datos, sin interferencias ni bloqueos en su trabajo que le puedan causar otros miembros del equipo de desarrollo.

Una vez finalizada la tarea deberá testarla en su equipo para garantizar que cumple con los requisitos marcados.

Paso 6. Integrar cambios en servidor corporativo

Tras verificar que la programación ha pasado los tests solicitados en la tarea, debemos proceder a integrar los objetos creados o cambiados en el servidor corporativo.

Debemos tratar de integrar siempre tras finalizar la tarea ya que tendremos frescos los objetos a integrar y la prueba a realizar. Una vez integrados los objetos creados o modificados debemos proceder al testeo de la funcionalidad integrada, una vez más, pero ahora en el servidor corporativo. De esta forma verificaremos que la integración ha sido completa y correcta.

En este proceso de integración debemos tratar de ser lo más precisos que podamos, de forma que si hemos modificado un subobjeto, solo actualicemos dicho subobjeto y no todo el objeto. De este modo minimizamos el riesgo de pisar los cambios de otro programador del equipo.

Para poder realizar la integración de los desarrollos cada programador debe poder conocer detalladamente qué objetos ha modificado, creado y eliminado.

Las líneas de separación entre objetos indican que el proyecto ha sido guardado.

En nuestro caso como queremos integrar los cambios desarrollados para una tarea concreta seleccionamos el proyecto que teníamos al iniciar la tarea y el proyecto final de nuestro desarrollo y con el botón derecha del ratón seleccionamos la opción comparar versiones del menú contextual.

La operativa de integración consiste simplemente en editar la solución del servidor corporativo en una ventana de Velneo vDevelop y la versión de nuestro servidor personal en otra ventana de Velneo vDevelop e ir copiando de uno a otro las modificaciones documentadas.

Para esto nos aprovechamos de la potencia del portapapeles que permite copiar cualquier objeto entre 2 Velneo vDevelop de la misma versión. Podemos copiar y pegar tanto un objeto como subobjeto y también podemos copiar y pegar múltiples objetos o subobjetos a la vez.

Paso 7. Marcar objetos a modificar

Para evitar que otro desarrollador pise mis modificaciones en un objeto que ya existe, antes de importar componentes de la solución debo cambiar el color del objeto con mi color asignado, cada desarrollador debe tener su color específico, de esta forma otro desarrollador cuando importe componentes antes de editar ese objeto verá que está con el color de otro desarrollador lo que implica que hay concurrencia de más de un desarrollador sobre el mismo objeto.

El desarrollador que se encuentra con el objeto de otro color diferente al negro debe ponerse en contacto con el otro desarrollador para consensuar los cambios que vayan a realizar en el objeto, ya que se puede acordar no integrar el objeto completo sino solo los subobjetos modificados.

Paso 8. Testeo en el servidor corporativo

Una vez actualizado el servidor corporativo, debemos realizar el testeo de nuevo en este servidor, para comprobar que se ha realizado correctamente la integración.

El paso de todos los test nos garantiza que hemos integrado todos los objetos y subobjetos y que no se ha producido ninguna incompatibilidad con el código desarrollado por otros miembros del equipo.

Además, el realizar las pruebas en Cloud nos garantiza que nuestros desarrollos están optimizados, ya que en caso contrario lo vamos a detectar.

Paso 9. Edición en modo solo lectura

Esto nos permite no solo ver los objetos sino también copiar los objetos del proyecto, sin necesidad de esperar a que el otro programador finalice y libere el proyecto.

También podemos acceder a un proyecto en modo solo lectura cuando no vamos a realizar modificaciones, dejándolo disponible para su edición y evitando problemas de bloqueos.

Paso 10. Actualizar servidor individual de desarrollo

De este modo el programador ya está en disposición de comenzar de nuevo el ciclo de desarrollo de una nueva tarea.

Recomendaciones

Para que un equipo de programadores sea lo más productivo posible y pueda trabajar de una forma cómoda y segura es necesario que los programadores compartan sus normas de programación, esto ayuda a que el código tenga mayor calidad y claridad lo que facilita que sea homogéneo y fácil de mantener por cualquier miembro del equipo.

Normalización

  • La organización de objetos en carpetas es muy útil para que al intentar acceder a un objeto lo podamos encontrar rápidamente.

  • Comentar bien el código que realizamos a fin de que cualquier otro programador lo pueda entender y mantener mejor.

Comunicación

La comunicación debe ser continua entre el equipo de programación, por lo que se recomienda disponer de un chat conjunto del proyecto.

Antes de abrir Velneo vDevelop cada programador debería conectarse al chat del equipo y ver si hay algún comentario relevante, que no haya leído para poder comenzar a programar.

Da igual el sistema que utilicemos, puede ser Skype, Hangout, Messenger, Mensajería interna, etc. lo importante es la comunicación directa e instantánea entre los miembros del equipo, y que la resolución de dudas sea ágil para facilitar un desarrollo continuo.

Es recomendable que la comunicación sea por escrito, independientemente de la localización física de los programadores. De esta forma no produce ruido ni distracciones en el ambiente de trabajo y permite que exista un histórico de todo lo comentado donde recurrir ante dudas o ausencias.

Realizar un vin de cada versión y revisión

Es recomendable que siempre que cerremos una versión o revisión, entendiendo por versión cualquier instalación o modificación del código para cliente final, realicemos una copia del código fuente.

Numeración de versiones

Es aconsejable tener definido un protocolo de numeración y que sea sencillo de leer e identificar la versión y revisión. Por ejemplo:

miapp_setup_1_0_5276

  • mi_app es el nombre del producto.

  • setup indica a los usuarios no programadores que es un fichero de instalación.

  • El 1 es el nº de versión.

  • El 0 es el nº de revisión.

  • 5276 es el nº historia. Es recomendable incluir algún dato identificativo que relacione el fichero vin con el código de la solución. Un buen dato puede ser el nº historia del proyecto de ejecución o el más representativo de nuestra solución.

Después crearemos una tarea en el servidor que se encargará de limpiar las versiones caducadas que no estén marcadas para no ser borradas, por ejemplo versiones o revisiones cerradas que nos pueden interesar mantener. .

Para esta primera instalación con datos debemos usar un fichero de instalación, con extensión .vin, creado con el componente que se instalará desde el componente .

A partir de esta primera instalación, si solo queremos actualizar el código fuente de los proyectos de una o varias soluciones será más cómodo y operativo utilizar la opción incluida en el menú soluciones de .

Se recomienda seguir un framework de desarrollo como u otra similar que se ajuste al equipo.

Si las modificaciones se han realizado en una sola sesión de edición con Velneo vDevelop podremos usar el botón de la toolbar , esta opción nos muestra la lista de objetos que debemos integrar.

Si las modificaciones se han realizado en varias sesiones o si queremos conocer con seguridad y al detalle las propiedades y subobjetos modificados nos permite comparar 2 versiones de un proyecto.

La funcionalidad de nos es muy útil durante la integración, ya que permite que mientras un programador tiene bloqueado un proyecto, el resto lo puedan abrir en modo lectura.

Una vez finalizada la integración en el servidor corporativo, el último paso que debemos realizar es la actualización de la solución de nuestro servidor personal. Para esta labor se recomienda utilizar la opción ya mencionada de .

El uso de normas a la hora de programar es imprescindible para desarrollar aplicaciones robustas y mantenibles. La documentación incluye un conjunto de , que pueden servir de base para que cada equipo defina las suyas. Para este fin podemos utilizar cualquier aplicación estándar o desarrollada por nosotros mismos.

. Son muchas las razones por las cuales programar utilizando abreviaturas en los identificadores de objetos. Tan importante como esto es que las abreviaturas sean de uso común, para lo que es importante contar con una base de datos con las abreviaturas, sus significados y sinónimos. En existe una base de datos de ejemplo que se puede usar de punto de partida.

Cada versión debe estar numerada e identificada de forma inequívoca. Con el uso de y la posibilidad de bloquear los proyectos, ya podemos disponer de la versión, pero siempre será más cómodo y seguro disponer de un instalable que incluye todas las soluciones y proyectos de una determinada versión.

Consultar la documentación y especificaciones del componente
Velneo vInstallBuilder
Velneo vAdmin
Ágil
Scrum
objetos/últimos modificados
Velneo vVersion
abrir un proyecto en modo lectura
buenas prácticas recomendadas
Diccionario de abreviaturas
Velneo vTutor
Velneo vVersion
Velneo vVersion
Velneo vDevelop
Importar soluciones compartidas
importar soluciones compartidas