Pull to refresh

Comments 71

За статью спасибо, но писать надо не Микрософт, а Майкрософт, тем более, если Вы собирались публиковать это в печатном издании.
поправил
спасибо за ценный комментарий
UFO landed and left these words here
я не люблю писать «Майкрософт», поэтому поправил на Microsoft, дабы угодить всем
всегда и везде говорю и пишу «Микрософт», тоже не вижу в этом ничего плохого
Осилил, интересно.
С точки зрения логичности изложения, переход от раздела Версии MVC Framework сразу к практическим советам выглядит слишком резким. В этом месте скорее ожидаешь прочитать про то, как строится URL, про Action, про Route — иными словами, про то, из чего все-таки состоит MVC в исполнении Майкрософт и как с ним оперировать. А вы сразу — Как задать на странице html-элемент select. :)
Новичку наоборот важно как можно скорее начать практиковаться.
может быть, вы правы
статья — это больше сборник советов, чем описание работы MVC

*может быть неудачно назвал
Да, статья хороша как сборник советов и ответов на первые возникающие вопросы по ASP.NET MVC Framework у новичков. Описаний работы MVC в инете куча, а доступных новичку квикстартов маловато.
А если не секрет, то в какой журнал ваша статья попадёт?
она должна была выйти в декабрьском выпуске журнала c`t.
Спасибо, узнал много нового о MS :) Ничего особо оригинального, чего нет в тех же PHP фреймворках, не увидел, но судя по всему любители «моногенных» решений должны быть в восторге.
конечно, ничего особо нового не может быть, все же фреймворк свежий и еще даже не вышел в финальной версии
Нет, серьезно радует, что если вдруг понадобится портировать или писать с нуля для .net, то не нужно будет изменять образ мышления. Грубо говоря надо просто преодолеть различия синтаксиса языков (а может уже и язык привычный портирован) и тонкостей реализации, но нежно менять архитектуры приложения
Новые идеи сложно придумать сейчас на этапе становления MVC Framewrok. К тому же, существующие MVC Framework для Java, PHP, Perl и т.д. содержат много того, что уже просто обязан содержать MVC Framework, поэтому их нужно догнать по функционалу. А вот уже с версии 2.0 и далее можно будет заниматься активными инновациями.
у вас есть что-то инсайдерское о второй версии? поделитесь :)

* или хотя бы есть информация о дате выхода новой версии «первого» MVC?
К сожалению, инсайдерское только под NDA для MVP :)

Но про MVC могу чуть-чуть сказать, что есть большое желание выпустить релиз к MIX (март этого года), и очень быстро после релиза выпустить CTP версии 2.0. Но официально такого плана нет.
Я наоборот рад, что нет ничего оригинального, что структура приложения практически не изменяется, при необходимости несложно будет портировать с .net скажем на symfony или наоборот
Рано или поздно какие-то новые идеи будут реализованы. Сейчас пока есть только подход к скэффолдингу — Dynamic Data, но я уверен, что будет больше декларативности добавлено.
XaocCPS, спасибо за статью :)

Еще подскажите, пожалуйста, как можно реализовать следующие вещи:
1) общие объекты для всех страниц, которые в классическом ASP.NET вставлялись в Мастерпейдж и инициализировались(заполнялись данными т.п.) в MasterPage.Page_Load? Не будешь же вставлять код инициализации во все контроллеры…

2) Как можно передать юзерконтролу типизированные параметры? Опять-таки, из классики: есть юзер-контрол, который в зависимости от параметров решает, как и что ему выводить (событие Page_Load юзер-контрола), юзер-контрол вставляется в asp:Repeater, и выглядит типа

Заранее спасибо за ответ.

Собственно, это две вещи, которые пока не позволяют делать новые проекты на MVC, а хотелось бы, при его прочих достоинствах.
1. в mvc тоже есть мастерпейдж
2. public partial class IntroBox: ViewUserControl — определяет контрол с типом модели MyModel
<%= Html.RenderPartial(«IntroBox», ViewData.Model.DataForControl); %> — рисуем контрол передвая ему данные, которые содержаться в модели страницы
* хабр побил теги
public partial class IntroBox: ViewUserControl<MyModel>
А в Мастерпейдже в MVC есть событие Page_Load?

Т.е. фактически стоит задача выполнять некое действие, когда человек попадает на все страницы, связанные с этим мастерпейджем (но контроллеры разные).
вы можете определить базовый контроллер, а все остальные контроллеры определять от него и обрабатывать вообще все действия
Спасибо, как-то не подумал :)
или на уровне фабрики контроллеров написать код для инъекции глобальных задач для набора страниц.
я на нем курсовую писал. Мне бы эту статью пару месяцев назад, не пришлось бы столько вникать в блоги Гюттри и иже с ним.
ASP.NET VMC — отличная вещь если вы — программист C# или фанат майкрософта. Во всем остальном пока выигрывают аналогичные фреймворки на руби и пхп. Надеюсь майкрософт сделает из него конфетку.
А какое мнение у вас от: JSF, web-потока Shale, Facelets, Tiles? Каркас интеграции JSF и EJB3 (Hibernate) не заинтересовал?
ой, я как-то с явой дружу только на уровне helloworld. Я сранивал asp.net mvc только с рельсами и знакомыми мне php фреймворками. ни в коем случае не холиварю, ибо люблю C# и asp.net, но работа есть по php)
простите за вопрос не по теме.
А что случилось с c't? Я его уже 6й месяц у себя в городе не могу найти, а ведь журнал очень хороший.
П.С. А статья понравилась, спасибо
по источникам из журнала, c`t накрыл кризис
большего мне не известно
мне тоже
у журнала была лучшая типография и бумага
Недавно пробовал запустить все это на линуксе под mono 2.2. Полдня портаченого времени и я таки запустил его на xsp2. Правда не работал роутинг… хотя можно было подсунуть свой метод — я спасовал =) В roadmap на mono сказано, что поддержка asp.net mvc будет в 2.6(july 2009). Ну да ладно, пока оно еще бета — можно подождать
на моно что-то пишите?
Начал где-то год назад, и так несколько мелких проектов.
с удовольствием бы почитал что-нибудь про моно на Хабре
опыт, трудности, отличия, сильные и слабые стороны… все интересно
К сожалению, катастрофически нехватает времени. Да и не такой уж большой опыт у меня с mono. Но скажу, прогресс разработки mono — огромный. ...MonoDevelop, GTK, ASP.NET, Gendarme, Monoxide и все это опенсоурс

