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


Är jag helt ute och cyklar?

Postades av 2006-11-08 10:19:44 - Marcus Johansson, i forum arkitektur, Tråden har 2 Kommentarer och lästs av 1685 personer

Leker lite ddd utan att ha någon som helst kunskaper inom ämnet.
Har läst trådar på pellesoft + någon artikel och antagligen bara skrapat på ytan.
Men tänkte leka lite och undrar om jag är på rätt väg eller om jag helt enkelt inte fattat något alls?


<code>

login.aspx.cs
AppUser user = AppUserRepository.LogonUser(sUserName, sPassword);



klass för att hämta objekt ifrån db. Hanterar även inlogging.
public class AppUserRepository : AbstractRepository<AppUser>
{

public override AppUser Load(int cid)
{
string SQL = "select * from tbl_Users where cid = " + cid;
using (DataTable dt = GetData(...);
{
return new AppUserFactory().Create(dt.Rows[0]);
}
return null;
}
public static AppUser LogonUser(string username, string password)
{

//Try to logon user...

//User found...
IRepository<AppUser> ap = RepositoryFactory.GetRepository<AppUser>();
ap.Load(iDefUserCid);

return user;
}
}


public abstract class AbstractRepository<T> : IRepository<T>
{
public virtual T Load(int cid)
{
throw new Exception("The method or operation is not implemented.");
}

}

public interface IRepository<T>
{
T Load(int cid);
}

Klass för att skapa Repository objekt.
public class RepositoryFactory
{
public static IRepository<T> GetRepository<T>()
{
IRepository<T> repository = null;

if (typeof(T) == typeof(AppUser))
{
repository = (IRepository<T>)new AppUserRepository();
}

return repository;
}
}

</code>


Svara

Sv: Är jag helt ute och cyklar?

Postades av 2006-11-09 09:12:51 - Johan Normén

Hej

Lite fel ute är du... kanske...

User i ditt fall är en entitet i DDD det är rätt.
UserRepository bör nog inte ha logiken som kollar inloggning utan det bör du lägga i en service klass eller kanske to m i infrastrukturen, ex en Membership class.

class Membership
bool ValidateUser(string username, string password)
{
User user = _userRepos.GetUserByLoginName(username);
if(user.password == password)
{
hurra
}
}

Eller så har man en metod som hämtar en användare baserat på både lösen och username, problemet
är om man vill ha hashlösen m.m. tycker inte repositoryn skall ha i uppgift att hantera salt o hashhantering av lösenorden utan logik du lägger i ev en MemberShip klass, eller vad du nu vill namnge den.

En factory för att skapa repositories är heller inte nödvändigt. Om det inte tifför någon nytta tycker jag nästan man har råd att själv skriva FooRepos fooRepos = new FooRepos();
Det är mer om man defautlö vill ha in saker i en repos konstruktor så som connectionstring, transaction eller vad som... då skulle en factory kunna vara trevligt för att slippa skriva denna kod själv varje gång man vill ha en repository.

Mvh Johan


Svara

Sv:Är jag helt ute och cyklar?

Postades av 2006-11-09 16:29:12 - Marcus Johansson


Då varje användare har olika lands inställningar skapade jag även repository klass för detta.
Och eftersom jag läser upp alla land i en cach tänkte jag använda en service klass då jag hämtar denna datan.
ÄR det en ok anledning att använda en service klass?

<code>
public class AppCultureRepository : AbstractRepository<AppCulture>
{

public override AppCulture Load(ISpecification spec)
{

return new AppCultureFactory().Create(AppCulturService.GetCulture(spec.Cid));
}
}


public class AppCulturService
{
public static void LoadAppCultureCache()
{
//Load cache
}

public static DataRow GetCulture(int cid)
{
//return row from cache.
}
}
</code>


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

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 869
27 965
271 770
499
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