locked
Auto updated application RRS feed

  • General discussion

  • Our company has built a web based (ASP.NET) ERP . The main reason behind making the application web based is making the application easy to update and can be accessed from any where. 

    The problem with web applications is that you don't have the flexibility and responsiveness offered by desktop applications. Browsers compatibility and strange behavior (specially with ajax) are also source for a lot of wasted development time.

    I have come with an idea of turning the application into a desktop based application (winforms or WPF). To keep the "Access from any where" and updatable properties, I have thought of the following design:

    The application will be formed of one or more dll files. the files will be deployed to the servers virtual directory. The desktop client will start by downloading these dlls from the server's virtual directory (using WebClient.DownloadFile method) and load the application's main form from this dll(s). The main form will load other forms based on the client's interaction and the modules he is opening.

    Other files (Configuration,images,etc) would be loaded using the same technique, where every form download its own files when it is opened by the user.

    The database will be accessed from all clients. This means that this a fat client architecture.

    Here, users can access the application from any where and when an update is required, new dlls would be deployed to the server's virtual directory where all clients download it automatically.

    I know that the main problem here is security, where a good user with good programming knowledge can extract the connection string from the configuration files (we encrypt connection strings in the configuration files with akey stored in the dlls) and manipulate data overriding his permissions, but this is not a big issue since the target users have no backgroud of programming at all.

    I would like to hear you comments about this design.
    Monday, February 23, 2009 11:47 AM

All replies

  • Firstly, I would recommend to look at Silverlight and building Rich Internet Applications architecture at www.codeplex.com/apparch

    Should you need opinions only about Rich Client architecture

    take a look at Rich client architecture at AppArch.

    Around the issue of connection string, I would recommend using www.codeplex.com/entlib 's DAAB (data access application block) or the cryptography block that would help you encrypt tokens in connection strings without hard coding a key inside a dll.

    Rich client/smart client has gone long ways in solving the synchronizing data and binaries for offline clients.  This link provides a good read about deploying and updating smart clients.

    { Gaja; }
    Pl mark if answer solves your problem | Visit http://gajakannan.com/netarch.aspx for .net ref Arch
    Monday, February 23, 2009 7:18 PM
  • Any assemblies which you are distributing better would be obfuscated. Obfuscation will protect your assemblies from extracting business logic / application implementation.
    Wednesday, February 25, 2009 6:27 PM