|
Not the answer, "...commandment 11...and lo, users shall never change their minds..." mmmmm 8-)
So how do you cope when things changes?
Nursey
|
|
|
|
|
Yes, users will always change their minds so change is going to happen, but what I meant was that since the object heirarchy was in flux it should still be in the design phase. As it is now beginning to stabalise it can be moved to development phase. Changing it will still take some grunt work as you know already, but if it was changing so much before now I wonder why you were writing the code for it.
--Colin Mackay--
EuroCPian Spring 2004 Get Together[^]
|
|
|
|
|
I think you have made assumptions about what this project is, its size and budget etc. I want to focus on how people cope with protecting their data using .NET serialization here. Let's just pretend it's a bedroom application, where we all cut code without UML, patterns and our refactoring handbook at the ready.
If you serialize data with comma sep as your chosen data format, its a trivial matter to deserialize a different number of members to that which was serialized. My only interest here is in trying to abide by .NET's serialization techniques, purely for learning purposes. If .NET is going to throw an exception every time I add another property to my objects, and if .NET offers no alternative, then I need to reconsider my data storage techniques.
Any talk of design and the like is off topic, and I've been there and done it all before, so I need to stick to what I don't know about, please.
Nursey
|
|
|
|
|
I hate to say it but I think this is something that is going to be bad for you.
Just think of what it is like way back when they created Microsoft Word 1.0. You saved (serialize) something into a .doc format and saved it. Then after several years they significantly changed the doc format so that the new type is not backwards compatible. This is why they make document converters and why programs allow you to import data from older versions.
The only thing I can think of would be to add a version number to your class that will get serialized out then when you read it in you can change the deserialize method of the class to check for the version and handle any known conversions as needed. I can see this as getting a but messy though if you are going through many lifecycles.
Depending on what you are trying to do, if the formats are going to change a lot maybe you want to store your stuff in a database. This is simpler to add columns to and then as long as you don’t change the format of the existing data too much adding new things is not that hard. It is a catch 22 though. Using regular serialization is simpler because you have less to do, but in your case I think it is ending up being more of a pain than just putting a bit more work into making your storage mechanism a but more robust and less brittle.
Paul Watson wrote:
"At the end of the day it is what you produce that counts, not how many doctorates you have on the wall."
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Jörgen Sigvardsson wrote:
If the physicists find a universal theory describing the laws of universe, I'm sure the a**hole constant will be an integral part of that theory.
|
|
|
|
|
Ray,
Replies like yours are the reason I love this web site, well thought out, constructive and strictly in the vein of the problem. Thanks you.
I think I have a partially thought out solution...
If I serialize class A and want to add members to it then I should derive A using class B and add the members there. I can call A.Serialize from B.SerializeOldVersion, get me? Then I can B.Serialize and B.Deserialize and all my new members will be handled correcly.
OK, its partially thought out because if there are relating objects then those relationships could mudy the water somewhat. But in theory, this meets the "don't change your interfaces" school of thought. I think deriving would certainly be the way through to data conversion though, then effectively you can roll all the stuff up into one class again.
My ambitious thoughts are in this area though. As I am using SOAP format for serialization as oppose to binary format, at least for the time being (there's nothing quite like being able to see your megabytes of data in text format hehehe) well...to cut a long one short, there ought to be a structured way of massaging the data. i.e. you could write an XML parser, which a very good friend of ours on here has done recently, and insert the new fields where neccessary...then hey presto. I think there is definite potential in this approach.
Again, your additional thoughts are very welcome.
Many thanks.
Nursey
|
|
|
|
|
hi!! i'm just a newbie here... sorry for the disturbance... but i really need your help guys... i need to do a project using these physics equation... sad to say, i dont know how to do it in visual basic 6.0.. its pretty hard for me to do the coding... please help!!
1) K.E.=1/2mv^2
2) G.P.E.=mgh
3) P=Fd/t or P=Fv
i know its pretty simple for you guys... but for me.. i just can't understand these things.... so i hope you guys can help me... thanks a bunch!!!
|
|
|
|
|
Heck, I'd love to help if I understood what the heck the equations meant. Can they be expressed like A x B + 1 + 3 + (C / 4) type of thing?
Your topic is VB6 / VB.NET, I dont have VB6 on my system anymore, so if you could take this in VB.NET I'll happily squirt the code back to you after some clarification of what that stuff means 8-)
Nursey
|
|
|
|
|
Hey,
Same as cnurse here, I don't understand exactly what you meen but I assume you are looking for a way to use advanced calc functions.
I am no math wizz and BY FAR no physics wizz so I can't tell you step by step how to get those calculations by any meens but if it helps I can tell you that there are no advanced math functions in vb (or any language i know of) so you will have to work out how it is done step by step useing basic functions (+ - * and /)and do it line by line.
For eg. if you want to multiply by a percentage vb doesn't have a way to say
100 plus 50% so you will have to devide the 50 (50%) by 100 then multiply it
dim number1 as integer = 100
dim number2 as integer = 50
dim result as integer
number2 = number2 / 100
result = number1 * number2
|
|
|
|
|
sorry didnt mean to misled you guys... what i meant was, how do you trun these equations into vb samples...
1)Kinetic Energy=1/2*mass*velocity squared
2)Gravitational Energy=mass*acceleration due to gravity*height
3)Power=work(that is mass*acceleration due to gravity)*distance/time
i know its dumb for me to ask... but forgive me guys... thanks a bunch for helping me out.... i need your help badly....
naikei
|
|
|
|
|
OK, thanks for the clarification....
A = B x C in VB Speak....
Sub DoSomethingClever()
Dim A as integer ' Here is an integer number, can't handle decimal parts
A = 10 * 10 ' A = 100 i.e. A = 10 x 10 the * is x in progrmaming terminolgy
Dim B as integer
B = A * 10 ' Now B = 1000 get it so far?
Dim C as integer
C = B / 100 ' Now C = 10
Dim MyWage as Single = 100.55 ' Make a floating point variable and assign it value in 1 step
MyWage = MyWage * 1000 ' I wish! No wage is multiplied and stored back into the variable as 100550.00
End Sub
You can do things like this now
A = A / 2 ' A is divided by 2
A = (B*B) ' A = B^2
A = B + C
A = A - B
All of the above are things you can type into VB literally and they will work.
I think there is a mathematical function called power or pwr which raises a number to a given power.
If you are in VB.NET look up the Math namespace as it contains all the cos sin and tan functions to name a few.
This ain't the answer to your functions but you can work it out now. If not then shout for more help. I think you do need to read a little about Sub's and Function's and where to use them. For example
private function MyAge () as integer
Dim a as integer = 21
Return a
End Function
A short example of creating a variable, assigning it a value and returning that value, therefore...
Dim B as integer = MyAge
Assigns B the value 21, because VB calls the MyAge function which "Returns" the value of a which = 21.
Clear as mud, I know, but I'm trying to help you find the answer rather than just spew lines of code that you might not understand if things go wrong.
Nursey
|
|
|
|
|
Hi,
i would like to raise an even when my application start Idle.How will i know that,i need to implement my application should ask login when then user kept the app for idle.tell me which even?where ?
Thanxs in advance
|
|
|
|
|
Use a timer on your app and reset it when the mouse moves or the user presses a key. When the timer reaches a certain point, the timer event is triggered and you can do whatever you want.
Grtz, Guus
|
|
|
|
|
I would like to know if anyone knows how one would go about checking the registry for invalid shortcuts useing VB.net 2002 code. Oh yea 2003 code is fine too now that I have a program for converting it.
|
|
|
|
|
hi to all
i am from india. i want to write an application which displays the caller's no. and his name when ever i get a call to my phone, that is connected to modem and my system. "any modems are available in india which supports caller id feature ?". any one pls. help me.....
thanx in advance
Mohan G
Mohan G
|
|
|
|
|
If u find a modem.. please let me know... I guess the modem should support V.91.. isnt it??
I was born intelligent Education ruined me!.
|
|
|
|
|
Hi
I want to open any document without the .exe file to open it. Example.
If I using shell("c:\program files\microsoft office\office\winword.exe c:\temp\mydoc.doc")
I dont't wanna that.
How i can only put Shell("c:\temp\mydoc.doc") or other command to open it.
Be Humble in Victory and Strong in Defeat. -Het
|
|
|
|
|
I am not sure what you mean.
But if you are trying to read a text file with a useing visual basic.
You would do something like this.
Dim my As IO.StreamReader
Dim fileInfo As string
Then something like
my = IO.File.OpenText("A:grades.txt")
fileInfo = my.ReadFileToEnd
|
|
|
|
|
|
Niel i couldnt find it at the link given by u, but will still look for it, through that way, but it is working through process.start("path\name of document"). Thanks for helping me out to all
Be Humble in Victory and Strong in Defeat. -Het
|
|
|
|
|
Process.Start("c:\temp\mydoc.doc")
Free your mind...
|
|
|
|
|
Thanks for the reply man its working great. just wanted to ask if the program associated with the document or file doesn't exist then? we have to catch the exception or is there any other way to out. But thanks again for solving out, man.
Be Humble in Victory and Strong in Defeat. -Het
|
|
|
|
|
Never thought of that. But I'll check what could you do.
Free your mind...
|
|
|
|
|
Is there anyone who knows how to make setup of an application developed in VB.Net, and how to install framework automatically in a PC where there is no dotnetfx.exe directly when setup is being installed at clients PC without .Net Framework.
Thank you very very Much
Be Humble in Victory and Strong in Defeat. -Het
|
|
|
|
|
|
thanks niel i will go through the setup thing as will b trying it out for the first time and soon get back if any problem thanks for the help sir. i had gone through ur personal site, bout winamp it is quite interesting.
thanks again!
Be Humble in Victory and Strong in Defeat. -Het
|
|
|
|