0

The DevExpress XAF does much basis work for you, it creates a database based on your business objects, and dynamically generates a UI based on these, with basic functions like add, delete, sort etc. already present.

This leaves me wondering how to go about properly designing and modelling an application built on this framework. I could only model my business objects, or I could identify functions provided by the framework and include them in a details model down to sequence diagram level, but so much is being done by 'external' calls that I feel I would be wasting valuable time.

I am hoping someone with experience modelling application designs for this specific framework can give me some advice on what areas I should focus on.

Dan Dumitru
  • 5,348
  • 1
  • 33
  • 43
ProfK
  • 49,207
  • 121
  • 399
  • 775

4 Answers4

3

As for DC, as Leon mentioned above, it has many benefits compared to the regular persistent classes. If all goes according to plan, we will release the Domain Components technology in the near future, and resolve all the remaining issues with it. If you feel that it is hard to learn, please let us know the most difficult parts you experienced. We will be glad to review them and possibly make the things easier for you and other users.

P.S. I apologize for the delay in responding; I was on sick leave. You will receive more timely responses if you post your questions in the DevExpress Support Center.

Dennis Garavsky
  • 538
  • 3
  • 18
2

I'm using XAF for almost two years now and I'm very happy with it. Developing an app is very quick, nice architecture, both Win and Web the same time and great UI. As with all frameworks, it has a learning curve, but if your already familiar with DevExpress controls that it's not very hard.

As Dennis mentioned, most behaviour can be overriden or extended. Regarding your modelling question, if think an important choice you have to make is whether or not you will use their Domain Components technology. Basically they have 2 ways: the old fashion way by inheriting from the XAF or XPO base classes or by using DC. DC allows a clean separation in modules and allows multiple inheritance. They can do that by generating classes runtime, but it still has some issues.

And the framework comes with a Business Class Library, a set of common classes which may be useful.

When I get stuck or cannot find the answer myself, I always use their fantastic Support Center. Most issues I ran into were already asked and answer on that site.

lvmeijer
  • 1,022
  • 13
  • 14
  • Yes, the DC stuff looks interesting, but initially it looked like a more complex adoption for a total noob like me, so I've gone with simply inheriting XPCustomObject for now. – ProfK Feb 18 '11 at 07:39
2

@ProfK: Am I correct that you are looking for something like visual designer for your business models? If so, then I am afraid that XPO (XAF) does not currently provide such a functionality. However, you can use free third-party tools for modeling, such as Liekhus ADO.NET Entity Data Model XAF Extensions I hope you find this information helpful.

Dennis Garavsky
  • 538
  • 3
  • 18
  • that EF extension looks great, thanks, but that's not what I'm looking for. I was trying to find out *what* I must model/design before starting a XAF project, so I can work in a directed way and not just hunt and peck amongst the XAF model designers, – ProfK Mar 01 '11 at 12:03
  • @ProfK: Mainly, you must model/design the structure of your business objects, Controllers/Actions. These two are core parts that are used in every XAF application. Depending on exact business requirements you can also model your custom Editors and application model extensions, etc. You can also model additional framework levels I described in my first reply. Please let me know if this makes sense. – Dennis Garavsky Mar 02 '11 at 10:16
1

Briefly, each XAF application consists of Modules. There can be standard (system) and extra (user-defined) modules. Each Module can contain business objects, so-called Application Model customizations, Editors, Controllers, and Actions to provide additional business logic, customize UI and provide interaction between framework parts. You can model and customize your application on each level listed above, including but not limited by the underlying framework's metadata and data store ones. You can find more information about the framework's architecture here: http://documentation.devexpress.com/#Xaf/CustomDocument2559

I should emphasize that it is possible to override behavior of almost every part of the framework. For instance, create your own editors for detail and list forms, override certain standard controllers, etc.

If you experience any further difficulties with our framework, feel free to contact us through our Support Center. We will be always glad to not only answer you questions, but advice a certain technical or design solution, provide some example code, etc.

Dennis Garavsky
  • 538
  • 3
  • 18
  • Thanks Dennis, but I mostly understand the architecture, but I'm interested in, when I do pre-code design for a XAF app, how I can model the work I'm supposed to do vs. what is already done. – ProfK Feb 12 '11 at 15:03