in
Forums
Blogs
Files
Devexpress.Com
Client Center
Support Center
DevExpress Channel

XPO + WinForms + multi-tier = good solution?

Last post 11/20/2008 12:29 AM by ody yudah quraviharto. 23 replies.
Page 1 of 2 (24 items) 1 2 Next >
Sort Posts:
Previous Next
  • 10/10/2006 2:59 PM

    • Erick Sasse

    XPO + WinForms + multi-tier = good solution?

    XPO looks great.
    WinForms looks almost dead now that we have WPF. Is this assumption
    reasonable?
    I don't want ASP.NET.
    I need to develop multi-tier apps.
    I'm a Delphi Win32 developer.
    
    Do you think XPO + WinForms for multi-tier development is a good
    solution? Is there anybody here using it successfully?
    
    Do we have more Delphi Win32 developers here that took this path and
    could comment on it?
    
    Thanks!
    
    -- 
    Erick Sasse
  • 10/10/2006 4:34 PM In reply to

    • Miha Markic [MVP C#] - DXSquad

    Re: XPO + WinForms + multi-tier = good solution?

    Hi Erick,
    
    "Erick Sasse" <esasse.remove@nospam.yahoo.com.br> wrote in message 
    news:452bb53a@news.devexpress.com...
    > XPO looks great.
    > WinForms looks almost dead now that we have WPF. Is this assumption
    > reasonable?
    
    Nowehere near.
    
    > I don't want ASP.NET.
    
    That's reasonable :-)
    
    > I need to develop multi-tier apps.
    
    Good.
    
    > I'm a Delphi Win32 developer.
    
    No comment :-)
    
    >
    > Do you think XPO + WinForms for multi-tier development is a good
    > solution? Is there anybody here using it successfully?
    
    Depends on what you consider multi-tier.
    
    -- 
    Miha Markic [MVP C#. DXSquad, INETA Country Leader for Slovenia]
    RightHand .NET consulting & development www.rthand.com
    Blog: http://cs.rthand.com/blogs/blog_with_righthand/
    
    Developer Express newsgroups are for peer-to-peer support.
    For direct support from Developer Express, write to support@devexpress.com
    Bug reports should be directed to: support@devexpress.com or 
    https://www.devexpress.com/support/center/
    Due to newsgroup guidelines, DX-Squad will not answer anonymous postings. 
  • 10/10/2006 4:39 PM In reply to

    • Erick Sasse

    Re: XPO + WinForms + multi-tier = good solution?

    Miha Markic [MVP C#] - DXSquad wrote:
    
    > > WinForms looks almost dead now that we have WPF. Is this assumption
    > > reasonable?
    > 
    > Nowehere near.
    
    Are you using it? 
    Wasn't WPF created to replace WinForms?
    
    > > Do you think XPO + WinForms for multi-tier development is a good
    > > solution? Is there anybody here using it successfully?
    > 
    > Depends on what you consider multi-tier.
    
    Basically 3 tier. DB Server, ServerApp and ClientApp connected to the
    ServerApp over the internet. ClientApp firing methods and querying
    objects from the ServerApp.
    
    Thanks for your help.
    
    -- 
    Erick Sasse
    Brazil
  • 10/10/2006 5:45 PM In reply to

    Re: XPO + WinForms + multi-tier = good solution?

    Hi Erick,
    
    >>XPO looks great.
    
    Yes it is a little gem!
    
    > WinForms looks almost dead now that we have WPF. Is this assumption
    > reasonable?
    
    No, like all new technology it will take years before the majority of 
    WinForm developers transfer to programming WPF. This is a snippet from Tim 
    Sneath's blog.... You can read the full article here: 
    http://blogs.msdn.com/tims/archive/2006/02/23/538189.aspx
    
    "As far as Windows Forms goes, the current release as part of Visual Studio 
    2005 demonstrates a level of maturity and strength that is enviable. It's 
    the culmination of the last twenty years of development based on the 
    GDI/GDI32/GDI+ platform. It'll be around and supported for many years to 
    come, there's a great ecosystem of controls and plenty of trained 
    developers. WPF sets off in a new direction, building on a new architecture 
    that we hope will last us as long as the GDI world did. The potential with 
    this platform is to build applications that would be completely impossible 
    in Windows Forms, setting a new bar for usability and user experience. We 
    haven't yet released our first version, so there are inevitably a few minor 
    gaps and limitations, but for new applications this is a fantastic emerging 
    platform to build on for longevity. By the way, if you've already built an 
    application with Windows Forms, it's not an either/or choice - we have good 
    interop support and you can embed a Windows Forms control into a WPF 
    application or vice versa. Some early adopters have dipped their toes into 
    the water by building a new WPF visualization or component for their 
    existing application using the interop layer."
    
    I agree with the above. .NET 3.0 is not even released yet and I think it is 
    safe to assume that this assumption is a bit premature IMO.
    
    > I don't want ASP.NET.
    
    Thats your choice but it has it's place. I code ASP.NET during the day and 
    WinForms during the night so I get the best of both worlds.
    
    > I need to develop multi-tier apps.
    
    XPO is brilliant at this using .NET Remoting or Web Services for that 
    matter. I'm developing a .NET application at the moment that will work as a 
    single user, multi user over the LAN or indeed the internet using .NET 
    Remoting. XPO does all of the grunt DB work for me so I can concentrate on 
    my code.
    
    > I'm a Delphi Win32 developer.
    
    I stopped using Delphi at Version 6 so I can't comment on how it has evolved 
    over the years. What I can say is that I moved to .NET and I haven't looked 
    back... In fact the only thing I liked about Delphi at the time was the fact 
    that everything got compiled into the assembly and it was fast as hell.
    
    > Do you think XPO + WinForms for multi-tier development is a good
    > solution? Is there anybody here using it successfully?
    
    IMO Absolutely, XPO is evolving, getting better and better and there are a 
    lot of people on this board who know their stuff. I'm always learning 
    something new. I think it is safe to say that there are quite a few 
    developers on here who are developing these type of projects. I am anyway!
    
    Geoff.
    
    "Erick Sasse" <esasse.remove@nospam.yahoo.com.br> wrote in message 
    news:452bb53a@news.devexpress.com...
    > XPO looks great.
    > WinForms looks almost dead now that we have WPF. Is this assumption
    > reasonable?
    > I don't want ASP.NET.
    > I need to develop multi-tier apps.
    > I'm a Delphi Win32 developer.
    >
    > Do you think XPO + WinForms for multi-tier development is a good
    > solution? Is there anybody here using it successfully?
    >
    > Do we have more Delphi Win32 developers here that took this path and
    > could comment on it?
    >
    > Thanks!
    >
    > -- 
    > Erick Sasse 
  • 10/10/2006 6:12 PM In reply to

    • Erick Sasse

    Re: XPO + WinForms + multi-tier = good solution?

    Geoff Davis wrote:
    
    >  I'm developing a .NET application at the moment that will work as a
    > single user, multi user over the LAN or indeed the internet using
    > .NET Remoting. XPO does all of the grunt DB work for me so I can
    > concentrate on my code.
    
    Are you using WinForms for this application?
    What about the XPO performance over the internet, is it good?
    
    Thanks Geoff, your comments are very helpful.
    
    -- 
    Erick Sasse
  • 10/10/2006 6:23 PM In reply to

    • Miha Markic [MVP C#] - DXSquad

    Re: XPO + WinForms + multi-tier = good solution?

    "Erick Sasse" <esasse.remove@nospam.yahoo.com.br> wrote in message 
    news:452bccac$1@news.devexpress.com...
    > Miha Markic [MVP C#] - DXSquad wrote:
    >
    >> > WinForms looks almost dead now that we have WPF. Is this assumption
    >> > reasonable?
    >>
    >> Nowehere near.
    >
    > Are you using it?
    > Wasn't WPF created to replace WinForms?
    
    For the time being it was created to coexist. Eventually it will take over 
    someday but not that soon and there are no 3rd party components out there 
    right now.
    It will take time...
    
    >
    >> > Do you think XPO + WinForms for multi-tier development is a good
    >> > solution? Is there anybody here using it successfully?
    >>
    >> Depends on what you consider multi-tier.
    >
    > Basically 3 tier. DB Server, ServerApp and ClientApp connected to the
    > ServerApp over the internet. ClientApp firing methods and querying
    > objects from the ServerApp.
    
    The thing is that XPO remoting works in the sense that client app is sending 
    pseudo sql statements to the server app which queries the base and returns 
    data to the client where that data is used to create XPO objects. IOW server 
    app is basically some sort of proxy.
    And there are other shortcommings for remoting scenario such as no prefetch 
    path support (many queries executed in one roundtrip).
    If this works for you...
    But perhaps I am wrong and somebody will correct me since I don't use XPO 
    anymore.
    
    -- 
    Miha Markic [MVP C#. DXSquad, INETA Country Leader for Slovenia]
    RightHand .NET consulting & development www.rthand.com
    Blog: http://cs.rthand.com/blogs/blog_with_righthand/
    
    Developer Express newsgroups are for peer-to-peer support.
    For direct support from Developer Express, write to support@devexpress.com
    Bug reports should be directed to: support@devexpress.com or 
    https://www.devexpress.com/support/center/
    Due to newsgroup guidelines, DX-Squad will not answer anonymous postings.
  • 10/10/2006 6:42 PM In reply to

    • Erick Sasse

    Re: XPO + WinForms + multi-tier = good solution?

    Miha Markic [MVP C#] - DXSquad wrote:
    
    > And there are other shortcommings for remoting scenario such as no
    > prefetch path support (many queries executed in one roundtrip).  
    
    Well, that could be a problem. So if I have a composite object like
    Order with OrderLines it would require two roundtrips to the server to
    load it?
    
    > But perhaps I am wrong and somebody will
    > correct me since I don't use XPO anymore.
    
    May I ask you why you are not using XPO anymore? 
    Are you using any other ORM/OPF?
    
    Thanks Miha,
    
    -- 
    Erick Sasse
  • 10/10/2006 7:10 PM In reply to

    Re: XPO + WinForms + multi-tier = good solution?

    Hi Erick,
    
    > Are you using WinForms for this application?
    
    Yes I am.
    
    > What about the XPO performance over the internet, is it good?
    
    I'm currently working on this one... I think it is acceptable for my 
    application so far but there is always room for improvement. I won't go deep 
    into server, latency, etc... I will assume that you already know that these 
    play a part in performance over the internet.
    
    Your application design and the size of your persistent classes play a vital 
    role in your search for performance also. Let me explain, if you are 
    bringing back an XPCollection with 5000 objects then it's going to suffer 
    and anyone will tell you that bringing back this amount of data is usually 
    overkill and un-necessary. What I tend to do is offer no data to the user 
    unless they ask for it by means of search criteria and this works for me. 
    IMO all multi-user application should be written this way if they don't 
    already :-). There is a downside to this though and that is a slightly 
    labourious task for your users who have to click and type more to get what 
    they want. Hey, you get nothing for nothing!
    
    I'm already in discussion on another thread looking at CustomSinks with .NET 
    Remoting to compress and uncompress the data on route and this will greatly 
    increase the speed for me further.
    
    This is just my personal experience thus so far and others may be able to 
    add or correct me as and when necessary.
    
    Geoff.
    
    "Erick Sasse" <esasse.remove@nospam.yahoo.com.br> wrote in message 
    news:452be286$1@news.devexpress.com...
    > Geoff Davis wrote:
    >
    >>  I'm developing a .NET application at the moment that will work as a
    >> single user, multi user over the LAN or indeed the internet using
    >> .NET Remoting. XPO does all of the grunt DB work for me so I can
    >> concentrate on my code.
    >
    > Are you using WinForms for this application?
    > What about the XPO performance over the internet, is it good?
    >
    > Thanks Geoff, your comments are very helpful.
    >
    > -- 
    > Erick Sasse 
  • 10/10/2006 7:21 PM In reply to

    • Erick Sasse

    Re: XPO + WinForms + multi-tier = good solution?

    Geoff Davis wrote:
    
    > What I tend to do is offer no data to the user unless they ask for it
    > by means of search criteria and this works for me. IMO all multi-user
    > application should be written this way if they don't already :-).
    > There is a downside to this though and that is a slightly labourious
    > task for your users who have to click and type more to get what they
    > want. Hey, you get nothing for nothing!
    
    I agree with this approach and it is the same I use in my Delphi apps.
    
    > I'm already in discussion on another thread looking at CustomSinks
    > with .NET Remoting to compress and uncompress the data on route and
    > this will greatly increase the speed for me further.
    
    I'm wondering if RemObjects SDK could help here. I'm using it with
    Delphi Win32 apps and like it a lot. They also have a .NET version that
    intend to be better than .NET Remoting.
    
    -- 
    Erick Sasse
  • 10/10/2006 7:36 PM In reply to

    Re: XPO + WinForms + multi-tier = good solution?

    I'll add to what was said, "WPF looks promising but is far from having any 
    wide-spread use; it will take years." I agree.
    
    > Are you using WinForms for this application?
    > What about the XPO performance over the internet, is it good?
    
    1. Nothing beats a LAN.
    
    2. When using typical client/ server, XPO is as fast as any alternative. 
    This means that a VPN (Virtual Private Network) is used over the internet 
    with Winforms - my preference. Some Xpo specific factors can influence 
    behavior (speed) such as leaving sessions in their default state where the 
    session checks to see if the database schema needs to be updated. The 
    initial response, of course, will be slower if a session is verifying schema 
    every time a new session created. Note - DevExpress configured a default 
    session to update the database to make it easy for new users to start 
    working with Xpo.
    
    3. When using remoting, there is always added overhead and there are way too 
    many factors influencing performance that may or may not have to do with 
    Xpo. I, personally, have no need or desire to use remoting so I am not your 
    best resource. From my view and simply put: remoting is a translator between 
    a client and server. I much prefer a VPN and do not understand why I would 
    need such a translator.
    
    I should add that using a VPN means configuring the connection on the client 
    and there are scenarios where you may want users to access the server from 
    anywhere via the internet without requiring a custom configuration on the 
    client. Well, then you aren't going be using WinForms are you? WinForm 
    applications must be installed and the install can configure the client for 
    a VPN too, but you want users not to have to install or setup anything... In 
    this scenario, you must build a web server and allow access via a browser. 
    There is no need for remoting here either. The problem with web access is 
    that there are many limitations regarding events and client/ server 
    communication. AJAX is improving the experience, but web access is not 
    nearly as flexible and simply cannot do everything that WinForms can offer. 
    The good news is that the type of information that businesses typically want 
    to be made available widely over the internet such as creating an order, 
    looking up order history, making a payment, etc. does work out well using 
    browser access. So, create web forms for these situations.
    
    I have yet to be sold on remoting and maybe someone can provide some 
    scenario(s) where it makes sense and a VPN does not?? Maybe, I will be 
    converted.
    
    Trevor
    
    
    
    
    
    "Erick Sasse" <esasse.remove@nospam.yahoo.com.br> wrote in message 
    news:452be286$1@news.devexpress.com...
    > Geoff Davis wrote:
    >
    >>  I'm developing a .NET application at the moment that will work as a
    >> single user, multi user over the LAN or indeed the internet using
    >> .NET Remoting. XPO does all of the grunt DB work for me so I can
    >> concentrate on my code.
    >
    > Are you using WinForms for this application?
    > What about the XPO performance over the internet, is it good?
    >
    > Thanks Geoff, your comments are very helpful.
    >
    > -- 
    > Erick Sasse 
    Trevor Westerdahl - DX Squad
    BLOG: http://trevorunlocked.blogspot.com/
  • 10/10/2006 7:51 PM In reply to

    • Erick Sasse

    Re: XPO + WinForms + multi-tier = good solution?

    Trevor Westerdahl wrote:
    
    > I have yet to be sold on remoting and maybe someone can provide some
    > scenario(s) where it makes sense and a VPN does not?? Maybe, I will
    > be converted.
    
    What databases do you use? I use Firebird and it's not optimized to
    narrow bands like the Internet. So when I have a server app and a
    client app I can optimize the amount of data passed from one to another.
    
    Even if the VPN compresses the data, the performance will probably be
    worse than 3 tier.
    
    -- 
    Erick Sasse
  • 10/10/2006 8:00 PM In reply to

    Re: XPO + WinForms + multi-tier = good solution?

    > Your application design and the size of your persistent classes play a 
    > vital role in your search for performance also. Let me explain, if you are 
    > bringing back an XPCollection with 5000 objects then it's going to suffer 
    > and anyone will tell you that bringing back this amount of data is usually 
    > overkill and un-necessary.
    
    
    I like to use LookupEdits and GridLookups so the "filter" or criteria is 
    dynamic. I tested this concept with over 100,000 records and the performance 
    was great, so 5000 records seems trivial. However, I do believe there are 
    many option available with Xpo that can dramatically effect performance.
    
    1. Are the lookups populated using a read-only fetch?
    2. Is the session trying to update schema?
    3. As you mentioned , use criteria (and paging)- for me the performance 
    degraded after 100,000 records, yet I can think of no real-life scenario 
    where so many records should ever be retrieved for editing a record or 
    building selection./ filter lists. Of course, reports will use this many 
    records, but that is expected and a different issue. I do what you suggest 
    by adding pre-filled and alterable filters wherever so many records could be 
    returned. Such as filtering invoices by the current user's ID and/ or Role, 
    filtering Customers by location, by the user assigned, etc. There always is 
    some form of criteria that makes perfect sense to limit the collection to a 
    reasonable number and then offer some form of lookup. On those rare 
    occasions when the user wants to search ALL records, offer a popup form with 
    various selectable criteria and a "search" button. I have found that users 
    love a GridLookup in combination with a broad filter as I described as 
    the"default".
    
    Trevor
    
    
    "Geoff Davis" <davis_geoff@btinternet.com> wrote in message 
    news:452bee76$1@news.devexpress.com...
    > Hi Erick,
    >
    >> Are you using WinForms for this application?
    >
    > Yes I am.
    >
    >> What about the XPO performance over the internet, is it good?
    >
    > I'm currently working on this one... I think it is acceptable for my 
    > application so far but there is always room for improvement. I won't go 
    > deep into server, latency, etc... I will assume that you already know that 
    > these play a part in performance over the internet.
    >
    > Your application design and the size of your persistent classes play a 
    > vital role in your search for performance also. Let me explain, if you are 
    > bringing back an XPCollection with 5000 objects then it's going to suffer 
    > and anyone will tell you that bringing back this amount of data is usually 
    > overkill and un-necessary. What I tend to do is offer no data to the user 
    > unless they ask for it by means of search criteria and this works for me. 
    > IMO all multi-user application should be written this way if they don't 
    > already :-). There is a downside to this though and that is a slightly 
    > labourious task for your users who have to click and type more to get what 
    > they want. Hey, you get nothing for nothing!
    >
    > I'm already in discussion on another thread looking at CustomSinks with 
    > .NET Remoting to compress and uncompress the data on route and this will 
    > greatly increase the speed for me further.
    >
    > This is just my personal experience thus so far and others may be able to 
    > add or correct me as and when necessary.
    >
    > Geoff.
    >
    > "Erick Sasse" <esasse.remove@nospam.yahoo.com.br> wrote in message 
    > news:452be286$1@news.devexpress.com...
    >> Geoff Davis wrote:
    >>
    >>>  I'm developing a .NET application at the moment that will work as a
    >>> single user, multi user over the LAN or indeed the internet using
    >>> .NET Remoting. XPO does all of the grunt DB work for me so I can
    >>> concentrate on my code.
    >>
    >> Are you using WinForms for this application?
    >> What about the XPO performance over the internet, is it good?
    >>
    >> Thanks Geoff, your comments are very helpful.
    >>
    >> -- 
    >> Erick Sasse
    >
    > 
    Trevor Westerdahl - DX Squad
    BLOG: http://trevorunlocked.blogspot.com/
  • 10/10/2006 8:39 PM In reply to

    Re: XPO + WinForms + multi-tier = good solution?

    > What databases do you use? I use Firebird and it's not optimized to
    > narrow bands like the Internet. So when I have a server app and a
    > client app I can optimize the amount of data passed from one to another.
    >
    > Even if the VPN compresses the data, the performance will probably be
    > worse than 3 tier.
    
    I have been testing Firebird (the worst so far - the "official" release is 
    not worth it at all, but the release candidate is promising), MySQL, 
    SQLServer, and Access (too limited). My intention is to load all of the 
    supported servers and make the application as compatible with all of them as 
    possible. Access is "out-the-window" already and the application is designed 
    for multi-users so SQL Express or SQL Everywhere is not an option either.
    
    > Even if the VPN compresses the data, the performance will probably be
    > worse than 3 tier.
    
    I haven't had performance problems, but the application is designed for a 
    LAN, not for the internet. I use web pages for accessing what is needed over 
    the internet and "allow" for VPN access using WinForms. In my particular 
    business market, the user wanting VPN access has broad-band internet access 
    and I have not had significant performance issues. I have no intent of 
    having the WinForms be designed for less than broad-band access.
    
    This is "my" particular scenario, but it just seems logical to me that the 
    advantages of WinForms are severely lost when trying to accommodate slow, 
    low bandwidth, internet connections. Once the low-bandwidth must be 
    accommodated, I switch to web forms.
    
    I will say that I am looking into remoting for the compression and 
    encryption options but I don't like how it ties/ locks my application into 
    specific database implementations and I have not had performance problem so 
    far.
    
    Here is one very important point to consider with Xpo - I don't have to 
    worry about using remoting or not because it has virtually zero effect on my 
    code. If I decide to use remoting, then all I need to do is perform a few 
    minor code changes to configure the data layer. So, I am not overly 
    concerned.
    
    Another user pointed out batch updates and I'm not sure where Xpo stands on 
    that issue. I have confidence that DevExpress would address that issue if 
    there were performance problems that would be corrected.
    
    Trevor
    
    "Erick Sasse" <esasse.remove@nospam.yahoo.com.br> wrote in message 
    news:452bf9aa$1@news.devexpress.com...
    > Trevor Westerdahl wrote:
    >
    >> I have yet to be sold on remoting and maybe someone can provide some
    >> scenario(s) where it makes sense and a VPN does not?? Maybe, I will
    >> be converted.
    >
    > What databases do you use? I use Firebird and it's not optimized to
    > narrow bands like the Internet. So when I have a server app and a
    > client app I can optimize the amount of data passed from one to another.
    >
    > Even if the VPN compresses the data, the performance will probably be
    > worse than 3 tier.
    >
    > -- 
    > Erick Sasse 
    Trevor Westerdahl - DX Squad
    BLOG: http://trevorunlocked.blogspot.com/
  • 10/10/2006 9:13 PM In reply to

    • Erick Sasse

    Re: XPO + WinForms + multi-tier = good solution?

    Trevor Westerdahl wrote:
    
    > I have been testing Firebird (the worst so far - the "official"
    > release is not worth it at all,
    
    What problems did you have with it?
    
    -- 
    Erick Sasse
  • 10/10/2006 9:22 PM In reply to

    • Miha Markic [MVP C#] - DXSquad

    Re: XPO + WinForms + multi-tier = good solution?

    "Erick Sasse" <esasse.remove@nospam.yahoo.com.br> wrote in message 
    news:452be995@news.devexpress.com...
    > Miha Markic [MVP C#] - DXSquad wrote:
    >
    >> And there are other shortcommings for remoting scenario such as no
    >> prefetch path support (many queries executed in one roundtrip).
    >
    > Well, that could be a problem. So if I have a composite object like
    > Order with OrderLines it would require two roundtrips to the server to
    > load it?
    
    Again, somebody might correct me, but I think there are two ways:
    - fetch Orders collection: it will require Order.Count roundtrips because it 
    would load each OrderLines separately.
    - fetch OrderLines collection: it will fetch all data required in one 
    roundtrip (because XPO always gets master records) but you'll have problems 
    geting hold on Orders collection
    
    >
    >> But perhaps I am wrong and somebody will
    >> correct me since I don't use XPO anymore.
    >
    > May I ask you why you are not using XPO anymore?
    
    I prefer other approaches to ORM.
    
    > Are you using any other ORM/OPF?
    
    Yes.
    
    -- 
    Miha Markic [MVP C#. DXSquad, INETA Country Leader for Slovenia]
    RightHand .NET consulting & development www.rthand.com
    Blog: http://cs.rthand.com/blogs/blog_with_righthand/
    
    Developer Express newsgroups are for peer-to-peer support.
    For direct support from Developer Express, write to support@devexpress.com
    Bug reports should be directed to: support@devexpress.com or 
    https://www.devexpress.com/support/center/
    Due to newsgroup guidelines, DX-Squad will not answer anonymous postings. 
Page 1 of 2 (24 items) 1 2 Next >
Copyright © 1998-2008 Developer Express Inc.
ALL RIGHTS RESERVED