Avatar
Laura Nicolàs
Superadministrador
Laura Nicolàs

Hola ago,

  • En una licencia OnPremise de cliente, vienen 100 codeunits. (son las tablas, que vienen 10)
  • Si se necesitan más, se pueden comprar nuevos paquetes de 100 unidades.

Se que lo de «comprar» objetos es un rollo, y si podemos lo intentamos evitar, pero lo he comentado porque no te tienes que sentir limitado por los 100. Si se necesitan más porque el proyecto lo requiere, sale mas barato comprar objetos, que hacer inventos para aprovechar los objetos que ya tienes, porque complicas el mantenimiento, que al final el tiempo y dinero.

  • Para hacer testing necesitas -por lo menos- 1 codeunit de tipo test.
    Si el proyecto es grande, y tienes distontos módulos, posiblemente te interesará separar los tests por módulos. En el proyecto en el que estamos nosotras ahora ya vamos por 13 codeunits de test.
  • En muchas ocasiones necesitas también librerías de test (en una codeunit a parte), para que te ayuden a crear los datos que necesitas para el test. En nuestro proyecto tenemos una librería para cada módulo, por lo que ya van otras 13 codeunits.
  • Para hacer testing no necesitas crear una nueva testrunner. El estandard ya trae un testrunner y lo puedes usar.
    A mi me gusta crear uno a parte, porque así voy mucho más rápida en ejecutar los tests ya que lo hago con PowerShell. Si ahorro tiempo, ahorro dinero (mucho más que el que cuesta la codeunit).

Así, en el proyecto en el que estamos nosotras ya vamos por 27 codeunits dedicadas al testing.
¿Cuentan para la licencia? Si y no. Depende.

  • Los tests, se deberían publicar únicamente en un entorno de test/desarrollo. Nunca en producción.
  • Para ello, tenemos 2 extensiones. La primera contiene la funcionalidad, la segunda contiene los tests.
  • En producción, publicamos solo la app que tiene la funcionalidad. Así, la licencia del cliente solo tiene que tener en licencia los objetos usados para la funcionalidad.
  • En en entorno de test utilizo mi licencia de partner, por lo que no tengo limitaciones en las numeraciones.
  • Si el cliente tuviera desarrolladores InHouse y necesitara un entorno de desarrollo con su licencia, entonces sí que necesitaría tener los objetos del test en licencia.

Y también estan, como decías, las codeunits de Install y las de Upgrade.
Y ahora en el ScaleUp 2020 hablaremos de las interfaces… que también usan muchas codeunits.

En general, para una buena arquitectura -robusta y escalable- , es recomendable que cada objeto sirva para una cosa y solo una.
Terminas con muchos más objetos -que hay que comprar-, pero trabajas mucho mejor.

Salut!
Laura Nicolàs

#14833