Domanda

sto pensando di costruire una base di codice per la mia azienda - per contenere librerie, classi, ecc.sviluppato internamente dai dipendenti e utilizzato in diverse applicazioni nel tempo.Lo scopo sarebbe la riusabilità del codice nel tempo.La piattaforma che mi rivolgo è solo .NET: winForms, WPF, WEB, Silverlight e altri.Stavo pensando di creare una soluzione che contenesse 2 progetti per ciascuna tecnologia: 1 contenente il codice e l'altro come sito di test per quel codice.Quale sarebbe la soluzione migliore per gestire tutte queste diverse tecnologie e codici, cosa ne pensi?

È stato utile?

Soluzione

Questo può essere molto più difficile di quanto potresti immaginare.Dipende in gran parte dal tipo di azienda in cui lavori, dal tipo di lavoro che svolgono e dalla portata delle tue ambizioni.

Innanzitutto, probabilmente non vuoi creare un "framework".Hai già .NET Framework.Forse vuoi concordare un set comune di controlli personalizzati.Ce ne sono molti tra cui scegliere.Ti sconsiglio vivamente di provare a scrivere il tuo set di controlli personalizzati che verranno riutilizzati in molti progetti.Lo sviluppo di una libreria di controlli personalizzati coerente e coerente è un lavoro enorme di per sé e le misure a metà strada che funzionano per un progetto specifico falliscono miseramente quando si tenta di spostarle su altri progetti.

Ho visto una società di consulenza (che per lo più realizzava applicazioni aziendali .NET personalizzate per i clienti) provare a riutilizzare il codice, e soprattutto non era carino.Prendere il codice che è stato scritto e che funziona in un'applicazione personalizzata e spostarlo in un'altra applicazione personalizzata è molto più difficile di quanto sembri.Troppo spesso, quella parte di codice "generale" fa supposizioni sull'applicazione complessiva o dipende da una parte di codice specifico dell'applicazione e rimuovere tale dipendenza è molto difficile.

Ora, se ti trovi in ​​un ambiente in cui tutti lavorano su programmi che elaborano gli stessi tipi di dati, probabilmente puoi sfruttare un insieme comune di moduli di accesso e reporting ai dati e alcuni algoritmi comuni.Stai attento qui, però.Qualsiasi codice condiviso deve avere il minor numero possibile di dipendenze.Altrimenti, i potenziali clienti (ad es.altri programmatori) preferiranno crearne uno proprio piuttosto che "includere il mondo".

Dici di voler costruire una base di codice che contenga "librerie, classi, ecc.sviluppato internamente dai dipendenti e utilizzato in diverse applicazioni nel tempo." Per me questo significa che vuoi condividere il codice tra progetti disparati, o almeno prendere il codice che è stato scritto per un progetto e usarlo in un altro.È un obiettivo lodevole, ma spesso difficile.Come ho indicato sopra, c'è una grande differenza tra scrivere codice che funzioni per un singolo progetto e scrivere codice che possa essere utilizzato da più progetti con un minimo di dipendenze.Possibile, ma difficile.E richiede tempo.

Altri suggerimenti

Se siete dopo riutilizzo del codice, è necessario identificare comunanza indipendentemente dal fatto che l'eventuale interfaccia utente è WinForms, WPF, Silverlight, WebForms o qualsiasi altra cosa.

Ad esempio, se si ha una classe che ha calcolato un rimborso del prestito, non si vuole avere una versione per ogni tecnologia. Volete solo una DLL che è possibile utilizzare ovunque e passare in una richiesta e ottenere un risultato.

Si consiglia inoltre di garantire che il vostro accesso ai dati è più data-centric piuttosto che UI-centric, per esempio, garantire che solo uno parla "Service" per una tabella di database, per garantire che nulla sopra che "servizio" è colpiti da eventuali modifiche alla tabella, o database anche.

In sostanza, il mio punto è quello di basare il vostro codice comune su fette verticali distinti di funzionalità e non basarlo sulla eventuale che visualizza le informazioni di interfaccia utente. Se si scrive buon codice, si dovrebbe essere in grado di mettere qualsiasi utente sopra la parte superiore (o anche di più interfacce utente sopra la parte superiore).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top