Vra

Die belangrikste web aansoek van my maatskappy is uitgeroep vir'n nifty stel van biblioteke om dit te maak in een of ander manier te onderhou en skaalbare, en een van my kollegas het voorgestel CSLA.So ek het die boek gekoop het, maar as :

programmeerders lees nie boeke nie

Ek wou meet die SOFlow gemeenskap se mening van dit.

So hier is my vrae:

  1. Hoe kan mense is met behulp van CSLA?
  2. Wat is die voor-en nadele?
  3. Nie CSLA regtig nie pas in met TDD?
  4. Wat is die alternatiewe?
  5. As jy het gestop om dit te gebruik of besluit om teen hoekom?
Was dit nuttig?

Oplossing

Voor ek spesifiek die antwoord op jou vraag, ek wil graag'n paar gedagtes neer.Is CSLA reg vir jou projek?Dit hang af.Ek sou persoonlik beskou CSLA vir rekenaar-gebaseerde programme wat nie waarde-eenheid toets as'n hoë prioriteit.CSLA is'n groot as wat jy wil om maklik te skaal na'n n-toegeroep program.CSLA is geneig om te kry'n paar flack omdat dit nie toelaat dat suiwer eenheid toets.Dit is waar, maar soos enige iets in tegnologie, ek glo dat daar is Geen Een Ware Manier.Eenheid toets kan nie iets wees wat jy is'n onderneming vir'n spesifieke projek.Wat werk vir een span en een projek kan nie werk vir'n ander span of ander projek.

Daar is ook baie wanopvattings met betrekking tot CSLA.Dit is nie'n ORM.dit is nie'n mededinger te NHibernate (in die feit dat die gebruik van CLSA Besigheid Voorwerpe & NHibernate as data toegang pas baie goed saam).Dit formaliseer die konsep van'n Mobile Voorwerp.

1.Hoe baie mense is met behulp van CSLA?
Gebaseer op die CSLA Forums, Ek sou sê daar is'n hele aantal van die CSLA gebaseer projekte uit daar.Eerlik al is, ek het geen idee hoe baie mense eintlik die gebruik van dit.Ek het dit gebruik in die verlede op twee projekte.

2.Wat is die voor-en nadele?
Terwyl dit is moeilik om op te som in'n kort lys, hier is'n paar van die pro/con se wat na vore kom.
Voor:

  • Dit is maklik om te kry nuwe ontwikkelaars up te bespoedig.Die CSLA boek en die monster app is groot hulpbronne om te kry tot spoed.
  • Die Validering raamwerk is werklik wêreldklas - en is "geleen" vir baie, baie ander nie-CSLA projekte en tegnologie.
  • n-Vlak Ongedaan te maak binne jou besigheid voorwerpe
  • Config lyn verander vir die n-Vlak scalability (Let wel:nie eens'n heropstel is nodig)
  • Sleutel tegnologie is onttrek uit die "werklike" kode.Wanneer WCF was bekendgestel, dit het'n minimale impak op die CSLA kode.
  • Dit is moontlik om te deel jou besigheid voorwerpe tussen vensters en web projekte.
  • CSLA bevorder die normalisering van gedrag eerder as die normalisering van data (die verlaat van die databasis vir die normalisering van data).

Nadele:

  • Probleme in die eenheid toets
  • Gebrek van die Skeiding van Kommer (oor die algemeen jou besigheid voorwerpe data toegang kode binne-in hulle).
  • As CSLA bevorder die normalisering van gedrag, eerder as die normalisering van data, en dit kan lei tot besigheid voorwerpe wat is die naam net so, maar het verskillende doeleindes.Dit kan'n mate van verwarring veroorsaak en'n gevoel asof jy nie hergebruik voorwerpe gepas.Dit gesê, sodra die fisiologiese sprong geneem word, is dit meer as sin - dit lyk onvanpas om struktuur voorwerpe van die "ou" manier.
  • Dit is nie "in die mode" om programme te bou op hierdie manier.Jy kan sukkel om te kry ontwikkelaars wat passievol is oor die tegnologie.

3.Na die lees van hierdie nie CSLA regtig nie pas in met TDD?
Ek het nog nie gevind nie'n effektiewe manier om dit te doen TDD met CSLA.Dit gesê, ek is seker daar is baie slimmer mense daar buite as ek dit kan probeer het om dit met groter sukses.

4.Wat is die alternatiewe?
Domein-Gedrewe Ontwerp is om groot druk op die oomblik (en tereg so - dit is fantasties vir sommige aansoeke).Daar is ook'n aantal van die interessante patrone van die ontwikkeling van die bekendstelling van LINQ (en LINQ te SQL, Entiteit Raamwerk, ens).Voëlvangers boek PoEAA, besonderhede baie patrone wat geskik kan wees vir jou aansoek.Let daarop dat sommige patrone is die kompetisie (d. w. sAktiewe Rekord en Repository), en dus is bedoel om gebruik te word vir die spesifieke scenario.Terwyl CSLA nie presies ooreenstem met enige van die patrone beskryf in die boek, is dit die meeste lyk nou Aktief Rekord (alhoewel ek voel dit is kortsigtig om te eis'n presiese wedstryd vir hierdie patroon).

5.As jy het gestop om dit te gebruik of besluit om teen hoekom?
Ek het nie ten volle aanbeveel CSLA vir my laaste projek, want ek glo die omvang van die program is te groot vir die voordele CSLA bied.
Ek sou nie gebruik CSLA op'n web-projek.Ek voel daar is ander tegnologie beter geskik is vir die bou van aansoeke in daardie omgewing.

In opsomming, terwyl CSLA is niks, maar'n silwer bullet, dit is geskik vir'n paar scenario's.

Hoop dit help!

Ander wenke

Na die lees van al die antwoorde, het ek opgemerk dat 'n hele paar mense het 'n paar wanopvattings oor CSLA.

In die eerste plek CSLA is nie 'n ORM . Hoe kan ek sê dat so beslis? Omdat Rockford LHOTKA dit self baie keer het gesê in onderhoude op die NET Rocks en Hanselminutes podcasts. Kyk vir enige episode waar Rocky het 'n onderhoud en hy sal dit stel in geen onsekere terme. Ek dink dit is die mees kritieke feit vir mense om te verstaan, want byna al die wanopvattings oor CSLA vloei uit te glo dat dit 'n ORM of probeer om dit te gebruik as 'n.

As Brad Leach in sy antwoord verwys, CSLA voorwerpe model gedrag, hoewel dit meer akkuraat om te sê dat hulle 'n model die gedrag van data, aangesien data is 'n integrale deel van hulle mag wees. CSLA is nie 'n ORM, want dit is heeltemal agnosties oor hoe jy jou data stoor praat. Jy moet gebruik 'n soort van toegang data laag met CSLA, miskien selfs 'n ORM. (Ek doen. Ek nou gebruik Entiteit Raamwerk, wat pragtig werk.)

Nou, op te eenheid toets. Ek het nog nooit enige probleme eenheid het die toets van my CSLA voorwerpe, want ek het nie direk in my besigheid voorwerpe hoef te sit my data toegang kode. In plaas daarvan, gebruik ek 'n paar variasies van die repository patroon. Die bewaarplek verbruik deur CSLA, nie andersom nie. Deur uitruiling in 'n valse bewaarplek vir my eenheid toetse en die gebruik van die plaaslike data portaal, BOOM! Dit is eenvoudig. (Sodra Entity Framework toelaat dat die gebruik van Pocos, sal dit selfs skoner wees.)

Al hierdie dinge kom uit die besef dat CSLA is nie 'n ORM. Dit mag dalk 'n ORM verteer, maar dit op sigself is nie een nie.

Cheers.

UPDATE

Ek het gedink ek wil 'n paar opmerkings maak.

Sommige mense het gesê dat CSLA verbose is in vergelyking met dinge soos LINQ na SQL en so aan. Maar hier is ons vergelyk appels met lemoene. LinQ SQL is 'n ORM. Dit bied 'n paar dinge wat CSLA nie, en CSLA bied 'n paar dinge L2S nie, soos geïntegreerde validering en n -tier volharding deur die verskillende afgeleë data portale. Trouens, wil ek sê dat dit die laaste ding, n -tier volharding, troef hulle almal vir my. As ek wil Entity Framework of LINQ gebruik om SQL oor die net, ek het iets soos WCF in tussen te sit, en dat vermeerder die werk en kompleksiteit geweldig, tot op die punt waar ek dink dit is veel meer uitgebreide as CSLA. (Nou, ek is 'n fan van WCF, rus en SOA, maar gebruik dit waar jy dit regtig nodig het, soos wanneer jy 'n diens bloot te stel aan derde partye. Vir die meeste lyn-van-sake-programme, is dit nie regtig nodig, en CSLA is 'n beter keuse.) Trouens, met die nuutste weergawe van CSLA, Rocky bied 'n WCFDataPortal, wat ek gebruik het. Dit werk baie goed.

Ek is 'n fan van SOLID , TDD, en ander moderne beginsels sagteware-ontwikkeling, en gebruik dit waar prakties. Maar ek dink die voordele van CSLA swaarder as 'n paar van die besware van dié orthodoxies, en in elk geval ek het daarin geslaag om CSLA werk baie goed (en maklik) met TDD, so dit is nie 'n probleem.

Ja, ek (um, ons) gebruik dit omvattend te modelleer ons besigheid proses logika wat was hoofsaaklik databound vorms in'n windows vorms aansoek.Die aansoek was'n handel stelsel.CSLA is ontwerp om te wees op daardie laag net onder die UI.

As jy dink oor jou standaard komplekse line-of-besigheid aansoek kan jy'n vorm met baie velde, baie reëls vir diegene velde (insluitend kruis-veld validering reëls), kan jy roep'n modale dialoog te wysig sommige kind voorwerp, wil jy dalk om in staat wees om in staat wees om te kanselleer soos vensters en terug na'n vorige staat.CSLA ondersteun hierdie.

Dit is die nadele is dat dit'n bietjie van'n leerkurwe.

Die belangrikste ding om te onthou is om te gebruik CSLA om'n model van hoe'n gebruiker in wisselwerking met vorms op'n paar aansoek.Die mees doeltreffende manier vir my is om die ontwerp van die UI en verstaan dit vloei, gedrag en validering reëls voor die bou van die CSLA voorwerpe.Moenie jou CSLA voorwerpe ry UI ontwerp.

Ons het ook gevind dat dit baie nuttig om in staat wees om te gebruik CSLA besigheid voorwerpe bediener kant te bekragtig voorwerpe gestuur van kliënte.

Ons het ook'n ingeboude in die meganismes uit te voer validering asynchronously teen web diens (d. w. sdie nagaan van die krediet limiet reeks van'n teenparty teen'n meester).

CSLA dwing'n sterk skeiding tussen jou UI, BusinessLogic en Persistance en ons het'n vrag van die eenheid toetse teen hulle.Dit kan nie wees nie streng TDD want jy ry dit uit UI ontwerp, dit beteken nie dat dit is nie toetsbaar.

Die enigste ware alternatief is die skep van jou eie model \ besigheid voorwerpe, maar redelik gou het jy uiteindelik die uitvoering van die funksies wat CSLA bied'n uit die boks (INotifyPropertyChanged, IDataErrorInfo, PushState, PopState ens.)

Ek gebruik CSLA vir 'n projek en dit het gewerk groot en maak dinge baie makliker en netjieser.

In plaas daarvan om jou span te skryf besigheid voorwerpe in hul eie verskillende persoonlike styl, ons weet het 'n algemene standaard te werk teen.

// Andy

Ek het ondervinding met dit'n paar jaar gelede.Dit is'n briljante argitektuur, maar baie komplekse, moeilik om te verstaan of te verander, en dit is die oplossing van'n probleem wat die meeste van ons die ontwikkeling van web-gebaseerde programme hoef nie noodwendig.Dit was ontwikkel vir windows-gebaseerde programme en die hantering van'n multi-vlak ongedaan te maak, met'n swaar klem op die transaksionele logika.Jy sal waarskynlik hoor mense sê dat sedert web aansoeke is versoek-reaksie op die bladsy vlak, dit is onvanpas, maar met AJAX-styl web programme miskien is hierdie argument hou nie so baie water.

Dit het'n baie diep voorwerp model, en dit kan'n rukkie neem om werklik draai jou brein om dit.Natuurlik, 'n baie kan verander in'n paar jaar.Ek sou belangstel om te hoor ander onlangse menings.

Alles in ag genome, sou dit nie my eerste keuse van argitektuur.

In verdediging van die CSLA, hoewel ek saamstem met baie van die kommentaar wat gemaak is veral die eenheid toets een ...

My maatskappy gebruik dit op groot skaal vir 'n Windows Vorms data entry aansoek, met 'n hoë graad van sukses.

  • Dit verskaf out of the box funksie wat ons nie die tyd of kundigheid om onsself te skryf gehad het nie.
  • Dit gestandaardiseerde al ons besigheid voorwerpe maak instandhouding maklik en die vermindering van die leerkurwe vir ons nuwe ontwikkelaars.

In die geheel gesien sou ek sê dat enige kwessies wat dit veroorsaak het, meer as outwayed deur die voordele.

UPDATE: Na aanleiding van hierdie ons is nog steeds met behulp van dit vir ons vensters vorm app maar eksperimente met behulp van dit vir ander programme soos webwerwe het getoon dat dit dalk te swaar wanneer jy nie veel van sy funksies en ons moet nou ondersoek ligter gewig opsies vir hierdie scenario's.

Ek het 'n span waar CSLA is verpligtend. Ons gebruik nie die remote data portaal wat is die enigste rede waarom ek kon saamstem vir gebruik van hierdie raamwerk. Ek het nog nooit gekoop het in die idee van CSLA so miskien is dit die rede waarom ek het niks anders as probleme met dit, jammer.

'n Paar van die kwessies:

Ek het nie 'n padblokkade tussen my kode en die NET raamwerk en dit is wat hierdie raamwerk het gevoel asof my nodig het. Ek het 'n beperkte keuse van lys voorwerpe, terwyl ek moes net die rykes lys voorwerpe in die NET raamwerk te ignoreer.

Ii is heeltemal belaglik dat ons hierdie lees-alleen lys en dan nie net lees lyste. So as ek moes 'n item by te voeg tot die lys moes ek die hele lys te herskep ... is jy ernstig?

Toe wil csla om my voorwerp staat wat is goed, maar niks is regtig blootgestel te bestuur. Soms wil ek 'n voorwerp staat verander met die hand in plaas van weer gaan haal dit wat lyk soos wat csla wil hê ek moet doen. Ek basies beland skep baie eienskappe om opsies csla blootstel het nie gedink ek moet direkte toegang tot het.

Hoekom kan ek nie 'n voorwerp instansieer net? Ons beland skep statiese metodes wat 'n voorwerp instantiates en gee dit terug ... is jy laf?

Gaan die raamwerk bronkode en dit lyk na swaar op die weerspieëling kode vir my.

Redes om csla gebruik:

  • die reguit NET raamwerk is te sterk vir jou.
  • jou ontwikkelaars is nie gesoute en kan die konsep van patrone nie begryp dan csla sal pretty much het almal op dieselfde bladsy.

    1. Ek het nie 'n padblokkade tussen my kode en die NET raamwerk nodig ... Ek vas met hierdie lys voorwerpe.

Ons het begin met behulp van CSLA want ons het gedink dit sou help met ons model laag. Was soort van overkill en meestal al wat ons nou gebruik is die SmartDate klas, net omdat ons reeds is gekoppel aan die biblioteek.

