<!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> </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<> properties.<BR>It works by
replacing all fields/properties of the array type with a List<> type,
pretty basic.<BR><SPAN class=312200314-25052008><FONT face=Verdana color=#0000ff
size=2> </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 the solution to
Assembla SVN (<A href="http://www.assembla.com/">http://www.assembla.com/</A>)
so we can give it 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> </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> </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> </DIV>
<DIV dir=ltr align=left><SPAN class=093455711-25052008><FONT face=Verdana
color=#0000ff size=2>Regarding the LinQ and XSD codegen - is it possible
to generate a C#/VB.NET serializable codebase out of XSD? I have been
experimenting a while ago with some custom 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 codegen
tools:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=093455711-25052008></SPAN> </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) Generated serializable object definitions,
according to (compatible with) source schema</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=093455711-25052008></SPAN> </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> </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> </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. You are very right in that dual development streams would
be a bad thing and a waste of a lot of time. What I was hoping
to accomplish with that XSD codegen was to create a set of relatively
light weight objects to roundtrip the xml. 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. I was not
planning a full API project. Again, you are right in that there is
still some messing around needed to be done with the linq code – 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. 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. Likely because of the move over to osgeo. 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? Can I shove
some XML from the repository into a new object, do some work, and then
spit the new XML back out? If so, I’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. ADN support could offer some help
with the built in API, and if needed escalate off to the devs. I did
also have some problems getting the Maestro API running – but that was
right around the transition between 1.1 and 2.0 – and working all night
with too much redbull probably didn’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 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’ve written two posts I thought I would share with you
on the topic of .NET based MG dev. The first describes a method I’ve
worked out to create relatively robust .NET based objects based on the Xml
Schema Definitions provided with the server. Please
note, I currently am only working with MGE 2009. I have not tried
this code on MGOS. 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. 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. 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> </O:P></PRE><PRE style="TEXT-ALIGN: center"><HR align=center width="90%" SIZE=4>
</PRE><PRE><O:P> </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> <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>