Hej!
Om jag ska göra en hemsida där jag ska styra innehållet med en databas, vilket är då det bästa sättet att göra det på? Den ska vara rätt enkel. Jag ska kunna visa upp produkter med både bild, pris och namn på en sida, samt ska jag kunna klicka på en produkt och visa den i detalj.
Ska jag annvända DataReader eller DataSet, Direct Data Access eller Disconnected Data Access. Data Binding?
Jag känner mig mycket förvirrad. Håller precis på att bläddra i boken Beginning ASP.NET 2.0 in C# 2005 och då står det skrivet om alla dessa tekniker och dessutom har jag boken Beginning ASP.NET 2.0 E-Commerce in C# 2005, där man bygger en webbshop med data binding?? Jag trodde man skulle undvika data binding, blir förvirrad. Det verkar som om böckerna gillar data binding bättre, men är det bättre eller är det bara för att jag har köpt ”nybörjarböcker” som böckerna gillar data binding?
Annat som gör mig lite förvirrad är nog att jag inte behärskar C# så väl, för när jag ser exemplen i boken får jag alltid funderingar om koden ska skrivas i en Class-fil, om man ska dela upp den i flera class-filer eller om man ska skriva koden enbart i codebehind-filen. Man får inte riktigt reda på sådana saker.
I boken Beginning ASP.NET 2.0 in C# 2005 står det att datacontrols som exempelvis gridview är speciellt anpassad för data binding, men måste man använda data binding för det jag får höra nästan hela tiden är att man helst ska undvika det för att det drar ner prestanda?
Vad för slags kontroller kan jag använda för att visa mina produkter exempelvis så som cdon.com eller discshop.se gör?
Angående Databinding så är det något som du skall använda dig av. Exempelvis så binder du ju din datareader till en repeater för att den skall kunna generera alla rader till dig, däremot så finns det kontroller som DataSet/DataGrid som är onödigt tunga i sin egen overhead om du bara skall presentera produkter i en "read-only" mode. Däremot så har de sin plats i andra sammanhang....
Om du är ute efter total rå prestanda så binder du din Repater till en datareader. Mer prestana än så blir det inte. Du skall dessutom låta bli DataBinder.Eval() i din ASPX sidan och istället använda eventet OnDataBound() från din codebehind, där du själv letar upp controllen i repeater med e.item.FindControl() och sätta värdet där.
Det är om du är ute efter total råprestand. Vill du ha underhållbar och skallbar kod så skall du börja dela upp din appliaktion i flera olika lager som du dessutom skall kunna placera på olika servrar och då helt plötsligt så kommer du stötta på ord som OR-mappers, design patterns, factorys, facader, API, WCF, COM+, Transaction, Globala cachar osv osv...
Någonstans mittemellan brukar vara vägen att gå, man gör sin kod översiktbar genom att dela upp den i olika lager, presentationslager (ASPX/codebehindfiler), affärslogik (egen dll), Entiter (egen dll) och dataaccess (egen dll). Du har nu delat upp din applikation i lite olika lager som gör att du mycket enklar kan börja utveckla skalbarheten om det skulle behövas i ett senare skedde, men samtidigt så slipper du den overheaden som skalbarheten ger dig (vilket förbättra prestandan).
- M
251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2