Re[14]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 19:04
Оценка:
Здравствуйте, _NN_, Вы писали:

A>>Кстати nemelish почил в бозе или живее всех живых?

_NN>Он собирается, надо его вернуть в инсталлятор.
_NN>Уровень конечно не такой как другие REPL.
_NN>Для простых случае проще взять NPad

Понял. Гляну.

P.S. Я тебя добавил в скайпе. Тебе запрос пришел?
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[13]: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.05.13 21:16
Оценка:
Здравствуйте, alvas, Вы писали:

A>Кстати nemelish почил в бозе или живее всех живых?


В общем, почил. Ни кому он не интересен.

A>P.S. REPL позволяет брать любой язык с низкого старта


Это явное преувеличение. Можно с тем же успехом играться с языком в IDE. Там и сервисов по больше. И интерактивность вполне приемлемая.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 21:19
Оценка:
Здравствуйте, VladD2, Вы писали:

A>>P.S. REPL позволяет брать любой язык с низкого старта


VD>Это явное преувеличение. Можно с тем же успехом играться с языком в IDE. Там и сервисов по больше. И интерактивность вполне приемлемая.


А теперь представь что у меня нет гуи? Линух или веб?
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[9]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 21:45
Оценка:
I>$(Prop), $(_field), $(MethodCall()), $("string"), $(if(true) "true" else "false") ну и так далее.

I>И это будет биндинг, а не просто одноразовая передача данных.


Расшифруйте пожалуйста "бывшему депутату Государственной думы"
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[15]: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.05.13 21:53
Оценка:
Здравствуйте, alvas, Вы писали:

A>А теперь представь что у меня нет гуи? Линух или веб?


Веб то где? Разве что опять в Линуксе. Не уже ли ни одной машины с виндой? В прочем тогда можно виртуальку поставить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 21:58
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, alvas, Вы писали:


A>>А теперь представь что у меня нет гуи? Линух или веб?


VD>Веб то где? Разве что опять в Линуксе. Не уже ли ни одной машины с виндой? В прочем тогда можно виртуальку поставить.


Я понимаю что уже поздно и все сонные. Но html он и виндовсе html

P. S. Виртуалку уже поставил
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[17]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 22:00
Оценка:
Здравствуйте, alvas, Вы писали:

A>P. S. Виртуалку уже поставил


Меня тоже в детстве линуксом пугали, но как показывает практика зря
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[11]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 31.05.13 06:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Если кто-то с нами не согласен, то он может сам воспроизвести нужную ему фичу в виде макроса.

Проблема с dynamic не в том, что не хватает функциональности, а в сложности общения со сторонними либами, которые этот dynamic используют.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[10]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 31.05.13 06:56
Оценка:
Здравствуйте, alvas, Вы писали:

I>>$(Prop), $(_field), $(MethodCall()), $("string"), $(if(true) "true" else "false") ну и так далее.

I>>И это будет биндинг, а не просто одноразовая передача данных.

A>Расшифруйте пожалуйста "бывшему депутату Государственной думы"


Первое или второе?

<div>$Prop</div> - в этом диве будет всегда отображаться актуальное значение свойства Prop
<div>$_field</div> - то же самое, но значение поля
<div>$(MethodCall())</div> - здесь будет результат вызова функции, тоже всегда актуальный
<div>$("string")</div> - это просто пример того, что биндить можно к любому значению, даже если это просто неизменяемая строка
<div>$(if(true) "true" else "false")</div> - биндинг может содержать выражения возвращающие значение, коим является if/else

более реалистичный пример if/else:
<div>$(if(LoggedIn) "Hello, " + Name else "Please, log in")</div>


Вообще, про биндинг посмотри примеры на сайте http://nemerlewebsamples.apphb.com/
Биндинг позволяет отказаться от конструкций вроде:

KeyUp += newValue => UpdateTextBox(newValue)


Если, например, поле Name изменилось, то автоматически будут обновлены все места использования этого Name. Никаких действий со стороны программиста для этого не нужно.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[14]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 31.05.13 07:23
Оценка:
Здравствуйте, alvas, Вы писали:

A>Это да. А зачем вы тайпскрипт прикручиваете? Шучу-шучу

TypeScript сейчас нужен для того, чтобы не писать вручную обёртки над яваскрипт либами. Очень удобно.

_NN>>Сами понимаете. Будет больше желающих помочь, будет и больше сайтов.

