Tjena! Ska påbörja ett projekt där jag ska göra en winforms klient och en webforms klient. Min tanke är att jag skall använda samma BL och DAL till bägge applikationerna för det borde inte vara några problem väl? När jag jobbar med webforms så lägger jag alltid min databaskoppling i web.config. Hur gör för att DAL skall använda sig av en global koppling för både win och webformsapplikationen? Det va mitt första problem jag stött på. Sen skulle jag gärna vilja ha tips på hur man delar in sin applikation i olika namespaces för att sedan kunna återanvända koden. Hoppas någon kan hjälpa mig lite.
Ett exempel på vad du kan göra är att använda web services.
Då låter du ditt BLL och DAL ligga på webservern och sen anropar programmet bara web servicen när du vill göra något.
Vill du ha exempel på hur du bör lägga upp alla olika namespaces för att få bra design över dem eller vii du bara veta hur man använder namespaces?
Jag skulle vilja ha exempel på hur jag bör lägga upp dom olika namespacen för att få bra design på det hela. Jag använder Visual Studio när jag utvecklar kan jag ju berätta.
Om vi utgår ifrån att jag har skapat en solution, t.ex. en ASP.NET Application. Sedan skall jag skapa ett classlibrary antar jag eftersom codelibrary inte finns med som val i VS.NET. Skall man sedan skapa nya projekt i samma solution? Skall man ha ett namespace för t.ex. DAL och ett för BL eller hur delar man upp t.ex. ett webbproject för att kunna återanvända koden.
Hur man sedan delar in det är lite individuellt.
Jag gör så att jag delar in i applikationsmoduler, eller delar. T.ex. alla klasser som har med produkter att göra ligger i Products. De klasser som används av flera andra projekt ligger i Core.
När det gäller webbprojektet så blir det lite knepigare. Men lägg så mycket du kan i dina klassbibliotek så återanvänder du dessa i dina andra webbprojekt.
När det gäller själva webbdelen så plocka ut alla "standardfiler" som skall återanvändas i andra projekt. När du börjar ett nytt projekt så importerar du dessa standardfiler till projektet och börjar bygga den nya sajten.
Skall man sedan skapa nya projekt i samma solution?
Det beror på. Första projektet kan du skapa klassbiblioteken i samma solution. Men när klassbiblioteken är klara så är det bra om du lägger ut de .dll-filerna i någon mapp. Sedan refererar du till de .dll-filerna från ditt webbprojekt.
Annars finns risken att du i webbprojekt nr 2 gör ändringar i ett klassbibliotek så när du sedan kör webbprojekt nr 1 så funkar det inte för du har inte byggt det webbprojektet för de ändringar du gjorde för nr 2.
Vi har använtt oss av denna för att skapa grunden till vår aritektur på jobbet (mindre modifikationer) och har nu använt den i några projekt, vid första anblick så ser det extremt mycket ut och man undrar om man verkligen behöver allt och fy vad jobbigt osv osv..
När man sedan jobbat med det lite så blir man helt lyrisk. Och speciellt om man skall använda sig av både en WinForm och WebForm så är aritekturen perfekt. Om man modifierar aritekturen lite och tänker till så kan man faktiskt göra så att du helt utan modifikationer kan byta ut din winform mot en webform (som givetviss innehåller samma funktionallitet). Man kan även ha flera olika sorters flöden igenom sin applikation beroende på vem som är inne i den just nu. Så om det är en kund så skall 5 sidor visas i en följd, men om det är en administratör så skall 7 sidor visas i en följd för samma procedure.
Det som verkar lite skrämmande är att vi har typ 10 olika projekt för att lösa något som man skulle klara på 3, men flexibiliteten och underhållet blir så bra mycket bättre att det är värt dessa extra projekt, många av lagerna gör inte så mycket utan skickar bara informationen vidare i kjedjan.
Så ta en titt på dokumentet (ganska tungläst) och hör av dig så kan vi diskutera de förändringar som vi gjort.