LINUX.ORG.RU

Готовимся к PHP6


0

0

Наверное, многим программистам, которые пишут на этом языке, будет интересно узнать какие изменения происходят в PHP, ведь исправлять код при переходе на новую версию иногда затруднительно. Перечислю лишь некоторые, самые значимые моменты:

  • Улучшена поддержка юникода
  • Упразднены register_globals, magic_quotes и $HTTP_*_VARS
  • Выброшена поддержка библиотек GD1 и FreeType1
  • safe_mode больше не используется
  • Добавлена поддержка 64 битной целой арифметики
  • Фигурные скобки больше не используются для доступа к строке по индексу
А также многое другое.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от anonymous

ViewState нужен, чтобы при обработке POST запроса иметь доступ к состоянию срверных контролов, которые были установлены на предыдущем шаге. Если вам это не надо - ставите свойство контрола EnableViewState в false и всё.

Чтобы в сессию - берите у контрола свойство ViewState и сохраняйте в сессию, а потом считывайте обратно, в чём трабла?

anonymous
()
Ответ на: комментарий от Ky6uk-Py6uk

Ты специально тут троллишь?

1) split тоже работает с регекспом? сюрприз? http://perldoc.perl.org/functions/split.html

2) В javascript как и в ruby split и replace(gsub) могут принимать как строку так и регексп. В первом случае реплейс будет производиться строго в один проход, без использования регексп-обработчиков. Со сплитом аналогично, а разница будет в том что во первых будет два вызова функции, во вторых будет создаваться массив. читать до полного понимания - http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Obj...

3) Говорим мы конечно о javascript, я привел ссылку на документацию по функции где черным по белому написано что может быть первым аргументом

4) Вы настолько незнакомы с языком javascript что не знаете что регексп там задается с помощью символов /../ как в перле и руби?

5) Возможно ваш мозг был изнасилован похапе, где регекспа как такового нет - и там приходится строками их передавать, да еще и с двойным бакслешем, вместо одного. Так вот, покурите докуменатацию по этому быдлоязыку, и поймите отличие фукнций split и explode. (подсказка, в javascript нет explode потому что это не убогий быдлоязычек и он понимает что ему дали - строку или regexp). Учитывая ваши интеллектуальные способности - подсказка - http://ru2.php.net/explode

6) Сюрприз, но регексп "$" не несет смысла, т.к. $ это конец строки.

PS. Я чувствую что ты как и в теме про дримвейвер где ты слил, тупо исчезнешь и перестанешь отвечать. Если ты не трус то жду ответов. Если ответишь, специально для тебя проведу тесты, на скорость .split().join() и replace причем и с регекспами и строками.

anonymous
()
Ответ на: комментарий от insa

>Заказчика такие вещи перестают волновать, когда срок разработки уменьшается раза в 2-3. (headhunter.ru -> search -> rails)

При переходе на рельсы, скажем с symfony срок разработки в три раза сокращается автоматически? факты/аргументы будут, или как всегда?

>Тесты в рор пишет программист, их потом просто надо проверить.

Мне неудобно спрашивать, но вы вообще имеете понятие о QA?

anonymous
()
Ответ на: комментарий от anonymous

Если enableViewState в false то " берите у контрола свойство ViewState и сохраняйте в сессию" работать не будет.

Если enableViewState в true то " берите у контрола свойство ViewState и сохраняйте в сессию" просто не будет нести смысла, т.к. он итак уже есть в форме, следовательно бедлый клиент будет качать эту портянку каждый раз.

Надеюсь понятно для дотнетчика объяснил? Или с примерами надо?

anonymous
()
Ответ на: комментарий от r

Взрослые заказчики платформу под задачу выбирают. И для сайта-визитки PHP-неплохой вариант. Другое дело, что рынок сайтов-визиток сужается - все хотят понавороченнее. PHP умрёт вместе с заказами на сайтики из трёх страничек.

anonymous
()
Ответ на: комментарий от anonymous

>PHP умрёт вместе с заказами на сайтики из трёх страничек

Извините, а что делать фирмам с навороченными сайтами. с кучей распределённых сервисов, которые написаны (о ужас!) на php? Признать себя несуществующими?

anonymous
()
Ответ на: комментарий от anonymous

>А взрослые это кто?

