<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.2.1" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Mainsoft Grasshoppers Blog</title>
	<link>http://blog.mainsoft.com/blog</link>
	<description>The Grasshopper Dev Team Blog</description>
	<pubDate>Mon, 23 Jun 2008 08:45:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Grasshopper" type="application/rss+xml" /><feedburner:emailServiceId>1003293</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>AJAX Extensions support</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/171608387/</link>
		<comments>http://blog.mainsoft.com/blog/ajax-extensions-support/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 13:56:09 +0000</pubDate>
		<dc:creator>Noam Lampert</dc:creator>
		
		<category><![CDATA[Bits And Pieces]]></category>

		<category><![CDATA[Under Construction]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/ajax-extensions-support/</guid>
		<description><![CDATA[We are proud to announce a preview release of Grasshopper with AJAX Extensions support.
This release contains an implementation of System.Web.Extensions, and a sample containing the AJAX Control Toolkit together with its sample web site, all running on Tomcat.
For more information about AJAX Extensions see http://www.asp.net/ajax.
It is worth pointing out that the entire development of this feature [...]]]></description>
			<content:encoded><![CDATA[<p>We are proud to announce a preview release of Grasshopper with AJAX Extensions support.</p>
<p>This release contains an implementation of System.Web.Extensions, and a sample containing the AJAX Control Toolkit together with its sample web site, all running on Tomcat.</p>
<p>For more information about AJAX Extensions see <a href="http://www.asp.net/ajax">http://www.asp.net/ajax</a>.</p>
<p>It is worth pointing out that the entire development of this feature is completely open source:</p>
<ul>
<li>The System.Web.Extensions implementation was contributed to Mono and is available at<br />
svn://anonsvn.mono-project.com/source/trunk/mcs/class/System.Web.Extensions</li>
<li>The Microsoft AJAX Library is based on the Microsoft implementation that was released under the MS-PL</li>
<li>Also the AJAX Control Toolkit, together with its sample are also available for download on <a href="http://www.codeplex.com"></a><a href="http://www.codeplex.com/AtlasControlToolkit">CodePlex</a> under the MS-PL</li>
</ul>
<p>Come and get it from <a href="http://dev.mainsoft.com">http://dev.mainsoft.com</a></p>
<p>A few technical notes worth mentioning:</p>
<ol>
<li>We are currently using the debug version of the Microsoft AJAX Library. This has some performance implications due to the size of the JavaScript files and other differences compared to the optimized JavaScript.</li>
<li>We have invested some energy in different performance optimizations by preserving the rendering flow without any difference between AJAX and non-AJAX requests. Same for JSON de/serialization (we avoid creating an intermediate dictionary and perform single pass de/serialization).</li>
<li>Porting the AJAX Control Toolkit succeeded without any runtime source code changes. We did need to disable the designer code that is not supported in Grasshopper.</li>
</ol>
<p><font color="#000000">We are interested in feedback. Please give this preview a test drive and let us know what you think. You can ask technical questions, report bugs, or just let us know what you think and what other features you would like to see in the next Grasshopper release by posting in the Grasshopper developer forums at <a href="http://dev.mainsoft.com"></a><a href="http://dev.mainsoft.com/default.aspx?tabid=27&amp;view=topics&amp;forumid=19." title="http://dev.mainsoft.com/default.aspx?tabid=27&amp;view=topics&amp;forumid=19">http://dev.mainsoft.com/default.aspx?tabid=27&amp;view=topics&amp;forumid=19</a></font></p>
<p><font color="#000000">Noam</font></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=KcCGO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=KcCGO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=JYFbo"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=JYFbo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/171608387" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/ajax-extensions-support/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/ajax-extensions-support/</feedburner:origLink></item>
		<item>
		<title>Video: Grasshopper Portal Edition and WebSphere Portal with Oved Yavine</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/152061956/</link>
		<comments>http://blog.mainsoft.com/blog/video-grasshopper-portal-edition-and-websphere-portal-with-oved-yavine/#comments</comments>
		<pubDate>Tue, 04 Sep 2007 13:57:43 +0000</pubDate>
		<dc:creator>adarw</dc:creator>
		
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/video-grasshopper-portal-edition-and-websphere-portal-with-oved-yavine/</guid>
		<description><![CDATA[Here&#8217;s a video interview I did with Oved Yavine, Director of customer services at Mainsoft. He talks about Mainsoft for Java EE, Portal Edition, and how you can use Visual Studio 2005 to develop ASP.NET apps that run natively on WebSphere Portal as JSR-168 Compliant portlets: 

]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a video interview I did with Oved Yavine, Director of customer services at Mainsoft. He talks about <a target="_blank" href="http://dev.mainsoft.com/Default.aspx?tabid=223">Mainsoft for Java EE, Portal Edition</a>, and how you can use Visual Studio 2005 to develop ASP.NET apps that run natively on WebSphere Portal as JSR-168 Compliant portlets: </p>
<p><embed src="http://video.google.com/googleplayer.swf?docId=2506901312468884386&amp;hl=en" style="width: 400px; height: 326px" id="VideoPlayback"></embed></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=9TTPO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=9TTPO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=zUgbo"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=zUgbo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/152061956" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/video-grasshopper-portal-edition-and-websphere-portal-with-oved-yavine/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/video-grasshopper-portal-edition-and-websphere-portal-with-oved-yavine/</feedburner:origLink></item>
		<item>
		<title>Grasshopper TV Episode 2 - Dive into Grasshopper</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/146506679/</link>
		<comments>http://blog.mainsoft.com/blog/grasshopper-tv-episode-2-dive-into-grasshopper/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 13:38:54 +0000</pubDate>
		<dc:creator>adarw</dc:creator>
		
		<category><![CDATA[Bits And Pieces]]></category>

		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/grasshopper-tv-episode-2-dive-into-grasshopper/</guid>
		<description><![CDATA[Here&#8217;s another vide that we&#8217;ve shot featuring Noam Lampert (Head of R&#38;D) and Roei Erez (Core Team Lead). I&#8217;m Using Viddler to show this video so let me know if you have any problems watching it in the comments.


























(If it says &#8220;loading&#8221; for a long time, clicking on the &#8220;Progressive&#8221; word on the bottom of [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s another vide that we&#8217;ve shot featuring Noam Lampert (Head of R&amp;D) and Roei Erez (Core Team Lead). I&#8217;m Using <a target="_blank" href="http://www.viddler.com/mainsoft">Viddler</a> to show this video so let me know if you have any problems watching it in the comments.</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler"></p>
<param name="_cx" value="11562"></param>
<param name="_cy" value="9790"></param>
<param name="FlashVars"></param>
<param name="Movie" value="http://www.viddler.com/player/a2fdb11d/"></param>
<param name="Src" value="http://www.viddler.com/player/a2fdb11d/"></param>
<param name="WMode" value="Window"></param>
<param name="Play" value="0"></param>
<param name="Loop" value="-1"></param>
<param name="Quality" value="High"></param>
<param name="SAlign" value="LT"></param>
<param name="Menu" value="0"></param>
<param name="Base"></param>
<param name="AllowScriptAccess" value="always"></param>
<param name="Scale" value="NoScale"></param>
<param name="DeviceFont" value="0"></param>
<param name="EmbedMovie" value="0"></param>
<param name="BGColor"></param>
<param name="SWRemote"></param>
<param name="MovieData"></param>
<param name="SeamlessTabbing" value="1"></param>
<param name="Profile" value="0"></param>
<param name="ProfileAddress"></param>
<param name="ProfilePort" value="0"></param>
<param name="AllowNetworking" value="all"></param>
<param name="AllowFullScreen" value="true"></param></object></p>
<p>(If it says &#8220;loading&#8221; for a long time, clicking on the &#8220;Progressive&#8221; word on the bottom of the movie to change it to streaming mode)</p>
<p><strong>Topics in this video:</strong></p>
<ul>
<li>What&#8217;s the idea behind Grasshopper</li>
<li>How does Grasshopper work?</li>
<li>What types of challenges do you encounter when trying cross-compile (translate) .NET IL code to Java Bytecode?</li>
<li>What does the future hold for Grasshopper?</li>
<li>(for example .NET Generics Vs. Java Generics)</li>
<li>(or 3rd party dependencies you need to convert)</li>
<li>what kinds of tests do you have?</li>
<li>Stuff I should worry about as a .NET developer that is compiling using Grasshopper</li>
<li>What are you working on right now?</li>
</ul>
<p><a atomicselection="true" href="http://blog.mainsoft.com/blog/images/GrasshopperTVEpisode2DiveintoGrasshopper_E9F9/image.png"><img border="0" align="left" width="188" src="http://blog.mainsoft.com/blog/images/GrasshopperTVEpisode2DiveintoGrasshopper_E9F9/image_thumb.png" alt="image" height="215" /></a></p>
<p>I&#8217;ve also added a Grasshopper TV Logo animation to start out the video (I used <a target="_blank" href="http://www.sonycreativesoftware.com/products/vegasfamily.asp">Sony Vegas</a> to edit it and add the various TV related effects, although the actual logo was done by our graphics artist)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=5hPJO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=5hPJO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=MNuIo"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=MNuIo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/146506679" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/grasshopper-tv-episode-2-dive-into-grasshopper/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/grasshopper-tv-episode-2-dive-into-grasshopper/</feedburner:origLink></item>
		<item>
		<title>Video: Rafi Mizrahi on Grasshopper, Mono Monkeys, WS-* and more</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/144418212/</link>
		<comments>http://blog.mainsoft.com/blog/video-rafi-mizrahi-on-grasshopper-mono-monkeys-ws-and-more/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 14:43:34 +0000</pubDate>
		<dc:creator>adarw</dc:creator>
		
		<category><![CDATA[Bits And Pieces]]></category>

		<category><![CDATA[Grasshopper]]></category>

		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/video-rafi-mizrahi-on-grasshopper-mono-monkeys-ws-and-more/</guid>
		<description><![CDATA[We just got a new Video camera, so I rushed and shot a short (12 min) video with Rafi Mizarhi, sales engineer here at Mainsoft.
















(Double click on the movie while playing for full screen)
Topics include:

Reporting services running on WebSphere Portal as a portlet
Mono and VisualBasic.dll on mono
Tell us something in GH that people don&#8217;t realize [...]]]></description>
			<content:encoded><![CDATA[<p>We just got a new Video camera, so I rushed and shot a short (12 min) video with Rafi Mizarhi, sales engineer here at Mainsoft.</p>
<p>
<script type="text/javascript">
<!--
var ourTags='';
ourTags+='<OBJECT ID="MediaPlayer" WIDTH="350" HEIGHT="270" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" STANDBY="Loading Windows Media Player" TYPE="application/x-oleobject">';
ourTags+='<PARAM name="FileName" VALUE="http://blog.mainsoft.com/blog/videos/RafimOnGH.wmv" />';
ourTags+='<PARAM name="ShowDisplay" VALUE="false" />';
ourTags+='<PARAM name="ShowControls" VALUE="true" />';
ourTags+='<PARAM name="ShowStatusBar" VALUE="false" />';
ourTags+='<PARAM name="autostart" VALUE="false" />';
ourTags+='<EMBED TYPE="application/x-mplayer2" NAME="MediaPlayer" ';
ourTags+='SRC="http://blog.mainsoft.com/blog/videos/RafimOnGH.wmv" ShowControls="1" ShowStatusBar="0" ShowDisplay="0"';
ourTags+=' WIDTH="350" HEIGHT="270" autostart="0"></EMBED>';
ourTags+='</OBJECT>';
if (typeof writeTags == "undefined") { document.write(theTags);} else {writeTags(ourTags);
}//-->
</script>
<noscript>
<OBJECT ID="MediaPlayer" WIDTH="350" HEIGHT="270" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" STANDBY="Loading Windows Media Player" TYPE="application/x-oleobject">
<PARAM name="FileName" VALUE="http://blog.mainsoft.com/blog/videos/RafimOnGH.wmv" />
<PARAM name="ShowDisplay" VALUE="false" />
<PARAM name="ShowControls" VALUE="true" />
<PARAM name="ShowStatusBar" VALUE="false" />
<PARAM name="autostart" VALUE="false" />
<EMBED TYPE="application/x-mplayer2" NAME="MediaPlayer" 
SRC="http://blog.mainsoft.com/blog/videos/RafimOnGH.wmv" ShowControls="1" ShowStatusBar="0" ShowDisplay="0"
 WIDTH="350" HEIGHT="270" autostart="0"></EMBED>
</OBJECT>

</noscript>
</p>
<p>(Double click on the movie while playing for full screen)</p>
<p>Topics include:</p>
<ul>
<li>Reporting services running on WebSphere Portal as a portlet</li>
<li>Mono and VisualBasic.dll on mono</li>
<li>Tell us something in GH that people don&#8217;t realize you accomplish with it</li>
<li>Mono = &#8220;Monkey&#8221; in Spanish</li>
<li>WS-* conformance tools running on Mono</li>
<li>You can download the <a target="_blank" href="http://blog.mainsoft.com/blog/videos/RafimOnGH.wmv">full video here</a> (45MB wmv)</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=iMebO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=iMebO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=hjvio"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=hjvio" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/144418212" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/video-rafi-mizrahi-on-grasshopper-mono-monkeys-ws-and-more/feed/</wfw:commentRss>
<enclosure url="http://blog.mainsoft.com/blog/videos/RafimOnGH.wmv" length="47696256" type="video/x-ms-wmv" />
		<feedburner:origLink>http://blog.mainsoft.com/blog/video-rafi-mizrahi-on-grasshopper-mono-monkeys-ws-and-more/</feedburner:origLink></item>
		<item>
		<title>.NET Java Interop - 8 links to get you started</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/142599863/</link>
		<comments>http://blog.mainsoft.com/blog/net-java-interop-8-links-to-get-you-started/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 03:23:12 +0000</pubDate>
		<dc:creator>adarw</dc:creator>
		
		<category><![CDATA[Interop]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/net-java-interop-8-links-to-get-you-started/</guid>
		<description><![CDATA[
Mainsoft&#8217;s Java-.NET interoperability software can help you reuse .NET knowledge while interoperating with Java Code or creating new Java based applications for the web
Codemesh can help create wrappers C++, Java or .NET wrapper code so you can talk to it
JNBridge connects Java and .NET. allows in-process or across network. 
Web Services (look into Axis)
JNI and [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><font color="#555555"><a target="_blank" href="http://dev.mainsoft.com">Mainsoft&#8217;s Java-.NET interoperability software</a> can help you reuse .NET knowledge while interoperating with Java Code or creating new Java based applications for the web</font></li>
<li><font color="#555555"><a target="_blank" href="http://www.codemesh.com">Codemesh</a> can help create wrappers C++, Java or .NET wrapper code so you can talk to it</font></li>
<li><font color="#555555"><a target="_blank" href="http://www.jnbridge.com/">JNBridge</a> connects Java and .NET. allows in-process or across network. </font></li>
<li><font color="#555555">Web Services (look into <a target="_blank" href="http://ws.apache.org/axis/ref.html">Axis</a>)</font></li>
<li><font color="#555555"><a target="_blank" href="http://www.codeproject.com/useritems/Espresso.asp">JNI and native interop</a></font></li>
<li><font color="#555555"><a target="_blank" href="http://www.devx.com/interop/Article/19845">COM Interop and JNI</a></font></li>
<li><font color="#555555"><a target="_blank" href="http://www.devx.com/interop/Article/19916">CORBA</a></font></li>
<li><font color="#555555"><a target="_blank" href="http://www.devx.com/interop/Article/19952/0/page/3">Database and Messaging interop</a> (MSMQ for example)</font></li>
</ul>
<p>Am I missing something?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=mtVVO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=mtVVO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=jAdUo"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=jAdUo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/142599863" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/net-java-interop-8-links-to-get-you-started/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/net-java-interop-8-links-to-get-you-started/</feedburner:origLink></item>
		<item>
		<title>Java and .NET- Bridging the Interop Gap</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/142599368/</link>
		<comments>http://blog.mainsoft.com/blog/java-and-net-bridging-the-interop-gap/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 03:03:04 +0000</pubDate>
		<dc:creator>adarw</dc:creator>
		
		<category><![CDATA[Interop]]></category>

		<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/java-and-net-bridging-the-interop-gap/</guid>
		<description><![CDATA[I&#8217;ll be presenting a 3 hour tutorial at the upcoming Agile Practices Conference in December on .NET and Java, the interop gap and various solutions to interoperate between them. Grasshopper will also be introduced as well as other solutions such as Codemesh. Here&#8217;s the abstract:
Java and .NET - Bridging the Interop Gap
Many development shops have [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be presenting a 3 hour tutorial at the upcoming <a target="_blank" href="http://www.sqe.com/agiledevpractices/">Agile Practices Conference in December</a> on .NET and Java, the interop gap and various solutions to interoperate between them. <a target="_blank" href="http://dev.mainsoft.com">Grasshopper</a> will also be introduced as well as other solutions such as <a target="_blank" href="http://www.codemesh.com">Codemesh</a>. Here&#8217;s the abstract:</p>
<p>Java and .NET - Bridging the Interop Gap</p>
<p>Many development shops have huge investments in Java, .NET, or both. When it&#8217;s time to get programs in one language talking with programs in another, or even being fully deployed in a foreign environment, what options do you have? How do you make sure your programming language skills, along with the investment that gave you those skills, aren&#8217;t  lost when trying to target another platform or re-use existing code instead of rewriting it?  Roy Osherove will present various approaches to interoperability between .NET and Java. These approaches include: cross compilation, single-sourced applications, cross language interoperability, JNI, SOAP and web services, and architectural patterns. Roy will also demonstrate tools such as CodeMesh, Mainsoft Grasshopper, Janet, JNBridge and more.</p>
<p>Also, I&#8217;ll be  presenting there on:</p>
<li>Design for Testability</li>
<li>Database Unit Testing (Half day Tutorial)</li>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=RUTkO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=RUTkO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=HPulo"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=HPulo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/142599368" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/java-and-net-bridging-the-interop-gap/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/java-and-net-bridging-the-interop-gap/</feedburner:origLink></item>
		<item>
		<title>Where Mono fits into Grasshopper</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/141975054/</link>
		<comments>http://blog.mainsoft.com/blog/where-mono-fits-into-grasshopper/#comments</comments>
		<pubDate>Wed, 08 Aug 2007 13:28:21 +0000</pubDate>
		<dc:creator>Roy Osherove</dc:creator>
		
		<category><![CDATA[Bits And Pieces]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/where-mono-fits-into-grasshopper/</guid>
		<description><![CDATA[One question that really bogged me about Mainsoft when I first heard about it was &#8220;Where does Mono fit in?&#8221;. What do I mean by that?
Mainsoft helps &#8220;cross-compile&#8221; your .NET Code into Java Bytecode. The process means you use .NET (Microsoft, not Mono) to write your code, but you compile to java bytecode using the [...]]]></description>
			<content:encoded><![CDATA[<p>One question that really bogged me about Mainsoft when I first heard about it was &#8220;Where does Mono fit in?&#8221;. What do I mean by that?</p>
<p>Mainsoft helps &#8220;cross-compile&#8221; your .NET Code into Java Bytecode. The process means you use .NET (Microsoft, not Mono) to write your code, but you compile to java bytecode using the Grasshopper addin and the Mainsoft project templates. All fine and dandy, for sure. But Mainsoft is also a big contributor to the open source .NET implementation on Linux called Mono. Where does contributing to mono fit into the Mainsoft business? more specifically, where is the <strong>technological dependency</strong> that requires Mainsoft to use mono as part of grasshopper? clearly, you don&#8217;t see mono as a .NET developer writing grasshopper enabled applications, so where can it be found in the process?</p>
<p>After a relatively long lunch discussion with Kosta (who&#8217;s blogged here before) the answer lies here:</p>
<ul>
<li><font color="#555555">One of the things Mainsoft does is create a .NET framework API written in Java</font>
<li><font color="#555555">that API is used by your cross-compiled code when you compile it in visual studio 2005 (for example, when you add a reference to System.Xml in your Grasshopper project, you are actually adding two references - one for system.xml and the other is a <strong>jar reference</strong> to the system.xml implementation in java)</font>
<li><font color="#555555">That API implementation had to come from <strong>somewhere</strong>. it is based on the Mono implementation of the .NET framework (no, we don&#8217;t use Reflector to copy .NET framework code. <a href="http://tirania.org/blog/archive/2007/Feb-21.html" target="_blank">It&#8217;s strictly prohibited</a>).</font></li>
</ul>
<p>So, Mainsoft Contribute to the Mono Implementation ,and then implement the same thing in Java, based on the &#8220;reference implementation&#8221; found in Mono. That Java implementation is used and referenced from your grasshopper cross compiled applications, so that the APIs you use for System.Xml will transfer seamlessly into the Java world. </p>
<p>Here&#8217;s an image I made that I hope can help clarify this:</p>
<p><a href="http://blog.mainsoft.com/blog/images/WhereMonofitsintoGrasshopper_E6B6/image.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="389" alt="image" src="http://blog.mainsoft.com/blog/images/WhereMonofitsintoGrasshopper_E6B6/image_thumb.png" width="515" border="0"></a> </p>
<p><strong>Update</strong>: As kosta explains in the comment, there is obviously a compilation step of mono to IL, and from <strong>that</strong> the java source code is generated. As he says (with my own little slant in there) &#8220;when developing mono we are effectively developing our own library references for the Java API as well&#8221;</p>
<p>Simple. Powerful. Any questions?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=QSFXO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=QSFXO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=9Td0o"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=9Td0o" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/141975054" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/where-mono-fits-into-grasshopper/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/where-mono-fits-into-grasshopper/</feedburner:origLink></item>
		<item>
		<title>Java on Ubuntu in 50 easy steps</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/141564563/</link>
		<comments>http://blog.mainsoft.com/blog/java-on-ubuntu-in-50-easy-steps/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 11:30:49 +0000</pubDate>
		<dc:creator>adarw</dc:creator>
		
		<category><![CDATA[How-To]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/java-on-ubuntu-in-50-easy-steps/</guid>
		<description><![CDATA[I&#8217;m continuing on with my quest for installing Tomcat and Java on my Ubuntu machine. Next thing I need: Java.
At first look, I found it hard to believe that you need to go through so many steps in order to install the java runtime on Ubuntu (probably since it&#8217;s part of a Debian Linux distribution, so [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m continuing on with my quest for installing Tomcat and Java on my Ubuntu machine. Next thing I need: Java.</p>
<p>At first look, I found it hard to believe that you need to go through so many steps in order to install the java runtime on Ubuntu (probably since it&#8217;s part of a Debian Linux distribution, so somehow installation should occur differently? that&#8217;s what I somehow &#8220;got&#8221; from my readings).  After looking <a target="_blank" href="http://blog.agileware.net/index.php/archives/2005/09/30/how-to-install-java-on-ubuntu-linux/">here</a> and <a target="_blank" href="http://ubuntuforums.org/showthread.php?t=66534&amp;highlight=ppc+java">here</a> I finally got it to install Java.</p>
<p><a atomicselection="true" href="http://blog.mainsoft.com/blog/wp-content/image1.png"><img border="0" width="334" src="http://blog.mainsoft.com/blog/wp-content/image-thumb1.png" alt="image" height="61" style="border: 0px" /></a></p>
<p>But then, I noticed (as is the case many times) that I&#8217;m doing things in a much more manual way than I needed to. I cam upon <a target="_blank" href="https://help.ubuntu.com/community/Java">this in the wiki</a> which explains that using the terminal mode (took me some time to find the terminal on ubuntu..) all i had to do was:</p>
<blockquote>
<pre>  sudo apt-get install sun-java6-bin</pre>
<pre>  sudo apt-get install sun-java6-jdk</pre>
</blockquote>
<p>I really love the fact that the &#8220;windows update&#8221; idea is built into the OS. It&#8217;s very easy to get updates, assuming you have the &#8220;repositories&#8221; installed. Still, I&#8217;d love for there to be a visual way to select these updates for the user who does not want to use the terminal. I would have expected it to be searchable here:</p>
<p><a atomicselection="true" href="http://blog.mainsoft.com/blog/wp-content/image2.png"><img border="0" width="267" src="http://blog.mainsoft.com/blog/wp-content/image-thumb2.png" alt="image" height="214" style="border: 0px" /></a></p>
<p>Next stop: Tomcat</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=12KPO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=12KPO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=yCASo"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=yCASo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/141564563" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/java-on-ubuntu-in-50-easy-steps/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/java-on-ubuntu-in-50-easy-steps/</feedburner:origLink></item>
		<item>
		<title>Ubuntu and Windows Updates</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/141526057/</link>
		<comments>http://blog.mainsoft.com/blog/ubuntu-and-windows-updates/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 09:15:12 +0000</pubDate>
		<dc:creator>adarw</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/ubuntu-and-windows-updates/</guid>
		<description><![CDATA[I just finished installing Ubuntu Linux on my VMWare machine. It was a painless experience (I&#8217;m a windows developer with almost zero experience working on Linux), but then I got this little notification:

Let it not be said that just windows has a zillion updates to run when you first install it.
I&#8217;m going to be running [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished installing <a target="_blank" href="http://www.ubuntu.com/">Ubuntu Linux</a> on my VMWare machine. It was a painless experience (I&#8217;m a windows developer with almost zero experience working on Linux), but then I got this little notification:</p>
<p><a atomicselection="true" href="http://blog.mainsoft.com/blog/wp-content/image.png"><img border="0" width="392" src="http://blog.mainsoft.com/blog/wp-content/image-thumb.png" alt="image" height="86" style="border-width: 0px" /></a></p>
<p>Let it not be said that just windows has a zillion updates to run when you first install it.</p>
<p>I&#8217;m going to be running Tomcat on an Ubuntu installation, so I can run my Grasshopper generated applications (DotJava apps?) there.  I&#8217;ll be using <a target="_blank" href="http://ubuntuforums.org/showthread.php?t=44006">this manual</a> to do so.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=wSK6O"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=wSK6O" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=54ulo"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=54ulo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/141526057" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/ubuntu-and-windows-updates/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/ubuntu-and-windows-updates/</feedburner:origLink></item>
		<item>
		<title>Codemesh does Interop with .NET and Java too. How does Grasshopper compare?</title>
		<link>http://feeds.feedburner.com/~r/Grasshopper/~3/139224858/</link>
		<comments>http://blog.mainsoft.com/blog/codemesh-does-interop-with-net-and-java-too-how-do-we-compare/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 14:33:50 +0000</pubDate>
		<dc:creator>adarw</dc:creator>
		
		<category><![CDATA[Interop]]></category>

		<category><![CDATA[Thinking Out Loud]]></category>

		<category><![CDATA[Bits And Pieces]]></category>

		<guid isPermaLink="false">http://blog.mainsoft.com/blog/codemesh-does-interop-with-net-and-java-too-how-do-we-compare/</guid>
		<description><![CDATA[Jack Vaughan posted in his interoperability blog about CodeMesh, and how they try to enable (and succeed to a degree) interoperability between Exiting Java code and external code written in an language like C++ (They also have a product for .NET). Their approach is to use code generation that creates wrappers around the Java code [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tssblog.techtarget.com/">Jack Vaughan posted in his interoperability blog</a> about <a href="http://www.codemesh.com/">CodeMesh</a>, and how they try to enable (and succeed to a degree) interoperability between Exiting Java code and external code written in an language like C++ (They also have a product for .NET). Their approach is to use code generation that creates wrappers around the Java code which lets you talk to the java code from the external language, and vice versa ,</p>
<p>Read the interview he did with Alexander Krapf in 3 parts (<a href="http://tssblog.techtarget.com/index.php/interoperability/jni-and-i-krapf-looks-at-net-j2ee-interop/">first</a>, <a href="http://tssblog.techtarget.com/index.php/interoperability/run-time-libraries-with-knowledge-of-java-and-net/">second</a>, <a href="http://tssblog.techtarget.com/index.php/xmlweb-services/from-orbs-to-web-services">third</a>) where he also refers to <a href="http://codemesh.com/products/juggernet/index.html">JuggerNET</a>, one of their products.</p>
<p>On the Codemesh site they have a <a href="http://codemesh.com/technology.html">comparison</a> with other methods of achieving interoperability (JNI, Web Services, hand written code, CORBA).</p>
<p>It&#8217;s interesting to note that on some level, both Codemesh and Mainsoft are sharing the same set of problems:</p>
<ul>
<li><strong>Keeping up with new versions of the frameworks on both sides</strong></li>
</ul>
<blockquote><p>&#8220;As people switch compilers, new issues come up, bindings must be updated. Meanwhile, certainly, new versions of .NET have to be studied for elements that it would be useful – or necessary  – to update. This was interesting to me – to see platform and framework change from the point of view of an Independent Software Vendor [ISV] who must ensure the fit and finish for customers. Of course, the backdrop is a software landscape now highly influenced by open-source and free software, where end users often must take on the role of Versioning Meister.&#8221;</p></blockquote>
<p><strong>Amen</strong>. Mainsoft is coming to grips with the .NET framework 3.0 and 3.5,  but it&#8217;s a struggle to keep up. The same goes for Java. It&#8217;s comforting to know we&#8217;re in the same boat..</p>
<ul>
<li><strong>Generics</strong></li>
</ul>
<blockquote><p>&#8220;Updates in .NET, particularly, have led Krapf to consider how Generics can play in the new interoperability milieu. It is worthwhile to consider, he said, taking Java Generics and translating them into .NET. But, to do it for all APIs, he adds, “is not as trivial as it sounds.”</p></blockquote>
<p>I spent some time talking with Noam Lampert, Dev lead here, and he explained to me some of the difficulties and challenges involved in making .NET generics to translate nicely to the java platform. For example, in .NET creating a generic type of of some sort (IList&lt;int&gt;) and then creating another one for a different type (IList&lt;string&gt;) actually creates two separate classes at .NET runtime. In Java, Generics play differently and you have to make sure you get it right or stuff just won&#8217;t work as expected or not compile at all. I hope to explain this more deeply in a alter post.</p>
<ul>
<li><strong>They generate code</strong></li>
</ul>
<blockquote><p>&#8220;<em>And the other major piece is in the code generator, which knows how to map from Java Type A to the corresponding part in .NET. That’s what many people miss when they do proof of concept on things like this.</em>&#8220;</p></blockquote>
<p>Grasshopper doesn&#8217;t actually generate code, but it actually <strong>compiles</strong> IL code into Java Byte code. That means that you have two main use cases for Grasshopper Compiled code :</p>
<ul>
<li> 
<ul>
<li>Write in .NET but actually run natively in Java - no interop at all. Your code is actually Java  code.In this use case you can also migrate existing .NET code to Java.</li>
<li>Federate, or reuse your existing .NET code from Java or vice versa, via web services or uses remoting. For instance, you can write code in .NET that uses your existing objects through web service or remoting interface. Because you are still writing in .NET, you will not have to modify your existing code to be WS-I compliant when you expose it as a web service. You will still be able to use .NET types like DataSet even when running in Java. <strong>This is the interop</strong> scenario grasshopper enables.</li>
</ul>
</li>
</ul>
<ul>
<li><strong>They have a bunch of utility classes to help with interop translations issues and such</strong></li>
</ul>
<p> We also have utility classes that are used when you write code in .NET. stuff like translating BigInteger to .NET integer values and so on. If you are programming only in .NET languages you usually do not need to use these classes directly. If you want to call from your C# code a class that was written in Java, you may need to use these to marshal specific types to the types Java expects (e.g. a DateTime to a java.util.Calendar).</p>
<p>Overall I&#8217;d say the main difference between grasshopper and Codemesh JaggerNet are:</p>
<ul>
<li>Codemesh enables <strong>native</strong> cross language interop. it allows <strong>in process</strong> interop between platforms, but does not try to solve the skill problem (where you need to learn another language to interoperate with it)  . It does not support or try to support web service or remoting scenarios. in fact, it is compared against those (either-or) as a different solution.</li>
<li>Grasshopper enables native code compilation to Java (solving the skill problem - I don&#8217;t need to learn java to create code or use code on the java platform . all I know is .NET)</li>
<li>Grasshopper <strong>also </strong>allows writing interoperating code using web services and remoting  from and to .NET without needing to translate or rewrite parts of your .NET code in Java. It is done for you. The skill barrier is taken care of, but interop at the web service or remoting level between two different platforms is possible.</li>
<li>The interop solution the you can use with Grasshopper compiled code could be slower than the native calls performed by Codemesh APIs (since Codemesh uses the JNI interface, a low level C interface for the java language which is fast, and runs in process) because we support web service calls and remoting interop between .NET and java - slower than direct calls using JNI.</li>
<li>Codemesh does not solve the skill problem - if I want to use Java objects from .NET or C++ I need to learn the Java API stack. with Grasshopper you only need to know .NET. the skill barrier is lower.</li>
</ul>
<p>Your thoughts are welcome.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Grasshopper?a=vdfLO"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=vdfLO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Grasshopper?a=KXWDo"><img src="http://feeds.feedburner.com/~f/Grasshopper?i=KXWDo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Grasshopper/~4/139224858" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.mainsoft.com/blog/codemesh-does-interop-with-net-and-java-too-how-do-we-compare/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.mainsoft.com/blog/codemesh-does-interop-with-net-and-java-too-how-do-we-compare/</feedburner:origLink></item>
	</channel>
</rss>
