Kojeg vražjeg frameworka? :(
Kako se programira u Hrvatskoj?
- poruka: 232
- |
- čitano: 84.723
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
.. napisao sam podulji post ali ustvari neda mi se gubiti vrijeme na raspravu s tobom. Eto, ti si najpametniji i sve najbolje znaš, a vidio si jednu dbgrid komponentu . a ja ću si uzeti ovu "ružnu" i ostaviti si još 1825$ u džepu
.
.. napisao sam podulji post ali ustvari neda mi se gubiti vrijeme na raspravu s tobom. Eto, ti si najpametniji i sve najbolje znaš, a vidio si jednu dbgrid komponentu . a ja ću si uzeti ovu "ružnu" i ostaviti si još 1825$ u džepu
.
Sve 5. Svatko ima svoj (prvi) izbor.
CSLA je, kako vidim, free i open source? Btw, CodeSmith je nužan za njega ako ne želiš hrpu grunt koda tipkati? - Btw Friday, o kojoj se firmi radi? Mislim da sam te primijetio na WinDaysima. Sudeći po veličini projekta... Perpetuum, IN2...?
CSLA je, kako vidim, free i open source? Btw, CodeSmith je nužan za njega ako ne želiš hrpu grunt koda tipkati? - Btw Friday, o kojoj se firmi radi? Mislim da sam te primijetio na WinDaysima. Sudeći po veličini projekta... Perpetuum, IN2...?
Vidio sam ti avatar i tamo. :) Na to sam mislio.
Zanimljivo da ste kao mala firma dobili projekt te veličine. :) Veze odlične valjda ili dobra sreća.
Vidio sam ti avatar i tamo. :) Na to sam mislio.
Zanimljivo da ste kao mala firma dobili projekt te veličine. :) Veze odlične valjda ili dobra sreća.

