Re[2]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 29.05.13 18:22
Оценка: 50 (1)
Здравствуйте, alvas, Вы писали:

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


A>2) Какая цель проекта? Какие основные фичи?


Цель у нас амбициозная — создать лучший в мире фреймворк для разработки веб приложений

Основные фичи NN уже перечислил, но я дополню.
Фреймворк предназначен для упрощения написания браузерных приложений, благодаря смешению клиентского и серверного кода. Такой подход позволяет избавится от большей части boilerplate кода. То есть оставить только то, что описывает логику и ни строчки больше. На данный момент мы не так уж и далеко от цели, достаточно посмотреть на исходники меню rsdn.ru
Автор: ionoy
Дата: 23.05.13
.
Структура приложения состоит из так называемых юнитов. Каждый юнит содержит клиентский код (транслируемый из немерле в яваскрипт), HTML шаблон с биндингами и серверный код. Все эти три части опциональны, т.е. юнит может содержать только логику или только шаблон. По желанию можно оставить и только серверный код, но в этом нет никакого смысла Кстати, из серверного кода на сервере генерируется контроллер, а на клиенте прокси-поле для его использования.
При компиляции макрос разбирает каждый юнит и генерирует из него яваскрипт+html+серверный код, которые в последствии отдаются при запросе. Примеры юнитов можно посмотреть в проекте Samples или в вышеупомянутом меню rsdn.

Одна из интересных возможностей — это использование Немерле макросов. В браузерном коде есть часто используемые паттерны, как, например, тот же throttling. Их как раз очень удобно реализовывать с помощью макросов.

Кроме этих юнитов, для описания логики приложения теоретически не нужно ничего. Это, конечно, не означает, что отпадает необходимость писать серверную бизнес логику — данная проблема лежит вне компетенции нашего фреймворка.
Мы, кстати, на данный момент базируемся поверх ASP.NET MVC. Если у кого-то возникнет необходимость, то можно будет написать адаптер под любой другой серверный фреймворк.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[3]: Общая информация по NemerleWeb
От: alvas  
Дата: 29.05.13 18:46
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Цель у нас амбициозная — создать лучший в мире фреймворк для разработки веб приложений


Какой у вас "Hello World"? Где у меня ошибки?


  [Unit]
  public class Index
  { 
    public HelloWorld : string { 
      get { "Hello World!"; }
      }; 
    }

    [Html]
    public View() : string
    {
      <#
        <div>
          $HelloWorld
        </div>
      #>
    }
    
    public class Server
    {
      public Index() : void
      {
        //????
      }
    }
  }
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[3]: Общая информация по NemerleWeb
От: alvas  
Дата: 29.05.13 18:55
Оценка:
Здравствуйте, ionoy, Вы писали:

В коде есть упоминание throttle. Не смог найти в интернете. Можно ссылку что это такое и с чем его едят?
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[9]: Общая информация по NemerleWeb
От: alvas  
Дата: 29.05.13 19:12
Оценка:
Здравствуйте, _NN_, Вы писали:

A>>Вы слышали по node.js?

_NN>И что теперь ?
_NN>Писать на JS я не собираюсь все равно.

Кстати Edge.js &mdash; Running Node.js and .NET in One Process появилась возможность к javascript прикрутить C#, F#, Python, and PowerShell и было бы здорово прикрутить N, например.
Влад! Ты где?
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[10]: Общая информация по NemerleWeb
От: hi_octane Беларусь  
Дата: 29.05.13 20:53
Оценка:
A>Кстати Edge.js &mdash; Running Node.js and .NET in One Process появилась возможность к javascript прикрутить C#, F#, Python, and PowerShell и было бы здорово прикрутить N, например.
A>Влад! Ты где?

Только не хватало ключевым немерлистам отвлекаться на такие штуки. Есть внятный список достоинств node.js на сервере? А то все ASP.NET vs node.js что в гугле — как-то неубедительны...
Re[18]: Общая информация по NemerleWeb
От: Ziaw Россия  
Дата: 30.05.13 02:43
Оценка:
Здравствуйте, alvas, Вы писали:

A>А кстати правда что у руби с обратной совместимостью туго? Говорят что разница между 1.8 и 1.9 как в питоне между 2.x и 3.x? Какая у них политика в этом вопросе?


