tag:blogger.com,1999:blog-19449261484737132812024-03-11T21:52:42.873-07:00News, tips, tricks and more about DevExpress Application Framework (XAF) directly from the labDevExpress XAF is a framework for .NET and Visual Studio developers who wants to create Office-like LOB apps for desktop, web and mobile faster and without hiring a large team.Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.comBlogger337125tag:blogger.com,1999:blog-1944926148473713281.post-91812965151012377692018-06-09T01:57:00.000-07:002020-04-04T05:09:38.343-07:00ATTENTION !!! This personal blog no longer gets new posts<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="color: #6aa84f; font-size: large;"><b>Please follow the official <a href="https://community.devexpress.com/blogs/xaf/default.aspx" target="_blank">XAF Team</a> and <a href="https://community.devexpress.com/blogs/xpo/default.aspx" target="_blank">XPO Team</a> blogs, which are regularly updated by me and other DevExpress members. <br />Thanks, Dennis.</b></span><br />
------------------------------------------<br />
In XAF, users of the Model Editor and Report Designer tools are likely to be affected by this issue. Well, advanced users who enabled the <a href="https://documentation.devexpress.com/WindowsForms/DevExpress.XtraLayout.OptionsCustomizationForm.ShowPropertyGrid.property">ShowPropertyGrid</a> property in the layout control or made custom <a href="https://documentation.devexpress.com/WindowsForms/DevExpress.XtraVerticalGrid.PropertyGridControl.class">PropertyGridControl</a> integrations may be affected too - at least we all know a few😉</div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><br /></div>
<div style="text-align: justify;">
Our XtraVerticalGrid developers are aware of this problem and have already fixed it in <b>v18.1.4 </b>(it should be out in 1.5-2 weeks). In the meantime, the hotfix is already available for download at <span style="background-color: white;"><a data-ticket="T638535" href="https://www.devexpress.com/Support/Center/Question/Details/T638535/propertygridcontrol-the-nullreferenceexception-is-thrown-when-scrolling-and-an-editor-is">T638535: PropertyGridControl - The NullReferenceException is thrown when scrolling and an editor is active</a>.</span> Please accept sincerely apologies from our XAF, XtraReports and XtraVerticalGrid teams for all the inconvenience here.</div>
<br />
Here is the error callstack for your reference:<br />
<br />
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif;"><i><span style="font-size: xx-small;">System.NullReferenceException at <b>DevExpress.XtraVerticalGrid.PGEditingState.MouseWheel(</b>DevExpress.Utils.MouseWheelScrollClientArgs) at DevExpress.XtraVerticalGrid.BaseHandler.DevExpress.Utils.IMouseWheelScrollClient.OnMouseWheel(DevExpress.Utils.MouseWheelScrollClientArgs) at DevExpress.Utils.MouseWheelScrollHelper.OnScrollLine(DevExpress.Utils.DXMouseEventArgs, Int32, Boolean) at DevExpress.Utils.MouseWheelScrollHelper.OnMouseWheel(System.Windows.Forms.MouseEventArgs) at DevExpress.XtraVerticalGrid.BaseHandler.OnMouseWheel(System.Windows.Forms.MouseEventArgs) at DevExpress.XtraVerticalGrid.VGridControlBase.OnMouseWheelCore(System.Windows.Forms.MouseEventArgs) at DevExpress.XtraEditors.Container.EditorContainer.OnMouseWheel(System.Windows.Forms.MouseEventArgs) at System.Windows.Forms.Control.WmMouseWheel(System.Windows.Forms.Message ByRef) at System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef) at DevExpress.XtraEditors.Container.EditorContainer.WndProc(System.Windows.Forms.Message ByRef) at DevExpress.XtraVerticalGrid.VGridControlBase.WndProc(System.Windows.Forms.Message ByRef) at System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef) at System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr)</span></i></span><br />
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px;"><br /></span>
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px;"><br /></span>
<strong>Tip 1: </strong>The <a href="https://www.devexpress.com/Support/Center/Question/Details/A948/how-to-obtain-a-design-time-exception-call-stack">How to obtain a design-time exception call stack</a> KB article describes how to locate these important error details, especially if your Visual Studio crashed. This information is helpful when submitting to support. BTW, to improve your chances of getting a faster and helpful answer from support, check these related tips as well:<br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a> <a href="https://stackoverflow.com/help/how-to-ask">How do I ask a good question?</a> (StackOverFlow)<br />
<a href="https://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report Bugs Effectively</a> (Simon Tatham)<br />
<a href="https://community.devexpress.com/blogs/ctodx/archive/2009/01/08/a-request-for-simple-example-programs.aspx">A request for simple example programs</a> (Julian Bucknall)<br />
<a href="https://documentation.devexpress.com/eXpressAppFramework/117344/Concepts/Debugging-and-Error-Handling/Collect-and-Analyze-the-Diagnostic-Information">Collect and Analyze the Diagnostic Information</a> (XAF documentation)<br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><br />
<strong>Tip 2:</strong> When you located the call stack information and determined from it that an exception is raised from DevExpress code, I recommend you search for one or several topmost call stack method names in our support database. This behavior might be reported by someone else, e.g.: <a href="https://www.google.com/search?q=PGEditingState.MouseWheel">https://www.google.com/search?q=PGEditingState.MouseWheel</a><br />
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCcy46jnDr0ObBMe20bc7U2ZYCkIzp89z9vLKkBEXJ3XykpUzfe5jxXeDd7D-OkQMc9xFDhwht816UJY8Vx8tIQQj2MWVW9QZ2vEOIZUQ4BgRUq51qo0CrH7-ovAmPNblsvs-TXSAnJs5/s1600/5000576310_63351104a8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="FreeImages.com" border="0" data-original-height="360" data-original-width="480" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCcy46jnDr0ObBMe20bc7U2ZYCkIzp89z9vLKkBEXJ3XykpUzfe5jxXeDd7D-OkQMc9xFDhwht816UJY8Vx8tIQQj2MWVW9QZ2vEOIZUQ4BgRUq51qo0CrH7-ovAmPNblsvs-TXSAnJs5/s400/5000576310_63351104a8.jpg" title="FreeImages.com" width="400" /></a></div>
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px;"><br /></span></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com1tag:blogger.com,1999:blog-1944926148473713281.post-53925337598212513262018-06-01T02:08:00.001-07:002018-06-01T05:01:55.354-07:00Concurrent Record Updates Merging in XPO-based XAF ASP.NET apps (v18.1)<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
From the <a href="https://docs.devexpress.com/eXpressAppFramework/113596/concepts/business-model-design/business-model-design-with-xpo/optimistic-concurrency-control?tabs=tabid-csharp" style="background-color: yellow;">Optimistic Concurrency Control</a> help topic:</div>
<div style="text-align: justify;">
<i><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>"In multi-user data-aware applications, there are times when one user edits a record while another user is editing the same record. As long as the changes being made do not affect the same field (e.g., one user modifies the task description while another user attaches a file), XAF applications can resolve the situation, and merge simultaneous changes made by different users. To enable field-level locking, set the <a href="https://docs.devexpress.com/CoreLibraries/DevExpress.Xpo.XpoDefault.TrackPropertiesModifications" style="background-color: yellow;">XpoDefault.TrackPropertiesModifications</a> static property to <strong>true</strong>."</i></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Previously, this feature was available only for WinForms apps. With <b>v18.1</b>, ASP.NET WebForms XAF applications can handle concurrent record updates by merging simultaneous changes (by two or more different users) as well:</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1CtN6Ykb5KAcVbjKHqLo5ClwAghm-v8iWb2l3sOz-mTFAOcJpN_URx4eWSNt1ORJgHerVyNdpNMY_GnVzBKtlaQw2tL1JX4UabOzXplJYVbwRrgu4qVxKGdMuicZgvN-9gsP2NYFowVB-/s1600/concurrencymergeweb.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="304" data-original-width="627" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1CtN6Ykb5KAcVbjKHqLo5ClwAghm-v8iWb2l3sOz-mTFAOcJpN_URx4eWSNt1ORJgHerVyNdpNMY_GnVzBKtlaQw2tL1JX4UabOzXplJYVbwRrgu4qVxKGdMuicZgvN-9gsP2NYFowVB-/s400/concurrencymergeweb.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="text-align: center;">Here is also a video from our MainDemo.Web app (run from the Demo Center):</span><br />
<span style="text-align: center;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZo-4lX5mS8hANzvXCuUIAiHidgII0LPPlH0WLPXLzv0ZJXL2eixVSPSbX7mzlGD5OX7pAuHdkMLuHfovhWsKzyHMEq5vm_YQdx11wNEcimZUMidvJNq3ewHOrAPdfJEEvmP0KdggUoixA/s1600/2018-06-01_12-02-01.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="939" data-original-width="726" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZo-4lX5mS8hANzvXCuUIAiHidgII0LPPlH0WLPXLzv0ZJXL2eixVSPSbX7mzlGD5OX7pAuHdkMLuHfovhWsKzyHMEq5vm_YQdx11wNEcimZUMidvJNq3ewHOrAPdfJEEvmP0KdggUoixA/s400/2018-06-01_12-02-01.gif" width="308" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="text-align: center;">Notice that two different users can edit different properties (e.g., NickName and SpouseName) and then merge these non-conflicting changes.</span></div>
<div style="text-align: justify;">
<span style="text-align: center;"><br /></span></div>
<div style="text-align: justify;">
<b>Have you already enabled this feature in your XAF Web apps? Please let us know how this works for you.</b></div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com1tag:blogger.com,1999:blog-1944926148473713281.post-65257010356624187232018-06-01T00:22:00.004-07:002018-06-01T05:01:36.673-07:00How to access and manipulate a custom ASP.NET user control from a Controller in a Module project<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: justify;">
We have updated our <a href="https://docs.devexpress.com/eXpressAppFramework/114160/task-based-help/views/how-to-show-a-custom-data-bound-control-in-an-xaf-view-asp.net" style="background-color: yellow;">How to: Show a Custom Data-Bound Control in an XAF View (ASP.NET)</a> tutorial with more information on how to pass external data to custom <a href="https://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx">Web user controls</a>. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Previously, our customers had the following difficulties with this task:</div>
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><br />
<div style="text-align: justify;">
- In which project to create web user controls. By default, ASP.NET suggests doing this in the <em>YourSolution.Web</em> project. Adding an *.ASCX control into the <i>YourSolutionName.Module</i>.Web project led to errors.</div>
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment">
</a>
<br />
<div style="text-align: justify;">
- How to deal with circular references when attempting to reference the <em>YourSolution.Web</em> project from a Controller defined in the <em>YourSolutionName.Module.Web</em> project.</div>
<div style="text-align: justify;">
- How to pass an IObjectSpace, XafApplication or current View object to a custom user control.</div>
<div style="text-align: justify;">
<br /></div>
<br />
<div style="text-align: justify;">
A common way to resolve such a dependency (unrelated to XAF itself) is to define an interface within your class library (a XAF module project) and implement it by using your custom user control.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUVMclVdtmKig-9tAB3TAcL7w6Gouoc_ncy4Bjcea3xpFz-70xYm1cbCv4nn9ivAkLLPG2F7fRxqyngEw0bz-qTeCSlNHXPcUjhzWhi6Fy56ZM2oHBDPcbmY-6WYVr-U2vpZXB7X7n3qFU/s1600/databoundcontrolweb_new_interface.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="463" data-original-width="806" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUVMclVdtmKig-9tAB3TAcL7w6Gouoc_ncy4Bjcea3xpFz-70xYm1cbCv4nn9ivAkLLPG2F7fRxqyngEw0bz-qTeCSlNHXPcUjhzWhi6Fy56ZM2oHBDPcbmY-6WYVr-U2vpZXB7X7n3qFU/s400/databoundcontrolweb_new_interface.png" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com2tag:blogger.com,1999:blog-1944926148473713281.post-59790642295280963112018-05-31T06:40:00.004-07:002018-05-31T06:44:12.610-07:00WinForms - How to manage long text in DocumentManager tabs<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
Please check out the <b>Problem</b> and <strong>Solutions</strong> sections in the <a href="https://www.devexpress.com/Support/Center/Question/Details/T629226/winforms-long-text-is-cut-off-in-documentmanager-tabs" style="background-color: yellow;">T629226: WinForms - Long text is cut off in DocumentManager tabs</a> ticket.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
We are going to improve this in the upcoming v18.1+. Our designer's favorite is #2, but we cannot implement it in a minor version due to a breaking change. BTW, option #1 shown in the screenshot below also looks fine. Take note of solution #3 as well - you can customize this behavior without writing any code.</div>
<div style="text-align: justify;">
<br /></div>
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><br />
<div style="text-align: justify;">
Please let me know what option you prefer or if you are handling it differently. Thanks.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
BTW, have you modernized your XAF WinForms apps <a href="https://www.devexpress.com/go/XAF_Try_SVG_Support_v18.1.aspx">using SVG icons</a> and <a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Win.WinApplication.UseLightStyle?tabs=tabid-csharp">Light Style</a> in v18.1? Click the screenshot below to see the new look & feel. Do you like it?</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU8Me4OCEiR5st4JMeTTf3uVdI9ir6Z_l24M0kARmDmFusm1JKHuZ49KB0aS3B9UjJ2RUgKIJBf-W5emfJA9CVajlDKu8gaB74NsA8NV-A8XEGx2KT0N9lse_xEuehalSKWyJjm9P8zoFW/s1600/LongTabText.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="630" data-original-width="1200" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU8Me4OCEiR5st4JMeTTf3uVdI9ir6Z_l24M0kARmDmFusm1JKHuZ49KB0aS3B9UjJ2RUgKIJBf-W5emfJA9CVajlDKu8gaB74NsA8NV-A8XEGx2KT0N9lse_xEuehalSKWyJjm9P8zoFW/s400/LongTabText.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: justify;">
<br /></div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com8tag:blogger.com,1999:blog-1944926148473713281.post-59753305321214823652018-05-25T08:38:00.001-07:002018-05-25T08:38:04.304-07:00Web - How to avoid issues with data-bound controls due to missing or non-unique key values<div dir="ltr" style="text-align: left;" trbidi="on">
Check out the <a href="https://www.devexpress.com/Support/Center/Question/Details/T639653/web-how-to-avoid-issues-with-data-bound-controls-due-to-missing-or-non-unique-key-values" style="background-color: yellow;">Web - How to avoid issues with data-bound controls due to missing or non-unique key values</a> KB article to make sure that your business model is aligned with the best practices. Here is a short extract:<br />
<br />
<br />
<div style="text-align: justify;">
<i><strong>Symptoms</strong></i></div>
<i><div style="text-align: justify;">
<i>You may notice the following side-effects in a Web ListView while it may work fine in WinForms:</i></div>
<div style="text-align: justify;">
<i>- A wrong DetailView may be selected when an unsaved record is clicked in ListView;</i></div>
<div style="text-align: justify;">
<i>- ListView may have no selection column;</i></div>
<div style="text-align: justify;">
<i>- In inline edit or batch mode, all records may become selected or editable.</i></div>
<div style="text-align: justify;">
<i>These effects are especially frequent in a non-persistent class ListView or a nested ListView for an aggregated details collection with newly added or unsaved records.</i></div>
<div style="text-align: justify;">
<br /></div>
<div style="font-weight: bold; text-align: justify;">
<i><strong>Explanation</strong></i></div>
<div style="text-align: justify;">
<i>All new records added to the ListView and not yet saved to the database will be assigned with a temporary key value (e.g. -1 or an empty Guid/String value depending on your key type). In a Web application, ListView uses a business class <a href="https://documentation.devexpress.com/#CoreLibraries/clsDevExpressXpoKeyAttributetopic">key property</a> to identify records, because there is no way to access real business objects from the web browser. Hence, there is a requirement that each business object must have a unique value assigned to the key property. ASPxGridView and other data-bound controls require this for the correct operation of such features like selection, filtering, sorting, grouping and the standard XAF functionality that depends on them (see also <a href="https://documentation.devexpress.com/AspNet/DevExpress.Web.ASPxGridBase.class">ASPxGridBase</a> > <a href="https://documentation.devexpress.com/AspNet/DevExpress.Web.ASPxGridBase.KeyFieldName.property">KeyFieldName</a>). </i></div>
<div style="text-align: justify;">
<i>If a key property is missing in a business class completely or if a key property is not initialized with a unique value immediately after the record is created, these duplicate or invalid records may lead to a data-bound control malfunction as expected.</i></div>
</i><br />
<i><br /></i>
Please inform me of your health-check results!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg028YvOSeTxdl62FQlOrlIueNg-o85kt4GxmREG2V3FCEhzvJoEJT-tn8yiV1oTuNSgJPti0ywVlMaUAVP8tR5ab23SpQllOC1f9huYhyphenhyphenseMgGTIJpr0mql28crOr4AX8NZWgcMVrZNQ-3/s1600/pins-1311988.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="FreeImages.Com" border="0" data-original-height="384" data-original-width="800" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg028YvOSeTxdl62FQlOrlIueNg-o85kt4GxmREG2V3FCEhzvJoEJT-tn8yiV1oTuNSgJPti0ywVlMaUAVP8tR5ab23SpQllOC1f9huYhyphenhyphenseMgGTIJpr0mql28crOr4AX8NZWgcMVrZNQ-3/s400/pins-1311988.jpg" title="FreeImages.Com" width="400" /></a></div>
<br /></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com1tag:blogger.com,1999:blog-1944926148473713281.post-67416835031862181102018-05-11T08:09:00.001-07:002018-05-11T08:09:17.758-07:00Improved diagnostics for ListView errors in Server Mode<div dir="ltr" style="text-align: left;" trbidi="on">
From the <a href="https://www.devexpress.com/Support/Center/Question/Details/T634449/core-listview-shows-blank-rows-or-freezes-in-certain-scenarios-in-server-mode">Core - ListView shows blank rows or freezes in certain scenarios in Server Mode</a> ticket:<br />
<br />
<br />
<div style="text-align: justify;">
<i>In certain scenarios, a list view with <a href="https://documentation.devexpress.com/eXpressAppFramework/113683/Concepts/UI-Construction/Views/List-View-Data-Access-Modes/List-View-Data-Access-Modes-Overview">DataAccessMode</a> set to Server may show empty rows or operate slowly. This behavior is usually caused by exceptions thrown during data loading that are handled internally. Such situations can be diagnosed using the debugger (see <a data-ticket="T228863" href="https://www.devexpress.com/Support/Center/p/T228863.aspx">What to do when the grid displays blank rows in Server Mode</a> and <a data-ticket="T218612" href="https://www.devexpress.com/Support/Center/p/T218612.aspx">ASPxGridView displays empty rows when bound via Server Mode</a>).</i></div>
<i><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"><div style="text-align: justify;">
<br /></div>
</a><div style="text-align: justify;">
Starting with <b>v18.1</b>, we improved the XAF built-in diagnostics for errors occurring in Server Mode data sources. Now, server-side errors (intercepted via the <a href="https://documentation.devexpress.com/CoreLibraries/DevExpress.Xpo.XPServerCollectionSource.ServerExceptionThrown.event">ServerExceptionThrown</a> event) are written to the application log. In addition, when the log level is set to 4 (<a href="https://documentation.devexpress.com/eXpressAppFramework/112575/Concepts/Debugging-Testing-and-Error-Handling/Log-Files">Verbose</a>), errors reported via the InconsistencyDetected event are also written to the log. While the latter event doesn't always indicate a problem, the error message may be helpful in researching the cause of performance issues.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCy-ghpjwkgnw38oQzLqdeEbF5dT7ic28hz3Nd_1zcTQIRhcDI2MMmehJW3Xj8-7QLff0Ih6rL4WuYzN9l4bVXCNk-tl9rJV_fgjfz2P1UHcuEbO_ihD-F1cY_TUfH8Ufl_2aqjchoMkIH/s1600/smlogs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="800" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCy-ghpjwkgnw38oQzLqdeEbF5dT7ic28hz3Nd_1zcTQIRhcDI2MMmehJW3Xj8-7QLff0Ih6rL4WuYzN9l4bVXCNk-tl9rJV_fgjfz2P1UHcuEbO_ihD-F1cY_TUfH8Ufl_2aqjchoMkIH/s400/smlogs.png" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
</i><br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com7tag:blogger.com,1999:blog-1944926148473713281.post-16509935821233226812018-05-09T04:11:00.000-07:002018-05-09T04:17:36.704-07:00Quick questions on our change log<div dir="ltr" style="text-align: left;" trbidi="on">
<b>Q1:</b> How often do you check the "Resolved Issues", "Known Issues", "Breaking Changes" pages in <a href="https://www.devexpress.com/Support/versions.xml">our What's New documentation</a>? For instance: "n<i>ever, did not know about this page</i>"; "<i>every minor</i>"; "<i>every major</i>"; "<i>rarely, only when I encounter an issue</i>"; "<i>once 1-2 year when we upgrade</i>"; your option.<br />
<b>Q2:</b> What would you like to improve about these pages to make your work more comfortable?<br />
<b>Q3: </b>Are you missing anything important from the "New Major Features" section <a href="https://www.devexpress.com/Subscriptions/New-2018-1.xml#xaf">like this for v18.1</a>?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPZxw63yXVC9QZUGFoVub2S3C_JwJCa55OC7LTM7nBWf2f3FkGKNk0ZLezRoi_-P81SXlBD9qs-vaRYV_Ra9-Z8z0K6HEnIJXl9HpaKdL4x6LIdoPzHgcJZkR1S1taFIv6nIVLLRBK5Cgm/s1600/5000576310_63351104a8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="360" data-original-width="480" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPZxw63yXVC9QZUGFoVub2S3C_JwJCa55OC7LTM7nBWf2f3FkGKNk0ZLezRoi_-P81SXlBD9qs-vaRYV_Ra9-Z8z0K6HEnIJXl9HpaKdL4x6LIdoPzHgcJZkR1S1taFIv6nIVLLRBK5Cgm/s400/5000576310_63351104a8.jpg" width="400" /></a></div>
<br />
<br />
This post idea came after looking at the fixed XAF issues for the upcoming v17.2.8:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUYC55-gk0OS20sXWjKJQwRhI31cVAp9_Cd_-TtK8H8Rv2MPofSDsQGrsjqJirTXUtoIz6395mxOVVQ8oeP2Xlk-k6I57VMEUmYJ0w1ZEPGZDIDvFxFDInjuYSuf21c1qJ9ti95MypQB8f/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="713" data-original-width="700" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUYC55-gk0OS20sXWjKJQwRhI31cVAp9_Cd_-TtK8H8Rv2MPofSDsQGrsjqJirTXUtoIz6395mxOVVQ8oeP2Xlk-k6I57VMEUmYJ0w1ZEPGZDIDvFxFDInjuYSuf21c1qJ9ti95MypQB8f/s1600/1.png" width="480" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
As you can see, titles have different formatting and it is not easy to find all issues for a certain platform or module, e.g. Mobile.<br />
<br />
This is how a bit better formatted <a href="https://www.devexpress.com/Support/Center/VersionHistory?VersionHistoryItemsType=ResolvedIssues&TechnologyName=.NET&PlatformName=Frameworks%20(XAF%20%26%20XPO)&ProductName=AllProducts&StartBuildName=17.2.8&EndBuildName=17.2.8">list looks now</a>:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-LgnJYGQIm_fu7oiub8l8WGa-R_IX_fXHXucZBrVrERw9RAQxesP18j2sM-MakA2rdkYAeI3Yr7661DnqMAaFSIokUAHJvq0tbQ2ha9y7USlC8WRVmHYepzqqi0KwRLehhNgs2ZQAG4Ix/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="713" data-original-width="700" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-LgnJYGQIm_fu7oiub8l8WGa-R_IX_fXHXucZBrVrERw9RAQxesP18j2sM-MakA2rdkYAeI3Yr7661DnqMAaFSIokUAHJvq0tbQ2ha9y7USlC8WRVmHYepzqqi0KwRLehhNgs2ZQAG4Ix/s1600/2.png" width="480" /></a></div>
<br />
This needs a little bit more discipline from our team, but may be more helpful for our customers. I am still hesitating because this problem may not exist for many, because Google Analytics reports low visits for these pages.<br />
<br />
I hope you can help us see whether to focus on more important things by answering my questions above. Your other thoughts and suggestions are welcome too, as always.<br />
<br />
See Also: <a href="https://documentation.devexpress.com/GeneralInformation/2216/General-Information">General Information</a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a> > <a href="https://documentation.devexpress.com/GeneralInformation/15661/Installation">Installation</a> > <a href="https://documentation.devexpress.com/GeneralInformation/2221/Installation/Upgrade-Notes">Upgrade Notes</a></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com9tag:blogger.com,1999:blog-1944926148473713281.post-13072234611121887472018-05-09T02:52:00.001-07:002018-10-11T04:48:13.170-07:00SVG images in RichTextPropertyEditor<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><b><span style="font-size: large;">UPDATED:</span></b><br /><span style="background-color: yellow;">With v18.2, the ForcePngIcons option is no longer required. Use the <a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Utils.ImageLoader._members">ImageLoader.Instance.UseSvgImages</a> property instead.</span><br />----------------------------<br />We've temporarily disabled SVG icons in RichTextPropertyEditor (a part of <a href="https://www.devexpress.com/go/XAF_Try_RichTextEditorModule_v18.1.aspx">the new Office module</a> in v18.1.3) in an XAF app until we redraw all default PNG images (by the end of 2018). Our designers aimed to avoid bad UX after mixing PNG and SVG images within one screen. For instance, the merged main and RichEditControl's menus may look inconsistent. Different images in independent UI contexts are acceptable, e.g., SVG in a separate report designer and PNG in the main form.<br />
<br />
To force SVG images in v18.1, set the static <b>DevExpress.ExpressApp.Office.Win.OfficeWindowsFormsModule.ForcePngIcons </b>property to <b>False </b>in the <em>Main</em> method of the <em>YourSolutionName.Win/Program.xx</em> file (available in <strong>v18.1.3+</strong>).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLSIOHODyhr9B5EfGvcvZzu3bILHe3faopw2FAvZzpZNznrkgGyRcZKXcr6-1D7OccQ8NzNbYDajOhEYO3zBM2Sd4OQyoYRvjGFEb2zYXqbsgZLECyeRm7Tup3qZxoEMD4FyvrxOwz3VwA/s1600/2018-05-09_11-26-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="745" data-original-width="908" height="327" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLSIOHODyhr9B5EfGvcvZzu3bILHe3faopw2FAvZzpZNznrkgGyRcZKXcr6-1D7OccQ8NzNbYDajOhEYO3zBM2Sd4OQyoYRvjGFEb2zYXqbsgZLECyeRm7Tup3qZxoEMD4FyvrxOwz3VwA/s400/2018-05-09_11-26-10.png" width="400" /></a></div>
<br />
<br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>To check our progress <a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>with regard to SVG icons support for WinForms and to help future development by answering questions from our team or sharing early feedback, please <a href="https://www.devexpress.com/go/XAF_Try_SVG_Support_v18.1.aspx" style="background-color: yellow;"><strong>visit</strong><strong> this knowledge base article</strong></a>.</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com0tag:blogger.com,1999:blog-1944926148473713281.post-8566649245150966032018-04-25T17:27:00.003-07:002018-04-25T17:27:53.275-07:00Update on WinForms SVG Images Support in v18.1<div dir="ltr" style="text-align: left;" trbidi="on">
Please do not miss our recent update in the <a href="https://www.devexpress.com/Support/Center/Question/Details/T616414/winforms-svg-images-support-preview-in-v18-1">WinForms SVG Images Support - Preview in v18.1</a> KB article:<br /><br />
<span style="color: blue;"><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>We've extended the number of scenarios where SVG images are now correctly shown in a WinForms XAF application with the following:</span><br />
<span style="color: blue;">● SVG images used for SingleChoiceAction itself and its items shown in the bar and ribbon controls.</span><br /><img data-image="79255196-566d-4493-af0f-f9812b7cdb05" src="https://www.devexpress.com/Support/Center/Attachment/GetAttachmentFile/79255196-566d-4493-af0f-f9812b7cdb05" /><img data-image="18b4f24f-1348-41e3-b909-fe8d66397026" src="https://www.devexpress.com/Support/Center/Attachment/GetAttachmentFile/18b4f24f-1348-41e3-b909-fe8d66397026" /><br />
<span style="color: blue;"><br />● SVG images used for SingleChoiceAction shown in the popup menu.</span><br /><img data-image="64fe979c-d6cd-4636-996d-049cb107a1ff" src="https://www.devexpress.com/Support/Center/Attachment/GetAttachmentFile/64fe979c-d6cd-4636-996d-049cb107a1ff" /><br />
<br /><span style="color: blue;">● SVG images used for ParametrizedAction shown in the bar and ribbon controls and in the popup menu.</span><br />
<br /><img data-image="8b0b35d1-3c2c-4354-86ae-1e3a4da9aab7" src="https://www.devexpress.com/Support/Center/Attachment/GetAttachmentFile/8b0b35d1-3c2c-4354-86ae-1e3a4da9aab7" /><br />
<br /><span style="color: blue;">● SVG images used for ParametrizedAction shown in ButtonsContainer on a detail view.</span><br /><br /><img data-image="f44f1221-4a09-43de-93c7-bcb292314815" src="https://www.devexpress.com/Support/Center/Attachment/GetAttachmentFile/f44f1221-4a09-43de-93c7-bcb292314815" /><br /><br /><span style="color: blue;">● SVG images used for nodes in TreeListEditor via the new <em>DevExpress.Persistent.Base.General.ITreeNodeSvgImageProvider</em> interface.</span><br />
<br /><img data-image="30faa1cc-2085-4bde-84ae-b802bc40cf96" src="https://www.devexpress.com/Support/Center/Attachment/GetAttachmentFile/30faa1cc-2085-4bde-84ae-b802bc40cf96" /><br />
<br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><strong>Your feedback is needed!</strong><br />
If you want to test this feature with your real world applications on a virtual machine (or another suitable test environment) prior to the official release, download the v18.1 preview build here: <a href="https://www.devexpress.com/go/XAF_Try_v18.1_Preview_Build.aspx">DevExpress XAF v18.1 Preview installer</a> </div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com0tag:blogger.com,1999:blog-1944926148473713281.post-131822654368212812018-04-25T16:05:00.000-07:002018-04-30T01:48:09.500-07:00UPDATE on Customization Forms - XAF WinForms v18.1.3+<div dir="ltr" style="text-align: left;" trbidi="on">
With <b>v18.1.3</b> (RTM or Beta2), a tooltip will be shown for complex property paths to avoid confusion from fields with the same name. Refer to the attached video:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSz9RQXvMJn_Bels7SyyMOUVk_kOSRPbq5DuCeYPybFPZw1F5bHvp7MLuTxGnB-97qjHLulyuqiFiuuOLfTlXoiuiQVUKbMnp9pbSkE_My6fdbQMn6AgoRCdTachu30r5LoVxEdf3zQyi5/s1600/2018-04-25_15-06-06.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="710" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSz9RQXvMJn_Bels7SyyMOUVk_kOSRPbq5DuCeYPybFPZw1F5bHvp7MLuTxGnB-97qjHLulyuqiFiuuOLfTlXoiuiQVUKbMnp9pbSkE_My6fdbQMn6AgoRCdTachu30r5LoVxEdf3zQyi5/s400/2018-04-25_15-06-06.gif" width="400" /></a></div>
<br />
<br />
Note that since multiple customization forms can be opened at the same time, now the form's header also includes the View's caption. We hope your end-users will appreciate these minor usability improvements. Refer to the <a href="https://www.devexpress.com/Support/Center/Question/Details/S30014/winforms-customization-forms-it-is-difficult-to-distinguish-fields-with-the-same-name"><b style="background-color: yellow;">original Support Center ticket for more details</b></a>.<br />
<br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><strong>See Also:</strong><br />
<a href="https://dennisgaravsky.blogspot.com/2018/02/customization-forms-and-model-editor.html">Customization Forms and Model Editor Improvements - XAF v17.2.6</a></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com2tag:blogger.com,1999:blog-1944926148473713281.post-23369179269910307402018-04-25T03:50:00.000-07:002018-04-25T03:50:32.483-07:00The future of old RichTextPropertyEditor and HtmlPropertyEditor with the introduction of the new Office-inspired Word Processing Module - YOUR FEEDBACK IS NEEDED!!!<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: justify;">
<b>Why bothering?</b></div>
<div style="text-align: justify;">
As many of you already heard, we are shipping <a href="https://www.devexpress.com/go/XAF_Try_RichTextEditorModule_v18.1.aspx">the Office module with the Rich Text Editor</a> in <b>v18.1</b>. It allows end-users to create, load, change, print, save and convert documents in different formats, including HTML. At this stage, this new module is for WinForms only. We see ways to support more Office functionality and cover other platforms in the future.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
As you know, there are two very old XAF Property Editors, which perform similar functions, but with lower quality. They are both based on standard Microsoft controls:</div>
<div style="text-align: justify;">
<b>DevExpress.ExpressApp.HtmlPropertyEditor.Win.HtmlPropertyEditor</b> - this is a part of <a href="https://documentation.devexpress.com/eXpressAppFramework/113140/Concepts/Extra-Modules/HTML-Property-Editor/HTML-Property-Editor-Module">HTML Property Editor Module</a> that integrates the <a href="https://msdn.microsoft.com/library/system.windows.forms.webbrowser(v=vs.110).aspx">System.Windows.Forms.WebBrowser</a> component. </div>
<div style="text-align: justify;">
<b>DevExpress.ExpressApp.Win.Editors.RichTextPropertyEditor</b> - this is a part of the standard DevExpress.ExpressApp.Win module that integrates the <a href="https://msdn.microsoft.com/library/system.windows.forms.richtextbox(v=vs.110).aspx">System.Windows.Forms.RichTextBox</a> component.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
We created them almost 10 years ago when DevExpress did not provide controls with similar functions. Today, their usage is not justified also because of missing High DPI support, nice icons and useful functions like Mail Merge. Workarounds can be implemented for these standard controls too, but it does not make much sense to invest our resources into this when much better options are already available. These editors have not recently received updates in other areas anyway. This is still a maintenance work for our team that could have been spent on something else.</div>
<div style="text-align: justify;">
<br /></div>
<b><div style="text-align: justify;">
<b>What we want to change and how?</b></div>
<div style="text-align: justify;">
<b><a name='more'></a></b></div>
</b><div style="text-align: justify;">
<b>1.</b> We want to hide the <i>DevExpress.ExpressApp.Win.Editors.RichTextPropertyEditor</i> and its related APIs from Intellisense, the FeatureCenter demo and also from the Model Editor. This is all not to confuse new and existing users. Most Support Center tickets on it are from early days when users could not integrate our RichEditControl on their own with <a href="https://www.devexpress.com/Support/Center/Example/Details/E1509/how-to-create-a-propertyeditor-based-on-the-xtrarichedit-control">E1509</a> and the like.</div>
<div style="text-align: justify;">
If a string property was decorated with the <i>[EditorAlias(EditorAliases.RichTextPropertyEditor)] </i>attribute and no Office module is added, it will function as before for existing users. If the Office module is added into the app, its new PropertyEditor will be used instead. Since the <a href="https://documentation.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.EditorAliasAttribute.class">EditorAliasAttribute</a> feature has been documented only in 2017, the aforementioned declaration had almost zero usage according to our Support Center <a href="https://search.devexpress.com/?q=EditorAliases.RichTextPropertyEditor&m=SupportCenter">stats</a>.</div>
<div style="text-align: justify;">
If the DevExpress.ExpressApp.Win.Editors.RichTextPropertyEditor was set in PropertyEditorType in the Model Editor, everything will continue to function as before, even with the new Office module plugged in.</div>
<div style="text-align: justify;">
If you test Beta v18.1, you may see that our new PropertyEditor is called "RichEditPropertyEditor". We also want to rename it to RichTextPropertyEditor, because we screwed up with the naming. Since the DevExpress.ExpressApp.Win.Editors.RichTextPropertyEditor will be hidden from everywhere, new and existing users should not be confused by the same name.<br /></div>
<div style="text-align: justify;">
<b>2.</b> We want to stop recommending <i>DevExpress.ExpressApp.HtmlPropertyEditor.Win.HtmlPropertyEditor</i> for new projects, remove it from demos and mark as "obsolete" in learning materials like we did for <a href="https://documentation.devexpress.com/eXpressAppFramework/112773/Concepts/Extra-Modules/Reports-Obsolete/Reports-Module-Obsolete">Reports Module (Obsolete)</a>. Instead, we want to recommend our customers use the new Property Editor from the Office module (it also supports HTML content through the <i>DocumentStorageFormat</i> setting). For instance, in our MainDemo app, you can make this Model Editor setting for the Note class (after Beta v18.1 the full type name will likely change): </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<i><span style="color: blue; font-size: x-small;"> <BOModel></span></i></div>
<div style="text-align: justify;">
<i><span style="color: blue; font-size: x-small;"> <Class Name="DevExpress.Persistent.BaseImpl.Note"></span></i></div>
<div style="text-align: justify;">
<i><span style="color: blue; font-size: x-small;"> <OwnMembers></span></i></div>
<div style="text-align: justify;">
<i><span style="color: blue; font-size: x-small;"> <Member Name="Text" PropertyEditorType="DevExpress.ExpressApp.Office.RichEdit.Win.RichEditPropertyEditor" DocumentStorageFormat="Html" /></span></i></div>
<div style="text-align: justify;">
<i><span style="color: blue; font-size: x-small;"> </OwnMembers></span></i></div>
<div style="text-align: justify;">
<i><span style="color: blue; font-size: x-small;"> </Class></span></i></div>
<div style="text-align: justify;">
<i><span style="color: blue; font-size: x-small;"> </BOModel></span></i></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
If you do not want to migrate to the new editor, you can continue using the former one as you wish - no problem. Also, it was thus far not critical for our team to think about the removal date at this stage, but we will see how it goes in the future. Anyway, we do not expect any further development to this editor by the reasons I described above. <a href="https://www.devexpress.com/Support/Center/Question/Details/T515516/ways-to-migrate-old-xaf-reports-to-the-reportsv2-module">The same notes and procedures</a> apply here as for our Reports (Obsolete) module.</div>
<div style="text-align: justify;">
<br /></div>
<b><div style="text-align: justify;">
<b>Your feedback is needed!</b></div>
</b><div style="text-align: justify;">
This plan is NOT YET realized, but I wish to do so by v18.1 release time (in 2-3 weeks). This is the right time to avoid changes when more customers use the new Office module in their projects. If you support this initiative, we will describe the migration path in the Breaking Changes section of our What's New docs, as always. This should help improve user experience for many XAF users and save our team resources.</div>
<div style="text-align: justify;">
<br /></div>
<br />
I'd like to hear from you on what you think about this. Specifically:<br /><b>Q1: </b>Are you using DevExpress.ExpressApp.Win.Editors.RichTextPropertyEditor and DevExpress.ExpressApp.HtmlPropertyEditor.Win.HtmlPropertyEditor?<br /><b>Q2:</b> If so, what do you like about them, what problems did you experience so far and how important are they for you?<br /><b>Q3:</b> What do you think about the proposed changes and the migration path? How would you handle this yourself?<br />
<div style="text-align: justify;">
</div>
<br />
<div style="text-align: justify;">
<br /><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiAfmvM3EhOjO3_x_-rYo79KH2oh3Pg_qdozP_Lz4C8qUh1Lii1QgJhFmrzQbFHObExMyG02Vi9EDF0ZRnj-C6HtOeNhVe5Ljk_MPrHZ_sOdFkEM5QFjEeVg00-6HumfpiEhtYlFyGf2wE/s1600/FreeImages_cassette-tape_Jeff+Prieb.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="FreeImages.com/Jeff Prieb" border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiAfmvM3EhOjO3_x_-rYo79KH2oh3Pg_qdozP_Lz4C8qUh1Lii1QgJhFmrzQbFHObExMyG02Vi9EDF0ZRnj-C6HtOeNhVe5Ljk_MPrHZ_sOdFkEM5QFjEeVg00-6HumfpiEhtYlFyGf2wE/s400/FreeImages_cassette-tape_Jeff+Prieb.jpg" title="FreeImages.com/Jeff Prieb" width="400" /></a></div>
</div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com9tag:blogger.com,1999:blog-1944926148473713281.post-87588335499313581922018-04-20T02:24:00.000-07:002018-04-20T02:31:38.615-07:00XAF v18.1 - An application will not start if there are non-existent member or type info for the Application Model elements<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>Starting with <strong>v18.1</strong>, we have introduced checks for type and member info existence at the core level. If a type or member is not existent, the exception will be thrown by default:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXuZj09_IrfsvuohydpwzlVe7lypArDod0a6fZcHoLzkNyIE3Lb6bmFWBkvHfprAO5tJVQPK_j836Ym8CGVPilbExOU6WJPxVavKiuaDXpi3c_jFMeEMNtXc8mlfEB-TD4PZ-jl8dyQWmV/s1600/2018-04-20_1205.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="381" data-original-width="549" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXuZj09_IrfsvuohydpwzlVe7lypArDod0a6fZcHoLzkNyIE3Lb6bmFWBkvHfprAO5tJVQPK_j836Ym8CGVPilbExOU6WJPxVavKiuaDXpi3c_jFMeEMNtXc8mlfEB-TD4PZ-jl8dyQWmV/s1600/2018-04-20_1205.png" /></a></div>
<br />
<strong>NOTE:</strong> Type and member info is mandatory as ALL standard and third-party modules rely on it. We do NOT recommend disabling this check in production, because your application will still fail later (you may not notice it and it will happen on an end-user machine).<br />
<br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><strong>Typical but not all scenarios where you may see this error are:</strong><br />
- Code changes to an underlying object type structure. For instance, class renaming or removing, namespace or assembly changing; member renaming, removing or its underlying type changing (also applied to custom fields added at runtime).<br />
- Invalid model differences for changed types and members are still present (e.g., for ListView columns and a DetailView layout, appearance and validation rules).<br />
<br />
Please refer to <a href="https://www.devexpress.com/Support/Center/Question/Details/T583980/" style="background-color: yellow;">this Support Center article</a> for more details on possible solutions and ways to disable this behavior.</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com1tag:blogger.com,1999:blog-1944926148473713281.post-63167367931428125412018-04-16T05:03:00.000-07:002018-04-16T05:03:55.245-07:00Capturing a user's signature in an XAF mobile application - UPDATE for v17.2.8+<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>Starting with v17.2.8, <strong>MobilePropertyEditor</strong> supports the Edit <a href="https://documentation.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Editors.ViewEditMode.enum">ViewEditMode</a>. We updated our <a data-ticket="T583166" href="https://isc.devexpress.com/Thread/WorkplaceDetails/T583166">How to use a Signature Pad in XAF Mobile</a> example and enabled <strong>SignatureAction</strong> in the Edit mode accordingly. This improvement saves end-users time not only for this particular scenario (they no longer require to switch views), but also when working with regular image properties.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihOd4S_HPt3Hf4slacIW_PQUSVmqwvIo4aaS6snUXnX3uHBC4XgKsMrq3Z5BpqXKxClF_GeY79Le50q0YiVHdZWLEPag7mqGsVA0tsfXT1cLqy4Q49ihTCgptCm8wexZB7bDl72NOj5rvE/s1600/signed-away-2-1549841.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="FreeImages.com/Carl Dwyer" border="0" data-original-height="600" data-original-width="942" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihOd4S_HPt3Hf4slacIW_PQUSVmqwvIo4aaS6snUXnX3uHBC4XgKsMrq3Z5BpqXKxClF_GeY79Le50q0YiVHdZWLEPag7mqGsVA0tsfXT1cLqy4Q49ihTCgptCm8wexZB7bDl72NOj5rvE/s400/signed-away-2-1549841.jpg" title="FreeImages.com/Carl Dwyer" width="400" /></a></div>
<br />
To see the difference in action, refer to the GIF file below and compare it with the one from <a href="https://dennisgaravsky.blogspot.com/2017/12/capturing-users-signature-in-xaf-mobile.html">my previous post</a>:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinML6wtWPvFfCF3HdUqH3zmSmv4eaZY5MaasF-RLLVIqzFpj-q75D0W3hDWvO26z_YZSz0cz5_btLqDh6xl_eOy7jtAiU0j_S0Ljh623aVEMiKtQS4ra_DsJ20_03VwsXrrEpnihngF-cf/s1600/DirectImageEditingForSignaturePad.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="892" data-original-width="694" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinML6wtWPvFfCF3HdUqH3zmSmv4eaZY5MaasF-RLLVIqzFpj-q75D0W3hDWvO26z_YZSz0cz5_btLqDh6xl_eOy7jtAiU0j_S0Ljh623aVEMiKtQS4ra_DsJ20_03VwsXrrEpnihngF-cf/s640/DirectImageEditingForSignaturePad.gif" width="497" /></a></div>
<div style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; line-height: 1.5; margin-bottom: 0.5em; margin-top: 0.5em;">
<br /></div>
<b>Your feedback is needed!</b><br />
For early testing, we published a daily build. You can download it using the following link: <a href="http://downloads.devexpress.com/HotFixes/DXP/v17.2/DevExpressNETComponents-17.2.7.18099.exe">DevExpressNETComponents-17.2.7.18099.exe</a>. We look forward to hearing from you.</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com0tag:blogger.com,1999:blog-1944926148473713281.post-80834502334191327822018-04-12T05:01:00.001-07:002018-04-12T05:01:36.853-07:00Updates to the new Rich Text Editor Module and ASPxGridLookup-based PropertyEditor in v18.1<div dir="ltr" style="text-align: left;" trbidi="on">
Please do not miss the updates to the following KB articles from our team:<br />
<br />
<a href="https://www.devexpress.com/go/XAF_Try_RichTextEditorModule_v18.1.aspx">https://www.devexpress.com/go/XAF_Try_RichTextEditorModule_v18.1.aspx</a><br />
<i><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>We have moved further and added <a href="https://documentation.devexpress.com/WindowsForms/9330/Controls-and-Libraries/Rich-Text-Editor/Mail-Merge">Mail Merge</a> support to the new module. To enable this feature, set the MailMergeDataType property in RichEditWindowsFormsModule in Application Designer. Now it's also possible to work with multiple rich text editors in the Ribbon mode. You can open the content of the selected rich text editor in a popup window using the 'Show in Popup' context menu item. </i><i>Also now you can view rich text content in a list view's columns.</i><br />
<br /><a href="https://www.devexpress.com/go/XAF_Try_ASPxGridLookupPropertyEditor_v18.1.aspx">https://www.devexpress.com/go/XAF_Try_ASPxGridLookupPropertyEditor_v18.1.aspx</a><br /><i>ASPxGridLookupPropertyEditors provides the capability for creating/modifying objects via a popup window. The add and edit buttons open the popup window to create a new object or to modify a selected one. <a href="https://documentation.devexpress.com/AspNet/DevExpress.Web.ClearButton.class">ClearButton</a> allows clearing the editor value. </i><br />
<br />
<b>Your feedback counts!</b><br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>If you are an active Universal subscriber and would like to test these new features prior to the official release, download the <a href="https://www.devexpress.com/go/XAF_Try_v18.1_Preview_Build.aspx"><strong>DevExpress XAF v18.1 Preview installer</strong></a>. By providing early build access, we hope to find out whether our new features and solutions address your requirements and issues. Your testing efforts and your feedback help us deliver the best possible final implementation.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5o4u8snhhdi79eLjf4eNwlqkfTry399HxBX2n9yL8D_2gaDvizvHsBLd_mbqxaOAyIor_oXAKr8KFri92R2ZXirhwoEoo3WAv-X32fp6LYo0EKsqG9ztuy_bHG4tn8x7FlzAEk8tQof4k/s1600/test-me-1420159.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1170" data-original-width="1599" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5o4u8snhhdi79eLjf4eNwlqkfTry399HxBX2n9yL8D_2gaDvizvHsBLd_mbqxaOAyIor_oXAKr8KFri92R2ZXirhwoEoo3WAv-X32fp6LYo0EKsqG9ztuy_bHG4tn8x7FlzAEk8tQof4k/s400/test-me-1420159.jpg" width="400" /></a></div>
<br /></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com0tag:blogger.com,1999:blog-1944926148473713281.post-77284148717807899962018-04-03T08:32:00.003-07:002018-04-03T08:32:47.781-07:00Old entries in the XPObjectType table - YOUR FEEDBACK IS NEEDED!<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: justify;">
I am reviewing the priority of a quite dated <a href="https://www.devexpress.com/Support/Center/Question/Details/T451078"><b>SC item</b></a> on the subject and wanted to ask the community for help. The problem may occur when old business class libraries exist in the application folder. By default, XPO tries to load them by the <a href="https://documentation.devexpress.com/CoreLibraries/2632/DevExpress-ORM-Tool/Fundamentals/When-and-Why-XPO-Extends-the-Database-Schema">XPObjectType</a> info along with the new versions. This may lead to a conflict at runtime or startup performance degradation. In the latter case, assembly type resolution may come at a cost (see the point <b>3.5</b> under <a href="https://www.devexpress.com/Support/Center/Question/Details/T148978/how-to-measure-and-improve-the-application-s-performance">How to measure and improve the application's performance</a>).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Why are we hesitating to remove old XPObjectType entries by default?</b></div>
<div style="text-align: justify;">
<b>1.</b> Removing old XPObjectType records affects other apps accessing this database and is serious. Outdated service table records may relate to business class records too (<a href="https://documentation.devexpress.com/CoreLibraries/2019/DevExpress-ORM-Tool/Feature-Center/Object-Relational-Mapping/Inheritance-Mapping">inheritance mapping</a> is in use very often). So, deleting them will lead to foreign key constraint violation. Creating a sophisticated generic solution for this is not easy task.<a name='more'></a></div>
<div style="text-align: justify;">
<b>2.</b> XPObjectType table updates are safe only with the full database and application knowledge. Users possessing this knowledge can use ready options like the <i>ModuleUpdater.UpdateXPObjectType</i> method (SQL Server-specific) shown in the <a href="https://documentation.devexpress.com/eXpressAppFramework/113254/Task-Based-Help/Business-Model-Design/eXpress-Persistent-Objects-XPO/How-to-Handle-Renamings-and-Deletions-of-Business-Classes-and-their-Properties">How to: Handle Renamings and Deletions of Business Classes and their Properties</a> article. We also demonstrated a db-server agnostic updater in <a href="https://www.devexpress.com/Support/Center/Question/Details/T451078">the aforementioned ticket</a>.</div>
<div style="text-align: justify;">
<b>3.</b> We help XAF developers detect this fact by writing log messages. Check out your eXpressAppFramework.log file for the <i>"Resolve the 'DevExpress.ExpressApp.Workflow.v11.1' assembly"</i> and similar messages referring to outdated DevExpress assemblies. Of course, a developer or DBA can preview the XPObjectType table using database engine tools. </div>
<div style="text-align: justify;">
<b>4.</b> Old application assemblies living within the new application folder is unexpected in itself. At least, I would instinctively always prefer a fresh Windows install over an update. Even though we are aware of some specific scenarios (e.g., with plugins or locked assemblies), it is still easy to install the new application version into the new folder. This natural action will avoid these risky circumstances completely.</div>
<div style="text-align: justify;">
<b>5.</b> Finally, we heard less or almost nothing about this behavior lately. Most likely, this is because an XAF app stores <a href="https://documentation.devexpress.com/eXpressAppFramework/113698/Task-Based-Help/Application-Model/How-to-Store-the-Application-Model-Differences-in-the-Database">user settings in the database</a> and not in a file system by default and thus the point #4 is simpler.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Your feedback counts!</b></div>
<div style="text-align: justify;">
Regardless of the reasoning above, I want to learn better on how it looks from your side. Please answer two simple questions here in comments or use the <a href="https://www.devexpress.com/ask">https://www.devexpress.com/ask</a> service:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Q1.</b> Did you ever notice negative effects from the outdated type and assembly references in the XPObjectType table?</div>
<br />
<div style="text-align: justify;">
<b>Q2.</b> If so, describe your problems and use-case scenarios in greater detail. Also, comment on their frequency (e.g., once, every year, etc.) as well as on your current solution implementation and maintenance costs, if any.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
In advance, thank you very much for your help! Hopefully, I am not looking this way from your side😜</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcge1G8J0JDZ4t0raOF-RiNPwMtGZ_rbz4S1S3zul8_utcKN1ESYZwfDfi6dHgsU8s5hObF-zf27cPRShbLe__d2j3twsTMGZDJQN-Q9MJLIH_LGIRi5jUCF9wuaBchbsZyw2foxitfXHM/s1600/Question.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="FreeImages.com/Richard Dudley" border="0" data-original-height="890" data-original-width="1339" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcge1G8J0JDZ4t0raOF-RiNPwMtGZ_rbz4S1S3zul8_utcKN1ESYZwfDfi6dHgsU8s5hObF-zf27cPRShbLe__d2j3twsTMGZDJQN-Q9MJLIH_LGIRi5jUCF9wuaBchbsZyw2foxitfXHM/s400/Question.jpg" title="FreeImages.com/Richard Dudley" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com9tag:blogger.com,1999:blog-1944926148473713281.post-24121047348525442132018-03-26T09:58:00.002-07:002018-03-26T10:01:47.201-07:00Integrating UnitOfWork and XPObjectSpace descendants into an XAF app<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: justify;">
We've made some code changes for <b>v17.2.6+</b> as well as created two articles for advanced XAF developers who may need the subject for some low-level tuning:</div>
<div style="text-align: center;">
<a href="https://www.devexpress.com/Support/Center/Question/Details/T591324/how-to-customize-the-unitofwork-behavior-in-xpo-based-xaf-applications" style="background-color: yellow;">How to customize the UnitOfWork behavior in XPO-based XAF applications</a></div>
<br />
<br />
<div style="text-align: center;">
<a href="https://www.devexpress.com/Support/Center/Question/Details/T590896/how-to-customize-the-object-space-behavior-in-xpo-based-xaf-applications" style="background-color: yellow;">How to customize the Object Space behavior in XPO-based XAF applications</a></div>
<br />
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Sub-classing is itself easy. The most interesting part comes for the two popular security configurations: the <a href="https://documentation.devexpress.com/eXpressAppFramework/113436/Concepts/Security-System/Client-Side-Security-2-Tier-Architecture">Integrated</a> mode and the <a href="https://documentation.devexpress.com/eXpressAppFramework/113439/Concepts/Security-System/Middle-Tier-Security-WCF-Service">Middle-Tier</a> Application Server. Thankfully, this is rarely required for complex or specific scenarios only. Here are several customer tickets for your reference:</div>
<br />
<a href="https://www.devexpress.com/Support/Center/Question/Details/S39006/how-to-map-a-property-to-a-calculated-database-column-implement-a-read-only-persistent">How to map a property to a calculated database column (implement a read-only persistent property)</a><br />
<a href="https://www.devexpress.com/Support/Center/Question/Details/Q368491/xpo-and-sql-server-identity-fields">xpo and sql server identity fields</a><br />
<a href="https://www.devexpress.com/Support/Center/Question/Details/Q552435/using-inherited-unitofwork-object">Using inherited UnitOfWork object</a><br />
<a href="https://www.devexpress.com/Support/Center/Question/Details/T544197/xaf-create-createcustomobjectspaceprovider-with-parameters-from-login-window">XAF: Create CreateCustomObjectSpaceProvider with parameters from login window</a><br />
<a href="https://www.devexpress.com/Support/Center/Question/Details/Q359904/securitystrategycomplex-how-to-modify-objects-properties-in-code-when-the-user-does-not">SecurityStrategyComplex: How to modify objects/properties in code when the user does not have the permission?</a><br />
<br />
To learn more about low-level options to control how your application saves data and where, check out the <a href="https://www.devexpress.com/Support/Center/Example/Details/E411/how-to-customize-the-underlying-database-provider-options-and-data-access-behavior-in-xaf">How to customize the underlying database provider options and data access behavior in XAF</a>.<br />
<br />
<b>Your feedback is needed!</b><br />
Finally, I am just curious: if you search your entire solution in Visual Studio (Control+Shift+F) for any of the <i>": UnitOfWork"</i>, <i>": XPObjectSpace"</i>, <i>": XPObjectSpaceProvider"</i> strings or their VB.NET equivalents (e.g., <i>Inherits UnitOfWork</i>), how many occurrences would you have and for what? Please let me know in the comments!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9EIzEn6AmVQx-25NQrhdZyAhojsSaQeIi0m0lBupcu4fx_j3zJjJ3Bd7eX4ePk9GcK12AKWofMKW1_bB1gz4w81zv4cK7ePAvGVEgsTLvmBhzi_PRyZRA91qbnz1kFOcFZKUdZ7EXKDGb/s1600/rocket-engines-1255483.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="FreeImages.com/Terry Eaton" border="0" data-original-height="1071" data-original-width="1599" height="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9EIzEn6AmVQx-25NQrhdZyAhojsSaQeIi0m0lBupcu4fx_j3zJjJ3Bd7eX4ePk9GcK12AKWofMKW1_bB1gz4w81zv4cK7ePAvGVEgsTLvmBhzi_PRyZRA91qbnz1kFOcFZKUdZ7EXKDGb/s400/rocket-engines-1255483.jpg" title="FreeImages.com/Terry Eaton" width="400" /></a></div>
<br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com4tag:blogger.com,1999:blog-1944926148473713281.post-89797441395157685652018-03-08T03:09:00.000-08:002018-03-08T03:14:24.036-08:00XAF WinForms v17.2.6 - Beware of missing icons in inactive tabs after restoring the Tabbed MDI layout<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>I want to draw your attention to the <a href="https://www.devexpress.com/Support/Center/Question/Details/T611846/" style="background-color: yellow;">T611846: DocumentManager - TabbedView does not show images for documents</a> issue already fixed in the XtraBars Suite and which XAF WinForms Tabbed MDI users might encounter after upgrading to v<strong>17.2.6</strong>. The number of users who already hit this exceeded a certain threshold, and the <a href="https://www.devexpress.com/Support/Center/VersionHistory?TechnologyName=.NET&PlatformName=AllPlatforms&ProductName=AllProducts&VersionHistoryItemsType=KnownIssues&StartBuildName=17.2.6&EndBuildName=17.2.6&version-mode=single-mode">known issues</a> section in the What's New documentation or manual searching the Support Center may not help effectively discover it yourself. So, I am posting this here to widely inform those who have not yet upgraded their XAF/WinForms projects to v17.2.6.</div>
<br />
You can also download a <a href="http://downloads.devexpress.com/HotFixes/DXP/v17.2">hotfix build from here</a>.<br />
<br />
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>Please accept sincerely apologies from our XAF and XtraBars teams for all the inconvenience here.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpbDk6ZSHAAg_L8JPwK3HJRRB3Hc2IE_QwSgeuovb3556xSWUXeUzQJLQ0RGTNw7C-5Jk3aOh3sExUwHaDnJKyLs_rud4uoxoOn8VXX4owpywDQXwMqsZqbsD_A-t2DYC2o721Hz5wRC6Z/s1600/MainDemo.Win.Ribbon_2018-03-06_16-27-00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="308" data-original-width="498" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpbDk6ZSHAAg_L8JPwK3HJRRB3Hc2IE_QwSgeuovb3556xSWUXeUzQJLQ0RGTNw7C-5Jk3aOh3sExUwHaDnJKyLs_rud4uoxoOn8VXX4owpywDQXwMqsZqbsD_A-t2DYC2o721Hz5wRC6Z/s400/MainDemo.Win.Ribbon_2018-03-06_16-27-00.png" width="400" /></a></div>
<br /></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com2tag:blogger.com,1999:blog-1944926148473713281.post-64609068618056827802018-03-08T02:30:00.000-08:002018-03-08T02:35:52.999-08:00Diagnostic tool for Security System - YOUR FEEDBACK IS NEEDED!!!<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; font-family: inherit; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US">Earlier we described </span><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; font-family: inherit; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US"><a href="https://dennisgaravsky.blogspot.com/2017/12/how-to-diagnose-effective-access-rights.html">the prototype of diagnostic tool</a></span><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; font-family: inherit; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US">. We created it to help a developer to understand why access to a certain object and its members </span><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; font-family: inherit; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US">is allowed</span><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; font-family: inherit; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US"> or denied. </span><span class="EOP SCXW190877316" data-ccp-props="{"201341983":0,"335551550":1,"335551620":1,"335559739":160,"335559740":259}" style="background-color: transparent; font-family: inherit; line-height: 22px; margin: 0px; padding: 0px;"> </span>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text; z-index: 0;">
<div class="Paragraph SCXW190877316" paraeid="{6ad3b3d5-c6b7-49f3-9e19-ac2ef2a94f3f}{202}" paraid="538820125" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<div style="text-align: justify;">
<span style="font-family: inherit;"><span class="TextRun EmptyTextRun SCXW190877316" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-variant-ligatures: none !important; line-height: 19px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"></span><span class="LineBreakBlob BlobObject DragDrop SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; line-height: 19px; margin: 0px; padding: 0px; user-select: text;"><span class="SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; margin: 0px; padding: 0px; user-select: text; white-space: pre !important;"> </span></span><span class="TextRun EmptyTextRun SCXW190877316" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-variant-ligatures: none !important; line-height: 19px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"></span><span class="EOP SCXW190877316" data-ccp-props="{"201341983":0,"335551550":1,"335551620":1,"335559739":160,"335559740":259}" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; line-height: 19px; margin: 0px; padding: 0px; user-select: text;"> </span></span></div>
</div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; margin: 0px; overflow: visible; padding: 0px; position: relative; text-align: left; user-select: text;">
<div class="Paragraph SCXW190877316" paraeid="{6ad3b3d5-c6b7-49f3-9e19-ac2ef2a94f3f}{206}" paraid="1339924311" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<div style="text-align: justify;">
<span style="font-family: inherit;"><span class="TextRun SCXW190877316" lang="EN-US" style="color: #111111; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US">We analyzed the feedback we got on this matter and provided the following improvements in <b>v17.2.6</b>:</span></span></div>
</div>
<div class="Paragraph SCXW190877316" paraeid="{6ad3b3d5-c6b7-49f3-9e19-ac2ef2a94f3f}{206}" paraid="1339924311" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<span style="background-color: transparent; font-family: inherit;"><span style="background-color: transparent; color: windowtext;"> - To enable the security diagnostic tool, use the familiar </span></span><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US"><a href="https://documentation.devexpress.com/eXpressAppFramework/112818/Concepts/Extend-Functionality/Determine-Why-an-Action-Controller-or-Editor-is-Inactive">EnableDiagnosticActions</a></span><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US"> option.</span></div>
</div>
<div class="SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; margin: 0px; padding: 0px; text-align: left; user-select: text;">
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; clear: both; cursor: text; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text; z-index: 0;">
<div class="Paragraph SCXW190877316" paraeid="{6ad3b3d5-c6b7-49f3-9e19-ac2ef2a94f3f}{234}" paraid="840137810" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<span style="background-color: transparent; font-family: inherit;"> - You can select a type and a member you wish to analyze.</span></div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; clear: both; cursor: text; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text; z-index: 0;">
<div class="Paragraph SCXW190877316" paraeid="{6ad3b3d5-c6b7-49f3-9e19-ac2ef2a94f3f}{243}" paraid="1621326445" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<span style="background-color: transparent; font-family: inherit;"> - Results </span><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; font-family: inherit; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US">are presented</span><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; font-family: inherit; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US"> in the XML format.</span></div>
</div>
</div>
<div class="SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; margin: 0px; padding: 0px; user-select: text;">
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; clear: both; cursor: text; margin: 0px; overflow: visible; padding: 0px; position: relative; text-align: left; user-select: text; z-index: 0;">
<div class="Paragraph SCXW190877316" paraeid="{0d6c9a2b-9367-421b-937c-3388d8cb7f78}{1}" paraid="816433477" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<span style="background-color: transparent; font-family: inherit;"> - We provide more details on how the diagnostic tool calculates results.</span></div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text; z-index: 0;">
<div class="Paragraph SCXW190877316" paraeid="{0d6c9a2b-9367-421b-937c-3388d8cb7f78}{10}" paraid="2011532958" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; text-align: left; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<span style="background-color: transparent; font-family: inherit;"> - There is a way to visualize criteria for easier analysis.</span></div>
<span class="LineBreakBlob BlobObject DragDrop SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; line-height: 19px; margin: 0px; padding: 0px; user-select: text;"></span><br />
<div>
</div>
<span class="LineBreakBlob BlobObject DragDrop SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; line-height: 19px; margin: 0px; padding: 0px; user-select: text;">
</span></div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text; z-index: 0;">
<div class="Paragraph SCXW190877316" paraeid="{0d6c9a2b-9367-421b-937c-3388d8cb7f78}{19}" paraid="897622247" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<span style="background-color: transparent; color: #111111; font-family: inherit;">You can get more info about the tool from the KB article below:</span><br />
<span style="background-color: transparent; color: #111111; font-family: inherit;"><br /></span></div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative;">
<div class="Paragraph SCXW190877316" paraeid="{0d6c9a2b-9367-421b-937c-3388d8cb7f78}{35}" paraid="482158282" style="padding: 0px; vertical-align: baseline; word-wrap: break-word;">
<span style="font-family: inherit;"><span class="TextRun SCXW190877316" lang="EN-US" style="background-color: transparent; color: #111111; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US"> </span><span class="TextRun SCXW190877316" lang="EN-US" style="color: #111111; line-height: 22px; margin: 0px; padding: 0px;" xml:lang="EN-US"><a href="https://www.devexpress.com/kb=T589182" style="background-color: yellow;">https://www.devexpress.com/kb=T589182</a>. </span><span class="EOP SCXW190877316" data-ccp-props="{"201341983":0,"335551550":1,"335551620":1,"335559739":160,"335559740":259}" style="background-color: transparent; line-height: 22px; margin: 0px; padding: 0px;"> </span></span></div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text; z-index: 0;">
<div class="Paragraph SCXW190877316" paraeid="{0d6c9a2b-9367-421b-937c-3388d8cb7f78}{37}" paraid="1766274713" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<br /></div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text; z-index: 0;">
<div class="Paragraph SCXW190877316" paraeid="{0d6c9a2b-9367-421b-937c-3388d8cb7f78}{45}" paraid="284577612" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><strong>Your feedback is needed</strong><br />
<div style="text-align: justify;">
<span style="background-color: transparent;">Please test the tool and let us know whether it is useful in your development process and how you would change it. For instance, the more specific there are use cases of this tool where it was difficult to configure permissions for a user, the greater it is possible that we can arrive at technical solutions that will address them.</span></div>
</div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXW190877316" paraeid="{0d6c9a2b-9367-421b-937c-3388d8cb7f78}{63}" paraid="1149367714" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<br /></div>
</div>
<div class="OutlineElement Ltr SCXW190877316" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXW190877316" paraeid="{0d6c9a2b-9367-421b-937c-3388d8cb7f78}{67}" paraid="627060897" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=1944926148473713281" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=1944926148473713281" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdJoPheHrAcTN4rbkeBycmtqGO5_OdIigJ9Pu9pljolxNe59DJP_TjSZY2qh2z5n0r_br3xxLRPmWHvk38tPA3qLBm2-EtTH4ohr06cPWJEnL-P_bdJZWn_7We3t4HTEo2v-yZzG5feE-Y/s1600/SecurityDemo.Win_2018-03-08_12-55-32.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="624" data-original-width="986" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdJoPheHrAcTN4rbkeBycmtqGO5_OdIigJ9Pu9pljolxNe59DJP_TjSZY2qh2z5n0r_br3xxLRPmWHvk38tPA3qLBm2-EtTH4ohr06cPWJEnL-P_bdJZWn_7We3t4HTEo2v-yZzG5feE-Y/s400/SecurityDemo.Win_2018-03-08_12-55-32.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br /></div>
</div>
</div>
Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-1944926148473713281.post-35677941637832858442018-02-26T09:02:00.002-08:002018-02-26T09:02:41.337-08:00AccessViolationException at Microsoft.VisualStudio.Shell.Interop.IVsRegisterEditors.UnregisterEditor may occur in Visual Studio 2010, 2012<div dir="ltr" style="text-align: left;" trbidi="on">
<br />This sporadic design time error might go away in Visual Studio 2013, 2015, 2017 and newer. <br /><br />
<span style="color: blue;"><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><strong><em>Exception</em></strong><em><br /></em><strong><em><br />Type:</em></strong><em> System.AccessViolationException</em><strong><em><br />Message:</em></strong><em> Attempted to read or write protected memory. This is often an indication that other memory is corrupt.<br /></em><strong><em>StackTrace:</em></strong><em><br /> Microsoft.VisualStudio.Shell.Interop.IVsRegisterEditors.UnregisterEditor(UInt32 dwCookie)<br /> Microsoft.VisualStudio.Shell.Package.Dispose(Boolean disposing)<br /> DevExpress.ExpressApp.Design.Core.XAFPackageV4.Dispose(Boolean disposing)<br /> Microsoft.VisualStudio.Shell.Package.Microsoft.VisualStudio.Shell.Interop.IVsPackage.Close()</em></span><br />
<em><br /></em>
<br />
<div style="text-align: justify;">
We have been tracking this error for years from XAF users using <a href="https://logify.devexpress.com/">https://logify.devexpress.com</a>. We also received a few tickets, but could never replicate this behavior for debugging. Our attempts to log diagnostic information about this error did not help either. Well, it does not seem to relate to the <i>DevExpress.ExpressApp.Design.Core.XAFPackageV4.Dispose</i> method itself. There are also many non-XAF reports devoted to the same error, but different packages on the Web. <a href="https://www.google.com/search?q=Microsoft.VisualStudio.Shell.Interop.IVsRegisterEditors.UnregisterEditor+accessviolationexception">https://www.google.com/search?q=Microsoft.VisualStudio.Shell.Interop.IVsRegisterEditors.UnregisterEditor+accessviolationexception</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
From the Logify stats, we know that this error occurs only with these two old Visual Studio versions. It seems that something got fixed in newer IDE versions. If you are on Visual Studio 2010 or 2012 and encountered this error at design time, consider upgrading your IDE - it's 2018 after all:-)</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPZxw63yXVC9QZUGFoVub2S3C_JwJCa55OC7LTM7nBWf2f3FkGKNk0ZLezRoi_-P81SXlBD9qs-vaRYV_Ra9-Z8z0K6HEnIJXl9HpaKdL4x6LIdoPzHgcJZkR1S1taFIv6nIVLLRBK5Cgm/s1600/5000576310_63351104a8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="360" data-original-width="480" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPZxw63yXVC9QZUGFoVub2S3C_JwJCa55OC7LTM7nBWf2f3FkGKNk0ZLezRoi_-P81SXlBD9qs-vaRYV_Ra9-Z8z0K6HEnIJXl9HpaKdL4x6LIdoPzHgcJZkR1S1taFIv6nIVLLRBK5Cgm/s400/5000576310_63351104a8.jpg" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<br />
<br />
<br />
<br />
<br /></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com0tag:blogger.com,1999:blog-1944926148473713281.post-60329776416445731812018-02-21T03:58:00.000-08:002018-03-06T02:55:17.897-08:00Usability change for SingleChoiceAction with a single visible sub-item - YOUR FEEDBACK IS NEEDED!!!<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: justify;">
We have incorporated the usability improvement from <a href="http://dennisgaravsky.blogspot.com/2017/03/how-to-customize-new-object-action-with.html">my past post</a> in v18.1 by default. It affects <a href="https://documentation.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Actions.SingleChoiceAction.class">SingleChoiceAction</a> with <i>ShowItemsOnlyClick = False</i> and <i>ItemType = ItemIsOperation </i> and should improve UX for the majority of our users. We also want to enable the same behavior in an upcoming minor update (e.g., v17.2.6 or next). Our team would appreciate your feedback to help us decide on the latter.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi97eDIoZLJgtCg4FzR8ktHWRE66xTNOmPtpTLDf1xleqIjat902drBqiBnPbcOuQeOXiBeWVCFpPJJFihsWzusLbWC4Rp2kTW6pM1Pj_MMjEhX3iUQ9uwhy-OrT2iiQ2Iz2grXvCl3BvNS/s1600/survey-opinion-research-voting-fill-159353.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="585" data-original-width="940" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi97eDIoZLJgtCg4FzR8ktHWRE66xTNOmPtpTLDf1xleqIjat902drBqiBnPbcOuQeOXiBeWVCFpPJJFihsWzusLbWC4Rp2kTW6pM1Pj_MMjEhX3iUQ9uwhy-OrT2iiQ2Iz2grXvCl3BvNS/s400/survey-opinion-research-voting-fill-159353.jpeg" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<b></b><br />
<div style="text-align: justify;">
<b><b>Questions/Risks</b></b></div>
<b>
</b>
<div style="text-align: justify;">
While this behavior is always desired for the <i>New</i> & <i>Clone </i>Actions, because their meaning is clear from the context, certain custom and built-in Actions like <i>Show In Report</i>, <i>Change State</i> may be affected when they keep only a single sub-item. Examples:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<u>17.2.5 and older versions</u>:</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeReXLEIVi-xbUkPKlGzs5k2ruIr6rP3kleivbDGApZSOg-fRAdJAPzeLoLfv_fzEvIAMb5aXbJjWJJ7FZ5vPPwPWSbIrM8m2FzVQ_Fjs2urJevpIOuQnJx8xhMMkQjovbOM4W6jCADaQG/s1600/MainDemo.Win.Ribbon_2018-02-21_14-34-34.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="160" data-original-width="222" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeReXLEIVi-xbUkPKlGzs5k2ruIr6rP3kleivbDGApZSOg-fRAdJAPzeLoLfv_fzEvIAMb5aXbJjWJJ7FZ5vPPwPWSbIrM8m2FzVQ_Fjs2urJevpIOuQnJx8xhMMkQjovbOM4W6jCADaQG/s320/MainDemo.Win.Ribbon_2018-02-21_14-34-34.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_3dm5LomGbjYhNIIyX1AxT6e17jsh1RF7BYtrV9FB3sU8qnAQWWwfqSJxNWWhFCS5ew1hNT8pOkYScKIgIcFEbivY9dCbApQbvqxDIyuQ9K5F4xkbSX-7d6DeBHmk_EQ4yVXWIKOmNapH/s1600/FeatureCenter.Win_2018-02-21_11-53-56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="220" data-original-width="385" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_3dm5LomGbjYhNIIyX1AxT6e17jsh1RF7BYtrV9FB3sU8qnAQWWwfqSJxNWWhFCS5ew1hNT8pOkYScKIgIcFEbivY9dCbApQbvqxDIyuQ9K5F4xkbSX-7d6DeBHmk_EQ4yVXWIKOmNapH/s320/FeatureCenter.Win_2018-02-21_11-53-56.png" width="320" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<u>18.1 (and 17.2.6+, if the majority likes it)</u>:</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCEkXxijj4mzbcVIjnMDpmhkl9stw_Y4Cb5vmx_upvWlGD0tyJ2n4RxzahO4O5fvlViWIc29Yf1NSRnGgkWaAmoTCOKihmTA9ESKKv09wEPke7j_pWJxL19UFlYzr24UdezOpX_tvi5Zrb/s1600/MainDemo.Win_2018-02-21_11-57-39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="163" data-original-width="373" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCEkXxijj4mzbcVIjnMDpmhkl9stw_Y4Cb5vmx_upvWlGD0tyJ2n4RxzahO4O5fvlViWIc29Yf1NSRnGgkWaAmoTCOKihmTA9ESKKv09wEPke7j_pWJxL19UFlYzr24UdezOpX_tvi5Zrb/s400/MainDemo.Win_2018-02-21_11-57-39.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDMfvkW9eM75K9NV-Xd3XiNHZhWIe5Q8oDX45WfAzC4_7p5plnqVAPUyQMvXf-hbse798-yS9wj9wvzXpBh2VwfhAgbfRopYqys1TDO9CnSAtXWyr2Pm_1nlvL1JXMqzidXsJbjPJ18fum/s1600/FeatureCenter.Win_2018-02-21_12-02-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="216" data-original-width="435" height="197" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDMfvkW9eM75K9NV-Xd3XiNHZhWIe5Q8oDX45WfAzC4_7p5plnqVAPUyQMvXf-hbse798-yS9wj9wvzXpBh2VwfhAgbfRopYqys1TDO9CnSAtXWyr2Pm_1nlvL1JXMqzidXsJbjPJ18fum/s400/FeatureCenter.Win_2018-02-21_12-02-01.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Notice that we've replaced a dropdown/triangle glyph with a simple button. We believe that this visual change is still not breaking (and thus is acceptable for a minor version), and it all is more logical than it was before. Before, when ShowItemsOnClick = False, you could still press the SingleChoiceAction's button blindly, i.e., without expanding its items using the triangle glyph. To help you avoid mistakes, the button is now displayed in the ChoiceActionItem's tooltip. You can also control the default Action item behavior using the DefaultItemMode property. If you do not like the new behavior, you can always set ShowItemsOnClick = True in the Model Editor.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Question:</b> <span style="background-color: yellow;">Are you OK to have this new behavior as default in v17.2.6+ too? </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Please answer with +1 or -1 with comments in this post. If you need to test your real apps live before making a decision, I can provide you with v17.2 or v18.1 hotfix builds. Thanks for your help in advance.<br />
<br />
<b><span style="font-size: large;">UPDATE:</span></b><br />
Thanks to everyone! With v17.2.6, this behavior is enabled by default.</div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com31tag:blogger.com,1999:blog-1944926148473713281.post-72046708825552431282018-02-14T16:10:00.002-08:002018-02-14T16:10:41.504-08:00Learning through reading the source code<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
I will start this post with the new Visual Studio 2017 function, which I hope will be helpful for XAF developers too. I have both RTM and Preview versions installed, but I am mostly using the latter one for testing. The new function I spotted in their <a href="https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-preview-relnotes"><i>change logs</i></a> is called "<b>View decompiled source definitions instead of metadata (C#)</b>".</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
As you can guess from its name, it changes the very often used "<b>Go To Definition</b>" command (F12) so that it displays the actual code of a C# type or member who's source code is unavailable - very useful and convenient, IMHO. It is decompiled using <b>ILSpy</b>, the tool I have already been using for years as default program association for opening *.dll files - partially the reason of why this news got my attention. This experimental feature is new in <b>Visual Studio 2017 version 15.6 preview 2+ </b>and it must be turned on explicitly using the <b>Tools > Options > Text Editor > C# > Advanced > Enable navigation to decompiled sources</b> menu item. </div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxeNogqpP-ooZr1Ogh_ag8Lt-yYhycDQCWzkdsG8KjIoWz_ZBH4SenPEZqj4JHslOsGbOncvRrmiaVXqCGHrUOlfVOx6xivprEFhsZ9F2T0FjAQE02K4WEzG1nGij8A8u1AuQjmEQV5wVu/s1600/book.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="440" data-original-width="586" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxeNogqpP-ooZr1Ogh_ag8Lt-yYhycDQCWzkdsG8KjIoWz_ZBH4SenPEZqj4JHslOsGbOncvRrmiaVXqCGHrUOlfVOx6xivprEFhsZ9F2T0FjAQE02K4WEzG1nGij8A8u1AuQjmEQV5wVu/s400/book.jpg" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
<a name='more'></a><br /><br />
<div style="text-align: justify;">
When you focus an external library API whose source code you do not own, and press <b>F12</b>, Visual Studio will first show a boring confirmation dialog (BTW, can it be avoided at all?):</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhczNAcdNvvl8MRWCRTQsB7wZg_8pd7n77FvCKKkXR_RrhzFEbY_jhUeFDoEivA6pIx6uNUVjGxHkYutxxsQXAa-JijG1aJq-DIxzwR0Txt5C4dd8-x9Hg5nNK13QuGekn4Qoi9RnEI90l3/s1600/devenv_2018-02-08_02-34-06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="560" data-original-width="603" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhczNAcdNvvl8MRWCRTQsB7wZg_8pd7n77FvCKKkXR_RrhzFEbY_jhUeFDoEivA6pIx6uNUVjGxHkYutxxsQXAa-JijG1aJq-DIxzwR0Txt5C4dd8-x9Hg5nNK13QuGekn4Qoi9RnEI90l3/s320/devenv_2018-02-08_02-34-06.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="text-align: left;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
and then the actual code for you to learn:<br />
<br />
<div style="text-align: center;">
<img alt="Viewing a decompiled definition" height="166" src="https://docs.microsoft.com/en-us/visualstudio/ide/media/go-to-definition-decompiled-sources.png" width="400" /></div>
<div style="text-align: justify;">
Check out the <a href="https://docs.microsoft.com/en-us/visualstudio/ide/go-to-and-peek-definition#view-metadata-as-source-code-c"><i>the official docs</i></a> for more details.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I am paying attention to this primarily because in my opinion, it is difficult to become a good developer quickly without reading various source code (this is not specific to XAF itself), and this new function helps on this long path. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
If we talk about XAF specifically, then for certain <b>advanced tasks</b> like <a href="https://documentation.devexpress.com/eXpressAppFramework/113610/Concepts/UI-Construction/Using-a-Custom-Control-that-is-not-Integrated-by-Default"><i>creating complex and powerful custom XAF UI elements</i></a> (e.g., compared to the default ones by covered scenarios), <b>researching and debugging the XAF source code is strongly advised for better efficiency or troubleshooting.</b> That's because the XAF source code of standard List and Property Editors, Actions Containers, Templates and other UI elements contain dozens of perfect real-world examples and best practices to learn besides often simpler code examples in demos, support knowledge base and online documentation. Just look at "<i>c:\Program Files (x86)\DevExpress 17.1\Components\Sources\DevExpress.ExpressApp\DevExpress.ExpressApp.Web\Editors\ASPx\"</i> and other folders and you will see what I mean.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Practically, these examples should help you better understand how things work under the hood, remember more and more good patterns, compare your code with the best practices and spot errors, missing standard scenarios in your own implementation. For those who forgot, the DevExpress source code can also be installed by our installation, so no external tools are required to inspect it (a valid license is required, though): </div>
<div style="text-align: justify;">
<a href="https://www.devexpress.com/Support/Center/Question/Details/KA18677/where-can-i-get-demo-source-code-folder-installed-assemblies-or-source-code-on-machines"><i>Where can I get demo source code folder, installed assemblies, or source code on machines with different OS versions</i></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Debugging the source code is also part of the same learning process and is no less important in my opinion. For this, there is a standard approach with symbols can be helpful: </div>
<div style="text-align: justify;">
<a href="https://www.devexpress.com/Support/Center/Question/Details/KA18843/how-can-i-debug-devexpress-net-source-code-using-pdb-files"><i>How can I debug DevExpress .NET source code using PDB files</i></a>. It is also no secret that there are alternative options with paid or free tools like dotPeek that can be helpful for external libraries code inspection and debugging as well. What I am describing may look too advanced for an average XAF developer, but believe me this is not rocket science and mastering those techniques can really save you a lot of time and nerves.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>See Also:</b></div>
<a href="https://documentation.devexpress.com/eXpressAppFramework/112670/eXpressApp-Framework">eXpressApp Framework</a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a> > <a href="https://documentation.devexpress.com/eXpressAppFramework/112683/Concepts">Concepts</a> > <a href="https://documentation.devexpress.com/eXpressAppFramework/112572/Concepts/Debugging-Testing-and-Error-Handling">Debugging, Testing and Error Handling</a></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com2tag:blogger.com,1999:blog-1944926148473713281.post-53143090214445107682018-02-14T13:52:00.001-08:002018-02-15T06:43:27.191-08:00Customization Forms and Model Editor Improvements - XAF v17.2.6<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
Customizing <a href="https://documentation.devexpress.com/eXpressAppFramework/112833/Getting-Started/Comprehensive-Tutorial/UI-Customization/Customize-the-View-Items-Layout"><i>Views layout</i>,</a> e.g., making certain fields visible, changing their locations is something that XAF developers usually learn and appreciate from day one. That is because you can drastically change the UI of your app by just moving the mouse and without any coding and recompilation, also at runtime. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The next maintenance release (<b>v17.2.6</b>) should come with a few minor improvements to the customization forms in DetailView, ListView and the Model Editor, which we hope will be welcomed by both developers and end-users as well.<br />
<br /></div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHPBhUrH0XwP8jZas23grWQEh5uW4rah4YuOnEQjLnrDBmv2N7Vs8ylIbbwBtn8dbzPPZMF2yIJtxCB_orPZUFKib75o0TT5cS3XYZQlhkTp99PLCidtd50uw0ca2Dy-vH8s2xydmEoZdT/s1600/MainDemo.Win.Ribbon_2018-02-15_01-27-29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="339" data-original-width="641" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHPBhUrH0XwP8jZas23grWQEh5uW4rah4YuOnEQjLnrDBmv2N7Vs8ylIbbwBtn8dbzPPZMF2yIJtxCB_orPZUFKib75o0TT5cS3XYZQlhkTp99PLCidtd50uw0ca2Dy-vH8s2xydmEoZdT/s400/MainDemo.Win.Ribbon_2018-02-15_01-27-29.png" width="400" /></a></div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<a name='more'></a><br />
<ol style="text-align: left;">
<li style="text-align: justify;">The customization forms will preserve their size and position. In the Model Editor, the settings will be stored permanently either in the Application Model (runtime) or in the *.SUO file (design time). The same form at runtime will maintain its settings during application life time only. This small difference is intentional: it should still be convenient to make several extensive customizations at once, but will certainly avoid any possible confusion and support calls from end-users saving and forgetting their forms in some unexpected place/state. This must work fine with multiple monitors, tabbed MDI and SDI, multiple root and nested Views (last closed form settings win). Anyway, should you notice anything unexpected here during your tests, please let us know.</li>
<li style="text-align: justify;">The customization forms will have the search box enabled by default. In real world applications with 100-200 items it should greatly save time on searching a required item.</li>
<li style="text-align: justify;">The customization forms will handle the Up/Down Arrow and Delete keys to quickly navigate or remove items in the main list. Again, it must save time in complex apps.</li>
<li style="text-align: justify;">The last item added from the Object Model dialog will be focused in all the customization forms. We experimented with this <i><a href="http://dennisgaravsky.blogspot.com/2017/09/focusing-newly-added-grid-column-in.html">a few months ago</a> </i>and decided to enable this helpful function everywhere.</li>
<li style="text-align: justify;">Finally and not related to the customization forms, we have enabled the behavior shown <a href="http://dennisgaravsky.blogspot.com/2017/10/how-to-group-validation-rules-by.html" style="text-align: justify;"><i>in this blog</i></a><span style="text-align: justify;"> post by default. Note that here we intentionally did not add another grouping level by namespace, not to complicate access, but we welcome to your thoughts on it.</span></li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3-3tziFam77hQiwjYw4RmIE0_EY-iCp1BiUKh5ey9sgVoom1n5wWM5xCQQIIYejz8HzCxtm0lEZ18OtclrlSz5aPrGixBZLfNgek9y-IM3VAlfL5bzyLBF8DqVFz1HOFsvFTQTvtXnBN5/s1600/MainDemo.Win.Ribbon_2018-02-15_00-48-13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="425" data-original-width="674" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3-3tziFam77hQiwjYw4RmIE0_EY-iCp1BiUKh5ey9sgVoom1n5wWM5xCQQIIYejz8HzCxtm0lEZ18OtclrlSz5aPrGixBZLfNgek9y-IM3VAlfL5bzyLBF8DqVFz1HOFsvFTQTvtXnBN5/s400/MainDemo.Win.Ribbon_2018-02-15_00-48-13.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
As always, my team and I welcome your feedback on these improvements if you want to test the nightly 17.2 build: <i><a href="http://downloads.devexpress.com/HotFixes/DXP/v17.2" style="text-align: left;">DevExpressNETComponents-17.2.exe</a>.</i> This test build does NOT yet include certain functionalities for the PivotChart, TreeListEditor and PivotGridListEditor, so test them with the GridListEdior and DetailView's layout for now. Should you have problems with the customization forms or anything else, we will be more than happy to listen and help.</div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com15tag:blogger.com,1999:blog-1944926148473713281.post-33858857785310213142018-02-08T05:35:00.002-08:002018-02-08T05:37:14.387-08:00Beware of the failures when uploading JPEG/JPG images using the System.Drawing.Image type properties - XAF ASP.NET WebForms v17.2.5<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a>I want to draw your attention to the <a href="https://www.devexpress.com/Support/Center/Question/Details/T604395/web-jpeg-jpg-images-cannot-be-uploaded-to-properties-of-the-system-drawing-image-type" style="background-color: yellow;">T604395: Web - JPEG/JPG images cannot be uploaded to properties of the System.Drawing.Image type</a></div>
<div style="text-align: justify;">
issue, which is already fixed in XAF <strong>v17.2.6</strong>. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
We apologize for the inconvenience, and if you cannot wait for the hotfix or did not plan to spend additional time on upgrade right now, please consider using the workarounds.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>Important notes and workarounds</strong></div>
<div style="text-align: justify;">
From v14.2, Image Property Editors (both WinForms and ASP.NET) support images saved as byte array objects (in addition to previously supported <a href="http://msdn.microsoft.com/en-us/library/system.drawing.image(v=vs.110).aspx">System.Drawing.Image</a> objects). This allows us to significantly decrease web server memory consumption because the byte array can contain an image in a compressed format and the server does not have to unpack it. The previous approach with the System.Drawing.Image type property is still supported, but <strong>we recommend that you migrate to the byte array</strong> storage to improve performance. Refer to the <a href="https://documentation.devexpress.com/eXpressAppFramework/113545/Concepts/Business-Model-Design/Data-Types-Supported-by-built-in-Editors/BLOB-Image-Properties/BLOB-Image-Properties-in-XPO">BLOB Image Properties in XPO</a> and <a data-ticket="T161967" href="https://www.devexpress.com/Support/Center/p/T161967.aspx">How to change the image property type from System.Drawing.Image to byte array</a> help topics for more details. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPZxw63yXVC9QZUGFoVub2S3C_JwJCa55OC7LTM7nBWf2f3FkGKNk0ZLezRoi_-P81SXlBD9qs-vaRYV_Ra9-Z8z0K6HEnIJXl9HpaKdL4x6LIdoPzHgcJZkR1S1taFIv6nIVLLRBK5Cgm/s1600/5000576310_63351104a8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="360" data-original-width="480" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPZxw63yXVC9QZUGFoVub2S3C_JwJCa55OC7LTM7nBWf2f3FkGKNk0ZLezRoi_-P81SXlBD9qs-vaRYV_Ra9-Z8z0K6HEnIJXl9HpaKdL4x6LIdoPzHgcJZkR1S1taFIv6nIVLLRBK5Cgm/s400/5000576310_63351104a8.jpg" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com0tag:blogger.com,1999:blog-1944926148473713281.post-39556386367792334312018-02-08T00:08:00.000-08:002018-02-08T00:08:01.486-08:00Minor improvements to the ConditionalAppearance and ViewVariants modules - XAF v17.2.6<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: justify;">
I also wanted to inform you of some "home work" done by us in <b>v17.2.6</b> to improve your XAF development experience with these modules:</div>
<div style="text-align: justify;">
</div>
<br />
<a href="https://www.devexpress.com/Support/Center/Question/Details/T579144/gridlisteditor-an-appearance-rule-has-no-effect-in-the-new-item-row-until-a-value-is">GridListEditor - An appearance rule has no effect in the new item row until a value is entered into any cell</a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><br />
<a href="https://www.devexpress.com/Support/Center/Question/Details/T601207/view-variants-module-listview-variant-always-takes-the-dataaccessmode-value-from-the">View Variants Module - ListView variant always takes the DataAccessMode value from the root node instead of own model differences, which may cause an exception due to an incompatible ListEditor type</a><a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5h4gSOSNvY7limRHZmzB6QfEcBHcO91XMAqItQNYWyc2_M37LlFGD9LlLG_cKIy0f3FUsu_d90Q-bVB18V6YE1qGGl3WXBSQeeBg9GlrdHO6cHsww5-dx_JlGZ5QdVePUxpGQbGCAKwAq/s1600/fix-it.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="FreeImages.com/linusb4" border="0" data-original-height="800" data-original-width="1200" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5h4gSOSNvY7limRHZmzB6QfEcBHcO91XMAqItQNYWyc2_M37LlFGD9LlLG_cKIy0f3FUsu_d90Q-bVB18V6YE1qGGl3WXBSQeeBg9GlrdHO6cHsww5-dx_JlGZ5QdVePUxpGQbGCAKwAq/s400/fix-it.jpg" title="FreeImages.com/linusb4" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<div style="text-align: justify;">
</div>
<br />
<div style="text-align: justify;">
While the first scenario is quite specific (we heard about it from our largest XAF customer and a few others), the second one was likely encountered if you use the ViewVariants module. For instance, when having one variant as a grid operating in server mode while having another variant as tree, pivot, scheduler or whatever ListView editor that does not support server mode. In the past, this unsupported configuration could cause an exception at runtime. Starting with v17.2.6, it all works as the majority our users expect - at least we believe so based on the feedback we received. The online documentation on the ViewVariants module will be updated accordingly by release time, of course. Finally, many <span style="text-align: left;">thanks to Dave Hesketh, Martin Praxmarer, our MVPs, as well as other customers for bringing this to our attention.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
If you cannot wait for the next maintenance update (v17.2.6) to test both things, install this <strong>night build</strong>: <a href="http://downloads.devexpress.com/HotFixes/DXP/v17.2">DevExpressNETComponents-17.2.exe</a></div>
<br />
<br />
As always, my team and I are looking forward to hearing what you think, even on such small things and maybe others that could make your life a bit easier.<br />
<span style="background-color: #e3a327; color: #666666; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; text-align: justify;"><br /></span></div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com5tag:blogger.com,1999:blog-1944926148473713281.post-5500396494998697462018-02-07T14:54:00.002-08:002018-02-07T14:54:59.262-08:00No Visual Studio designers for generic ViewController versions<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
XAF Controllers are technically descendants of the <i><a href="https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.component?view=netframework-4.7">System.ComponentModel.Component</a></i> class, primarily to be smoothly integrated with the Visual Studio design time features. The standard Component designer does not support <a href="https://docs.microsoft.com/en-us/dotnet/standard/generics/">generic classes</a> due to a Visual Studio limitation: <a href="https://stackoverflow.com/questions/6877217/can-visual-studio-designer-show-classes-inheriting-generic-types">https://stackoverflow.com/questions/6877217/can-visual-studio-designer-show-classes-inheriting-generic-types</a> </div>
<div style="text-align: justify;">
This is a Microsoft functionality and we cannot do much about it on our side. So, if you have a class like this, and try to double click it or use the Enter key for it in the Solution Explorer, you will receive this error, which is expected here:</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuSFGWmR7gntuQBhekCX3jmLYiFiEouYLkzB4sMqsdAAT6EZZH14-x5drmAmb5x3I8RW6lJd5o-1_ntfL5DrES6IH5fVlMqyb9XF6WhyXYwKkXEDP7aIg6JfHPsRDEeVHvUYCBDgrF-GyZ/s1600/generic-controller-error.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="661" data-original-width="700" height="377" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuSFGWmR7gntuQBhekCX3jmLYiFiEouYLkzB4sMqsdAAT6EZZH14-x5drmAmb5x3I8RW6lJd5o-1_ntfL5DrES6IH5fVlMqyb9XF6WhyXYwKkXEDP7aIg6JfHPsRDEeVHvUYCBDgrF-GyZ/s400/generic-controller-error.png" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
This has always caused support calls to us from day one and still causes them today. Check out <a href="https://www.devexpress.com/Support/Center/Question/Details/T584395/no-visual-designer-available-for-view-controllers-with-the-base-generic-base-class">this support article</a> to learn more about this situation and our previous recommendations.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Starting with <b>v17.2.6</b>, we have removed the visual designer association from the base <a href="https://documentation.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.ViewController~ViewType~.class">ViewController<ViewType></a> and <a href="https://documentation.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.ObjectViewController~ViewType~ObjectType~.class">ObjectViewController<ViewType, ObjectType></a> classes - they will always be opened directly in the Code Editor now. This should work fine in Visual Studio 2015, 2017 and newer versions. This does not work for Visual Studio 2013 and older versions and we decided not to investigate this further, because of the very low usage rate of these IDEs nowadays.</div>
<div style="text-align: justify;">
<br /></div>
<a href="https://www.blogger.com/null" name="_dx_frag_StartFragment"></a><br />
<br />
<div style="text-align: justify;">
We believe that this new behavior is most expected here and really hope that it will not cause new questions😀. Originally, generic View Controllers were specially designed for users who prefer to do everything manually and want to have a more elegant and compact code. So, opening the Code Editor for such classes is naturally expected. Taking this opportunity, we also improved our online documentation to further promote generic View Controllers, since most of our Support Center answers, demos and docs use this concise code approach anyway.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
My team and I are looking forward to hear from you on what you think of the new behavior.</div>
</div>
Dennis Garavskyhttp://www.blogger.com/profile/05439634942797151905noreply@blogger.com4