diff options
author | Mark Spruiell <mes@zeroc.com> | 2011-05-10 14:42:55 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2011-05-10 14:42:55 -0700 |
commit | 6bde970f13850ff180155133a542ac027b57444c (patch) | |
tree | abb1b6a9113c1f5c6691d1cc0abe898e76deb672 | |
parent | VS Add-In and Demo updates. (diff) | |
download | ice-6bde970f13850ff180155133a542ac027b57444c.tar.bz2 ice-6bde970f13850ff180155133a542ac027b57444c.tar.xz ice-6bde970f13850ff180155133a542ac027b57444c.zip |
bug 5090 - add .NET CF demo
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | cs/demo/Ice/README | 8 | ||||
-rw-r--r-- | cs/demo/Ice/compact/Hello.ice | 24 | ||||
-rw-r--r-- | cs/demo/Ice/compact/Ice.compact.client.csproj | 98 | ||||
-rw-r--r-- | cs/demo/Ice/compact/MainForm.Designer.cs | 105 | ||||
-rw-r--r-- | cs/demo/Ice/compact/MainForm.cs | 124 | ||||
-rw-r--r-- | cs/demo/Ice/compact/MainForm.resx | 129 | ||||
-rw-r--r-- | cs/demo/Ice/compact/Program.cs | 19 | ||||
-rw-r--r-- | cs/demo/Ice/compact/README | 63 | ||||
-rwxr-xr-x | cs/demo/democf.sln | 22 |
10 files changed, 593 insertions, 2 deletions
@@ -102,6 +102,9 @@ C# Changes - Added support for the .NET Compact Framework. +- Added demo/Ice/compact, which is a simple graphical client that uses + Ice for .NET Compact Framework. + - Fixed bugs in the generated code that caused naming conflicts when using a Slice module named 'System'. diff --git a/cs/demo/Ice/README b/cs/demo/Ice/README index cca917377fb..49288b84d70 100644 --- a/cs/demo/Ice/README +++ b/cs/demo/Ice/README @@ -19,6 +19,10 @@ Demos in this directory: call back into an object provided by the client as part of that invocation. +- compact + + A simple graphical client that uses Ice for .NET Compact Framework. + - hello This demo illustrates how to invoke ordinary (twoway) operations, as @@ -75,5 +79,5 @@ Demos in this directory: - wpf - A Windows Presentation Foundation (WPF) application that shows - how to use Asynchronous Method Invocation (AMI) in a graphical client. + A Windows Presentation Foundation (WPF) application that shows how + to use Asynchronous Method Invocation (AMI) in a graphical client. diff --git a/cs/demo/Ice/compact/Hello.ice b/cs/demo/Ice/compact/Hello.ice new file mode 100644 index 00000000000..05ddfcd841e --- /dev/null +++ b/cs/demo/Ice/compact/Hello.ice @@ -0,0 +1,24 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef HELLO_ICE +#define HELLO_ICE + +module Demo +{ + +interface Hello +{ + idempotent void sayHello(int delay); + void shutdown(); +}; + +}; + +#endif diff --git a/cs/demo/Ice/compact/Ice.compact.client.csproj b/cs/demo/Ice/compact/Ice.compact.client.csproj new file mode 100644 index 00000000000..3472ee67e48 --- /dev/null +++ b/cs/demo/Ice/compact/Ice.compact.client.csproj @@ -0,0 +1,98 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95E6B539-E515-4BD4-BDB0-35D7C49C897D}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>client</RootNamespace>
+ <AssemblyName>client</AssemblyName>
+ <ProjectTypeGuids>{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <PlatformFamilyName>PocketPC</PlatformFamilyName>
+ <PlatformID>4118C335-430C-497f-BE48-11C3316B135E</PlatformID>
+ <OSVersion>5.1</OSVersion>
+ <DeployDirSuffix>client</DeployDirSuffix>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <NativePlatformName>Windows Mobile 5.0 Pocket PC SDK</NativePlatformName>
+ <FormFactorID>
+ </FormFactorID>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>.\</OutputPath>
+ <DefineConstants>DEBUG;TRACE;$(PlatformFamilyName)</DefineConstants>
+ <NoStdLib>true</NoStdLib>
+ <NoConfig>true</NoConfig>
+ <ErrorReport>prompt</ErrorReport>
+ <FileAlignment>512</FileAlignment>
+ <WarningLevel>4</WarningLevel>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>.\</OutputPath>
+ <DefineConstants>TRACE;$(PlatformFamilyName)</DefineConstants>
+ <NoStdLib>true</NoStdLib>
+ <NoConfig>true</NoConfig>
+ <ErrorReport>prompt</ErrorReport>
+ <FileAlignment>512</FileAlignment>
+ <WarningLevel>4</WarningLevel>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Ice, Version=3.4.1.0, Culture=neutral, PublicKeyToken=1f998c50fec78381, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\ZeroC\Ice-3.4.1\bin\cf\Ice.dll</HintPath>
+ </Reference>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Hello.cs" />
+ <Compile Include="MainForm.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="MainForm.Designer.cs">
+ <DependentUpon>MainForm.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Program.cs" />
+ <EmbeddedResource Include="MainForm.resx">
+ <DependentUpon>MainForm.cs</DependentUpon>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Hello.ice" />
+ <None Include="README" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" />
+ <ProjectExtensions>
+ <VisualStudio>
+ <FlavorProperties GUID="{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}">
+ <HostingProcess disable="1" />
+ </FlavorProperties>
+ <UserProperties ZerocIce_Enabled="True" />
+ </VisualStudio>
+ </ProjectExtensions>
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file diff --git a/cs/demo/Ice/compact/MainForm.Designer.cs b/cs/demo/Ice/compact/MainForm.Designer.cs new file mode 100644 index 00000000000..e8e802659e5 --- /dev/null +++ b/cs/demo/Ice/compact/MainForm.Designer.cs @@ -0,0 +1,105 @@ +namespace client
+{
+ partial class MainForm
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+ private System.Windows.Forms.MainMenu mainMenu1;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.mainMenu1 = new System.Windows.Forms.MainMenu();
+ this.btnHello = new System.Windows.Forms.Button();
+ this.btnShutdown = new System.Windows.Forms.Button();
+ this.lblStatus = new System.Windows.Forms.Label();
+ this.lblHost = new System.Windows.Forms.Label();
+ this.hostname = new System.Windows.Forms.TextBox();
+ this.SuspendLayout();
+ //
+ // btnHello
+ //
+ this.btnHello.Location = new System.Drawing.Point(14, 79);
+ this.btnHello.Name = "btnHello";
+ this.btnHello.Size = new System.Drawing.Size(212, 20);
+ this.btnHello.TabIndex = 0;
+ this.btnHello.Text = "Say Hello";
+ this.btnHello.Click += new System.EventHandler(this.btnHello_Click);
+ //
+ // btnShutdown
+ //
+ this.btnShutdown.Location = new System.Drawing.Point(14, 109);
+ this.btnShutdown.Name = "btnShutdown";
+ this.btnShutdown.Size = new System.Drawing.Size(212, 20);
+ this.btnShutdown.TabIndex = 1;
+ this.btnShutdown.Text = "Shutdown server";
+ this.btnShutdown.Click += new System.EventHandler(this.btnShutdown_Click);
+ //
+ // lblStatus
+ //
+ this.lblStatus.Location = new System.Drawing.Point(14, 139);
+ this.lblStatus.Name = "lblStatus";
+ this.lblStatus.Size = new System.Drawing.Size(212, 40);
+ //
+ // lblHost
+ //
+ this.lblHost.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
+ this.lblHost.Location = new System.Drawing.Point(14, 18);
+ this.lblHost.Name = "lblHost";
+ this.lblHost.Size = new System.Drawing.Size(212, 20);
+ this.lblHost.Text = "Hostname:";
+ //
+ // hostname
+ //
+ this.hostname.Location = new System.Drawing.Point(14, 48);
+ this.hostname.Name = "hostname";
+ this.hostname.Size = new System.Drawing.Size(212, 21);
+ this.hostname.TabIndex = 3;
+ //
+ // MainForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.AutoScroll = true;
+ this.ClientSize = new System.Drawing.Size(240, 294);
+ this.Controls.Add(this.hostname);
+ this.Controls.Add(this.lblHost);
+ this.Controls.Add(this.lblStatus);
+ this.Controls.Add(this.btnShutdown);
+ this.Controls.Add(this.btnHello);
+ this.Name = "MainForm";
+ this.Text = "Ice Hello Demo";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button btnHello;
+ private System.Windows.Forms.Button btnShutdown;
+ private System.Windows.Forms.Label lblStatus;
+ private System.Windows.Forms.Label lblHost;
+ private System.Windows.Forms.TextBox hostname;
+ }
+}
+
diff --git a/cs/demo/Ice/compact/MainForm.cs b/cs/demo/Ice/compact/MainForm.cs new file mode 100644 index 00000000000..e6dee45f7a8 --- /dev/null +++ b/cs/demo/Ice/compact/MainForm.cs @@ -0,0 +1,124 @@ +// **********************************************************************
+//
+// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+using System;
+using System.Linq;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+
+namespace client
+{
+ public partial class MainForm : Form
+ {
+ public MainForm()
+ {
+ InitializeComponent();
+ try
+ {
+ Ice.InitializationData initData = new Ice.InitializationData();
+ initData.properties = Ice.Util.createProperties();
+ initData.dispatcher = delegate(Ice.VoidAction action, Ice.Connection connection)
+ {
+ this.BeginInvoke(action);
+ };
+ _communicator = Ice.Util.initialize(initData);
+ }
+ catch(Ice.LocalException ex)
+ {
+ lblStatus.Text = "Exception: " + ex.ice_name();
+ }
+ }
+
+ protected override void OnClosed(EventArgs e)
+ {
+ base.OnClosed(e);
+ if(_communicator == null)
+ {
+ return;
+ }
+ _communicator.destroy();
+ _communicator = null;
+ }
+
+ class SayHelloCB
+ {
+ public SayHelloCB(MainForm mainForm)
+ {
+ _mainForm = mainForm;
+ }
+
+ public void response()
+ {
+ lock(this)
+ {
+ _response = true;
+ _mainForm.lblStatus.Text = "Ready";
+ }
+ }
+
+ public void sent(bool sentSynchronously)
+ {
+ lock(this)
+ {
+ if(_response)
+ {
+ return;
+ }
+ _mainForm.lblStatus.Text = "Waiting for response";
+ }
+ }
+
+ public void exception(Ice.Exception ex)
+ {
+ lock(this)
+ {
+ _response = true;
+ _mainForm.lblStatus.Text = "Exception: " + ex.ice_name();
+ }
+ }
+
+ private MainForm _mainForm;
+ private bool _response = false;
+ }
+
+ private Demo.HelloPrx createProxy()
+ {
+ string proxyString = "hello:tcp -p 10000";
+ if (!String.IsNullOrEmpty(hostname.Text))
+ {
+ proxyString += " -h " + hostname.Text;
+ }
+
+ Ice.ObjectPrx proxy = _communicator.stringToProxy(proxyString);
+ return Demo.HelloPrxHelper.uncheckedCast(proxy);
+ }
+
+ private void btnHello_Click(object sender, EventArgs e)
+ {
+ Demo.HelloPrx hello = createProxy();
+ lblStatus.Text = "Sending request";
+ SayHelloCB cb = new SayHelloCB(this);
+ hello.begin_sayHello(0).whenCompleted(cb.response, cb.exception).whenSent(cb.sent);
+ }
+
+ private void btnShutdown_Click(object sender, EventArgs e)
+ {
+ Demo.HelloPrx hello = createProxy();
+ lblStatus.Text = "Shutting down server";
+ SayHelloCB cb = new SayHelloCB(this);
+ hello.begin_shutdown().whenCompleted(cb.response, cb.exception).whenSent(cb.sent);
+ }
+
+ private Ice.Communicator _communicator;
+ }
+}
diff --git a/cs/demo/Ice/compact/MainForm.resx b/cs/demo/Ice/compact/MainForm.resx new file mode 100644 index 00000000000..c9d1ac5082d --- /dev/null +++ b/cs/demo/Ice/compact/MainForm.resx @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <metadata name="mainMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+ <metadata name="$this.FormFactorShadowProperty" xml:space="preserve">
+ <value>Pocket_PC</value>
+ </metadata>
+ <metadata name="$this.Skin" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+</root>
\ No newline at end of file diff --git a/cs/demo/Ice/compact/Program.cs b/cs/demo/Ice/compact/Program.cs new file mode 100644 index 00000000000..ddcf47cb988 --- /dev/null +++ b/cs/demo/Ice/compact/Program.cs @@ -0,0 +1,19 @@ +using System;
+using System.Linq;
+using System.Collections.Generic;
+using System.Windows.Forms;
+
+namespace client
+{
+ static class Program
+ {
+ /// <summary>
+ /// The main entry point for the application.
+ /// </summary>
+ [MTAThread]
+ static void Main()
+ {
+ Application.Run(new MainForm());
+ }
+ }
+}
\ No newline at end of file diff --git a/cs/demo/Ice/compact/README b/cs/demo/Ice/compact/README new file mode 100644 index 00000000000..af40ad420dc --- /dev/null +++ b/cs/demo/Ice/compact/README @@ -0,0 +1,63 @@ +This demo shows how to write a simple C# client application using Ice
+for .NET Compact Framework (CF).
+
+This demo requires a hello server. You can use the C# server located
+in ..\hello, or you can use a server from any other language mapping.
+
+You must use Visual Studio 2008 to build this client (Visual Studio
+2010 does not support Compact Framework development). Follow these
+instructions to build and run the client:
+
+1) Open the project in Visual Studio 2008. This is a Smart Device
+ project and therefore Visual Studio will compile it against the
+ Compact Framework libraries. Furthermore, the Ice Visual Studio
+ Add-in detects a Smart Device project and automatically
+ configures the project to compile against the Ice for .NET CF
+ DLL in <Ice installation directory>\bin\cf\Ice.dll.
+
+2) Build the client by right-clicking on the project and choosing
+ "Build".
+
+3) Start a device emulator. Select Tools -> Device Emulator Manager,
+ highlight "USA Windows Mobile 5.0 Pocket PC R2 Emulator", and
+ select Actions -> Connect.
+
+4) In the emulator window, select File -> Configure, open the Network
+ tab, and check "Enable NE2000 PCMCIA network adapter". Open the
+ drop-down menu and select the appropriate network adapter, then
+ press OK.
+
+ If you get an error dialog that mentions Virtual PC 2007, you will
+ need to install this product to enable network access for the
+ emulator. You can download Virtual PC 2007 at the link below:
+
+ http://www.microsoft.com/downloads/en/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6
+
+ Close the emulator, install Virtual PC 2007, and restart the
+ emulator.
+
+5) After successfully enabling the network adapter, you may need to
+ activate the network connection. Click on the symbol resembling an
+ antenna in the device's status bar and choose Connect to start the
+ connection. If you wish, start Internet Explorer and verify that
+ you can successfully access the Internet.
+
+6) In Visual Studio, right-click on the project, choose Deploy, select
+ the "USA Windows Mobile 5.0 Pocket PC R2 Emulator" device, and
+ click Deploy. This action causes Visual Studio to install the .NET
+ CF run time, the client executable, and the Ice for .NET CF run
+ time in the emulator.
+
+7) In a command window, start the hello server.
+
+8) In the emulator, choose Start -> Programs and select File Explorer.
+ Click on My Documents and choose My Device. Select Program Files,
+ then select "client".
+
+9) Finally, select "client" to start the program. In the Hostname
+ field, enter the IP address or host name of the machine on which
+ the hello server is running. Click the Say Hello button to send a
+ request to the server.
+
+ Note that the initial request takes a little longer to complete
+ while the connection is being established.
diff --git a/cs/demo/democf.sln b/cs/demo/democf.sln new file mode 100755 index 00000000000..d3aaa085709 --- /dev/null +++ b/cs/demo/democf.sln @@ -0,0 +1,22 @@ +
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ice.compact.client", "Ice\compact\Ice.compact.client.csproj", "{95E6B539-E515-4BD4-BDB0-35D7C49C897D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {95E6B539-E515-4BD4-BDB0-35D7C49C897D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {95E6B539-E515-4BD4-BDB0-35D7C49C897D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {95E6B539-E515-4BD4-BDB0-35D7C49C897D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {95E6B539-E515-4BD4-BDB0-35D7C49C897D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {95E6B539-E515-4BD4-BDB0-35D7C49C897D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {95E6B539-E515-4BD4-BDB0-35D7C49C897D}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
|