Да вроде нет. Я не замечал особых. Вот floating literal начинающийся с точки убрали, да с кодировками наводят порядок. При переходе с 1.9 на 2.0 практически нет проблем, с 1.8 на 1.9 были небольшие проблемы с кодировками. Были еще изменения приоритетов некоторых операторов, но я всегда стараюсь ставить скобки если приоритет хоть чуть не очевиден. В целом, серьезных проблем нет. Примерно так же, как версию фреймворка поменять.
Re[4]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 30.05.13 07:07
Оценка:
Здравствуйте, alvas, Вы писали:

A>Какой у вас "Hello World"? Где у меня ошибки?


A>
A>  [Unit]
A>  public class Index
A>  { 
A>    public HelloWorld : string { 
A>      get { "Hello World!"; }
A>      }; 
A>    }

A>    [Html]
A>    public View() : string
A>    {
A>      <#
A>        <div>
A>          $HelloWorld
A>        </div>
A>      #>
A>    }
    
A>    public class Server
A>    {
A>      public Index() : void
A>      {
A>        //????
A>      }
A>    }
A>  }

A>


1. В объявлении свойства на второй строчке зачем-то };
2. Класс Server нужно объявлять только тогда, когда этому юниты нужны данные с сервера — прочитать что-то из базы данных или записать обратно. При этом сериализация/десериализация происходит автоматически.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[4]: Общая информация по NemerleWeb
От: _NN_ www.nemerleweb.com
Дата: 30.05.13 07:12
Оценка: +1
Здравствуйте, alvas, Вы писали:

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


A>В коде есть упоминание throttle. Не смог найти в интернете. Можно ссылку что это такое и с чем его едят?


Еще не успели добавить в туториал.
Тут
Автор: ionoy
Дата: 23.05.13
есть небольшое объяснение.

Вкратце это нужно, чтобы не реагировать на событие сразу, а по истечении некоторого времени.
В случае поиска мы не хотим вызывать поиск на каждый символ, это будет очень накладно, а только когда пользователь закончил ввод.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 30.05.13 07:18
Оценка: +1
Здравствуйте, alvas, Вы писали:

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


A>В коде есть упоминание throttle. Не смог найти в интернете. Можно ссылку что это такое и с чем его едят?

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

На самом деле название throttle не совсем корректное, более правильно называть его debounce. Но, throttle как-то более распространён, имхо.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[10]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 30.05.13 07:22
Оценка:
Здравствуйте, alvas, Вы писали:

A>Кстати Edge.js &mdash; Running Node.js and .NET in One Process появилась возможность к javascript прикрутить C#, F#, Python, and PowerShell и было бы здорово прикрутить N, например.

Как концепт, конечно, инетересно. Но использовать такой подход в своём коде, это имхо жесть. Я бы лучше нативными node.js либами воспользовался.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[10]: Общая информация по NemerleWeb
От: _NN_ www.nemerleweb.com
Дата: 30.05.13 11:08
Оценка:
Здравствуйте, Danchik, Вы писали:


D>А с калбеками как?


Есть возможность ручной и автоматической типизации, там лямбды Nemerle работают без проблем
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 16:49
Оценка:
Здравствуйте, ionoy, Вы писали:

I>1. В объявлении свойства на второй строчке зачем-то };

I>2. Класс Server нужно объявлять только тогда, когда этому юниты нужны данные с сервера — прочитать что-то из базы данных или записать обратно. При этом сериализация/десериализация происходит автоматически.

Я просто качнул фреймворк, нашел пример выкинул лишнее, не понимая что делаю.
Напишите правильный
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[11]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 17:03
Оценка:
Здравствуйте, hi_octane, Вы писали:

_>Только не хватало ключевым немерлистам отвлекаться на такие штуки. Есть внятный список достоинств node.js на сервере? А то все ASP.NET vs node.js что в гугле — как-то неубедительны...


Ну может и не обязательно ключевым, но взглянуть мне кажется стоит. Кстати был сегодня на Bizspark Urkaine. Там http://skwibl.com/ рассказывали что используют node.js в продакшене и "всем довольны"
M$ Azure поддерживает node.js, например... Чем нода лучше ASP.NET не знаю , но может как раз за счет N это преимущество и появится

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

