Kezdőoldal » Számítástechnika » Programozás » Egy olyan szoftver elkészítésé...

Lcb kérdése:

Egy olyan szoftver elkészítéséhez, melyben a felhasználói felületet a felhasználó tervezi, milyen arhitekturális minta a javasolt?

Figyelt kérdés
A szoftver egy olyan alaprajzzal dolgozna, mely régiókra van osztva, a régiókon belül pedig téglalap alakú gombok, vagy egyéb, elemek találhatóak. A lényeg, hogy ezen elemek kapcsolódnak egy háttéradathoz, melyek vagy kattintásra, vagy kurzor-ráhúzásra információt jelenítenek meg. Ez lényegtelen is, a lényeges viszont az, hogy ezt az alaprajzot a felhasználó készíti el, a háttérben pedig ennek hatására jönnek létre az adatok is. A programot UWP, vagy windows form apps rendszerben készíteném el, és kérdésem, hogy egy ilyen "map editor" mellett milyen architektúra a javasolt, vagy esetleg írjam meg a map editor köré a programot, vagy a program köré a map editort?

2022. jan. 13. 14:44
 1/4 anonim ***** válasza:

Kár, hogy a kérdéseket nem lehet lepontozni. Ez nem specifikáció, rengeteg kérdéses rész van, és ha most mondunk valamit, akkor még nem leszel előrébb, mert nem ismered a módszereket, sem pedig a buktatókat. Eleve WinForms vs UWP két teljesen különálló jószág, rengeteg szemléletkülönbséggel, más belső architektúrával és működéssel. Az utolsó kérdésed értelmetlen, ha jól sejtem még nagyon az elején lehetsz és ez neked egy tanulóprojekt lenne. De először is tisztázd magadban, hogy mit szeretnél, mert nagyobb falatnak tűnik, mint amivel most, ezen a szinten el tudsz bánni.


Amit javaslok: szeparáld a UI, az adattárolás és az üzleti logika részét. Erre pl nagyon jó az MVVM architektúra. Az üzleti architekturád viszont még messze kérdéses hiszen a kérdésből az sem derül ki, hogy ez az alaprajz micsoda? Csinálj egy követelményspecifikációt, abban írj le minden követelményt és funkciót aminek meg kell valósulnia. Milyen map editor ez? Mit fog belerakni a user, az hogyan fog kinézni, milyen adattárolás szükséges hozzá, mit tárolunk el, mik az állapotai, validálni kell-e az állapotokat, milyen funkciók kötődnek hozzá, mi a végtermék, milyen építőelemei vannak, stb.

2022. jan. 14. 00:49
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

Minden szavad igaz. Kezdő vagyok és a kérdés is hülye volt. A megvalósítandó feladat egy leltározást segítő program készítése. A UI-on egy raktár vázlatos alaprajza látható, melyen rgéiók vannak elkülönítve, minden régió polcsorokat tartalmaz. Ezen polcsorok és a régiók is egyedi azonosítóval bírnak. A polcsoroknak van egy állapotuk, mely lehet megkezdetlen, folyamatban lévő, befejezett és problémás (utóbbit leszámítva ezek a leltározás állapotát jelentik). Kezdetben minden polcsor állapota megkezdettlen. A bemeneten a leltározásról érkezik információ, mely tartalmazza a polcsor kódját, és azt, hogy elindult a leltár, vagy azt, hogy be lett fejezve. Az egy régióhoz tartozó polcsorok leltározása feltételezhetően azonos időt vesz igénybe. Régiónként a befejezett polcsorok leltározási idejéből számolódik egy átlag-leltározási idő. Ezen idő, és a polcsorok leltározásának elkezdésének időpontjából, illetve a pillanatnyi időből számolódik a polcsorok leltározásának befejezéséig vátható időmennyiség. Ezt az időmennyiséget egy a kurzorpozícióban megjelenő szövegdoboz jelzi, ha a polcsorra húzza a kurzort a felhasználó. A polcsorok állapotát a polcsor színe jelzi. A polcsorok téglalap alakúak, a régiók és a raktáralaprajz is vízszintes és függőleges szakaszokból álló sokszögek. A régiók kattintásra egy ablakban összegzik a tartalmazott polcsorok mennyiségét a leltározási állapotok szerint. A polcsorokra való jobb klikk esetében megjelenik egy ablak, melyben be lehet állítani a polcsor állapotát problémásra.


