|
Quote: Mobiles are typically client applications and client applications might send messages but they don't typically receive them (for good reason.) A client app would send a message by calling a server. Because of that it means that mobiles have nothing to do with it.
Messages = data, so yes, mobiles get message packets all the time. My mobile real estate app gets a packet of items it displays in a grid, as does Amazon, eBay, etc.
Think of how stupid the average person is, and realize half of them are stupider than that. - George Carlin
|
|
|
|
|
dexterama wrote: Messages = data, so yes, mobiles get message packets all the time.
Initiated by a call on the client; the server does not initiate the message. It just "serves" the messages that the "client" requests.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
dexterama wrote: Messages = data, so yes, mobiles get message packets all the time
A 'client-server' system in the modern world runs on TCP (over IP) at that means one side is ALWAYS the client and one side is the server. This is true regardless of how many API layers you stick on top of it.
In a message framework system, there are publishers and subscribers how that does not specify HOW the data moves. All it does is describe how the messages SEEM to move. Since it MUST use TCP that means that there will ALWAYS be a client and a server, still, in the message framework. And what that means is that typically a client app will act as a client (which shouldn't be surprising) and some other system will be the client.
However message frameworks can in fact be set up such that the client app is a server.
So with that background...it is seldom going to be a good idea for a mobile app to be a server. Nor for client apps of any sort to be a server.
Additionally just with any complex system it probably isn't a good idea to expose it directly to the internet. Which would be required if the mobile app was receiving pushes (which means it is acting as a server.)
Is that clearer now?
|
|
|
|
|
Hi
I have 2 application servers running my web application.
Application has a feature which upload a file. Now file upload is on server file system
There are 2 ways of doing this one is either have a file server where all files are uploaded so that whenever application is accessed all files are visible.
Other is to sync between 2 servers for files uploaded either through service or manually [clicking a button]
I like file server but then it will involve extra cost of setting up server and permissions on the folder is there any other way we can achieve this?
|
|
|
|
|
nitin_ion wrote: is there any other way we can achieve this?
You could set up a data partition on one of the both servers and set up a FTP service or whatever else you want there. In the end you'd have a file slave server which is uploading the data to the file master server. The file master server has access to the additional shared partition too and lays the files there down.
However - a dedicated file server would be the most secure way of doing this because one web server has access to the files even when the other web server is down, therefore I strongly recommend you to use a dedicated file server.
|
|
|
|
|
i have a scenario as follow:
public class A : class B
{
public SomeMethodA()
{
//.... do some logics here
SomeMethodB();
}
private SomeMethodB()
{
//.... do some logics here
}
}
class B : class C
class X : class Y
{
public SomeMethodA()
{
//.... do some logics here
SomeMethodB();
}
private SomeMethodB()
{
//.... do some logics here
}
}
class Y : class Z
class A has the exact same method as class X does. Now the question is: How do I combine this method in centralised so that my code has DRY (don't repeat yourself) without modifying/touching class Y, Z and class B, C? Class B, C, Y, and Z are our legacy code and we are NOT trying to alter/modify these classes.
any thoughts?
|
|
|
|
|
Aggregation.
Create a class D and put the two methods in. In the constructors of A and X, instantiate D; later on, forward the call to D.
Something like:
internal class D
{
public SomeMethodA()
{
SomeMethodB();
}
private SomeMethodB()
{
}
}
public class A : class B
{
protected D _D;
public A()
{
_D = new D();
}
public SomeMethodA()
{
_D.SomeMethodA();
}
}
|
|
|
|
|
ron01234 wrote: any thoughts?
Refactoring is something that must be expected in software development.
Of course deferring it is an option but only at the expense of increasing complexity and likely more fragile code. Which I suspect your current path is going to start experiencing.
|
|
|
|
|
I agree with jschell - unfortunately sometimes you just cannot have your cake and eat it, otherwise you can end up creating a spaghetti like mess of code(I know of this because that is how I learnt to code by creating a mess that I had to clean up).
The simple, and perhaps simplistic, answer is to create an abstract class and inherit from that overrriding those methods that are not the same across classes.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
GuyThiebaut wrote: that is how I learnt to code by creating a mess that I had to clean up
Which is how I learned as well.
|
|
|
|
|
I learnt to write spagetti code in a very ancient BASIC that didn't have any structured programming features.
There weren't any college courses on programming back then. They still get cancelled today due to lack of enrollment.
Q. Hey man! have you sorted out the finite soup machine?
A. Why yes, it's celery or tomato.
|
|
|
|
|
<b>please I'm having a problem understanding how data is transferred from disk to memory is conducted under programmed I/O. Can anyone help explain to me with examples the steps involved in this type of data transfer. Thanks.</b>
|
|
|
|
|
You need to by a book on hardware architecture. Alternatively try a Google search.
|
|
|
|
|
Here is what is expected of enquirers:
1. TRY first what you want to do! You may find that it's not that hard.
2. Formulate what was done by you that looks like an issue/not working.
For now, start understanding the details from this ppt: I/O Programming[^]
More material: here[^]
|
|
|
|
|
|
Hi,
Suppose any reference type is stored in some memory location and its data is continuously expanding for example appending string in loop in StringBuilder.
How memory manager manages the scenario when its object doesnt has contiguous memory available at that location.
It would be great if any one can explain it in detail.
Thanks,
Devesh
|
|
|
|
|
It just gets moved to a block of memory that is large enough to hold the expanded object. This is why you should always try to estimate how big your objects are likely to grow and reserve enough space, to minimise these operations.
|
|
|
|
|
Beyond Richard's answer, note that you can run into an OutOfMemoryException when no contiguous block of the desired size is available, i.e. when the memory is fragmented. Also, the desired size is in multiples of 64k.
|
|
|
|
|
source code to navigate a page into the another one
|
|
|
|
|
1. Gather actual requirements. For example exactly define what 'page' is, what 'navigate' is and what 'another one' is.
2. Learn to program in a language like C# or Java.
3. Learn how to design.
4. Create a design using 1 and 3.
5. Implement the design using 2.
6. Test it.
Once you are actually doing one of the above stages then ask questions about what you have done with that stage by posting information about what you have done and why it isn't working.
|
|
|
|
|
Why multiple posts? Always pick a forum that looks most suitable and follow your question there.
Answer already provided to you here: http://www.codeproject.com/Messages/4500680/Re-source-code-for-navigation.aspx[^]
To add on:
It does not work like this here.
Here is what is expected of enquirers:
1. TRY first what you want to do! You may find that it's not that hard.
2. Formulate what was done by you that looks like an issue/not working.
Try them and tell if you face issues.
Members will be more than happy to help like this.
|
|
|
|
|
http://msdn.microsoft.com/en-us/magazine/hh547108.aspx[^]
An aggregate root is an entity obtained by composing other entities together. Objects in the aggregate root have no relevance outside, meaning that no use cases exist in which they’re used without being passed from the root object.
In implementing a root in vb.net how is this possible? I would require a entity called OrderItems as a property of Order to be publicaly visible in order for the persistence framework to do it's thing???
I assume you just make the property readonly?
|
|
|
|
|
I need opinions on which offers a better deal for a distributed system.
The choices are WCF/MSMQ or Asynchronus TCP Sockets.
So far WCF/MSMQ is ahead - because of how they implement transactions.
Ger
|
|
|
|
|
Some considerations which might or might not matter.
I am rather certain that you can't use WCF, MSMQ and MSMQ Transactions. You can investigate yourself but I believe there is a fundamental problem in terms of receiving them. Basically they can be sent ok (with a transaction), but when receiving them there is no assurance that the transaction is preserved. (I can't remember how I came to this conclusion.)
MSMQ has a hard 4 meg byte limit per message. Between overhead and unicode (not optional) that can reduce the maximum message sized to less than 2 meg (bytes.) Microsoft technical docs state they have no intention of changing this limit.
Despite claims to the contrary WCF/MSMQ does not support a streaming operation. So the message must always be less than 2 meg.
MSMQ uses magic routing which is great when it works (when you get all the ports/permissions right) but is extremely difficult to figure out otherwise. And because of that messages can take a long time to arrive at the target, for example hours.
MSMQ at least on OSes before 2008 (and maybe that too) uses by default a single file with a 2 gig limit for persistence. MSMQ will crash if that file fills. And there is no way to monitor problems via the MSMQ API (maybe there is something in WMI.)
Most of the standard MSMQ 'queues' use Active Directory. If Active Directory has problems then MSMQ will have problems. If you use options to exclude Active Directory then you CANNOT insure transactions are in use. See next note.
If one queue uses transactions and the other end doesn't, messages just disappear.
MSMQ failures can result in MSMQ exceptions which have a enum which indicates the type of error. The problem however is that API can end up returning a value, via the enum api, which is not a enum. Basically violating the contract of the method.
MSMQ queue permissions and application permissions must match. Which would seem obvious. However if they don't match then it returns non-helpful errors. Such as telling you that the queue doesn't exist (even though it does.)
MSMQ is supposed to support multiple clients consuming from a single queue. However someone I know (but not me) ran a test that suggested performance was significantly degraded in such a scenario when transactions were in use. Developing around this is complicated.
I can state that I built message streaming using chunking to break a larger (bigger than 4 meg) into pieces. It was extremely difficult. Especially since I was attempting to support multiple clients (see above limitation)
MSMQ is tied to the OS. This of course means that if you want to upgrade from, say, MSMQ 3.0 to 4.0, then you must upgrade the OS.
|
|
|
|
|
I have gone a considerable way down the WCF/MSMQ route (see my articles/posts) but find its awkwardness exasperating. Transactions were presented as a 'done deal' both in the documetation I read and the resposes to my queries. See Mohamad Halabai's work in this site and elsewhere.
Yor response is a welcome counter balance.
Ger
|
|
|
|