Larger scale app development using CF

G

Guest

Hello,

From what I've seen most people using the CF are developing programs with
only a few screens at most (I know the number of screens does not equate
directly with how large or complex an application really is).

Has anyone had any experience developing Pocket PC applications with the CF
that had something like 100 screens/forms? If so, are there any tips or
pearls of wisdom for working on such a project? My biggest concern is over
form management and how it would impact the device memory. It's obvious that
instantiating 100 forms and all the controls on those screens would use a
rather large amount of memory. In my searching I came across several
variations of the form stack example and I have looked over them. I have also
looked over the Field Service demo app available at
http://msdn.microsoft.com/library/d...en-us/dnppcgen/html/fieldservice_pocketpc.asp

The field service demo groups screens together as a set of panels within a
few forms and toggles between which panels are visible at any given time on
the form.

While no one example app addresses the issue of working with dozens of
screens it seems that a hybrid of the various approaches would offer several
benefits. Use the stack approach (possibly in conjunction with the
Form.ShowDialog method) to enforce that screens be shown and used in the
required order while using multiple panels in one form to organize sets of
controls into "pages" and keep the number of entries in the devices list of
"Running Applications" to a minimum.

If anyone has any ideas or feedback they are willing to share on this matter
it would be greatly appreciated.

Thank you kindly,
Jarod Lavay
 
M

Mark Arteaga

I'm working on a project that has ~80 forms that's currently in production. We don't load all the forms at once but only when needed and users are happy. We do preload some of the more frequently used forms. You will have to make some sort of "Form Manager" to manage loading, showing and hiding forms and possibly unloading forms. If you use 100 or so panels in one form you will most likely run into performance problems.

Good luck with the project!
 
G

Guest

I went live a couple months ago with a 50 form application to track and
manage our companies physical assets.

I combined the form cache and multiple panel wizard style from the field
service sample.

I never put more than 4 controls on a panel and never more than 3 panels on
a form. With the panel navigation buttons, this left me with about 7 visible
controls and 18 total controls on the form.

The form cache is amazing, it allows you to instantiate the really complex
forms in the background while you present 'readonly' forms to the user. The
second time you show any form, the load time is inconsequential.

The real problems in the compact framework come from populating databound
controls. If you have a lot of items, then the redraw for each item, takes
forever! For one control with 300+ items (Yes, I changed this to max out at
50) it took 2 minutes!

3rd party controls came to my rescue! The guys over at opencf have some
controls that suppress the redraw on databind until it is finished.

All in all, the user, and myself, were very happy with the end result. The
application is quick and responsive, while providing rich features.
Development took just as long if not longer than a desktop application
though.....
 
C

chris-s

Just counted them for you...97 screens. Some are one screen per form,
most are multiple screens per form where the screens are related are
the user moves between them frequently.

We started out with the 'stack' technique, but eventually found out
version of it was a bit limiting in the flow as the app grew more
complex.

As with what Mark said, just create/dispose the forms as required, tho
some frequently used ones are not disposed once created until the
process no longer requires them

Chris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top