Question

I am beginning a new project, and am unsure which development platform best suits the UI. It's a collaborative enterprise solution that could be developed as an intranet app (or, conceivably, a desktop app).

The UI will consist of rows and columns, which users must be able to add/delete on the fly. They will edit the row/column labels as text fields.

The resulting table or "grid" must support user-editable hierarchies for the rows -- as with a TreeView::LabelEdit control property, I believe -- and sortable columns. The grid may expand to as much as 2,000 rows and 30 columns (though will be much smaller for all but power users/groups, maybe 20 x 5). The "cells" of the grid will be drop-down menus and need not be user-editable. Finally, the user-created grid will drive intensive statistical calculations.

So in summary, my requirements are for a collaborative grid that is (1) dynamically sized (add/delete rows and columns), with (2) support for TreeView-type hierarchies for the rows, (3) editable row/column labels, (4) sortable columns, (5) drop-down menus for the "cells," and (6) support for advanced statistical libraries or resources. All in the context of enterprise collaboration.

I'd prefer to build this as a desktop app in Visual C++ Professional because I want to learn VS C++ and am willing to put the time in. I have projects coming up that will require that language/IDE, so I truly need to cut my teeth on it.

My questions are:

1) Can I accomplish the above effectively in VS C++, even if it's not the optimal solution?

2) If this can't be done effectively in C++ (despite my preference :), what other approaches/platforms should I be considering?

I'm starting with a clean slate here, and just want to focus my energy in the best direction.

Thank you.

Was it helpful?

Solution

I created a working prototype in Excel. It was a valuable exercise, but Excel does not support the collaboration requirement effectively (at least several dozen users).

My tentative answer is to use Flex controls in MediaWiki. E.g., controls such as a DataGrid or Advanced DataGrid** appear to address the UI requirements, and the wiki platform would save me from having to build (or import) support for collaboration in C++. (Alternatively, I could develop an ASP.NET Web application that supports collaboration, or maybe embed ASP.NET controls in MediaWiki? I have no feel for the strengths/pitfalls of ASP for this.)

I'll speak with a freelance TWiki guru tomorrow, but I've pretty much ruled it out because the free/community version doesn't support some of the basic features that MediaWiki offers. Finally, I'm trying to determine if HTML5 offers suitable UI controls.

Any feedback or suggestions would be appreciated, my head is spinning weighing the pro's and con's of these and other alternatives (but then, it's usually spinning anyway). Thank you.


** Interactive Flex examples for editing/sorting grids dynamically (code included):

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top