Search This Blog

Showing posts with label xaf. Show all posts
Showing posts with label xaf. Show all posts

Monday, January 29, 2018

XAF Security System enhancements in v17.2.5

After updating your XAF project to 17.2.5, you may notice a new option in the Application Designer:

The new SecurityStrategy.RolesMergingMode property specifies how the Security System determines if a user can perform a specific operation in case this user has multiple roles with different permission sets. The available modes are listed in the RolesMergingMode enumeration.

Friday, August 18, 2017

How to: Save and share custom view settings


An often scenario is when an end-user changes certain View settings (columns and editors' layout, filters, etc.) and wants to share these customizations with other users. The XAF core team has prepared an example demonstrating how to allow users to create new View Variants, persist them and load shared variants from the application database.


You can download the example source code and read the detailed description at

Your feedback is needed!
Should you face any issue using this solution or difficulty implementing it in your project, please describe your own scenario of sharing View settings. We will research this information to make the functionality better. 

Friday, July 14, 2017

How To: Use Google, Facebook and Microsoft accounts in ASP.NET XAF applications (OAuth2 authentication)


XAF security team has prepared a small demo illustrating the use of  OWIN OAuth 2.0 Authorization Server. Users can log in with their Google, Facebook or Microsoft accounts.


You can download the demo source code from DevExpress Support Center:
https://www.devexpress.com/Support/Center/Example/Details/T535280/

Technical details and instructions on how to use this approach in your existing applications are available in the example description in Support Center.


Your feedback is welcome!
We would greatly appreciate it if you try this example and share your feedback here in comments.

Thursday, June 15, 2017

The recommended approach to hiding the 'Protected Content' columns and Property Editors is improved - YOUR FEEDBACK IS NEEDED!


I have recently updated the HideProtectedContentController code in the How to: Hide the 'Protected Content' Columns in a List View and Property Editors in a Detail View topic. The main change is that the HideProtectedContentController now checks if a visibility state for the target UI element is customized by existing Conditional Appearance rules before applying its own customizations.

void appearanceController_CustomApplyAppearance(object sender, ApplyAppearanceEventArgs e) {
    if(e.AppearanceObject.Visibility == null || e.AppearanceObject.Visibility == ViewItemVisibility.Show) {
        // ...
    }
}

This prevents possible conflicts with existing appearance rules.

If you are using the HideProtectedContentController code in your projects, we would greatly appreciate it if you try the updated code and share your feedback here in comments.

Please note that HideProtectedContentController may make a negative impact on the application performance in complex scenarios.

Monday, May 15, 2017

Default XAF configuration options and feature toggles

In short post, I would like to promote the Default XAF configuration options and feature toggles knowledge base article, which lists configuration options and settings that are specified in code generated by the most recent Solution Wizard version. In most cases, these options are feature toggles used to enable new features and functionality without affecting the existing applications behavior.

FreeImages.com/John Munsch

If your XAF application is created using an older version of the Solution Wizard, you can review the KB article and enable required features manually.

With v17.1, for better discoverability and more convenience, the Solution Wizard will set the default options in a common place - the InitializeDefaults method called in the YourSolutionName.Wxx/WxxApplication.xx files. This call is wrapped in a region and contains a link to the aforementioned KB article, which will be updated in the future.

Monday, April 10, 2017

The latest XAF v16.2.6 hot fix build for missing collections in the filter editor and a few other issues

I wanted to draw your attention to the subject because the official v16.2.6 contained a few trending issues which were not covered by our automated tests till now:

http://downloads.devexpress.com/Share/DXP/170410/DevExpressComponents-16.2.6.17100.exe

Thankfully, we could provide quick fixes for them and also increased the number of unit and functional tests. Anyway, we apologize for all the inconvenience they might have caused you and your business.

The issues that can attract your attention most of all are:
T500881 - An exception thrown from a popup dialog unexpectedly terminates the whole application execution when debugging in Visual Studio

T498474 - Filter Editor - Collection properties are missing in the property list when DataAccessMode = Server or InstantFeedback after migrating to v16.2.6

Let me know if you experience any difficulties with this hot fix build.



BTW, consider checking the Known Issues section in our What's New documentation if you encounter an issue with our products, because we always inform our customers of such issues + there you can see reports from other clients. I hope you find this information helpful for the future.


Tuesday, March 14, 2017

New ways to customize the New Action's items list in XAF v16.2.5 - YOUR FEEDBACK IS NEEDED!!!

Changing the way how the New Action's items list is populated is quite an often task. The default behavior when the current types and all its descendants are added may be inappropriate in large XAF applications with a complex business objects inheritance hierarchy.



That is why we have decided to provide more built-in modes of populating this list. The available modes are listed in the DevExpress.ExpressApp.SystemModule.NewObjectActionItemListMode enumeration.

ValueDescription
DefaultThe current type and all of its descendant types are added.
ExcludeBaseTypeAll descendants of the current type are added. The current type itself is excluded.
LastDescendantsOnlyOnly the last types in the inheritance hierarchy of the current type are added.

XAF app performance: Reducing the number of simultaneous database connections



Multiple simultaneously opened connections consume your database server memory and thus, have negative impact on your application performance. To diagnose this situation, you can use the following SQL script:

SELECT 
    DB_NAME(dbid) as DBName, 
    COUNT(dbid) as NumberOfConnections,
    loginame as LoginName
FROM
    sys.sysprocesses
WHERE 
    dbid > 0
GROUP BY 
    dbid, loginame

Thankfully, there is a couple of tricks to optimize your existing apps in production (they are already applied out of the box in new projects).


Monday, June 6, 2016

How to access derived (inherited) objects from OData Service

I want to quote a new KB article we created to more easily answer such user questions, especially due to the increased interest in OData in light of the recent arrival of the XAF mobile UI (CTP)

Scenario/Situation
"I created an XPO OData service (XpoDataServiceV3) based on my model, but when I try to query a collection of objects that are derived from another persistent object, the result set includes all objects inherited from the base class. Is it a bug? How can I get only derived objects?"

Explanation/Solution
"This behavior is caused by limited support for derived objects in the OData protocol, which doesn't expose derived classes as entity sets. To access derived objects or their properties, you have to include a type cast using the qualified object type name in the path constructed for a base class. For example, if you wish to get Person objects that are inherited from Party, use the following query:

http://localhost:56789/MyDataService.svc/Party/Person/



Please refer to Derived Entity Type section of the OData Advanced Tutorial and Addressing Derived Types section of the OData protocol documentation for more examples.

Note that this specificity is not related to XPO. If you create a WCF Data Service based on an Entity Framework model, it will behave in a similar manner in regard to derived entities."



And here is a real-life URL query I tested with the data service I created with our MainDemo app and the new Mobile project template:

http://localhost:51562/DataService.svc/DevExpress_Persistent_BaseImpl_Task/MainDemo_Module_BusinessObjects_DemoTask?$filter=Subject%20eq%20%27Task1%27


Again, take special note that this is however, NOT specific to XAF itself or DevExpress ORM OData Service in any way, but rather to the OData V3 protocol itself.


Monday, July 20, 2015

A third-party Twitter Bootstrap Add-on for XAF Web UI

I wanted to share a recent announcement of the open source project from our long-time customers from Kazakhstan:


Talgat Shalabayev, the tech lead of the team providing this custom XAF module said in our LinkedIn group (if you are not yet a member of this forum/group where XAF users share their experience, be sure to join it as interesting things are happening there recently):

"I am glad to inform that we have released XAF Bootstrap addon. It implements Twitter Bootstrap functionality for Web module. You can test and use it now. Project is licensed under open source.
Addon is used in a several our projects in production, but it was tested only with our production needs, not all XAF configuration options, and released "as is". For example, it works for now only with XPO (EF not supports for now), .Net 4.5 and there may be more configuration-specific issues. We plan gradually increase supported features, but we hope that interested community members will join to testing or developing this addon - it will speed up addon's way to production ready state."

You can also see the video guys posted at https://www.youtube.com/watch?v=mIZcLswlswM for more understanding of what this module provides and how to add it into an existing XAF Web project.

My own experience

I decided to test this module with our XCRM demo and first downloaded it from GitHub (they now provide compatible versions for both v14.2 and v15.1 of DevExpress assemblies). 
Since the module currently supports only XPO and .NET 4.5, the demo app required some adjustments to be usable with this module (because it is EF-based). Once I fixed this (by registering several ObjectSpaceProviders for XPO and EF within a single app and modifying the ModuleUpdater class code accordingly), the resultant Web app looked quite well (except for some visual glitches in the menu and other side effects):

Tuesday, July 7, 2015

Kart racing with the XAF team

Hopefully, you will not be disappointed by not receiving the usual technical blog and instead will not mind learning a bit more about our team and how we are doing (we are all people after all). I am putting this caution as I want to share a few photos from today's event we enjoyed with the majority of our team (several guys were absent due to vacations and sick leaves) at the nearest kart park:

Wednesday, March 4, 2015

Starting with XAF v14.2.6 the data-aware Excel export functionality is available for Grid List Editors by default

If you want to test this right away, you can install this hot fix build:

http://downloads.devexpress.com/Share/DXP/150303/DevExpressComponents-14.2.5.15062.exe


Technically, our ASPxGridListEditor & GridListEditor classes now implement the IDataAwareExporter interface that helps to deliver the data-aware export functionality added to our controls in v14.2 a few months ago. Note that our Grid List Editors support only the ExportTarget.Csv, ExportTarget.Xls, ExportTarget.Xlsx types by default. The former WISYWIG mode will be used if the ListEditor doesn't support the IDataAwareExportable interface.





Thursday, February 26, 2015

How to implement and where to put business logic in XAF?

We have recently rolled out another update of our online documentation where we isolated and detailed one of the most common questions beginners have. Actually, the answer was already present in the docs, KBs and examples and we have just reorganized these learning materials so that you need to know is in one place.

Please be sure to check out the new concepts section at eXpressApp Framework > Concepts > Data Manipulation and Business Logic even if you are an experienced XAFer. This is not the final version and we have several updates planned for this section in the near future.


If you are getting started with the framework, then running through the eXpressApp Framework > Getting Started > Basic Tutorial (SimpleProjectManager Application) tutorial will be a prerequisite.

I also want to remind you that our What's New documents for new product versions include the lists of documentation changes (What's New In Help) where you can find other interesting stuff like this, e.g.: this is what we have in v14.2.5 for XAF.

