Avatar billede chrisrj Forsker
21. marts 2003 - 22:15 Der er 37 kommentarer og
2 løsninger

Komponent arkitektur - hvordan?

Fortsættelse af http://www.eksperten.dk/spm/331412

Jeg er igang med at lave et projekt, men jeg har problemer med at finde ud af hvilken komponent arkitektur jeg skal vælge og hvorfor.

Det drejer sig om en form for webshop lavet i ASP/MySQL - det er kun denne del af systemet der er relevant for projektet.

Det er naturligt nok at det skal være en klient/server løsning, men jeg kan ikke rigtigt finde ud af, hvor jeg skal ligge mine klasser(dvs. .asp sider)
Avatar billede bufferzone Praktikant
21. marts 2003 - 22:25 #1
Avatar billede chrisrj Forsker
21. marts 2003 - 22:27 #2
Det er ikke teori jeg mangler, men praktisk hjælp. :)
Avatar billede bufferzone Praktikant
21. marts 2003 - 22:28 #3
Der må jeg nok melde pas
Avatar billede chrisrj Forsker
21. marts 2003 - 22:29 #4
Øv... :(
Avatar billede arne_v Ekspert
21. marts 2003 - 22:29 #5
Det er jo formentlig en meget almindelig 3 tier løsning:

tier 1 : browser
tier 2 : web-server (IIS & ASP)
tier 3 : database-server (MySQL)

tier 1 & 2 kommunikerer med HTTP eller HTTPS
tier 2 & 3 kommunikerer med ODBC

Der skal udvikles til tier 2 (ASP sider) og tier 3 (tabel struktur).

Tier 2 bør definitivt laves med MVC.

Men så slipper min ASP viden op.

Jeg ved ikke hvordan man laver MVC i ASP.

Jeg ved ikke hvordan man laver ASP komponent baseret (man kan
selvfølge skrive COM moduler i C++ og bruge dem, men det er vist
at jage fluer med Leopard kampvogne).
Avatar billede chrisrj Forsker
21. marts 2003 - 22:32 #6
Hvad er MVC??

"Jeg ved ikke hvordan man laver ASP komponent baseret"
Det gør jeg heller ikke - så det springer jeg let hen over. :)

"(man kan selvfølge skrive COM moduler i C++ og bruge dem, men det er vist
at jage fluer med Leopard kampvogne)."
:D
Avatar billede chrisrj Forsker
21. marts 2003 - 22:34 #7
Det er også nogle enkelte Java-ting i shoppen. F.eks. menuen...Men ikke noget vigtigt...Så det er vel ligemeget i forhold til arkitekturen?
Avatar billede arne_v Ekspert
21. marts 2003 - 22:35 #8
MVC = Model View Control

En separation af en sådan en applikation som du vil lave i 3 dele.
Avatar billede chrisrj Forsker
21. marts 2003 - 22:37 #9
Øhhh, er det, det samme som Lars Mathiassen kalder "modelkomponenten" i OOA&D?
Avatar billede arne_v Ekspert
21. marts 2003 - 22:39 #10
Avatar billede arne_v Ekspert
21. marts 2003 - 22:41 #11
Ved jeg ikke.
Avatar billede chrisrj Forsker
21. marts 2003 - 22:44 #12
Passer det ind i Mathiassens OOA&D? - jeg udvikler nemlig efter hans røde bog. :)
Avatar billede arne_v Ekspert
21. marts 2003 - 22:47 #13
Som sagt det ved jeg ikke. Jeg kender nemlig ikke den bog.

MVC er meget udbredt til GUI og til web applikationer udviklet med
Java teknologi. Jeg formoder det også bruges til web applikationer
lavet i ASP.
Avatar billede chrisrj Forsker
21. marts 2003 - 22:48 #14
Måske...

ASP bliver, i modsætning til JAVA, udelukkende afviklet på serveren.
Avatar billede chrisrj Forsker
21. marts 2003 - 22:50 #15
Mathiassen definere modelkomponenten sådan her:

"En del af et edb-system, som realiserer en model af et objektsystem"
Avatar billede arne_v Ekspert
21. marts 2003 - 22:52 #16
Øh.

Den slags web applikationer jeg snakke rom bliver også kun afviklet
på server.

Java applets var et legetøj som var moderne sidst i sidste halvdel
af 90'erne.

Web applikation baseret på Java teknologi bruger JSP, servlets og
måske EJB's. Ingen applets. Og næsten altid MVC i forskellige varianter.
Avatar billede arne_v Ekspert
21. marts 2003 - 22:54 #17
Jeg tror ikke at det er det samme.

MVC er mere et pattern end det er en del af en udviklings-proces.
Avatar billede chrisrj Forsker
21. marts 2003 - 22:56 #18
Nå, så er det nok ikke det jeg skal bruge... :|
Avatar billede arne_v Ekspert
21. marts 2003 - 22:59 #19
Jeg har lige søgt lidt mere.

Det lader til at MVC bruges i ASP.NET !

http://www.dmbcllc.com/asp_mvc.aspx
http://www.zdnet.com.au/builder/architect/sdi/story/0,2000035062,20268200,00.htm
Avatar billede arne_v Ekspert
21. marts 2003 - 22:59 #20
Så hvis du skal bruge ASP.NET i.s.f. ASP så er der lidt at komme efter.
Avatar billede chrisrj Forsker
21. marts 2003 - 23:00 #21
Det tror jeg gerne - ASP.NET er også mere c++ agtigt. :)

Men det skal jeg ikke bruge til dette projekt. :(
Avatar billede arne_v Ekspert
21. marts 2003 - 23:11 #22
Jeg er ikke sikker på at ASP er optimalt til at illustrere
udviklings-processer.

ASP udvikling har ikke ligrefrem ry for at være gode eksmepler
på OOA&D !

Microsoft har med ASP.NET forsøgt at lave noget der ligger mere
op til en pænere udviklings-process.
Avatar billede chrisrj Forsker
21. marts 2003 - 23:12 #23
Nej, det er jeg enig i!!

Sådan, som jeg ser det(indtil videre), er det sådan her:

Kompoment Indkøbscentralen:
Kompoment brugergrænseflade
Kompoment model
Kompoment databasesystem

I nævnte rækkefølge.

Der skal så argumenteres, at der ikke er en funktionskomponent eller systemgrænsefladekomponent. :(
Avatar billede arne_v Ekspert
22. marts 2003 - 16:51 #24
Kan de kaldes komponenter ?

OMG/UML definition: A component represents a modular, deployable, and
replaceable part of the system that encapsulates implementation and
exposes a set of interfaces.

3 amigos/UP definition: A component is the physical packaging of model
elements, such as design classes in the design model.
Avatar billede chrisrj Forsker
22. marts 2003 - 21:38 #25
Det er mig der har stavet forkert. Ja, det er komponenter.

En komponent efter Mathiassen:
"En samlet af programdele, der udgør en velafgrænset helhed og har et veldefiniret ansvar."
Avatar billede arne_v Ekspert
22. marts 2003 - 21:50 #26
Ja med den definition kan selv ASP jo bruges til at lave
komponenter.

:-)
Avatar billede arne_v Ekspert
22. marts 2003 - 21:58 #27
Det er indlysende at databasen kan opfattes som en komponent.

Indkøbscentral er jeg ikke helt sikker på hvad er, men det kunne
godt lyde som en komponent.

De andre er jeg lidt mere skeptisk overfor.

Brugergrænseflade vil jeg ikke kalde en komponent. Men jeg er altså
også mere vant til lidt snævrere definitioner af komponent (se ovenfor).

Og model er vel noget bredere end en komponent.

Jeg ville nok snarere dele det op efter funktionalitet:
  - login og bruger administration
  - ordreafgivelse og ordrevisning
  - ordre behandling (videreekspedering)
  - betaling
  - rapportering
  etc.
Avatar billede chrisrj Forsker
22. marts 2003 - 23:49 #28
Det lyder da også som god ide, der er bare den lille detalje at jeg kun skriver om bruger-delen af systemet.

Dvs. alle former for administration er ikke med i mit projekt.


Her er et uddrag fra en anden rapport om et andet web-baseret projekt:

"3.1.3 Kombination af traditionel- og web-applikation

Der er også muligheden for at kombinere en traditionel klient applikation med en web-applikation.
En webapplikation, der afvikles på serveren, kan have samme komponentarkitektur som en traditionel klient applikation, f.eks. en
brugergrænseflade-, model- og database komponent.
Komponentarkitekturen for vores system ser på nuværende tidspunkt således ud:

Figur: 3.1 Komponentarkitektur
___________________________________________________________
|system                                                                  |
|
_________________________________________________________
|brugergrænseflade|  |Model( med funktioner )| |database|
---------------------------------------------------------
|__________________________________________________________|

I dette eksempel giver brugergrænseflade komponenten og database komponenten
sig selv.
I webapplikationer laver man ofte meget af funktionaliteten i
brugergrænseflade komponenten.
Vi har dog i tidligere projekter oplevet, at man ikke altid kan nøjes med det. Derfor vil vi, fra start af, indføre en modelkomponent med funktioner.
Det giver os mulighed for at fjerne noget af funktionaliteten fra brugergrænseflade komponenten, og placere det i en modelkomponent i stedet."

Det er blandt andet derfor jeg er i tvivl... :/
Avatar billede arne_v Ekspert
23. marts 2003 - 10:53 #29
Man kan godt lave en fat client med en arkitektur der
ligner en thin client (web application).

Den model komponent de snakker om er tilsyneladende lidt
af det samme som traditionel adskillelse af presentation
og business logic.

[og så når man også udskiller control bliver til MVC]

Hvad kan man i ASP ?

Kan man lave et library af VB kode som man kalder fra sin ASP ?
Avatar billede chrisrj Forsker
23. marts 2003 - 11:53 #30
Måde de har delt det op på, er den samme vi brugte til et andet projekt - det var et simpelt program lavet i c++ kørende på en Interbase database.

udsanget:

"En webapplikation, der afvikles på serveren, kan have samme komponentarkitektur som en traditionel klient applikation"

Passer også meget godt på mit projekt.


"Den model komponent de snakker om er tilsyneladende lidt
af det samme som traditionel adskillelse af presentation
og business logic."
ok

"Hvad kan man i ASP ?"
Høh, meget! :)
Ej, er der noget specifikt du tænker på?