A>Я за, но вы сначала определитесь зачем нужен ваш фреймворк и какие задачи он решает Я серьезно
Так мы уже с самого начала определились.
1. Фреймворк нужен для упрощения написания браузерных приложений
2. Фреймворк — это яваскрипт транслятор + биндинг наподобие AngularJS + шаблоны. А так, как всё это ещё и находится под крылом Немерле, то выходит очень мощная штука, благодаря возможности использовать макросы для устранения boilerplate кода.

Ещё раз хочу подчеркнуть, мы не заменяем ASP.NET MVC, Nancy или другие серверные технологии, мы работаем поверх них. То есть сайт на ASP.NET MVC так и останется сайтом на ASP.NET MVC. Но на тех страницах, где нужна интерактивность очень удобно использовать NemerleWeb.
Всё, что изменится — это вместо того, чтобы в экшене контроллера написать:

View(model);


ты напишешь:

View((NWeb MainPage()) : object);
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[14]: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.06.13 10:10
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Он собирается, надо его вернуть в инсталлятор.


Собирается и работает — разные вещи. Никуда возвращать его не надо. Он полностью неработоспособен.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Общая информация по NemerleWeb
От: alvas  
Дата: 02.06.13 17:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, _NN_, Вы писали:


_NN>>Он собирается, надо его вернуть в инсталлятор.


VD>Собирается и работает — разные вещи. Никуда возвращать его не надо. Он полностью неработоспособен.


Попробовал NPad. Не консольный и не под Линукс, но тоже классный
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[16]: Общая информация по NemerleWeb
От: Аноним  
Дата: 02.06.13 20:37
Оценка:
Здравствуйте, alvas, Вы писали:

A>Здравствуйте, VladD2, Вы писали:


VD>>Здравствуйте, _NN_, Вы писали:


_NN>>>Он собирается, надо еговернуть в инсталлятор.


VD>>Собирается и работает — разные вещи. Никуда возвращать его не надо. Он полностью неработоспособен.


A>Попробовал NPad. Не консольный и не под Линукс, но тоже классный


Почему не под линукс?
Винформы там работают хорошо, это ведь не wpf.
Re[8]: Общая информация по NemerleWeb
От: SergH Россия  
Дата: 11.06.13 14:46
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Что за парадокс? Что-то ничего невыгуглилось


Обычно это называют парадоксом дней рождений. При чём тут шапки я не знаю.
Делай что должно, и будь что будет
Re[9]: Общая информация по NemerleWeb
От: Аноним  
Дата: 11.06.13 16:41
Оценка:
Здравствуйте, SergH, Вы писали:

SH>Здравствуйте, _FRED_, Вы писали:


_FR>>Что за парадокс? Что-то ничего невыгуглилось


SH>Обычно это называют парадоксом дней рождений. При чём тут шапки я не знаю.


Пришло 20 человек и побросали шапки в кучу. Когда уходили никто не помнил где, чья шапка и по этому взяли случайно.
Какова вероятность что хотя бы один взял свою шапку.
Re: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.06.13 17:54
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Репозиторий: https://github.com/NemerleWeb/NemerleWeb


По поводу:
style-..., css-... и т.п.

Откровенно говоря этот ДСЛ не интуитивен. Для его понимания нужно долго и ундно объяснять что это и как работает.

Собственно вопрос: почему нельзя было сделать ДСЛ ближе к оригинальному ХТМЛ? Например, вместо:
<div $foreach(c in Children) style-margin-left="$(c.Depth * 6)" ...

писать нечто вроде:
<div $foreach(c in Children) style="margin-left: $(c.Depth * 6)" ...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 02.07.13 11:43
Оценка: 47 (1) +1
Здравствуйте, VladD2, Вы писали:

VD>По поводу:

VD>style-..., css-... и т.п.

VD>Откровенно говоря этот ДСЛ не интуитивен. Для его понимания нужно долго и ундно объяснять что это и как работает.


VD>Собственно вопрос: почему нельзя было сделать ДСЛ ближе к оригинальному ХТМЛ? Например, вместо:

VD>
VD><div $foreach(c in Children) style-margin-left="$(c.Depth * 6)" ...
VD>

VD>писать нечто вроде:
VD>
VD><div $foreach(c in Children) style="margin-left: $(c.Depth * 6)" ...
VD>


Чёрт, пока отдыхал, на форуме целая война прошла. Жаль, что не успел поучаствовать