Please let me know what you think in comments to this blog. Thanks in advance!

Wednesday, February 25, 2015

Starting with v15.1, XAF Web pages will be rendered using the HTML5 document type mode by default

We primarily needed this for better operation of the ASP.NET end-user report designer we integrated in XAF v14.2 + some other great stuff we are currently working on for the next major release.
Technically, this means that XAF *.ASPX pages will have <!DOCTYPE html> at the top and there will also be the doctypeMode setting in the web.config file:

<devExpress>
  <settings rightToLeft="false" doctypeMode="Html5" ieCompatibilityVersion="edge" />
<compression enableHtmlCompression="true" enableCallbackCompression="true" enableResourceCompression="true" enableResourceMerging="true" />
<themes enableThemesAssembly="true" />
</devExpress>

You can learn more on this setting in the documentation for our ASP.NET controls.
Take special note that this rendering mode slightly changes alignment of images within table cells as per https://developer.mozilla.org/en/docs/Images,_Tables,_and_Mysterious_Gaps
With this mode, our ASP.NET controls also globally adjusts tables and their cells as per this styles definition:

 /* Html5 styles */
 table { border-width: 0; border-collapse: collapse; border-spacing: 0; }
 td, th { padding: 0; }
 .dx-p1 { padding: 1px; }
 .dx-p2 { padding: 2px; }
 .dx-p3 { padding: 3px; }

In general, this post is just for informational purposes only as there is nothing to worry about for you - everything will "just work" as before, but a bit better:-)

Friday, October 10, 2014

How to improve the application's performance

"Long time no see"...but I think that today's post will be added into favorites by many of you so it is worth a delay. We've collected typical mistakes in ORM data model design as well as general issues that may lead to performance problems and provided solutions and general recommendations in one place/KB article for you:


This collection covers the most popular scenarios and is based on what we have suggested in the Support Center database. If you have suggestions or questions, feel free to comment - we will be happy to make this troubleshooting guide yet more helpful.

BTW, a bit off-topic, but I have fixed a couple of small memory leaks in v.14.1.7 (related to delayed initialization of tabs and security), so you may want to install this hot fix build (or wait for v14.1.8+) to have more stability and less memory usage in XAF Web UI.

Happy speeding!;-)


Tuesday, June 3, 2014

Using a control that is not integrated by default

XAF is designed as a highly extensible and customizable framework. So, in most cases, the task of integrating a WinForms or an ASP.NET control is quite simple. You can integrate a DevExpress control that is not supported by default, a third-party control, or your own custom control. Generally, you should implement an abstract entity (ListEditor, PropertyEditor or ViewItem) that wraps the control and serves as an adapter for the XAF infrastructure. You can also customize a template and place the control in the desired location.

