[ logic_rabbit @ 14.08.2006. 14:50 ] @
| Zanima me kako napraviti c# aplikaciju kroz koju će se kreirati nova c# solucija,projekat i forma,a nakon toga ostale forme da se samo dodaju dinamički?
Najveći problem mi je dinamicki kreirati formu pa je kroz moju aplikaciju dodati u već postojeću soluciju?
Mislim da se trebaju koristiti Visual Studio Add-in menager-i.Pitanje se odnosi na Visual Studio 2003,2005 ne na starije verzije.
Ima li ko nesto slično odrađeno? |
[ Shaggy @ 15.08.2006. 13:47 ] @
Ako mozes dinamicki da uradis kako forma treba da izgleda, prikljucenje forme Nekoj soluciji ne bi trebao da bude problem...
Znaci, u aplikaciji kreiras kod za formu i snimis u fajl NovaForma.cs
Kopiras fajl NovaForma.cs u Direktorijum gde ti se nalazi projekat.
zatim ucitas fajl Projekat.csproj i u delu
<Files>
<include>
Dodas:
<File
RelPath = "NovaForma.cs"
SubType = "Form"
BuildAction = "Compile"
/>
I to bi bilo to...
Ja mislim da je veci problem dinamcki kreirati kod za formu...
[ mmix @ 15.08.2006. 14:08 ] @
Sacekaj .NET 3.0 i XML forme
[ jablan @ 15.08.2006. 14:08 ] @
Šta ustvari hoćeš da napraviš?
Zašto ti je problem da napraviš novi solution sa jednom formom, zapakuješ ceo folder u jedan fajl i napraviš aplikaciju koja će sadržati taj fajl kao resurs i otpakovati ga gde hoćeš.
Ja sam se malo zezao sa Addin-ima za VS, odnosno custom vizardima koji se pojavljuju kad se pravi novi projekat ili ubacuje fajl u postojeći, ali ne vidim da to ima puno veze sa ovim o čemu ti pričaš.
[ logic_rabbit @ 15.08.2006. 14:20 ] @
Ovo sto je Shagy napisao mozda upali,nasao sam neki kod na msdn koriste se Visual Studio Add-ini.
Recimo imas projekat koji ce imati preko 1000 formi,sto nije glupo ima takvih projekata ja sam radio na nekima.
Tada se obicno pravi generator formi koji izgenerise kompletnu formu sve za insert,update,delete i dugmad polozaj dugmadi itd.
Bilo bi previse sporo da se sve rukom pise cak i kad koristis nasledjivanje.
Treba da velicina i polozaj objekata na formi na sve i jednoj formi bude identican.
To je program u koji uneses odredjene parametre npr.ime tabele,polja koja ces prikazati na formi,koja su polja lookup-i itd.i program ti sam napravi formu.
Meni treba kako da vec takvu generisanu formu dodamo u postojecu soluciju programski pomocu programa,da on to sve odradi.
[ jablan @ 15.08.2006. 14:49 ] @
A što ne generišeš forme dinamički? Mnogo ti je bezveze ta ideja sa generisanjem projekta koji posle kompajliraš.
[ logic_rabbit @ 15.08.2006. 14:54 ] @
Ma forme i mislim generisati dinamicki.
A projekat i soluciju necu.Ali isto tako necu da moram ulaziti u tu soluciju i svaki put reci add existing item za svaku od 1000
formi.
Hocu da moj program generise formu i automatski je prikaci projektu i soluciji pomocu parametara koje ja navedem.
[ jablan @ 15.08.2006. 15:08 ] @
Nisi me razumeo. Kad kažem dinamički, ne mislim da se generišu c# fajlovi, već objekti, u toku rada programa. Kapiš?
[ logic_rabbit @ 16.08.2006. 06:53 ] @
Nista te ja nekontam.Ja mislim da generisem c# fajlove,a onda ih prikacim na postojecu soluciju.
[ jablan @ 16.08.2006. 08:24 ] @
Uh...
Ovako. Imaš ideju da automatski praviš forme zajedno sa njihovim sadržajem, na osnovu nečega (datasetova, klasa, nekog opisa u XMLu, bilo čega).
Umesto da programom ABC praviš C# fajlove i ubacuješ ih u projekat XYZ, pa posle kompajliraš projekat XYZ, bolje ti je da te forme generiše sam program XYZ. Forme su instance neke .NET klase, jel tako? Tvoj program može da napravi instancu forme F1, na nju postavi kontrole C1, C2 i C3 na osnovu opisa koje imaš i uradi F1.Show(), jel tako? Je l' sad malo jasnije na šta sam mislio?
[ IdeaR @ 16.08.2006. 08:51 ] @
Citat: logic_rabbit:
Recimo imas projekat koji ce imati preko 1000 formi,sto nije glupo ima takvih projekata ja sam radio na nekima.
Tada se obicno pravi generator formi koji izgenerise kompletnu formu sve za insert,update,delete i dugmad polozaj dugmadi itd.
Bez uvrede, ali ako imas 100-ne formi pravljenih nekim code generatorom, nešto nije uredu sa dizajnom aplikacije.
Citat: jablan: A što ne generišeš forme dinamički? Mnogo ti je bezveze ta ideja sa generisanjem projekta koji posle kompajliraš.
+1
[ logic_rabbit @ 16.08.2006. 09:50 ] @
Tako resenje sam vec video pomocu add-in-a u vb 6.Kad se u istom projektu generisu forme.
Ma i ovde se to radi pomocu add-in-a za visual studio.Meni je svedno odakle ce se forme generisati,
ali sam rad da to bude nezavisna aplikacija.
Citat: Bez uvrede, ali ako imas 100-ne formi pravljenih nekim code generatorom, nešto nije uredu sa dizajnom aplikacije.
Nisam ja to smislio et nako.Toliki projekti se rade po 2 godine ali se i grdno naplacuju.Baza je normalizovana koliko treba,dizajn je dobar.
[ jablan @ 16.08.2006. 09:54 ] @
Imam osećaj da nas još uvek ne razumeš.
[ logic_rabbit @ 16.08.2006. 10:47 ] @
Kontam pokrenem add-in iz tog XYZ projekta koga hocu da pravim.Add-in mi generise formu i prikaci na isti projekat.
[ aleksandarpopov @ 16.08.2006. 10:52 ] @
Kad vec imas generator formi, zasto bi generisao .cs fajlove za forme pa to sve da dodajes projektu i kompajliras, kada sve mozes uraditi dinamicki npr. citas definiciju maske, opise polja iz baze na primer, sve to runtime, genrises objekte. Promenis opis polja u bazi, na jednom mestu, svi klijenti bez kompajliranja koriste novu masku. Neki veliki erp sistemi rade tako, gde imas >1000 tabela. Ne treba da dodajes formu projektu na taj nacin, vec je koristis kao bilo koji drugi objekat koji si dinamicki napravio. Ako neko ima neku literaturu, link, primer bilo sta u vezi ovakvih dinamickih generatora formi ili ovakvog frameworka bio bih mu zahvalan (tako nesto radim za diplomski :) )...
Poz
[ jablan @ 16.08.2006. 11:00 ] @
Citat: logic_rabbit: Kontam pokrenem add-in iz tog XYZ projekta koga hocu da pravim.Add-in mi generise formu i prikaci na isti projekat.
Ne, ali očigledno nije bitno.
[ misk0 @ 16.08.2006. 20:26 ] @
:)) Ovde svi razumiju osim onog koji pita:)
Ajd da probam ja - dinamicke forme koje ti jablan predlaze ne postoje tokom dizajna aplikacije, ne mozes da ih vidis, nemas ih u fajlovima. Kad pokrenes aplikaciju i kad se ukaze potreba za nekom formom - TAD JE KREIRAS - INSTANCIRAS - kako god, znaci dok aplikacija radi ona kreira forme kao i bilo koje druge objekte, promjenjive i sta vec. Ne postoje forme u fajlovima, postoje samo neki opisi koji tvom generatoru formi sluzi da zna kako da je napravi.
Mozda sad kontas?
[ spartak @ 16.08.2006. 22:18 ] @
Kad je grupnjak na coveku ajde da probam i ja :-)
faza 1) Elem, kako neki generator pravi nove forme? Uprosceno maksimalno: Tako sto prodje kroz bazu, vidi recimo tabelu 5 polja od kojih je 3 tekstualnog i 2 celobrojnog tipa. Onda uzme pa za onaj koji je ID generise label (jeli ID se ne edituje), za 3 tekstualna stavi textbox-ove, a za onaj preostali tekstualni proveri da li je od negde FK, doda neku lookup kontrolu, napunije tom drugom tabelom i setuje selected vrednost na tu koju si imao.
faza 2) Ti onda takvu formu hoces da dodas u solution i da je imas "u cvrstom formatu".
Ono sto ti ljudi predlazu je da fazu 2) ni ne radis. Imas bazu, imas jednu formu tipa MojaBaznaForma. Onog momenta kad ti korisnik trazi da edituje podatke iz tebele AAA, ti kazes u toku izvrsavanja programa: "Daj sad jednu formu kakva treba da bude za editovanje AAA" - i generator ispljune korisniku takvu formu (odradi se faza 1). Bez da je postojala u solution.
[ logic_rabbit @ 17.08.2006. 07:01 ] @
Sad sam skontao spartak,
ali ne znam da li bi to upalilo kod mene.
Moram malo da razmislim o tome.Ali nije losa ideja sve u svemu.
[ logic_rabbit @ 17.08.2006. 13:50 ] @
Ideja je super hvala.Tako se verovatno i radi u inostranstvu.Zbunilo me sto mi u firmi imamo jedno resenje koje radi onako kako sam objasnio.
[ spartak @ 17.08.2006. 13:59 ] @
Mozes i ovako i onako. Ovo sto sam ti opisao je pattern kako vecina slicnih sistema radi. To jest svi iole dobri koje ja znam. Tebi korisnik uvek trazi program koji radi, a ne solution u kojem se nalaze forme po kojima ce on nesto da kodira, sam da kompajluje i sta ti ja znam.
To ti je slicna stvar kao CMS koji generise celo drvo statickih strana (export), ili onaj koji vraca stranice po zahtevu. Kod tebe je jos i gora stvar, ti hoces da imas staticke forme ali da vuku dinamicki podatke pa si napola.
[ dostanov @ 17.08.2006. 14:54 ] @
Citat: logic_rabbit: Ideja je super hvala.Tako se verovatno i radi u inostranstvu.Zbunilo me sto mi u firmi imamo jedno resenje koje radi onako kako sam objasnio.
ako i dalje hoces da generises fajlove, onda bi mogao da se malo poigras sa programom CodeSmith,
koji upravo tome i sluzi.
uz malo srece, mozda i pronadjes neki template na netu, koji je potrebno samo malo preraditi za tvoje potrebe.
[ logic_rabbit @ 18.08.2006. 06:52 ] @
Imam neku verziju Codesmitha ali nisam ga ni pokusao koristiti.Cinio mi se beskoristan.
[ dostanov @ 18.08.2006. 08:51 ] @
Citat: logic_rabbit: Imam neku verziju Codesmitha ali nisam ga ni pokusao koristiti.Cinio mi se beskoristan.
hm.. daleko od toga da je beskoristan, ako se iskoristi na pravi nacin moze postati vrlo mocan alat.
upravo radim na komercijalnom projektu, gde smo iskoristili NetTier2 template (toplo preporucujem) za generisanje business i data access slojeva, kao i CRUD sql procedura, sto nam je mnogo povecalo produktivnost na projektu.
[ jablan @ 18.08.2006. 10:24 ] @
Citat: dostanov: upravo radim na komercijalnom projektu, gde smo iskoristili NetTier2 template (toplo preporucujem) za generisanje business i data access slojeva, kao i CRUD sql procedura, sto nam je mnogo povecalo produktivnost na projektu.
Na osnovu čega generiše?
[ dostanov @ 18.08.2006. 14:16 ] @
Citat: jablan: Na osnovu čega generiše?
nisam bas siguran sta me pitas, ali ajde, slojevi se generisu na osnovu baze.
dakle, krenuli smo smerom od dole na gore, odnosno od baze na gore.
izmodelirali smo bazu, prilagodili smo malo nettiers template, i pokrenuli ih iz CodeSmith-a.
ostalo nam je onda da implementiramo interfejs i custom metode za biznis entitete.
vise detalja mozes pronaci na adresi nettiers
nettiers je free, i mozes ga pustiti za pocetak na northwind bazi.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|