Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Funderingar kring ASP.NET WebControls

Postades av 2005-04-07 21:30:14 - Tom Olsson, i forum asp.net generellt, Tråden har 5 Kommentarer och lästs av 384 personer

Har en konstig fråga kanske, men vill bara veta!

Finns det någon fördel, annan än att det blir överskådligt, att använda DataGrid, DataList och Repeater som finns inbyggt i .NET?
Blir det långsammare att själv loppa igenom en DataReader och bygga upp en tabell med en StringBuilder och sedan skriva denna till en Label?

Tänkte mest på att man i en Repeater måste skriva såhär:

<code>
<%# DataBinder.Eval(Container.DataItem, "Description") %>
</code>

för att binda en column. Kan detta verkligen kompileras in i DLL-filen som blir när man bygger projektet eller måste det kompileras i runtime varje gång sidan besöks?


Svara

Sv: Funderingar kring ASP.NET WebControls

Postades av 2005-04-07 21:37:42 - Pelle Johansson

Stringbuilder skall du undvika, det finns bättre sätt att bygga tabellverk på. Datagrid och list är kanoners om man skall göra snabba jobb, men skall man ha lite mer detaljer som exempelvis forumet, då bygger man upp det med code-behind (Dim tr as new tablerow).

Dock skiljer sig serverkontroller från annat du gör, de anpasas även för den typ av webbläsare som frågar, så därför skall du oftast få html-kod som är bäst lämpad för läsaren utan att behöva tänka på det vilket är en stor fördel.

All kod som finns oavsett om det ligger som inline eller som codebehind kompileras och därmed går snabbare än vad klassisk asp gjorde.

Något du däremot inte nämnt är ju cachning också. Detta kan du dels göra på en aspxsida eller en usercontrol. Det gör att de objekt som finns på sidan inte läser i databasen hela tiden utan regleras av dig som programmerare. Då går det oerhört fort.


Svara

Sv:Funderingar kring ASP.NET WebControls

Postades av 2005-04-08 08:41:38 - Tom Olsson

Vet inte om detta är en rättvis kontroll, men jag skrev en simpel funktion för att se hur lång tid det tog att skapa x antal rader i en tabel.

Koden är såhär:

<code>

Sub TestaAspTable()

Dim StartTime As Date = Now
Dim EndTime As Date

Dim i As Integer = 0
Dim table As New System.Web.UI.WebControls.Table
Dim r As New System.Web.UI.WebControls.TableRow
Dim c As New System.Web.UI.WebControls.TableCell

With table

For i = 0 To 300000
r = New System.Web.UI.WebControls.TableRow
c = New System.Web.UI.WebControls.TableCell
c.Text = "Some text"
r.Cells.Add(c)
.Rows.Add(r)
Next

End With

EndTime = Now
Response.Write("Table: " & StartTime.Second & ":" & StartTime.Millisecond & " -> " & EndTime.Second & ":" & EndTime.Millisecond & "<br>")

End Sub

Sub TestStringBuilder()

Dim StartTime As Date = Now
Dim EndTime As Date

Dim SB As New System.Text.StringBuilder(1000000)

Dim i As Integer = 0
With SB

SB.Append("<TABLE border=0>")

For i = 0 To 300000

SB.Append("<TR>")
SB.Append("<TD>Some text</TD>")
SB.Append("</TR>")

Next

.Append("</table>")

End With



EndTime = Now
Response.Write("SB: " & StartTime.Second & ":" & StartTime.Millisecond & " -> " & EndTime.Second & ":" & EndTime.Millisecond & "<br>")

End Sub

</code>

Resultatet av detta blir:
Table: 2:207 -> 3:739
SB: 3:739 -> 3:848

Dvs. AspTable tar 1.5 sekunder för att göra detta, medans StringBuilder tar 0,15 sekunder. Tio gånger så snabbt som tabellen med andra ord.

Kommentarer kring detta? :)


Svara

Sv: Funderingar kring ASP.NET WebControls

Postades av 2005-04-08 09:25:31 - Pelle Johansson

Ja, egentligen skall väl dimentionering av rad och cell ligga i for-loopen så det lär gå ännu långsammare där. Sen tror jag faktiskt att det som händer i bakgrunden är densamma, det är egentligen en stringbuilder som byggs. Sen att det är 300000 rader, det skall vara osagt hur många html-sidor som har det.

Däremot är det bättre kodning med exempel 1 för då ser man hur det är gjort på ett annat sätt och mindre risk med att man strular till sina egna taggar.

Men prestanda, ja då är det ju uppenbarligen stringbuider som vinner. Sen är nästa fråga om det spelar någon roll när koden väl är körd en första gång då den är cachad.


Svara

Sv:Funderingar kring ASP.NET WebControls

Postades av 2005-04-08 12:38:43 - Ola Lindfeldt

Det är väl inte så ofta som du sprutar ut 300 000 tabellrader (hoppas jag.. ?)
Det är ju mycket enklare att modifiera koden och utseendet med server controls som t.ex datagrid.
Ofta kanske du ska ut med 50 rader och då är skillnaden försumbar.
Koden för att bygga upp tabeller med Stringbuilder blir ofta väldigt snårig och svår att ändra.
Man ska väga prestandanknep mot hur bra koden blir och ur lätt det blir att ändra.
Som gammal VB-kodare har man i ryggmärgen att det är dyrt att skapa nya objekt. Det var dyrt med VB6 men nu är det inte lika dyrt längre!




Svara

Sv: Funderingar kring ASP.NET WebControls

Postades av 2005-04-10 00:21:33 - Tom Olsson

Enda anledningen till att jag tog just 300 000 rader i tabellen var att jag ville få fram en tidsskilnad, givetvis kan man inte skriva HTML-koden för detta till klienten eftersom det skulle blir flera Mb data.

vad jag ville ha fram av detta inlägget var helt enkelt om det är långsammare att skriva grid:arna själv, eftersom jag gör det på en del ställen i en prestandakrävande applikation.

//Tom


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
5 898
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies