Vra

Ek is redelik nuut in my maatskappy (2 weke) en ons begin 'n nuwe platform vir ons stelsel met behulp van NET 3.5 Team Foundation van DotNetNuke. Ons "argitek" is wat daarop dui ons een klas projek gebruik. Natuurlik, ek slaan terug met 'n "3-toegeroep" argitektuur (Business, Data, Web klas projekte).

Is daar enige nadele vir die gebruik van hierdie argitektuur? Pro se wil skeiding van kode van data wees, hou klas voorwerpe weg van jou kode, ens.

Was dit nuttig?

Oplossing

Ek dink 'n redelike groot nadeel is dat die ekstra volume van kode wat jy moet skryf, te bestuur en in stand te hou vir 'n klein projek net overkill kan wees.

Dit gaan alles neer op wat geskik is vir die grootte van die projek is, die verwagte lewensduur van die finale projek en die begroting! Soms, terwyl doen dinge 'behoorlik 'n beroep, iets wat 'n bietjie meer 'n liggewig "kan die regte kommersiële besluit wees doen!

Ander wenke

Dit is geneig om 'n onervare span langer neem om te 3-tier.It se meer kode op te bou, sodat meer foute. Ek is net speel advokaat die duiwel se though.

Ek sou moeilik wees stoot vir die N toegeroep benadering selfs al is dit 'n klein projek. As jy 'n ORM instrument soos codesmith + nettiers gebruik sal jy in staat wees om vinnig die opstel van die projekte en die ontwikkeling van kode wat jou besigheid probleme vinnig oplos.

Dit dood my wanneer jy 'n nuwe projek te begin en jy dae spandeer rondsit spin wiele praat oor hoe die "argitektuur" moet ontwerp is. Jy wil tyd te spandeer die oplossing van die besigheid probleem, nie die oplossing van probleme wat ander mense opgelos vir jou. Met behulp van 'n ORM (dit maak nie regtig saak watter een, net kies een en daarby te hou) om jou te help aanvanklike trekkrag sal help om jou fokus op die doelwitte van die projek te kry en jy nie jou kind probeer om "argitektuur" kwessies op te los.

As jy aan die einde van die dag, die argitek wil die een projek benadering gaan, is daar geen rede waarom jy kan 'n gids app_code met 'n BLL en DAL gids skep nie aan die kode skei vir nou wat jy sal help skuif na 'n n-toegeroep oplossing later.

Omdat jy wil die vermoë in staat is om die lae op verskillende fisiese vlakke versprei (Ek gebruik altyd "vlak" vir fisiese en "laag" vir logiese), moet jy twee keer dink voordat net om alles in een klas, want jy het die groot refactorings om te doen as of wanneer jy nodig het om te begin versprei.

As met enigiets onttrekking skep kompleksiteit, en so die kompleksiteit van doen N-toegeroep behoorlik moet geregverdig word, bv, beteken N-toegeroep eintlik tot voordeel van die stelsel? Daar sal wees klein stelsels wat die beste sal werk met N-toegeroep, hoewel baie van hulle sal nie.

Ook, selfs al is jou stelsel is klein op die oomblik, jy dalk wil meer funksies by te voeg om dit later - gaan nie N-toegeroep kan consitute n soort van tegniese skuld op jou deel, sodat jy moet versigtig wees.

Die enigste nadeel is die kompleksiteit maar regtig hoe moeilik is dit om 'n paar domein voorwerpe voeg en bind aan 'n lys van hulle, in teenstelling met die gebruik van 'n datastel. Jy hoef nie eens drie afsonderlike projekte te skep, kan jy net skep 3 aparte dopgehou binne die web artikels en gee elkeen 'n naamruimte soos, YourCompany.YourApp.Domain, YourCompany.YourApp.Data, ens

Die groot voordeel is dat 'n meer buigsame oplossing. As jy begin skryf jou app as 'n data sentriese aansoek, sterk koppel jou web vorms bladsye om datastelle, gaan jy uiteindelik besig met 'n baie meer werk later migreer na 'n meer domein centeric model as jou besigheid logika groei in kompleksiteit.

Miskien in die kort termyn jy fokus op 'n eenvoudige oplossing deur die skep van baie eenvoudig domein voorwerpe en hulle mense aan uit datastelle, dan kan jy besigheid logika toe te voeg tot hulle as dit nodig is en die bou van 'n meer gesofistikeerde ORM as dit nodig is, of gebruik nhibernate.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top