Skip to content

Design and Architecture

Discussions on Design, Patterns and Architecture

This category can be followed from the open social web via the handle design-and-architecture@forum.codeproject.com

5.3k Topics 10.4k Posts
  • DataCache Design

    asp-net database design question announcement
    2
    0 Votes
    2 Posts
    0 Views
    D
    It depends. If it's ADO.NET and SQL2005 or higher, you can define a "cache dependency" that automatically refreshes cached stuff when it changes in the database. I suspect it relies on the fact that SQL2005 can host the CLR to have a way to swap the ordinary roles (ordinarily we use database servers as... SERVERS, but here the *server* needs to notify a *client*, which simply isn't possible given the definitions of what a client and a server is). If it's ADO.NET and an older SQL server version I believe there's a cache dependency that *might* help. It depends. This thing uses a polling model, which means there's a delay involved. Dirty cache reads are still possible. If dirty reads causes serious problems, you can't use this. If seeing the old data is OK for a short time after it has really changed, you probably can use it. Otherwise, you probably have to write the code yourself to keep the cache in sync. If the data is only modified by a single instance of your own application this isn't really difficult to accomplish. If there are multiple instances it gets more complicated, unless the instances are operating on isolated subsets of the data, since you will now need to establish some mechanism to ensure caches are kept in sync. It will also mean a performance hit and will require distributed transactions. Cache invalidation is one of the hardest problems in all of common practical programming. In many cases, there are better practical approaches. Rather than trying to solve the cache invalidation problem, it may be easier and good enough to combine imperfect caching with optimistic concurrency. Concurrency is an often-ignored aspect of multi-user systems that you should probably address anyway (most apps should, but few do). Depending on how you handle concurrency violations (e.g. you could let the user resolve conflicts) having this in place often makes it acceptable to live with some dirty cache data. You can use a timeout policy to prevent old data from sticking around for too long. Volatile data should perhaps not be cached at all. The ideal cache item is one that is expensive to get but changes infrequently. And never cache stuff that is inexpensive to get for a very long time. Saving a millisecond makes sense in something that happens often, but whether you save a millisecond every minute or every hour is not going to make any difference to the performance of your system. So in such cases, use a short timeout. Also don't forget that there are frequently opportunities to influence how expen
  • 0 Votes
    3 Posts
    0 Views
    G
    Dang, I thought this was deleted.
  • help on MATLAB

    algorithms performance help tutorial
    5
    0 Votes
    5 Posts
    0 Views
    D
    @ProgramFox thanks for your alert,i remove it
  • C++ GUI Framework

    c++ learning delphi database performance
    10
    0 Votes
    10 Posts
    0 Views
    L
    I'd suggest VB.NET - easy learning curve, and nice for fast prototyping. Additional extra is that it won't be as hard to find new colleges. Kosta Cherry wrote: I'm already at the age when job should also bring fun, not just money. There's no such age. Bastard Programmer from Hell :suss: if you can't read my code, try converting it here[^]
  • OO Algorithms Tutorial?

    help business tutorial question workspace
    4
    0 Votes
    4 Posts
    69 Views
    B
    OO is not so much about algorithms, it is more about design. The "Gang of Four" patterns are a good point. I also like "Applying UML and Patterns" by Craig Larman: he brings patterns, UML, and agile strategies together and explains them with good examples.
  • Design Pattern Recommendation

    design algorithms regex architecture help
    2
    0 Votes
    2 Posts
    0 Views
    RaviBeeR
    Looks like your Imager class is general purpose enough and you've used IOC to provide the the smarts.  Seems logical to me. /ravi My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
  • Make everything a tree?

    javascript html data-structures oop question
    3
    0 Votes
    3 Posts
    0 Views
    RaviBeeR
    "Once one learns to use a hammer ... it certainly doesn't mean that one should use it when making a cake." :thumbsup: /ravi My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
  • Current Best Practices

    database csharp question linq
    7
    0 Votes
    7 Posts
    0 Views
    E
    All the questions you have asked are hard to answer without business requirements. My personal opinion is use whatever technology you understand best and is best for the job. The important gotcha with this is you also need to spend time learning new technology all the time (but really? is that not required anyway?). Also, the biggest suggestion of technology and pattern practice I can give anyone is Inversion of Control or Dependency Injection. It is absolutely amazing what you can do with it and it is really simple to implement. It also promotes decoupling and good design/seperation of classes. Makes the lives of Dev and Test a million times easier hands down. The best way to accelerate a Macintosh is at 9.8m/sec² - Marcus Dolengo
  • 0 Votes
    5 Posts
    0 Views
    A
    Oracle documentation can be found here[^], (EBS, MRP, basically the whole line of their products) and I've been banging my head on the desk for the last 3 days trying to find any documentation even remotely useful. I'm working on a highly-customised E-Business Suite (so maybe lack of documentation shouldn't come as a surprise), and I need to call some APIs to automate some tasks (No, I don't need help, yet :) ) All I'm saying is, Oracle documentation is :sigh: :wtf: :omg: X|, but it might prove useful for your MRP research terminology Full-fledged Java/.NET lover, full-fledged PHP hater. Full-fledged Google/Microsoft lover, full-fledged Apple hater. Full-fledged Skype lover, full-fledged YM hater.
  • 0 Votes
    2 Posts
    0 Views
    L
    Patricia.Jones0123 wrote: I think it would be best to have only one application server and one database server I think that is hardly relevant. What value would it add? Patricia.Jones0123 wrote: I have found few tools like IBM Doors and Borland Caliber but they both have their own database. Choose the best based on your needs, not based on their architecture. There's little chance you'd be working on the architecture of the product anyway. Further, it really limits your choices enormously - there aren't that many formal requirement tools, and exotic wishes usually mean an expensive in-house implementation traject. Bastard Programmer from Hell :suss: if you can't read my code, try converting it here[^]
  • Utility Field in Database

    database design tools regex question
    15
    0 Votes
    15 Posts
    0 Views
    E
    Well, thank you again for the additional correction. Good luck to you.
  • Data Structures and Other for Operations Research

    com tools question
    1
    0 Votes
    1 Posts
    0 Views
    No one has replied
  • UI Guidelines

    design csharp wpf question learning
    3
    0 Votes
    3 Posts
    0 Views
    L
    The "traditional" UxGuide[^] has a Metro[^]-brother nowadays. The first has been a valuable addition to my bookshelf (looots of printed A4), but I haven't read this one (yet). Bastard Programmer from Hell :suss: if you can't read my code, try converting it here[^]
  • 0 Votes
    5 Posts
    1 Views
    K
    Indeed, it's the choice we made. Editors have to be responsible, they aren't children anymore, are they? :) And if they mess with the servers, then I should still have my whip somewhere, if they deserve a little punishment... ;) When they kick at your front door How you gonna come? With your hands on your head Or on the trigger of your gun? Fold with us! ¤ flickr
  • Standard exceptions for an RPC library?

    csharp wcf xml question lounge
    17
    0 Votes
    17 Posts
    0 Views
    L
    I tried to say this earlier, but your explanation is so much more concise and clear. +5. One of these days I'm going to think of a really clever signature.
  • How to introduce Continuous Integration?

    business tools tutorial question
    18
    0 Votes
    18 Posts
    1 Views
    H
    Our team used both cruise control[^] and TFS. We also used PowerShell to automate some tasks within the build scripts. There is a great value in implementing build automation and CI in general. Start simple and add more features to your build steps later. Generally, automation is never a waste of time especially when it comes to repetitive tasks like builds. Hesham A. Amin My blog twitter: @HeshamAmin
  • 0 Votes
    5 Posts
    0 Views
    W
    My advice is to have one part of your project worry about keeping the connection alive and putting that data into a database (on your side) as quickly as possible, then do any analysis against the data in your database, not on the way into the database.
  • CommonApplicationData

    question testing beta-testing tutorial workspace
    2
    0 Votes
    2 Posts
    0 Views
    Richard Andrew x64R
    Why can't you store the files in [CommonApplicationData]\[Manufacturer]\[ProductName] ? The difficult we do right away... ...the impossible takes slightly longer.
  • Best Pattern for a New Service

    csharp database visual-studio design sysadmin
    5
    0 Votes
    5 Posts
    0 Views
    J
    You might look at a translator pattern. However your description isn't that complex so without additional requirements it is just a basic export process.
  • What's The Right Way To Do This?

    question database design sysadmin sales
    11
    0 Votes
    11 Posts
    0 Views
    K
    Ya, it's a tough design decision. I'll sleep on it over the weekend. Thanks If it's not broken, fix it until it is