Ons het gedink die bekragtiging koppelvlak sal regtig help ons af te dwing besigheid reëls, maar dit het nie goed werk met BWF en serialisasie (ons is nog steeds vas op weergawe 2.0.3.0, so dinge kan verander).

Om nie te neem CSLA van die lys, maar voor jy dit gebruik, doen navorsing oor die voordele en maak seker dat hulle regtig van toepassing.Sal jou span in staat wees om korrek/konsekwent implementeer dit?Remoting en portaal dans nodig?

Ek dink as al die teoretiese dink, dit is al oor die skoon/onderhou/verleng/toetsbaar kode volgende basiese bewys patrone.

Ek getel lyne van die kode wat nodig is in'n spesifieke domein van'n projek omskep van CSLA.Tussen al die verskillende CSLA voorwerpe(readonly+bewerkbaar+wortel+lys kombinasies) en hul gestoor procs dit het ongeveer 1700 lyne, teenoor'n Linq2SQL + Repository implementering wat het 180 lyne.Die Linq2SQL weergawe bestaan meestal van gegenereer klasse dat jou span nie nodig het om te verteer boek te verstaan.En ja, ek gebruik CodeSmith te genereer die CSLA dele, maar ek glo nou in DROË kode met enkele verantwoordelikheid stukkies, en die CSLA implementering nou lyk vir my soos gister se held.

As'n alternatief ek wil graag voor te stel op soek na Linq2Sql/Entiteit Raamwerk/NHibernate gekombineer met Repository en UnitOfWork patrone.Het jy'n blik op http://www.codeplex.com/backgroundmotion

Cheers!

Ons maatskappy beoefen CSLA in sommige van sy projekte en 'n paar van die nalatenskap projekte bly aan CSLA wees. Ander projekte wegbeweeg van dit omdat CSLA geskend n plain en simpel OOP reël:. Enkellopend verantwoordelikheid Beginsel

CSLA voorwerpe is selfonderhoudend, bv hulle hul eie data te haal, het hulle hul eie gedrag te bestuur, hulle red hulself. Ongelukkig beteken dit dat jou gemiddelde CSLA voorwerp het ten minste drie verantwoordelikhede - verteenwoordig die domein model, wat besigheid reëls, en wat toegang data definisie (nie die DAL, of implementering toegang data, soos ek voorheen gesê / geïmpliseerde) almal op dieselfde tyd.

Ons gebruik CSLA omvattend.Daar is verskeie voordele;eerste, ek glo dat elke lyn van besigheid ontwikkelaar moet lees Rocky Lhotka se boek op Besigheid Voorwerpe programmering.Ek het persoonlik het dit gevind om te wees in my top 3 beste programme boeke ooit.CSLA is'n raamwerk gebaseer op hierdie boek en gebruik dit gee jou projek toegang tot baie hoë vlak van funksionaliteit soos die n-vlak ongedaan te maak, validering reëls en scalability argitektuur terwyl die verskaffing van die besonderhede vir jou.Sien ek het gesê: "die verskaffing van" en nie "wegkruip".Ek het gevind dat die beste deel van CSLA is wat maak dat jy verstaan hoe al hierdie dinge is geïmplementeer af na die bron-kode sonder om te maak jy reproduseer hulle jouself.Jy kan kies om te gebruik as baie of min funksies as wat jy nodig het, maar ek het gevind dat die deur bly getrou aan die ontwerp van patrone van die raamwerk, is dit regtig hou jou uit die moeilikheid.--Byron

Ons het al met behulp CSLA nou vir meer as vyf jaar, en ons dink dit werk baie goed vir die bou van besigheid aansoeke. Tesame met kodegenerasie jy kan besigheid voorwerpe in 'n relatiewe kort tyd te skep en fokus jou pogings op die vleis van die aansoek.

