<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Maksim.<br>
<br>
Sure.<br>
I have added it to the MaestroAPI project, even though I have not used
it yet.<br>
<br>
The direct path via SVN is:<br>
<a class="moz-txt-link-freetext" href="http://svn.osgeo.org/mapguide/trunk/Tools/Maestro/MaestroAPI/XsdGenerator">http://svn.osgeo.org/mapguide/trunk/Tools/Maestro/MaestroAPI/XsdGenerator</a>
new w generics<br>
<br>
<pre class="moz-signature" cols="72">Mvh. Kenneth Skovhede, GEOGRAF A/S
tlf.: +45 48 16 67 14
<a class="moz-txt-link-abbreviated" href="mailto:ks@geograf.dk">ks@geograf.dk</a>
</pre>
<br>
<br>
Maksim Sestic skrev:
<blockquote cite="mid:000901c8be71$8ce61550$0701a8c0@max2" type="cite">
  <meta http-equiv="Content-Type" content="text/html; ">
  <meta content="MSHTML 6.00.6000.16640" name="GENERATOR">
  <div dir="ltr" align="left"><span class="312200314-25052008"><font
 color="#0000ff" face="Verdana" size="2">Hi Kenneth,</font></span></div>
  <div dir="ltr" align="left"><span class="312200314-25052008"></span>&nbsp;</div>
  <div>I am working on another solution that uses xsd.exe for the first
run, and then updates the code to use generic List&lt;&gt; properties.<br>
It works by replacing all fields/properties of the array type with a
List&lt;&gt; type, pretty basic.<br>
  <span class="312200314-25052008"><font color="#0000ff" face="Verdana"
 size="2">&nbsp;</font></span></div>
  <div><span class="312200314-25052008"><span class="312200314-25052008"><font
 color="#0000ff" face="Verdana" size="2">Thanks for the tip about