Тема с атрибутами, едва ли не единственная реальная проблема обсуждённая в соседнем топике. Честно говоря, я думал забить на неё до релиза и починить уже "как нибудь потом", но раз уж столько человек против расширений, то можно и сразу сделать. У меня в этом месяце будет побольше свободного времени, так что думаю сделаем.

Ну и раз уж на то пошло, то кратко отвечу на остальную критику:

Отдельные файлы с шаблонами вынести можно, но по сути это ничего не изменит, скорее только усложнит. Код останется тот же самый, но придётся выдумывать convention для названия шаблона, типа MyModel_Template1.nhtml, который будет вызываться как myModel.Template1.
По поводу того, чтобы отдавать nhtml шаблон на перевёрстку человеку, который совершенно не будет разбираться в фреймворке — это утопия. Сходите на форум к AngularJS и расскажите им, что их подход биндинга плох именно по этой причине Верстальшик не может посмотреть готовую страницу без данных, которые будут к шаблону прибинжены, а для данных проект придётся-таки собирать. Если же HTML оставлять "чистым", и манипулировать им из кода, то это уже не MVVM, и таких проектов у меня была уйма. В итоге получается знатная каша из jQuery, без какой-либо логики для постороннего человека. Зато шаблон кристально чист
MVVM (как, собственно и MVC) предлагает полностью отвязать код от представления. Т.е. представление может обращаться к коду, но не наоборот — код в идеале ничего не знает о конкретном представлении, поэтому в идеале остаётся только дистиллированная бизнес логика.
Опять же, никто не мешает взять готовый макет и практически один-в-один скопировать во View, добавив только атрибуты данных.

Про MainPage.Instance.IsActiveNode(c) я не совсем понял наезда. Да, можно было бы в каждую ноду передавать экземпляр MainPage, чтобы она могла вызывать IsActiveNode. Я выбрал sinlgeton, потому что немного выгоднее по перформансу, так как MainPage не надо передавать в отдельном цикле.

Насчёт отдельной компиляции, то тут тоже всё не так просто. Если у кого есть интерес, то можно будет обсудить.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[3]: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.13 17:43
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Про MainPage.Instance.IsActiveNode(c) я не совсем понял наезда. Да, можно было бы в каждую ноду передавать экземпляр MainPage, чтобы она могла вызывать IsActiveNode. Я выбрал sinlgeton, потому что немного выгоднее по перформансу, так как MainPage не надо передавать в отдельном цикле.


Как минимум обращение к MainPage.Instance.IsActiveNode нужно было поместить в свойство модели представления. Ну, а лучше чтобы MainPage.Instance все же передавалось при создании. Возможно завести модельку TreeView в которой хранить все данные для дерева.

I>Насчёт отдельной компиляции, то тут тоже всё не так просто. Если у кого есть интерес, то можно будет обсудить.


Думаю, что отдельная компиляция вьюшек расположенных в отдельных файлах была бы кстати. Но пока на нее можно забить. Добавите в следующей версии. Возможно уже на базе N2.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Общая информация по NemerleWeb
От: STDray http://stdray.livejournal.com
Дата: 14.08.13 13:48
Оценка:
I>Здесь же можно постить свои вопросы и предложения/замечания.

Не выходит собрать решение.

------ Перестроение всех файлов начато: проект: NemerleWeb.TypedJS, Конфигурация: Debug Any CPU ------
    All packages listed in packages.config are already installed.
D:\Projects\NemerleWeb\NemerleWeb.TypedJS\JSStringExtensions.n(14,45): error : unbound type name `RegExp'
D:\Projects\NemerleWeb\NemerleWeb.TypedJS\Properties\NWebProperties.n(3,12): error : the custom attribute `GenerateTypedJS(Root = "NemerleWeb.TypedJS", Lib = "lib.d.ts", Files = [("Scripts", "typings\\\\(underscore\\\\(underscore|underscore-typed-.*)|linq\\\\linq)\\.d\\.ts")])' could not be found or is invalid
    confused by earlier errors bailing out
Построение проекта "NemerleWeb.TypedJS.nproj" завершено с ошибкой.


Куда копать?
Re[2]: Общая информация по NemerleWeb
От: _NN_ www.nemerleweb.com
Дата: 14.08.13 16:50
Оценка:
Здравствуйте, STDray, Вы писали:

Для начала версия Nemerle самая свежая ?
http://www.nemerle.org/Downloads
http://rsdn.nemerleweb.com
http://nemerleweb.com
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.