Ek het al met behulp van CSLA sedert vb5, wanneer dit was meer van'n versameling van patrone as dit was'n raamwerk.Met die bekendstelling of.NET, CSLA verander in'n volskaalse raamwerk, wat gekom het met'n stewige leer kurwe.Egter, die CSLA adresse baie dinge wat al die sake ontwikkelaars is geneig om te skryf hulself op'n sekere punt (afhangende van die projek omvang):validering logika, verifikasie logika, ongedaan funksionaliteit, vuil logika, ens.Al hierdie dinge wat jy kry vir gratis uit die boks in een lekker raamwerk.

As ander het gesê, wat'n raamwerk, dit dwing ontwikkelaars te skryf besigheid logika in'n soortgelyke wyse.Dit dwing jou ook om'n vlak van abstraksie vir jou besigheid logika, so wat nie met behulp van'n UI raamwerk soos MVC, MVP, MVVM word nie so belangrik is.

In werklikheid, ek sou argumenteer dat die rede hoekom so baie van hierdie UI patrone is so hype up vandag (in die Microsoft wêreld) is dat mense doen dinge baie verkeerd vir so lank (dws., met behulp van DataGrids in jou UI, strooi jou besigheid logika oral.tisk tisk).Ontwerp jou middelste vlak (besigheid logika) reg van die begin, kan jy onthou jou middel vlak in ENIGE UI.Wen Vorm, ASP.NET/MVC, WCF Diens, WPF, Silver**, Windows Diens, ....

Maar afgesien van hierdie, die groot payoff vir my is dit is gebou-in die vermoë om te skaal.Die CSLA gebruik van'n proxy patroon wat instel via jou config lêer.Dit laat jou besigheid voorwerpe te maak remote oproepe van die bediener bediener, sonder om te skryf een lek van die kode.Die toevoeging van meer gebruikers aan jou stelsel?Geen probleem, sit jou CSLA besigheid voorwerpe om'n nuwe aansoek bediener, maak'n config lêer inskrywing verander, en BAM!!Instant scalability behoeftes voldoen.

Vergelyk dit met die gebruik van DTO is, stoor jou besigheid logika op die kliënt (wat die kliënt wat nodig mag wees), en om te skryf elk van jou eie CRUD metodes as diens metodes.YIKES!!!Sê nie dit is'n slegte benadering, maar ek sou nie wil hê om dit te doen.Nie wanneer daar is'n raamwerk daar buite in wese doen dit vir my.

Ek gaan om te herhaal wat ander mense het gesê dat CSLA is NIE'n ORM.CSLA magte om jou te voorsien jou besigheid voorwerpe met die data.Hulle gee nie om waar jy jou data.Jy kan gebruik om'n ORM te verskaf jou besigheid voorwerpe met die data.Jy kan ook gebruik maak van rou ADO.NET ander dienste (Rustige, SEEP), excel-sigblaaie, kan ek hou gaan hier.

Soos vir jou ondersteuning vir TDD, ek het nog nooit probeer om met behulp van die benadering met CSLA óf.Ek geneem het om die benadering waar ek model my middelste vlak (ala besigheid voorwerpe) met behulp van die klas en die volgorde diagramme, mees dikwels gebruik sodat geval, skerm en/of proses ontwerp om te dikteer.Miskien'n bietjie van die ou skool, maar UML het nog altyd gedien het my baie goed in my ontwerp en ontwikkeling pogings.Ek het suksesvol ontwerp en ontwikkel baie groot en skaalbare aansoeke vandag nog gebruik word.En tot WCF RIA verval, sal ek voortgaan om te gebruik CSLA..

** met'n paar werk-arounds

Ek is nuut tot CSLA maar ek verstaan die konsepte en ek het reeds verstaan dat dit nie'n ORM hulpmiddel-so ophou klop dat die damn drom mense.Daar is funksies van CSLA ek wil, maar met behulp van hulle voel'n bietjie soos daar is'n towenaar agter die gordyn.Ek dink as jy nie omgee nie om te weet oor hoe dit werk, dan kan jy gebruik om die voorwerpe en hulle werk goed.

