|
I'm in need of a little push in the right direction and I'm hoping some experts on this forum can help in getting me going in that direction.
I would like to develop a cross-platform application which would run as a client-program only but has the potential of running as a client-server program.
The application is basically a game application that needs a database-layer, an application layer, and a GUI layer.
The requirements are the following: Cross platform a must. Intuitive GUI. Easy access to Database so user can make whatever changes are necessary. Separate layers so that work can be done on one layer and not effect another.
When it came to the GUI layer I would like to use WxPython for the GUI. In researching this product it does exactly the things the application design requires however does WxPython interface with C++? C#? How does it interface? Sockets? Events? The answers here will determine how the logic layer will be built.
Also not sure which Database to use. I'm comfortable with SQL databases but again, the database must be cross-platform compatible (if that makes a difference anyways with the database). Perhaps XML would work better. Last attempt with XML proved to be slow but was using Java as the logic layer. Could have something to do with it, maybe not.
I will continue to browse through the articles here to see if anything can be of help, but for those who are far more experienced in this stuff, if you have general information that could help I would be much appreciative.
Thanks for any help!
|
|
|
|
|
brdavid wrote: The application is basically a game application
brdavid wrote: Cross platform a must.
What platforms? Nintendo? WII? PlayStation.....?
That's a tall order and I am not sure apps for Games use a Database so where does that requirement come from?
brdavid wrote: I will continue to browse through the articles here to see if anything can be of help, but for those who are far more experienced in this stuff, if you have general information that could help I would be much appreciative.
I suggest you seek out more Gaming specific information sources.
|
|
|
|
|
led mike wrote: What platforms? Nintendo? WII? PlayStation.....?
Windows XP/2000 possibly Vista
Mac OSX
Linux (popular distros such as Ubunto)
Perhaps the use of the word "game" is misleading. This is a Windows "type" application that revolves around a "roleplaying" game. The application does nothing more than automate tasks, print sheets, calculate numbers, run random generators, update the database, run queries from the database and so on. So this is pretty much a standard application, and less of a "game".
|
|
|
|
|
brdavid wrote: The application is basically a game application that needs a database-layer, an application layer, and a GUI layer.
Cross-platform for what ? the database layer, the application layer or the GUI layer ?
anyway, doing cross-platform development is a challenge, you need to do the following, have at least an expert for each type of platform you want to develop on; these people will help you write platform specific code and help you create an abstraction layer between your "engine" and the different platforms.
For example, file access, graphics, DB, ...
For the GUI part, you can use a toolkit that is supported by all platforms, the upside is that it can be faster to develop, but your application will look ugly on all platforms, those kind of toolkit usually do not support native look-and-feel.
|
|
|
|
|
True, but I guess my main area of interest right now is if anyone knows of any leads where WxPython and C++ and a database are used either in a multi-tier application or perhaps single tier.
Thanks!
|
|
|
|
|
How about FireBird[^] for the database layer, that's cross-platform and allows you to use SQL. It has interfaces for Mono & MS.NET as well as C, C++ etc. The upper language choices are really a matter of preference.
|
|
|
|
|
hi everybody,
Iam new to design pattern concept , I want to know in which scenario we are using singleton pattern in our appl.
I need exact scenario because i had some examples and gone the theory in books
i want applicable knowledge in application development.
Thanks in advance for replay,
|
|
|
|
|
Hi shakeela,
one of the case you can use singleton pattern is to create a connection for your data base application.
satyaki mishra
|
|
|
|
|
satyaki mishra wrote: one of the case you can use singleton pattern is to create a connection for your data base application.
I don't believe that statement is particualrly helpful
|
|
|
|
|
And it's quite controversial use.
[ My Blog] "Visual studio desperately needs some performance improvements. It is sometimes almost as slow as eclipse." - Rüdiger Klaehn "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe
|
|
|
|
|
dnh wrote: And it's quite controversial use.
What use? His post is completely absent any use model, or any other contextual references, and therefore not helpful.
|
|
|
|
|
"one of the case you can use singleton pattern is to create a connection for your data base application."
Ok, if I was asking about singletons this wouldn't help me. In that I agree with you. But I believe that he is talking about scenario when you have class that manages connection to db, and creates connection in constructor. If that class is singleton, only one instance is created, so only one connection is created (which is usually very expensive operation). But then there's a pooling and you will have connection opened for whole lifetime of the singleton object, sometime you'll connect to db even when you don't need to etc. Which is why I say this is not the supercleanest use of singleton pattern.
[ My Blog] "Visual studio desperately needs some performance improvements. It is sometimes almost as slow as eclipse." - Rüdiger Klaehn "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe
|
|
|
|
|
dnh wrote: Which is why I say this is not the supercleanest use of singleton pattern.
It's a perfectly fine design when the use model is a single user desktop application connecting to a desktop database. Your post also lacks specific use model information required to draw any conclusion as to the accuracy of your statement.
|
|
|
|
|
led mike wrote: It's a perfectly fine design when
Isn't that little word "when", and what follows it, proving my point? (but then again, I've just came from work )
[ My Blog] "Visual studio desperately needs some performance improvements. It is sometimes almost as slow as eclipse." - Rüdiger Klaehn "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe
|
|
|
|
|
shakeela wrote: i want applicable knowledge in application development.
That is "experience" and we can't give that to you.
|
|
|
|
|
shakeela wrote: I want to know in which scenario we are using singleton pattern
When dumped by ones girlfriend or significant other.
|
|
|
|
|
shakeela wrote: I want to know in which scenario we are using singleton pattern in our appl
Here is one scenario[^]
But, my plans for this series will remove the singleton pattern later.
|
|
|
|
|
I consider singletons as evil!
If there has to exist really one one instance of a class then I use a manager pattern (don't know if this patter has a real pattern name):
I request the "singleton" from a Manager that will return me the instance. Depending on configuration and other things it will return me a singleton or a new instance. Furthermore I request interfaces which allows the replacement of "singletons" either for testing (mocks) or changed requirements or if it is a base functionality that is used in different projects.
Much more flexible.
-^-^-^-^-^-
no risk no funk ................... please vote ------>
|
|
|
|
|
Sounds like you are using the Factory Pattern to generate the singleton.
Urs Enzler wrote: Furthermore I request interfaces which allows the replacement of "singletons" either for testing (mocks)
Very useful for that.
|
|
|
|
|
I'm not sure what the exact name is, because a Factory is something that instanciates objects for me, but a manager does that and manages the instance. If I request the same interface I'll get the same instance.
-^-^-^-^-^-
no risk no funk ................... please vote ------>
|
|
|
|
|
Urs Enzler wrote: I consider singletons as evil!
It's just a "Creational Pattern", there are many, your situation calls for a different one. That does not provide reasoning for declaring the Singleton to be "Evil". However there are plenty of arguments about it on the WikiWikiWeb.
|
|
|
|
|
Yes of course, I'm a bit exaggerating
The main reason I'm not a fan of the singleton pattern is because it is overused.
1)
The decision that something exists only once in an application is a very final one. Normally singletons are very basic things in an application (a logger for example). And if that changes (happend about three times to a project I was working in) it is very hard to refactor (because of point 2)
2)
It is often the case that projects using singletons are not loosly coupled: components reference the singleton by something like MySingletonClass.Instance. I consider this very limiting. In an earlier post I mentioned that I use a Manager pattern (or Factory pattern) that allows me to exchagne the real object behind the "singleton" for example for testing (mocks).
3)
In a framework or in a base components library, you should definitly not use singletons because they can not be replaced by project specific instances.
Because of these reasons I prefer using a manager pattern (Factory pattern) because it is not really more complicated but very much more flexible and not limited.
And as a final word: yes there are situations where the singleton pattern is adequat, but they are seldom in my eyes or there exists a better pattern for the scenario.
-^-^-^-^-^-
no risk no funk ................... please vote ------>
|
|
|
|
|
|
led mike wrote: You probably know this but there are many more creational patterns[^]
Unfortunately, this page does not mention the kind of pattern we are using. Maybe this is because it is actually a Factory (instance creation) but with managing functionality
May the crusade for good design continue ...
-^-^-^-^-^-
no risk no funk ................... please vote ------>
|
|
|
|
|
Urs Enzler wrote: but with managing functionality
"managing" would be structural.
Urs Enzler wrote: Depending on configuration and other things it will return me a singleton or a new instance.
It is difficult to understand that with any certainty. Perhaps you are using both Factory and Flyweight[^] Patterns. Or perhaps you are referring to a higher level abstraction of both into a Composite or Facade. I can't tell.
|
|
|
|