Слабые стороны — пока небольшое комюнити
Сильные стороны — opensource; 3rdparty; когда сидиш, смотриш на работающий проект linux + csharp и думаеш — причем здесь майкрософт?
считаю, Мироксофту надо поддерживтаь Mono-комьюнити тем или иным способом
нанять чтоли человека, который бы освещал все что связано с mono
лично я просто не натыкаюсь на информацию, а специально искать нет времени, да и особого желания, поскольку применять пока негде

почитать бы чужой опыт было бы очень интересно
Сейчас mono — узкий профиль. Но я буду чрезмерно рад, когда со временем Novell будет иметь в своем арсенале чистый, отлаженый и вылизаный mono. И считаю, что это неизбежно. Спасибо тебе, Мигель
>лично я просто не натыкаюсь на информацию, а специально искать нет времени
есть форумы nabble, есть lor, кстати сегодня там и про moonlight
туда надо идти специально
я имел в виду, что на тех ресурсах которые посещаю я, многопрофильных, про моно пишуту крайне редко (а на хабре вовсе не пишут)
Это точно — до сих пор новости о том, что версия mono 2.2 вышла нет. А там появилась такая вкусность как REPL для C#.
А может быть опишите как заставили работать под Linux? Какие подводные камни встретились? Я бы поделился с разработчиками информации и они порадовались бы :)
Конечно. Итак нужно mono, xsp2 и сам asp.net mvc. Желательно самых новых версий.