Это те самые кого парит на каком вебсервере, базе данных, и технологиях будет сделано.

r ★★★★★
()
Ответ на: комментарий от anonymous

>Если enableViewState в false то " берите у контрола свойство ViewState и сохраняйте в сессию" работать не будет.

Хм, я даже было подумал, что ошибаюсь, но нет, специально проверил: EnableViewState отключает включение контрола в ViewState значение на странице, то свойство ViewState значения содержит. Жаль тут нельзя скриншот приаттачить. Создайте демо-проект и убедитесь в этом сами.

anonymous
()
Ответ на: комментарий от anonymous

>Хм, я даже было подумал, что ошибаюсь, но нет, специально проверил: EnableViewState отключает включение контрола в ViewState значение на странице, то свойство ViewState значения содержит

Control.EnableViewState Property Gets or sets a value indicating whether the server control persists its view state, and the view state of any child controls it contains, to the requesting client.

написано что он просто исключается из вьюстейта. Т.е. во вьюстейте уже не то.

anonymous
()
Ответ на: комментарий от r

>Это те самые кого парит на каком вебсервере, базе данных, и технологиях будет сделано.

По моим наблюдением это парит любую контору, где к процессу постановки задачи подходят "по взрослому".

anonymous
()
Ответ на: комментарий от anonymous

Зачем же? Переползать потихоньку на что-нибудь получше. Я тоже видел немало навроченных сайтов на ASP 3.0 (хотя бы www.rentacoder.com) и что, из этого следует, что всё ок, можно и дальше так работать?

anonymous
()

class 􀎯􀏯􀏙􀊔􀏉􀏯􀏄 {
function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ
{ ... }
function !வா$ கேனச)
{ ... }
function འབྲུག་ཡུལ།
{ ... }
}
$􀏓􀏩􀏌􀎠􀎼 = array();
$􀏓􀏩􀏌􀎠􀎼 רַעְיולוּחַ שָׁנָה‘] ’] = new 􀎯􀏯􀏙􀊔􀏉􀏯􀏄();


мама роди меня назад (с)

aim1159 ★★★★★
()
Ответ на: комментарий от anonymous

>что всё ок, можно и дальше так работать?

В случае PHP, или ASP.NET следует именно это. Если конечно ставиться задача РАБОТАТЬ, а не играться с технологиями.

anonymous
()
Ответ на: комментарий от anonymous

>Control.EnableViewState Property Gets or sets a value indicating whether the server control persists its view state, and the view state of any child controls it contains, to the requesting client.

>написано что он просто исключается из вьюстейта. Т.е. во вьюстейте уже не то.

Написано, что это свойство исключает сериализацию втюстейта в страницу, передаваемую клиенту. Что значит, что во вьюстейте уже не то? Что не то? Данные, введённые клиентом, передаются как отдельные параметры POST-запроса и работают без вьюстейта.

anonymous
()
Ответ на: комментарий от anonymous

>И для сайта-визитки PHP-неплохой вариант.

Серьезным заказчикам заказывающим сайт визитку на пол года или под эвент совершенно наплевать на чем оно будет сделано. Большинство серьезных даже не утруждается озабачиваться где это все будет и т.п. Если заказчик серьезный - то простенький сайт для него - мелкие расходы - он будет покупать all inclusive включая перекладывание на плечи разработчика всего включая хостинг этого сайта. Тратить свое время на простенький сайт заказчик не будет. Он подпишет дизайн и захочет через неделю урл где это можно смотреть. На чем сделано и где хостится ему плевать - лишь бы его с этим не доставали. Это практика из вебконторы в которой я работал (сайтов на пыхе мы не писали - простенькие сайты были на перле). Более серьезный дядька озабачивающийся базами данных и операционными системами и ходящий томиками техзадания не заказывает сайтов на пыхе опять же. У него могут быть объективные требования (типа у нас были интеграции с существующими корпоратичными базами), все остально он ждет в виде предложения от конторы разработчика. Это не его компетенция выбирать технологии. И серьезный заказчик это знает.

r ★★★★★
()
Ответ на: комментарий от anonymous

>Извините, а что делать фирмам с навороченными сайтами. с кучей распределённых сервисов, которые написаны (о ужас!) на php? Признать себя несуществующими?

Признать что они в говне из которого надо начинать вылезать.

