<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
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]-->
</head>
<body lang=EN-GB link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Dan please see comments inline:<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Also you may be interested in Mono.Addins and MEF for your
plugin architecture consideration.. alternatively spin up new App Domains to
host your plugins.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:#1F497D'><o:p> </o:p></span></p>
<p><span style='color:black'><br>
All external apis where possible should be parallelizable. E.g collections
should be synchronized.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>Cool, but not sure how feasible. Thoughts?<span
style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I am thinking along the lines of the new
System.Collections.Concurrent namespace. Computers aren’t getting any
faster - we need to make sure we can use as many cores as possible to get the
speed gains we need.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Parallelization is also very hard to retrofit so if we can get a
plan in early we will benefit.<o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'> </span><o:p></o:p></p>
<p><span style='color:black'>Data access should be async.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>Especially for web based data access. Maybe not for file
based? <o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>IMO all IO bound access should follow the same pattern : web, db
or file. There is no point hitting datasources sequentially when you can do so
in parallel. <o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'> </span><o:p></o:p></p>
<p><span style='color:black'>There should be a caching block developed with
multiple backends. Uses ranging from caching data/ partial screen renders,
wms/wfs output etc.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>Not sure exactly what the implications are... but
interesting idea. <o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Basically have a generic caching block with rules for scavenging
and a variable backing store which can be plugged into any part of the
processing /rendering pipeline. It could be equally at home as an in-memory cache
of features on a layer or as an image cache speeding up identical wms requests.
– There is some work on this in the asp.net bits of SharpMap2 but it
could be made more generic..<o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'><br>
Supported frameworks should be considered up front - my personal preference
would be to start with a clean slate at .Net 4 or at a minimum 3.5.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>We were targeting 3.5 because it would be more likely to be
mono compliant... (does MONO really support all of .NET 4 now?) <span
style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Miguel certainly seemed to think so in a vid I saw recently.. <a
href="http://mono-project.com/Compatibility">http://mono-project.com/Compatibility</a>
tells a slightly different story - but being an OSS project the documentation
is out of date and probably wrong </span><span style='font-size:11.0pt;
font-family:Wingdings;color:#1F497D'>J</span><span style='font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'> I will try and locate the
vid.<o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'> </span><o:p></o:p></p>
<p><span style='color:black'>If we hope to support MONO (which I think we
should) we must ensure that any rendering api's have a potential replacement in
Mono. Mono is currently compatible with .net 4.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal> Any ideas on how much of .NET 4 is implemented in MONO
now? <o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>See above – I think they are also working on making the GC
better.<o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'> </span><o:p></o:p></p>
<p><span style='color:black'>Any class expecting to retrieve (vector/attribute)
data from a datasource should demand IQueriable<I/TFeature> rather than a
FeautureProvider or similar. DataTable / Dataset should be avoided. The query
syntax should be either linq against TFeature and/or based on expressions taken
from the OSGeo Filter spec.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>Not sure I understand... can you explain further? <o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>It was partly a spelling mistake on my part: should have been
IQueryable<IFeature> which is basically the underpinning of Linq. <br>
The OsGeo filter spec details a dialect for describing a query which is similar
to the System.Expressions namespace used in defining Linq queries. Both would
also provide an easy mechanism for serializing/persisting queries. <br>
Datasets and DataTables are very heavy/ verbose and don’t exist on
certain platforms. Pretty much all the trends as far as I can see, is to kill
them off in favour of domain entities / ORM. DataTables / Datasets are also
frowned upon in WCF which is another set of technology that could be very
useful in this field. We have an expression model in SharpMap 2 but it is a bit
clunky at the moment and disconnected from linq.<o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'> </span><o:p></o:p></p>
<p><span style='color:black'>Silverlight/Moonlight has massive potential for
browser based gis / mapping / processing / grid computing. Supporting it should
definitely be planned for but it imposes its own forced async style which may
have implications elsewhere. Also win phone 7 will be Silverlight based. Novell
have MonoTouch and MonoDroid in progress for IPhone and Android respectively
and <a href="http://www.KoushikDutta.com" target="_blank">www.KoushikDutta.com</a>
is working on another free Android/Mono platform.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>What are all the implications of supporting Silverlight and
Moonlight? Is it possible to have a standard .NET DLL that can be used in a
Silverlight application? <o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The binaries are compatible at .net 4 not so previously afaik. Silverlight
is both a super and sub set of WPF so there are differences. System.Data
is one key difference. IMO WPF and Silverlight will merge into one over the
next couple of releases. <o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'>MS C#/dotspatial group style guidelines should be
followed - everyone’s code should look the same. Perhaps a
developer R#/stylecop profile should be created and enforced by a CI server.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>Agreed. Is it possible to do this kind of enforcement using
Codeplex? <o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I don’t think codeplex allows this. I have heard good
things about Jetbrains’ TeamCity and lots of people use CruiseControl.
BTW jetbrains give away R# licenses.<o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'> </span><o:p></o:p></p>
<p><span style='color:black'>Source control should be backed with a CI / Test
server.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>Can this be done on Codeplex? <o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Not afaik.<o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'>Perhaps the logs should be taken and made
available somewhere.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>Yeah, any ideas on how to do this other than just through
the codeplex log browser? <o:p></o:p></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I actually meant the IRC logs.<o:p></o:p></span></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p><span style='color:black'><br>
Documentation should be easy to find and of high quality. Perhaps the group
needs a sister website separated from codeplex where it is easier to manage the
wiki/ public contribution etc. The codeplex wiki is very limited in this
respect.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal>Yes agreed. This is the number one complaint I believe of
any/every open source GIS project that there isn't adequate high quality
documentation. We've registered "dotSpatial.org" so maybe that should
point to a non-Codeplex server where we can maintain documentation and project
description/etc. Then have pointers to the Codeplex site for source code,
issues and forums. What do you think of this approach? Would you (John or
others) be interested/willing to help decide what would go such a separate
site? layout, etc?<o:p></o:p></p>
</div>
</div>
<p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>I am happy to help out
wherever I can..<o:p></o:p></span></p>
</div>
</body>
</html>