Diciamo che abbiamo un progetto che gestirà molti dati (impiegati, calendari, calendari .... e molto altro). Il client è Windows App, il lato server è WCF. Il database è MS SQL Server. Sono confuso su quale approccio usare. Ho letto alcuni articoli e blog che sembrano tutti carini, ma sono confuso. Non voglio iniziare con un approccio e poi rimpiango di non aver scelto l'altro. Il progetto avrà circa 30-35 tipi di oggetti diversi. Un sacco di dati recupero per popolare diverse relazioni ... eccquale design è migliore per un progetto client/server con molta condivisione dei dati
Approccio 1:
// classes that hold data
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
.....
}
public class Assignment
{
public int Id { get; set; }
public int UserId { get; set; }
public DateTime Date { get; set; }
.....
}
.....
classi Poi Helper per affrontare il salvataggio e il recupero dei dati:
public static class Employees
{
public static int Save(Employee emp)
{
// save the employee
}
public static Employee Get(int empId)
{
// return the ugly employee
}
.....
}
public static class Assignments
{
public static int Save(Assignment ass)
{
// save the Assignment
}
.....
}
saluti, il le classi di oggetti come Dipendenti e Assegnazione si troveranno in un Assemblaggio separato da condividere tra Sever e Client. Ad ogni modo, con questo approccio avrò un oggetto più pulito. Le classi Helper faranno la maggior parte del lavoro.
Approccio 2:
// classes that hold data and methods for saving and retrieving
public class Employee
{
// constructors
public Employee()
{
// Construct a new Employee
}
public Employee(int Id)
{
// Construct a new Employee and fills the data from db
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
.....
public int Save()
{
// save the Employee
}
.....
}
public class Assignment
{
// constructors
public Assignment()
{
// Construct a new assignment
}
public Assignment(int Id)
{
// Construct a new assignment and fills the data from db
}
public int Id { get; set; }
public int UserId { get; set; }
public DateTime Date { get; set; }
.....
public int Save()
{
// save the Assignment
}
.....
}
.....
Con questo approccio, ogni oggetto farà il suo lavoro .. I dati ancora può essere trasferito da WCF per cliente facilmente dal WCF solo le proprietà delle azioni.
Approccio 3:
Utilizzando Entity Framework .. oltre al fatto che non ho mai lavorato con lui (che è bello perché devo imparare qualcosa di nuovo) ho bisogno di creare pocos per trasferire i dati tra client e WCF ..
Ora, qual è il migliore? più opzioni?
Una buona domanda, ma forse una soluzione migliore per i programmatori. – jwiscarson