WindowsPhone

❗🕜 Warning: this article may contain outdated information. Consider before using any descriptions/solutions, otherwise, it can still be helpful. Help: Synonyms and name changes

Open the sample that comes with ECO:

1 - WindowsPhone.png

Open up the sln and ignore/ok this:

2 - WindowsPhone.png

You will see this:

3 - WindowsPhone.png

The ReadMe explains the missing projects but since you are a developer, you may probably not read it.

Delete the missing projects and add new references to MonoAndroidApplication1.

4 - WindowsPhone.png

Choose browse and find the assemblies you downloaded in the PhoneBuilds.zip

5 - WindowsPhoone.png

Define what to start:

6 - WindowsPhoone.png
7 - WindowsPhoone.png

Hit F5 – three windows pop up (the phone emulator starts slowly).

This is a simple WPF UI that shows the information in our “database”.

10 - WindowsPhone.png

This is the Root directory of our PersistenceServer:

11 - WindowsPhone.png

This is the Phone App:

12 - WindowsPhone.png

Press the first of the X buttons at the bottom of the Phone App.

13 - WindowsPhone.png

The code on the phone: 

private void ApplicationBarIconButton_Click(object sender, EventArgs e)
        {
            EcoServiceHelper.GetPersistenceService(_ecospace).Refresh(true);
            EcoServiceHelper.GetAsyncSupportService(_ecospace).PerformTaskAsync(new Action(() => { 
                IObjectList list = EcoServiceHelper.GetOclPsService(_ecospace).Execute("Class1.allinstances->select(a|a.Class2->notempty)");
                int noOfC1ThatHasC2s = list.Count;
                string extra = "";
                if (list.Count > 0)
                    extra = list[0].GetValue<Class1>().Attribute1;

                int noOfC1 = EcoServiceHelper.GetExtentService(_ecospace).AllInstances<Class1>().Count;

                EcoServiceHelper.GetAsyncSupportService(_ecospace).DispatchTaskToMainThread(new Action(() => { 
                    // UI Stuff - everyone is happy to see that we do this in the main thread
                        ContentStack.Children.Add(new TextBlock() { Text = "db updated, Now C1 Total: " + noOfC1.ToString() + ",\r\n Total of C1 that has C2's " + noOfC1ThatHasC2s.ToString() + " " + extra });

                }));
            }));
        }

The code makes use of some ECO services.

The other button:

14 - WindowsPhone.png

Code:

private void ApplicationBarIconButton_Click_1(object sender, EventArgs e)
{

    Class1 c1 = new Class1(_ecospace);
    c1.Attribute1 = "Created on WindowsPhone " + DateTime.Now.ToLongTimeString();
    ContentStack.Children.Add(new TextBlock() { Text = "c1 created" });

    _ecospace.UpdateDatabase();

     
}

We switch back to the WCF app and hit Refresh:

15- WindowsPhone.png

You can play around with the WPF app and the Phone App to ensure that objects created in one client can be seen in the other client after a Refresh.

If things do not work, consult the WCF troubleshoot.

For now, that is all I am going to show you about the WindowsPhone. Disappointed? Don’t be – we did a lot. We saw strongly-typed, model-driven business objects on the phone with a WCF connection to the server – that persists everything and lets you find what is on the server.

This page was edited 68 days ago on 02/10/2024. What links here