Az MVVM arhitektúra már belátom, hogy megfelelő lesz, szerencsére van is hozzá tananyagom. A megvalósításra is van ötletem, viszont a "map editor" bonyolítja meg a dolgokat. A felhasználó képes megrajzolni egy felületen a raktár alaprajzát és itt az alaprajz alatt, a raktár belső falait értem. Az egyszerűség kedvéért a falak csak határolják a belső teret, nincsenek válaszfalak. Ezen falakon belül a felhasználó megrajzolhatja a régiókat, melyeken belül elhelyezhet polcsorokat. A régiókon belül elhelyezhet polcsorokat, itt melyek mérete változtatható. Egy polcsor kizárólag egy régió területén helyezkedhet el. A külső falak kezdetben egy téglalap alakját veszik fel. A falnak fix a vastagsága. Ezen fal oldalainak közepén, egy olyan fogópont van, mellyel kiljebb lehet azt húzni, akárcsak egy kijelölt mezőt lehet nyújtani a paint-ben. A falon töréspontot lehet elhelyezni. Ennek megfelelően két részre tagolódik a fal, egy-egy fogópont jön létre. Ha az egyik falat elkezdi húzni a felhasználó, létrejön egy, vagy he épp három részre lett tagolva a fal kattő darab új falrész, hogy a teljes fal folytonos legyen. Töréspont lerakása esetén (egy klikk a töréspont lerakása gombra, majd egy klikk a kiválasztott falelem megfelelő részére) eltűnnek a fogópontok, hogy ezek ne akadályozzák a töréspont fal közepére való kattintást. A régiókat egy régió lerakása gomb megnyomása után egy pozívióra való kattintást követően lehet lerakni, ez a kattintott pozícióba karül. A régió kezdetben egy fix nagyságú négyzet, melynek méretei csökkenhetnek, ha a lerakás pozíciójában nem férne el pontosan (túllógna a falon). A régió méretezése a falakéval azonos módon történik. A polcsor lerakásai is így történik, csak itt a régióba is bele kell férjen. A pocsor méretezése is azonos, csak töréspontok nem rakhatóak széleire. A régióknak színük és kontúrjuk van. Természetesen megvalósítás közben még számtalan más dolgot is szem előtt kell tartanom, de a fő problémám, hogy hogyan fogok tudni olyan editort csinálni, melyekkel ilyen elemeket lehet mart létrehozni, főként mert windows platformos elemekkel tervezem megvalósítani mind a régiókat, mind a polcsorokat, így ezen terv alapján kell majd létrehozni a programban használható raktárfelületet. Az ötletem az volt, hogy mivel az uwp-s xaml nyelvvel valamennyit foglalkoztam, a map editor egy xaml fájlt fog generálni, majd az ezekben létrehozott elemekhez fogja automatikusan bindolni a szintén automatikusan létrehozott háttéradatokat. Azt kifelejtettem, hogy a polcsorok és régiók azonosítóját is a map editorban lehet megadni, tehát lerakásuk előtt felugrix egy szövegdoboz, melyben meg kell ezt adni, és ezen azonosítók alapján jön majd létre a háttéradat.


Az első kérdésem, hogy mivel sok ilyen húzogatós, nyújtós rendszer van, legfőképp a képszerkesztésre alkalmas szoftverekben, van-e erre létező minta, a második, hogy milyen módon tudnám ezt a létrehozott felületet átvinni a programomba, tehát ez alapján létrehozni a bussiness layer objektumaimat, és ezeknek a view-es részét.

2022. jan. 14. 03:37
 3/4 A kérdező kommentje:

A középső rész kaotikusan lett megfogalmazva, itt javítottam.


Az MVVM arhitektúra már belátom, hogy megfelelő lesz, szerencsére van is hozzá tananyagom. A megvalósításra is van ötletem, viszont a "map editor" bonyolítja meg a dolgokat. A felhasználó képes megrajzolni egy felületen a raktár alaprajzát és itt az alaprajz alatt, a raktár külső falait értem. Az egyszerűség kedvéért a falak csak határolják a belső teret, nincsenek válaszfalak. Ezen falakon belül a felhasználó megrajzolhatja a régiókat. A régiókon belül elhelyezhet polcsorokat, melyek mérete változtatható. Egy polcsor kizárólag egy régió területén helyezkedhet el. A külső falak kezdetben egy téglalap alakját veszik fel. A falnak fix a vastagsága. Ezen falak oldalainak közepén, egy olyan fogópont van, mellyel kiljebb lehet azt húzni, akárcsak egy kijelölt mezőt lehet nyújtani a paint-ben. A falon töréspontot lehet elhelyezni. Ennek megfelelően két részre tagolódik a fal, egy-egy fogópont jön létre. Ha az egyik falat elkezdi húzni a felhasználó, létrejön egy, vagy he épp három részre lett tagolva a fal és a középsőt húzza, kettő darab új falrész, annak érdekében hogy a teljes fal folytonos maradjon. Töréspont lerakása esetén (egy klikk a töréspont lerakása gombra, majd egy klikk a kiválasztott falelem megfelelő részére) eltűnnek a fogópontok, hogy ezek ne akadályozzák a töréspont fal közepére való lerakását. A régiókat egy régió lerakása gomb megnyomása után egy pozícióra való kattintást követően lehet lerakni, ezen régió a kattintott pozícióba karül. A régió kezdetben egy fix nagyságú négyzet, melynek méretei csökkenhetnek, ha a lerakás pozíciójában nem férne el (túllógna a falon). A régió méretezése a falakéval azonos módon történik. A polcsor lerakásai is így történik, csak itt a régióba kell, hogy határolja. A pocsor méretezése is azonos, csak töréspontok nem rakhatóak széleire. A régióknak színük és kontúrjuk van. Természetesen megvalósítás közben még számtalan más dolgot is szem előtt kell tartanom, de a fő problémám, hogy hogyan fogok tudni olyan editort csinálni, melyekkel ilyen elemeket lehet majd létrehozni, főként mert windows platformos, vagy uwp-s elemekkel tervezem megvalósítani mind a régiókat, mind a polcsorokat, így ezen terv alapján kell majd létrehozni a programban használható raktárfelületet. Az ötletem az volt, hogy mivel az uwp-s xaml nyelvvel valamennyit foglalkoztam, a map editor egy xaml fájlt fog generálni, majd az ezekben létrehozott elemekhez fogja automatikusan bindolni a szintén automatikusan létrehozott háttéradatokat. Azt kifelejtettem, hogy a polcsorok és régiók azonosítóját is a map editorban lehet megadni, tehát lerakásuk előtt felugrix egy szövegdoboz, melyben meg kell ezt adni, és ezen azonosítók alapján jön majd létre a háttéradat.

2022. jan. 14. 03:50
 4/4 anonim ***** válasza:
Ha kezdo vagy, akkor kezd valami egyszerubbel ;-)
2022. jan. 14. 13:31
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!