customizing XSD.EXE. Generics would help Ryan on ge-kml project a lot (<a
 moz-do-not-send="true" href="http://sourceforge.net/projects/ge-kml/">http://sourceforge.net/projects/ge-kml/</a>).
If you want to share it, would you mind posting&nbsp;the&nbsp;solution&nbsp;to
Assembla SVN (<a moz-do-not-send="true" href="http://www.assembla.com/">http://www.assembla.com/</a>)
so we can give it&nbsp;a shot?</font></span></span></div>
  <div><span class="312200314-25052008"><span class="312200314-25052008"></span></span>&nbsp;</div>
  <div><span class="312200314-25052008"><span class="312200314-25052008"><font
 color="#0000ff" face="Verdana" size="2">Regards,</font></span></span></div>
  <div><span class="312200314-25052008"><span class="312200314-25052008"><font
 color="#0000ff" face="Verdana" size="2">Maksim Sestic</font></span></span></div>
  <div><span class="312200314-25052008">&nbsp;</span></div>
  <br>
  <br>
Maksim Sestic skrev:
  <blockquote cite="mid:001e01c8be61$9ddada90$0701a8c0@max2" type="cite">
    <meta content="MSHTML 6.00.6000.16640" name="GENERATOR">
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">Hi Kenneth, Darrin,</font></span></div>
    <div dir="ltr" align="left"><span class="093455711-25052008"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">Regarding the LinQ and XSD
codegen&nbsp;- is it possible to generate a C#/VB.NET serializable codebase
out of XSD? I have been experimenting a while ago with some
custom&nbsp;codegen engine based on .NET 2.0 (due to generics support), and
I think it's doable - even without LinQ. The basic concept is similar
to VS.NET's own&nbsp;codegen tools:</font></span></div>
    <div dir="ltr" align="left"><span class="093455711-25052008"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">1) Fetch the XSD (or XML with
embedded schema)</font></span></div>
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">2) Generate codebase of
desired flawour (C#, VB.NET, J#...)</font></span></div>
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">3)&nbsp;Generated&nbsp;serializable
object definitions, according to (compatible with) source schema</font></span></div>
    <div dir="ltr" align="left"><span class="093455711-25052008"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">...generate codebase-embedded
FDO-based spatial queries based on entity relationships?... :-)</font></span></div>
    <div dir="ltr" align="left"><span class="093455711-25052008"></span><span
 class="093455711-25052008"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">Kenneth, I presume you were
thinking of the same thing (1, 2 and 3)?</font></span></div>
    <div dir="ltr" align="left"><span class="093455711-25052008"></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">Regards,</font></span></div>
    <div dir="ltr" align="left"><span class="093455711-25052008"><font
 color="#0000ff" face="Verdana" size="2">Maksim Sestic</font></span></div>
    <br>
    <div class="OutlookMessageHeader" dir="ltr" align="left"
 lang="en-us">
    <hr tabindex="-1"> <font face="Tahoma" size="2"><b>From:</b> <a
 moz-do-not-send="true" class="moz-txt-link-abbreviated"
 href="mailto:mapguide-users-bounces@lists.osgeo.org">mapguide-users-bounces@lists.osgeo.org</a>
[<a moz-do-not-send="true" class="moz-txt-link-freetext"
 href="mailto:mapguide-users-bounces@lists.osgeo.org">mailto:mapguide-users-bounces@lists.osgeo.org</a>]
    <b>On Behalf Of </b>Kenneth Skovhede, GEOGRAF A/S<br>
    <b>Sent:</b> Sunday, May 25, 2008 00:13<br>
    <b>To:</b> MapGuide Users Mail List<br>
    <b>Subject:</b> Re: [mapguide-users] .NET Objects for working with
Mapguide Resources<br>
    </font><br>
    </div>
I'm not sure what you mean by "work with the web tier API".<br>
There are two different API's that are refered to as Web tier, the
MapGuideDotNetApi.dll and the http interface.<br>
Both of them are supported by MaestroAPI, using the
LocalNativeConnetion and HttpServerConnection.<br>
    <br>
You can set up a http connection like this:<br>
    <tt>ServerConnectionI connection = new HttpServerConnection(new Uri(<a
 class="moz-txt-link-rfc2396E"
 href="http://localhost/mapguide/mapagent/mapagent.fcgi"
 moz-do-not-send="true">"http://localhost/mapguide/mapagent/mapagent.fcgi"</a>),
"Anonymous", "");</tt><br>
And one using the local connection like this:<br>
    <tt>ServerConnectionI connection = new
LocalNativeConnection("serverconfig.ini", "Anonymous", "");</tt><br>
    <br>
The http connection is portable and does not require the mapguide
dll's. The native is a bit faster, because the http protocol and
webserver introduces overhead.<br>
    <br>
Once you have a connection, you can read an object from the repository,
using either interface, by issuing the following:<br>
    <tt>LayerDefinition layer =
connection.GetLayerDefinition("Library://layer.LayerDefinition");</tt><br>
    <br>
And write it back like this:<br>
    <tt>connection.SaveResource(layer);</tt><br>
    <br>
Or modify, and save under a new name:<br>
    <tt>layer.BackgroundColor = Color.Blue;<br>
connection.SaveResource(layer, "Library://new layer.LayerDefinition");<br>
    </tt><br>
There are also functions to generate the full paths, from name and type.<br>
    <br>
    <pre class="moz-signature" cols="72">Regards, Kenneth Skovhede, GEOGRAF A/S
  </pre>
    <br>
    <br>
Kenneth Skovhede, GEOGRAF A/S skrev:
    <blockquote cite="mid:4838872E.1090404@geograf.dk" type="cite">Yes.
I have moved the entire site over on the MapGuide wiki.<br>
Documentation can now be found here:<br>
      <a class="moz-txt-link-freetext"
 href="http://trac.osgeo.org/mapguide/wiki/maestro"
 moz-do-not-send="true">http://trac.osgeo.org/mapguide/wiki/maestro</a><br>
And for the API:<br>
      <a class="moz-txt-link-freetext"
 href="http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI"
 moz-do-not-send="true">http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI</a><br>
      <br>
Too bad about the LinQ dependancy, it would be a lot cleaner to do it
that way.<br>
      <br>
I have not exposed functionality in the way you ask, but it is there.<br>
You can do it with code like this:<br>
      <tt>Stream s = ... stream with Xml data ...<br>
LayerDefinition layer =
(LayerDefinition)con.DeserializeObject(typeof(LayerDefinition), s);<br>
layer.BackgroundColor = Color.White;<br>
s = con.SerializeObject(s);</tt><br>
      <br>
The methods could actually be static, but they are not because they use
the server version to restrict/convert the version's of the documents.<br>
      <br>
It is possible to serialize/deserialise the objects manually, using the
XmlSerializer from .Net:<br>
      <tt>XmlSerializer ser = new
XmlSerializer(typeof(LayerDefinition));<br>
layer = (LayerDefinition)con.Deserialize(s);<br>
      </tt><tt>layer.BackgroundColor = Color.Green;<br>
      </tt><tt>ser.Serialize(s, layer);</tt><br>
      <br>
There is a function in the Utility class that strips the UTF-8 BOM:<br>
      <tt>s = Utility.RemoveUTF8BOM(s);</tt><br>
      <br>
      <br>
      <pre class="moz-signature" cols="72">Regards, Kenneth Skovhede, GEOGRAF A/S
  </pre>
      <br>
      <br>
Darrin Maidlow skrev:
      <blockquote cite="mid:004701c8bddf$4af50f30$e0df2d90$@com"
 type="cite">
        <meta content="Microsoft Word 12 (filtered medium)"
 name="Generator">
<!--[if !mso]>
      <STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
.shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]-->
        <style>@font-face {
        font-family: Cambria Math;
}
@font-face {
        font-family: Calibri;
}
@font-face {
        font-family: Tahoma;
}
@font-face {
        font-family: Verdana;
}
@font-face {
        font-family: Consolas;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
        FONT-SIZE: 11pt; MARGIN: 0in 0in 0pt; COLOR: black; FONT-FAMILY: "Calibri","sans-serif"
}
LI.MsoNormal {
        FONT-SIZE: 11pt; MARGIN: 0in 0in 0pt; COLOR: black; FONT-FAMILY: "Calibri","sans-serif"
}
DIV.MsoNormal {
        FONT-SIZE: 11pt; MARGIN: 0in 0in 0pt; COLOR: black; FONT-FAMILY: "Calibri","sans-serif"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
PRE {
        FONT-SIZE: 10pt; MARGIN: 0in 0in 0pt; COLOR: black; FONT-FAMILY: "Courier New"; mso-style-priority: 99; mso-style-link: "HTML Preformatted Char"
}
SPAN.HTMLPreformattedChar {
        COLOR: black; FONT-FAMILY: Consolas; mso-style-priority: 99; mso-style-link: "HTML Preformatted"; mso-style-name: "HTML Preformatted Char"
}
SPAN.EmailStyle19 {
        COLOR: windowtext; FONT-FAMILY: "Calibri","sans-serif"; mso-style-type: personal
}
SPAN.EmailStyle20 {
        COLOR: #1f497d; FONT-FAMILY: "Calibri","sans-serif"; mso-style-type: personal
}
SPAN.EmailStyle21 {
        COLOR: #1f497d; FONT-FAMILY: "Calibri","sans-serif"; mso-style-type: personal-reply
}
.MsoChpDefault {
        FONT-SIZE: 10pt; mso-style-type: export-only
}
DIV.Section1 {
        page: Section1
}
        </style><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
        <div class="Section1">
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">Hi
Kenneth,<O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">Thanks
for the feedback.&nbsp; You are very right in that dual development streams
would be a bad thing and a waste of a lot of time.&nbsp; &nbsp;What I was hoping
to accomplish with that XSD codegen was to create a set of relatively
light weight objects to roundtrip the xml. &nbsp;Eliminate the use of XML
tools for working with the mapguide entities, then return the entities
back to XML for use with the Mapguide API.&nbsp; &nbsp;&nbsp;I was not planning a full
API project.&nbsp; Again, you are right in that there is still some messing
around needed to be done with the linq code &#8211; I had problems with nulls
just as you mentioned =)<O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">To
answer your question, as far as I can see, the linq dll is required for
the generated code to function.&nbsp; A lot of the generated functionality
requires methods that exist within the linq to XSD dll file.<O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">I
spent some time trying to find more info on the MeastroAPI today, but
was not able to find much.&nbsp; Likely because of the move over to osgeo.&nbsp;
I have not had a chance to actually work with the API again yet, but
perhaps you could answer a couple questions for me.<O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">Does
Meastro API come with the abovementioned objects I was looking for?&nbsp;
Can I shove some XML from the repository into a new object, do some
work, and then spit the new XML back out?&nbsp; If so, I&#8217;m assuming that I
could continue to work with the web tier API from Mapguide?<O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">thx<O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">darrin<O:P></O:P></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><O:P></O:P></span></p>
        <div>
        <div
 style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">
        <p class="MsoNormal"><b><span
 style="font-size: 10pt; color: windowtext; font-family: 'Tahoma','sans-serif';">From:</span></b><span
 style="font-size: 10pt; color: windowtext; font-family: 'Tahoma','sans-serif';">
        <a class="moz-txt-link-abbreviated"
 href="mailto:mapguide-users-bounces@lists.osgeo.org"
 moz-do-not-send="true">mapguide-users-bounces@lists.osgeo.org</a> [<a
 class="moz-txt-link-freetext"
 href="mailto:mapguide-users-bounces@lists.osgeo.org"
 moz-do-not-send="true">mailto:mapguide-users-bounces@lists.osgeo.org</a>]
        <b>On Behalf Of </b>Kenneth Skovhede, GEOGRAF A/S<br>
        <b>Sent:</b> Thursday, May 22, 2008 12:04 PM<br>
        <b>To:</b> MapGuide Users Mail List<br>
        <b>Subject:</b> Re: [mapguide-users] .NET Objects for working