Я перенес шаблонный mvc проект, который сгенерировал visualstudio. далее скопировал mvc библиотеки System.Web.Abstractions.dll, System.Web.Mvc.dll и System.Web.Routing.dll(они где-то в program files) в директорию Lib в корне проекта.

Web.config и csproj негодные, их придется править вручную. Из csproj я вырезал ненужные референсы(оставил необходимые, дамп — dumpz.org/4930/), visual studio targets и все project settings. Обязательно вырезать версию и токен из референса System.Web.Mvc.dll. В Web.config оставил только customErrors для отладки и pages для корректной работы хелперов.

Из-за того что библиотеки mvc не добавляются в GAC пришлось скопировать их в директорию bin в корне проекта. И заключающий этап это xbuild (входит в моно). Он сделает длл нашего проекта в bin. Запускаем xsp2…
Спасибо! Очень интересно.
Всегда пожалуйста.
Ловите +1 в карму. Может быть будете что-нибудь интересное писать?
Опыт с Mono — очень интересно, было бы здорово побольше об этом знать.
По моим наблюдениям в комментариях, mono интересен многим. Конечно, очень жаль, что на хабре так мало информации. Но, думаю, со временем, смогу писать на эту тему.
Подводные камни? Да там каменная дорога под водой =)
Зато, наверное, очень увлекательная дорога :)
Кстати, кто знает, кроме шаблонизации, существуют ли способы безболезненной замены представления? Например, был вывод в виде HTML, а стал в виде JSON, и основные алгоритмы вывода дублировать чтобы не пришлось.
было

public JsonResult Test()
{
string[] test = {«Первый»,«Второй»,«Третий»};
return Json(test);
}
извините

было
public ActionResult Test()
{
string[] test = {«Первый»,«Второй»,«Третий»};
ViewData = test;
return View();
}
стало то что выше
Это только для простейших случаев, а если представление оперирует большим количеством данных с помощью разных итераторов, нужно постоянно копировать обход этих данных, но уже для другого представления, а этого хочется избежать.
ActionResult может возвращать как html представление(View), так и Json. Задача сводится к тому, что бы сериализовать данные к нужному формату(xml или json), а return отдать то что нужно в итоге.
public ActionResult Test(string flag)
{
//формирование данных
string[] test = {«Первый»,«Второй»,«Третий»};
if(flag == «html)
{
ViewData[»data"] = test;
return View();
}
else
{
//если много сложных данных, сериализуем.
return Json(test);
}
}
Спасибо, отличная статья, уже создал solution :)
А по MVC фреймворку еще никаких книг нет?
русскоязычных нет
готовится к выпуску ряд книг на английском
Я вот собрался тут написать книгу, но дело идет сильно медленнее, чем я ожидал. Нет желания присоединиться и стать соавтором? :)
Может кто сталкивался с реализацией деревьев (типа TreeView) в ASP.NET MVC?

Заранее спасибо!
элементы dl вложенные друг в друга + js не подойдут?
или вам универсальное решение нужно?
а в 6 IIS работает описанный вами в последней части метод редиректа на страницу с ошибками?
url mapping настроен, clean urls тоже настроены (aspnet_isapi.dll).
Продолжает выбрасывать Эксепшены, и обычная страница с ошибкой на 404.
вы проверяете локально? по идее все должно работать, но честно говоря на iis 6 не тестировал
да, все работает, видимо гдето ступил вчера.

кстати, для того чтобы с неверных УРЛ переправлял на /error/http404
не нужно добавлять дополнительный маршрут.

routes.MapRoute(«Error», "{*url}", new
{
controller = «Error»,
action = «Http404»
});
Only those users with full accounts are able to leave comments. Log in, please.