Podatkovni objekti in odzivnost IDE okolja

Navedeno težavo sem objavil že na tujih forumih pa da vidim, če so domači možgani kaj boljši od tujih...(mogoče izziv za MM?)

Namreč, pri razvoju winform applikacije sem naletel na težavo, ki se vedno bolj kaže kot megabug vs2005. Projekt je precej podatkovno usmerjen, vsebuje typed dataset z cca. 16 tabelami in relacijami med njimi. Ena tabela ima 11 relacij na podrejene tabele. Po izdelavi osnutka obrazca z vnosnimi polji je projekt potreboval cca. 4 min.!! za build. Odstranili smo vse nepotrebne bindingsource, s tem se je čas build-a popravil vendar IDE kljub temu ni deloval kot bi moral. Po odstranitvi bs-ov smo morali določenim gradnikom določiti datasource in datamember lastnosti (v design time) in tukaj se je začel hec. Kadarkoli si hotel izbrati kakšno polje iz tabele z 11 relacijami je IDE nepreklicno zmrznil (cpu 100% - devenv) - prekinil ga je samo task manager (End Task). Zdelo se je čudno vendar smo vseeno preizkusili enak postopek brez relacij in glej ga...IDE deluje bp! Postopno smo dodajali (in preverili) relacije in več kot jih je bilo, počasnejši je bil build. Po 8 relaciji se je že začelo kazati/napovedovati freeze-up in po 10. relaciji se je to tudi zgodilo.

Zaključek, do katerega smo prišli je, da v vs2005 ne moreš prenesti zgradbe baze (normalizirane), ker je le-ta ne prebavi. Torej VS2005 ni primeren za izdelavo podatkovno intenzivnih programov.

Avtor: rht2net, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

MihaM
MihaM - nedelja, 19. november 2006

Maš prav, bumbar se res zacikla. Ostane ti edino kodiranje teh povezav (najenostavnejša rešitev mogoče). Objavi na MS feedback center, če še ni.

rht2net
rht2net - nedelja, 19. november 2006

Hmm...očitno nisem dovolj dobro izpostavil težave, ki je povezana s poslanim projektom.Torej, sploh ni težava v build-u (ta se pojavi, če so prisotni bindingsource-i), ampak v nezmožnosti v design time-u povezati polje na obrazcu s katerimkoli poljem iz tabele "maticni_artikel_t".LP-RH

MihaM
MihaM - nedelja, 19. november 2006

Build projekta mi traja približno 1s (Vista/VS2005 SP1 beta/CPU Intel E6600). Ok, pretiravam, v resnici mi v delčku sekunde napiše Build Succeeded

MihaM
MihaM - torek, 14. november 2006

Pa res se ne da nalepit tle.Meni lahko pošlješ na miha afna rthand pika com.

spirit1
spirit1 - ponedeljek, 13. november 2006

a ne bi raje uporabil c#? VB me preganja v spanju se iz casov verzije 5.0 lahko ga meni posljes komot po "zasebnem sporocilu". ali pa mi poslji mail preko mojega bloga. 

rht2net
rht2net - ponedeljek, 13. november 2006

Imam pripravljen vzorčni projekt (enostaven vb projekt), ki zrcali naveden problem.Če komu je in mi zaupa e-mail, mu ga rade volje pošljem...LP

spirit1
spirit1 - ponedeljek, 13. november 2006

se popolnoma strinjam. dataset je cisto uporabna stvar. nikoli nisem rekel da je slab ta moj komentar se je nanasal na NSK iz linka, ki sem ga dal. 

MihaM
MihaM - ponedeljek, 13. november 2006

spirit1: videl bos da se nikjer ne uporablja dataset kot primarni objekt za shranjevanje vrednosti. Ehm, zakaj pa ne? Dataseti so čisto fajn, dokler se ne greš ORM. Pa še takrat imajo kakšno boljšo lasnost.

spirit1
spirit1 - ponedeljek, 13. november 2006

jah, a bi ti pisal o slabih straneh tvojega izdelka?ni bil point v hibernate-u :) point je bil v enterprise design-u. hibernate je samo dobrodosla pomoc.a si pogledal uporabo memory-a pri VS-ju? sem se vedno preprican, da je to VS2005 memory leak bug.zato ker vem da v 2003 to ni bil problem, saj sem tudi sam poskusal nekaj podobnega.> Brez zamere...Zamere so precenjene :))

rht2net
rht2net - nedelja, 12. november 2006

"MS lahko pravi kaj hoce." - žalostna resnica"poglej si http://download.manageddesigns.it/nsk.aspx " - Hibernate in podobne že poznam - Hansaplast za zijajoče rane izvirnega izdelka - $tudio2005"videl bos da se nikjer ne uporablja dataset kot primarni objekt za shranjevanje vrednosti." - vprašanje še vedno ostaja - ZAKAJ POTEM SPLOH OBSTAJA???Citat iz MSDN:"Datasets are objects that contain data tables where you can temporarily store the data for use in your application. If your application requires working with data, you can load the data into a dataset, which provides your application with a local in-memory cache of the data to work with. You can work with the data in a dataset even if your application becomes disconnected from the database. The dataset maintains information about changes to its data so updates can be tracked and sent back to the database when your application becomes reconnected."- niti besede o kakšnih omejitvah..."potem si pa se oglej domain driven design patterns in poslusaj kako tvoj milni mehurcek prepricanja poka :))" - je že zdavnaj počil, zato sem začel ta post...Brez zamere...

spirit1
spirit1 - nedelja, 12. november 2006

MS lahko pravi kaj hoce.poglej si http://download.manageddesigns.it/nsk.aspx zdownloadas si lahko na download->source codeTako se pravilno pisejo database aplikacije. Designs Patterns so odlicna stvar za vedet.videl bos da se nikjer ne uporablja dataset kot primarni objekt za shranjevanje vrednosti.potem si pa se oglej domain driven design patterns in poslusaj kako tvoj milni mehurcek prepricanja poka :)) zamrzovanje visual studia je najbrz kak bug pri lastnem memory managementu (poglej si v task managerju VM size in used memory ce konstanto narasca) zato ker  pri VS2003 nisem zasledil takega problema pa sem mel tudi 20 tabel v dataset-u. before i knew better. :))

rht2net
rht2net - nedelja, 12. november 2006

Ah končno... Seveda, drugače ne bi pisal, bom ga malce priredil (vsebuje devx gradnike in referenco na spletno storitev), da bo univerzalno uporaben.Na hitro o projektu:vsebuje typed dataset z 12 datatable-i (tabele imajo po cca. 10 polj)ena o dnjih je "master", 11 je posledično "child"-ovpovezane so z enostavno relacijo (vrsta polja je UID (oz. GUID v sql-u))za vsako tabelo designer samodejno ustvari tudi bindingsource katerih je tudi 12V glavnem je težava v tem, da ko želim povezati gradnike obrazca s polji "master" tabele (določitev datasource in datamember) mimo bindingsourca v "Properties" gradnika (npr. textbox), IDE okolje studia nepreklicno zmrzne! Vezava preko bindingsourca sicer uspe vendar v tem primeru pa se projekt buld-a cca. 4 minute!!! (preverjeno na različnih pc-jih PIV-3GHz,1GB RAM).Po postopkovni analizi sem ugotovil, da so za navedene simptome IDE-ja "krive" relacije med tabelami (po cca. 8. relaciji se začne veselje).

MihaM
MihaM - nedelja, 12. november 2006

Imaš primer aplikacije, za pokazat?

rht2net
rht2net - nedelja, 12. november 2006

Takšen odgovor sem pričakoval...Naj uporabim objekte? Kaj pa je dataset (in vse kar je v njem) drugega kot objekt?V nobeni strokovni literaturi (MS Press) misem zasledil, da bi imel dataset kakršnekoli omejitve (arhitekturne kot vsebinske). Nasprotno, vsepovsod te MS dobesedno prisili uporabljati datasete in jih celo povdarja kot objekte, ki so narejeni zaradi lažjega prenosa zgradbe baze iz strežnika (še posebej SQL2005). Ponavljam, nikjer govora o kakršnihkoli omejitvah. Do sedaj še nisem naletel na drug (enostaven) način obdelave podatkov kot z dataseti oz. datatable-i.Opozarjam na dejstvo, da MS propagira Studio2005 kot orodje s katerim lahko narediš program hitro, enostavno in s čim manj pisanja kode - samo pozabili so dopisati, da to velja dokler delaš tako neumne aplikacije kot jih sami ponujajo kot vzorce.Sicer si mislim na kakšne vrste objekte cilja spirit1, vendar takšno delo nikakor ni v skladu z navedbami in propagando iz strani MS.Za mene je jasno da je celoten Studio 2005 en velik prenapihnjen milni mehurček, ki se razblini že ob sami misli na kompleksnejši, podatkovno intenzvini program. Če temu ni tako, pa mi naj nekdo razjasni vlogo in uporabnost dataseta.

spirit1
spirit1 - petek, 10. november 2006

si mogoce pomislil, da ni dobro imeti tako velikega in kompleksnega dataseta?VS je primeren za izdelavo podatkovno intenzivnih programov. Typed dataseti niso primerni za take velikosti. uporabi raje objekte in ne typed datasetov.