Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 24.08.12 12:05
Оценка: 72 (4)
Страница проекта: http://nemerlewebsamples.apphb.com
Репозиторий: https://github.com/NemerleWeb/NemerleWeb

Все важные обновления будут поститься в этой теме. Здесь же можно постить свои вопросы и предложения/замечания.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Общая информация по NemerleWeb
От: WolfHound  
Дата: 24.08.12 12:40
Оценка: 8 (1)
Здравствуйте, ionoy, Вы писали:

Lists and collections глючит. Попробуй добавить/удалить несколько раз.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 24.08.12 13:13
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Lists and collections глючит. Попробуй добавить/удалить несколько раз.


Интересная проблема, странно, что о ней нет ничего на сайте KnockoutJs.
Дело в том, что Seats.Remove конвертируется в вызов метода destroy (observableArray), который в свою очередь выставляет у объекта свойство _destroy = true.
Объекты, у которых _destroy == true, игнорируются при биндингах, как будто их нет. Но, загвоздка в том, что свойство length, после destroy() не изменяется. А специального метода length(), который бы учитывал _destroy у observableArray тоже нет.
Очень странная недоработка. Видимо придётся пока вообще отказаться от destroy в пользу remove.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 24.08.12 15:23
Оценка:
Добавил сэмпл Computation Expressions.
В данном примере используется comp list, но если автор Nemerle.ComputationExpressions согласится помочь, то можно будет прикрутить и comp async.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[2]: Общая информация по NemerleWeb
От: WolfHound  
Дата: 24.08.12 17:34
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Добавил сэмпл Computation Expressions.

Интересно.

Я тут маленько посмотрел на код.

ИМХО Write и Transform ты зря засунул в JsAST просто по тому, что они захламляют АСТ и из-за ниx трудно понять, что АСТ из себя представляет. Лучше их вынести в отдельные методы. Тем более что match проверяет полностью ли ты все сматчил.

                | If(Call(func, something :: If(c, t, e) :: []), then, els)
                | If(Call(func, If(c, t, e) :: something :: []), then, els) => JsAST.If(JsAST.Call(func, JsAST.Ternary(c, t, e) :: [something]), then, els).Transform()


Для такого something :: If(c, t, e) :: []
Есть такой синтаксис [something, If(c, t, e)]

Кстати то, что эти два паттерна обрабатываются одинаково точно не ошибка? Ибо в первом паттерне аргументы меняются местами.

I>В данном примере используется comp list, но если автор Nemerle.ComputationExpressions согласится помочь, то можно будет прикрутить и comp async.

А что именно нужно? Там основная сложность в рантайме. Его нужно переписать под js?
Могу помогать идейно и морально. Писать не вариант. Я на Н2 загружен по самые не могу.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.08.12 20:16
Оценка:
Здравствуйте, ionoy, Вы писали:

I>В данном примере используется comp list, но если автор Nemerle.ComputationExpressions согласится помочь, то можно будет прикрутить и comp async.


Для асинка теперь есть отдельная реализация. Вроде как более удобная.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 25.08.12 07:31
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>ИМХО Write и Transform ты зря засунул в JsAST просто по тому, что они захламляют АСТ и из-за ниx трудно понять, что АСТ из себя представляет. Лучше их вынести в отдельные методы. Тем более что match проверяет полностью ли ты все сматчил.

Первые несколько недель разработки, у меня как раз было несколько методов: Write, Transform и Recurse (который, наверное, надо переименовать в Traverse). Показалось неудобным то, что на каждое изменение AST мне приходилось повторять его ещё в трёх местах. А так как на тот момент я часто менял AST, то в конце концов не выдержал и зарефакторил в текущее состояние. То, что есть сейчас, конечно, не так удобно читается, зато легко поддерживается (как бы это ни странно звучало).

WH>Для такого something :: If(c, t, e) :: []

WH>Есть такой синтаксис [something, If(c, t, e)]
Ага, мне NN уже намекнул. Не знаю, с чего я решил, что матчить можно только cons'ом.

WH>Кстати то, что эти два паттерна обрабатываются одинаково точно не ошибка? Ибо в первом паттерне аргументы меняются местами.

Ошибка. Вспешке не подумал о том, что порядок выполнения решает.

I>>В данном примере используется comp list, но если автор Nemerle.ComputationExpressions согласится помочь, то можно будет прикрутить и comp async.

WH>А что именно нужно? Там основная сложность в рантайме. Его нужно переписать под js?
Нужно совсем немного, ключевое слово compdef которое с правой стороны принимало бы вызов метода, у которого последний параметр TResult -> void и засовывало "продолжение" в этот параметр. Как это сделать, я, если честно, не разобрался.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[3]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 25.08.12 07:33
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Для асинка теперь есть отдельная реализация. Вроде как более удобная.

Если это аналог C# async, то там всё переписывается в TPL. А мне такая тяжёлая артиллерия не нужна, достаточно просто подставить коллбек куда нужно.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Общая информация по NemerleWeb для чайников
От: _Claus_  
Дата: 25.08.12 17:34
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Страница проекта: http://user1663.netfx45lab.discountasp.net/

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

