1. Простейший пример не расцвечен.
2. <# #> лучше заменить на, что то другое, что расцвечивает текст. Отсутствие подсветки в хтмл это минус
3. для списка List[Task] если возможно добавить перекрытие метода Add с параметрами конструктора Task
4.
public Save(tasks : List[Task]) : string
не понятно куда идет возвращаемая строка.
5. Не ясно где находятся переменные на клиенте или на сервере или автоосериализуются между ними.
mutable _tasks = List.[Task]();
mutable _todoName = "New task";
mutable _todoPriority = "high";
6. Сохраняется на сервере в моем представлении это или в БД или в файле.
Молодцы! не думал, что такое скажу. Красиво сделано.
Здравствуйте, Аноним, Вы писали:
А>1. Простейший пример не расцвечен.
Подсветку сегодня поправим, у меня просто на работе тема в студии другая, поэтому не смог сразу сделать.
А>2. <# #> лучше заменить на, что то другое, что расцвечивает текст. Отсутствие подсветки в хтмл это минус
<# #> должен подкрашивать, тут вопрос в макросе Html. Я тут со всеми делами забыл про эту проблему, надо будет с Владом посоветоваться.
А>3. для списка List[Task] если возможно добавить перекрытие метода Add с параметрами конструктора Task
А каким образом? Разве что макрос какой замутить, но это ведь обычный серверный код. Зачем его так коверкать?
А>4. А> public Save(tasks : List[Task]) : string А>не понятно куда идет возвращаемая строка.
Тут наверное надо сделать сноску. Дело в том, что серверные методы должны возвращать какое-то значение, даже если логически его может не быть.
Но вообще можно генерировать null для void методов.
А>5. Не ясно где находятся переменные на клиенте или на сервере или автоосериализуются между ними. А>mutable _tasks = List.[Task](); А> mutable _todoName = "New task"; А> mutable _todoPriority = "high";
Все переменные на клиенте. Какой-либо синхронизации с сервером нет. Все данные передаются явно через вызовы методов, в которых как раз происходит автоматическая сериализация.
А>6. Сохраняется на сервере в моем представлении это или в БД или в файле.
Ну, static List[T] это в некотором плане in-memory DB
А>Молодцы! не думал, что такое скажу. Красиво сделано.
6. Не всегда работает бродкаст
примерно в 80% случаях нормально
Как проверял, открываю 2 вкладки и сталя/убираю галочки
иногда на другой странице не происходит обновление
Хром 35
7.
// <# #> - аналог C# строк вида @””, но позволяет писать обычные кавычки
// и поддерживает рекурсию.
не совсем ясно о какой рекурсии идет речь
8.
<tr $foreach(task in _tasks.OrderBy(t => t.Priority))>
Не объяснено различие и почему сделано так, а не
$foreach(task in _tasks.OrderBy(t => t.Priority))
{
<tr>
}
9. SignalR собираетесь убрать? Почему был выбран именно он.
А>6. Не всегда работает бродкаст А>примерно в 80% случаях нормально А>...
Спасибо, не заметили бага. Запрос от сервера приходит всегда, но данные иногда обновляется некорректно. Позже посмотрю в чём причина.
А>7. А>
А> // <# #> - аналог C# строк вида @””, но позволяет писать обычные кавычки
А> // и поддерживает рекурсию.
А>
А>$foreach(task in _tasks.OrderBy(t => t.Priority))
А>{
А>...
А>
Исторически сложилось. В Немерле есть xml макрос, в котором используется подобный синтаксис. А так как наш Html макрос построен поверх него, то и синтаксис сохранился.
На самом деле он очень удобен, да и кода меньше выходит.
А>9. SignalR собираетесь убрать? Почему был выбран именно он.
Потому что не хотим городить свою систему push нотификаций. А SignalR по сути уже является стандартом в этой области для ASP.NET.
Здравствуйте, ionoy, Вы писали:
I>Решили написать серию статей про NemerleWeb, где можно было бы доходчиво объяснить почему наш фреймворк это круто....
Извините, но объяснений ПОЧЕМУ у вас как раз и нет! Вся схема статьи — "наш фрэймворк делает то-то и то-то, а вот и пример!". Как же я пойму, что это круто, если нет ни единого сравнения с существующими решениями?
Опустим всякие RoR'ы, хотя и там есть чем похвалиться... Например, ASP.NET — чем решение на НемерлеВебЪ будет короче/эффективнее/быстрее/гибче/вписантьнужное? Будет ли разработка в НемерлеВеб удобнее, чем ASP в студии? (напомню — там есть подсветка как HTML, так и C#) Можно ли как-то варьировать выход? Скажем, на ASP я могу заточиться на HTML 3.2 и отсутствие JS (ну а почему бы и нет?). Почему вообще рассматривается подход "Исходник на Немерле + вкрапления HTML-я"? Ведь не секрет, что дизайнеры не сидят в студиях, а вузивугно ваяют шаблоны, в которые потом уже вставляют код. Т.е. приоритет — удобство дизайнера и только потом вступает в игру прогер.
В общем, я б пока не рекомендовал публиковать статью — слишком много вопросов для заголовка, претендующего всё объяснить.
Re[2]: Вводная статья про NemerleWeb
От:
Аноним
Дата:
30.06.14 13:02
Оценка:
Здравствуйте, btn1, Вы писали:
B>Извините, но объяснений ПОЧЕМУ у вас как раз и нет! Вся схема статьи — "наш фрэймворк делает то-то и то-то, а вот и пример!". Как же я пойму, что это круто, если нет ни единого сравнения с существующими решениями? B>Опустим всякие RoR'ы, хотя и там есть чем похвалиться... Например, ASP.NET — чем решение на НемерлеВебЪ будет короче/эффективнее/быстрее/гибче/вписантьнужное? Будет ли разработка в НемерлеВеб удобнее, чем ASP в студии? (напомню — там есть подсветка как HTML, так и C#) Можно ли как-то варьировать выход? Скажем, на ASP я могу заточиться на HTML 3.2 и отсутствие JS (ну а почему бы и нет?). Почему вообще рассматривается подход "Исходник на Немерле + вкрапления HTML-я"? Ведь не секрет, что дизайнеры не сидят в студиях, а вузивугно ваяют шаблоны, в которые потом уже вставляют код. Т.е. приоритет — удобство дизайнера и только потом вступает в игру прогер. B>В общем, я б пока не рекомендовал публиковать статью — слишком много вопросов для заголовка, претендующего всё объяснить.
Что бы развивать нужны человека часы, если нет денег, то нужно как то привлекать волонтеров.
Шаблонизатор тут включается в код, плохо это или хорошо зависит лишь от скорости редринга конечного варианта. Идеально, если бы результат обновлялся мгновенно.
Можно ли добиться этого нынешним подходом?
Для кого делаются статьи? Для тех, кто пишет на шарпе или для дизайнеров? Нужен кто? Прогеры, для них это вполне понятный текст.
Здравствуйте, btn1, Вы писали:
I>>Решили написать серию статей про NemerleWeb, где можно было бы доходчиво объяснить почему наш фреймворк это круто....
B>Извините, но объяснений ПОЧЕМУ у вас как раз и нет! Вся схема статьи — "наш фрэймворк делает то-то и то-то, а вот и пример!". Как же я пойму, что это круто, если нет ни единого сравнения с существующими решениями?
Сравнение с другими решениями это не лучший способ познакомить с возможностями, имхо.
B>Опустим всякие RoR'ы, хотя и там есть чем похвалиться... Например, ASP.NET — чем решение на НемерлеВебЪ будет короче/эффективнее/быстрее/гибче/вписантьнужное?
NemerleWeb работает поверх ASP.NET MVC, он не занимается генерацией статических страниц. NemerleWeb — это чисто Single Page Application фреймворк, который умеет удобно общаться с сервером.
B>Будет ли разработка в НемерлеВеб удобнее, чем ASP в студии? (напомню — там есть подсветка как HTML, так и C#)
Как я уже написал, эти фреймворки не конкурируют друг с другом, а дополняют.
B>Можно ли как-то варьировать выход? Скажем, на ASP я могу заточиться на HTML 3.2 и отсутствие JS (ну а почему бы и нет?).
Нельзя, у нас полная динамика. Там где нужен опциональный JS от нашего фреймворка будет мало толку. Как и впрочем от AngularJS, Knockout, Meteor и остальных.
B>Почему вообще рассматривается подход "Исходник на Немерле + вкрапления HTML-я"?
Потому что такой подход позволяет удобно декомпозировать как логику, так и представление. А если очень хочется использовать разметку от дизайнера, то её можно почти 1 в 1 вставить в строку и разбавить директивами.
Без данных шаблон будет бесполезен.
B>Ведь не секрет, что дизайнеры не сидят в студиях, а вузивугно ваяют шаблоны, в которые потом уже вставляют код. Т.е. приоритет — удобство дизайнера и только потом вступает в игру прогер.
Пускай ваяют, а прогер потом этот шаблон вставит куда надо.
B>В общем, я б пока не рекомендовал публиковать статью — слишком много вопросов для заголовка, претендующего всё объяснить.
Для этого и выложил сюда, чтобы определить что людям непонятно и как можно сделать статью доступнее для всех
Здравствуйте, ionoy, Вы писали:
B>>Извините, но объяснений ПОЧЕМУ у вас как раз и нет! Вся схема статьи — "наш фрэймворк делает то-то и то-то, а вот и пример!". Как же я пойму, что это круто, если нет ни единого сравнения с существующими решениями? I>Сравнение с другими решениями это не лучший способ познакомить с возможностями, имхо.
Осмелюсь огорчить, но ваше "имхо" смотрит на проблему совсем неправильно. Поясню: не бывает просто "крутых фрэймворков" — крутизна — понятие ОТНОСИТЕЛЬНОЕ. Вася круче Пети, потому что у Васи BMW X7, а у Пети — "Калина".
В вашем случае у вас есть просто "Калина" (ну ладно, Daewoo Matiz ) и вы его называете "крутым" — по отношению к чему? К CGI-скриптам на Perl? И опять же, речь пока что не о возможностях конкретно вашего фрэймворка, а о том, чем он круче существующих решений! Думаете, другие фрэймворки делали менее амбициозные люди? У них тоже есть "крутые фичи", может быть даже намного круче Немерли — как тут судить? Только сравнением! Причём всесторонним: по количеству LOC, по гибкости решения, по удобству для всех членов команды, по реюзабельности и т.п. Просто пример "ToDo" показывает ваше решение, а может на Django оно вообще займёт 10 строк!
I>NemerleWeb работает поверх ASP.NET MVC, он не занимается генерацией статических страниц. NemerleWeb — это чисто Single Page Application фреймворк, который умеет удобно общаться с сервером.
Про ASP — просто пример, мне всё равно кто поверх кого работает. Возьмите хоть дюжину PHP-движков — чем ОНИ хуже НемерлеВеб? Там тоже язык+встроенный HTML, да ещё куча вкусняшек дописана. Не получится ли так, что php-сайт будет десятикратно проще и быстрее в разработке?
B>>Будет ли разработка в НемерлеВеб удобнее, чем ASP в студии? (напомню — там есть подсветка как HTML, так и C#) I>Как я уже написал, эти фреймворки не конкурируют друг с другом, а дополняют.
Дополняют — это если бы я взял готовое ASP-решение и в три клика прикрутил к нему Немерле + валидацию, например. Да и не видно по вашему введению, что это вообще что-либо дополняет! "Вот есть НемерлеВеб, а вот так он делает вот это" — общий смысл статьи.
B>>Ведь не секрет, что дизайнеры не сидят в студиях, а вузивугно ваяют шаблоны, в которые потом уже вставляют код. Т.е. приоритет — удобство дизайнера и только потом вступает в игру прогер. I>Пускай ваяют, а прогер потом этот шаблон вставит куда надо.
А когда шаблон придётся улучшать — опять вырезаем из исходника Немерли, правим, вставляем обратно?
Просто подумайте, что чаще меняется — код взаимодействия с БД или дизайн страницы? А что легче править — немерловый исходник из студии или HTML-вкрапления, разбавленные к тому же несовместимыми foreach'ами внутри тегов?
Не думайте о мире с позиции "все в мире программисты-немерлисты": дизайнеру плевать на код, ему нужен визуальный редактор + удобный доступ к исходникам. Пришла директива поправить таблицу — кликнул на шаблоне, увидел готовый результат (WYSIWYG), поменял цвета и даже не вникая в теги сохранил шаблон — всё, больше никаких движений вы от дизайнера не имеете права требовать! Поэтому меня и смутили эти вставки "дизайнерского креатива" внутри немерловых скобочек — это в корне неправильно.
I>Для этого и выложил сюда, чтобы определить что людям непонятно и как можно сделать статью доступнее для всех
Вообще ничего непонятно, если откровенно. Да, вижу решение задачи ToDo — и что? Почему я должен бросать, скажем, RoR? На сколько повысится моя эффективность с NemerleWeb? А что мне делать с дизайнером, у которого стоит 27" iMac (представь, да!) и он слышать ничего не хочет о странных файлах с именем *.n? Даже в сравнении с ASP.NET я всё ещё не улавливаю счастья переписываения этого на НемерлеВеб.
Тут, видимо, глобальное заблуждение: у вас есть Немерле, вы его хорошо знаете и вот родился проект, позволяющий минимумом телодвижений ещё и веб-страницы выдавать! На самом же деле сайт — это прежде всего ВИД и только потом — бэкграунд код, позволяющий что-то там красиво доставать из базы. Представьте, что вам заказали сайт гуманоиды — они умеют писать по-русски, сохранять файлы и кое-как управляться с тегами HTML. Вы одноразово написали сайт, а дальше контент, новости, красявки и градиентики делают люди, которые слово "Немерле" даже выговорить не в состоянии! ЧТО вы им дадите как результат? Валежник *.n файлов и инструкцию "как править теги внутри <##>"? А это и есть состояние любой веб-студии! Смешно получилось.
Здравствуйте, ionoy, Вы писали:
I>Ты извини, но ты либо очень далёк от темы и зашёл просто поболтать, либо ты даже не удосужился статью прочитать.
I>Получился вопрос в стиле — "чем ASP.NET MVC лучше C#". Я, честно говоря, не знаю как на это отвечать
Проблема в том, что они с мамутом думают, что это очередной шаблонизатор.
И хрен их убедишь, что они нихрена не поняли.
В любом случае в описании нужно постоянно делать акцент на том, что это система для построения интерактивного ГУИ, а не очередной шаблонизатор которых тьма.
Нужно показать, что создание дерева с асинхронной подгрузкой с нуля занимает меньше кода, чем подключение готового жабаскриптового компонента.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, ionoy, Вы писали:
I>Ты извини, но ты либо очень далёк от темы и зашёл просто поболтать, либо ты даже не удосужился статью прочитать.
Да ради бога! Считаешь себя самым умным и что ты написал достойную статью — усираться переубеждать не буду, это тебе граблями получать. Просто ты спросил совета у посторонних людей и я тебе объяснил, что ты НИЧЕГО не объяснил своей статьёй. А сейчас ты тупо хамишь, вместо элементарного приведения аргументов. Если считаешь, что я не прав — цитируй, приводи аргументы. Нет аргументов — не пори чушь, за которую потом будет стыдно.
I>Получился вопрос в стиле — "чем ASP.NET MVC лучше C#".
Я эти еврейские методы спора уже давно просёк, не старайся. Приведи мне мою цитату сравнения "чем ASP.NET MVC лучше C#" или признай себя обиженным треплом.
Здравствуйте, WolfHound, Вы писали:
WH>Проблема в том, что они с мамутом думают, что это очередной шаблонизатор.
Вольф, проблема ещё хуже и запущщеннее! Кое-кто думает, что обладает достаточным слогом и знаниями, чтобы объяснить "что такое НемерлеВеб". На данный момент я не вижу даже 1% пояснений, всё сводится к скучным примерам, показывающим лишь как Немерле справляется с какой-то частной задачей. Если автор НЕ МОЖЕТ объяснить что он создал, кто ж тогда ПОЙМЁТ что он создал?!
WH>И хрен их убедишь, что они нихрена не поняли.
Не пеняй с больной головы на здоровую. Если ты пытаешься языком жестов племени Зулу объяснить работу коллайдера, ты не добьёшься успеха. Так какое право ты имеешь винить общество, не понимающее местных "гениев макросов"??
К слову, это уже не первая попытка объяснить и все они сводятся к "вы все хреновые читатели, ничего не понимаете" — тебе не кажется, что бывают не только "глупые читатели", но и косноязычные объяснятели?
Здравствуйте, ionoy, Вы писали:
B>>Извините, но объяснений ПОЧЕМУ у вас как раз и нет! Вся схема статьи — "наш фрэймворк делает то-то и то-то, а
вот и пример!". Как же я пойму, что это круто, если нет ни единого сравнения с существующими решениями? I>Сравнение с другими решениями это не лучший способ познакомить с возможностями, имхо.
Вот возможности Ext.js, а чего у тебя — совершенно не ясно. Ну или вот — в ангуляре для твоих примеров мне нужен один единтсвенный html, как то так
I>NemerleWeb работает поверх ASP.NET MVC, он не занимается генерацией статических страниц. NemerleWeb — это чисто Single Page Application фреймворк, который умеет удобно общаться с сервером.
Чем это лучше Angular, Knockout, Ext.js ?
Как мне добавить поддержку ну скажем тач-эвентов ?
Здравствуйте, btn1, Вы писали:
B>К слову, это уже не первая попытка объяснить и все они сводятся к "вы все хреновые читатели, ничего не понимаете" — тебе не кажется, что бывают не только "глупые читатели", но и косноязычные объяснятели?
Бывают. Но тут не тот случай. Ибо есть куча людей, которые всё поняли сразу.
Глядя на вас с мамутом я не вижу, что вы даже пытаетесь понять, что конкретно вы не понимаете.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, btn1, Вы писали:
B>>>Ведь не секрет, что дизайнеры не сидят в студиях, а вузивугно ваяют шаблоны, в которые потом уже вставляют код. Т.е. приоритет — удобство дизайнера и только потом вступает в игру прогер. I>>Пускай ваяют, а прогер потом этот шаблон вставит куда надо.
B>А когда шаблон придётся улучшать — опять вырезаем из исходника Немерли, правим, вставляем обратно?
Т.е. все претензии к формату шаблонизатора ?
Вместо:
<tr $when(x)>
..
</tr>
Вы хотите видеть:
@when(...)
{
<tr>
..
</tr>
}
Или
<tr data-ng-when="...">
..
</tr>
Это все возможно, но сначала стоит это обсудить.
Хочу только заметить, что это не единственный шаблонизатор где нет чистого 'HTML': Haml, Kara, WebSharper и т.д.
Здравствуйте, btn1, Вы писали:
I>>Ты извини, но ты либо очень далёк от темы и зашёл просто поболтать, либо ты даже не удосужился статью прочитать. B>Да ради бога! Считаешь себя самым умным и что ты написал достойную статью — усираться переубеждать не буду, это тебе граблями получать. Просто ты спросил совета у посторонних людей и я тебе объяснил, что ты НИЧЕГО не объяснил своей статьёй. А сейчас ты тупо хамишь, вместо элементарного приведения аргументов. Если считаешь, что я не прав — цитируй, приводи аргументы. Нет аргументов — не пори чушь, за которую потом будет стыдно.
Да вроде не считаю себя самым умным, и статью выложил специально выложил чтобы люди прочитали и рассказали что осталось непонятно. Первые два ответа как раз от адекватных людей с нормальными претензиями. Твоё же сообщение это стандартный срач, уж не знаю перечитываешь ли ты когда-нибудь то что пишешь.
I>>Получился вопрос в стиле — "чем ASP.NET MVC лучше C#". B>Я эти еврейские методы спора уже давно просёк, не старайся. Приведи мне мою цитату сравнения "чем ASP.NET MVC лучше C#" или признай себя обиженным треплом.
B>... Про ASP — просто пример, мне всё равно кто поверх кого работает. Возьмите хоть дюжину PHP-движков — чем ОНИ хуже НемерлеВеб? Там тоже язык+встроенный HTML, да ещё куча вкусняшек дописана. Не получится ли так, что php-сайт будет десятикратно проще и быстрее в разработке? ...
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, ionoy, Вы писали:
B>>>Извините, но объяснений ПОЧЕМУ у вас как раз и нет! Вся схема статьи — "наш фрэймворк делает то-то и то-то, а I>вот и пример!". Как же я пойму, что это круто, если нет ни единого сравнения с существующими решениями? I>>Сравнение с другими решениями это не лучший способ познакомить с возможностями, имхо. I>Наоборот. Из твоей статьи ровно ничего не ясно. I>http://dev.sencha.com/deploy/ext-4.0.1/examples/feed-viewer/feed-viewer.html
Так тут ведь нет никаких сравнений с другими фреймворками...
I>Вот возможности Ext.js, а чего у тебя — совершенно не ясно.
Ты ведь привёл целый сайт, а у нас статья на 5 минут чтения. Конечно на сайте будет более подробно расписано. У нас на сайте тоже побольше информации, хотя и он далёк от того, что хотелось бы видеть.
I>Ну или вот — в ангуляре для твоих примеров мне нужен один единтсвенный html, как то так
Да, такого механизма как в ангуляре у нас — данные должны быть объявлены явно. По-моему так правильнее, но это мой, чисто субъективный взгляд.
I>>NemerleWeb работает поверх ASP.NET MVC, он не занимается генерацией статических страниц. NemerleWeb — это чисто Single Page Application фреймворк, который умеет удобно общаться с сервером. I>Чем это лучше Angular, Knockout, Ext.js ?
Надо наверное отдельную статью написать, где будут сравнения. Умудриться всё запихать в три страницы просто нереально.
I>Как мне добавить поддержку ну скажем тач-эвентов ?
Вот, вопрос по делу
Для этого есть синтаксис <div event-*="$Handler" />, где вместо звёздочки название события. В обработчике можно пользоваться объектом event, который передаётся через параметры.
Здравствуйте, ionoy, Вы писали:
I>Решили написать серию статей про NemerleWeb, где можно было бы доходчиво объяснить почему наш фреймворк это круто, и как им вообще пользоваться.
Думаю надо пояснить по поводу формата статьи, а то возникают недопонимания.
1. Статья для людей, которые видели и пользовались аналогичными яваскрипт фреймворками.
2. Цель статьи, показать как в НемерлеВеб реализованы стандартные для подобных фреймворком механизмы.
3. Статья такая короткая, чтобы человек мог прочитать в течение 5-10 минут за обедом
4. Следующие части статьи будут углубляться в отдельные части фреймворка
5. Пример ToDo list — это де факто стандарт для вводных статей по яваскрипт фреймворкам. Такой пример наиболее коротко показывает основные особенности реализации. Именно поэтому он и был выбран.
Здравствуйте, ionoy, Вы писали:
I>Думаю надо пояснить по поводу формата статьи, а то возникают недопонимания.
С форматом всё нормально — с объяснением не очень
I>1. Статья для людей, которые видели и пользовались аналогичными яваскрипт фреймворками.
Странно... а у статьи заголовок "Уникальный веб-фреймворк". Или я неправильно понимаю слово "уникальный", "не имеющий аналогов"?
Ну ладно, в пылу восхваления вставили неправильное слово. А не догадались перечислить эти самые фрэймворки вначале? Ведь статья как бы про веб-разработку и причём тут обязательные знания по JS — непонятно, как раз подошло бы пояснение: "Если вы никогда не работали с Node.js, не читайте дальше!".
I>2. Цель статьи, показать как в НемерлеВеб реализованы стандартные для подобных фреймворком механизмы.
Ну хорошо, показано. А в чём отличие? Чем жизнь программистов на "обычном фрэймворке" станет лучше после перехода на "Немерличный фрэймворк"? Хоть бы тупенько листинги привели: слева — "обычное", справа — "с новым, улучшенным вкусом".
I>3. Статья такая короткая, чтобы человек мог прочитать в течение 5-10 минут за обедом
Не усложняйте и без того непосильную задачу! Вы мастер говорить кратко и по-существу? Тогда это не самая ваша лучшая статья.
I>4. Следующие части статьи будут углубляться в отдельные части фреймворка
А смысл? Опять (как в стиле Влада) уйти в глубь, так и не объяснив суть в целом?
I>5. Пример ToDo list — это де факто стандарт для вводных статей по яваскрипт фреймворкам.
Да пофиг, хоть фотошоп там создайте! Интересно именно то, почему вдруг все должны подрываться и переходить на Немерле? Не ставьте цель хвалиться самим NW, покажите как изменится мир для тех, кто уже знает JS-фрэймворки.
I>>1. Статья для людей, которые видели и пользовались аналогичными яваскрипт фреймворками. B>Странно... а у статьи заголовок "Уникальный веб-фреймворк".
Статическая типизация в шаблонизаторе и клиент-серверном взаимодействие.
B>Или я неправильно понимаю слово "уникальный", "не имеющий аналогов"?
Топ лел. Неправильно.
B>Ну ладно, в пылу восхваления вставили неправильное слово. А не догадались перечислить эти самые фрэймворки вначале?
angularjs, emberjs и их клоны. Аспект двунаправленного биндинга (+сервер).
I>>2. Цель статьи, показать как в НемерлеВеб реализованы стандартные для подобных фреймворком механизмы.
Здесь очевидно не хватает када для todomvc.com.
B>А в чём отличие? Чем жизнь программистов на "обычном фрэймворке" станет лучше после перехода на "Немерличный фрэймворк"
1 язык. 0 затрат на клиент-серверное взаимодействие. Самое быстрое прототипирование что я видел (несмотря на).
B>Не усложняйте и без того непосильную задачу! B>А смысл? Опять (как в стиле Влада) уйти в глубь, так и не объяснив суть в целом?
Идея MVVM фреймворка непонятна? Идея SAP не ясна? Значит вам на хабре пояснят. А так хоть программист для программистов, а уже потом пойдет по нисходящей.
I>>5. Пример ToDo list — это де факто стандарт для вводных статей по яваскрипт фреймворкам. >Здесь очевидно не хватает када для todomvc.com.
B>... вдруг все должны подрываться
Не должны, расслабьтесь.
Добавил в начале текста несколько параграфов с описанием работы фреймворка, чтобы было понятно как им пользоваться.
Если не сложно, прочитайте, пожалуйста
Здравствуйте, ionoy, Вы писали:
I>Решили написать серию статей про NemerleWeb, где можно было бы доходчиво объяснить почему наш фреймворк это круто, и как им вообще пользоваться.
Если ли какой-то механизм подмены ссылок и ведения истории в браузере?
Работает ли сейчас способ установки, описанный в How to install?
Здравствуйте, STDray, Вы писали:
STD>Здравствуйте, ionoy, Вы писали:
I>>Решили написать серию статей про NemerleWeb, где можно было бы доходчиво объяснить почему наш фреймворк это круто, и как им вообще пользоваться.
STD>Если ли какой-то механизм подмены ссылок и ведения истории в браузере?
Упрощённой версии, специально для фреймворка — нет. Если есть предложения как это можно удобно сделать, то пиши.
На данный момент надо будет пользоваться типизацией стандартных объектов яваскрипта.
Выглядит примерно так:
using NemerleWeb;
using NemerleWeb.TypedJs
[Unit]
class A
{
M() : void {
window.history.pushState("page 2", "bar.html");
}
}
STD>Работает ли сейчас способ установки, описанный в How to install?
Сейчас не могу проверить, но примерно месяц назад мы приводили там всё в порядок.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, ionoy, Вы писали:
А>1. под 2013 есть?
Да.
А>2. Когда будет работа с БД?
У нас client-side фреймворк, так что работа с БД по выбору пользователя.
А>3. на сколько устойчиво в ддос?
Опять же, client-side, так что ddos — это не про нас. На серверной стороне ASP.NET MVC.
Здравствуйте, ionoy, Вы писали:
I>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, ionoy, Вы писали:
А>>1. под 2013 есть? I>Да.
А>>2. Когда будет работа с БД? I>У нас client-side фреймворк, так что работа с БД по выбору пользователя.
А нафиг тогда он нужен?
Конечно я понимаю, что БД и клиент-серверное взаимодействие ортогональны, но без поддержки БД это нафиг не надо.
А>>3. на сколько устойчиво в ддос? I>Опять же, client-side, так что ddos — это не про нас. На серверной стороне ASP.NET MVC.
1. На сколько различаются размер запроса и ответа в минимальном случае? (только трафик со своего сервера)
Здравствуйте, Аноним, Вы писали:
А>>>2. Когда будет работа с БД? I>>У нас client-side фреймворк, так что работа с БД по выбору пользователя. А>А нафиг тогда он нужен? А>Конечно я понимаю, что БД и клиент-серверное взаимодействие ортогональны, но без поддержки БД это нафиг не надо.
У нас есть поддержка БД. На данный момент поддерживаются linq2db, bltoolkit, EF всех версий, ну и все остальные .NET ORM.
Другое дело, что на стороне клиента с ними особенно нечего делать, но если нужно сохранить данные, то это делается примерно так:
[Unit]
public class Page
{
User UserToModify;
Save() : void
{
_server.Save(UserToModify);
}
public class Server
{
private UsersContext db = new UsersContext();
public Save(User user) : string
{
db.Users.Entry(student).State = EntityState.Modified;
db.SaveChanges();
"ok"
}
}
}
А>>>3. на сколько устойчиво в ддос? I>>Опять же, client-side, так что ddos — это не про нас. На серверной стороне ASP.NET MVC. А>1. На сколько различаются размер запроса и ответа в минимальном случае? (только трафик со своего сервера)
Не совсем понял вопроса, что значит размер запроса и ответа? Запрос может быть вообще без данных, а ответ может вернуть 1000 моделей в json. Всё зависит от использования.
Здравствуйте, ionoy, Вы писали:
I>Решили написать серию статей про NemerleWeb, где можно было бы доходчиво объяснить почему наш фреймворк это круто, и как им вообще пользоваться.
I>В планах опубликовать на рсдн, хабре, реддите, HackerNews.
Не работает на винфонах в IE (7.8 и 8.0), есть идеи с чем может быть связано?
Исправил баг, который ломал функциональность в Strict Mode (IE).
Проверил в эмуляторе, WP7 и WP8 теперь должны работать. У самого WP8.1 так что на железе более старые версии проверить не могу.
Здравствуйте, ionoy, Вы писали:
I>Исправил баг, который ломал функциональность в Strict Mode (IE). I>Проверил в эмуляторе, WP7 и WP8 теперь должны работать. У самого WP8.1 так что на железе более старые версии проверить не могу.
А сайт NemerleWeb обновлялся или нет? Потому что там ситуация сохраняется, попробовать забрать версию из репозитория смогу только вечером.
Re[7]: Вводная статья про NemerleWeb
От:
Аноним
Дата:
16.07.14 06:30
Оценка:
Здравствуйте, ionoy, Вы писали:
I>Здравствуйте, Аноним, Вы писали:
А>>>>2. Когда будет работа с БД? I>Другое дело, что на стороне клиента с ними особенно нечего делать, но если нужно сохранить данные, то это делается примерно так:
Кеширование данных, блокировка данных открытых на изменение у других пользователей, отслеживание изменений, поддержка выделенного порядка.....
Здравствуйте, Аноним, Вы писали:
А>>>>>2. Когда будет работа с БД? I>>Другое дело, что на стороне клиента с ними особенно нечего делать, но если нужно сохранить данные, то это делается примерно так:
А>Кеширование данных, блокировка данных открытых на изменение у других пользователей, отслеживание изменений, поддержка выделенного порядка.....
Так в чём проблема? На сервере поддерживаются любые базы данных. Связь с сервером через поле _server, что ещё нужно?
Здравствуйте, ionoy, Вы писали:
I>Здравствуйте, Аноним, Вы писали:
А>>>>>>2. Когда будет работа с БД? I>>>Другое дело, что на стороне клиента с ними особенно нечего делать, но если нужно сохранить данные, то это делается примерно так:
А>>Кеширование данных, блокировка данных открытых на изменение у других пользователей, отслеживание изменений, поддержка выделенного порядка..... I>Так в чём проблема? На сервере поддерживаются любые базы данных. Связь с сервером через поле _server, что ещё нужно?
Бреинфак язык полный по тьюрингу, что еще нужно?
Нужны клиентсерверные компоненты работы с БД уровня сервера приложений.....
Здравствуйте, Аноним, Вы писали:
А>>>Кеширование данных, блокировка данных открытых на изменение у других пользователей, отслеживание изменений, поддержка выделенного порядка..... I>>Так в чём проблема? На сервере поддерживаются любые базы данных. Связь с сервером через поле _server, что ещё нужно? А>Бреинфак язык полный по тьюрингу, что еще нужно? А>Нужны клиентсерверные компоненты работы с БД уровня сервера приложений.....
Можно пару примеров из других подобных фреймворков? А то я честно говоря не понимаю о чём речь идёт.
Здравствуйте, ionoy, Вы писали:
I>Можно пару примеров из других подобных фреймворков? А то я честно говоря не понимаю о чём речь идёт.
Spring Framework и т д
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, ionoy, Вы писали:
I>>Можно пару примеров из других подобных фреймворков? А то я честно говоря не понимаю о чём речь идёт. А>Spring Framework и т д
Что Spring Framework? Каким боком он подобен NemerleWeb?
Здравствуйте, <Аноним>, Вы писали:
I>>Можно пару примеров из других подобных фреймворков? А то я честно говоря не понимаю о чём речь идёт. А>Spring Framework и т д
Ну, так используй, кто тебе мешает? NemerleWeb это система построения ГУИ. Она берет на себя все, что связано с созданием ГУИ в браузере и обмен данными с сервером. Всё остальное не её забота.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
I>>Можно пару примеров из других подобных фреймворков? А то я честно говоря не понимаю о чём речь идёт. А>Spring Framework и т д
Я бы понял, если б упомянули django (своя orm, которую хрен от туда выкорчуешь) или ROR (своя orm, которую хрен кому придет в голову идея выкорчевывать).
А что в спринге такого искаробочного в плане Бд? Транзакции? Спрингдата, где надо конкатенировать строки как в 90х?
В любом случае, надуманная проблема. Список библиотек для организации DAL в дотнете известен и был приведен выше.
Какая и зачем предполагается интеграция этого в веб-фреймворк из примера со спрингом не ясно.
Здравствуйте, STDray, Вы писали:
I>>>Можно пару примеров из других подобных фреймворков? А то я честно говоря не понимаю о чём речь идёт. А>>Spring Framework и т д STD>Я бы понял, если б упомянули django (своя orm, которую хрен от туда выкорчуешь) или ROR (своя orm, которую хрен кому придет в голову идея выкорчевывать). STD>А что в спринге такого искаробочного в плане Бд? Транзакции? Спрингдата, где надо конкатенировать строки как в 90х? STD>В любом случае, надуманная проблема. Список библиотек для организации DAL в дотнете известен и был приведен выше. STD>Какая и зачем предполагается интеграция этого в веб-фреймворк из примера со спрингом не ясно.
Тем более что те же Django и RoR — это серверные фреймворки, на месте которых у нас ASP.NET MVC. Это я опять к тому, что работа с БД конкретно к NemerleWeb отношения не имеет.
Здравствуйте, STDray, Вы писали:
STD>Здравствуйте, ionoy, Вы писали:
I>>Исправил баг, который ломал функциональность в Strict Mode (IE). I>>Проверил в эмуляторе, WP7 и WP8 теперь должны работать. У самого WP8.1 так что на железе более старые версии проверить не могу.
STD>А сайт NemerleWeb обновлялся или нет? Потому что там ситуация сохраняется, попробовать забрать версию из репозитория смогу только вечером.
Да, обновляется автоматически. Вроде как всё работает
Здравствуйте, kekekeks, Вы писали:
K>Вы бы тут проанонсировали в момент публикации на хабре. А то там понабежала толпа людей не в теме, зато с негативным опытом от GWT.
Да, спасибо.
В общем по ссылке выше статья о NemerleWeb на хабре. Если есть что сказать, то пишите там в коментариях.
Просьба, если критиковать, то конструктивно. Пофлеймить мы и на рсдн можем.
Здравствуйте, kekekeks, Вы писали:
K>Вы бы тут проанонсировали в момент публикации на хабре. А то там понабежала толпа людей не в теме, зато с негативным опытом от GWT.
GWT можно по-разному готовить. У нас от него исключительно положительный опыт
С уважением, Евгений
JetBrains, Inc. "Develop with pleasure!"
Здравствуйте, kekekeks, Вы писали:
K>Вы бы тут проанонсировали в момент публикации на хабре. А то там понабежала толпа людей не в теме, зато с негативным опытом от GWT.
Мы также послали на публикацию в RSDN, но пока еще не опубликовали
Здравствуйте, ionoy, Вы писали:
I>Да, спасибо. I>В общем по ссылке выше статья о NemerleWeb на хабре. Если есть что сказать, то пишите там в коментариях.
Здравствуйте, ionoy, Вы писали:
А>>3. для списка List[Task] если возможно добавить перекрытие метода Add с параметрами конструктора Task I>А каким образом? Разве что макрос какой замутить, но это ведь обычный серверный код. Зачем его так коверкать?
А методы-расширения поддерживаются? Если "да", то это не сложно реализовать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ionoy, Вы писали:
I><# #> должен подкрашивать, тут вопрос в макросе Html. Я тут со всеми делами забыл про эту проблему, надо будет с Владом посоветоваться.
Что за проблема?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ionoy, Вы писали:
I>Тут наверное надо сделать сноску. Дело в том, что серверные методы должны возвращать какое-то значение, даже если логически его может не быть. I>Но вообще можно генерировать null для void методов. I>... I>Все переменные на клиенте. Какой-либо синхронизации с сервером нет. Все данные передаются явно через вызовы методов, в которых как раз происходит автоматическая сериализация.
Такие вещи нужно в комментариях описывать. Чем меньше подразумеваемого, тем быстрее и проще поймут ваши примеры.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
А><tr $foreach(task in _tasks.OrderBy(t => t.Priority))>
А>
А>Не объяснено различие и почему сделано так, а не А>
А>$foreach(task in _tasks.OrderBy(t => t.Priority))
А>{
А><tr>
А>}
А>
Потому что так удобнее. Как сказал автор НВеба — их литералы сделаны поверх макры ХМЛ-литералов, которую писал я. Я почерпнул синтаксис у одного веб-фреймворка (уже не помню какого). Такой подход намного удобнее и позволяет четко контролировать валидность ХМЛ-я.
Тут нужно уточнить, что это не просто текст ХМТЛ-я. Это ДСЛ к его объектной модели. Так что еще на стадии компиляции делаются все проверки.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ionoy, Вы писали:
I>Сравнение с другими решениями это не лучший способ познакомить с возможностями, имхо.
Ну, почему же? Объяснить преимущества по сравнению с другими походами — это очень даже хорошо. Особо здорово, если будет пример горы кода на АСП.НЭТ + ДжаваСктипт и короткий пример на НВебе.
I>NemerleWeb работает поверх ASP.NET MVC, он не занимается генерацией статических страниц. NemerleWeb — это чисто Single Page Application фреймворк, который умеет удобно общаться с сервером.
Кстати, сама идея использования ваших шаблонов для рендеренга ХТМЛ-я на сервер очень даже здравая. Иногда нужно срендерить статический ХТМЛ. В прочем, это можно и с помощью ХМЛ-литералов Немерла сделать.
I>Потому что такой подход позволяет удобно декомпозировать как логику, так и представление. А если очень хочется использовать разметку от дизайнера, то её можно почти 1 в 1 вставить в строку и разбавить директивами.
Думаю, что тут стоит отметить, что НВеб рассчитан на сложные интерактивные интерфейсы в которых дизайнер мало что может в принципе. Так что лучше дать дизайнеру рисовать прототипы и стили. Потом уже можно отлаживать стили на готовых формах. А НВеб — это средство турбореактивной разработки динамичных фом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ionoy, Вы писали:
B>>В общем, я б пока не рекомендовал публиковать статью — слишком много вопросов для заголовка, претендующего всё объяснить. I>Для этого и выложил сюда, чтобы определить что людям непонятно и как можно сделать статью доступнее для всех
Вам нужно на пальцах объяснить MVVM и показать, что это в разы эффективнее модификации HTML DOM с помощь ЖабаСкрипта. Как я понимаю, тут большинство людей не понимаю даже, что это конкурент именно ЖабаСкрипта и рукопашного формирования JSON-а на сервере.
Покажите "закат солнца вручную" на АСП.НЕТ МВЦ и ЖабаСкрипте и аналог этого кода на НВебе. Это будет куда нагляднее.
Хорошей идеей было бы сравнение со всеми имеющимися конкурентами на мелких примерах.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, btn1, Вы писали:
B>А когда шаблон придётся улучшать — опять вырезаем из исходника Немерли, правим, вставляем обратно?
Во-первых, выделенных дизайнеров имеют далеко не каждый сотый веб-разрабочик. У многих задачи не красоты наводить, а кучу интерактивных форм сделать. Тут ваш дизайнерских подход сольет по полной. Если же у тебя почти статический стайт с крутым дизайном от Артемия Лебедива (гы-гы), то это просто не твой фрейворк. Каждый сам выбирает подход. Не твой? Походим мимо.
Во-вторых, мы не в пещерном веке когда дизайн определялся ручным написанием ХТМЛ-я. Сегодня внешний вид, в основном, задается стилями. Я вот сейчас ваяю движок рендеринга сообщений с новым языком (аля Маркдаун) для РСДН. Ну, как я отдам дизайнеру то, что генерируется по микроскопическим кусочкам? Дизайнер (условно, так как у нас их попросту нет) мне нарисовал вот такую вот страничку. А я тупо генерирую div-ы и span-ы приставляя к ним нужные классы. Та же фигня со сложными пользовательскими интерфейсами. Функциональсность там так сложна, что толку от дизайнера при правке кода == 0. Пусть он прототипы рисует и шаблоны строгает. А я уже как-нить вставлю их минут за 5.
В общем, тут соревнование кто быстрее и проще. Если интерфейс сложный, то подходы с простынными шаблонами попросту не дают приемлемого результата за приемлемое время.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
WH>Проблема в том, что они с мамутом думают, что это очередной шаблонизатор. WH>И хрен их убедишь, что они нихрена не поняли.
Ну, вот и надо это объяснить. Причем не для них, а для окружающего большинства. Чтобы таких вопросов не возникало.
Причем не стоит кого-то переубеждать, если он считает, что серверный шаблонизатор это лучшее что может быть и что ему именно это и надо. Если ему это надо, то пусть выберет его. А вот если возможностей не хватает, так как нужно воять интерактивный пользовательсткий интерфейс, то НВеб — это отличное решение. Короче, не надо навязывать изо всех сил. Не надо? Проходите мимо. Мы сделали решение для других. Для тех кому этот подход кажется удобным.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, btn1, Вы писали:
B>Не пеняй с больной головы на здоровую. Если ты пытаешься языком жестов племени Зулу объяснить работу коллайдера, ты не добьёшься успеха. Так какое право ты имеешь винить общество, не понимающее местных "гениев макросов"??
Тут проблема в том, что работу коллайдера нельзя объяснить школьнику средних классов. Для понимания сказанного нужен некий порог знаний.
Вот тут та же история. Чтобы понять что-то сложное, нужно знать кое-что. Например: Принципы и преимущества MVVM-подхода. Нужно быть знакомым со сложностями построения интерактивных веб-интерфейсов пользователя взаимодействующих с сервером.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ionoy, Вы писали:
I>Надо наверное отдельную статью написать, где будут сравнения. Умудриться всё запихать в три страницы просто нереально.
Надо. Обязательно надо!
Пример на АСП.НЭТ, пример на Ангуляре, на Нокауте, ... и пример на НВебе. Плюс объяснение преимущество и возможность попробовать результат.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Тут проблема в том, что работу коллайдера нельзя объяснить школьнику средних классов. Для понимания сказанного нужен некий порог знаний.
У Одерского же как-то получается продвигать реактивное программирование доступно для средних Java программистов.
VD>Вот тут та же история. Чтобы понять что-то сложное, нужно знать кое-что. Например: Принципы и преимущества MVVM-подхода. Нужно быть знакомым со сложностями построения интерактивных веб-интерфейсов пользователя взаимодействующих с сервером.
Раскрыть проблематику постороения SPA можно в трех абзацах. Проблема не в этом, а в том что у оппонентов есть angularjs который решает ту же проблему без смешивания клиента и сервера.
Здравствуйте, STDray, Вы писали:
STD>Здравствуйте, ionoy, Вы писали:
I>>Да, спасибо. I>>В общем по ссылке выше статья о NemerleWeb на хабре. Если есть что сказать, то пишите там в коментариях.
STD>А с 2013 студией фреймворк дружит?
Да, я в 2013 разрабатываю. Сейчас почему-то не работает интеллисенс в представлениях, но с этим обязательно разберёмся.
Здравствуйте, Miroff, Вы писали:
M>У Одерского же как-то получается продвигать реактивное программирование доступно для средних Java программистов.
Не знаю. Не видел "средних масс" увлекающихся Скалой. И он на это тратит ооочень много времени (а теперь и денег).
M>Раскрыть проблематику постороения SPA можно в трех абзацах. Проблема не в этом, а в том что у оппонентов есть angularjs который решает ту же проблему без смешивания клиента и сервера.
Нет, нет. Проблема в том, что многие "оппоненты" не сильно ушли от мартышки из басни мартышка и очки. Они точно так же не понимают что дает Ангуляр и на каких принципах он основан, но имеют неудержимое желание навести гневной критики. Другие знают, что такое Ангуляр, но почему-то не могут напрячься, чтобы провести параллели.
По сему выходя на публику нужно обязательно постараться разжевать базовые идеи или сразу рассчитывать на тех кто в теме или имеет желание в нее въехать.
Большинство критиканов из этого обсуждения подавляющее большинство оных из обсуждения на Хабре на полном серьезе сравнивают НВеб с текстовыми серверными рендерилками вроде Разора или Лифта, да еще напыщенно дают советы космического масштаба и космической же глупости. Основная претензия тех кто хотя бы что-то понял — это то что шаблон находится в одном фале с другим кодом. Кто-то счет это смешиванием бизнес-логики и представления, а кто-то вообще сказал "Ужас". Вот так кратко и доходчиво. Утруждать себя обоснованиями они не привыкли. Ведь:
К несчастью, то ж бывает у людей:
Как ни полезна вещь, — цены не зная ей,
Невежда про нее свой толк все к худу клонит;
А ежели невежда познатней,
Так он ее еще и гонит.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ionoy, Вы писали:
I>Да, я в 2013 разрабатываю. Сейчас почему-то не работает интеллисенс в представлениях, но с этим обязательно разберёмся.
Надо актуализировать инсталлятор или раздел How to install на сайте.
Вот вывод инсталлятора
C:\Users\12345> powershell -NoProfile -ExecutionPolicy unrestricted -Command "i
ex ((new-object net.webclient).DownloadString('http://www.nemerleweb.com/Install
er/standalone-install.ps1'))"
Downloading installer files...
Unpacking...
You don't have .NET 4.5 installed
Downloading .NET framework v4.5 installation package
Installing .NET framework v4.5
.NET 4.5 installed
Your Nemerle version is compatible with NemerleWeb (1.2.0.384 >= 1.2.0.208)
Adding NemerleWeb to PATH if needed
You have Visual Studio 2012 installed, downloading extension...
Visual Studio extension installed
Installation complete
Соответственно >Start your Visual Studio 2012 and go "File -> New Project -> Nemerle -> NemerleWeb project" When project is created, hit F5. You should see NemerleWeb default page in the browser. Now you can go to MVVM/MainPage.n and begin coding.
для студии 2013 неактуально.
Кроме того, >Adding NemerleWeb to PATH if needed
где искать этот самый NemerleWeb (C:\Users\12345\AppData\Roaming\NemerleWeb в моем случае) тоже надо указать, я думаю ?
Здравствуйте, STDray, Вы писали:
STD>Надо актуализировать инсталлятор или раздел How to install на сайте.
STD>Соответственно >>Start your Visual Studio 2012 and go "File -> New Project -> Nemerle -> NemerleWeb project" When project is created, hit F5. You should see NemerleWeb default page in the browser. Now you can go to MVVM/MainPage.n and begin coding.
STD>для студии 2013 неактуально.
То есть надо как-то сделать проверку на самую новую Visual Studio, и отталкиваться от неё?
STD>Кроме того, >>Adding NemerleWeb to PATH if needed STD>где искать этот самый NemerleWeb (C:\Users\12345\AppData\Roaming\NemerleWeb в моем случае) тоже надо указать, я думаю ?
Эта папка нужно только если разрабатываешь из командной строки + текстовый редактор. Если из студии, то достаточно Nuget'а.
Если из командной строки, то знать местонахождение папки тоже необязательною, т.к. она добавлена в Path и скрипты работают из любого места.
STD>Актуально ли https://www.nuget.org/packages/NemerleWeb/1.0.2 ?
В принципе актуально, да. Лучше всего компилировать склонированную версию, но там не так много исправлений было за это время.
STD>Имеет ли смысл сделать онлайн-шаблон?
Что за онлайн шаблон?
Здравствуйте, ionoy, Вы писали:
STD>>для студии 2013 неактуально. I>То есть надо как-то сделать проверку на самую новую Visual Studio, и отталкиваться от неё?
Думаю, после выхода дистрибутива Nemerle, который умеет накатывать интеграцию на все студии, можно всем студия подпихивать шаблон.
STD>>Кроме того, >>>Adding NemerleWeb to PATH if needed STD>>где искать этот самый NemerleWeb (C:\Users\12345\AppData\Roaming\NemerleWeb в моем случае) тоже надо указать, я думаю ? I>Если из командной строки, то знать местонахождение папки тоже необязательною, т.к. она добавлена в Path и скрипты работают из любого места.
А, видимо, я неправильно трактовал сообщение установщика. Решил, что если надо я руками могу обновить переменную окружения. А тут, похоже, оно "if needed" значит "добавить, если еще нет". Может, стоит еще написать, что надо консоль перезапустить, чтобы переменные окружения перечитались?
STD>>Актуально ли https://www.nuget.org/packages/NemerleWeb/1.0.2 ? I>В принципе актуально, да. Лучше всего компилировать склонированную версию, но там не так много исправлений было за это время.
Сомневаюсь, что это лучше всего, если мы заинтересованы привлечь новую публику хотя бы поиграться. Я видел какой-то топик в разделе Немерла, где человек хотел компилятор починять, но не разобрался, что такое гит.
STD>>Имеет ли смысл сделать онлайн-шаблон? I>Что за онлайн шаблон? Шаблон, который не идет в коробке, но можно поставить из галереи.
Я сам не смотрел, но почитав статью, подумал, что это может решить проблему установки шаблонов инсталлятором.
Здравствуйте, STDray, Вы писали:
I>>То есть надо как-то сделать проверку на самую новую Visual Studio, и отталкиваться от неё? STD>Думаю, после выхода дистрибутива Nemerle, который умеет накатывать интеграцию на все студии, можно всем студия подпихивать шаблон.
То есть включить шаблон в дистрибутив Nemerle? В принципе можно, если народ не против.
STD>А, видимо, я неправильно трактовал сообщение установщика. Решил, что если надо я руками могу обновить переменную окружения. А тут, похоже, оно "if needed" значит "добавить, если еще нет". Может, стоит еще написать, что надо консоль перезапустить, чтобы переменные окружения перечитались?
Да, логично. Пока добавлю в issues.
STD>>>Актуально ли https://www.nuget.org/packages/NemerleWeb/1.0.2 ? I>>В принципе актуально, да. Лучше всего компилировать склонированную версию, но там не так много исправлений было за это время. STD>Сомневаюсь, что это лучше всего, если мы заинтересованы привлечь новую публику хотя бы поиграться. Я видел какой-то топик в разделе Немерла, где человек хотел компилятор починять, но не разобрался, что такое гит.
Последний нугет содержит более менее актуальную версию, так что проблем не должно возникнуть.
STD>>>Имеет ли смысл сделать онлайн-шаблон? I>>Что за онлайн шаблон? STD>Шаблон, который не идет в коробке, но можно поставить из галереи. STD>Я сам не смотрел, но почитав статью, подумал, что это может решить проблему установки шаблонов инсталлятором.
Думаешь нужно? Я не вижу проблемы установить шаблон локально.
Здравствуйте, ionoy, Вы писали:
I>То есть включить шаблон в дистрибутив Nemerle? В принципе можно, если народ не против.
Можно и так. Как с шаблонами ASP.NET MVC проектов: шаблоны прилетают с инсталляцией, а их зависимости через nuget.
Хотя изначально, я имел в виду, что установщик http://www.nemerleweb.com/Installer/standalone-install.ps1 должен регистрировать шаблоны во всех студиях.
I>Думаешь нужно? Я не вижу проблемы установить шаблон локально.
Не могу сказать, что нужно. Размышляю, как минимизировать инфраструктурные сложности.
Здравствуйте, STDray, Вы писали:
STD>Здравствуйте, ionoy, Вы писали:
I>>То есть включить шаблон в дистрибутив Nemerle? В принципе можно, если народ не против. STD>Можно и так. Как с шаблонами ASP.NET MVC проектов: шаблоны прилетают с инсталляцией, а их зависимости через nuget. STD>Хотя изначально, я имел в виду, что установщик http://www.nemerleweb.com/Installer/standalone-install.ps1 должен регистрировать шаблоны во всех студиях.
По идее он и так должен во все студии ставить шаблоны, но почему то не ставит. Сегодня постараюсь разобраться.
I>>Думаешь нужно? Я не вижу проблемы установить шаблон локально. STD>Не могу сказать, что нужно. Размышляю, как минимизировать инфраструктурные сложности.
Думаю проще будет, если шаблоны придут вместе с расширением для студии.
Здравствуйте, STDray, Вы писали:
STD>А с 2013 студией фреймворк дружит?
Починил инсталляцию. У меня правда сразу после инсталляции extension NemerleWeb в студии почему-то был disabled. Если можешь, подтверди пожалуйста, реально есть такая проблема или это только у меня.
Здравствуйте, ionoy, Вы писали:
I>Починил инсталляцию. У меня правда сразу после инсталляции extension NemerleWeb в студии почему-то был disabled. Если можешь, подтверди пожалуйста, реально есть такая проблема или это только у меня.
Сам шаблон проекта появился. Проект создается, зависимости тянутся. Но
какой-то мусор от джваскрипта
08:47:42.2618: Referenced file '~/Scripts/_references.js' not found.
08:47:42.3078: Referenced file '~/Scripts/_references.js' not found.
08:47:42.3228: Referenced file '~/Scripts/_references.js' not found.
08:47:42.3368: Referenced file '~/Scripts/_references.js' not found.
08:47:42.3478: Referenced file '~/Scripts/_references.js' not found.
08:47:42.3588: Referenced file '~/Scripts/_references.js' not found.
08:47:42.3588: Referenced file 'Scripts/jquery-1.6.4.js' not found.
И ничего не билдится
C:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(289,5): error : Не удалось загрузить файл или сборку "Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" либо одну из их зависимостей. Не удается найти указанный файл.
Done building project "NemerleWebProject3.nproj" -- FAILED.
где у Newtonsoft.Json
HintPath = ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll
FullPath = C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.3\ref\Newtonsoft.Json.dll
Непонятно, что это такое. Посмотрю, какой дома будет результат.
В 2012 студии в списке расширений NemerleWeb есть, но в списке шаблонов — нет. Непонятная ситуация.
Здравствуйте, STDray, Вы писали:
STD>Сам шаблон проекта появился. Проект создается, зависимости тянутся. Но STD>какой-то мусор от джваскрипта STD>
STD>...
STD>
Это 2013 студия?
STD>И ничего не билдится STD>
STD>C:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(289,5): error : Не удалось загрузить файл или сборку "Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" либо одну из их зависимостей. Не удается найти указанный файл.
STD>Done building project "NemerleWebProject3.nproj" -- FAILED.
STD>
STD>где у Newtonsoft.Json STD>HintPath = ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll STD>FullPath = C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.3\ref\Newtonsoft.Json.dll
STD>Непонятно, что это такое. Посмотрю, какой дома будет результат.
Видимо из-за того, что Newtonsoft.Json установлен в GAC. У меня такого ни на одной машине не было.
STD>В 2012 студии в списке расширений NemerleWeb есть, но в списке шаблонов — нет. Непонятная ситуация.
А сам Немерле есть в шаблонах?
Здравствуйте, ionoy, Вы писали:
I>Это 2013 студия?
Да
I>Видимо из-за того, что Newtonsoft.Json установлен в GAC. У меня такого ни на одной машине не было.
Видимо.
STD>>В 2012 студии в списке расширений NemerleWeb есть, но в списке шаблонов — нет. Непонятная ситуация. I>А сам Немерле есть в шаблонах?
Есть. Стандартные шаблоны, нитровские — все на месте, кроме NemerleWeb.