Если Вам нравится использовать управление сервером, которое делает большую работу для Вас, то Вам НЕ понравится MVC, потому что необходимо будет сделать большое кодирование руки в MVC. Если Вы любите GridView, ожидаете писать тот сами или использовать чужой.
MVC не для всех, особенно если Вы не в поблочное тестирование часть GUI. Если Вы довольны веб-формами, остаетесь с ним. Веб-формы 4.0 зафиксируют некоторые текущие недостатки как идентификатор, которые автоматически присвоены ASP.NET. Вы будете иметь контроль над ними в следующей версии.
Предполагая, что вы спрашиваете, сохранят ли члены структуры порядок, указанный в их определении, ответ - да. Стандарт требует, чтобы последовательные члены имели возрастающие адреса:
Раздел §6.7.2.1p13:
В пределах объект структуры, небитовое поле члены и подразделения, в которых битовые поля имеют адреса, которые увеличиваются в том порядке, в котором они объявлены.
, а в документации для атрибута "упаковано" четко указано, что это влияет только на заполнение / выравнивание:
Атрибут "упакованный" указывает, что поле переменной или структуры должно иметь как можно меньший выравнивание - один байт для переменной, и один бит для поля, если вы укажите большее значение с помощью выровненный атрибут.
Однако использование __ attribute __ ((__ pack __))
не является хорошим способом делайте то, что делаете.
Мы часто используем этот метод для преобразования сообщений между байтовым массивом и структурой и никогда не столкнулся с проблемами с ней. Возможно, вам придется выполнить преобразование порядка байтов самостоятельно, но порядок полей не является проблемой. Если у вас есть какие-либо вопросы о размерах типов данных, вы всегда можете указать размер поля следующим образом:
struct foo
{
short someField : 16 __attribute__ ((packed));
};
Это гарантирует, что someField будет храниться как 16 бит и не будет переупорядочен или изменен для соответствия границам байтов.
Да, у C есть гарантия, что элементы структуры не будут переупорядочены. (Могут существовать расширения или необычные системы оптимизации, которые могут это изменить, но не по умолчанию в gcc.)