|
Hellow everyone!
We plan to write our own EPP solution in our company, now we choose which language / technology to use. Architecture is a client-server application. OS - Windows, DBMS - MSSQL. We make the application primarily for ourselves, but in the future, perhaps, we will sell and implement our solution to other customers, so perhaps we will make the application for Linux. Now we choose between C ++ (Qt) and Java (jni) (both for client and server applications). Development in C ++ seems to us more time-consuming, but the result is more productive and flexible, the development on java is seen as easier and faster. And what do you think, what technology is better to use? Can you have a howling option?
|
|
|
|
|
B0mber wrote: We plan to write our own EPP solution
Almost always cheaper and faster to find an existing application.
B0mber wrote: now we choose which language / technology to use.
No that isn't how it works. FIRST you decide what the system will do. You define the principle business features and prioritize those.
You only need to 'choose' technologies to meet those needs. Most of the time, if you have enough business experience, the technologies you already know will be sufficient.
B0mber wrote: Development in C ++ seems to us more time-consuming, but the result is more productive and flexible,
Architecture and design makes systems flexible not technologies. And correctly doing architecture/design requires experience in doing that and also an understanding of what the business needs. And for a future product understanding the industry, not just the company, is required.
B0mber wrote: Can you have a howling option?
In general without knowing specific business needs a C#/MSSQL or Java/MySQL will work as base if you are familiar with one of them. There is cloud based support for both.
|
|
|
|
|
What type of business? Or is this a "one size fits all"? Like SAP? Baan? Peoplesoft? Oracle Forms?
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
B0mber wrote: Architecture is a client-server application. From what I read, you are after a web-application.
ASP.NET is available on both Windows and Linux.
As for QT, I'd prefer WinForms, also available on both platforms; unless you can explain why you need a rich client, you'd be developing a UI for a webbrowser.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
I'd like to watch some movies about computers, because I want to gain more knowledge about computers.
|
|
|
|
|
1) I don't think this is the correct forum for this question.
2) What you usually see in the movies is mostly not related with what the world of computers really is. I.e. tapping the keyboard for a second and getting pictures zoomed and the pixels cleaned up
3) If you want to learn knowledge about computers, you should learn about computers. Movies won't give you the knowledge about them
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Ok, I will learn computer knowledge seriously, not just rely on watching movies. Thank you very much 
|
|
|
|
|
Thanks very much 
|
|
|
|
|
Movies are a form of entertainment and not meant to educate. If you seek knowledge, find yourself a book on the topic and lock yourself in your room.
If you are new to Computer Science, I'd recommend "Introduction to Computer Science: A Textbook for Beginners in Informatics".
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Thank you very much for your guidance.I will seriously study "Introduction to Computer Science". 
|
|
|
|
|
You're welcome
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
|
Short circuit - unless somebody already posted that.
|
|
|
|
|
I've never worked with concurrency in SQL before.
I'm working on a WPF app hitting SQL through a Web API.
What's the right way to handle a concurrency violation? Do I need to check the timestamp myself in my DAL's update methods? Or will SQL throw an exception? If I have to check it myself, is throwing an exception the best way? What exception(s) are used for this?
What I'm really interested in here is the full workflow from the time the user clicks Save to either the data is saved or a violation is handled in the front end?
Thanks
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
A DBConcurrencyException[^] is thrown. This[^] shows how it is handled.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Thanks.
Seems to me that after catching the DBConcurrencyException the only choice is to notify the user and reload the record.
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
Yes, since you do not know wheter the old record has been modified, or even still there. Would obviously not be happening often, since mostly there's not a lot of people working on the same record at the same moment.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Kevin Marois wrote: I've never worked with concurrency in SQL before.
What makes you think that the business (not technology) needs of the business will lead to a situation where, for whatever business reason, two updates might occur on the same record?
Note that I using "business" very specifically in the above. I am not referring to hypothetical scenarios.
And in general modern databases themselves do not have "concurrency" issues.
|
|
|
|
|
I've read the docs and it seems that processes writing to a single log file requires socket implementation. Really? is it not possible to create a static singelton class and logger instance, in a module, and import that single instance object into each module as the logger and use that? In either case, how might this be done simply and without extravagance.
|
|
|
|
|
"Static" or singleton have boundaries in which they work, in these cases the applications themselves. To do it simply, use the "Debug.WriteLine" methods. To see the log, simply attach a debugger.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Hi everybody. I have a question about Memento pattern.
Let's suppose we have a class which's state has to be saved and later restored, and we resorted to the Memento pattern for that.
What if the state includes resources that have to be explicitly released (like file handles, OpenGL textures etc)?
Should I make them part of the saved state? This necessitates to handle memento objects in a special manner: if memento was restored, then it's up to the originator class to handle the resources, if memento is dropped, then it has to clean up itself. Pretty entangled logic.
How would you implement Memento when state has resources to be released?
Should I apply Memento at all when object state includes OS resources that have to be released?
|
|
|
|
|
Member 13897152 wrote: What if the state includes resources that have to be explicitly released (like file handles, OpenGL textures etc)? I don't think it's a good idea to keep such things in a class that needs to be saved, since they will not be valid on restore.
|
|
|
|
|
You "save" things that may change. You don't simply save "everything" related to an object instance; things like "resources" are usually "common" to the class / assembly and are not "saved" for each object.
"Saving" is independent of any "cleaning up" you do "after" saving (key data).
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Member 13897152 wrote: How would you implement Memento when state has resources to be released? Not; the originator has to release those - the memento itself is just there to hold an internal state.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Keep in mind that a resource that needs to be released is, by definition, an object, and is therefore tracked by your object as a memory reference.
This should inform the design decisions made on your originator. Do not use handles to track files, use paths. Do not load a texture into the originator; apply a method for locating a texture based on a primitive type. Don't contain streams in the originator, instead contain values that will help re-initialize them.
A lot of these issues are a big part of the reason why Model classes and MVC-like patterns have come into such heavy use in recent years.
"Never attribute to malice that which can be explained by stupidity."
- Hanlon's Razor
|
|
|
|