r ★★★★★
()
Ответ на: комментарий от anonymous

Работать - означает, сопровождать, развивать и пр.

Офтоп: апач уже умеет держать сразу несколько версий PHP? Помнится была большая трабла подключить PHP4 и PHP5 одновременно.

anonymous
()
Ответ на: комментарий от aim1159

>мама роди меня назад (с)

хе... я года полтора назад приводил пример такого кода в стать е про PHP6 в один журнал... Типография тоже не осилила =)))

anonymous
()
Ответ на: комментарий от anonymous

Так этого контрола там не будет.

И вообще вьюстейт если не хранится в сессии то он потеряется при GET запросе, а значит что на сайте все ссылки надо POST-ом делать? Дибилизм ведь. Т.е. реально он имеет смысл только на формах, но на формах давно AJAX рулит, так что вьюстейт не нужен.. но он пихается. Можно пропатчить asp.net чтобы везде вьюстейт был false?

anonymous
()
Ответ на: комментарий от r

>Серьезным заказчикам заказывающим сайт визитку на пол года или под эвент совершенно наплевать на чем оно будет сделано. Большинство серьезных даже не утруждается озабачиваться где это все будет и т.п.

Да кто спорит? И для таких задач PHP - нормальное решение.

anonymous
()
Ответ на: комментарий от anonymous

>По моим наблюдением это парит любую контору, где к процессу постановки задачи подходят "по взрослому".

По моим наблюдениям это не парит заказчика (это относится к вебу). Понятно дело что те кто заказывает операционку для своей фирмвары указываю хотят они линукс или wince - и сюрпризов тут не будет. А серьезный дядка торгующий металопрокатом не интересуется на чем у него сайт.

r ★★★★★
()
Ответ на: комментарий от r

>Признать что они в говне из которого надо начинать вылезать.

Контора в которой я работаю сейчас, имеет оборот в несколько десятков миллионов долларов в месяц. Я понимаю, для вас это мелко, но сказать что фирма в говне я бы по стеснялся. Что характерно, существенная часть бизнеса - отношения с вендорами, диллерами, заказы, протекает посредством интернета. а основная технология - PHP.

anonymous
()
Ответ на: комментарий от anonymous

>Да кто спорит? И для таких задач PHP - нормальное решение.

С этим никто не спорит. Я возражал только против того что это требование заказчика - "сайт на PHP".

r ★★★★★
()
Ответ на: комментарий от anonymous

>И вообще вьюстейт если не хранится в сессии то он потеряется при GET запросе, а значит что на сайте все ссылки надо POST-ом делать? Дибилизм ведь. Т.е. реально он имеет смысл только на формах, но на формах давно AJAX рулит, так что вьюстейт не нужен.. но он пихается. Можно пропатчить asp.net чтобы везде вьюстейт был false?

Такие заявления заставляют усомниться в вашей компетентности. ViewState локален в рамках текущей страницы по определению. И да, в рамках одной страницы все делается POST-запросами. Переход на другие страницы делается обычными GET-запросами/URL-ами, естественно без передачи ViewState.

Что касается AJAX - в ASP.NET технология заключается в первую очередь в том, выделяется как бы подстраница, которая и перегружается по запросу. AJAX - это скорее транспорт, другой способ доставить данные клиенту. А ViewState определяет, какие же данные будут ходить между клиентом и сервером.

С чем я согласен - так это с тем, что было бы логично свойство EnableViewState убрать по дефолту, поскольку оно чаще не нужно, чем нужно. Но, согласитесь, что это незначительный недостаток.

anonymous
()
Ответ на: комментарий от r

>А серьезный дядка торгующий металопрокатом не интересуется на чем у него сайт

Дядя вася с штатом сотрудников в два таджика - нет, не по интересуется. Контора с IT отделом и IT инфраструктурой - поинтересуется наверняка.

anonymous
()
Ответ на: комментарий от r

Требование заказчика - побыстрее, попроще и подешевле. А сейчас это фактически означает PHP + какая-нибудь jomola

anonymous
()
Ответ на: комментарий от r

«Здраствуйте. Я, Василий. Хотел бы чтобы вы сделали сайт, на PHP суть такова… Посетитель может вводить адрес, искать товары и покупать. И если посетитель покупает сапоги то сайт в mysql, деньги в рублях высылаются товары магазина и поиск. Можно грабить корованы…»