with Mapguide Resources<O:P></O:P></span></p>
        </div>
        </div>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal">That is a smart way to convert Xsd to
classes. Is it possible to extract the generated code and use it
without LinQ for .Net 2.0?<br>
        <br>
I'm not sure what you mean by "wanted to stay closer to the core API".
Your generated classes expose the MapGuide Xml as .Net classes.<br>
You can then use .Net objects "directly" instead of handling Xml. That
is exactly what the MaestroAPI does.<br>
        <br>
I have implemented a connection interface that enables you to
communicate with MapGuide either via the MapGuide API, or through Http.<br>
If you use the LocalNativeConnection exclusively, MaestroAPI is doing
the exact same thing your code does.<br>
        <br>
If you (or someone else) has questions about MaestroAPI usage, please
ask away.<br>
If you (or someone else) find missing functionality, or has
improvements for MaestroAPI, let me know.<br>
I have a short introduction to MaestroAPI usage here:<br>
        <a
 href="http://code.google.com/p/mapstudioos/wiki/HowToUseMapGuideAPI"
 moz-do-not-send="true">http://code.google.com/p/mapstudioos/wiki/HowToUseMapGuideAPI</a><br>
(The site is being migrated to here: <a
 href="http://trac.osgeo.org/mapguide/wiki/maestro"
 moz-do-not-send="true">http://trac.osgeo.org/mapguide/wiki/maestro</a>)<br>
        <br>
I like your code, and if you are up for it, I think we both could
benefit from one great API extension, rather than two good ones.<br>
I have learned that after you have the serialization in place there are
many places where you must handle trivial stuff like <br>
converting null string to empty string, empty collections to null
collections, etc. MaestroAPI handles much of this already,<br>
and I would be sad to see you spend your time implementing that for
another project.<br>
        <br>
        <O:P></O:P></p>
        <pre>Regards, Kenneth Skovhede, GEOGRAF A/S<O:P></O:P></pre>
        <p class="MsoNormal"><br>
        <br>
Darrin Maidlow skrev: <O:P></O:P></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">Hi
Maksim,</span><O:P></O:P></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">I
looked at early on in my learnage, but wanted to stay closer to the
core API provided by Mapguide Project / Autodesk. &nbsp;&nbsp;ADN support could
offer some help with the built in API, and if needed escalate off to
the devs.&nbsp; I did also have some problems getting the Maestro API
running &#8211; but that was right around the transition between 1.1 and 2.0
&#8211; and working all night with too much redbull probably didn&#8217;t help
either =)</span><O:P></O:P></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"></span><O:P></O:P></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">darrin</span><O:P></O:P></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"></span><O:P></O:P></p>
        <div>
        <div
 style="border-style: solid none none; border-color: -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">
        <p class="MsoNormal"><b><span
 style="font-size: 10pt; font-family: 'Tahoma','sans-serif';">From:</span></b><span
 style="font-size: 10pt; font-family: 'Tahoma','sans-serif';"> <a
 href="mailto:mapguide-users-bounces@lists.osgeo.org"
 moz-do-not-send="true">mapguide-users-bounces@lists.osgeo.org</a> [<a
 href="mailto:mapguide-users-bounces@lists.osgeo.org"
 moz-do-not-send="true">mailto:mapguide-users-bounces@lists.osgeo.org</a>]
        <b>On Behalf Of </b>Maksim Sestic<br>
        <b>Sent:</b> Thursday, May 22, 2008 7:40 AM<br>
        <b>To:</b> 'MapGuide Users Mail List'<br>
        <b>Subject:</b> RE: [mapguide-users] .NET Objects for working
