Guid - это тип значения, поэтому он не может быть нулевым. Один из способов проверки:
if (contactId == Guid.Empty)
или
contactId == default(Guid)
у меня должна быть одна основная таблица стилей для целого сайта и один для каждой отдельной страницы для настроек?
Быть прагматичным. Если у Вас есть небольшое количество достаточно правил, что можно организовать их всех в одном файле и сохранить контроль того, что делает, что, сделайте это. Если у Вас есть значительное количество правил, которые только относятся к определенным разделам или отдельным страницам в Вашем сайте, любой ценой выламывают их в их собственные подтаблицы стилей, но не чувствуют потребность создать отдельную таблицу стилей для каждой страницы, даже когда это только содержит два правила. Добавьте определенный для страницы класс или идентификатор к < тело>, таким образом, можно выбрать единственные страницы из общей таблицы стилей, должно Вы нуждаться к.
разделение стилей в таблицы стилей для Вашего преимущества как автор, сделайте то, что Вы находите самыми легкими справиться. Для сложного сайта это, вероятно, будет больше чем одним файлом CSS, но это не будет десятками.
у меня должен быть другой для стилей печати?
Обычно да. Пока можно встроить стили печати в другой таблице стилей с помощью правила @media, это традиционно было багги, таким образом поместив медиа в < ссылка> тег является обычно самой легкой. В любом случае таблицы стилей печати часто так отличаются от своих экранных дубликатов, что просто имеет смысл разделять их правила.
я услышал, что соединение большего количества файлов занимает больше времени для браузера для получения их.
Да, но этот эффект часто завышено. HTTP/1.1 уменьшает задержку на запрос путем сохранения соединений между клиентом и сервером живыми, который является сильным смягчением.
то, Сколько, является слишком многими?
Достаточно, что у Вас крайне маловероятно будет это много таблиц стилей. Сценарии могут быть проблемой при использовании вида платформы, которая требует один файл сценария в классе, но иначе обычно в порядке. Это чаще всего проблематично с большим количеством маленьких изображений.
Вы в большой степени комментируете свой CSS?
Легкий комментарий обычно должен быть достаточно. Декларативный стиль правила CSS обычно не становится достаточно сложным для необходимости в во всестороннем коде объяснений, может потребовать. В особенности, хотя, зарегистрируйте что-либо парадоксальное как определенные для браузера взломы.
Располагают в алфавитном порядке в элементах?
Не, если это не помогает Вам справиться. Обычно это не было бы, Вы попытаться сгруппировать подобные правила или правила, относящиеся к подобным группам элементов.
мне нужен сброс?
А полный сброс? Не, если Вы знаете то, что Вы делаете и можете выбрать конкретные проблематичные значения по умолчанию, которые Вы хотите сбросить.
Должен я включать одну или две хороших библиотеки (jQuery и Прототип, например)
не включают больше чем одну платформу, если Вы абсолютно не имеете к.
и затем другой включал для каждой страницы?
, Если каждая страница имеет поведение местного обычая, Вы могли. Но этого обычно не происходит. При создании сценариев поведения прогрессивного улучшения, которые связывают с, например, имена классов, можно включать сценарий для каждого поведения на каждой странице, которая использует его, то позволенный он найти, что элементы связывают с автоматически.
Структура каталогов: Как Вы организуете сайт?
Лично, для моих приложений Python/WSGI:
appfolder
application.py - main WSGI entry point and control/configuration script
data - run-time writable application file store
private - files not available through the web server
public - mounted as a virtual directory on the web server
logs - access, error, application log files
system - all the static application code and data
htdocs - web server root folder
file - static servable files
img - static images
script - JavaScript
style - CSS
lib - Python modules used by site
appmodule - main application code package
templates - HTML page templates
mail - mail text templates
для меня важно сохранить вЂdata’ в отдельном месте (с отдельными полномочиями) к приложению в вЂsystem’. Необходимо быть в состоянии выгрузить папку вЂsystem’ для обновления приложения, не имея необходимость волноваться, что существуют загруженные изображения в htdocs/img, который необходимо взволновать по поводу хранения.
Я отправил свою структуру каталогов и комментарии в другом потоке, но это применимо здесь также!
я использовал следующую установку некоторое время теперь с большими результатами:
/ сайт: Это - то, где мой фактический рабочий веб-сайт будет жить. Я установлю свой CMS или платформу в этом каталоге после того, как шаблоны будут созданы.
/ источник: Содержит любые аккомпанементы, примечания, документы, спецификации, и т.д.
шаблоны/: Запустите здесь! Создайте все статические шаблоны, которые должны будут в конечном счете быть портированы в CMS или платформу / сайта.
/ _media: Изображения, загружаемые файлы, и т.д. Организованные по мере необходимости
/ _style: Я предпочитаю модульную разработку CSS, таким образом, я обычно заканчиваю со многими таблица стилей для каждого уникального раздела веб-сайта. Это очищено значительно с Блендер - я настоятельно рекомендую этот инструмент!
<ул.> <литий> print.css (это в конечном счете смешивается, так используйте печать @media) литий> <литий> reset.css ( Eric Meyer ) литий> <литий> screen.css (для экрана @media, карманного компьютера) литий> <литий> дополнительные модули по мере необходимости литий> ул.>/ _vendor: весь сторонний код (jQuery, застекленная витрина, и т.д.)
Blendfile.yaml (для Блендера; посмотрите выше)
тесты/: Селен модульные тесты
Приложите все усилия, чтобы иметь одну таблицу стилей. Соединение листов отдельного стиля для отдельных страниц побеждает цель.
можно наследовать другие таблицы стилей в css включением следующих строк наверху листа
@import url('blueprint/screen.css');
@import url('blueprint/styles.css');
в этом случае, я наследовал проект css стили тогда добавление моих пользовательских стилей ниже этого.
С точки зрения библиотек JS я предпочитаю связывать 3 файла.
Библиотека, одна страница со всеми плагинами и наконец код страницы.
Для структуры каталогов у меня обычно есть следующее:
/ _css / _images / _scripts файлы
, но недавно я имею, начал помещать все, раньше заставлял сайт смотреть/работать способ, к которому я хочу его в / _presentation каталог... тогда что-либо дополнительное как изображения для сообщений в блоге и т.д. вошло бы в изображения /
Hope, которой это помогает.
Я всегда пытаюсь помешать браузеру иметь, чтобы загрузить и интерпретировать правила CSS и код JS, который не используется на рассматриваемом HTML. Я соглашаюсь с @bobince, что необходимо только повредить стили страницы и сценарии в отдельный файл, если будет необходимо для организации, но если сайт будет очень большим вообще, то Вы достигнете той точки.
Однако, так как я только создаю основанные на шаблоне сайты, я начинаю задаваться вопросом, почему я связываюсь с внешними файлами вообще. Например, если у меня есть шаблон основы вещи, я вставил главу того шаблона, будет применен ко всем страницам на моем сайте. Итак, почему не только помещает мои стили и сценарии там?
Две причины приходят на ум. Сначала браузер может кэшировать внешний файл и снова использовать его на каждой странице, которая включает его, не имея необходимость загружать все это снова. Вторые разработчики не могли бы быть как удобный ввод по абсолютному адресу вокруг в Ваших шаблонах, поскольку они смешивают с простыми файлами CSS.
Это - все хорошо и хороший для глобальных стилей, которые относятся к каждой странице в Вашем сайте, но что относительно тех одноразовых страниц, которые имеют некоторый стиль, который не совместно используется больше нигде? Если бы Вы добавили этот стиль к глобально прикладному внешнему файлу, то Вы увеличили бы начальное время загрузки своего сайта только, чтобы иметь стиль, который только используется на одной странице. Далее, когда Вы возвращаетесь к тому файлу несколько месяцев спустя, Вы, вероятно, забудете то, для чего те правила были даже.
я предлагаю, чтобы любое правило стиля, которого не выражают на каждая страница , было помещено в <style>
теги в подшаблоне, который представляет HTML, к которому относится правило. Это переместит загрузку и сложность от глобальной таблицы стилей до фактической страницы, где стили необходимы и дают контекст правил так, чтобы они могли сохраняться в будущем. Если это пугает Вашего разработчика, они не должны писать CSS так или иначе. Просто скажите им придерживаться Photoshop и позволять Вам сделать работу большого мальчика.
Только убедитесь, что вы не используете заглавные буквы для папок. Это может вас укусить, когда вы разрабатываете для Windows и развертываете на сервере Linux.
CSS: Я использую только одну таблицу стилей. Я просто продолжаю добавлять в конец по мере продвижения. Я обычно помещаю комментарий перед каждым набором правил для конкретной страницы. Ctrl + F, если мне нужно что-то отредактировать.
Javascript: Обычно включают только одну библиотеку и, возможно, несколько плагинов. Используется для перебрасывания любого специфичного для страницы JS непосредственно в заголовок этой страницы, но я считаю это немного уродливым и смешивает «поведение» с данными. Итак, я начинаю новую парадигму -
MVCB - Модель, Представление, Контроллер, Поведение. MVC отлично подходит для настольных приложений с довольно статичным пользовательским интерфейсом, но когда вы добавляете много JS, я думаю, что это требует дополнительного уровня абстракции.
Итак, моя исходная файловая структура:
index.php
app
config
bootstrap.php -- code that needs to run before anything else, or functions that don't really fit elsewhere
core.php -- timezone, database, and misc settings
routes.php -- default routes
layouts -- layout/template files
flash -- layouts for one-time popup messages
objects -- all files are stored in the same folder as the controller to keep directories
smaller and ease reusability
object
controller.php
model.php
routes.php -- object-specific routes to override default routes
behaviours -- page-specific javascript files
action.js -- included automatically on that page if this file exists
views
action.php -- the view for this action
public -- static media files, sometimes called "assets"
favicon.ico
xrds.xml
css
img
js
uploads
core
app.php -- initializes stuff
controller.php -- default controller
dispatcher.php -- includes everything and calls all the appropriate functions
model.php -- default model that all other models inherit from
components -- helper functions to used in controllers
datasources -- mysql, oracle, flat-file...
helpers -- functions to be used in views and layouts
structures -- model helpers such as tree or polymorphic behaviours
utils -- functions that are useful everywhere
libs -- 3rd party libs
.htaccess
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/app/public/
RewriteCond %{DOCUMENT_ROOT}/app/public%{REQUEST_URI} -f
RewriteRule .* /app/public/$0 [L]
RewriteCond %{REQUEST_URI} !^/app/objects/
RewriteRule ^([^/]+)/(.+\.js)$ /app/objects/$1/behaviours/$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /index.php?url=$0 [L,QSA]