To help you choose an appropriate solution depending on your business scenario we have created a table that lists typical tasks and provides links to relevant examples:

https://help.devexpress.com/#Xaf/CustomDocument3610

I hope you find this new documentation helpful.


Tuesday, May 20, 2014

RE: WinForms Outlook-Style Navigation Controls (Coming soon in v14.1)

I am writing this post in response to the recent blog from our WinForms team: https://community.devexpress.com/blogs/thinking/archive/2014/05/09/winforms-outlook-style-navigation-controls-coming-soon-in-v14-1.aspx. There were a lot of comments on whether it is possible to have this feature in XAF. Well, it is possible and this integration is quite easy if you really need it. After all, an XAF app is nothing more than a standard WinForms or ASP.NET Web Forms app, which means that the same approaches can be applied to develop it. The XAF documentation describes most of the integration scenarios and our support team is also ready to help if you are in a need for something special.

Another good news is that here, it is all standard and you just need basic WinForms development skills and a minute or two to follow the How to: Customize a Windows Forms Template article from the XAF's documentation.


Caution: I was not planning on replicating Outlook 2013 by any means here, but just experimented with alternative navigation controls. I also removed the status bar, placed the navigation bar under the main view site and did not use tree-like navigation in groups on purpose, because it was not very suitable just for this simple demo app. Replicating the Office 2013 UI requires additional customizations of templates and other UI elements, and is not covered in this post.

Wednesday, January 29, 2014

DevExpress XAF Training classes in USA and Germany (May - June)

I'd like to repost some  good news for people who want to become an XAF expert (or a machine that can produce complex Office-like LOB apps in hours) in a week:

May: XAF class in Los Angeles
Only the second time we're bringing an XAF class to the US, this time it'll take place in the DevExpress offices in Los Angeles. An entire week of content, covering a large part of the functionality provided by our XAF application framework. Click this link to see all the details and the class syllabus, and to sign up:
XAF Training Event USA May 2014

June: XAF class in Bad Ems, Germany
A whole week of XAF for Europe based customers, in our much appreciated location in Bad Ems, Germany. An international audience gathers here for this English language class. Here are all the details for this event, the class syllabus and the sign-up form:
XAF Training Event Europe June 2014

http://www.devexpress.com/XAF - learn more on how XAF can help your business to build good-looking and powerful apps for both Windows and the Web in minutes:


Of course, there will be other training events (March-April) for our WinForms and ASP.NET products, which you may be interested in (learn more).

P.S.
1. If you cannot wait, take a look at the list of 3-rd party XAF consultants here or consider contacting our Support Team for assistance at www.devexpress.com/support.
2. If you are doing XAF training, consulting or providing custom programming services, drop me a message at Dennis Stop Spam DevExpress.Com so I can add you into the list above. Thanks.

Wednesday, November 27, 2013

New learning materials on the security system and middle-tier application server

Our team has recently created several help articles on the subject, which you may find helpful, as they describe certain configuration aspects in greater detail:

How to: Implement a WCF Application Server and Configure a Client Application for It
How to: Connect to the WCF Application Server from Non-XAF Applications
How to: Use the Integrated Mode of the Security System in Non-XAF Applications
How to: Configure Permissions to Allow Linking/Unlinking of Read-Only Objects
(find even more in our Task-Based Help...)

Let me know whether you like these additions and what other things you wish to learn more from us. We will be glad to consider them for the future.