Daar is'n groot leerkurwe vir beginners en ek dink dit sou baie baat deur 5-15 min.video's soos Microsoft het vir die leer van die basiese beginsels.Of hoe oor die vrystelling van'n metgesel boek met die kode in plaas van om die kode vrygestel en neem maande om die boek te kry uit?Net sayin Mnr Lohtka...Ons begin met die bou van ons dinge voor die boek en ek het gesukkel om die hele tyd.Maar soos ek gesê het, ek is nuut by dit.

Ons gebruik CSLA.Ons het ons voorwerpe pas hul vorm dan gebruik 10% van wat die raamwerk aangebied.Voorwerp vlak ongedaan te maak?Het nie gebruik dit.NTier buigsaamheid?Het nie gebruik dit.Ons beland skryf genoeg besigheid reël kode wat ek gedink die enigste ding wat ons was om uit CSLA was kompleksiteit.Sommige "lank in die tand" ontwikkelaars wat weet die raamwerk gebruik dit as hul hamer, want hulle het'n spyker wat nodig slaan.CSLA was in hul band, en my raaiskoot is'n baie van die voorstanders van die raamwerk sien dinge uit daardie perspektief te.

Ek dink ons gesoute ontwikkelaars is gelukkig, want dit maak alles sin aan hulle.Ek dink as jou organisasie nie newbie programmeerders en jy ouens kry verveeld deur die skryf van doeltreffende en eenvoudige POCO voorwerpe met'n goed gevorm patrone, en gaan dan vir dit.Gebruik CSLA.

Ek gebruik CSLA as die besigheid voorwerp raamwerk vir 'n medium grootte projek. Die raamwerk het 'n lang pad gekom van die VB6 dae en bied 'n buitengewone hoeveelheid buigsaamheid en "out of the box" funksie. mobiele smart voorwerpe CSLA se maak UI ontwikkeling baie makliker. Maar ek stem saam met ander is dit nie die regte gereedskap vir elke situasie. Daar is beslis 'n paar oorhoofse betrokke nie, maar ook 'n baie krag. Persoonlik, ek sien uit daarna om met behulp van die CSLA Light met Silver.

Voor:

  • Data tegnologie agnostikus 1
  • Groot installeer basis en dit is gratis !!
  • Stabiele en logiese raamwerk
  • Data Access-kode kan wees in jou voorwerpe of in 'n aparte vergadering
  • Eiendom en Object Validering en magtiging

nadele

  • Die kode kan 'n baie om te 2
  • handhaaf
  • Waarskynlik moet 'n kode kragopwekker om doeltreffend te gebruik
  • leerkurwe. Die struktuur van CSLA voorwerpe is maklik om te verstaan, maar die tekortkominge kan hoofpyn skep.


Ek is nie seker oor toets-gedrewe ontwerp. Ek doen nie eenheid toets of toets gedryf ontwerp (skande op my), so ek weet nie of eenheid toetse is anders as TDD, maar ek weet dat die mees onlangse weergawe van die raamwerk kom met eenheid toetse.

1 Goeie ding, want toegang data tegnologie nooit weer dieselfde wees vir 'n lang verblyf.
2 Dit het beter geword met onlangse weergawes van die raamwerk.

'n baie van die mense beveel die gebruik van die Kode Generasie met CSLA.Ek wil aanbeveel uitcheck ons stel ondersteun templates soos hulle sal verhoog jou ROI geweldig.

Dankie -Blake Niemyjski (Skrywer van die CodeSmith CSLA Templates)

Ek gebruik dit vir 'n projek 'n paar jaar gelede. Maar wanneer die projek is gedoen, ek kon nie iemand wat CSLA het vir my vertel. Seker, ek geërf het van sy klasse. Maar ek was in staat om wat erfenis van byna al die klasse te verwyder sonder herstrukturering. Ons het geen gebruik vir die N-Tier dinge. Die N-vlak ongedaan was so stadig dat ons nie kan gebruik nie. So ek dink aan die einde dit net ons gehelp model ons klasse.

