De masochisten daargelaten, vinden de meeste programmeurs typen leuk maar hoe minder hoe beter. En over dat typen gaat deze vraag.
In bv VB6 was het creeeren van een middle-tier database objectje toch nog wel een hoeveelheid tikwerk, ookal kun je veel wegstoppen in classes die je 1 keer schrijft en telkens weer gebruikt. Bij het gebruik van Stored Procs en ADO commands wordt dat dan een aardige hoeveelheid tikwerk Bv:
(even wat '_' toegevoegd voor de layout van dit bericht
)
Etc.
Uiteraard kan dit wellicht korter, het idee is duidelijk.
In Visual Studio.NET zit logica om dit leed wat te verzachten: wanneer je een Component Class gebruikt, krijg je een canvas waarop je stored procedures kunt draggen en Visual Studio genereert dan de code voor je, zoals de code hierboven, maar dan voor bv de SqlClient objects.
Dit is allemaal erg leuk, alleen zit je vast aan een Component Class (marshallable object etc). Wil je een plain class gebruiken, dan moet je alles zelf intikken. Dit is onder .NET meer dan met plain ADO. (functies schrijven hiervoor daargelaten).
Mijn vraag is dan ook: zitten er nadelen aan die Component Class of zijn die marginaal? Met nadelen bedoel ik voornamelijk performance nadelen.
Op dit moment genereer ik de C# code voor de command objects via een component class en copy/paste ik de code in mn C# class, maar dat is weer klungelen, alhoewel het al wel wat typewerk scheelt. Iemand al wat meer ervaring hiermee?
In bv VB6 was het creeeren van een middle-tier database objectje toch nog wel een hoeveelheid tikwerk, ookal kun je veel wegstoppen in classes die je 1 keer schrijft en telkens weer gebruikt. Bij het gebruik van Stored Procs en ADO commands wordt dat dan een aardige hoeveelheid tikwerk Bv:
(even wat '_' toegevoegd voor de layout van dit bericht
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| '...
cmdADO.CommandText = "sp_cesys_GetAllCategoriesWithRelatedItemsWCategoryLogic"
cmdADO.CommandType = adCmdStoredProc
cmdADO.Parameters.Append cmdADO.CreateParameter("@iParentCategoryID", _
adInteger, adParamInput, 4)
cmdADO.Parameters.Append cmdADO.CreateParameter("@bOnlyUnpublishedItems", _
adBoolean, adParamInput, 1)
cmdADO.Parameters.Append cmdADO.CreateParameter("@iAdminID", _
adInteger, adParamInput, 4)
cmdADO.Parameters.Append cmdADO.CreateParameter("@iErrorCode", _
adInteger, adParamOutput, 4)
' fill parameters
cmdADO.Parameters("@iParentCategoryID") = mvariParentCategoryID
cmdADO.Parameters("@bOnlyUnpublishedItems") = bOnlyUnpublishedItems
cmdADO.Parameters("@iAdminID") = mvariAdminID
cnADO.CursorLocation = adUseClient
cnADO.Open sConn
cmdADO.ActiveConnection = cnADO
'... |
Etc.
Uiteraard kan dit wellicht korter, het idee is duidelijk.
In Visual Studio.NET zit logica om dit leed wat te verzachten: wanneer je een Component Class gebruikt, krijg je een canvas waarop je stored procedures kunt draggen en Visual Studio genereert dan de code voor je, zoals de code hierboven, maar dan voor bv de SqlClient objects.
Dit is allemaal erg leuk, alleen zit je vast aan een Component Class (marshallable object etc). Wil je een plain class gebruiken, dan moet je alles zelf intikken. Dit is onder .NET meer dan met plain ADO. (functies schrijven hiervoor daargelaten).
Mijn vraag is dan ook: zitten er nadelen aan die Component Class of zijn die marginaal? Met nadelen bedoel ik voornamelijk performance nadelen.
Op dit moment genereer ik de C# code voor de command objects via een component class en copy/paste ik de code in mn C# class, maar dat is weer klungelen, alhoewel het al wel wat typewerk scheelt. Iemand al wat meer ervaring hiermee?