The state of things for XAF 8.2

XAF Team Blog
29 April 2008

As some of you have noticed already, we have recently had to make a few changes to our plans for XAF 8.2. One important reason for this is that we are busy working on important architectural modifications/features, mainly to support our Reusable Domain Model plans that Roman has blogged about a few times. Other reasons are related to the amount of support work we're doing, as we're seeing large numbers of suggestions and questions for XAF, and of course also a fair number of bug reports. Our aim is to incorporate many "small" suggestions and requests for minor improvements, since we want to make the basis of XAF as flexible and stable as possible.

There's no way we can provide a feature out of the box for every use case out there, but it is our goal to be able to provide a solution for the vast majority of problems, even if it involves some manual work. That's why your feedback is important to us and we're spending a fair amount of time evaluating it and acting on it. Thank you very much for being involved!

Of course a lot of support work is also being done to answer customer questions, about implementation details of XAF, approaches to certain solutions, and ever so often about basic information around the parts of your applications that we can't write for you, such as how to create working domain class hierarchies, where and how to implement business logic and so on. We are aware of this need for information, which we find to be much greater for XAF than for any other Developer Express product. Our new technical evangelist Gary and I have been busy working on an outline of content we want to publish on a variety of topics. Gary will soon be blogging about his experiences with XAF, and you will see technical articles appear as well (within a few weeks is my best guess at this time). Slightly longer term plans (talking a few months here) also involve publishing more video content, which is something that many have requested. As usual we're having to prioritize, but we'll pick up on additional ideas as soon as time allows.

The architectural work we're doing is a problem for our 8.2 plans in two ways: first, it consumes time, second, it means that features or changes which depend on base class implementation had to be put on hold for 8.2. The second reason is why our workflow plans are being delayed, for example, and a few other things as well. On the other hand we're building a solid basis for the implementation of these features, and I don't think I'm promising too much if I say that 8.3 will contain more than the usual amount of new things, partly due to this "preparative" work we're doing.

Finally let me say that in spite of all this the 8.2 release is not going to be boring by any means - I wouldn't want this post to be misunderstood that way. Of course the usual disclaimer applies - these are our current plans, and since we're working towards a specific deadline for the 8.2 release, it is possible that they will have to be changed. But if things go the way we think they will, 8.2 is going to have these new features (not an exhaustive list, just a few highlights):

  • Ribbon support in Windows Forms
  • A data analysis tool based on the XtraPivotGrid and XtraCharts
  • IIS Medium Trust support
  • ASPxScheduler support
  • An abstracted data layer - use XAF without XPO - important update, see below

Keep the feedback coming!

Update to the "abstracted data layer" entry - There are two things that must be added to this. First, my language wasn't very good when I wrote the entry - it does actually sound like we're going to create a new data layer, which is not what we're doing. What I meant is that we're working on abstracting the existing data layer, in other words decoupling it from the rest of our architecture. Second, while the purpose of this work is of course that other data access technology than XPO can be used with XAF, the team tells me that we're not quite at the point where they would be comfortable with a recommendation to go ahead and start creating additional data layer implementations. Our current work will take away direct dependencies between XAF and XPO, but there are still functional areas like criteria support as well as certain assumptions about the way the data layer works, which might make it very hard to implement a compatible data layer that is not based on XPO. So up until the point where we create a new data layer ourselves and see that it is possible, we can't really call this a fully supported extensibility point. My apologies for any confusion in this regard.

26 comment(s)
Jascha
Jascha

Hi Oliver,

Thanks for the update. I'm all for reworking the base layer to create a solid platform for the future. It sounds like XPO is getting a complete overhaul - if there are any breaking changes that the team can help us prepare for it would be helpful. If you could squeeze in a few reporting improvements that would be welcome too.

"use XAF without XPO" - I am surprised that this has come 1. at all & 2. so soon - very interesting. Again - will this entail (m)any breaking changes?

Regards,

Jascha

29 April, 2008
Luc DEBRUN
Luc DEBRUN

The the flexible grids that the user can adjust to produce their report, the Pivot, the Charts, all these are what I came to DevExpress for. Thus I am thrilled to see some specific implementation coming to XAF.

If I could however mention 2 things:

(1) Before doing too many new things (such as a non XPO datalayer),  dont forget the basics such as reminders and recurrence in the Scheduler module and a spell checker module which adjust with the culture. Integrate what you have first and then shoot for the stars.

(2) After trying XAF in 2 applications now, I feel that the security needs improvement. It is possible to set users to write/read each object but practice has been that a user needs to write/read specific fields within an object. That simple task requires too much work currently.

Overall, we are really happy with XAF and look forward to even more improvements.

29 April, 2008
Anonymous
Kevin

The more I use XAF, the more I feel that, DX should release 3 portion, first, a even smaller and faster core, second a wide selection of modules, which I can choose not to use. third one is a community contributed modules which encourge third party involvement.

30 April, 2008
Roman Eremin (DevExpress)
Roman Eremin (DevExpress)

"Use XAF without XPO" - I have to comment that this is just a preparation for other architectural changes, not a feature for XAF developers. For instance there won't be 2-3 alternative data layers in 2008.2 or even 2008.3.