A mogli smo se svi naci na windaysima na kavi, da se i upoznamo, kada smo svi tamo bili:) sljedece godine...
Svojedobno sam bio poceo citati Expert c# Bussines Objects, autora csle, i svidio mi se koncept iako sam ja kasnije presao vise na koristenje POCO i "persistance ignorance" fora.
Dali mozes malo opisati kako se radi s CSLAom, sto ste vi s njime rijesili (undo, perzistencija, ...), koliko treba vremena za nauciti raditi s time, mozda i neke usporedbe sa drugim pristupom (ddd/tdd mozda?) i slicno. Hvala!
Ja radim po scramu i projekti su uvijek izrazito vremenski limitirani pa rijetko imam vremena adaptirati se na nešto tako glomazno kao što je takav framework. Bilo bi super naći vremena, ali ga je malo i za tekuću edukaciju s obzirom da spavam 3-4 sata dnevno... :(
CodeSmith je odličan, ali dok ga podesiš trajeee.. (iskustvo s NHibernatea).
@hudo
Da, bilo bi dobro da se nađemo. Pa makar se i napili :)
Št ose tiče CSLA knjige malo je preduboka u nekim segmentima. Čovjeku su za početak potrebne samo osnovne vrste objekata i razumjevanje parent-child relacije.
Kako se radi sa CSLA-om... Pa jednostavno :). Mi koristimo linq i zapravo je stvar jako jednostavna, osim što ima brdo koda kojeg ipak ne moramo kucati nego nam Codesmith riješi taj dio.
Recimo , što sve treba za jedan property u root klasi:
private static PropertyInfo<string> NazivProperty = RegisterProperty<string>(typeof(cArtikli), new PropertyInfo<string>("Naziv"));
....
public string Naziv
{
get { return GetProperty<string>(NazivProperty); }
set { SetProperty<string>(NazivProperty, value); }
}
...
ValidationRules.AddRule(CommonRules.StringMaxLength, new CommonRules.MaxLengthRuleArgs(NazivProperty, 50));
...Load klase
var data = mgr.DataContext.Artiklis
.Single(r => r.Id == criteria.Value);
LoadProperty<string>(NazivProperty, data.Naziv);
...Insert
var data = new DalLinq.Artikli();
data.Naziv = ReadProperty<string>(NazivProperty);
...Update
var data = new DalLinq.Artikli()
data.Naziv = ReadProperty<string>(NazivProperty);
...
Mislim, ovo je vrlo pojednostavljeno, tek sam iščupao retke koji se odnose na jedan property. Ali već na prvi pogled se vidi da je jako jednostavan koncept.
Perzistenciju kao takvu ne koristimo (ili ne znam točno na što misliš). Koristimo ju isključivo u Workflow-u (WF).
Undo - e tu je bilo problema. Lhotka (kreator CSLA) je to poprilično zakomplicirao pa sam ju ja riješio na razini user kontrole. Kod je vrlo generički i isti je za sve user kontrole a koncept je slijedeći:
Imamo objek koji ima 2 propertyja- PropertyNaziv i Vrijednost. U svakoj user kontroli napravimo array ovakvog objekta i u njega trpamo sve promjene koje se dešavaju na CSLA objektu. U slučaju da čovjek želi napraviti undo samo uzmemo predzadnji item iz kolekcije i preko refleksije promjenimo property konkretnog naziva na vrijednost koja se nalazi u tom itemu. Linija koda je ovakva:
_cslaClass.GetType().GetProperty(_prop.Naziv).SetValue(_cslaClass, _prop.Vrijednost, null);
_prop je item iz array liste onog objekta.
Redo radi na isti način. Kod koji sve to hendla se svodi možda na 50-ak linija i dvije-tri metode. Ali kažem, isti je za sve user kontrole pa ga je vrlo jednostavno za implementirati. Mozgao sam par dana prije nego sam to uspio napraviti ali sada radi perfektno, ima neograničen broj undo/redo "levela" a pottrošnja memorije je par K za stvarno ogromne količine "levela"
Za rad sa CSLA objektima ti treba samo dobar template za codesmith i onda to može raditi čovjek koji nije nikada radio sa CSLA.
Nisam kompetentan da ti dam usporedbe sa drugim pristupima jer gotovo od samih svojih početaka rada u .NET-u koristim CSLA.
Inače, kroz CSLA se može vrlo dobro riješiti i security ali je još kompliciranije od undo/redo pa sam i to riješio na razini user kontrole (zapravo, na razini host forme). Tako da sada mogu točno odrediti koja skupina korisnika može što napraviti iz CRUD "asortimana", a sve konfigurabilno kroz jednu vrlo jednostavnu "konzolu"
@naxeem
Vjeruj mi, adaptacija na CSLA bi ti trajala možda tjedan dana. Prilagodba templatea je druga priča, ali sam CSLA je jako jednostavan
Interesantno. Eh... a u čemu prednost CSLA ima u odnosu na recimo EF? EF je, osim ORM-a i model i pruža konstrukciju za entitete. Nad njim možeš izvršavati LINQ i specifikacija je solidno riješena. Što CSLA daje novoga u tome svemu osim što, kako si se požalio, forsira neke negativne prakse (što je netko i uočio već).
Interesantno. Eh... a u čemu prednost CSLA ima u odnosu na recimo EF? EF je, osim ORM-a i model i pruža konstrukciju za entitete. Nad njim možeš izvršavati LINQ i specifikacija je solidno riješena. Što CSLA daje novoga u tome svemu osim što, kako si se požalio, forsira neke negativne prakse (što je netko i uočio već).
Interesantno. Eh... a u čemu prednost CSLA ima u odnosu na recimo EF? EF je, osim ORM-a i model i pruža konstrukciju za entitete. Nad njim možeš izvršavati LINQ i specifikacija je solidno riješena. Što CSLA daje novoga u tome svemu osim što, kako si se požalio, forsira neke negativne prakse (što je netko i uočio već).
Nacin rada CSLA gdje se puno logike enkapsulira u sam entitet odnosno objekt, poput validacija, perzistenije i slicno je dosta razlicit, pa rekao bi i suprotan od NHibernate pristupa. EF je tu malo blizi CSLAi, iako zeli biti kao NH, ali ima dosta infrastrukturnog koda u sebi, nad kojim je nemoguce raditi unit testing. Neznam kako je to izvedeno u CSLA. Ali IMHO, sto se tice EFa. treba pricekati ver 2., ovo sada je jako lose.
Stvar je filozofije, afiniteta i znanja developera, ali sve su to kvalitetni frameworci koji u rukama dobrog programera mogu donesti puno benefita produktivnosti i kvaliteti.
Nije baš jako loše, ali je nepotpuno ako mislimo na neke mogućnosti koje bih ja osobno volio vidjeti. Što se tiče "infrastrukturnog koda", možeš li malo elaborirati tu primjedbu jer nisam baš skužio na što misliš?
Nije baš jako loše, ali je nepotpuno ako mislimo na neke mogućnosti koje bih ja osobno volio vidjeti. Što se tiče "infrastrukturnog koda", možeš li malo elaborirati tu primjedbu jer nisam baš skužio na što misliš?
Svakako da je V1 po mogućnostima upitno kompletan, ali u scenarijima gdje prihvatiš EF kao bazu za poslovni model, POCO ti nije nužan.
EF dizajner ne koristim, nego imam generatore koji izvode istu stvar od modela koje sam složim, iako se meni nije rušio.
Lazy load? Ehh, da, to je jedna od boljki, ali možeš to gledati i s pozitivne strane u svjetlu sigurnosti da znašt što ORM radi u svakom trenutku.
V2 je uostalom uskoro vani (beta 1 VS2010 za koji dan). :)
Čitam vaše postove, i pitam se: da li sam ja onda loš programer?
Radim u Delphi-u, koristim gotove kontrole, dataset-ove, dbgrid-ove, SQL znam dosta dobro... Radim database r/w desktop aplikacije. Nikada nisam sam napravio komponentu, eventualno sam radio izmjene na postojećima. Moje aplikacije koristi 40-ak klijenata, imaju sitnih bugova koje brzo rješavam. Da li sam ja sa takvim načinom programiranja loš programer?
Ne.
:-) hvala, sada si mi uljepšao dan :-P
Moram napisati komentar na diskusiju DevExpress vs TMS. Mislim da niti jedan niste u pravu, jer su i jedne i druge komponente kvalitetne. Sa DV nisam toliko radio, sa TMS malo više, i istina je da TMS ima toliko opcija da se teško snalaziš u početku, a i kasnije sa njima. Da bih skužio kako radi DBPlanner za ono šta mi treba sam bez pretjerivanja potrošio cca 10 sati.
Ali da jedne ili druge ne valjaju, nebi se složio. I jedne i druge rade dobar posao. To oko dizajna i skinova je stvar ukusa, i ne vidim neke ogromne (čitaj: nepremostive) razlike među njima. (Jedino šta mi se u TMS kontrolama ne sviđa je način popunjavanja TADVDBEdit kontrole sa lookup/popup :-) )
jbt... ako ste svi takvi programeri kako se čini... ili samo nabrajate sve programe jezike za koje ste čuli... zašto onda ne napravite neki bolji programski jezik... pa se nečete svađati dal je bolji VB,C#,C++,Java ili nešto slično.... Ja imam 14 god... ali sam od 9 god počeo programirati (QBasic,Logo)... sada radim u Delphiju, c++, c i VB.
zašto onda ne napravite neki bolji programski jezik...
One does not simply walk into Mordor...
jbt... ako ste svi takvi programeri kako se čini... ili samo nabrajate sve programe jezike za koje ste čuli... zašto onda ne napravite neki bolji programski jezik... pa se nečete svađati dal je bolji VB,C#,C++,Java ili nešto slično.... Ja imam 14 god... ali sam od 9 god počeo programirati (QBasic,Logo)... sada radim u Delphiju, c++, c i VB.
Napredno dijete... naprednije od nas svih... Uh ja sam se sa 9 igrao na spekule i na indijance i to...
Btw... pregazilo te vrijeme (iako si mlad)... Delphi je postao Kylix, VB je mrtav, a c koriste rijetki... Hm...
Gadan ti je to posao, taman nesto naucis, a ono moras ucit nesto novo jer ovo sto si naucio vise nitko ne koristi :)
jbt... ako ste svi takvi programeri kako se čini... ili samo nabrajate sve programe jezike za koje ste čuli... zašto onda ne napravite neki bolji programski jezik... pa se nečete svađati dal je bolji VB,C#,C++,Java ili nešto slično.... Ja imam 14 god... ali sam od 9 god počeo programirati (QBasic,Logo)... sada radim u Delphiju, c++, c i VB.
Napredno dijete... naprednije od nas svih... Uh ja sam se sa 9 igrao na spekule i na indijance i to...
Btw... pregazilo te vrijeme (iako si mlad)... Delphi je postao Kylix, VB je mrtav, a c koriste rijetki... Hm...
Gadan ti je to posao, taman nesto naucis, a ono moras ucit nesto novo jer ovo sto si naucio vise nitko ne koristi :)
Što se tiče VB-a tu se donekle mogu složiti, no za Delphi si fulao skroz jer je to jedno od najpopularnijih IDE-a uopće. Ne znam da se ikoji alat po brzini i mogućnostima može mjeriti s njim. Još samo kada se pogleda verzija 2010 i sve njene mogućnosti nema niti teoretske šanse da će ovaj alat ubrzo "umrijeti". A i osobno sam kupio C++ Builder 2010 koji koristi Delphi VCL komponente i platio oko 900E + PDV, a imao sam na raspolaganju BESPLATNO Visual Studio preko MSDNAA. Da je Visual Studio barem približno što i ovi alati sigurno ne bi trošio tolike novce. Tako da.. konstatacije su ti u najmanju ruku debelo netočne :)
EDIT:
I također, daleko od toga da se ne uči. Većina fakulteta poput FER-a, FOI-a, Filozofski (informatika) i ostalih po državi imaju kupljene Delphi i/li C++ Builder IDE okruženja.
Delphi kao Delphi vise ne postoji, vec postoji Kylix koliko se ja sjecam. Sto se tice samog Delphija, upoznat sam i sa njim i sa Borlandovim C++ om (radio sam jos u verziji 4.0,a u Delphiju sam radio maturalni) te znam da se dosta komercijalnih aplikacija pisalo u Delphiju (PowerArchiver, pa onda npr jedan od onih prvih trojanskih... Netxxx kao BackOrifice).
Sto se tice Kylixa nisam upoznat sa njim. Mislim da nije toliko popularan vise, da ga je ipak pregazio .Net framework... Takodjer mislim da se u VS moze jednako brzo pisati kao i u Delphiju. Takodjer znam da je za Delphi bila hrpa besplatnih a dobrih kontrola koje su se mogle skinuti sa neta, a veliki dio njih se mogao portati u Buildera (sa nekima sam imao problema). Ali i dalje tvrdim da je Delphi pregazen, te da je njegovo vrijeme proslo... :)
Dosta toga se radilo i u Clipperu, neki se jos kunu u njega, ali Clipper je ipak mrtav, ili nije?
Delphi kao Delphi vise ne postoji, vec postoji Kylix koliko se ja sjecam. Sto se tice samog Delphija, upoznat sam i sa njim i sa Borlandovim C++ om (radio sam jos u verziji 4.0,a u Delphiju sam radio maturalni) te znam da se dosta komercijalnih aplikacija pisalo u Delphiju (PowerArchiver, pa onda npr jedan od onih prvih trojanskih... Netxxx kao BackOrifice).
Sto se tice Kylixa nisam upoznat sa njim. Mislim da nije toliko popularan vise, da ga je ipak pregazio .Net framework... Takodjer mislim da se u VS moze jednako brzo pisati kao i u Delphiju. Takodjer znam da je za Delphi bila hrpa besplatnih a dobrih kontrola koje su se mogle skinuti sa neta, a veliki dio njih se mogao portati u Buildera (sa nekima sam imao problema). Ali i dalje tvrdim da je Delphi pregazen, te da je njegovo vrijeme proslo... :)
Dosta toga se radilo i u Clipperu, neki se jos kunu u njega, ali Clipper je ipak mrtav, ili nije?
Ne. Već baš obratno. Kylix je IDE za linux koji je koristio CLX biblioteku kako bi mogao portati windows VCL aplikacije pod linuxom. Kylix je daaavno došao do verzije 3.0 i od tada se nije razvijao i može se reći da je napušten. Dok, Delphi je sasvim deseta stvar i daleko od toga da je mrtav.
http://www.embarcadero.com/products/delphi
I s obzirom na broj komponenti VS nije ni približno tako user friendly niti brz kao npr. Delphi. Jedino zbog čega se VS uopće vrijedi spominjati je .NET, dok opet je Delphi jednostavniji čak i od njega. Naprotiv, ne moraš mi vjerovati. Slobodno probaj pa usporedi. Druga je stvar ako se tebi više sviđa dinamički alocirati objekte umjesto samo staviti ih na formu :)
I opet, ne želim tu počinjati nikakav flame što je nekome bolje ili nije, no nemoj nešto direktno omalovažavati ako zaista to ne poznaješ. A ja radim i na jednom i na drugome. Na VS-u radimo na faksu, a kada treba napraviti posao onda C++ Builder.
Sto se tice IDEa, moje iskustvo je da VS ima vjerojatno najbolji code editor (u suradnji sa resharperom naravno:), ali ostatak price, poput UML i class designera, ipak je kod drugih dosta bolje rijeseno. VS2010 tek sada donosi neki UML editor, iako u beta2 je jos nefunkcionalan. Cini mi se da sam kod Rational Rosea vidio da mu mozes dati entitete, odabrati design pattern, i ovaj ti ih poslozi i povete prema odabranome patternu. VS ce to imati u verziji 2019 valjda. Osim naravno sansa za 3th pary pluginove, jer se sada konacno mogu malo lakse raditi addonovi za VS.