anonymous
()
Ответ на: комментарий от anonymous

>Я понимаю, для вас это мелко, но сказать что фирма в говне я бы по стеснялся.

Это очень хорошо.

>Что характерно, существенная часть бизнеса - отношения с вендорами, диллерами, заказы, протекает посредством интернета. а основная технология - PHP.

Можно урл? Хочу посмотреть объем и качество онлайновых сервисов.

И еще - не фирма в говне. А ее онлайновая часть бизнеса в смысле нарачивания сервисов и развития.

r ★★★★★
()
Ответ на: комментарий от anonymous

>Контора с IT отделом и IT инфраструктурой - поинтересуется наверняка.

Дяд вася как раз поинтересуется - у него каждый бакс на счету он захочет подешевле сделать и подешевле захостить, да еще и сам все это порешает чтобы нге платить кому-то.

>Контора с IT отделом и IT инфраструктурой - поинтересуется наверняка.

Поинтересуется - но требований взятых отбалды она выдвигать не будет. "Сайт на PHP" - ничем не аргументированное требование.

r ★★★★★
()
Ответ на: комментарий от anonymous

>Требование заказчика - побыстрее, попроще и подешевле. А сейчас это фактически означает PHP + какая-нибудь jomola

Нет. Это с 0ля. Для нормальных больших вебконтор со своими наработками это обозначает на пакете их уже разработанных модулей в типовой конфигурации. C 0ля никто такого не пишет.

r ★★★★★
()
Ответ на: комментарий от anonymous

>Такие заявления заставляют усомниться в вашей компетентности. ViewState локален в рамках текущей страницы по определению. И да, в рамках одной страницы все делается POST-запросами. Переход на другие страницы делается обычными GET-запросами/URL-ами, естественно без передачи ViewState.

Я не совсем понимаю зачем нужен вьюстейт и вообще я не специалист по дотнету, а простой программист в команде. Однако я не понимаю, зачем на странице http://asp.net , сразу же, при заходе на главную, мне присылается такая портянка - <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE3MjY4MDA4MDJkGAEFKWN0bDAwJEhlYWRlckNvbnRlbnQkc2l0ZUhlYWRlciRO YXZpZ2F0aW9uDw9kBQRIb21lZGoPpve9R/QNjH1M95kP6qJVNbSC" />, если в 1 случае из 20 я введу что-то в единственной форме, форме поиска, а в остальных случаях я нажму на обычной ссылке. где нет __doPostBack()

И не понятно, зачем им это значение, когда я что-то ввожу в форме поиска.

>С чем я согласен - так это с тем, что было бы логично свойство EnableViewState убрать по дефолту, поскольку оно чаще не нужно, чем нужно. Но, согласитесь, что это незначительный недостаток.

Это я и пытался сказать. Другую часть моей мысли я описал выше. Жду ответа.

anonymous
()
Ответ на: комментарий от anonymous

>Что характерно, существенная часть бизнеса - отношения с вендорами, диллерами

Что характерно, слово дилер (dealer) пишется с одной будвой l, а вот killer как раз с двумя.

Sun-ch
()
Ответ на: комментарий от Sun-ch

>Что характерно, слово дилер (dealer) пишется с одной будвой l, а вот killer как раз с двумя.

А линакс пишется с одной у.

anonymous
()
Ответ на: комментарий от anonymous

>Здраствуйте. Я, Василий. Хотел бы чтобы вы сделали сайт, на PHP

Вам такое понятие как "техническое задание" знакомо?

Вообще, могу пояснить, почепу заказчику не всё равно, какая технология используется. Во первых сдачей сайта его жизненный цикл только начинается. Его кто-то должен поддерживать развивать и возможно модифицировать. Если он на обслуживании у написавшей конторы - это хорошо, но ведь и она может гафкнуться. Далее - хостинг - он может быть свой, он может быть купленым на определённой полощадке, в любом случае используемая технология важна. Далее интеграция сайта в существующую IT-инфроструктуру фирмы. ДалееВозможный рост различных сервисов. Вобщем перечислять можно долгоЮ суть в том что серьёзному заказчику не всё равно какие технологии используются. Другое дело, что заказчика можно убедить принять ту или инную технологию, продемонстрировав её преимущества. Но проблема - серьёзные структуры, как паравило очень консервативны (хотя может по этому они и стали серьёзными?)