with Mapguide Resources</span><O:P></O:P></p>
        </div>
        </div>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 10pt; color: blue; font-family: 'Verdana','sans-serif';">Hi
Darrin,</span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: 'Times New Roman','serif';"></span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 10pt; color: blue; font-family: 'Verdana','sans-serif';">Thanks
for the tip. Please take a&nbsp;look at Kenneth's Meastro API:</span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: 'Times New Roman','serif';"></span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 10pt; color: blue; font-family: 'Verdana','sans-serif';"><a
 href="http://trac.osgeo.org/mapguide/browser/trunk/Tools/Maestro/MaestroAPI"
 moz-do-not-send="true">http://trac.osgeo.org/mapguide/browser/trunk/Tools/Maestro/MaestroAPI</a></span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: 'Times New Roman','serif';"></span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 10pt; color: blue; font-family: 'Verdana','sans-serif';">It
relies on .NET 2.0 for MG types (de)serialization.</span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: 'Times New Roman','serif';"></span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 10pt; color: blue; font-family: 'Verdana','sans-serif';">Regards,</span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 10pt; color: blue; font-family: 'Verdana','sans-serif';">Maksim
Sestic</span><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: 'Times New Roman','serif';"></span><O:P></O:P></p>
        <div class="MsoNormal" style="text-align: center;"
 align="center"><span
 style="font-size: 12pt; font-family: 'Times New Roman','serif';">
        <hr align="center" size="2" width="100%"> </span></div>
        <p class="MsoNormal" style="margin-bottom: 12pt;"><b><span
 style="font-size: 10pt; font-family: 'Tahoma','sans-serif';">From:</span></b><span
 style="font-size: 10pt; font-family: 'Tahoma','sans-serif';"> <a
 href="mailto:mapguide-users-bounces@lists.osgeo.org"
 moz-do-not-send="true">mapguide-users-bounces@lists.osgeo.org</a> [<a
 href="mailto:mapguide-users-bounces@lists.osgeo.org"
 moz-do-not-send="true">mailto:mapguide-users-bounces@lists.osgeo.org</a>]
        <b>On Behalf Of </b>Darrin Maidlow<br>
        <b>Sent:</b> Thursday, May 22, 2008 15:28<br>
        <b>To:</b> <a href="mailto:mapguide-users@lists.osgeo.org"
 moz-do-not-send="true">mapguide-users@lists.osgeo.org</a><br>
        <b>Subject:</b> [mapguide-users] .NET Objects for working with
