Professional Documents
Culture Documents
25-May-15
Log In
Products
SUPPORT CENTER
Buy
Support
Tickets
My Account
Examples
About Us
Localization
FAQ
solutions
Training Events
Deployment - Make it easier to scale XAF ASP.NET applications over multiple Web servers
Tags: .NET, Frameworks (XAF & XPO), eXpressApp Framework
ID:
S36497
Created O n :
1/6/2011 1:16:54 PM
Mo dified O n :
3/24/2015 5:11:06 PM
Problem description
XAF ASP.NET WebForms UI was designed to build business applications that will be used on local Intranet, for instance within a company. It is not fully
optimized for public internet usage with many simultaneous users.
Technically, an XAF Web application uses the ASP.NET session to store non-serializable service information (XafApplication, WebWindow and many other
entities by means of the IValueManager interface, etc. - see the B221002 ticket for an approximate list of dependencies on the ASP.NET session object)
about the current application state. Maintaining the session state allowed us to deliver a greater functionality and an easier development model to XAF
developers. For instance, you can implement a Controller and access and store a reference to the current View and its controls, ObjectSpace, other
Controllers, etc. without caring a lot about ASP.NET page life cycle specifics. However, the chosen approach has its own drawbacks that may require a bit
more effort from you while addressing certain business requirements such as good scalability, because you cannot use a session state mode other than
InProc.
Current solution
Since the application state cannot be serialized and thus only the InProc session mode can be used, you can load balance web servers and route requests
from clients to the same content server (aka "sticky" sessions). Here is a good blog post on how to do this: http://blog.zerosharp.com/deploy-xaf-asp-dotnet-applications-to-amazon-web-services-part-5-load-balancing/ . We do not provide special guidelines or documentation for this particular scenario as
an XAF Web app is a regular ASP.NET WebForms app that maintains its state within the ASP.NET session. That said, you can look for public community
resources devoted to ASP.NET apps with a similar configuration. For instance, you may find other links under the eXpressApp Framework > Deployment >
Deployment Tutorial > Deployment Troubleshooting Guide article helpful as well.
Proposed solutions/Future considerations:
1. Avoid session state at all. For instance, there may be a lightweight HTML5 web client added with a RESTful service for the backend or a reworked version
of the existing ASP.NET WebForms UI;
2. Decrease memory consumption per user session (see http://documentation.devexpress.com/#Xaf/CustomDocument3172 for more details on the
current memory requiremens);
3. Make it possible to serialize/deserialize session data of XAF ASP.NET applications (support the StateServer and SQLServer session state modes, AppFabric
caching, etc.).
See also:
http://msdn.microsoft.com/en-us/library/ee790954.aspx
http://msdn.microsoft.com/en-us/library/ms178586.aspx
Leave a Comment
https://www.devexpress.com/Support/Center/Question/Details/S36497
1/2
S36497 - Deployment - Make it easier to scale XAF ASP.NET applications over multiple Web servers | DevExpress Support Center
DEVEXPRESS
About Us
News
Our Awards
Upcoming Events
User Comments
Case Studies
Reviews and Publications
Licensing
Purchasing
MVP Program
Contact Us
Logos
.NET CONTROLS
WinForms
ASP.NET
MVC
WPF
Silverlight
Windows 8 XAML
CROSS PLATFORM
Reporting
Document Automation
MOBILE
DevExtreme Mobile
HTML5 JS WIDGETS
DevExtreme Web
ENTERPRISE TOOLS
Report Server
Analytics Dashboard
iOS 7
DataExplorer
FRAMEWORKS
eXpressApp Framework
CODE-DEBUG-REFACTOR
CodeRush for Visual Studio
25-May-15
SUPPORT
Search the Knowledge Base
My Questions
Code Examples
Getting Started
Demos
Documentation
Blogs
Training
Webinars
Current Version/Build
Version History
FOLLOW US
If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383
https://www.devexpress.com/Support/Center/Question/Details/S36497
2/2