[ flighter_022 @ 04.03.2008. 21:40 ] @
Prebacujem svoje aplikacije sa VS6 na VB.NET... Interesuje me sta mislite o sledecem:

Na primer, forma za pregled i editovanje slogova u bazi. Neki slogovi zadovoljavaju uslov da budu editovani, neki ne (razlog nije toliko bitan).

Da li:

1. Sacekati da korisnik pokusa da menja sadrzaj sloga, pa onda proveravati da li je uslov za editovanje zadovoljen, te ako nije ne dozvoliti i obavestiti koriisnika, ili

2. Pri prelasku sa jednog sloga na drugi svaki put proveravati zadate uslove te prikazivati ili sakrivati komande za editovanje, brisanje, itd...?

Predpostavka je da provera uslova ne zahteva bitnije angazovanje resursa (procesor, memorija, mreza/server)
[ Shadowed @ 05.03.2008. 00:24 ] @
Ako je 2. prakticnije korisniku a nece oduzeti previse vremena (novca), onda to. Tj. ona opcija koja zadovoljava pomenuto, nebitno da li je 1 ili 2 :)
[ flighter_022 @ 05.03.2008. 00:58 ] @
Da ali u slucaju ako aplikacija i pre nedozvoljene akcije komande za tu akciju ucini nedostupnim, aplikacija se vise priblizava idiot-proof konceptu ;)
[ mmix @ 05.03.2008. 07:37 ] @
Veoma je lako izvesti preemptive security u .NET-u.

Ako podatke bindujes preko bindinsource-a onda mozes da iskoristis jednu od ova dva metoda:

1. Ako se vezes na POsitionChanged event mozes da regujes na promenu trenutnog reda, odradis proveru i ako je treba disablujes kontrole.
2. Sve data entry kontrole imaju ReadOnly i Enabled polja, pa ako prosiris svoj dataset da svaki red sadrzi security polje tipa boolean koje proracunas unapred, mozes jedno od ovh propertija da bindujes na to polje, kako se promeni pozicija bindingsource-a i uradi se rebinding kontrola, automatski ce se kontrole iskljuciti ili ukljuciti
[ flighter_022 @ 05.03.2008. 08:55 ] @
mmix, pitanje nije bilo kako izvesti opcije 1 i 2 vec da li odabrati 1 ili 2 :)

[ mmix @ 05.03.2008. 09:03 ] @
Ok, , onda 2. Staviti blokadu pre editovanja nije idiot-proof concet, to je jednostavno postovanje korisnikovog vremena, bolje je nego pustiti korisnika da provede 15 minuta menjajuci podatke da bi ga na kraju saseko sa "NE MOZE"
[ flighter_022 @ 05.03.2008. 12:16 ] @
Hm, da. Medjutim, onda se opet postavlja pitanje da li komandu sakriti ili samo blokirati. Ako se sakrije, korisnik nece kapirati zasto te komande nema te ce cimati podrsku, a ako je komanda vidljiva, kliktace na nju kao manijak ne kapirajuci da ne moze, a pri tome nece imati povratnu informaciju ZASTO ne moze, sto u slucaju Br. 1. moze da dobije putem poruke o gresci. Ovo bi moglo da se izbegne postavljanjem labele koja postaje vidljiva u slucaju greske i u tom momentu nosi poruku o gresci a ne da se koristi msgbox... Ili da se koristi always-on-top polu-transparentni prozor koji po potrebi moze i da se iskljuci...
[ Shadowed @ 05.03.2008. 12:27 ] @
Citat:
flighter_022: Ako se sakrije, korisnik nece kapirati zasto te komande nema te ce cimati podrsku, a ako je komanda vidljiva, kliktace na nju kao manijak ne kapirajuci da ne moze, a pri tome nece imati povratnu informaciju ZASTO ne moze

Pa, ti stavi info zasto nema/koja je greska pa ce imati obavestenje :)