ASP.NET получает плохой рэп в мире "Web 2.0". MySpace имеет 50 миллионов + пользователи, и я назвал бы ту "высокую загрузку".
я думаю, что, как примерно любая другая веб-технология, возможность инструмента находится в руках разработчика, создающего для него. Если разработчики ASP.NET проигнорируют кэширование и выравнивание нагрузки, то приложение не обработает загрузку, и это не будет отказ ASP.NET.
Это некоторые мысли, которые у меня были по этому поводу. В конце концов, вам может потребоваться как можно более разделить активы и код. Я могу придумать несколько возможных стратегий:
Активы в одном репо и код в другом.
Инструменты DVCS не отслеживают других репозиториев, кроме их собственного, поэтому нет прямой поддержки BOM (Bill of Materials), т.е. нет четкого способа определить, когда оба репозитория синхронизированы. (Думаю, это то, для чего предназначен git-submodule или repo ).
Пример: Художник добавляет новое изображение в один репозиторий, а программист добавляет функцию для использования изображения, однако, когда кому-то приходится откатывать версии, он вынужден каким-то образом отслеживать эти изменения самостоятельно.
Накладные расходы на репозиторий активов, даже если это влияет только на тех, кто его использует.
Активы и код находятся в одном репозитории, но находятся в двух разных каталогах.
Обе стратегии, перечисленные выше, по-прежнему имеют недостаток, заключающийся в больших накладных расходах, поскольку вам необходимо клонировать большое хранилище активов. Одним из решений этой проблемы является вариант первой стратегии, описанной выше, два репозитория; хранить код в распределенном репозитории VCS, а активы - в централизованном репозитории VCS (например, SVN, Alienbrain и т. д.).
Учитывая то, как большинство графических дизайнеров работают с двоичными файлами, обычно нет необходимости в ветвлении, если это действительно не необходимо (новые функции, требующие большого количества ресурсов, которые не понадобятся намного позже). Недостатком является то, что вам нужно будет найти способ резервного копирования центрального репозитория. Отсюда третья стратегия:
Код в репозитории как обычно, а активы не в репозитории. Вместо этого активы должны быть помещены в какую-то систему управления контентом / медиа / активами или, по крайней мере, в папку, для которой регулярно создается резервная копия. Это предполагает, что есть очень небольшая потребность в обратном отслеживании версий с графикой. Если есть необходимость в обратном отслеживании, графические изменения незначительны.
Thoughts, no experience: I would indeed seperate code from data. Assuming that there is a set of images that belongs to the application, I would just keep that on a centralized server. In the code, I would then arrange (through explicit coding) that the application can integrate both local or remote assets. People contributing can then put new images in their local store at first, integrating it with some kind of (explicit) upload procedure into the central store when required and approved.
Я сам боролся с этим. Как вы сказали, управление версиями ГБ ресурсов может быть огромной проблемой.
Для проектов, требующих внешнего участия, я нашел Mercurial работающим решением, но не лучшим. Он занимает место на диске для больших файлов и может быть довольно медленным в зависимости от обстоятельств.
Для моей внутренней проектной работы я предпочитаю использовать простые инструменты синхронизации (rsync, synctoy, любые другие), чтобы поддерживать каталоги в актуальном состоянии. дата между серверами / машинами, а затем вручную управлять версиями. Я считаю, что мне редко требуется контроль версий для чего-либо, кроме основных исправлений.
Для проектов, требующих внешнего участия, я нашел Mercurial рабочим решением, но не лучшим. Он занимает место на диске для больших файлов и может быть довольно медленным в зависимости от обстоятельств.
Для моей внутренней проектной работы я предпочитаю использовать простые инструменты синхронизации (rsync, synctoy, любые другие), чтобы поддерживать каталоги в актуальном состоянии. дата между серверами / машинами, а затем вручную управлять версиями. Я обнаружил, что мне редко требуется контроль версий для чего-либо, кроме основных исправлений.
Для проектов, требующих внешнего участия, я нашел Mercurial рабочим решением, но не лучшим. Он занимает место на диске для больших файлов и может быть довольно медленным в зависимости от обстоятельств.
Для моей внутренней проектной работы я предпочитаю использовать простые инструменты синхронизации (rsync, synctoy, любые другие), чтобы поддерживать каталоги в актуальном состоянии. дата между серверами / машинами, а затем вручную управлять версиями. Я считаю, что мне редко требуется контроль версий для чего-либо, кроме основных исправлений.
что угодно), чтобы поддерживать каталоги в актуальном состоянии между серверами / машинами, а затем осуществлять контроль версий вручную. Я считаю, что мне редко требуется контроль версий для чего-либо, кроме основных исправлений. что угодно), чтобы поддерживать каталоги в актуальном состоянии между серверами / машинами, а затем осуществлять контроль версий вручную. Я обнаружил, что мне редко требуется контроль версий для чего-либо, кроме основных исправлений.