30 April, 2008
Oliver Sturm (DevExpress)
Oliver Sturm (DevExpress)

Hi guys, thanks for the comments.

Jascha - we are most aware of the issue with breaking changes and we'll do our best to identify them and let everybody know as soon as we can. I believe the XPO thing doesn't entail any breaking changes though. The default data layer will work exactly like it always did.

Luc - (1) we're not doing a non-XPO data layer, we're merely removing the requirement for the data layer to be XPO. With regards to reminders and recurrence - I don't like myself how these issues have been dragging along for so long by now, but unfortunately this is one of those cases where we prioritized changes at the base over changes on a very high level. (2) I guess this should be discussed separately with support, if you haven't already done so. At a glance it sounds to me like a problem that might be solved by a particular class structure. Otherwise, field level security will probably come along one day, but I'm afraid it's not in our current plans.

Kevin - without looking into details, I think that overlaps a lot with our own high-level plans.

Roman - you are right of course that we're not preparing a lot of additional data layer implementations ourselves. But there have been many requests in the past from people who want to use their own ORM system or some other means of data access with XAF, and if I'm not entirely misunderstanding that entry in our plans, this separation will allow them to attach their own systems.

30 April, 2008
Evgeniy Meyke
Evgeniy Meyke

Hi, Oliver!

Charts and Pivot support only for WinForms?

30 April, 2008
Oliver Sturm (DevExpress)
Oliver Sturm (DevExpress)

Evgeniy,

No, this is planned for both WinForms and ASP.NET.

30 April, 2008
Evgeniy Meyke
Evgeniy Meyke

what can i say... EXCELLENT!

30 April, 2008
Oliver Sturm (DevExpress)
Oliver Sturm (DevExpress)

With regard to the "abstracted data layer" thing, I have added an update on this above.

30 April, 2008
Xavier Nuyttens
Xavier Nuyttens

Hi Oliver,

Great to hear that DX has big things planned for XAF, I think the lack of news was what got some of us worried.

If I might add my opinion to what XAF is lacking for now, it's the limited control over screen layout. Some of the features that XtraLayout supports by default would be very welcome in XAF too.

Keep up the good work.

30 April, 2008
Anonymous
ALain

Is possible to create in central repository to put all our needs about comming versions of XAF?

With voting, and discussions about each feature.

I think that knowledge base, support and foro are options but no the best ones.

And.. to start, what about connected / disconnected applications?

30 April, 2008
Oliver Sturm (DevExpress)
Oliver Sturm (DevExpress)

Xavier,

Everything that XAF does in layouting is based on the XtraLayout control. What features exactly are you missing?

30 April, 2008
Xavier Nuyttens
Xavier Nuyttens

Oliver,

I'm not using XtraLayout myself, but I saw some screens that showed more options like being able to resize controls, which can't be don't in XAF. That in particular would be very handy.

30 April, 2008
Jascha
Jascha

Oliver,

>Everything that XAF does in layouting is based on the XtraLayout control. What features exactly are you missing?

I realise that this is related general layout as opposed to XtraLayout but root and nested ListView editing is awkward. In-place, WYSIWYG column editing (reorder and resize) is needed including the ability to use the currently disabled Add button to add new columns (with the ability to traverse the object hierarchy when doing so).

30 April, 2008
Mohsen Benkhellat
Mohsen Benkhellat

I am happy with the upcoming changes in 8.2 ;-)

While at xpo changes area, I am wondering if a new kind of intermediate class (component) could be introduced in XPO that would be a datasource but is not persistent by itself and could actually be a composition of standard xpo objects. One example in our application is that usually the user look at a hierarchy of Project and their tasks in a treelist control as a whole while actually there are 2 separate BOs "Project" and "Task" with 1-n association from a project to Tasks.

It will help compose a UI datasource by composing dynamically many actual XPO business objects.

It will be a good addition to XPO but I am already happy as I already said.

Keep up the good work,

Mohsen

30 April, 2008
Jascha
Jascha

Hi Mohsen,

Is what you are asking for perhaps more to do with XAF than XPO since XPO supports non-persistent classes but XAF and XAFReports fail to render them? If so, then I made this suggestion (with a misleading subject) a while back and I think it would be a very useful addition for both UI views and reports www.devexpress.com/.../CQ52410.aspx.

BTW in your projects and tasks example, why do you need a non-persistent intermediate class? Can you not just implement ITreeNode on both classes and see them in a treelist?

Regards,

Jascha

30 April, 2008
Mohsen Benkhellat
Mohsen Benkhellat

Hi Jascha,

Indeed, xpo supports non persistent classes and the problem has more to do with the XAF UI non rendering them.

Currently, we are handling in code the composition of nodes from different classes and this kind of composer component would automate (and abstract/generalize) such pattern.

Thanks and regards,

Mohsen

30 April, 2008
Oliver Sturm (DevExpress)
Oliver Sturm (DevExpress)

More replies to your comments -