Mapguide Resources</span><O:P></O:P></p>
        <p class="MsoNormal">Hi List,<O:P></O:P></p>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal">I&#8217;ve written two posts I thought I would
share with you on the topic of .NET based MG dev.&nbsp; The first describes
a method I&#8217;ve worked out to create relatively robust .NET based objects
based on the Xml Schema Definitions provided with the server.&nbsp;&nbsp; &nbsp;Please
note, I currently am only working with MGE 2009.&nbsp; I have not tried this
code on MGOS.&nbsp; If you do try them on MGOS, please let me know what
results have.<O:P></O:P></p>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal">In a nutshell, one can get the resource
XML from the resource service, load it into the object with the
provided .parse method, manipulate the object (without having to use
xml) e.g. add child objects, change properties etc, and finally spit it
back out to XML for saving back to the repository.&nbsp; Yay no longer need
to be jealous of the PHP guys and their object factories =D<O:P></O:P></p>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal">The second is a dynamic authoring example
using these objects, manipulating the MapDefinition before the viewer
has loaded it.<O:P></O:P></p>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal">Both come with full source code, and
Visual Studio 2008 projects.&nbsp;&nbsp; I hope they are helpful to the other
.NET devs out there. <O:P></O:P></p>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal"><a
 href="http://www.webrade.com/blogs/darrin/2008/05/16/CreatingNETObjectsForMapguideXMLSchemaDefinitionsXSDUsingLINQ.aspx"
 moz-do-not-send="true">http://www.webrade.com/blogs/darrin/2008/05/16/CreatingNETObjectsForMapguideXMLSchemaDefinitionsXSDUsingLINQ.aspx</a><O:P></O:P></p>
        <p class="MsoNormal"><a
 href="http://www.webrade.com/blogs/darrin/2008/05/21/DynamicAuthoringInMapguideEnterpriseBeforeTheViewerHasLoaded.aspx"
 moz-do-not-send="true">http://www.webrade.com/blogs/darrin/2008/05/21/DynamicAuthoringInMapguideEnterpriseBeforeTheViewerHasLoaded.aspx</a><O:P></O:P></p>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal">Enjoy.<O:P></O:P></p>
        <p class="MsoNormal">darrin<O:P></O:P></p>
        <p class="MsoNormal"><O:P></O:P></p>
        <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: 'Times New Roman','serif';"><br>
        <br>
