<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog @ SIB Visions &#187; .NET</title>
	<atom:link href="http://blog.sibvisions.com/tag/net/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.sibvisions.com</link>
	<description>Blog @ SIB Visions</description>
	<lastBuildDate>Mon, 13 Apr 2026 09:47:01 +0000</lastBuildDate>
		<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Xamarin Client (simple PoC)</title>
		<link>https://blog.sibvisions.com/2018/04/20/xamarin-client-simple-poc/</link>
		<comments>https://blog.sibvisions.com/2018/04/20/xamarin-client-simple-poc/#comments</comments>
		<pubDate>Fri, 20 Apr 2018 11:29:23 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Xamarin]]></category>

		<guid isPermaLink="false">https://blog.sibvisions.com/?p=7983</guid>
		<description><![CDATA[What is Xamarin?
Read all details here.
It's a company and a really cool platform for mobile application development. It enables you to use one codebase for iOS and Android.
Since 2016, it's more or less free for everyone.
We tried Xamarin some years before 2016 and it wasn't free. So it wasn't an option for us. Not because [...]]]></description>
			<content:encoded><![CDATA[<p>What is <a href="https://www.xamarin.com">Xamarin</a>?</p>
<p>Read all details <a href="https://en.wikipedia.org/wiki/Xamarin">here</a>.</p>
<p>It's a company and a really cool platform for mobile application development. It enables you to use one codebase for iOS and Android.</p>
<p>Since 2016, it's more or less <a href="https://blog.xamarin.com/xamarin-for-all/">free for everyone</a>.</p>
<p>We tried Xamarin some years before 2016 and it wasn't free. So it wasn't an option for us. Not because it's using C# as programming language. We already have mobile clients for JVx applications but they don't share the same codebase. There is one <a href="https://sourceforge.net/projects/jvxmobile/">client for Android</a> and <a href="https://sourceforge.net/projects/jvxmobile/">another one for iOS</a>. The source code is licensed under Apache 2.0.</p>
<p>Our native clients work great but we think they could be better.</p>
<p>In the last days we made some tests with different tools, to create a new universal client with one technology. A HTML5 client wasn't an option for us because of different criterias. A real native client was important during our evaluation.</p>
<p>Some links to different opinions:</p>
<ul>
<li><a href="https://techbeacon.com/10-cross-platform-mobile-development-tools-enterprises">https://techbeacon.com/10-cross-platform-mobile-development-tools-enterprises</a></li>
<li><a href="https://medium.com/@MasterOfCodeGlobal/best-10-android-frameworks-for-building-android-apps-d2d0ee48e464">https://medium.com/@MasterOfCodeGlobal/best-10-android-frameworks-for-building-android-apps-d2d0ee48e464</a></li>
<li><a href="https://www.lifewire.com/top-tools-for-multi-platform-mobile-app-development-2373505">https://www.lifewire.com/top-tools-for-multi-platform-mobile-app-development-2373505</a></li>
<li><a href="https://www.iqvis.com/blog/9-cross-platform-mobile-development-tools-to-use-in-2017/">https://www.iqvis.com/blog/9-cross-platform-mobile-development-tools-to-use-in-2017/</a></li>
<li><a href="https://www.outsystems.com/blog/free-cross-platform-mobile-app-development-tools-compared-2017.html">https://www.outsystems.com/blog/free-cross-platform-mobile-app-development-tools-compared-2017.html</a></li>
</ul>
<p>We made good first progress with Xamarin and because of its pricing, it was the winner of our evaluation. Sure, Xamarin is C# but it's better to write C# than JavaScript. Another plus was that we already have a simple JVx connection port to .NET based on C#. So we could reuse this code.</p>
<p><strong>Why not JavaFX?</strong></p>
<p>The problem with JavaFX is, that it's unclear what will happen with JavaFX in the future. There are different articles about the future of JavaFX, but the one from <a href="https://jonathangiles.net/one-guys-perspective-on-javafx/">Jonathan Giles</a> makes it clear</p>
<p>Sure, there's Gluon and some other individual developers, but the overall performance isn't relly comparable to native apps. It's awesome what happened in the last years, but the progress is missing. </p>
<p>We still have our JavaFX based UI, but we're not sure if JavaFX will survive or it will be commercialized. So it's better to have an option.</p>
<p><strong>Why not CodenameOne?</strong></p>
<p>It's a really cool technology and works great with some smaller performance glitches (simply try the current KitchenSink from the App stores)..<br />
WORA just works!</p>
<p>The cloud build isn't what we prefer and the pricing is not good for our use-case. Our client should be free, open and easy to use for every developer.</p>
<p style="display:block; width: 100%; padding-top: 20px">
<p>Here is a simple test application for REST access to our Heroes application, used in our <a href="https://blog.sibvisions.com/2017/10/23/angularjs-4-with-visionx-and-jvx-rest-services/">Angular test application</a>.</p>
<p><center></p>
<table>
<tr>
<td><div id="attachment_7994" class="wp-caption alignleft nomargin" style="width: 181px"><a href="https://blog.sibvisions.com/wp-content/uploads/2018/04/ios.png" rel="lightbox[7983]"><img src="https://blog.sibvisions.com/wp-content/uploads/2018/04/ios-171x300.png" alt="iOS client" title="ios" width="171" height="300" class="size-medium wp-image-7994" /></a><p class="wp-caption-text">iOS client</p></div></td>
<td style="width: 20px"></td>
<td><div id="attachment_7995" class="wp-caption alignleft nomargin" style="width: 207px"><a href="https://blog.sibvisions.com/wp-content/uploads/2018/04/android.png" rel="lightbox[7983]"><img src="https://blog.sibvisions.com/wp-content/uploads/2018/04/android-197x300.png" alt="Android client" title="android" width="197" height="300" class="size-medium wp-image-7995" /></a><p class="wp-caption-text">Android client</p></div></td>
</tr>
</table>
<p></center></p>
<p>The source code for this test:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">using</span> <span class="co3">System</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">System.Collections.Generic</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">System.Net.Http</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">System.Text</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">Newtonsoft.Json</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">Xamarin.Forms</span><span class="sy0">;</span></p>
<p><span class="kw1">namespace</span> TableViewSamples<br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">public</span> <span class="kw4">class</span> RESTTable <span class="sy0">:</span> ContentPage<br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> RESTTable<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; GetData<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; async <span class="kw1">void</span> GetData<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">Title</span> <span class="sy0">=</span> <span class="st0">&quot;REST Data&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; var table <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> TableView<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> Intent <span class="sy0">=</span> TableIntent.<span class="me1">Data</span> <span class="br0">&#125;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; var root <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> TableRoot<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; var section1 <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> TableSection<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> Title <span class="sy0">=</span> <span class="st0">&quot;First Section&quot;</span> <span class="br0">&#125;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; var authData <span class="sy0">=</span> <span class="kw4">string</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0}:{1}&quot;</span>, <span class="st0">&quot;user&quot;</span>, <span class="st0">&quot;pwd&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; var authHeaderValue <span class="sy0">=</span> Convert.<span class="me1">ToBase64String</span><span class="br0">&#40;</span>Encoding.<span class="me1">UTF8</span>.<span class="me1">GetBytes</span><span class="br0">&#40;</span>authData<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; HttpClient client <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> HttpClient<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; client.<span class="me1">DefaultRequestHeaders</span>.<span class="me1">Authorization</span> <span class="sy0">=</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw5">System.<span class="me1">Net</span></span>.<span class="me1">Http</span>.<span class="me1">Headers</span>.<span class="me1">AuthenticationHeaderValue</span><span class="br0">&#40;</span><span class="st0">&quot;Basic&quot;</span>, authHeaderValue<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; HttpResponseMessage response <span class="sy0">=</span> await client.<span class="me1">GetAsync</span><span class="br0">&#40;</span><span class="st0">&quot;https://...&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>response.<span class="me1">IsSuccessStatusCode</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HttpContent content <span class="sy0">=</span> response.<span class="me1">Content</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var result <span class="sy0">=</span> await content.<span class="me1">ReadAsStringAsync</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var parsed <span class="sy0">=</span> JsonConvert.<span class="me1">DeserializeObject</span><span class="sy0">&lt;</span>List<span class="sy0">&lt;</span>HEROES<span class="sy0">&gt;&gt;</span><span class="br0">&#40;</span>result<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span>var record <span class="kw1">in</span> parsed<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw5">System.<span class="me1">Diagnostics</span></span>.<span class="me1">Debug</span>.<span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;Data: {0}&quot;</span>, record<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; section1.<span class="me1">Add</span><span class="br0">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> TextCell <span class="br0">&#123;</span> Text <span class="sy0">=</span> record.<span class="me1">NAME</span> <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; table.<span class="me1">Root</span> <span class="sy0">=</span> root<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; root.<span class="me1">Add</span><span class="br0">&#40;</span>section1<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; Content <span class="sy0">=</span> table<span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; <span class="kw1">public</span> <span class="kw4">class</span> HEROES<br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">int</span> ID <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> NAME <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2018/04/20/xamarin-client-simple-poc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JVx mit Windows Phone</title>
		<link>https://blog.sibvisions.com/2010/07/02/jvx-mit-windows-phone/</link>
		<comments>https://blog.sibvisions.com/2010/07/02/jvx-mit-windows-phone/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 23:03:53 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[JVx]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WindowsPhone]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=315</guid>
		<description><![CDATA[Nachdem die JVx .NET AddOns bereits wunderbar mit Silverlight harmonieren, haben wir einen ersten Versuch mit dem Windows Phone SDK gewagt. In erster Linie wollten wir prüfen ob die AddOns auch mit Windows Phone funktionieren. In der Spezifikation waren keine Stolpersteine zu fnden, daher sollte eine Integration problemlos möglich sein.
In der Praxis sieht die Sache [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem die <strong>JVx .NET AddOns</strong> bereits wunderbar mit Silverlight harmonieren, haben wir einen ersten Versuch mit dem <strong>Windows Phone SDK</strong> gewagt. In erster Linie wollten wir prüfen ob die AddOns auch mit Windows Phone funktionieren. In der Spezifikation waren keine Stolpersteine zu fnden, daher sollte eine Integration problemlos möglich sein.</p>
<p>In der Praxis sieht die Sache natürlich etwas anders aus. Das SDK enthält (noch) nicht alle Klassen die in den AddOns verwendet wurden. Daher musste für unseren Test auf etwas Komfort verzichtet werden. Nach der  Anpassung der AddOns war die Integration jedoch ohne Probleme möglich.</p>
<p>Wir setzten uns ein sehr bescheidenes Ziel für die Entwicklung der ersten App:<br />
<strong>Darstellung einer Liste mit den Ländern aus unserer <a href="http://www.sibvisions.com/jvxmdemo#SHOWCASE">Showcase</a> Anwendung.</strong></p>
<p>Unsere App war überraschend schnell umgesetzt. Hierbei ist jedoch anzumerken, daß das Windows Phone SDK im Moment nicht mit der Konkurrenz mithalten kann. Dazu müssen noch wesentliche Details verbessert werden.<br />
&nbsp;<br />
Unsere <strong>App</strong>, gestartet mit dem <strong>Windows Phone Emulator</strong>:</p>
<table width="100%">
<tr>
<td>
<div id="attachment_317" class="wp-caption aligncenter nomargin" style="width: 163px"><a href="http://blog.sibvisions.com/wp-content/uploads/2010/07/winphone_countries.png" rel="lightbox[315]"><img src="http://blog.sibvisions.com/wp-content/uploads/2010/07/winphone_countries-153x300.png" alt="Windows Phone App" width="153" height="300" class="size-medium wp-image-317" /></a><p class="wp-caption-text">Windows Phone App</p></div>
</td>
</tr>
</table>
<p>&nbsp;<br />
Der Source Code für den Zugriff auf die Daten ist in üblicher Manier zu schreiben:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">private</span> JVxDataAdapter dataSource<span class="sy0">;</span><br />
<span class="kw1">private</span> MasterConnection Connection<span class="sy0">;</span></p>
<p><span class="kw1">public</span> MainPage<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; InitializeComponent<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; SupportedOrientations <span class="sy0">=</span> SupportedPageOrientation.<span class="me1">Portrait</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">|</span> SupportedPageOrientation.<span class="me1">Landscape</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; <span class="co1">// init connection</span><br />
&nbsp; &nbsp; HttpConnection conn <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> HttpConnection<span class="br0">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> UniversalSerializer<span class="br0">&#40;</span><span class="br0">&#41;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;http://demo.sibvisions.org/showcase/services/Server&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; MasterConnection master <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> MasterConnection<span class="br0">&#40;</span>conn<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; master.<span class="me1">ApplicationName</span> <span class="sy0">=</span> <span class="st0">&quot;showcase&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; master.<span class="me1">LifeCycleName</span> <span class="sy0">=</span> <span class="st0">&quot;com.sibvisions.apps.showcase.frames.Contacts&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; master.<span class="me1">UserName</span> <span class="sy0">=</span> <span class="st0">&quot;admin&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; master.<span class="me1">Password</span> <span class="sy0">=</span> <span class="st0">&quot;admin&quot;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; <span class="co1">// init data adapter</span><br />
&nbsp; &nbsp; dataSource <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> JVxDataAdapter<span class="br0">&#40;</span>master<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; dataSource.<span class="me1">OpenComplete</span> <span class="sy0">+=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> OpenCompleteEventHandler<span class="br0">&#40;</span>OpenComplete<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; <span class="co1">// open connection </span><br />
&nbsp; &nbsp; dataSource.<span class="me1">Open</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">void</span> OpenComplete<span class="br0">&#40;</span>OpenCloseCompleteEventArgs pEvent<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="co1">// fetch data</span><br />
&nbsp; &nbsp; CommunicationCallback callback <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> CommunicationCallback<span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> AsyncCallback<span class="br0">&#40;</span>EndFetch<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; dataSource.<span class="me1">Connection</span>.<span class="me1">call</span><span class="br0">&#40;</span><span class="st0">&quot;countries&quot;</span>, <span class="st0">&quot;fetch&quot;</span>, callback, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw4">object</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span><span class="kw1">null</span>, <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> SortDefinition<span class="br0">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="kw4">String</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span><span class="st0">&quot;COUNTRY&quot;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>, 0, <span class="sy0">-</span>1<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">void</span> EndFetch<span class="br0">&#40;</span>IAsyncResult pResult<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; CommunicationCallback requestCallback <span class="sy0">=</span> <span class="br0">&#40;</span>CommunicationCallback<span class="br0">&#41;</span>pResult.<span class="me1">AsyncState</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; ArrayList result <span class="sy0">=</span> <span class="br0">&#40;</span>ArrayList<span class="br0">&#41;</span>requestCallback.<span class="me1">CallResult</span><span class="br0">&#91;</span>0<span class="br0">&#93;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; <span class="co1">// fill list</span><br />
&nbsp; &nbsp; Deployment.<span class="me1">Current</span>.<span class="me1">Dispatcher</span>.<span class="me1">BeginInvoke</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">=&gt;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="kw4">object</span><span class="br0">&#91;</span><span class="br0">&#93;</span> item <span class="kw1">in</span> result<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>item <span class="sy0">!=</span> <span class="kw1">null</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ListBox.<span class="me1">Items</span>.<span class="me1">Add</span><span class="br0">&#40;</span>item<span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>&nbsp;</p>
<p>Das XAML ist im Vergleich zum Datenzugriff weit komplexer:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;phoneNavigation:PhoneApplicationPage</span> </span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">x:Class</span>=<span class="st0">&quot;WindowsPhoneApp.MainPage&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">xmlns</span>=<span class="st0">&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">xmlns:x</span>=<span class="st0">&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">xmlns:phoneNavigation</span>=<span class="st0">&quot;clr-namespace:Microsoft.Phone.Controls;</span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;assembly=Microsoft.Phone.Controls.Navigation&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">xmlns:d</span>=<span class="st0">&quot;http://schemas.microsoft.com/expression/blend/2008&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">xmlns:mc</span>=<span class="st0">&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">mc:Ignorable</span>=<span class="st0">&quot;d&quot;</span> <span class="re0">d:DesignWidth</span>=<span class="st0">&quot;480&quot;</span> <span class="re0">d:DesignHeight</span>=<span class="st0">&quot;800&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">FontFamily</span>=<span class="st0">&quot;{StaticResource PhoneFontFamilyNormal}&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">FontSize</span>=<span class="st0">&quot;{StaticResource PhoneFontSizeNormal}&quot;</span></span><br />
<span class="sc3"> &nbsp; &nbsp;<span class="re0">Foreground</span>=<span class="st0">&quot;{StaticResource PhoneForegroundBrush}&quot;</span><span class="re2">&gt;</span></span></p>
<p>&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;Grid</span> <span class="re0">x:Name</span>=<span class="st0">&quot;LayoutRoot&quot;</span> <span class="re0">Background</span>=<span class="st0">&quot;{StaticResource PhoneBackgroundBrush}&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;Grid.RowDefinitions<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;RowDefinition</span> <span class="re0">Height</span>=<span class="st0">&quot;162&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;RowDefinition</span> <span class="re0">Height</span>=<span class="st0">&quot;44&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;RowDefinition</span> <span class="re0">Height</span>=<span class="st0">&quot;514*&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;RowDefinition</span> <span class="re0">Height</span>=<span class="st0">&quot;80&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/Grid.RowDefinitions<span class="re2">&gt;</span></span></span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;Border</span> <span class="re0">BorderBrush</span>=<span class="st0">&quot;Silver&quot;</span> <span class="re0">BorderThickness</span>=<span class="st0">&quot;5&quot;</span> <span class="re0">Name</span>=<span class="st0">&quot;border0&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">CornerRadius</span>=<span class="st0">&quot;20&quot;</span> <span class="re0">Background</span>=<span class="st0">&quot;#18A2E7&quot;</span> <span class="re0">Margin</span>=<span class="st0">&quot;12,0,12,20&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;Grid</span> <span class="re0">x:Name</span>=<span class="st0">&quot;TitleGrid&quot;</span> <span class="re0">Height</span>=<span class="st0">&quot;147&quot;</span> <span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;TextBlock</span> <span class="re0">Text</span>=<span class="st0">&quot;Windows Phone App&quot;</span> <span class="re0">Foreground</span>=<span class="st0">&quot;Black&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">x:Name</span>=<span class="st0">&quot;textBlockPageTitle&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Style</span>=<span class="st0">&quot;{StaticResource PhoneTextPageTitle1Style}&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Margin</span>=<span class="st0">&quot;7,6,12,100&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;TextBlock</span> <span class="re0">Text</span>=<span class="st0">&quot;JVx showcase&quot;</span> <span class="re0">Foreground</span>=<span class="st0">&quot;Black&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">x:Name</span>=<span class="st0">&quot;textBlockAppTitle&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Style</span>=<span class="st0">&quot;{StaticResource PhoneTextPageTitle2Style}&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Margin</span>=<span class="st0">&quot;-3,26,-3,16&quot;</span> <span class="re0">TextAlignment</span>=<span class="st0">&quot;Center&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/Grid<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/Border<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;TextBlock</span> <span class="re0">Text</span>=<span class="st0">&quot;Countries&quot;</span> <span class="re0">x:Name</span>=<span class="st0">&quot;textBlockListTitle&quot;</span> <span class="re0">FontSize</span>=<span class="st0">&quot;30&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">HorizontalAlignment</span>=<span class="st0">&quot;Right&quot;</span> <span class="re0">Width</span>=<span class="st0">&quot;456&quot;</span> <span class="re0">Margin</span>=<span class="st0">&quot;0,148,12,6&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">VerticalAlignment</span>=<span class="st0">&quot;Stretch&quot;</span> <span class="re0">Padding</span>=<span class="st0">&quot;0,5,0,0&quot;</span> <span class="re0">Grid.RowSpan</span>=<span class="st0">&quot;2&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;Border</span> <span class="re0">BorderBrush</span>=<span class="st0">&quot;Silver&quot;</span> <span class="re0">BorderThickness</span>=<span class="st0">&quot;5&quot;</span> <span class="re0">Name</span>=<span class="st0">&quot;border1&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">Grid.Row</span>=<span class="st0">&quot;1&quot;</span> <span class="re0">CornerRadius</span>=<span class="st0">&quot;20&quot;</span> <span class="re0">Margin</span>=<span class="st0">&quot;12,35,12,0&quot;</span> <span class="re0">Grid.RowSpan</span>=<span class="st0">&quot;2&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;ListBox</span> <span class="re0">Name</span>=<span class="st0">&quot;ListBox&quot;</span> <span class="re0">HorizontalAlignment</span>=<span class="st0">&quot;Left&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">VerticalAlignment</span>=<span class="st0">&quot;Top&quot;</span> <span class="re0">Width</span>=<span class="st0">&quot;480&quot;</span> <span class="re0">Margin</span>=<span class="st0">&quot;5,5,5,5&quot;</span> <span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/Border<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;Image</span> <span class="re0">Grid.Row</span>=<span class="st0">&quot;3&quot;</span> <span class="re0">Height</span>=<span class="st0">&quot;74&quot;</span> <span class="re0">Margin</span>=<span class="st0">&quot;0,6,0,0&quot;</span> <span class="re0">Name</span>=<span class="st0">&quot;image1&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Stretch</span>=<span class="st0">&quot;Uniform&quot;</span> <span class="re0">VerticalAlignment</span>=<span class="st0">&quot;Top&quot;</span> </span><br />
<span class="sc3"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Source</span>=<span class="st0">&quot;/WindowsPhoneApp;component/Images/sib_visions.png&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/Grid<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
<span class="sc3"><span class="re1">&lt;/phoneNavigation:PhoneApplicationPage<span class="re2">&gt;</span></span></span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2010/07/02/jvx-mit-windows-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Der Silverlight Showcase ist online</title>
		<link>https://blog.sibvisions.com/2010/05/21/der-silverlight-showcase-ist-online/</link>
		<comments>https://blog.sibvisions.com/2010/05/21/der-silverlight-showcase-ist-online/#comments</comments>
		<pubDate>Fri, 21 May 2010 06:30:42 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[JVx]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=210</guid>
		<description><![CDATA[Wir haben vor wenigen Wochen unseren Silverlight Showcase vorgestellt. Nun steht die Anwendung offiziell zur Verfügung.
Der Silverlight Showcase ist eine in C# entwickelte Anwendung die mit den JVx AddOns für .NET entwickelt wurde. Dabei wird die komplette Business Logik von der Java Implementierung wiederverwendet. Der Silverlight Client kommuniziert durch den UniversalSerializer direkt mit dem Java [...]]]></description>
			<content:encoded><![CDATA[<p>Wir haben vor wenigen Wochen unseren Silverlight Showcase vorgestellt. Nun steht die Anwendung <strong>offiziell zur Verfügung</strong>.</p>
<p>Der Silverlight Showcase ist eine in C# entwickelte Anwendung die mit den JVx AddOns für .NET entwickelt wurde. Dabei wird die <strong>komplette Business Logik von</strong> der <strong>Java</strong> Implementierung <strong>wiederverwendet</strong>. Der Silverlight Client <strong>kommuniziert durch den UniversalSerializer direkt mit</strong> dem <strong>Java</strong> Applikationsserver.</p>
<p>Die Anwendung ist zusammen mit dem Java Showcase <a href="http://www.sibvisions.com/de/jvxmdemo#SILVERLIGHT">hier</a> zu finden.</p>
<p>Die JVx AddOns für .NET unterliegen der Apache Lizenz 2.0 und der Source Code wird in den nächsten Wochen offiziell freigegeben.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2010/05/21/der-silverlight-showcase-ist-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JVx Kommunikation im Vergleich</title>
		<link>https://blog.sibvisions.com/2010/05/10/jvx-kommunikation-im-vergleich/</link>
		<comments>https://blog.sibvisions.com/2010/05/10/jvx-kommunikation-im-vergleich/#comments</comments>
		<pubDate>Mon, 10 May 2010 10:40:07 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVx]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=190</guid>
		<description><![CDATA[Die in JVx integrierte Kommunikation hätte durchaus potential für ein eigenständiges Open Source Projekt. Wir sind jedoch bemüht die Entwicklung immer so einfach als möglich zu halten. Das bedeutet nicht, daß in JVx alle möglichen Frameworks zusammengeführt werden und somit ein nicht überschaubares "etwas" entsteht, sondern JVx enthält alles was nötig ist um Business Anwendungen [...]]]></description>
			<content:encoded><![CDATA[<p>Die in <strong>JVx integrierte Kommunikation</strong> hätte durchaus potential für ein <strong>eigenständiges Open Source Projekt</strong>. Wir sind jedoch bemüht die Entwicklung immer so einfach als möglich zu halten. Das bedeutet nicht, daß in JVx alle möglichen Frameworks zusammengeführt werden und somit ein nicht überschaubares "etwas" entsteht, sondern JVx enthält alles was nötig ist um <strong>Business Anwendungen in einer 3 Schichten Architektur</strong> zu erstellen. Und dazu gehört nun mal <strong>eine effiziente Client/Server Kommunikation</strong>.</p>
<p>Es gibt natürlich Frameworks für die Kommunikation zwischen Client und Server, wie z.B. <a href="http://www.jboss.org/netty.html">Netty</a>. Doch unabhängig von den vielen Möglichkeiten des Frameworks ist die Bibliothek mit knapp 700KB ein großer Brocken (<em>nur für die Kommunikation!</em>). Weiters ist ein Kommunikationsframework alleine noch nicht ausreichend, denn die Objekte müssen zwischen Client und Server auch noch serialisiert bzw. deserialisiert werden.</p>
<p>Für die Serialisierung könnten wiederum vorhandene Frameworks wie z.B.: <a href="http://code.google.com/p/protobuf/">Google Protocol Buffers</a> oder <a href="http://hessian.caucho.com/">Hessian</a> eingesetzt werden. Doch die <strong>Google Protocol Buffers</strong> erfordern die Definition der zu übertragenden Objekte und ist daher für ein generisches Framework wie JVx nicht geeignet. Und Hessian unterstützt leider nicht alle Objekttypen und ist nicht out-of-the-box mit z.B. Android einsatzfähig.</p>
<p>Der in JVx integrierte Kommunikationsmechanismus erlaubt ohne weiteres die Integration von den bisher genannten Frameworks, da weder das Transportprotokoll noch die Serialisierung ausschlaggebend sind für eine Business Anwendung. Außerdem definiert JVx mit Interfaces, was die Kommunikation bieten muss. Üblicherweise ist eine eigene Implementierung durch die Ableitung von <em>AbstractSerializedConnection</em> bzw. die Implementierung von <em>ISerializer</em> rasch durchgeführt.</p>
<p>Mit dem <em>UniversalSerializer</em> wird außerdem eine Lösung bereitgestellt mit der Objekte, zwischen unterschiedlichsten Technologien, ausgetauscht werden können. Und das ohne sich Gedanken über die Konfiguration zu machen bzw. Mappings zu erstellen. Der Einsatz des <em>UniversalSerializer</em> in Verbindung mit <a href="http://www.jboss.org/netty.html">Netty</a> ist ebenfalls ohne Probleme möglich, nur um hier auf den flexiblen Einsatz der JVx Kommunikation hinzuweisen!</p>
<p>Die Kommunikation wird im Moment mit <strong>Java und .NET</strong> erfolgreich eingesetzt. Weiters funktioniert die Kommunikation auch ohne jegliche Anpassung mit <a href="http://www.android.com/">Android</a>. </p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2010/05/10/jvx-kommunikation-im-vergleich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein erster Blick auf unseren Silverlight Showcase</title>
		<link>https://blog.sibvisions.com/2010/04/30/ein-erster-blick-auf-unseren-silverlight-showcase/</link>
		<comments>https://blog.sibvisions.com/2010/04/30/ein-erster-blick-auf-unseren-silverlight-showcase/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 11:48:54 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[JVx]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=166</guid>
		<description><![CDATA[Unsere .NET bzw. MONO Anbindungen an JVx befindet sich bereits auf der Zielgeraden. Und frei nach dem Motto "ein Bild sagt mehr als tausend Worte" präsentieren wir Ihnen die ersten Screenshots von unserem Silverlight Showcase.
Die Anwendung befindet sich zwar noch in der Entwicklung, sowohl am Design als auch Funktional wird sich noch das eine oder [...]]]></description>
			<content:encoded><![CDATA[<p>Unsere <strong>.NET</strong> bzw. <strong>MONO</strong> Anbindungen an <strong>JVx</strong> befindet sich bereits auf der Zielgeraden. Und frei nach dem Motto <strong>"ein Bild sagt mehr als tausend Worte"</strong> präsentieren wir Ihnen die ersten Screenshots von unserem <strong>Silverlight Showcase</strong>.</p>
<p>Die Anwendung befindet sich zwar noch in der Entwicklung, sowohl am Design als auch Funktional wird sich noch das eine oder andere Detail ändern, aber sehen Sie selbst:</p>
<table style="margin-top:10px">
<tr>
<td><div id="attachment_168" class="wp-caption alignleft nomargin" style="width: 310px"><a href="http://blog.sibvisions.com/wp-content/uploads/2010/04/login.jpg" rel="lightbox[166]"><img src="http://blog.sibvisions.com/wp-content/uploads/2010/04/login-300x253.jpg" alt="Silverlight Login" width="300" height="253" class="size-medium wp-image-168" /></a><p class="wp-caption-text">Silverlight Login</p></div></td>
<td style="width: 15px"></td>
<td><strong>Die Anmeldung</strong>
<p>Die Anmeldung an die Applikation erfolgt durch die Eingabe von Benutzername und Passwort. Selbstverständlich können die gleichen Benutzerdaten wie auch in der Java Applikation verwendet werden.
<p>Der Silverlight Client unterscheidet sich zwar optisch vom Java Client, doch die <strong>Business Logik</strong> wird ohne Souce Code oder Konfigurations- Anpassungen <strong>wiederverwendet</strong>.</p>
<p>Ein wesentliches Ziel bei der Entwicklung ist, die Vorteile der jeweiligen Technologie ideal zu nutzen!</td>
</tr>
<tr>
<td colspan="3" style="height: 30px">&nbsp;</td>
</tr>
</table>
<table>
<tr>
<td><strong>Die Kontaktverwaltung</strong>
<p>Das Foto kann bequem per <strong>Drag and Dro</strong>p vom Desktop in die Anwendung gezogen werden. Und weiters ermöglichen wir die Adress Auswahl über das <strong>Map Control</strong> (siehe nachfolgenden Screenshot).
<p>Ein nicht gleich auf den ersten Blick ersichtlicher Knüller ist das Data Binding. Die <strong>Daten</strong> werden nämlich nicht via Webservice oder JSON geladen, sondern <strong>direkt von der JVx Business Logik</strong>. Und für sämtliche CRUD Anweisungen werden die selben Server Objekte verwendet wie auch für den Java Client.</td>
<td style="width: 15px"></td>
<td><div id="attachment_169" class="wp-caption alignleft nomargin" style="width: 310px"><a href="http://blog.sibvisions.com/wp-content/uploads/2010/04/screen.jpg" rel="lightbox[166]"><img src="http://blog.sibvisions.com/wp-content/uploads/2010/04/screen-300x253.jpg" alt="Silverlight Contacts" width="300" height="253" class="size-medium wp-image-169" /></a><p class="wp-caption-text">Silverlight Contacts</p></div></td>
</tr>
<tr>
<td colspan="3" style="height: 30px">&nbsp;</td>
</tr>
</table>
<table>
<tr>
<td><div id="attachment_170" class="wp-caption alignleft nomargin" style="width: 310px"><a href="http://blog.sibvisions.com/wp-content/uploads/2010/04/map.jpg" rel="lightbox[166]"><img src="http://blog.sibvisions.com/wp-content/uploads/2010/04/map-300x253.jpg" alt="Silverlight Map" width="300" height="253" class="size-medium wp-image-170" /></a><p class="wp-caption-text">Silverlight Map</p></div></td>
<td style="width: 15px"></td>
<td><strong>Die Adressauswahl</strong>
<p>Eine Adresse einzugeben ist nur halb so viel Spaß wie die Adresse auf einer Karte zu suchen. Aus diesem Grunde haben wir das komfortable <strong>Map Control</strong> integriert.
<p>Da macht das ganze doch gleich viel mehr Spaß!</td>
</tr>
<tr>
<td colspan="3" style="height: 15px">&nbsp;</td>
</tr>
</table>
<p>Den <strong>Silverlight Showcase</strong> werden wir demnächst veröffentlichen. Bleiben Sie also am laufenden!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2010/04/30/ein-erster-blick-auf-unseren-silverlight-showcase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET und MONO kommunizieren mit JVx</title>
		<link>https://blog.sibvisions.com/2010/03/22/c-und-mono-kommunizerien-mit-jvx/</link>
		<comments>https://blog.sibvisions.com/2010/03/22/c-und-mono-kommunizerien-mit-jvx/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 18:57:50 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVx]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=52</guid>
		<description><![CDATA[Schon seit wir mit der Definition des ISerializer Interface begonnen haben, war der Wunsch nach Technologie unabhängiger Kommunikation vorhanden. Das Thema hat uns immer wieder gestreift, doch die Notwendigkeit einer Java unabhängigen Implementierung war nicht gegeben.
Vor einigen Wochen war es dann so weit. Wir entschieden uns für die Portierung der JVx Objekt Serialisierung nach C#. [...]]]></description>
			<content:encoded><![CDATA[<p>Schon seit wir mit der Definition des ISerializer Interface begonnen haben, war der Wunsch nach Technologie unabhängiger Kommunikation vorhanden. Das Thema hat uns immer wieder gestreift, doch die Notwendigkeit einer Java unabhängigen Implementierung war nicht gegeben.</p>
<p>Vor einigen Wochen war es dann so weit. Wir entschieden uns für die Portierung der JVx Objekt Serialisierung nach C#. Natürlich gab es einige Herausforderungen und Probleme, die jedoch keinen Einfluß auf die Funktionswiese hatten. Und im Unterschied zu <a href="http://de.wikipedia.org/wiki/CORBA">CORBA</a>, <a href="http://hessian.caucho.com/">Hessian</a> &amp; Co unterstützen wir ein sehr breites Spektrum an Objekten.</p>
<p>Nun ist endlich so weit und wir können eine funktionierende Kommunikation zwischen JVx und C# vermelden. Sämtliche Objekte werden mit dem UniversalSerializer ausgetauscht. Der C# Serializer arbeitet wie sein Java pendant und ist ebenso mächtig. Die Serialisierung von Objekten unterliegt allerdings den gleichen Einschränkungen wie es auch in Java der Fall ist, allerdings verzichten wir bei unserer Lösung auf das im Normalfall verpflichtende ISerializable Interface.</p>
<p>Um dem ganzen den notwendigen Schliff zu verpassen haben wir auch gleich die Kommunikationsklassen AbstractSerializedConnection, Master- und SubConnection sowie alle abhänigen Klassen portiert. Dadurch ist der Zugriff auf die JVx Business Logik zu 100% gegeben. Wir können nun die komplette Business Logik und alle Server seitigen Actions, auch mit C#, einsetzen und zwar ohne Mehraufwand.</p>
<p>Ein kleines <strong>C# Beispiel</strong> an dieser Stelle muss natürlich sein:</p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw4">void</span> testMetaData<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; HttpConnection conDemo <span class="sy0">=</span> <span class="kw1">new</span> HttpConnection<span class="br0">&#40;</span><span class="kw1">new</span> UniversalSerializer<span class="br0">&#40;</span><span class="br0">&#41;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;http://localhost/jvx/services/Server&quot;</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; MasterConnection appconDemo <span class="sy0">=</span> <span class="kw1">new</span> MasterConnection<span class="br0">&#40;</span>conDemo<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>
&nbsp; &nbsp; appconDemo.<span class="me1">ApplicationName</span> <span class="sy0">=</span> <span class="st0">&quot;demo&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; appconDemo.<span class="me1">UserName</span> <span class="sy0">=</span> <span class="st0">&quot;demo&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; appconDemo.<span class="me1">Password</span> <span class="sy0">=</span> <span class="st0">&quot;demo&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; appconDemo.<span class="me1">open</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; SubConnection sub <span class="sy0">=</span> appconDemo.<span class="me1">createSubConnection</span><span class="br0">&#40;</span><span class="st0">&quot;demo.Company&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; sub.<span class="me1">open</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; MetaData md <span class="sy0">=</span> <span class="br0">&#40;</span>MetaData<span class="br0">&#41;</span>sub.<span class="me1">call</span><span class="br0">&#40;</span><span class="st0">&quot;company&quot;</span>, <span class="st0">&quot;getMetaData&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Im nächsten Schritt erstellen wir einen Showcase basierend auf Silverlight 4. Demnächst hier mehr dazu.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2010/03/22/c-und-mono-kommunizerien-mit-jvx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
