[dba-VB] C# serialization

Shamil Salakhetdinov shamil at smsconsulting.spb.ru
Tue Oct 13 14:26:44 CDT 2009


Hi John,

You can use XMlArray attribute to define the name of XML group of serialized
arrays, collections, lists,..

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattribut
es.xmlarray.aspx

BTW, guys and gals, I'm programming on C# every day - I forgot when I last
time used DataSets typed or not, well, that could be specifics of my subject
area, but for example for a large ASP.NET site I developed, multi-layered
with several thousands of custom classes etc. , DataSets were not used at
all - and that large ASP.NET site is a business application with MS SQL 2005
backend...

Just out of curiosity I have just checked DotNetNuke Community Edition 5.1.4
sources

http://dotnetnuke.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33848

to find out how much times DataSet is used in these sources - here is my
search result:

===
Matching lines: 22    
Matching files: 5    
Total files searched: 1414
===


--
Shamil

-----Original Message-----
From: dba-vb-bounces at databaseadvisors.com
[mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Tuesday, October 13, 2009 8:13 PM
To: Discussion concerning Visual Basic and related programming issues.
Subject: Re: [dba-VB] C# serialization

 > Of course, I can see an educational purpose by handcrafting a kind of
database, but ...

LOL.  Well, this is after a CLASS in C# the purpose of which is to LEARN C#.
You do not start at 
typed data sets, you start with "this is a variable" and "this is a for
loop".  I am very much at 
that level.

I am quite sure that in a year I will be throwing out typed datasets with
the best of them but right 
now I am still forgetting to put a ; at the end of the line.

Have patience Master #2.

John W. Colby
www.ColbyConsulting.com


Gustav Brock wrote:
> Hi John
> 
> Sounds like a quite normal database app to me ...
> 
> If so, all the typed dataset stuff is ready at your hands.
> To persist (to an XML file without the overhead you claim about) use
method WriteXml.
> To read it at load, use method ReadXml. Can't be simpler.
> 
> Of course, I can see an educational purpose by handcrafting a kind of
database, but ...
> 
> /gustav
> 
> 
>>>> jwcolby at colbyconsulting.com 13-10-2009 17:37 >>>
>  >Do these classes inherit typed datasets?
> 
> Nope, no connection to a database.
> 
> The original assignment was to build a grade calculator where you simply
input a list of grades. 
> There are three types of grades, each with a different weight (Tests - 40%
of grade, Labs - 50% of 
> grade and DL 10% of grade).
> 
> There is no requirement to do anything more than the above, calculating a
total count of each grade 
> type, sum of each type, average of each type and weighted average of each
type, and then the same 
> calculations for the totals.
> 
> In order not to be bored to death, and with the approval of the
instructor, I expanded the 
> assignment to include using classes and collections.  I store each grade
in an instance of clsGrade. 
>   I store all of each TYPE of grade in an instance of clsGrades (plural)
which contains a generic 
> collection into which the instances of clsGrade are inserted.  This
collection is strongly typed so 
> that it can only accept clsGrade objects.
> 
> Each instance of clsGrades (plural) is inserted into a sorted list in
clsCalculator, keyed on 
> GradeType (keyed on the string "Test", "Lab" or "DL").  In the main form
there is a combo with three 
> grade type strings ("Test", "Lab" and "DL") which when selected is passed
in to clsCalculator which 
> indexes into the collection to access the correct instance of clsGrades.
Adding new grades, 
> deleting grades and updating existing grades is all done on the selected
instance of clsGrades.
> 
> So...
> 
> clsCalculator - interfaces to the form and has a sorted collection holding
three instances of...
> clsGrades - contains a strongly typed generic collection holding multiple
instances of ...
> clsGrade - contains each grade.
> 
> clsGrades performs the calculations to count (collection.count), sum,
average and weighted average 
> all of the grades contained within.
> 
> clsCalculator requests the various computed values from the three
instances of clsGrades and 
> performs the calculations to create an overall Count (sum of
clsGrades.Count), Sum (sum of 
> clsGrades.Sum), Average, weighted sum etc.
> 
> Now...
> 
> I want to write the grades in each clsGrades instance to a single file,
then read it back in again. 
>   Persist the grades to disk.  I have no requirement to persist the data
to disk, I simply want to 
> do so.
> 
> Please please please do not suggest a "better way" for doing the
assignment, it is all written and 
> functions exactly as you would expect it to work.  You may of course
enlighten me on different 
> options, but I will not be rewriting the core assignment at this point.
> 
> This was just a homework assignment and it is in fact finished.  If I can
persist it great, if not 
> that's OK too.  I have learned a lot and thought I might learn how to do
the persist thing, streams, 
> serialization (if that is used) etc.  Even classes and collections are a
"next semester" thing so I 
> am ahead of the curve at this point.
> 
> John W. Colby
> www.ColbyConsulting.com 
> 
> 
> Charlotte Foust wrote:
>> John,
>>
>> I'm not sure I understand what you're doing.  Do these classes inherit
>> typed datasets?  If so, the parent class can easily return a child class
>> that already contains a typed dataset of child records.  You don't
>> actually need collections for that.  In that case, grade wouldn't need
>> to be a class (although it could be, I just don't see any need).  The 
>>
>> Charlotte Foust 
> 

 

__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4504 (20091013) __________

The message was checked by ESET NOD32 Antivirus.

http://www.esetnod32.ru
 




More information about the dba-VB mailing list