MDrivenWiki
Log in

MonoAndroid

From MDrivenWiki

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

Open up the sample that comes with ECO:

MonoAndroid - 1.png

Open up the sln and ignore/ok this:

MonoAndroid - 2.png

You will see this:

MonoAndroid - 3.png

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

Delete the missing projects. And add new references to MonoAndroidApplication1

MonoAndroid - 4.png

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

MonoAndroid - 5.png

Define what to start:

MonoAndroid - 6.png
MonoAndroid - 7.png

Hit F5 – This windows shows:

MonoAndroid - 8.png

Start emulator Image: Pick MonoAndroid_API_10

When the Emulator runs:

MonoAndroid - 9.png

you choose it:

MonoAndroid - 10.png

And you get this window, the Root directory of our PersistenceServer

MonoAndroid - 11.png

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

MonoAndroid - 12.png

This is the Phone App

MonoAndroid - 13.png

Press the first button :

MonoAndroid - 14.png

The text of the button was updated. The code on the phone:

void button_Click(object sender, EventArgs e)
{
    EcoServiceHelper.GetPersistenceService(_ecospace).Refresh(true);
    Button button = FindViewById<Button>(Resource.Id.MyButton);
    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;

    button.Text = "db updated, Now C1 Total: " + noOfC1.ToString() + ", Total of C1 that has C2's " + noOfC1ThatHasC2s.ToString() + " " + extra;        
    
}

The code makes use of some ECO services.

The other buttons Code:

void button2_Click(object sender, EventArgs e)
{
    Button button2 = FindViewById<Button>(Resource.Id.MyButton2);
    
    Class1 c1 = new Class1(_ecospace);
    c1.Attribute1 = "Created on android by mono " + DateTime.Now.ToLongTimeString();
    button2.Text = "c1 created";

    _ecospace.UpdateDatabase();
}

We switch back to the WCF app – hit Refresh:

MonoAndroid - 15.png

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

If things does not work consult the WCF trouble-shoot

That is all I am going to show you about the Android Phone right now. Disappointed? Don’t be – we did a lot – 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.