|
MyXaml is a general class instantiator capable of initializing properties, wiring up events to event handlers, and drilling down into property collections, customizable with inline or code-behind, language non-specific, JIT assembling at runtime.
Back To Top
With MyXaml, you can instantiate presentation layer components such as forms and controls through markup rather than code.
You can initialize properties like color, state, captions, and collections.
You can write in-line code that is assembled and instantiated along with the form--handle events, initialize data sets, and so forth. You can write this code in whatever language is supported by .NET.
You can tie in to compile-time code also.
And, nothing says you are limited to doing this with presentation layer components. Want to instantiate a connection to a database specified using markup? No problem.
Back To Top
It's open source.
It's extensible. Need to customize the markup tags for your own needs? Go right ahead!
It's lightweight. Basically, MyXaml is just a parser. There isn't any complex, hard to learn Document Object Model (DOM) that's going to change every couple of years, forcing you to learn a new architecture.
Back To Top
The presentation layer is runtime generated. Meaning you can make changes to your presentation layer without bringing down the application. With in-lined code, you can also change how events in the presentation layer are processed.
It cleanly separates the presentation layer from the code.
Example: If you want to move some elements around, change the markup (or use the markup designer) without ever touching code.
Example: If you want to change a ComboBox to a ListBox, change the markup and your done. Use the engine's property getters for obtaining state information, which decouples the instance from the property--no need to change the control type in your code!
It naturally lends itself to organizing your views in logical blocks. This means that it's easy to extend or change a particular view.
Reuse. Need I say more? OK--copy and paste your login screen in about 10 seconds. Got a guest book screen you like? Import the .xaml file!
Style sheets. Want to change the look of your entire application? A few dialogs? MyXaml's style sheets make this a breeze.
Back To Top
Absolutely. Map the assembly in your markup, assign a namespace prefix, and you can instantiate any class, initialize properties, and wire up events.
Back To Top
No. There are similarities because both use XML, but they are different.
Back To Top
(Would I say anything but *yes*???) Actually, the comparison is not really valid. Longhorn isn't available yet. MyXaml is.
Avalon is a completely different architecture from the Windows.Forms namespace, so it's sort of like
comparing apples to oranges, and it gets confusing because you have to keep a clear distinction between
the markup itself and the namespaces and classes that it manipulates. Because MyXaml doesn't use a DOM,
things like "Canvas" and "NavigatableApplication" are really just dumb tags (no pun intended).
When Longhorn does come out, MyXaml should be able to work with the MSAvalon namespace as easily as it
does with the any other namespace.
However, there are differences in the XML markup style, which I will enumerate here:
- MyXaml uses a consistent syntax with regards to tags that represent classes
and properties.
- MyXaml does not require the compound property syntax
- MyXaml does not confuse the meaning of a tag--a tag is always a class, rather
than sometimes a class, sometimes a class type, sometimes a method.
- MyXaml markup has a 1:1 relationship to the underlying class hierarchy that
it instantiates.
- MyXaml implements custom parsing as extensions to the core parser rather than
embedded in the core parser
- Using MyXaml, the serialization of a class can follow straight forward and
simple rules regarding properties and collections
- MyXaml does not expect, use, nor require the developer to implement an IChild
interface that hides the implementing collection for child nodes.
- Drew Marsh
wrote: ...Personally, I think [Microsoft] XAML has everyone confused as hell right now. Microsoft currently has it packaged as if it belongs solely to Avalon....The core, abstract concepts of XAML are really easy to understand if you take away the more concrete, complex, Avalon specific samples...Personally, I think that XAML needs to be taken out from under the Avalon umbrella and packaged as a generic engine. Then the Avalon side of the story simply becomes one of re-use and specialization of that engine.
-- That's what MyXaml is--a generic engine.
- MyXaml does not compromise readability for toolability, nor vice versa. It implements an intelligent symbiotic relationship between the two.
Back To Top
In the works. Including a form designer that generates code stubs and event handlers for your MVC architecture, which is something that MyXaml fits right in to.
Back To Top
This is coming.
Back To Top
This is being addressed.
Back To Top
If you have concerns about performance, you can generate compile-time code based on the markup.
Back To Top
Ultimately, I've put more time into this website than into the parser and some of the utilities (that probably says something about my web design skills). The point is, this wasn't really a major effort. I wanted to share it with the community and hopefully have the community share back. MyXaml is really just a piece of a much bigger solution when it comes to developing applications, whether client, web, distributed, mobile, or other application architectures. And, right or wrong, that's where I feel that the consulting services and some "heavy-weight" products can really be leveraged. As an open source effort, the people who are involved in the effort gain knowledge and have fun. And knowledge is the key--working on this project, you'll become more knowledgeable regarding XAML, MVC architecture, and unit testing (to mention a few key points). This means you'll be more valuable to the rest of the community. And that's a good thing.
Back To Top
You can join the open source development effort at http://myxaml.tigris.org.
Back To Top
Thought you'd never ask! Click here!
Back To Top
Please send your additional questions to: marc.clifton@gmail.com
Back To Top
|