anonymous
()
Ответ на: комментарий от Gadeshi

> 2. RoR не предоставляется хостерами даже на VIP-тарифных планах - только на выделенных серверах.

Вы хоститесь в подвале? Даже на www.net.ru есть. И кстати, VPS - наше все для бедных.

sv75 ★★★★★
()
Ответ на: комментарий от anonymous

>драствуйте. Я, Василий. Хотел бы чтобы вы сделали сайт, на PHP суть такова… Посетитель может вводить адрес, искать товары и покупать. И если посетитель покупает сапоги то сайт в mysql, деньги в рублях высылаются товары магазина и поиск. Можно грабить корованы…

Феерический бред. Зайди на сайт любой веб конторы. Что ты там найдешь? Неужеле хвастовство пыхом и mysql? Нет - ты там найдешь a) портфолио которое является скринами демонстрирующими дизайнерские способности конторы b) список клиентов - демонстрирующий солидность конторы (по пелевину - чтобы заказчик был уверен что за это же заплатил такие бабки кто-то еще и этот кто-то - солидное имя). с) (опционально) хвастовство МегаКулСистемой (TM)(R)(C) которая позволит печься пирожкам быстрее а заказчику менять контент сайта самостоятельно и т.д.

Так выглядит среднестатистический сайт вебконторы. Именно так заказчик и выбирает. Он смотрит нравятся ли ему дизайны конторы, смотрит список клиентов, радуется дополнительным бонусам (пункт с) обычно наличествует в виде баннеров чтобы заинтересовать заказчика). И когда он приходит в эту контору он понятия не имеет на чем оно там написано - да и плевать ему. Технологии для серьезного заказчика нерелевантны (кроме особых объективных случаев). Если его парит "хостинговость на дешовом хостинге" - это не серьезный заказчик - слишком смешны суммы за которые он борется. Сейчас колокейшен анлим стоит 20 euro/мес.

r ★★★★★
()
Ответ на: комментарий от r

>Это не его компетенция выбирать технологии. И серьезный заказчик это знает.

А нахрена тогда начальник IT отдела? Должен ведь он понимать, чем пых-пых лучше, ror или масона какого-нибудь.

Sun-ch
()
Ответ на: комментарий от anonymous

>Может стоит понять что в питоне просто более строгий контроль типов?

Я, как бы, это понимаю прекрасно.

>Наверное это лучше чем написать @$counts[$killer][$vctim]++; и долго искать ошибку?

Видишь ли, подавление NOTICE об отсутствии ошибки доступа к отсутствующей переменной - это _сознательное_ действие. И вероятность возникновения ошибки при этом - очень низка. Вероятность труднообнаружимой - вообще стремится к нулю. Если, конечно, пишет не абсолютный лодырь, ленящийся инициализировать переменные и сажающий всюду "собак". Впрочем, лодырь-то как раз собак дописывать поленится и один раз проинициализирует.

А на другой стороне весов - НАМНОГО лучшая читаемость, которая как раз УМЕНЬШАЕТ число ошибок, которые легко зевнуть даже со строгим контролем. Скажем, опечатку в

@$counts[$killer][$vctim]++

сделать и незаметить сложнее, чем в

counts[killer][victim] = counts.setdefault(killed, {}).get(victim, 0) + 1

Видишь сходу там ошибку? А компилятор Питона в моей программе это скушает без ошибки.

KRoN73 ★★★★★
()
Ответ на: комментарий от r

>Можно урл? Хочу посмотреть объем и качество онлайновых сервисов.

Можно. только доступ к сервисам - у зарегистрированных клиентов (в основном крупные авиакомпании), так что посмотрите только визитку.

>А ее онлайновая часть бизнеса в смысле нарачивания сервисов и развития

Да вроде наоборот процветает и расширяется. Что не так?

anonymous
()
Ответ на: комментарий от geek

>громоздко только в том случае, если нас не волнует - есть ли ключ вообще и соответствует ли тип возвращаемого значения по умолчанию ожидаемому типу.

Да, именно так. Описана вполне типичная задача :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

Ok, рассказываю.