Noudat dit gesê is, ander spanne het begin om dit te gebruik (na 'n aaklige poging deur 'n span om hul eie raamwerk te skep). So het daar iets die moeite werd in daar wees, want hulle is almal slimmer as my!

Ek is'n PHP man.Toe ons begin met die bou van relatief groot skaal aansoeke met PHP, ek het begin navorsing doen oor baie van die aansoek raamwerke en ORMs wese in PHP wêreld, dan in Java en .NETTO.Die rede waarom ek het ook gekyk na Java en .NETTO raamwerke was nie om blindelings die gebruik van enige PHP raamwerk, maar eers probeer om te verstaan wat werklik aan die gang, en wat die aard van die onderneming-vlak argitektuur is daar.

Want ek het nie gebruik word CSLA in'n werklike wêreld aansoek, ek kan nie kommentaar lewer oor sy voor-en nadele, maar wat ek kan sê, is Lhotka is een van die seldsame denkers -ek sê nie net deskundige - in Sagteware-Argitektuur veld.Hoewel die naam Domein Gedrewe Ontwerp is geskep deur Eric Evans -deur die manier waarop sy boek is ook groot en ek nederig te adviseer om dit te lees - Lhotka was die toepassing van domein-gedrewe ontwerp vir die jaar.Noudat dit gesê is, alles wat jy dink oor sy raamwerk, tot voordeel van sy groot idees in die veld.

Jy kan vind sy gesprekke op dotnetrocks.com/archives.aspx en video's van dnrtv.com/archives.aspx (soek vir Lhotka).

@Byron Wat is die ander twee boeke wat jy graag?

John,

Ons het spanne werk in CSLA 2-3,5 en het dit het 'n goeie manier om 'n konsekwente raamwerk verskaf sodat al die ontwikkelaars is "op dieselfde manier om dit te doen". Dit is wonderlik dat die meeste van die lae waarde kode gegenereer word en ons weet wanneer ons eenheid toetse wat hulle werk uit die boks vir al die CRUD dinge uit te voer. Ons vind dat ons TDD regtig kom in met die refactoring ons doen om te ontwerp, en CSLA nie verhoed dat ons van enige van daardie doen.

Chris

Ek laaste probeer om CSLA gebruik in die Steentydperk dae van VB6. In retrospek, sou dit meer effektief as ek kodegenerasie gebruik het gewees het. As jy nog nie 'n doeltreffende kodegenerasie gereedskap en 'n strategie vir pas hulle in jou werk, moet hulle jou raamwerke soos CSLA vermy, anders sal die eienskappe wat jy kry uit CSLA sal nie make-up vir die hoeveelheid tyd wat jy spandeer die skryf van N lyne van kode per tafel, N reëls van die kode per kolom, ens.

Ek het gebruik CSLA.NET in 'n paar projekte nou, dit is mees suksesvolle in 'n vensters vorm aansoek wat ryk databinding compatabilities (wat asp.net aansoek se het nie).

het

Dit is grootste probleem is die TDD ondersteuning soos mense is uit te wys, dit is as gevolg van die swart-box soos gedrag vir die Dataportal_XYZ funksies en dis onvermoë om ons in staat stel om die data voorwerpe spot. Daar is pogings om te werk om hierdie probleem met hierdie is om die beste benadering

Ek wou om dit te gebruik, maar my dan lei ontwikkelaar het die idee te veel 'magic' betrokke was ...

CSLA is die beste aansoek raamwerk wat bestaan. Rocky LHOTKA is 'n baie, maar baie slim man. Hy skryf die geskiedenis van die ontwikkeling van sagteware soos Martin Fowler, David S Platt, maar my gunstelinge skrywers is Rod Stephens, Mathew McDonalds Jeff Levinson thearon Willis en Louis Davidson alias dr sql. :-) Voor: All ontwerp patrone toegepas word. Nadele:. Moeilik om te leer, en 'n paar monsters

scroll top