Kom ihåg mig?
Home Menu

Menu


Det trökigaste jag vet

 
Ämnesverktyg Visningsalternativ
Oläst 2009-07-19, 17:16 #1
ledstrom ledstrom är inte uppkopplad
Medlem
 
Reg.datum: Jan 2007
Inlägg: 84
ledstrom ledstrom är inte uppkopplad
Medlem
 
Reg.datum: Jan 2007
Inlägg: 84
Hej!

Det absolut trökigaste jag vet är att göra INSERT och SELECT frågor för att sedan göra om det till Objekt. Nu har jag löst det genom att använda mig utav Reflection i mitt datalager och på det sättet kan jag sätta in hela objekt direkt in i databasen, ett exempel är på hur jag gör en INSERT är:

Kod:
SQLWrapper.ExecuteInsertObject(Me, "products")
På det här sättet slipper jag gå igenom alla variablar och mappa dom till rätt kolumer. Den där raden gör helt enkelt allt åt mig, den skriver en korrekt SQL INSERT med rätt värdetyper utifrån den angivna objektet och använder parameter insättning. Själva reflection historien är givetviss cachad i applikationen så det går undan må ni tro.

Sen har jag en motsvarande funktion för att göra om en DataReader till ett objekt, ett exempel ser ut så här:

Citat:
MyProduct = SQLWrapper.ReaderToType(Of Products)(DataReader)
Det som har varit det trökigaste jag vet är nu helt elminerat givetviss så har jag hittat andra saker som är skit trökiga, nämligen, göra formulär där data ska sättas in. Hur löser ni det...?

Om vi har ett formulär för att registera sig så ska man göra en textruta för Användarnamn, Förnamn, Efternamn osv, det är juh verkligen jätte trökigt.

Eftersom jag självklart har ett "Person" objekt här så måste jag sedan skriva massa trökig kod
Dim Person As New Persons
Person.Fornamn = tbFornman.Text
Person.Efternamn = tbEfternamn.Text
Person.Save() <-- Här har jag dock nytta utav mitt datalager som gör en korrekt INSERT så där behöver jag inte skriva någon SQL kod


Det som vore min dröm är att man bara designade ett objekt med antal variablar utav diverse och typer, sedan fick man ut färdiga formulär med textrutor och checkbox beroende på datatyp. Samt att textboxarna, checkboxarna ska vara kopplade till rätt egenskap till det underliggande objektet.

Jag tror jag kommer lösa det genom att göra någon typ utav parser som går igenom källkoden för ett objektet och sedan tar reda på vilka variablar ska kunna ha input, så att det kommer en Checkbox när värdet är Boolean osv.

Parsen ska sedan ge ut ren HTML enligt ett mallupplägg så man kan styra design tex:
<tr>
<td>Fyll i ditt %variabelnamn</td>
<td>%kontroll</td>
<tr/>

Vilket ska ge

<tr>
<td>Fyll i ditt Förnamn</td>
<td><asp:Textbox id="tbFornamn" runat="Server"></td>
<tr/>

Samt ska en tillhörande funktion för att koppla samman formuläret till ett objekt också komma ut. Då anser jag att man kan syssla med programmering och hoppa över det trökigaste jag vet.

Hur gör ni?
ledstrom är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-19, 17:56 #2
Adestro Adestro är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2007
Inlägg: 1 036
Adestro Adestro är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2007
Inlägg: 1 036
De flesta ramverk har väl funktioner för att någorlunda automatisera detta? Kör själv med CodeIgniter (PHP).
Adestro är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-19, 18:01 #3
ledstrom ledstrom är inte uppkopplad
Medlem
 
Reg.datum: Jan 2007
Inlägg: 84
ledstrom ledstrom är inte uppkopplad
Medlem
 
Reg.datum: Jan 2007
Inlägg: 84
Coolt, men med active record så får du inte ut formulär där användare kan mata in data i textboxar, checkboxar, dropdownlists?
ledstrom är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-19, 19:11 #4
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Adestro@Jul 19 2009, 16:56
De flesta ramverk har väl funktioner för att någorlunda automatisera detta? Kör själv med CodeIgniter (PHP).
Tycker oftast sådana ramverk är av ondo. Alltför många använder ramverket så mycket som möjligt vilket gör att man låser sig väl mycket. Den största nackdelen är att det begränsar möjligheten till distribution samt ställer till problem när andra ska arbeta med koden då dessa bör ha god kunskap om ramverket. Man bör tänka sig för både en och två gånger innan man använder sig av sådana.

Vad gäller formulären så finns det ingenting automatiskt på det viset som beskrivs ovan i CodeIgniter vad jag vet?

