CRUD kódgeneráló - C#, MSSQL
2015-02-01T15:09:33+01:00
2015-02-04T09:17:27+01:00
2022-07-22T12:41:44+02:00
  • Ú, igen, köszi, dobok egy email:)
    Mutasd a teljes hozzászólást!
  • Üdv!

    Egy régebbi projekt miatt csináltam ilyen progit. ms sql adatbázisból a táblák alapján legenerálta az összes tárolt eljárást (annyi félét emennyihez template-et csináltál) illetve akárhány egyéb dolgot, ami lehetett c# class, típusos dataset, binding source, stb...bármi, amihez nem volt rest megcsinálni a template-et a felhasználója...

    Ha érdekel a dolog előkeresem, írj privátba az utd@utd.hu címre...

    Üdv!

    Zoli
    Mutasd a teljes hozzászólást!
  • Nincsen semmi mellékes körülmény. Volt egy projektem amiben azzal szöszöltem sokat, hogy megírtam a tárolt eljárásokat, megírtam a modelleket, megírtam a drivereket és megírtam az ado-s layert. Ez sok munka volt pedig kb 8 entitást kellett lekezelnem. Most pedig lesz egy másik projektem és kezdhetem előröl csak User.Name helyett Partner.Contact_Name-t fogok rengetegszer leírni. Automatizálhatónak tartom minden elmét.
    Félre értettél, nekem nem egy univerzáli mindent megíró kód kell és nem is egy komplex datalayer. Az a 4 alapfüggvény minden entitásra és onnan már a speciális eseteket ctrlc+ctrlv+kiegészítés módszerrel megírom ami kell. Nem szeretném 1-2 óra henteléses gépeléssel kezdeni a projektjeimet, ez nekem megér 10 óra munkát. A T4-gyel csak annyi bajom volt, ha jól láttam, hogy nem automata az adatbázis bemappolása, de egyébként olyan amilyet szeretnék.

    Legyen az hogyha jutok vele valamire akkor megosztom itt az eredményt és akkor megírhatod megint miért is (volt) rossz ötlet:)
    Mutasd a teljes hozzászólást!
  • Elbeszélünk egymás mellett :)

    Ami neked kell, annak adat hozzáférő réteg a neve, nem kódgenerátor (ha csak nem egészben akarsz egy webáruházat, amit "elfelejtettél" megemlíteni, mint "mellékes körülmény"-t), és normál esetben 3-4 class az egész. Nem sok olyannal fogsz találkozni, hogy azt valaki helyettesítse 3-4 ezer soros mákostésztával. Még csubakka védelem gyanánt sem. Csubakkázni lehet mindenütt másutt is. Aki mégis olyat csinál, az megcsinálja saját magának. Legyártod az első classt bele fixkódolva minden nevet. Szétszeded fix stringekre az egész szöveget, meg kigyűjtöd a változó részeit, berakod egy tömbbe, aztán mehet ciklusban a string ragasztósdi, meg kifele file-ba a végeredmény. Azért is nehéz olyat találni, mert a fix részek túlságosan változóak tudnak lenni, és annyi a lelke az egésznek. A string összeadások meg stringek kiírása szövegfileba pedig 4-5 sornyi c# az egész. Ne röhögtess már, hogy amiatt görcsölsz. De szerintem nem jó ötlet. Ha valamit változtatni kell benne, az a sár a te nyakadba fog hullani. Azért is jobb az adat hozzáférőt még tisztán hagyni.
    Mutasd a teljes hozzászólást!
  • Pedig írtam ám lentebb:  Szerpentin válasza hurka (18:56) részére015.02.01. 20:29.
    Mindegy ettől függetlenül áll a kérdésem.
    Mutasd a teljes hozzászólást!
  • Amin filozol, az egy adat hozzáférő réteg (mintha hurka lentebb említette volna, csak a jelek szerint nem figyeltél). A kódgenerátor egy magasabb réteg szokott lenni az adat hozzáférő fölé webáruházat, blogmotort, raktár modult meg hasonlókat építeni.
    Mutasd a teljes hozzászólást!
  • Szerintem a problémám van annyira általános, hogy egy programozó társam már vehette rá a fáradtságot és megírta a megoldást, mert nem tűnik annyira bonyolultnak.
    Így képzelném el:
    -megadom neki az adatbázis elérhetőségét
    -lekéri az adatbázis táblák listáját és a benne lévő oszlopok nevét, típusát (más nem kell)
    -ehhez generál C# classokat megegyező tábla nevekkel, illetve valamilyen megfeleltetés alapján propertyket. itt nekem kb a bit-bool, string-nvarchar és int-int kell
    -ezekhez generál alap tárolt eljárásokat insert(minden oszlop = minden paraméter), select(minden oszlop), delete(kulcs alapján)
    -legenerálja azokat a drivereket amik ezt a 3 típusú eljárást meghívják modellenként. partner esetén mondjuk

    PartnerDriver.Insert(Partner p) { foreach var Property in p.properties {command.addwithvalue(property.name,property.value)} command.exexute() }
    sorry a ronda pszeudokód-szerű kódért ami már majdnem c#:)

    a T4 valami hasonlót akar ha jól értettem.
    Mutasd a teljes hozzászólást!
  • Készen találni pont olyan cuccot, ami neked kell, minimum azt feltételezi, hogy amihez kell, az egy full általános dolog, amihez minden sarkon van már egy ingyenes cms is. Akkor abból lehet kinyiszogálni modult, ami copy paste és csiszolgatás. Minden más esetben nyugodtan elfelejtheted. Az adatbázis kezelés még vígan nincs azon a kiforrottsági szinten, hogy már mind annyira egyformák, hogy emberi beavatkozás nélkül megírják saját magukat
    Mutasd a teljes hozzászólást!
  • Persze, de ezt annyira általános problémának tartom, hogy reménykedtem benne valakik már foglalkoztam vele előttem és jóval ügyesebben megírták mint én, ráadásul még open source mániások is:)
    Gondolkodom rajta, hogy nagy elkeseredésemben nyitok egy repot neki aztán összekódolok egy egyszerű könyvtárat. Ha kihagyom belőle a maszlagokat mint hibakezelés, speciális esetek lekezelése (nekem nem kell ilyen, csak 15 propertyt táblánként helyesen leírogatni/paramétert átadni rettenetesen sok idő) akkor nem tűnik annyira vészesnek. Majd ha lesz egy épkézláb verzió megosztom a nagyérdeművel ^^

    Köszi a tippeket!
    Mutasd a teljes hozzászólást!
  • Amennyi ideje keresgéled, már rég megírhattad volna az adat hozzáférő classokat, és összekötögethetted volna őket felsőbb layeren. Ha meg bármi áron kattintgatni akarsz, ott vannak a VS saját komponensei. Databindklikkelgetsz egy órát, és kész. Gondolom csak valami aprólék alkalmazáshoz kell, ahhoz bőven elég.
    Mutasd a teljes hozzászólást!
  • Ahogy nézem ez eléggé manuális, meg is kell írni a saját kis rendszeredet (az 1 nap amit említettél). Valami automatábbat keresek, már ha van.
    Mutasd a teljes hozzászólást!
  • Szerintem sem nagy kunszt a saját. Így az ORmap mellett spéci dolgokat is beleépíthetsz: null értékek kezelése, default paraméterek a tároltakhoz (pl: "minden SP első paramétere az USER", nem logikus, de néha ez kell :))
    Mutasd a teljes hozzászólást!
  • A leírásod alapján a sima t4 elég neked.
    Anno, egy kisebb projektnél rászántam kb 1 napot a template-ek megírására, és megvolt a dal-om.
    Kb ugyanazokat generáltam le a táblák+ view-k alapján, amit felsoroltál. Nem egy nagy kunszt.
    Mutasd a teljes hozzászólást!
  • Hopp kis kutakodással ráleltem a free verziójára, megnézem mit tud.
    Mutasd a teljes hozzászólást!
  • Sorry, azt lehagytam az igények listájáról, hogy free legyen :\
    300 dollár egyelőre soknak tűnik a projektemhez.
    Minden estre köszi!
    Mutasd a teljes hozzászólást!
  • Szia,

    ezt nézted már?
    Mutasd a teljes hozzászólást!
  • Egy ehhez hasonló toolt keresek: Free Code Generator for ASP C# NET / VB NET Object/DataLayer. Create database sql server stored proc
    csak az input az az adatbázis legyen^^
    Mutasd a teljes hozzászólást!
  • Hello,

    kódgeneráló programot keresek arra a célra, hogy a gépelési melót csökkentse az adatbázis és kliens között. Fontos a gyorsaság apróbb lekérdezéseknél is. EF kilőve, nincsen szükségem az extra funkcióira. Amit szeretnék, hogy adatbázisban megírt táblákat bemappolja, legenerálja belőle a C# model-t és ha az alap tárolt eljárásokat megírná (Insert, Select, Update, Delete). Az örömöm netovábbja lenne ha a tárolt eljárások meghívása is benne lenne, tehát csak egy XY objektet várna. Egyszerűen zavar, hogy a projektjeim esetén tetemes idő megy el arra, hogy lekörmölöm a paraméterátadásokat.

    Mennyire elrugaszkodott az igényem? Van ilyen okosság?

    Köszi!
    Mutasd a teljes hozzászólást!
abcd