A>Кстати Edge.js &mdash; Running Node.js and .NET in One Process появилась возможность к javascript прикрутить C#, F#, Python, and PowerShell и было бы здорово прикрутить N, например.

A>Влад! Ты где?

По поводу прикручивания чего-то к чему-то — это не ко мне. У нас и так времени катастрофически не хватает.

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

Кроме того не вижу смысла в данной затее. Немерл на сервере и так самодостаточен. Заменять его скриптами или смесью скриптов статики неразумно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Общая информация по NemerleWeb
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.05.13 17:28
Оценка:
Здравствуйте, alvas, Вы писали:

A>P.S. Меня смущает что N пропал из под Linux...


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

В прочем, в прошлый раз проблемы были в Моно. А народ не стал терпеть не компилируемые пакеты.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Общая информация по NemerleWeb
От: ionoy Эстония www.ammyui.com
Дата: 30.05.13 17:43
Оценка:
Здравствуйте, alvas, Вы писали:

A>Я просто качнул фреймворк, нашел пример выкинул лишнее, не понимая что делаю.

A>Напишите правильный

Держи:

  [Unit]
  public class Index
  { 
    public HelloWorld : string { 
      get { "Hello World!"; }  
    }

    [Html]
    public View() : string
    {
      <#
        <div>
            $HelloWorld
        </div>
      #>
    }    
  }


Только там зайди в HomeController, проверь, что возвращается именно Index
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[7]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 17:53
Оценка:
Здравствуйте, ionoy, Вы писали:

I>
I>  [Unit]
I>  public class Index
I>  { 
I>    public HelloWorld : string { 
I>      get { "Hello World!"; }  
I>    }

I>    [Html]
I>    public View() : string
I>    {
I>      <#
I>        <div>
I>            $HelloWorld
I>        </div>
I>      #>
I>    }    
I>  }
I>


I>Только там зайди в HomeController, проверь, что возвращается именно Index


Cпасибо
1) Как еще можно передавать данные во вьюху, кроме как через свойства?
2) Можно передавать dynamic? Кстати его(dynamic) поддерживает текущая версия N?
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[10]: Общая информация по NemerleWeb
От: _NN_ www.nemerleweb.com
Дата: 30.05.13 17:58
Оценка:
Здравствуйте, alvas, Вы писали:

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


A>>>Вы слышали по node.js?

_NN>>И что теперь ?
_NN>>Писать на JS я не собираюсь все равно.

A>Я это к тому что на чем писать есть в избытке. Есть проблема выбора оптимального инструмента.

A>В автор этого фреймворка? Можно было бы обсудить цели, задачи и ближайшие планы...

С удовольствием.
Мы будем только рады.

В планах довести дело до ума, обкатывая на дереве для RSDN.
Починить компилятор , чтобы была нормальная версионость
Автор: _NN_
Дата: 06.02.13
.
Соответственно компилятор выложить в виде NuGet пакета.
И сам NemerleWeb выложить в виде NuGet пакета.
При этом добавить шаблоны для студии, чтобы были заготовки в один клик.

P.S.
Если вы желаете принять участие в разработке, имеет смысл перейти на более скорый способ общения в виде чата.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[13]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 18:00
Оценка:
Здравствуйте, VladD2, Вы писали:

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


A>>P.S. Меня смущает что N пропал из под Linux...


VD>Дык вместо того чтобы смущаться лучше было бы помочь исправить это досадное недоразумение.


VD>В прочем, в прошлый раз проблемы были в Моно. А народ не стал терпеть не компилируемые пакеты.


Я просто купил Rapsberry Pi. Не нарадуюсь с него и Линукса
Как говорил один лектор про Windows. Это конечно все прекрасно, но это в Линуксе было еще надцать лет назад
Возьмем например Nuget. Ну вы поняли.

P.S. Кто не понял — такая вича есть уже давно в python — pip, в ruby — gem, в linux — apt-get.....
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[11]: Общая информация по NemerleWeb
От: alvas  
Дата: 30.05.13 18:08
Оценка:
Здравствуйте, _NN_, Вы писали:

NN>P.S.

_NN>Если вы желаете принять участие в разработке, имеет смысл перейти на более скорый способ общения в виде чата.

Когда и где?
http://alvas.net — Аудио-инструменты для .Net разработчиков
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.