I>Все важные обновления будут поститься в этой теме. Здесь же можно постить свои вопросы и предложения/замечания.


было бы позитивно написать краткую инструкцию для начала использования:
как то ставим то и то, создаем каталог х, копируем туда пример из y, запускаем на компиляцию или еще что и пр.
есть мнение, что не все знают ASP net и прочую лабуду, и как ее активировать в связке с NemerleWeb.
это помогло бы не только тем, что вообще не в теме web и asp но и тем, кто имеет дело с альтернативными технологиями.
Re[2]: Общая информация по NemerleWeb для чайников
От: ionoy Эстония www.ammyui.com
Дата: 26.08.12 10:04
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>было бы позитивно написать краткую инструкцию для начала использования:

_C_>как то ставим то и то, создаем каталог х, копируем туда пример из y, запускаем на компиляцию или еще что и пр.
_C_>есть мнение, что не все знают ASP net и прочую лабуду, и как ее активировать в связке с NemerleWeb.
_C_>это помогло бы не только тем, что вообще не в теме web и asp но и тем, кто имеет дело с альтернативными технологиями.

Это всё будет как только мы будем уверены, что фреймворк готов для обычного пользователя. На данный момент там ещё слишком много недоработок и досадных багов.
Если интересно просто "поиграться", то делай клон с гитхаба и работай в проекте MVCTest. Никакой особенной магии там не нужно.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 28.08.12 16:58
Оценка: 25 (3)
Добавили нативную поддержку SignalR, библиотеки для дуплексного сообщения. Имхо невероятно крутая фича получилась.

От разработчика не требуется ни строчки кода конфигурации. Просто пишешь:
broadcast client.SomeMethod(param1, param2)

и он вызывается на клиенте. Вся обвязка автоматически генерируется макросом, и только в том случае, если где то есть вызов клиентского метода.

На http://user1663.netfx45lab.discountasp.net/ появился пример Chat using SignalR, где можно посмотреть на это вживую, а так же увидеть код.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[2]: Общая информация по NemerleWeb
От: WolfHound  
Дата: 28.08.12 17:48
Оценка: 1 (1)
Здравствуйте, ionoy, Вы писали:

Немере умеет выводить типы в инициалайзерах. Так что можно писать так
      public static _lastMessages : ConcurrentQueue[Message] = ConcurrentQueue();
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.08.12 11:28
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Страница проекта: http://user1663.netfx45lab.discountasp.net/


А варианты и сопоставление с образцом работает? Если да, то хорошо бы сделать примерчик по этому поводу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 29.08.12 12:03
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А варианты и сопоставление с образцом работает? Если да, то хорошо бы сделать примерчик по этому поводу.


Варианты пока не работают. Надо прикинуть, какой ЖС для них генерировать и вообще какая функциональность обычных классов перейдёт и к ним.

Паттерн матчинг должен работать в полную силу, кроме, конечно, сопоставления вариантов.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 29.08.12 12:49
Оценка:
Хотелось бы услышать от сообщества предложения по поводу работы с БД. Моё главное пожелание, это возможность в простых случаях не писать ни строчки "мета" кода. То есть весь код работы с базой это db.Add и подобное, а генерацией базы и прочим должен заниматься фреймворк. И отталкиваясь от этого пошаговая расширяемость.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[2]: Общая информация по NemerleWeb
От: Аноним  
Дата: 29.08.12 13:25
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Хотелось бы услышать от сообщества предложения по поводу работы с БД. Моё главное пожелание, это возможность в простых случаях не писать ни строчки "мета" кода. То есть весь код работы с базой это db.Add и подобное, а генерацией базы и прочим должен заниматься фреймворк. И отталкиваясь от этого пошаговая расширяемость.

Генерировать сторепроц?
Re[3]: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.08.12 13:50
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Варианты пока не работают. Надо прикинуть, какой ЖС для них генерировать и вообще какая функциональность обычных классов перейдёт и к ним.


Надо.

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


Ну, дык варианты в ПМ самое вкусное. Надо сделать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.08.12 13:51
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Хотелось бы услышать от сообщества предложения по поводу работы с БД. Моё главное пожелание, это возможность в простых случаях не писать ни строчки "мета" кода. То есть весь код работы с базой это db.Add и подобное, а генерацией базы и прочим должен заниматься фреймворк. И отталкиваясь от этого пошаговая расширяемость.


А чем использование линка не устраивает?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Общая информация по NemerleWeb
От: Jack128  
Дата: 29.08.12 13:54
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Хотелось бы услышать от сообщества предложения по поводу работы с БД. Моё главное пожелание, это возможность в простых случаях не писать ни строчки "мета" кода. То есть весь код работы с базой это db.Add и подобное, а генерацией базы и прочим должен заниматься фреймворк. И отталкиваясь от этого пошаговая расширяемость.


db.Users.Insert(() => new User { Name = "Новый юзер" });
Это C# + BLToolkit
Re[3]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 29.08.12 13:57
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А чем использование линка не устраивает?


Вполне устраивает. Меня больше интересуют инфраструктурные вопросы, как генерировать базу и прочее.
Может у кого-то возникнет интересная идея.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.