Håller med om att det är riktigt tråkigt men det är ganska svårt att automatisera formulär om de inte är relativt enkla. På sidor där det blir mycket formulär brukar man ofta ha ganska komplexa och "intelligenta" sådana där js och Ajax spelar en stor roll.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-19, 19:22 #5
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Ja - det är tråkigt.

Men skall man vara säker på att det görs riktigt så får man göra det själv. Och samtidigt får man se mer på tidsåtgång - med ett egenbyggt API med funktioner som hjälper dig så bör ett formulär inte ta mer än 10 minuter att skriva. Och en SELECT, UPDATE, INSERT bör inte ta mer tid. Verkligen inte så mycket när man tänker på det sättet.
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-19, 21:31 #6
Adestro Adestro är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2007
Inlägg: 1 036
Adestro Adestro är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2007
Inlägg: 1 036
Citat:
Ursprungligen postat av tartareandesire
Tycker oftast sådana ramverk är av ondo. Alltför många använder ramverket så mycket som möjligt vilket gör att man låser sig väl mycket. Den största nackdelen är att det begränsar möjligheten till distribution

Nu är du ganska OT. :P

Hur kan ramverk begränsa distribution? Det finns mig veterligen inget PHP-ramverk som kräver konfiguration av servermjukvaran.

Citat:
Originally posted by -tartareandesire@Jul 19 2009, 18:11
samt ställer till problem när andra ska arbeta med koden då dessa bör ha god kunskap om ramverket.
Jag har haft större problem att sätta mig i andra utvecklares fula kod och värdelösa kommentering, än att hugga i dokumentationen för ett ramverk. Inom PHP är det väl max 3-4st som dominerar (CI, Cake, Zend). Och alla följer ju MVC och CI/Cake är väldigt lika, så det går relativt snabbt. Kom igen.

Citat:
Originally posted by -tartareandesire@Jul 19 2009, 18:11
Man bör tänka sig för både en och två gånger innan man använder sig av sådana.
Antingen hatar man dem eller så älskar man dem. Jag tycker man kan kosta på sig lite "ineffektiv" (då ramverk går slöare) kod för att få saker gjort snabbare, och snyggare.

Citat:
Ursprungligen postat av tartareandesire
Vad gäller formulären så finns det ingenting automatiskt på det viset som beskrivs ovan i CodeIgniter vad jag vet?
Med CI's metoder och helpers kombinerat med någon template-motor och bra databasdesign skulle det väl gå. Ungefär som coredev säger här ovan.
Adestro är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-19, 22:31 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Håller med dig till viss del men tycker vi avslutar där om ingen moderator vill klippa till en ny tråd. Kodar man för tung trafik eller av andra skäl vill vara så resurseffektiv som möjligt så är ramverk aldrig att föredra, det tror jag vi kan vara överens om. Kommenteringen lär ju ha varit precis lika usel även om man använde ett ramverk =)
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-20, 00:55 #8
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
För att fortsätta, att använda sig av ramverk och som tartareandesire skrev ang. mjukvaran.

Det jag kan tänka mig att han valde att nämna med distribution är antalet moduler som webhotellen väljer att inkludera till sin installation. Alla webhotell har inte tex. gzip eller simplexml som installerat (som exempel), alltså ev. krav som ramverket har för vissa funktioner.

Men för att gå ontopic.

Att spara ett helt objekt i databasen måste göra det oerhört komplicerat att söka efter en enskild användare eller produkt. Det kan löna sig att göra så här när man skall spara en kundvagn eller beställning. Men som enskild post där man skall knyta flera andra rader från olika tabeller gör det oerhört komplicerat.

Visst, SQL-satser är tråkiga, men det får en verkligen att vakna till.

Om jag nu fattade ditt inlägg korrekt.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-20, 02:23 #9
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
I ASP.NET är det inbyggt med att lägga ut en kontroll som man kopplar till en datasource så får man både detalj och listformulär skapat direkt i formuläret. Det är bara att välja rätt kontroller.
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-20, 11:38 #10
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Jonas@Jul 19 2009, 23:55

Att spara ett helt objekt i databasen måste göra det oerhört komplicerat att söka efter en enskild användare eller produkt. Det kan löna sig att göra så här när man skall spara en kundvagn eller beställning. Men som enskild post där man skall knyta flera andra rader från olika tabeller gör det oerhört komplicerat.
Visst, SQL-satser är tråkiga, men det får en verkligen att vakna till.
Om jag nu fattade ditt inlägg korrekt.
Jag tror du missuppfattade honom. Han ville nog inte spara hela objektet i ett fält vilket jag förmodar du menade? Det han ville göra var helt enkelt att automatisera hela formulär-förfarandet.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:22.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017