ViewState используется для кеширования значений. Например, из БД выбираются новости, которые надо показать, присваивается какой-нибудь уникальный ID посетителя и пр. Делать эти операции при каждом клике либо дорого, либо не нужно по логике работы. Так вот, при первом обращении эти значения вычисляются и кладутся во ViewState, и впоследствии не вычисляются.

Вцелом, идея изначально была в том, чтобы приблизить разработку WEB к десктопу. В десктопе вы в обработчике нажатия кнопки можете получить заголовок кнопки, её размеры и пр., верно? Благодаря ViewState это можно сделать и в вебе. Создаётся как бы сетевая прозрачность. Другое дело, что оно оказалось не так уж и надо, что всё равно есть много подводных камней.

И, согласитесь, что ни о каких 20К речь не идёт, а 200 байт - не тот размер, из-за которого стоит бучу поднимать.

anonymous
()
Ответ на: комментарий от anonymous

>Офтоп: апач уже умеет держать сразу несколько версий PHP?

У меня система почти год так проработала. Буквально месяц назад снёс PHP4. В Gentoo - "из коробки" при использовании флага concurrentphp (ЕМНИП, проверять точность названия влом). Можно похостово настраивать вызов разных версий PHP-транслятора для разных расширений.

KRoN73 ★★★★★
()
Ответ на: комментарий от r

>"Сайт на PHP" - ничем не аргументированное требование

Аргументов может быть куча - существующие нароботки, простота поиска специалистов для поддержки, не требовательность к хостингу, интеграция с любой БД, скорость разработки.

anonymous
()
Ответ на: комментарий от anonymous

>е. Я тоже видел немало навроченных сайтов на ASP 3.0 (хотя бы www.rentacoder.com)

Это пипец. На [+] в меню стоит URL - /RentACoder/Scripts/ToggleMenuNode.asp?strMenuId=1&blnMenuValue=False&txtReturn URL=http%3A%2F%2Fwww%2Erentacoder%2Ecom%2FRentACoder%2Fmisc%2FNews%2Easp%3FtxtFo rceRefresh%3D121220078303021240%23MenuId%5F1

Чтобы раскрыть его, делается запрос на этот URL (с перезагрузкой), а потом редиректит обратно. Страница загружается около 5 сек (инет на 256kbps, но большинство страничек за секунду открываются), но не удивительно - если у них кругом такие URL-ы.

Дизайн - вообще жесть. И это ASP 3? Мне страшно представить что в 5 будет, наверное все сторожилы asp.net свалят на django и ror.

anonymous
()
Ответ на: комментарий от insid

>АХТУНГ! Беейскик возвращается......

Ты про Питон, что ли? Он не Бейсик, он внук Бейсика :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

парниша, выпей валерьяночки для начала, да зарегистрируйся (ну или залогинся), а потом я подумаю, стоит ли дальше вести беседу с тобой.

P.S. не надо мне показывать ссылку на Javascript 1.5 Reference, тем более на сайте Мозиллы (это что - эталон ?). Во всех остальных references и книгах по Js везде указано, что первый параметр для replace - регексп, и хотя строки тоже работают, не факт, что это так во всех броузерах поддерживающих Js 1.2 и выше. И я не стану писать код заказчику используя не полностью документированные методы. Это иногда плохо заканчивается.

Ky6uk-Py6uk
()
Ответ на: комментарий от Sun-ch

>А нахрена тогда начальник IT отдела? Должен ведь он понимать, чем пых-пых лучше, ror или масона какого-нибудь.

Он нужен для того, чтобы сказть босу который хочет сайт, вот та фигня, которую эти шииты предлагают она как кошерная, или салом опять накормят? Он должен выбрать из всех лабателей на коленке того, кто лапши меньше вешает. Соответственно он может квалифицировать эту лапшу. И если он серьезный дядька он не пойдет делать сайт для серьезной корпорации, которая собирается нарасчивать онлайновое пристутсвие к дешевым наколенным пыхерам.

Однажны когда я работал еще в веб конторе, мы делали сайт для большой госконторы, а наша контора была совсем не дешовая. Так вот в этой госконторе сказали хоть мы им и бьем по карману - но "по дешовке" они уже 2 раза сайт делали. Это им дало только понимание, что за качество надо платить.

r ★★★★★
()
Ответ на: комментарий от anonymous

Блин, это ASP 3, который был до .NET

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.