Сделал прототип Веб фреймворка для Немерле
От: ionoy Эстония www.ammyui.com
Дата: 08.08.12 16:32
Оценка: 326 (11)
Вкратце — это продолжение идеи WUI.Reactive, только переписанное практически с нуля. Удалось создать достаточно мощный транслятор Nemerle -> Javascript, правда немного заточенный под конкретные MVVM нужды. Если кто не знает, как работает MVVM в вебе, то советую посмотреть на http://knockoutjs.com/. Эта библиотека сейчас как раз и используется для биндингов.

Теоретически ограничения транслятора упираются только в BCL, который, конечно никто не будет дублировать. Практически, проект даже не на стадии альфа, так что о полноте возможностей проебразования говорить пока рано. Однако матчинг, string interpolation, и прочие вкусности работают.

Также была добавлена возможность общаться с сервером в такой манере:

SomeClientSideFunction(user) {
   server.SaveUser(user, result => {
       //Do something with result
   });
}


Сервер описан во вложенном классе:

class Server {
   SaveUser(user : User) : string {
      db.Users.Update(user);
      $"User $(user.Name) succcessfully updated!"
   }
}


Достаточно в модели представления объявить вложенный класс с именем Server, так сразу появляется доступ к полю server с нужными методами, у которых добавляется параметр-коллбек. На данном этапе это единственная конвенция, но можно будет сделать и другие, например ИмяМоделиServer

Пока это всё. За Roadmap я ещё даже не садился, но планов выше крыши.
Одному работать очень тяжело, три недели практически безвылазно программировал, так что надеюсь, что кто-то ещё заинтересуется.

Репозиторий: https://github.com/ionoy/NemerleWeb
Сэмплы: http://nemerleweb.site44.com/index.html (К сожалению два последних сэмпла завязаны на серверную часть, а у меня сейчас нет под рукой Asp.NET хостинга. Так что пока там приведён только код.)

Огромное спасибо Владу, который очень много помогал по ходу проекта. Без его помощи я бы точно не разобрался.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.