Выбор архитектуры приложения главным образом зависит от поставленной задачи. Многие задачи успешно реализуются в небольших сетях с файловым сервером. В других случаях нужно применять более мощную клиент-серверную архитектуру. Преобразование настольного приложения в клиент-серверное (upsizing) целесообразно с точки зрения обеспечения четырех важнейших требований: