login  Naam:   Wachtwoord: 
Registreer je!
 Forum

N-tier

Offline zwobbel - 11/12/2008 16:10
Avatar van zwobbelPHP gevorderde Hallo

Ik heb een probleem met n-tier data overbrengen

Ik heb gegevens opgevraagd in de DAL
Deze plaats ik in een List array,
Vervolgens roep ik deze op in mijn BLL maar daar loop ik vast.
Hoe krijg ik die gegevens nu verder gestuurt van BLL naar de PLL
Ik verlies nu de referentie van mijn classes...

17 antwoorden

Gesponsorde links
Offline Abbas - 11/12/2008 16:15
Avatar van Abbas Gouden medaille

Crew .NET
Misschien eens wat code geven ofzo? 
Offline zwobbel - 11/12/2008 16:25
Avatar van zwobbel PHP gevorderde Kheb het project even gezipt,
in de bll class Events staat waar ik dus niet meer weet hoe ik verder kan geraken.
http://www.2sha...3/sima.rar
Offline Abbas - 11/12/2008 16:34 (laatste wijziging 11/12/2008 16:38)
Avatar van Abbas Gouden medaille

Crew .NET
Ik zie 3 projecten binnen je Solution.
- BLL
- DAL
- SchoolProject2

Ik zie nergens een PLL of vergis ik me? 

Swat, je kan vanuit die toonEvents() toch een return doen van die List en die gebruik je dan om je Data te tonen.. 
Offline zwobbel - 11/12/2008 16:45
Avatar van zwobbel PHP gevorderde SchoolProject2 = PLL

Het probleem s, als ik die toonevents doorstuur naar de pll in een list, heeft hij geen referentie meer naar de class Events.
Als ik de DAL toevoeg bij PLL klopt heel de N-Tier denkwijze niet meer.

Dat is dus het probleem.
Ik heb nu tijdelijk 2 keer de class Event ingevoerd :
1 maal bij DAL
1 maal bij BLL

Maar dit is natuurlijk in mijn ogen stom want het is exact de zelfde code ... weet jij hier een oplossing voor?

Dit is hoe ik het nu heb, en werkt:
http://www.2sha.../sima2.rar
Offline Abbas - 11/12/2008 16:54 (laatste wijziging 11/12/2008 16:54)
Avatar van Abbas Gouden medaille

Crew .NET
Als je in de file Events.cs van BLL helemaal bovenaan dit nog zet:

  1. using DAL;

Dan kan je in plaats van:

  1. List<EventCl> EventLijst = new List<EventCl>();

wel die Event gebruiken want, door die using kent hij die wel! 

  1. List<Event> EventLijst = new List<Event>();

Offline zwobbel - 11/12/2008 17:02
Avatar van zwobbel PHP gevorderde Ik heb die using ingevoegd zoal sje zei en het volgende gedaan:
  1. public List<Event> toonEvents()
  2. {
  3. DAL.EventsDB obj = new DAL.EventsDB();
  4. //List<EventCl> EventLijst = new List<EventCl>();
  5. //DAL.EventsDB obj = new DAL.EventsDB();
  6.  
  7. //foreach (DAL.Event c in obj.toonEvents())
  8. //{
  9. // EventCl e = new EventCl();
  10. // e.EventID = c.EventID;
  11. // e.EventNaam = c.EventNaam;
  12. // e.EventDatum = c.EventDatum;
  13. // EventLijst.Add(e);
  14. //}
  15. return obj.toonEvents();
  16. }


En hierdoor krijg ik deze error
Error 1 The type 'DAL.Event' is defined in an assembly that is not referenced. You must add a reference to assembly 'DAL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. C:\Documents and Settings\Spitfire\Mijn documenten\Visual Studio 2008\Projects\SchoolProkec\SchoolProkec\frmMain.cs 43 13 SchoolProject2
Offline Abbas - 11/12/2008 17:04
Avatar van Abbas Gouden medaille

Crew .NET
Je moet die ook bij je References hebben staan he! 
Offline zwobbel - 11/12/2008 17:06 (laatste wijziging 11/12/2008 17:06)
Avatar van zwobbel PHP gevorderde Ja, dat is het net juist, als ik dit doe, dan klopt de wijze N-Tier niet meer
Offline Abbas - 11/12/2008 17:07
Avatar van Abbas Gouden medaille

Crew .NET
Bij je BLL moet je een Reference van DAL hebben en dat is wel logisch. En vanuit je BLL leg je een referentie naar BLL. Je moet die .dll toevoegen aan de "References" en ook best die 'using' gebruiken.
Offline zwobbel - 11/12/2008 17:10 (laatste wijziging 11/12/2008 17:14)
Avatar van zwobbel PHP gevorderde Hmm, als ik de BLL een referrentie leg naar BLL, krijg ik foutmelding.
Dus het komt er op neer dat er geen ander oplossing is om die classe event 2 keer aan te maken?
Offline Abbas - 11/12/2008 17:16
Avatar van Abbas Gouden medaille

Crew .NET
Je moet van de BLL geen referentie leggen terug naar de BLL he, naar de DAL moet je er een leggen! 
Offline zwobbel - 11/12/2008 17:20
Avatar van zwobbel PHP gevorderde Ja, dacht al maar dit mag niet volgens de N-Tier regels....
Offline Abbas - 11/12/2008 17:25 (laatste wijziging 11/12/2008 17:25)
Avatar van Abbas Gouden medaille

Crew .NET
Waarom niet?
Offline zwobbel - 11/12/2008 17:34 (laatste wijziging 11/12/2008 17:37)
Avatar van zwobbel PHP gevorderde Omdat de presentatie logic layer geen rechstreekse verbinding mag hebben met de data acces layer. Mja n-tier is een mannier van werken. Zelf vind ik het nogal redelijk stom maar dit is zo opgelegd door het school, dus zoek ik nu een mannier om die lagen te late communicere met elkaar zonder dat ik dubbel gebruik van code heb

"The database is not accessed directly from any other layer/component. Hence the table names, field names are not hard coded anywhere else. This layer may also access any other services that may provide it with data, for instance Active Directory, Services etc. Having this layer also provides an additional layer of security for the database. As the other layers do not need to know the database credentials, connect strings and so on. "

Hier meer over ntier structuur:
http://www.exfo...sharp.html
Offline Abbas - 11/12/2008 18:00
Avatar van Abbas Gouden medaille

Crew .NET
Maar als je tussen je Form (View) en je DAL een laag (BLL) hebt is dat toch niet tegen de regels van n-Tier?
Offline zwobbel - 11/12/2008 22:57
Avatar van zwobbel PHP gevorderde Wel als ik die dall ook bij referrence toevoeg om dan zo de ene class te kunnen gebruiken of ben ik nu verkeerd?
Offline Abbas - 11/12/2008 23:39
Avatar van Abbas Gouden medaille

Crew .NET
In je BLL (Events.cs) moet je niet die using gebruiken, enkel als reference toevoegen. 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.164s