Alain - we've discussed such a feature many times, and your comment triggered yet another discussion. There are certainly several pros and cons for the idea, and also a whole bunch of technical issues. I don't really know how it's going to turn out and when we'll have time to do something like that, if we decide we want to do it. Disconnected applications - nothing new here. This is a feature I'd like to see myself, but it's not going to happen very soon.

Xavier - I don't believe there's any control resizing support in the XtraLayout control that we don't surface in XAF. But I'll have another look, perhaps I'm missing something.

Jascha (layout) - That's an interesting, but technically pretty complicated idea. If you haven't submitted it to SC yet, can I ask you to do so?

Mohsen, Jascha - I know we have a user story around such improvements, in particular with regard to reporting. I'll see whether it fits in with what you're suggesting.

1 May, 2008
Anonymous
Xavier Nuyttens

Oliver,

I was refering to this suggestion :

www.devexpress.com/.../AS17438.aspx

Greetings

Xavier

1 May, 2008
Jascha
Jascha

Mohsen - I think perhaps I do not understand what you are trying to achieve if it cannot be done with ITreeNode. I am happy to chat offline if you want.

Oliver -

- Layout

I have a TBD on that www.devexpress.com/.../S91131.aspx.

- Non-persistent Presentation Classes

Just to clarify my take on this. As stated, there are two areas that require the ability to render non-persistent classes, UI views and reports.

Regarding UI views, you often want to present the user with a view that combines more than one class. For example, I have a view that shows the user a list view containing unscheduled orders and a scheduler view containing scheduled orders and the user can drag-drop unscheduled orders onto the scheduler to schedule them (very much like one of your scheduler demo apps IIRC). The easient way to do this in XAF is to create a dummy persistent "presentation" class that contains collections of unscheduled and scheduled orders with appropriate filters. This actually works well in practice but clearly there is no need for the presentation class to be persistent and there are a number of attendant problems with it being so.

Regarding reports, a very common scenario is when you need to show "static" information such as company name, number etc. on a sales order in addition to the actual sales order data. Again a "presentation" class with appropriate properties would be an effective solution.

FWIW, my feeling is that since this is presentation-related, the solution probably belongs in XAF not XPO. One possible approach could be that an attempt to load a suitably attributed presentation class could be intercepted by the ObjectSpace and routed to a factory mechanism / event (or both) instead of XPO and created / populated there. Clearly there may be issues and requirements that I am not aware of but hopefully that gives you an idea of where I am coming from.

Jascha

1 May, 2008
Jascha
Jascha

Oliver,

Is the ASP.NET TreeView going to be supported in 8.2? That would be extremely useful and go a long way to the achieving parity between the UI's.

Jascha

1 May, 2008
Mohsen Benkhellat
Mohsen Benkhellat

Me too, I need ASPXTreeList in XAF (Web) as I am dealing a lot with hierarchies.

I tried implementing it but it is a bit time consuming.

Mohsen

1 May, 2008
Alain Bismark
Alain Bismark

The other thing, is 3tier applications.

How to create a 3 tier application (UI Client, application server, and database).

XAF solve UI Client (with all operation at client side) and database CRUD operations, but what about applications that need an application server?.

I am clear?

2 May, 2008
Steve Muller
Steve Muller

Hi Oliver

Thanks for the update.  I think the sofware is great and agree that you are taking the right approach here.  Evaluate the user feedback, make architectural changes that will support future development (even if there's some pain involved!) and work with users to help them get up and running in the near term.

I really think you've got a great product here and appreciate all of the efforts you and the team are making.  The web app needs work to keep up with the winform version but your communications make it clear that the company is working on enhancing the web app into the future.

Great work!

12 May, 2008
Anonymous
Dan Arnold

I think that support for distributed applications should be considered and tackled during this architectural change.

Currently the interface for creating Object Spaces is based on connection strings, IDbConnections, and tnankfully dataLayer. I think these interfaces should be more abstract. They stem directly from XPO's requirements. In a remoting situation I have no connectionString or IDbConnection. A better abstraction is needed for supporting distributed appplications.

I have .net remoting working, but I am in early stages and am not sure its solid. More than half the applications I and others write are required to work in a distributed environment.

Get the base architecture complete. Tackle this now.

I am cautiuosly excited about XAF. It just seems like certain aspects of it are glued into the base, like having Party, User ... classes in PersistentBase/PersistenBaseImpl. These should be part of an extensible library of resuable modules or components.

If you dont think in terms of extensibility, then the product will never please the masses.

Last Point: I think your documentation is good, and better than alot of companies these days, but feels too much like API documentation. It would be nice if someone would doocument as if the were writing a book or manual.

Learning XPO, for instance, for me was about collecting tidbits out of the knowledgebase and compiling that into a scrap bool that produced pretty good coverage. The problem is that is time consuming and must be done for each of your components, or framewarks, that I approach for the first time. It seems like you could, at least farm out the relevant KB articles and start including them in the documentation.

Thanks. Keep up the good fight. (and by all means document it)

13 May, 2008
Andrew Bexon
Andrew Bexon

Hi Oliver

Is there any further update on what will make it into 8.2 and specifically the abstracted data layer?

Thanks

27 June, 2008

Please login or register to post comments.