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


Storlek på objekt i asp.net

Postades av 2006-02-01 19:25:48 - Ola Johansson, i forum arkitektur, Tråden har 6 Kommentarer och lästs av 1011 personer

Jag har en community site där jag självklart har ett objekt som heter user. Ibland vill jag ha ett userobjekt som bara innehåller UserID och Nick. Ibland vill jag ha ett user objekt som innehåller massor av data + collections med t.ex "Personens kontakter" osv osv.

Nån som har haft ett liknande problem. Jag vill ju inte hämta hela user objeketet bara för man t.ex vill kolla om personen är online eller inte t.ex.

Självklart går det lösa på massa olika sätt men nån kanske har nåt konkret tips eller nån "pattern" som är bra att använda i såna här situationer? Det är jobbigt att bara objekt orienterad i en stateless värld ibland :)


Svara

Sv: Storlek på objekt i asp.net

Postades av 2006-02-01 21:46:24 - Peter Ilis

Att kontrollera om personen är online eller inte kan du ju t.ex. göra med en delad metod så behöver du inte instansiera något userobjekt.

Angående relaterar data (listor) så kan de ju med fördel laddas vid behov. Exempel:
<code>
Private m_List_X as collection
Public readonly property List_X as collection
Get
if m_List_X is nothing then
m_List_X = new Collection
'Ladda listan med information här
End If
return m_List_X
End Get
End property
</code>
Om du följer dessa två borde du kunna minska objektens storlek och antal databasanrop ganska avsevärt.

Mvh
Peter


Svara

Sv: Storlek på objekt i asp.net

Postades av 2006-02-02 10:54:30 - Marcus Gus

Returnera bara det du behöver, använd arv för att få till det

<code>
public class User
{
public User()
{
}

private int _IdUser;
private string _Name;

public int IdUser
{
get
{
return _IdUser;
}
set
{
_IdUser = value;
}
}

public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}
}


</code>


<code>
public class FullUser : User
{
public FullUser()
{
}

private bool _online;
private string _Other;

public bool Online
{
get
{
return _online;
}
set
{
_online = value;
}
}

public string Other
{
get
{
return _other;
}
set
{
_Other = value;
}
}
}

</code>

Vill du kolla vilka som är online och bara få ut användarID och namn så skapa bara objekt av typen User, vill du få fullständig inforamtion så använder du FullUser. Sedan går det ju som sagt att göra på olika sätt, tex dessa två scenarion:
1. Man visar vilka som är online med User i lista, vill man se mer info om en användare så anropar man en funktion som returnerar ett FullUser för just den användaren och utifrån det visar man info.
2. Man visar vilka som är online med FullUser i lista, vill man se mer info om en användare så plockar man bara ut infon från valt objekt.

I fall 1 kommer man att läsa upp lite data initialt och sedan bara hämta data när det behövs medans man i fall 2 kommer att hämta mycket data på en gång. Men som sagt, finns många sätt att göra det på...


Svara

Sv:Storlek på objekt i asp.net

Postades av 2006-02-02 17:33:18 - Ola Johansson

Mm.. Det är ungefär i den här stilen jag har det idag.

Sen antar jag att det väl inte direkt är nån dödsynd att t.ex lämna vissa attribut tomma ibland. Jag menar t.ex om jag har en storedprocedure som returnerar namn, äronline, userid och en annan som returnerar bara namn, userid .. så får man väl kasta nån exception eller nåt om man försöker anropa äronline. Man vill ju inte returnera massa onödig data från SQL servern bara för att fylla upp objektet på rätt sätt .. För man kan ju inte ha ett objekt för varje kombination av Stored Procedure man har ..

Men tack iallafall. Ville bara stämma av lite med folk så man inte missat nån grym pattern eller dylikt som man brukar använda i såna här sammanhang ..


Svara

Sv: Storlek på objekt i asp.net

Postades av 2006-02-02 17:46:28 - Roger Alsing

Om du har egna objekt så brukar man ju normalt ormappa
och de flesta ormappers stödjer lazyload som gör att du kan välja vilka fält som ska fyllas när du läser upp ditt objekt...

men istället för att kräkas ett exception när du anropar en propp som inte blev fylld så kommer den att läsa den proppen från db och ladda den on demand så att säga..

även om du inte använder en färdig ormapper så kan du stödja lazyload själv ganska lätt:

public int SomeProp
{
      get
      {
           EnsureLoaded("SomeProp"); //<- tex en metod som anropas först i get delen 
           return this.someProp;
      }
      set
      {
          this.someProp = value;
          FlagAsLoaded("SomeProp"); //<- och något som flaggar att proppen fått ett värde
      }
}


Sedan finns det en hel vetenskap bakom det där oxo hur man ska sköta det på snyggast sätt.
i NPersist så använder vi aspekt orientering för att injecera motsvarande kod så att din kod i designtime är helt ovetande om någon form av databaskod eller lazyload.


//Roger


Svara

Sv: Storlek på objekt i asp.net

Postades av 2006-02-03 09:40:04 - Marcus Gus

<b>Mm.. Det är ungefär i den här stilen jag har det idag. </b>

Men då har du väl inga problem? Vad jag menar är att man särskiljer objekten och bara returnerar den objettypen som behövs, för listor mm returnreas enbart User, för mer detaljerad info returneras FullUser som ärver vissa attribut från User.


Svara

Sv:Storlek på objekt i asp.net

Postades av 2006-02-03 14:08:16 - Ola Johansson

Problemet är ju att man har kanske 6-7 olika scenarion med olika mycket data om usern. Men som sagt man får ju göra en avvägning mellan att ha lite extra perameterar på några av objekten och göra nån form av "arvs hierarki".

Tack för svaren. Känner att jag har lite mer koll nu.


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 159
27 952
271 704
1 498
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