øhh, hvad er et library?
Avatar billede arne_v Ekspert
23. marts 2003 - 12:05 #31
Er library er noget kode som man kan kalde.

Hvis man skal have adskilt presentation og business logic, så
må presentation skule være HTML genereret fra ASP side. Men
hvad skal business logic være ?

Mit gæt som ASP ignorant er at det skal være et library af VB
kode som kaldes fra den embedded VB i ASP siderne.
Avatar billede chrisrj Forsker
23. marts 2003 - 13:28 #32
"Hvis man skal have adskilt presentation og business logic, så
må presentation skule være HTML genereret fra ASP side. Men
hvad skal business logic være ?"

Hvis du mener lige præcist det du siger(ren html), og ikke andet, så sker der jo mange andre ting i koden - som f.eks. beregninger og database kald.

Men det er vel ikke det du mener, vel?


"Mit gæt som ASP ignorant er at det skal være et library af VB
kode som kaldes fra den embedded VB i ASP siderne."

Der er ikke noget der bliver kaldt på den måde.
Det nærmeste man kommer på det, er når man sender data fra en side til en anden.
Avatar billede arne_v Ekspert
23. marts 2003 - 14:03 #33
Jo fordi beregninger og database kald jo netop ikke er
presentation men business logic.

Hvis man ikke kan flytte sin kode over i et library, så
er man jo næmest tvunget til at blande presentation og
business logic.

Og det må også blive svært at skelne mellem brugergrænseflade
komponent og model komponent.
Avatar billede chrisrj Forsker
23. marts 2003 - 14:15 #34
"Hvis man ikke kan flytte sin kode over i et library..."
Altså, man KAN godt, men normalt gør man det ikke fordi koden normalt kun skal bruges et sted.

"Og det må også blive svært at skelne mellem brugergrænseflade
komponent og model komponent."

Ja. :(
Det er lige præcist det er mit problem...
Avatar billede chrisrj Forsker
24. marts 2003 - 13:10 #35
Hvad så arne_v?
Er du gået kold, eller har du bare travlt med andre ting? :)
Avatar billede arne_v Ekspert
24. marts 2003 - 16:22 #36
Lidt af begge dele.

Mine manglende ASP kundskaber gør at jeg ikke rigtigt kan
komme med nogle gode råd.

Og så har jeg da også andre småting: arbejde, kone, hus, hund, bil etc..

:-)
Avatar billede chrisrj Forsker
24. marts 2003 - 19:57 #37
"Mine manglende ASP kundskaber gør at jeg ikke rigtigt kan
komme med nogle gode råd."
Hmmm....
Så må jeg nok hellere ty til det der står i den anden rapport. :/

Småting? ;)

Ja, jeg har da også een af de ting du nævner, nemlig en hund. :)
Avatar billede chrisrj Forsker
01. april 2003 - 12:53 #38
Hvaa' arne_v, smider du ikke lige et svar, så du kan få lidt point for din tid??
Avatar billede arne_v Ekspert
01. april 2003 - 13:07 #39
Okey dokey.
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
Kurser inden for grundlæggende programmering

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