27. maj 2009 - 05:42Der er
11 kommentarer og 1 løsning
tutorial eller bog henvisning
Hej! Jeg står i en situation, hvor jeg skal lave en e-shop site. Her skal jeg bl.a. registrer kundeoplysninger, vareoplysninger osv.
Jeg har lavet al forarbejdet i databasen. Det som har problemer med er, at forstå hvordan jeg omsætter database designet til classer med dertilhørende medlemmer (læs properties, methods osv.).
Eks. har jeg en tabel som hedder kunde_info, denne indeholder følgende kolonner (afgrænset); Navn, Adresse, Ordrenr osv. (Ordrenr er en sekundær nøgle, som referer til en anden tabel kaldet Ordrenr).
Jeg har tilsvarende lavet en classe også kaldet kunde_info, som indeholder navn, adresse.. Herefter har jeg lavet en ny classe kaldet Ordrenr. som indeholder følgende properties, ordrenr, varenavn, varepris, osv.
Det som jeg er usikker på og mangler bedre teoretisk indblik i er hvordan man bygger classer op udfra database designet. (forstå mig ret, jeg har helt styr på C#, classer, methods, properties osv. Kodningen er ikke problemet). Men det er designet der forvirrer mig. Eks. o databasen har jeg relationer mellem tabellerne ved. af sekundære nøgler, men hvad så med classer, laver man overhovedet en relation her mellem eks. Kunden og hans ordrenr. Det som også driller mig er; når jeg laver en classe udfra en tabel, er det så samtlige kolonner der skal laves som properties i en classe? Det er alle disse design ting som står sløret overfor mig.
Den eneste gode bog jeg har kunne finde omkring emnet er "ASP.NET 2.0 Everyday Apps For Dummies". Men det som jeg godt kunne tænke mig var en bog eller lign. som i mere grundigt forklarer design principper (eller hvad man nu skal kalde det), helst gerne uden asp.net og i stedet med fokus på ren C# og databaser.
Samtlige at de bøger jeg kan finde omhandler enten C# sproget og så hvordan man skriver, henter data fra databaser. Eller også gøres der alt for meget brug af ASP.NET kontroller.
Jeg håber at det er til at forstå, hvad jeg mener. Det er lidt svært at forklare det. Spørg gerne ind til hvad jeg helt præcist mener.
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Tak for svaret. Jeg vil kigge dem efter. Dog vil jeg sige at MVC ønsker jeg ikke at rode mig ud i. og det med at benytte mig af en O/R Mapper er heller ikke noget jeg ønsker at bruge, (ihvertfald ikke før jeg mesterer emnet).
Men den første bog vil jeg downloade i pdf form og kigge efter. Dog er jeg allerede på nuværende tidspunkt sikker på at der vil være alt for meget asp.net i det.
Hvis jeg forstår dig ret, så har du en Customer tabel og en Orders tabel. I Orders tabellen har du en foreign-key til Customer tabellen.
I C# ville jeg ha lavet en Customer klasse og en Orders klasse. Customer klassen indeholder properties for alle kolonner i Customer tabellen. I tillæg har den en collection for dens Orders. For at undgå at måtte hente alle ordre hver gang du henter en kunde, skal du sørge for at Orders collectionen først bliver loaded når den skal bruges. Eksempeltvis sådan:
public class Customers { //Her kommer mange properties (UserId, navn, adresse, o.l.)
private List<Order> _orders = null; public List<Order> Orders { get { if (_orders == null) _orders = FetchOrdersFromDatabase(UserId)
return _orders; } } }
På denne måde kan du hente en Customer fra databasen. Når der er noget i din kode der henviser til myCustomer.Orders, da vil alle kundens ordre automatisk blive hentet op fra databasen. Hvis kunden sletter,opdaterer eller opretter en ordre, sætter du bare _orders = null, for da vil den automatisk blive hentet op på nyt, næste gang den skal bruges.
Tak for indlægget! Det giver ganske god mening. Men det eksempel jeg har nævnt mht. kunde og ordre tabeller og classer er blot eksempler, der har til formål at udpensle mit problem. Det var ikke meningen at der skulle fremsættes kode eksempler.
Det jeg er ude efter er noget i retning af det som "keysersoze" kom med, nemlig bog referencer.
Jeg søger en grundig indføring i emnet. Jeg har indtil videre kun stødt ind på "ASP.NET 2.0 Everyday Apps For Dummies" der omhandler C# og layered application design. (Har endnu ikke fået set på (ASP.NET 2.0 Website Programming: Problem - Design - Solution).
der er faktisk ikke specielt meget kode i den bog - rigtig meget af bogen går på forklaring og valg. Man har ikke programmeret hele The Beer Shop når bogen er gennemgået, men man har fået forklaret hvordan tingene hænger sammen.
Men når det så er sagt er den bog jo kun ét eksempel på hvordan opbygningen kunne være - det er ikke nødvendigvis den rigtige i alle tilfælde.
Jeg har nu haft mulighed for at skimme pdf udgave af bogen; "ASP.NET 2.0 Website Programming - Problem-Design-Solution" Det var desværre ikke det, som jeg ledte efter (tror faktisk at jeg allerede har skimmet den i gennem for noget tid siden).
Problemet med denne bog er, at den kun omhandler "Architecture" konceptet i kapitel 3. Her får emnet en blandet behandling. Der bruges en del asp.net kontroller især til database interaktivitet (hvilket også er i ledtråd med forfatteren hensigt, da han ønsker at vise asp.net 2.0's nye funktioner). Men det er bare ikke det som jeg leder efter.
Takker dog alligevel for henvisningen.
Ønsker dog lige at gøre klart, at de 200 points nok skal blive delt ud uanset hvad. Omend ikke andet, så bliver det blot til den som kommer med det "bedste svar".
jeg kan ikke huske de enkelte kapitler fra hinanden - men jeg er netop ikke enig i at forfatteren hverken ønsker at promovere 2.0 (bla fordi forfatteren egentlig bare har skrevet en forklaring om et projekt og ikke bygget et projekt op omkring forklaringen som mange andre bøger) eller at der bruges kontroller til database-aktivitet.
Klart at 2.0 bliver fremhævet da kontrollerne her giver mere mening at bruge end dem fra 1.1 men i bogen diskuteret der for og imod valget. Opbygningen af applikationen er et datalag, et businesslag og så selve GUI og det eneste sted der er database-arbejde, medmindre jeg husker helt skævt, er i DAL, ingen kontroller binder op imod andet end hvad der stilles til rådighed i BAL hvilket netop er objekterne.
Det er fair nok at bogen ikke er god nok - men dine nævnte punkter passer bare ikke med den bog jeg har læst :)
Som skrevet er der ikke én måde at løse udfordringen på - og det gør at jeg tror det bliver svært at finde den bog du søger, for der er mig bekendt ingen der forklarer netop det. Du kan finde bøger om fx ASP.NET, som forklarer enten kontroller eller kode (som du også selv nævner), og så springet op til bøger om fx OOP på det "videnskabelige" plan - alt det midt imellem mangler, måske netop fordi løsningen ikke findes. Derfor vil mit eneste tilbageværende bud være, at det handler om at kunne tilstrækkelig C# og have tilstrækkelig styr på OOP, så vil det mellemliggende automatisk fremkomme.
O/R-mappere skal du måske heller ikke være så bange for - det er klart ingen ulempe at kunne mestre kode i alle lag, men dels får du en masse arbejde foræret og dels, og ikke mindst, kan man måske herigennem blive klogere på hvad der skal til hvis man selv går i gang.
Jeg kender i hvert fald desværre ingen bøger der kan opfylde behovet - har selv søgt tidligere og aldrig fundet noget.
Jeg vil i øvrigt anbefale brugere at kigge på http://www.abebooks.com/ Det er et Europæisk online sted for boghandlere af brugte bøger. Her er det muligt at finde MEGET billige IT bøger [man skal dog ikke regne med at finde nye bøger herinde].
Synes godt om
Ny brugerNybegynder
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.