Mi piacerebbe sapere come programmare al meglio tre diverse edizioni della mia applicazione C# ASP.NET 3.5 in VS2008 Professional (che include un progetto di distribuzione Web). Ho una versione (o versione) Light, Pro e Ultimate della mia applicazione. Al momento ho messo tutto in una soluzione con tre versioni di build in Configuration Manager e utilizzo le direttive del preprocessore in tutto il codice (ci sono circa 20 di tali costrutti in circa diecimila righe di codice, quindi è overmabile):Come programmare tre edizioni Light, Pro, Ultimate in un'unica soluzione
#if light
//light code
#endif
#if pro
//pro code
#endif //etc...
Ho letto in stackoverflow per ore e ho pensato di incontrare come ad es. Microsoft lo fa con le sue diverse edizioni di Windows, ma non ha trovato quello che mi aspettavo. Da qualche parte c'è una discussione pesante su se le direttive del preprocessore sono malvagie.
Quello che mi piace con quegli # Se direttive è:
- il codice side-by-side delle differenze, così capirò il codice per i diverse edizioni dopo sei mesi
- e il vantaggio speciale di NON fornire codice compilato di altre versioni al cliente.
OK, lunga spiegazione, domanda ripetuta: Qual è il modo migliore per andare?
Grazie mille per questa risposta. Ho letto molto sui codici di licenza et al .. Il mio attuale parere è quello di mettere meglio la maggior parte dello sforzo nello sviluppo di nuove funzionalità rispetto al tempo di investire in licenze/offuscamenti che complica tutto e viene facilmente aggirato dagli hacker. Poiché si tratta di un'applicazione ASP.NET, utilizzata nelle aziende: - Invio l'edizione corretta (Light, Pro ..) a ciascuna società - e addebito entro l'anno - vicino alla fine della licenza viene visualizzato un promemoria (Chiama anche il cliente) - se non viene effettuato alcun rinnovo, una timebomb ferma l'esecuzione - al rinnovo invio una nuova app con timebomb differito – Henry99