|
Hi,
I'm searching for some open source software that is well designed and is designed for flexibility.
I'd like to study the source to understand how a well designed system is structured and developed.
I've read some books about design but the example are always small and self-contained. So I'd like to see how that work in a mid-big sized project that have different modules interacting.
If you people know any of this, could you please post the name or the link of the software.
If they're written in c#/java and well documented would be a plus.
Or if you have the name of some book on the argument maybe that cover a big software case study it would be even better.
Hope my english is understandable.
|
|
|
|
|
Giuseppe Tollini wrote: mid-big sized project that have different modules interacting.
I would suspect that is a myth.
Applications, which are successful, grow over time and compromises are made based on real time problems. And although solutions work they are not always implemented ideally. And because of such problems were not known with the initial design then the design might need to be worked around.
Something similar occurs with libraries. Libraries however might be less impacted by this if the the functionalit in the library is disparate enough.
Both are also impacted by the desires and/or experience of those that work on it over time.
|
|
|
|
|
Giuseppe Tollini wrote: I'm searching for some open source software that is well designed and is designed for flexibility.
I'd like to study the source to understand how a well designed system is structured and developed.
The only example that comes to mind is Linux.
Giuseppe Tollini wrote: I've read some books about design but the example are always small and self-contained. So I'd like to see how that work in a mid-big sized project that have different modules interacting.
Always specific to the system, it's not like there's "one ideal solution".
|
|
|
|
|
|
We are designing some web services to communicate data updates between applications that we make. It's all about interoperability.
My lead dev. is thinking about making a pair of web services that "talk" to each other. The app that originates a data change could access a web service of the consuming app that simply says "I have data for you." The consuming app then uses SOAP/WebService protocols to ask for the data the the provider has indicated was available in the preceding exchange.
Is this just a simplistic way of doing something that is already a standard?
What would we call that process?
What terms should he be researching to learn more about how this is done nowadays?
Thank you
|
|
|
|
|
I m a fresher but i think it is better to use messaging services like MSMQ or JMS depending on the technology used.
Regards,
Raj Champaneriya
|
|
|
|
|
Bytescream wrote: It's all about interoperability.
And that is all about design and process control. Not technology.
Bytescream wrote: could access a web service of the consuming app that simply says "I have data
for you."
What happens if the other app isn't there - the one that is supposed to receive the data available message>
What happens if the other app receives the data available but then goes down before it can get the data?
What happens if the other app receives the data available message but just ignores it - it never tries to get the other data (yes that is a bug but is still something that the the orgination app must consider.)
|
|
|
|
|
Hi,
i am looking to create a perl webservice which can be consumed from C# or VB.net.perl code in unix server.
Can some one help with an example?
Thanks
Hari
|
|
|
|
|
ernestohari wrote: i am looking to create a perl webservice which can be consumed from C# or VB.net.perl code in unix server.
Can some one help with an example?
Tutorial building webservice with Perl[^]. There's enough examples out there on consuming a webservice using C#/VB.NET.
|
|
|
|
|
I am busy developing a timesheet capture service which has a hierarchical user structure[1], where e.g. the top user in a hierarchy represents a distinct organization or related group of users. This user can then create more users under their self. This design has been laid down by my client. For authorization, I have interpreted this so that a user higher up in the user tree has access to all users below them in the tree, as well as entities owned by those lower users. This seems logical to me, as a user higher in the tree 'owns' users lower down. The client is not clear on whether this is the way to go, as in some situations it is ideal that users lower down have access to entities created by users above them in the tree. My client is unclear on what he wants here and expects some assistance in deriving a practical authorization scheme for this hierarchical user scheme.
Let me introduce the entity Customer to this scenario. Originally, a User owned Customers, so in my interpretation, a user higher up in the tree (more senior) had access to all customers owned by users lower down in the tree. This preserves the higher privilege of higher users, but prevents a more senior user creating customers for more junior users to work on. Now I have to change this one user to many customers relationship to many users to many customers, complicating things somewhat.
I'm not asking for a solution here, but some input and maybe suggestions or warnings for proceeding to try and devise a working authorization scheme for this complex matrix of user trees crossed with customer trees.
[1] Many other entities are also hierarchical, but not yet relevant here.
|
|
|
|
|
Brady Kelly wrote: For authorization, I have interpreted this so that a user higher up in the user tree has access to all users below them in the tree, as well as entities owned by those lower users. This seems logical to me, as a user higher in the tree 'owns' users lower down.
I don't find that logical. If I were a node in your tree, I'd only pay attention to my parent - the topnode would never be relevant in my work. That's based on the idea of a "chain of command". If my bosses' boss could manage me directly, my boss would be superfluous. Better to check with the client whether your interpretation is correct.
Brady Kelly wrote: My client is unclear on what he wants here and expects some assistance in deriving a practical authorization scheme for this hierarchical user scheme.
"Authorization"? You mean the top-dog could login using my credentials?? There's bears down that road; it messes up audits.
Brady Kelly wrote: This preserves the higher privilege of higher users, but prevents a more senior user creating customers for more junior users to work on.
Not per se; just make sure that the junior is "part of" the group working on the customer
|
|
|
|
|
Thanks, I'm slowly discarding big parts of my original concept, and moving toward the tree just representing the org, and everyone in the org (in the tree) having access to everything else in the tree, but limited by user roles.
Eddy Vluggen wrote: "Authorization"? You mean the top-dog could login using my credentials?? There's bears down that road; it messes up audits.
Authorization doesn't involve logins, Authentication does.
|
|
|
|
|
Brady Kelly wrote: Authorization doesn't involve logins, Authentication does.
Yesyes, you're right. I mixed them up.
|
|
|
|
|
I am using MEF in my application. My application have 4 parts(class library) and a main module , the main modules responsibility is to interact with the above said parts and delegates job to them.
I have coded all the interface and abstract base classes in a library called 'Common' and refer it to all the other dlls which have classes inherit from those base classes. I moved all the base class and interface definition to the 'Common' library so that i can add reference of that dll in my main program and all the base classes and interfaces are readily available.
Is this the right way to do it? What is the other option in MEF using which i can refer to the base classes in my main module without referring to a dll.
eg:- abstract class baseAbc and interface IAbc is defined in common.dll, Is it possible to refer baseAbc and IAbc in my main module without adding reference to Common.dll
|
|
|
|
|
Disclaimer; I don't use MEF.
John T.Emmatty wrote: Is this the right way to do it?
Sounds like "yes" to me; that way you can update both common/exe without touching the other.
John T.Emmatty wrote: What is the other option in MEF using which i can refer to the base classes in my main module without referring to a dll.
Don't know if the option exists; but it "would" generate classes, and it should be possible to reference/copy those to your own assembly. I expect this is not the recommended way.
What's against having a second assembly?
|
|
|
|
|
I'm currently given a project on hand gesture recognition. Some color markers will be put on the fingers for easy tracking.
So, can anyone give some advice how should I continue for the next part which is to recognize the pre-processed output image which is now only consists of color from the color markers. How can I classified those pattern.
|
|
|
|
|
Member 9169887 wrote: I'm currently given a project on hand gesture recognition. Some color markers will be put on the fingers for easy tracking.
So, can anyone give some advice how should I continue for the next part which is to recognize the pre-processed output image which is now only consists of color from the color markers. How can I classified those pattern.
I imagine the hard part would be to figure out where a specific command begins, and when it ends. Make a mask of the pattern, compare the mask to known masks using fuzzy logic. The one that fits best, is probably the one intended by the user.
|
|
|
|
|
Hi,
I have a usercontrol in my WPF application, and there is a code behind file suppose EmployeeEditor.xaml.cs which has some code to modify.
For e.g;
I have a Employee as defined below
Class Employee
{
public string Name {get; set;}
public uint Id {get; set;}
}
I have a UserControl to edit the Employee information which has EmployeeEditor.xaml and EmployeeEditor.xaml.cs
There are methods in EmployeeEditor class to modify the list of employee
- AddEmployee()
- RemoveEmployee()
- RenameEmployee()
These methods has business logic to update the information in the data object/database.
The life of EmployeeEditor class is till the user control is displayed and it dies on closing it.
I wanted to move above methods outside this class, so that they can be used elsewhere in a functionality such as Undo/Redo which will create/delete an employee using AddEmployee/RemoveEmployee methods.
One solution is to move those methods to a helper which i don't feel to be appropiate as I need to pass all the dependencies of AddEmployee() method as a parameter.
Other solution can be to create a separate class to which will perform all the operations and keep the dependencies.
Please let me know if this problem fits into any design pattern and what could be the better solution?
Thanks in advance!
|
|
|
|
|
Rags1512 wrote: I wanted to move above methods outside this class, so that they can be used elsewhere in a functionality such as Undo/Redo which will create/delete an employee using AddEmployee/RemoveEmployee methods.
There's usually no undo/redo on the database-level. Check out the Memento-pattern, you'll see that it'd be a bit work to implement correctly.
Rags1512 wrote: One solution is to move those methods to a helper which i don't feel to be appropiate as I need to pass all the dependencies of AddEmployee() method as a parameter. Other solution can be to create a separate class to which will perform all the operations and keep the dependencies.
What dependencies? FWIW, I'd put it in a separate class, which would be embedded in the UserControl. Similar to;
class MyControl: UserControl
{
class MyControlHelper: object
{
}
}
Referring from the UC to the helper-class, is like creating a mini-DAL for your control; all IO is situated in that class. The biggest advantage is that you could write another MyControlHelper-implementation (for say, supporting another database like Oracle or Sqlite) and hook it in there.
Which parameters would you be passing? The way I see it, you'd minimal pass an Employee object. Perhaps a ConnectionString, but that'd be it. If you want to prevent writing a long signature (lot's o' params), then wrap them in their own object (like MyControlHelperAddEmployeeArgs).
Hope this gets you a bit in the right direction
|
|
|
|
|
|
Is it correct to show the database table in class? I have a class diagram that has objects that save records to a database. So i don't know whether i should show the database table in the class diagram or not. If not allowed then how can I show the relationship between the object and a database? That is how do map objects to a database?
|
|
|
|
|
Qobacha wrote: So i don't know whether i should show the database table in the class diagram or not.
Probably not. Instead you would have a object data model diagram.
However if the project is small enough such that there is only one or two diagrams and only a couple of tables then yes that is ok. However you need to make it clear that that they are data objects rather than class objects.
|
|
|
|
|
You seem to be describing Table Data Gateway pattern (Fowler, Patterns of Enterprise Application Architecture). This class inserts or updates records in a particular table. The convention is to name the class after that table. e.g. The class that updates rows in User table is called UserGateway (or simply User).
Hence, the association between the class (which contains code in C++/C#/Java language to update the table) and the table is described by the name itself. There is no need to explicity show the relationship.
However, there is no restriction to show tables in a class diagram. For example, you may want to describe database schema in UML. All you need is to create a new stereotype, e.g. <>. This stereotyped class can then represent database tables.
|
|
|
|
|
|
Hello everybody,
I'm very new to all this. I'm learning a lot however I feel like there are certain fundamental concepts that I'm not understadning and that is holding me back. Right now, what I really don't understand is how files containing programs and directories on my operating system work.
On my Windows operating system, It seems like whenever I download something new it goes to a file called C:\Program Files. Each file in there will have a lot of little files named bin, lib, include, db, and other things like that. All of THOSE file have files with extensions .dll and .exe. What are these?? Why cant i open them? How do they all work together to produce a single functioning program?
When a computer program is executed how does it know what files to read, where to look for them, what to do with them and so forth?
Can anyone explain this to me?
Thank you very much in advance
|
|
|
|