A. Bekiaris's Blog
Model Distribution with IO Engine
22 Σεπτεμβρίου 10 02:28 μμ
|
tolisss
|
0 σχόλια
ModelDifference module is one of the powerfull modules of eXpand . It really helps in managing your application models. Scenario Your application has been already distributed to your client and you no longer have access to the production database. Your client admin is responsible for that. But since development never stops as you know, you client asked for some model modification and some new application models (lets say 10) have been developed by your team and you want to sent them to the admin to update the application. eXpand IO module is the right one for the job Step1—Create a serialization graph to configure which objects/values you are going to export In order to create a serialization graph for an object type you have 1st to create a Serialization Configuration
Διαβάστε περισσότερα »
Make your navigation behave
20 Σεπτεμβρίου 10 01:03 μμ
|
tolisss
|
0 σχόλια
Xaf provides a very easy to configure navigation system and in this post i will speak about expand approach to make Xaf’s navigation system behave better than the one provided by default. To enable eXpand extended navigation behaviour one can use the ViewShortcutProccesor attribute either at BO level or at View level as shown in the next image Now what this ViewShortcutProccesor can do to speed up your development? Navigate to a detailview using a ReadOnlyParameter the above readonly parameter taken from eXpand feature center and is defined as public class ExternalApplicationKeyParameter : ReadOnlyParameter { public ExternalApplicationKeyParameter () : base ( "ExternalApplicationKey"
Διαβάστε περισσότερα »
Conditional Member Level Security
15 Σεπτεμβρίου 10 11:31 πμ
|
tolisss
|
0 σχόλια
DevExpress has the best support center I have ever seen, their Code Central really rocks and its fill with hundredths' of samples. One of them is is How to implement the MemberLevel security manually (for example, to deny the 'Read' access for declared properties of some business class, and allow access for the inherited properties eXpand has the above example as a module since its version 9 and you can use it by using the Xpand.ExpressApp.MemberLevelSecurity.dll assembly following the standard procedure for registering a xaf module. But in v10 we have boost it a little bit and we have make it conditional so now you can apply multiple Member Access Permissions to a member and by using the criteria member you can force the permission to be applied only to objects
Διαβάστε περισσότερα »
Non constant attributes parameters?
13 Σεπτεμβρίου 10 03:44 μμ
|
tolisss
|
0 σχόλια
Given my previous post Simple maths can boost your app performance did some more thoughts over it in this post .Net compiler says no!! An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type public class CustomAttribute : Attribute { public CriteriaOperator CriteriaOperator { get ; set ; } public CustomAttribute( CriteriaOperator criteriaOperator) { CriteriaOperator = criteriaOperator; } } [ CustomAttribute ( CriteriaOperator .Parse( "Name=?" , "eXpand" ))] public class Class1 { } the above cannot be compiled BUT XAF SAYS YES Why?
Διαβάστε περισσότερα »
ERP to XAF connection on the fly part1
08 Σεπτεμβρίου 10 08:57 πμ
|
tolisss
|
0 σχόλια
Some years ago (before Xaf was born) you have bought an ERP for your company and you are not satisfied with its Analysis,Reporting,PIvoting,Sceduling etv capabilities and you wish the creator of your ERP to have use Xaf instead. If you are looking for the most painful way to map your ERP database into a Xaf application expand framework has the solution for you its called WorldCreator SqlDBMapper module. That module can map any Sql server database into a Xaf application. Bellow I demo how you can use it. Create an empty eXpand solution or use an existing one and navigate to the persistent assembly listview create a new persistent assembly info object, for the sake of the demo i will map NorthWind database, Use the Tools/Map Database action to connect to a database
Διαβάστε περισσότερα »
Simple maths can boost your app performance
06 Σεπτεμβρίου 10 04:41 μμ
|
tolisss
|
0 σχόλια
Xaf provides methods in your controllers to enable you to customize the types that is using. I am speaking about the CustomizeTypesInfo method internal class MyClass : ViewController { public override void CustomizeTypesInfo(DevExpress.ExpressApp.DC. ITypesInfo typesInfo) { base .CustomizeTypesInfo(typesInfo); } } The thing is that using such decoupled approach can be very dangerous and resource consuming. Take the following example . Say you have 10 classes and you want to customize 2 of them . You also want to decouple the customization logic. Then you probably write one controller like internal class MyController1 : ViewController { public
Διαβάστε περισσότερα »
Custom controls everywhere
01 Σεπτεμβρίου 10 03:22 μμ
|
tolisss
|
0 σχόλια
eXpand have AdditionalViewControlsProvider module that has been design to allow you to add custom controls on a predefined position (Bottom,Top) using its logic architecture ruling system We wanted to add some power to it so in eXpand v10 one is able to position its custom controls any where in the view by setting the rule position to DetailViewItem Then use the Model editor to create an additionalviewcontrol detailview item Associate them with a rule like and finally use the Layout Designer to place them at any position in the View!!! so when you go to the specified view since your rules can be activated uppon any logic your controls visibility will be setup accordingly
Διαβάστε περισσότερα »
Controlling DevExpress XtraGrid Part-3 (The Columns)
30 Αυγούστου 10 01:58 μμ
|
tolisss
|
0 σχόλια
Continuning the Controlling XtraGrid Control series.. Contolling DevExpress XtraGrid Part-2 (Master Detail) Controlling DevExpress AspxGridControl at runtime Controlling DevExpress XtraGrid Control at runtime With the great help of DevExpress Support Guys eXpand now has an engine that can push any class property to your model and then using the power of modeldifference module allow you to change its value at runtime. See for example how simple we have define all the the options of a GridColumn and push them to the model public interface IModelColumnOptions : IModelColumnOptionsBase { IModelGridColumnOptions GridColumnOptions { get ; set ; } } public interface IModelGridColumnOptions : IModelNode { IModelGridColumnOptionsColumn
Διαβάστε περισσότερα »
ModelArtifactState
27 Αυγούστου 10 02:10 μμ
|
tolisss
|
0 σχόλια
After I posted the Contolling DevExpress XtraGrid Part-2 (Master Detail) I got many requests to speak about how easy will be to make a behaviout conditional so I am going to explain again how ModelArtifact module was build that is based on eXpand logic architecture Is based on the eXpand Logic architecture and more specifically at eXpand Conditional Logic architecture. That means that Conditional Logic architecture is designed to execute conditional logic rules and from the name of the module one can easily understand that the rules are responsible to change the state of model artifacts, and what are the model artifacts? Controllers and actions. tell how and when the state is changed So for all modelartifacts have a common attribute the Module (one can define
Διαβάστε περισσότερα »
Custom pivot sorting
25 Αυγούστου 10 01:07 μμ
|
tolisss
|
0 σχόλια
I will start this blog with an embrace to the genius architecture of DevExpress Xaf framework. As the time passes by and you get more experienced in using it you will soon realize that it has teach you to write so declarative code that almost 95% of it is reusable and should go to your base libraries or else to eXpand !! So the new addition to eXpand has to do with custom pivot sorting . Say that for a domain model similar to you have design an analysis object using your win UI like as you can see Xaf by default is going to sort your products by using the default property of the Product persistent object with is name . But your client asked you to sort by the Sort property of Product which values can be controlled by him through the UI. For that reason you could
Διαβάστε περισσότερα »
Xaf Models Xaf Models and again Xaf Models
23 Αυγούστου 10 02:02 μμ
|
tolisss
|
0 σχόλια
This is a sneak peek for eXpand v10. Now it is possible to have multiple models per module as shown in the pic bellow The question is how the use them ? I will say a few words about current approaches. First of all your adiitional models should have Embedded Resource as Build Action Design Time you could use eXpand Model Editor that is based on Devexpress standalone editor. (See here more info about it here) Now when you hit enter or double click an entry in that list the standalone editor will open up and will compine all models but will add as lastlayer the selected one thus forcing model editor to display that model as diffs (bold), and of course when you save is going to use the selected resource file as well. Another question will be how to support child
Διαβάστε περισσότερα »
Contolling DevExpress XtraGrid Part-2 (Master Detail)
16 Αυγούστου 10 11:44 πμ
|
tolisss
|
0 σχόλια
This is a sneak peak for eXpand v10 We have control trhough model all of the options of GridView as shown at Controlling DevExpress AspxGridControl at runtime eXpand had already a very simple implementation of master detail but did not support many levels. Since that implementation was too old i wrote it almost when I started using Xaf I though I give it a try now that I am more experienced so I wrote down some specs about what I wanted The requirements Be able to configure the grid views at any level Be able to control the grid views at any level through controllers Run Master View actions at child views (eg.delete,save etc) Support different detailviews per master row Only special user roles should have the permission to see master detail views
Διαβάστε περισσότερα »
3 pictures 3000 words!!!
03 Αυγούστου 10 05:30 μμ
|
tolisss
|
0 σχόλια
The last few months i have been silent but not lazy at all so I post the next 3 pictures to give you an idea what eXpand will deliver by v10 So what you think? I just can’t wait to finish.
Διαβάστε περισσότερα »
Xaf tip 13-Developing Platform Independent Code
06 Ιουλίου 10 10:14 πμ
|
tolisss
|
0 σχόλια
Xaf supports for now only 2 platforms for the moment and this post will focus to a technique that can be used to write code that is platform independent same for web and win and is aiming advance xafers . Since xaf is 4 years old right now I am sure many of you fit in that category. As you all of you know xaf v10 is a whole new framework very very clean and powerful but still has a lot of missing stuff in its architecture but also have many other powerful stuff that can help in providing workarounds. And this is the most perfect time to use them cause i am sure in the next months Devexpress will make it very very friendly to newbie as well. The problem You are developing a new module say A for both platforms so you are going to create 3 projects in your visual
Διαβάστε περισσότερα »
Xaf Focus utilities
19 Μαΐου 10 03:55 μμ
|
tolisss
|
0 σχόλια
I have implement a FocusShortcut attribute at eXpand so one can associate a keyboard shortcut with the control that wants to get the focus when it is detected Also when a text editor gets focused, one can control the position of the cursor by setting the CursorPosition attribute, thus maximizing speed input in certain cases
Διαβάστε περισσότερα »
DSL language for maximizing speed input
11 Μαΐου 10 10:16 πμ
|
tolisss
|
0 σχόλια
I recently had the following case . I was given the domain model bellow and was asked to provide a solution so a user could add schedules of the form Thu-Wen 14.15 / 16.45, Thu & Mon-Wen 22.15 /00.45, Sat,Sun 12.15 3D translated into with the maximum input speed. Xaf by its self is going to create for us a view like the one bellow for allowing us to make such an input from one view but of course that view is out of the question ( too many keyboard strokes and clicks) What we need is to define a D omain S pecific L anguage (just the definition of our problem will do it :)) for our problem lets do it. I am creating schedules. So the user input schedules will be of the form Thu-Wen 14.15 / 16.45, Thu & Mon-Wen 22.15 /00.45, Sat,Sun 12.15 3D translated
Διαβάστε περισσότερα »
SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM
05 Μαΐου 10 09:56 πμ
|
tolisss
|
0 σχόλια
When you try assign a only time to a datetime and save it you are going to get an an exception like the one in the subject. i have added to eXpand an SqlDateTimeOverFlowValueConverter to help you deal with that public class SqlDateTimeOverFlowValueConverter : ValueConverter { public override Type StorageType { get { return typeof ( DateTime ); } } public override object ConvertToStorageType( object value) { if (value!= null ) { var dateTime = new DateTime (1753, 1, 1); if (dateTime>(
Διαβάστε περισσότερα »
Controlling search
29 Απριλίου 10 11:02 πμ
|
tolisss
|
0 σχόλια
There are many times that we want to control the searchable fields of the full text of a list view. eXpand can take care of that always using a declaritive approach Also there could be for maximizing user input one may choose to search directly in detailview then after setting the same attribute of at least one of detailview items a search action will be activated for you for that view and when you execute it if more than one records found an ordersourceprovider will be assign in order to navigate through records
Διαβάστε περισσότερα »
Changing your web Model at runtime with Model Editor and no IIS reset
19 Απριλίου 10 10:59 πμ
|
tolisss
|
0 σχόλια
I thought I should write for such a case cause seemed interesting to me, and its already implemented at eXpand . How you do it? 1. Create a new eXpanded Application Solution 2. run both the win and the web client so both model will be created and saved at the database byt the modeldifference module. 3. Clone your web model to a role model 4.Assign the roles you want to change (you could assign all roles of the system if you want so the model will applied everywhere) 5. Make your changes (eg. apply a different navigation menu) 6. And since that model is going to be loaded every time a user log on to the system so you only have to log on again to your application in order the model to be refreshed and reloaded
Διαβάστε περισσότερα »
How to support eXpand framework
13 Απριλίου 10 11:01 πμ
|
tolisss
|
0 σχόλια
eXpand is the first open source project over DevExpress Xaf . It contains tools/modules distributed over 43 assemblies!!!, which they can help you build a large number of business scenario with as less code as possible, the goal is to make all declarative. (For more info navigate through this blog tag cloud) All the above can be easily accomplished from experienced .Net /Xaf developers, but for others eXpand is missing documentation. Taking that in count and depending on how much you want eXpand to grow and help your every day business needs you could donate an amount of your choice through paypal by clicking on the button bellow
Διαβάστε περισσότερα »
Controlling DevExpress AspxGridControl at runtime
08 Απριλίου 10 01:45 μμ
|
tolisss
|
0 σχόλια
Using the same approach we did for controlling DevExpress XtraGrid at runtime .
Διαβάστε περισσότερα »
Executing actions declaratively
06 Απριλίου 10 11:39 πμ
|
tolisss
|
0 σχόλια
You have used pivoted property attribute to design custom analysis views like and you want to navigate to that view from the navigation menu. You also want to execute automatically the Bind Action fro the view make it editable and hide the toolbar. You can of course use eXpand to make all that happen declaratively Navigation Create a read only parameter like public class CurrentShellSiteOid : ReadOnlyParameter { public const string CurrentShellSiteOidParameterName = "CurrentShellSiteOid" ; public CurrentShellSiteOid() : base (CurrentShellSiteOidParameterName, typeof ( Guid )) { } public override object CurrentValue {
Διαβάστε περισσότερα »
Pivoting at web
31 Μαρτίου 10 11:09 πμ
|
tolisss
|
0 σχόλια
Similar to New Pivoting module all features have been implemented for web as well so you can apply the PivotedPropertyAttribute along with inline editing to create complex views like the above view has been created declaratively !!! No line of code was written for it you can also control your pivot settings at runtime see for example the pager options
Διαβάστε περισσότερα »
Position your actions anywhere
29 Μαρτίου 10 11:59 πμ
|
tolisss
|
0 σχόλια
When working with Xaf and MVC pattern in order to create actions we are using controllers and initialize them upon them. The default behavior of Xaf is to place our actions in the default toolbar of our view. What if we want to position our actions somewhere else in the view? Then we need to create a custom detailviewItem and write our code against the interface exposed by the detailviewitem. I really did not like the idea , I really wanted to continue to design my actions behavior against the controller interface so i have added an ActionButtonDetailItem for both win and web platforms that can be installed declaratively using the model like bind it to the action we want like and position it anywhere we want using Dx layout component to create our views like
Διαβάστε περισσότερα »
Xaf tip 12--How to pass parameters between controllers
26 Μαρτίου 10 10:35 πμ
|
tolisss
|
0 σχόλια
After working with MVC pattern exposed by Xaf I have realized that the best way to to pass parameters between controllers is by using events like public class PricePricetypeController : ViewController { public event EventHandler < AdjustingPriceTypeEventArgs > AdjustingPriceType; public void OnAdjustingPriceType( AdjustingPriceTypeEventArgs e) { EventHandler < AdjustingPriceTypeEventArgs > handler = AdjustingPriceType; if (handler != null ) handler( this , e); } protected override void OnFrameAssigned() {
Διαβάστε περισσότερα »
Περισσότερες Δημοσιεύσεις
« Προηγούμενη
-
Επόμενη »
Search
Go
Το Ιστολόγιο
Αρχική Σελίδα
Ετικέτες
13.2
ace.c9
AdditionalViewControlsProvider
anonymouslogin
AOP
application framework
aspect-oriented programming
AspxTreeListEditor
AuditTrail
BaseImpl
BDD
Blogging
breaking changes
C#
Code Generation
Code Quality
CodeDom
CodeRush
CodeSmith
Continous Integration
Cookies
Core.Web
Core.Win
CQL
CThru
dashboard
DataStoreAttribute
DBMapper
Design Patterns
Devexpress
DictionaryDifferenceStore
DomainComponents
DSL
DX
DxCore
Dynamic Types
EasyTest
Email
Entity Framework
events
ExcelImporter
eXpand
FormsAuthentication
IO
Logic
MemberlevelSecurity
Merging
ModelArtifactState
ModelDifference
Montly_News
MSpec
navigation
NBehave
NCaousel
NCover
NDepend
open source
performance
PivotChart
PostSharp
propertypathfilter
ProvidedAssociation
refactor
RememberMe
reports
Resharper
runtime members
Scheduler
Scripting
Security
source code
SqlDbMapper
statemachine
SubVersion
survey
TDD
Templating
TestDriven
Thumbnails
ToolTips
TortoiseSVN
training
TreeListEditors
TypeMock
v10
Validation
video
view inheritance
ViewController
ViewVariants
Visual Studio plugins
WCF
WebSitePark
WF
WorldCreator
WorldCreator2
Xaf
Xaf Tips
Xpo
XVideoRental
Πλοήγηση
Αρχική σελίδα
Ιστολόγια
Συζητήσεις
Εκθέσεις Φωτογραφιών
Αρχειοθήκες
Ιστορικό Δημοσιεύσεων
Ιανουάριος 2019 (1)
Οκτώβριος 2018 (1)
Αύγουστος 2018 (1)
Ιούνιος 2018 (1)
Μάρτιος 2018 (1)
Αύγουστος 2017 (2)
Απρίλιος 2016 (1)
Ιούλιος 2014 (1)
Ιούνιος 2014 (1)
Απρίλιος 2014 (1)
Δεκέμβριος 2013 (1)
Νοέμβριος 2013 (7)
Οκτώβριος 2013 (6)
Σεπτέμβριος 2013 (4)
Αύγουστος 2013 (4)
Ιούλιος 2013 (7)
Μάιος 2013 (2)
Απρίλιος 2013 (2)
Μάρτιος 2013 (1)
Φεβρουάριος 2013 (2)
Ιανουάριος 2013 (5)
Δεκέμβριος 2012 (3)
Νοέμβριος 2012 (3)
Σεπτέμβριος 2012 (1)
Αύγουστος 2012 (2)
Μάιος 2012 (1)
Απρίλιος 2012 (1)
Μάρτιος 2012 (2)
Ιανουάριος 2012 (2)
Δεκέμβριος 2011 (4)
Νοέμβριος 2011 (1)
Σεπτέμβριος 2011 (5)
Αύγουστος 2011 (5)
Ιούνιος 2011 (1)
Απρίλιος 2011 (2)
Μάρτιος 2011 (1)
Φεβρουάριος 2011 (2)
Ιανουάριος 2011 (2)
Δεκέμβριος 2010 (3)
Νοέμβριος 2010 (3)
Οκτώβριος 2010 (3)
Σεπτέμβριος 2010 (8)
Αύγουστος 2010 (6)
Ιούλιος 2010 (1)
Μάιος 2010 (3)
Απρίλιος 2010 (5)
Μάρτιος 2010 (9)
Φεβρουάριος 2010 (5)
Ιανουάριος 2010 (3)
Δεκέμβριος 2009 (3)
Νοέμβριος 2009 (8)
Οκτώβριος 2009 (11)
Σεπτέμβριος 2009 (8)
Αύγουστος 2009 (8)
Ιούλιος 2009 (10)
Ιούνιος 2009 (21)
Συνδρομές
RSS 2.0
Atom 0.3