Un modo intelligente di autorizzare / offuscare le applicazioni web finché il cliente non ha pagato

1

Sto facendo un lavoro a contratto per vari clienti e mi stavo chiedendo come fare per proteggermi dal mancato pagamento. I progetti saranno applicazioni Web ASP.NET, molto probabilmente basate su intranet.

Non ho altri dettagli oltre a quello. Immagino che il cliente vorrà eseguire e testare le applicazioni da parte sua prima di effettuare qualsiasi pagamento. C'è un modo per "confezionare" l'applicazione in modo che non possano accedere al codice sorgente? C'è un modo semplice per far sì che l'applicazione si interrompa dopo un certo numero di giorni, a meno che non sia "sbloccata" da me?

    
posta user982119 29.05.2013 - 15:02
fonte

4 risposte

8

A meno che non si installi l'applicazione ASP.NET su hardware di cui si è soli amministratori, no. Un cliente senza scrupoli può prendere senza pagare e pagare alcuni programmatori senza scrupoli per aggirare qualsiasi trappola che lasci.

Includere clausole nel tuo contatto che ti consentano di raccogliere sia le spese di interesse che quelle di riscossione se non riescono a pagare in tempo e richiedendo che distruggano i software che fornisci se rifiutano il prodotto finale. L'intero punto di avere un contratto è per quando le cose non vanno come previsto, e nessuna quantità di shenanigans nel programma permetterà al software di fare il lavoro di un contatto.

Naturalmente, detto questo, il modo per evitare del tutto il problema è di ospitare il codice di sviluppo da soli su qualcosa come Windows Azure, e installarlo solo sul proprio hardware dopo che è stato pagato per lo sviluppo. (La distribuzione e l'amministrazione sono funzioni separate che non puoi fornire o fatturare separatamente.)

    
risposta data 29.05.2013 - 15:45
fonte
4

Poiché la tua fonte deve essere sul server web e il server deve leggerlo, è piuttosto difficile proteggere il tuo codice a meno che tu non controlli il server da solo.

Il client vorrà vedere il prodotto funzionante, ma questo non deve necessariamente essere sul proprio server / rete. Se è possibile prendere in giro l'ambiente del cliente (database richiesti, ecc.) È possibile montare una macchina dimostrativa che dimostri che il lavoro è stato completato e che c'è un codice da consegnare in cambio di pagamento. (Se non riesci a farlo, come stai effettivamente sviluppando e testando l'applicazione?)

Detto questo, a meno che tu non abbia buone ragioni per mettere in discussione le intenzioni del tuo cliente, potrebbe essere controproducente essere troppo protettivi. Ci sono persone là fuori che cercheranno di rovinarti, ma se hai a che fare con una società legittima e hai accordi per iscritto, di solito stai bene. Se sei collaborativo e fiducioso, il cliente spesso ricambierà e potrebbe comportare più lavoro in futuro.

    
risposta data 29.05.2013 - 16:01
fonte
2

Puoi essere più specifico di ASP? L'ASP MVC standard ha tutti i modelli e i controllori compilati, quindi il client ottiene solo binari e viste. Mentre è molto più facile da decodificare che da C, è ancora più complicato che pagare lo sviluppatore. E poi puoi programmare in qualsiasi limite di tempo desideri.

Ho sempre avuto fortuna dividendo il lavoro in unità fatturabili più piccole. È molto più facile per un cliente pagare $ 1000 in 10 blocchi, più di $ 10000 tutti in una volta. Soprattutto se non ricevono la funzione successiva finché non li hanno pagati. Il caso peggiore e non pagano, sei solo in calo del 10% del tempo, e poiché il cliente vede progressi regolari nei checkpoint, sono più contenti (purché tu faccia un buon lavoro). Ognuno vince. Quindi puoi dare loro il primo pezzo di lavoro per dimostrarlo, poi una volta sistemato, ottengono il prossimo bit, e così via.

    
risposta data 29.05.2013 - 19:09
fonte
0

La rete intranet è chiusa al mondo esterno? Altrimenti potresti estrarre alcuni componenti dall'architettura e fornirli come un servizio su un server esterno che controlli, dato che l'architettura stessa lo consente.

    
risposta data 29.05.2013 - 15:56
fonte

Leggi altre domande sui tag