Scenario
When I click a row in the web list editor holding the Shift key down, I would like to see a detail view opened in a new window.
Web - How to open any hyperlink in a new or tabbed browser window and continue working with the opened application View independently
Answers approved by DevExpress Support
With v16.1.8+, you can set the WebApplication > EnableMultipleBrowserTabsSupport property to True to enable working with multiple web browser tabs.
With v16.2.5, you can also open a View in a separate browser tab directly from navigation after you set the static DevExpress.ExpressApp.Web.Templates.ActionContainers.NavigationActionContainer.UseLinks static property to True.
With v17.1, the WebApplication > EnableMultipleBrowserTabsSupport property also enables UseLinks internally. Both options can be customized in the YourSolutionName.Web/Global.asax.xx file, if required.
See Also:
How to open the current View in a new web browser tab using a custom Action when EnableMultipleBrowserTabsSupport = True
How to add a hyperlink to a new object to a standard aspx page
@Emi: I have created a separate ticket on your behalf for these issues. Let's discuss them there, because they have no relation to the functionality discussed here. Thanks.
Any news on this issue? Opening several windows/tabs is part of common web usability. Regular users expect this behavior and if they don't find it, they're extremely confused. They'll try the trick to copy/paste the URL into a new browser tab just to find out that this messes up the original browser window up to the point where unsaved changes may be lost. Therefore I consider this to be a very high priority issue.
I see it just as we Marco. High priority.
We have also indicated that we had to shift some of our core functionality to XAF.Winforms (thanks to eXpressApp, that was relatively easy) due to increasingly large demand from users, claiming they wanted to have the ability to work in several browser windows.
We are now using XAF.Web for very basic business requirements.
Vote up please.
I have to state that it is one of the most important disadvantage of XAF(ASP) for our users.
We can't provide familiar approaches for working with business applications.
For example users can't edit one business object and see to other, but some information within other objects may be need for editing first one.
It forces them to write the information to some notes from other object and they hope that nothing forgotten for editing of target object.
It it very uncomfortably as you understand.
And this "feature" of XAF.ASP forces us to provide two clients - WinForms and ASP however users actually require only web version.
Please increase the priority of this issue!
Any response from DX? I'm starting to get really disappointed by the lack of XAF improvements in the last year or so. I'm beginning to suspect that a lot of XAF resources were pulled to get DXTreme on track. I can't help but get the impression that DX is losing interest in XAF. The biggest new feature lately has ben the addition of entity framework support… this may be nice for a small group of developers who don't want to invest in the (very small) learning curve of XPO. But it certainly doesn't add any real value to XAF from an end user's perspective. XAF.Web needs major improvements because the web platform is the future. This means: Mobile templates for tablets and smart phones, more client-side code, GUI improvements like multi window/tab support, and much more.
XAF is wonderful and I absolutely love it and generally the same applies to the support.
However, Marco, I've to admit, that I have the same gut feeling on the prioritization at DevExpress.
At least until recently, XAF was one of the most expensive elements of Universal Subscription. (Compare the product combinations and price differences among the different subscriptions). My expectations were and still are(!) that this will have influence on the development efforts of DevExpress towards this part of the subscription.
I would like to see DevExpress to focus especially on their core competencies instead of spreading their efforts and resources into more and more areas, or at least allocating sufficient resources to the existing parts of the subscription especially XAF.
I just tested XAF (12.2) using <sessionState cookieless="true" regenerateExpiredSessionId="true" />. So far it seems to work OK with the nice side effect that I can open as many independent browser tabs as I want. Granted, I have to copy paste the URL's manually, but a small JS in the custom template would probably overcome this issue. Has anyone else here tested this extensively? Are there any pitfalls to this solution (other than loosing the concept of the ASP.NET Session variable in custom code) ?
Marco, the sessionState parameters you described are just great. I hope there are no serious side effects.
Very surprised not to see any response from DX on this 6 year old request!
XAF is great in general but there seems to be a few obvious things that don't work as one would expect, and this is certainly one of them… I have only created WinForms XAF apps up till now, but we have major projects coming up that I had planned to be web apps, and this will certainly be an issue!
DX please give some consideration to this or at least comment!
Ideally there would be a consistent way for the user to choose whether an object opens in the main frame or a new tab, for both Web and Win apps.
You might be interested in my related Support Center question: http://www.devexpress.com/Support/Center/Question/Details/Q511847
@Nick: We created this request in the past and still think that it would be nice to have such a capability for the Web part of our framework. We have not planned the implementation of this request for any release yet, mainly because of a stateful architecture of XAF Web apps, which makes it difficult to open different Views within the same user session. We have not yet tested the solution Marco found, but feel free to use it if it works for you.
It seems Marco solution only work when there is no security. I can ́t login to application with this.
As soon as I authenticate, I am back to login form again.
@Erik: I remember the same behavior when I was testing this cookieless solution in https://www.devexpress.com/Support/Center/Question/Details/B221002 two years ago.
Technically, you are getting back to the login form because internally ASP.NET calls the System.Web.SessionState.SessionIDManager.SaveSessionID method with the following code:
if (!this.UseCookieless(context)) //Dennis: Not our route since we specified <sessionState cookieless="true"/> in the web.config.
{
HttpCookie cookie = CreateSessionCookie(str);
context.Response.Cookies.Add(cookie);
cookieAdded = true;
}
else
{
context.CookielessHelper.SetCookieValue('S', str);
HttpRequest request = context.Request;
string path = request.Path;
string queryStringText = request.QueryStringText;
if (!string.IsNullOrEmpty(queryStringText))
{
path = path + "?" + queryStringText;
}
context.Response.Redirect(path, false); //Dennis: Redirect tot the Login.aspx happens here!!!
context.ApplicationInstance.CompleteRequest();
redirected = true;
}
To bypass it, I tried to manually redirect to the default.aspx form after a successfull logon (as per http://www.codeproject.com/Articles/2796/Cookieless-ASP-NET-forms-authentication). This trick did not work in the past for me, but today the following code added in your WebApplication descendant works fine with the latest XAF version:
public class MainDemoWebApplication : WebApplication {
…
protected override void OnLoggedOn(LogonEventArgs args) {
base.OnLoggedOn(args);
if(System.Web.HttpContext.Current != null) {
//System.Web.HttpContext.Current.Response.Redirect("default.aspx", false);
WebApplication.Redirect("default.aspx", false);
}
}
…
Take special note that I have not tested this workaround under all scenarios, so I cannot guarantee it wiil not have side effects. Please perform additional testing or use it at your own risk. Finally, to learn more about the pros and cons of cookieless sessions I recommend reading http://msdn.microsoft.com/en-us/library/aa479314.aspx by Dino Esposito.
I hope this helps.
Hi, does DX has any plans to try to implement this feature to the XAF core?
@Krzysztof: This functionality is on our radar, but I cannot give you any estimates. To be able to provide you with a more helpful answer, would you please submit a separate ticket via the https://www.devexpress.com/Support/Center/Question/Create service and describe your use-case scenarios in greater detail? See the "Current solutions" section of the original post for more details.
I am not sure why additional use cases needs to be generated to document why this functionality is needed. It is functionality that is already a part of the winforms solution generated from the same code base. MVC apps supports this currently (which is one reason I am planning on moving away from XAF apps as XAF seems to lag behind implementing new technologies including those released by DevExpress itself.
I also had the added over 2 years ago for concern. Unfortunately, so far no implementation.
https://www.devexpress.com/Support/Center/Question/Details/Q577531
@Charles: I was asking Krzysztof for scenarios, because I wanted to help him find alternative solutions that can meet his end-users' needs not less than the originally proposed functionality. From my experience, it is always helpful to ask this, because different people have different requirements.
As for the WinForms and ASP.NET WebForms, I am afraid there are too significant differences between these platforms to provide fully equivalent features. As for your plans to create a pure non-XAF ASP.NET MVC app, are there other reasons behind the inability to work with multiple browser tabs at the same time, especially taking into account that the New XAF Web UI provides an adaptive or responsive layout + faster rendering? Feel free to email me at dennis@devexpress.com for this, if you have another minute or two. In general, I think that for the majority of XAF customers it does not really matter what is "under the hood" (ASP.NET WebForms, MVC or even HTML5) as long as the framework development approaches make them productive and the final application does what it was designed for well. Moreover, it is already possible to use traditional development approaches with custom forms or controls in an XAF app; e.g., on certain screens where you need a lot of interactivity or where customizing the default XAF CRUD UI will require more efforts. Many our users leverage this XAF extensibility and integrate DevExtreme widgets using the How to: Use DevExtreme Widgets in an XAF Application and How to: Show a Custom Data-Bound Control in an XAF View (ASP.NET) approaches. Anyway, it does not mean that we are not researching new directions for building Web apps. You might be already aware of our first results with the mobile UI (CTP) that is based on DevExtreme components and that can potentially be used for regular desktop web browsers in the future. Overall, I think the XAF community would greatly appreciate your feedback on meeting the same requirements with non-XAF technologies if you perform this transition in the future, especially share your feedback on the time to develop and deliver the app, learning curve, etc., because you will need to do a lot of things for a lot of forms manually + practically learn what is "under the hood" in the chosen underlying technology. Thanks in advance.
@Mario: Among the capability to work with multiple browser tabs you requested a responsive layout, which is already available in XAF as per my comment above. Custom URLs for Views can also be implemented in the current versions on your own using a custom request manager as per How to provide short and user-friendly URLs for XAF Web Views. I did not quite get how the SEO-friendly requirement relates to XAF Web apps though, because the majority of Web apps XAF users create web portals that are supposed to be non-public.