Our business processes changed, and now we want to add some pretty important functionality to a series of long-running workflows written using Visual Studio. This involves adding several fields to the workflow class -- there is no way around it that we can think of. We need the functionality in the currently running workflows if we don't want to lose weeks of work.
My question is, if we mark those fields as [OptionalField], will this break the persistence mechanism on deserialization, or will Sharepoint deserialize the workflow object as usual and set those new fields to null?