<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16640" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<DIV dir=ltr align=left><SPAN class=312200314-25052008><FONT face=Verdana 
color=#0000ff size=2>Hi Kenneth,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=312200314-25052008><FONT face=Verdana 
color=#0000ff size=2></FONT></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 face=Verdana color=#0000ff 
size=2>&nbsp;</FONT></SPAN></DIV>
<DIV><SPAN class=312200314-25052008><SPAN class=312200314-25052008><FONT 
face=Verdana color=#0000ff size=2>Thanks for the tip about customizing XSD.EXE. 
Generics would help Ryan on ge-kml project a lot (<A 
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 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><FONT 
face=Verdana color=#0000ff size=2></FONT></SPAN></SPAN>&nbsp;</DIV>
<DIV><SPAN class=312200314-25052008><SPAN class=312200314-25052008><FONT 
face=Verdana color=#0000ff size=2>Regards,</FONT></SPAN></SPAN></DIV>
<DIV><SPAN class=312200314-25052008><SPAN class=312200314-25052008><FONT 
face=Verdana color=#0000ff 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 face=Verdana 
  color=#0000ff 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 face=Verdana 
  color=#0000ff 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 face=Verdana 
  color=#0000ff size=2>1) Fetch the XSD (or XML with embedded 
  schema)</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=093455711-25052008><FONT face=Verdana 
  color=#0000ff 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 face=Verdana 
  color=#0000ff 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 face=Verdana 
  color=#0000ff 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 face=Verdana 
  color=#0000ff 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 face=Verdana 
  color=#0000ff size=2>Regards,</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=093455711-25052008><FONT face=Verdana 
  color=#0000ff size=2>Maksim Sestic</FONT></SPAN></DIV><BR>
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> <A class=moz-txt-link-abbreviated 
  href="mailto:mapguide-users-bounces@lists.osgeo.org">mapguide-users-bounces@lists.osgeo.org</A> 
  [<A 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-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: rgb(181,196,223) 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
      <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-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
      <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 width="100%" SIZE=2>
      </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 width="90%" SIZE=4>

  </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 width="90%" SIZE=4>
_______________________________________________
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 width="90%" SIZE=4>
_______________________________________________
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 width="90%" SIZE=4>
_______________________________________________
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><BR><BR>__________ NOD32 3128 (20080523) Information 
__________<BR><BR>This message was checked by NOD32 antivirus system.<BR><A 
href="http://www.eset.com">http://www.eset.com</A><BR></BODY></HTML>