<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:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[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 Definitions */
@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;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Lucida Sans Unicode";
        panose-1:2 11 6 2 3 5 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>For the client side, will the “Dynamic Web Service Helpers”
sample at the bottom of <a
href="http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Samples">http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Samples</a>
be of use? It ships as an IronPython sample, but is fully language-independent.
Attached are two samples of how its used from IronPython. You can get the full
sample from <a
href="http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=8365#DownloadId=51539">http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=8365#DownloadId=51539</a><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'><o:p> </o:p></span></p>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
ironruby-core-bounces@rubyforge.org
[mailto:ironruby-core-bounces@rubyforge.org] <b>On Behalf Of </b>Ivan Porto
Carrero<br>
<b>Sent:</b> Wednesday, July 29, 2009 1:44 AM<br>
<b>To:</b> ironruby-core@rubyforge.org<br>
<b>Subject:</b> Re: [Ironruby-core] What is the status for providing support
for Attributes?<o:p></o:p></span></p>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<div>
<p class=MsoNormal>* removed rant as this isn't a philosophical discussion on
WCF/SOAP/REST/JSON services :) *<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>For the client side you don't need attributes to generate a
proxy for a WCF call at all and you can just use meta programming to create
those for you. Then on the server side there are few approaches you can
use to host WCF services. WCF allows you to virtually replace every bit
and piece in its architecture with custom implemenations<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>One possible solution:<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal>1. you can create a custom service host, instance provider
and behavior that knows how to deal with ruby classes or DLR classes in
general.<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal>2. A custom operation invoker to select the method you want
to call (that uses DLR infrastructure) + behavior to insert it in the wcf
config <o:p></o:p></p>
</div>
<div>
<p class=MsoNormal>3. open-source it an the rest of the community will thank
you for it :)<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal>4. remove the need for xml configuration in default usage
cases (totally optional but still a good idea :))<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>If you put a good dev on this he can have this done in a
couple of days.<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>Only doing #1 will already get you hosting C# WCF services
on the server, it even allows you to write your service in Ruby as long as you
define the service contract in C#/VB/... <o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>Attributes are a
crutch used in the static world to annotate types with extra metadata. In ruby you typically use a class method invocation to provide that metadata because ruby doesn't break the inheritance chain when it comes to class level members. And
in the WCF scenario I don't see the _need_ for attributes. I don't think we
should be changing ruby to know about those static things but rather make the
technologies aware of DLR languages and how to use them.<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>Please prove me wrong :)<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal style='margin-bottom:12.0pt'>disclaimer: I may have made things look easier than they actually are. <br
clear=all>
---<br>
Met vriendelijke groeten - Best regards - Salutations<br>
Ivan Porto Carrero<br>
Blog: <a href="http://flanders.co.nz" target="_blank">http://flanders.co.nz</a><br>
Twitter: <a href="http://twitter.com/casualjim" target="_blank">http://twitter.com/casualjim</a><br>
Author of IronRuby in Action (<a href="http://manning.com/carrero"
target="_blank">http://manning.com/carrero</a>)<br>
<br>
<br>
<o:p></o:p></p>
<div>
<p class=MsoNormal>On Wed, Jul 29, 2009 at 5:38 AM, Philippe Monnet <<a
href="mailto:ironruby@monnet-usa.com" target="_blank">ironruby@monnet-usa.com</a>>
wrote:<o:p></o:p></p>
<div>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Lucida Sans Unicode","sans-serif"'>Jimmy,<br>
<br>
Yes I was interested in attributes to be able to call WCF services (actually
SOAP services) from Silverlight using Ruby.<br>
With WCF support, I think that IronRuby will become a huge catalyst for
Silverlight, especially for web enterprise developers.<br>
At my work, SOAP services provide access to all our shared enterprise
capabilities. All web apps use these services. Right now we use <a
href="http://ASP.NET" target="_blank">ASP.NET</a> and are injecting more and
more jQuery and JSON services to push the envelope on interactivity, richness
and usability. I would rather use Silverlight but static languages are a drag
on productivity for front-end development (don't get me wrong, I love C# for
everything else - frameworks, services, etc.). <br>
So far, in prototypes, I have had to create C# wrappers on top of the WCF/SOAP
proxies but that makes it even more brittle when we have to evolve our service
signatures. I would love to simplify web development and have a consistent
dynamic language experience on the browser side. IronRuby would be perfect in
this scenario and would lower the bar for Silverlight development. A good
example of course is what is being done around Gestalt.<br>
<br>
My perspective as an enterprise architect would be to include support for WCF
in 1.0, but I totally understand the challenges of product scoping and shipping
(I have experienced that for 5 years during the case tool years in the early
nineties).<br>
The work so far on IronRuby is spectacular in my opinion both from a technical
perspective as well as a from a collaboration and openness perspective! So keep
it up! :-)<br>
<br>
Philippe</span><br>
<br>
Jimmy Schementi wrote: <o:p></o:p></p>
<div>
<div>
<div>
<p class=MsoNormal>No, .NET Attributes are not planned for 1.0. IronPython 2.6
does not support it either, though they have a low level hook that could allow
it to be implemented. I understant this blocks the usage of any frameworks
which depend on Attributes (WCF), but in the grand scheme of .NET interop they
are a feature that can wait until after 1.0. <o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>If you disagree, please let us know; I'd really like all of
you to agree that IronRuby is in a 1.0 state, not just the people who have
@microsoft in their email addresses. <br>
<br>
~Jimmy<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal style='margin-bottom:12.0pt'><br>
On Jul 28, 2009, at 8:01 PM, "Philippe Monnet" <<a
href="mailto:ironruby@monnet-usa.com" target="_blank">ironruby@monnet-usa.com</a>>
wrote:<o:p></o:p></p>
</div>
<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>
<div>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Lucida Sans Unicode","sans-serif"'>As
you are getting near 1.0, is the support for attributes somewhere on the radar?
It seems like the last time I saw an exchange on this was sometime in February.
<br>
<br>
Philippe</span><o:p></o:p></p>
</div>
</blockquote>
<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>
<div>
<p class=MsoNormal>_______________________________________________<br>
Ironruby-core mailing list<br>
<a href="mailto:Ironruby-core@rubyforge.org" target="_blank">Ironruby-core@rubyforge.org</a><br>
<a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a><o:p></o:p></p>
</div>
</blockquote>
</div>
</div>
<pre style='text-align:center'>
<hr size=4 width="90%" align=center>
</pre>
<div><pre><o:p> </o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre>Ironruby-core mailing list<o:p></o:p></pre><pre><a
href="mailto:Ironruby-core@rubyforge.org" target="_blank">Ironruby-core@rubyforge.org</a><o:p></o:p></pre><pre><a
href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a><o:p></o:p></pre><pre> <o:p></o:p></pre></div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<p class=MsoNormal style='margin-bottom:12.0pt'><br>
_______________________________________________<br>
Ironruby-core mailing list<br>
<a href="mailto:Ironruby-core@rubyforge.org" target="_blank">Ironruby-core@rubyforge.org</a><br>
<a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a><o:p></o:p></p>
</div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</div>
</body>
</html>