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


Hur hantera "UI-logiken"?

Postades av 2006-10-24 09:26:26 - Jonas Salomonsson, i forum arkitektur, Tråden har 1 Kommentarer och lästs av 1325 personer

Hej,

Bakgrund: jag har gjort en webbapplikation (ASP.NET 2.0) som jag själv tycker har en hyfsat strukturerad och fungerande struktur. Det är en "managermodell" med följande lager uppifrån och ner:

UI - aspx med code behind

BLL - "Managerklasser" (en del kallar det repositories har jag sett, dvs klasser med affärslogik) - tex PersonManager

DAL - Databasklasser som ofta "gör jobbet" åt dataaccessmetoderna i BLL-managerklasserna - tex PersonDAO

"Vertikalt" vid sidan av dessa lager har jag ytterligare ett lager som jag kallar DOM, med rena domänobjekt (POCO's) som lever i alla lager kan man säga (instansieras i UI, hanteras i BLL och persisteras i DAL osv) - tex Person

Just i denna applikation har jag valt att implementera en customized membership- och roleprovider som hanterar användarna, detta hamnar lite vid sidan av mina lager eller kanske snarare i UI på sätt och vis men jag tycker att vinsten i tid att använda detta var så stor att det var ok att vara lite pragmatisk då det i detta fall i princip endast handlar som åtkomst- och funktionsstyrning.

Koden är i mitt tycke bra strukturerad, jag vet exakt var jag ska lägga in ny logik vid behov och jag gör de normala vinster man gör med liknande arkitektur.

Nu till min fundering, mina BLL, DAL och DOM-klasser är rena, fina och välstrukturerade. Det som inte är fullt lika kul är i UI-klasserna (code behindfilerna) där blir det snabbt plottrigt och det känns som att man kanske skulle kunna göra detta bättre.

Lite kodexempel från UI för att exemplifiera:

            if(sokande.Mobilnr.ToString() == "Ej angett mobilnummer") {
                tbMobil.Text = "";
            } else {
                tbMobil.Text = sokande.Mobilnr;
            }

----------------------------------------------------------------------------------------
 
           if (ddBolag.SelectedValue != "0"){
                applicant.Bolag = Convert.ToInt32(ddBolag.SelectedValue);
            }
            else{
                applicant.Bolag = 0;
            }


Det blir ganska snabbt en hel del styrning av vad som skall skrivas ut, vilka checkboxar som ska vara checkade och även vad olika attribut i DOM-klasserna ska få för värden osv. Det är väl ok eftersom vi ju är i UI och jobbar men min fundering är om ni andra gör på andra sätt? Skickar ni ner events i businesslagret och låter det ta en större roll och låta det skicka tillbaka messages till UIklasserna?

Jag skapar ju instanser av DOM-klasserna i UI, ska man kanske göra detta i BLL istället, osv osv.

Hoppas jag inte varit alltför oklar och att fler har liknande funderingar så kanske vi kan få en liten diskussion.

//Jonas


Svara

Sv: Hur hantera "UI-logiken"?

Postades av 2006-10-24 10:18:21 - Patrik Löwendahl

BLL skall inte ha något med UI att göra.

Om du vill strukturera och återanvända delar av UI logiken så finns det lite olika "patterns" att använda. Tex genom att använda service klasser, dessa är klasser där viss logik kapslas in och anropas från UI lagret. En annan variant är den mer brett använda MVC - Model View Controller.

Men sammantaget handlar det om att flytta runt var UI koden ligger.


Svara

Nyligen

  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов

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 570 890
27 965
271 778
983
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