2010-01-28 14 views
12

Esistono molti tipi di classi di dati "primitive" per le piastre di caldaia che possono apparire in molti programmi diversi.Classi dati di business logic standard per .NET

Tuttavia, non ho mai visto una classe o un set di librerie che riconosca la necessità di combinare tutte queste cose con una logica comune richiesta per loro come la convalida.

classi Esempio ([] parentesi corrispondono alle classi anche in ipotetica libreria):

indirizzo (via, codice postale, città, stato/territorio/provincia, paese)
persona (nome, informazioni di contatto ([ Telefono]/[e-mail]/etc), [indirizzo], SSN/TIN, [CreditCard])
telefono (numero, prefisso internazionale, ecc)
credito (tipo, numero, scadenza, CCV) **

E sono sicuro che qualcuno potrebbe venire con un sacco di altri.

Ho sviluppato le mie classi di telefono/indirizzo/persona/carta di credito che utilizzo nei progetti, completo di convalida e logica.

Tuttavia, sono in grado di convalidare solo le informazioni basate negli Stati Uniti. La mia classe di numero telefonico sarebbe idealmente ereditata da una classe Phone di base, in quanto la mia effettivamente separa il numero in NPA, NXX e Station e la convalida pienamente con gli standard NANP.

C'è una serie di librerie in rete che ha una raccolta completa di tali classi di dati di piastra caldaia con una corretta validazione?

Include la convalida per un set di dati di tutto il mondo o solo per i dati degli Stati Uniti?

E per ** da CreditCard, è in grado di soddisfare gli standard PCI Data Security?

So che si tratta di corsi che molte persone hanno probabilmente scritto molte volte in molte lingue diverse, ma esiste una libreria .NET che soddisfi questi desideri?

Preferirei opens source/gratuito, anche se considererei un set di librerie di terze parti a pagamento.

+0

+1 per la domanda. Ogni volta che devo scrivere una nuova classe 'Address' mi trovo a pensare, * perché *? Penseresti che ci sarebbe persino uno "standard del settore" per questo genere di cose. – Aaronaught

+0

Esattamente, se avessi il tempo, creerei un set di librerie per questo scopo. Non posso garantire che sarei in grado di raggiungere lo scopo. –

risposta

6

CSLA.NET potrebbe offrire vicino a quello che stai cercando. Probabilmente ci vuole un po 'più di quello che stai chiedendo, ma ha una parte della documentazione più completa di qualsiasi framework (cioè libri pubblicati da APress). È anche gratuito.

In particolare lo spazio dei nomi CSLA.ValidationRules e le classi CommonRules e CustomRules si concentrano sulla convalida dei dati.

+0

Wow, sicuramente un fantastico framework per la creazione di business logic. Posso vederlo implementare in modo molto interessante molte funzionalità che ho visto in diversi progetti su cui ho lavorato in passato. Tuttavia, stavo guardando più verso una libreria/framework di "classi comunemente usate" che hanno un ampio campo di applicazione, come gli esempi che ho citato. –

1

Potrebbe essere utile disporre di uno schema per le implementazioni tipiche di vari oggetti all'avvio di un progetto, tuttavia le implementazioni effettive sarebbero specifiche, richiedendo comportamenti e requisiti di convalida specifici. Questo è probabilmente il motivo per cui gli strumenti di generazione di framework dell'oggetto ORM o Business richiedono uno schema di input per creare le classi.

Se esistesse un framework di classi standard, ovvero open source, si scoprirà che questo schema sarebbe enorme e in continua crescita, questo renderebbe difficile mantenere aggiornata un'applicazione. Ogni classe e proprietà di quella classe richiederebbe molta documentazione con i modi in cui potrebbero essere utilizzati, ecc., Ma ciò potrebbe essere soggettivo.Uno schema in cui è possibile selezionare ciò che desiderano e come deve essere convalidato, da utilizzare in un framework di generazione ORM/Business Object potrebbe essere una buona idea e sono sicuro che attualmente non esistano.

Si potrebbe dare un'occhiata a specifici progetti open source esistenti con funzionalità simili e utilizzarli come fonte di ispirazione?

Problemi correlati