__________ NOD32 3118 (20080521) Information __________<br>
        <br>
This message was checked by NOD32 antivirus system.<br>
        <a href="http://www.eset.com" moz-do-not-send="true">http://www.eset.com</a></span><O:P></O:P></p>
        <pre><O:P>&nbsp;</O:P></pre>
        <pre style="text-align: center;"><hr align="center" size="4"
 width="90%">

  </pre>
        <pre><O:P>&nbsp;</O:P></pre>
        <pre>_______________________________________________<O:P></O:P></pre>
        <pre>mapguide-users mailing list<O:P></O:P></pre>
        <pre><a href="mailto:mapguide-users@lists.osgeo.org"
 moz-do-not-send="true">mapguide-users@lists.osgeo.org</a><O:P></O:P></pre>
        <pre><a
 href="http://lists.osgeo.org/mailman/listinfo/mapguide-users"
 moz-do-not-send="true">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a><O:P></O:P></pre>
        <pre>&nbsp; <O:P></O:P></pre>
        </div>
        <pre wrap=""><hr size="4" width="90%">
_______________________________________________
mapguide-users mailing list
<a class="moz-txt-link-abbreviated"
 href="mailto:mapguide-users@lists.osgeo.org" moz-do-not-send="true">mapguide-users@lists.osgeo.org</a>
<a class="moz-txt-link-freetext"
 href="http://lists.osgeo.org/mailman/listinfo/mapguide-users"
 moz-do-not-send="true">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a>
  </pre>
      </blockquote>
      <pre wrap=""><hr size="4" width="90%">
_______________________________________________
mapguide-users mailing list
<a class="moz-txt-link-abbreviated"
 href="mailto:mapguide-users@lists.osgeo.org" moz-do-not-send="true">mapguide-users@lists.osgeo.org</a>
<a class="moz-txt-link-freetext"
 href="http://lists.osgeo.org/mailman/listinfo/mapguide-users"
 moz-do-not-send="true">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a>
  </pre>
    </blockquote>
    <br>
    <br>
__________ NOD32 3128 (20080523) Information __________<br>
    <br>
This message was checked by NOD32 antivirus system.<br>
    <a href="http://www.eset.com" moz-do-not-send="true">http://www.eset.com</a><br>
    <pre wrap=""><hr size="4" width="90%">
_______________________________________________
mapguide-users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated"
 href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
 href="http://lists.osgeo.org/mailman/listinfo/mapguide-users">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a>
  </pre>
  </blockquote>
  <br>
  <br>
__________ NOD32 3128 (20080523) Information __________<br>
  <br>
This message was checked by NOD32 antivirus system.<br>
  <a moz-do-not-send="true" href="http://www.eset.com">http://www.eset.com</a><br>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
mapguide-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="http://lists.osgeo.org/mailman/listinfo/mapguide-users">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a>
  </pre>
</blockquote>
</body>
</html>