There’re many samples which work with the newest “Oslo” May CTP on the Oslo Developer Center, but not all. I’ve successfully tried to make my versions of two samples ("MGrammar" XAML Samples, Ultra Flexible Event Pattern Mesh Sample) compatible with new SDK .
Running MWindow application in the first example was the most difficult thing.
You should change version of Xaml assembly from 1.0.0.0 to 3.0.0.0 otherwise you get exception at runtime.
File/assembly | Class | Method | Line | Code |
MWindow.cs | MWindow | CreateLabelMap | 92 | var clrTypeResolverType = Type.GetType("System.Xaml.ClrTypeResolver, Xaml, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"); |
MWindow.cs | MWindow | CreateLabelMap | 96 | var nsRecordType = Type.GetType("System.Xaml.ClrTypeResolver+XamlNamespaceRecord, Xaml, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"); |
Old MGraph API still works, but MGraphXamlReader produced bad nodes, so bad XAML and bad tree of objects were generated. I debugged application and compared results with the program running with previous Oslo SDK on second computer. I detected code with different behavior:
File/assembly | Class | Method | Line | Code |
ContentEntry.cs | ContentEntry | button1_Click | 72 | xamlReader.ReadToEnd() |
MGraphXamlReader.cs | MGraphXamlReader | GetReader | 434 | GetNodes(this.root, true) |
MGraphXamlReader.cs | MGraphXamlReader | GetNodes | 343 | if (this.graphBuilder.IsEntity(node)) |
GraphBuilder.cs | MWindowGraph Builder | IsEntity | 299 | EntityStencil.IsEntityBase(this, value) |
System.Dataflow.dll | EntityStencil | IsEntityBase |
Method IsEntityBase in class EntityStencil has different implementation and returns now false for MWindow application nodes:
- “Oslo” January SDK : System.Dataflow.dll (1.0.0.0) -> EntityStencil.IsEntityBase –> true
- “Oslo” May SDK : System.Dataflow.dll (3.0.0.0) -> EntityStencil.IsEntityBase –> false
When I created own IsEntityBase method with old implementation and called it instead of EntityStencil.IsEntityBase, MXamlReader produced good nodes as with previous SDK.
You can download my versions of samples compatible with new SDK below.
"MGrammar" XAML Samples
Ultra Flexible Event Pattern Mesh Sample
No comments:
Post a Comment