Avatar billede jimgordon Nybegynder
11. september 2006 - 09:18 Der er 6 kommentarer og
2 løsninger

Generics / AOP vs. 3 tier ADO.NET

General arkitekturovervejelse om AOP, generics, collections, ADO.NET, 3-tier......

Er der nogen der har læst:
"Casting from a Collection to a Data Table using Generics and Attributes". http://www.codeproject.com/csharp/coreweb01.asp

Meget smart med en collection der kan castes til en DataTable.

Men kan vist ikke få det smarte ind i hovedet. Jeg vil hellere anvende ADO.NET i en 3-tier opbygning. Så har man et businness lag med et dataset / datatabel der kan databinde direkte til en GUI samt direkte opdatere igennem et datalag ned til databasen.

Hvorfor arbejde med collections når man kan arbejde med datasets i en 3-tier arkiktektur? Arbejder altid med en backend database. Er et collectionsstyret forretningslag kun når man ikke er afhængig af en database?
Avatar billede dr_chaos Nybegynder
11. september 2006 - 09:36 #1
fordelen ved generics er at det er strongly typed.
Det vil sige at du f.eks. kan lave en list med bruger objekter og du kan få adgang til alle properties uden at skulle type caste.

Personligt synes jeg bedre om at sende en collection rundt end et dataset.
Hvis man ikke har behov for at store data i custom objekter. så kan du sagtens bruge datasettet.
Avatar billede segato Nybegynder
11. september 2006 - 12:17 #2
Jeg bryder mig heller ik om datasets som chaos skriver er de typed. Derudover er de langsommere.
Avatar billede arne_v Ekspert
11. september 2006 - 18:34 #3
Min mening er at et type safe data set er helt fint til 2 layer:

UI--(data set)--DA

men jeg kan ikke lide det i en 3 layer:

UI--(data set)--BL--(data set)--DA

fordi et data set er grundliggende en data ting og det er ikke en god seperation
mellem BL og DA at BL bruger en DA specifik type

UI--(collection)--BL--(data set)--DA

kunne måske bruges, men umiddelbart virker

UI--(collection)--BL--(collection)--DA

mere logisk.

Men vi er ovre i den slags hvor der ikke nødvendigvis er et rigtigt svar.

Det er kun min mening.

Spørg 10 andre og du får 11 forskellige svar.
Avatar billede websam Nybegynder
11. september 2006 - 20:04 #4
og hvis i er ude i at snakke om hastighed så lavede jeg en test på Dataset, generics, og arraylist. Dataset's er klart langsommere end de 2 andre, men arraylist er hurtigere end generics, dog ikke det vilde med der var forskel ;o)

Jeg har forøvrigt benyttet arne_v's forslag med UI--(collection)--BL--(collection)--DA og det virker super ;o)

/Websam
Avatar billede jimgordon Nybegynder
12. september 2006 - 13:45 #5
UI--(collection)--BL--(collection)--DA

Jeg giver Arne ret, da det ikke er optimal for ens OOP tankegang at slæbe rundt med et dataset i BL, da ens forretningslogik-klasser bliver tæt koblet til logikken i databasen.

Kender noglen et link til en demo af konstellationen:
UI--(collection)--BL--(collection)--DA

Alle: smid nogle svar.
Avatar billede dr_chaos Nybegynder
12. september 2006 - 13:48 #6
svar :)
Arne kender med garanti et link.
Avatar billede arne_v Ekspert
12. september 2006 - 15:59 #7
.

jeg har faktisk ikke lige nogle gode links liggende og Google er ikke så
koorperativ

http://www.code-magazine.com/article.aspx?quickid=0607071&page=5 listing 5 er
dog ikke helt ved siden af
Avatar billede jimgordon Nybegynder
13. september 2006 - 13:30 #8
Tak for input dropper DA og bruger en gang persistent objects:
http://www.devexpress.com/Help/?document=XPO
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester