Me gustaría saber cómo programar mejor tres ediciones diferentes de mi aplicación C# ASP.NET 3.5 en VS2008 Professional (que incluye un proyecto de implementación web). Tengo una edición (o versión) Light, Pro y Ultimate de mi aplicación. Por el momento, puse todo en una sola solución con tres versiones de compilación en el administrador de configuración y uso directivas de preprocesador en todo el código (hay alrededor de 20 compilaciones en unas diez mil líneas de código, por lo que es supervisable):Cómo programar tres ediciones Light, Pro, Ultimate en una solución
#if light
//light code
#endif
#if pro
//pro code
#endif //etc...
He leído en stackoverflow durante horas y he pensado en encontrar cómo, por ejemplo Microsoft hace esto con sus diferentes ediciones de Windows, pero no encontró lo que esperaba. En algún lugar hay una fuerte discusión sobre si las directivas de los preprocesadores son malas.
Lo que me gusta con esas # IF-directivas es:
- el código de lado a lado de las diferencias, así que comprenderán el código para los ediciones diferentes después de seis meses
- y el beneficio especial para no dar código compilado a cabo de otras versiones para el cliente.
OK, explicación larga, pregunta repetida: ¿Cuál es la mejor manera de hacerlo?
Muchas gracias por esta respuesta. He leído mucho sobre las claves de licencia y otros ... Mi opinión actual es esforzarme mejor en el desarrollo de nuevas funciones que invertir tiempo en licencias/ofuscación que lo complica todo y que los piratas informáticos eluden fácilmente. Dado que esta es una aplicación ASP.NET, utilizada en corporaciones: - Envío la edición correcta (Light, Pro ..) a cada compañía - y cargo por año - cerca del final de la licencia aparece un recordatorio (También llamo al cliente) - si no se realiza ninguna renovación, una bomba de tiempo detiene la ejecución - al renovar el envío de una nueva aplicación con bombilla de tiempo diferida – Henry99