powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN - победа над рацио
11 сообщений из 11, страница 1 из 1
ZEN - победа над рацио
    #38809091
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каждое использование ZEN это победа надежды над разумом. Это как третий брак. Как подать милостыню в метро. Пока ты веришь в добро - ты юзаешь зен. Потом ты взрослеешь, становишься прагматиком и дорожишь своим временем - с этого момента ты не пишешь на ZEN.
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38809118
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поздравляю, с взрослением
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38809400
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u78, Zen - это фреймворк... когда не знаешь ничего (мало), он дает решение, но как и любой фреймворк накладывает ограничения
Возможно, не везде подходит, не всё в нем удачно, но надо же с чего-нибудь начинать :)
С другой стороны, MVC, компоненты, декларативная разметка, не так плохо для начала
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38809413
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintС другой стороны, MVC, компоненты, декларативная разметка, не так плохо для началаА не затянулось ли это начало ?
я делал первый проект на ZEN еще на 2007 версии, много было там проблем, и сейчас не сильно улучшилось в этом плане, хотя к счастью сейчас я не работаю с ZEN.
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38809451
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor, в 2007 он только появился. Когда фирма начинает заниматься непрофильной деятельностью - результат немного ...
Но время идет, баг-репорты закрываются, caché-программисты перестают делать большие глаза при словах ajax, json, dom, jquery ;)
Всё будет хорошо :)
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38810389
2acid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю, особых проблем с ЗЕНом не испытывал ...
Если клиент сидит на "модеме", то тут возникают проблемы, иначе вообще все хорошо с ЗЕНом.
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38810436
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2acidНе знаю, особых проблем с ЗЕНом не испытывал ...
Если клиент сидит на "модеме", то тут возникают проблемы, иначе вообще все хорошо с ЗЕНом.Санёк, ну от тебя такое не ожидал услышать.
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38810630
2acid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorСанёк, ну от тебя такое не ожидал услышать.
Я считаю что ЗЕН свои задачи выполняет, как уже писали выше - есть свои ограничения.
А если тебя заставляют писать на ЗЕН, а ты такой хитрый, то всегда можно сделать так:/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
 <page xmlns=" http://www.intersystems.com/zen"  title="" layout="none">
   <html id="aaa" OnDrawContent="Draw" />
 </page>
}

Method Draw(proxy As %ZEN.proxyObject) As %Status
{
  &html<<h1>hello world</h1>>
  q $$$OK
}
и вот она твоя любимая разметка и твой любимый JS.
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38811077
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2acid, и вот что получится
<!DOCTYPE html>
<html  >
<!-- Server: Cache for Windows (x86-64) 2014.1.2 (Build 753U) Tue Jul 22 2014 11:14:30 EDT  Zen #: 14 -->
<head>
<title></title>
  
<link rel="stylesheet" type="text/css" href="ZEN_SVGComponent.css"/>
<link rel="stylesheet" type="text/css" href="ZEN_Component__core_3.css"/>
<style id="zenStyleSection" type="text/css"></style>
<!-- Style: %ZEN.application -->
<!-- Style: test.zen.html -->
<style type="text/css">
/* @doc="Style applied to body of page." */
body {
margin: 0px;
}
#zenMouseTrap {
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
background: transparent;
background-color: gray;
opacity: 0.1;
filter:alpha(opacity=10);
}
/* @doc="Style applied to wrapper around SVG frames." */
.svgFrame {
border: 1px black solid;
background: white;
}
</style>
<script type="text/javascript" src="zenutils.js"></script>
<script type="text/javascript">var zenIsHTML5=true;</script>
</head>
<body id="zenBody">
<xml id="zenWorkspace"></xml>
<div id="zenMouseTrap" ></div>
<div id="zenModalDiv" style="display: none;"></div>
<div id="zenFloatingDiv" style="display: none;"></div>
<div class="zendiv" id="zen1" zen="1"  ><div class="zendiv" id="aaa" zen="2"  ><h1>hello world</h1>
</div>
</div>
<script type="text/javascript" src="cspxmlhttp.js"></script>
<script type="text/javascript" src="cspbroker.js"></script>
<script type="text/javascript" src="ZEN_Component__core.js"></script>
<script type="text/javascript">
//<![CDATA[

var zenAutoLogoutTime = 915000;
var zenAutoLogoutTimerID = null;
  

zenAutoLogoutTimerID = self.setTimeout("zenAutoLogout()",zenAutoLogoutTime);
function zenAutoLogout()
{
  var ok = true;
  if (zenPage.onlogoutHandler) {
    ok = zenPage.onlogoutHandler();
  }
  if (ok) {
    top.document.location.reload();
  }
}
    
//]]>
</script>
<script type="text/javascript">
//<![CDATA[
var _zenPageError = 'ОШИБКА ZEN:\nобъект zenPage отстуствует или неверный для этой страницы.';
cspMultipleCall = true;
function zenClassMethod(object,method,spec,rettype,args)
{
  if (zenAutoLogoutTimerID) {
    self.clearTimeout(zenAutoLogoutTimerID);
    zenAutoLogoutTimerID = self.setTimeout("zenAutoLogout()",zenAutoLogoutTime);
  }
  if (zenPage.onServerMethodCall) { zenPage.onServerMethodCall(method); }
  var state = new zenSerialState();
  var arglist = zenBuildArgumentList(state,spec,args);
  if (zenDEBUGTraceEvents) { zenTRACE('Server Class Method',method,arglist);}
  var header = state.getHeader();
  var body = state.getBody();
  var ns = 'USER';
  if (''!=rettype) {
    var ret = cspHttpServerMethod("PdxCNNuWvP1QFPAUE1oCBIKcTmGXfwE891UcjNvhHEYKvrCO05wgYleukq2a3XoyXkBiH6kWnJ0m07J2ZBRb_g--",object._serverClass,method,rettype,zenSyncFlag,header,body,spec,arglist,ns,zenGetThreadId());
    return zenConvertType(rettype,ret);
  } else {
    if (!zenSynchronousMode) {
      cspCallHttpServerMethod("PdxCNNuWvP1QFPAUE1oCBIKcTmGXfwE891UcjNvhHEYKvrCO05wgYleukq2a3XoyXkBiH6kWnJ0m07J2ZBRb_g--",object._serverClass,method,rettype,zenSyncFlag,header,body,spec,arglist,ns,zenGetThreadId());
    } else {
      cspHttpServerMethod("PdxCNNuWvP1QFPAUE1oCBIKcTmGXfwE891UcjNvhHEYKvrCO05wgYleukq2a3XoyXkBiH6kWnJ0m07J2ZBRb_g--",object._serverClass,method,rettype,zenSyncFlag,header,body,spec,arglist,ns,zenGetThreadId());
    }
  }
}
function zenInstanceMethod(object,method,spec,rettype,args)
{
  if (zenAutoLogoutTimerID) {
    self.clearTimeout(zenAutoLogoutTimerID);
    zenAutoLogoutTimerID = self.setTimeout("zenAutoLogout()",zenAutoLogoutTime);
  }
  if (zenPage.onServerMethodCall) { zenPage.onServerMethodCall(method); }
  var state = new zenSerialState();
  state.addObject(object);
  var arglist = zenBuildArgumentList(state,spec,args);
  if (zenDEBUGTraceEvents) { zenTRACE('Server Instance Method',method,arglist);}
  var header = state.getHeader();
  var body = state.getBody();
  var ns = 'USER';
  if (''!=rettype) {
    var ret = cspHttpServerMethod("8bxbd9Rq9fFiAQzeB56BNwRxjVrIDrYkDLtN7FtLE7ByTgnLTK_ZJ5osxVp5by5BOEKZyrPWBbO$AcFagJ4I$Q--",object.index,method,rettype,zenSyncFlag,header,body,spec,arglist,ns,zenGetThreadId());
    return zenConvertType(rettype,ret);
  } else {
    if (!zenSynchronousMode) {
      cspCallHttpServerMethod("8bxbd9Rq9fFiAQzeB56BNwRxjVrIDrYkDLtN7FtLE7ByTgnLTK_ZJ5osxVp5by5BOEKZyrPWBbO$AcFagJ4I$Q--",object.index,method,rettype,zenSyncFlag,header,body,spec,arglist,ns,zenGetThreadId());
    } else {
      cspHttpServerMethod("8bxbd9Rq9fFiAQzeB56BNwRxjVrIDrYkDLtN7FtLE7ByTgnLTK_ZJ5osxVp5by5BOEKZyrPWBbO$AcFagJ4I$Q--",object.index,method,rettype,zenSyncFlag,header,body,spec,arglist,ns,zenGetThreadId());
    }
  }
}
function zenLink(url,share)
{
  var parms = '';
  if (share) {
    parms = 'CSPSHARE=1&CSPCHD=001000010000nKXcBAFTiE0000k8oV7VhxQnxrMRNYf2rb5w--';
  }
  var s = url.split('?');
  var loc = s[0];
  if (null!=s[1]||''!=parms) {
    loc += '?' + parms + (null==s[1]?'':((''==parms)?'':'&') + s[1]);
  }
  return loc;
}
var _zenEmbeddedPage = false;
var zenDecimalSeparator = '.';
var zenNumericGroupSeparator = ',';
var zenNumericGroupSize = 3;
var _zenResource = new Object();
_zenResource['zenDayNames'] = 'Воскресенье,Понедельник,Вторник,Среда,Четверг,Пятница,Суббота';
_zenResource['zenDayShortNames'] = 'Вс,Пн,Вт,Ср,Чт,Пт,Сб';
_zenResource['zenMonthNames'] = 'Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь';
_zenResource['zenMonthShortNames'] = 'Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек ';
var _zenTEXT = new Object();
var _zenDOMAIN = '%ZEN';

self._zenClassIdx['html'] = 'test_zen_html';
self.test_zen_html = function(index,id) {
  if (index>=0) {test_zen_html__init(this,index,id);}
}

self.test_zen_html__init = function(o,index,id) {
  ('undefined' == typeof _ZEN_Component_page__init) ?zenMaster._ZEN_Component_page__init(o,index,id):_ZEN_Component_page__init(o,index,id);
  o.useSoftModals = false;
}
function test_zen_html_serialize(set,s)
{
  var o = this;s[0]='4277539460';s[1]=o.index;s[2]=o.id;s[3]=o.name;s[4]=set.addObject(o.parent,'parent');s[5]=set.addObject(o.composite,'composite');s[6]=o.SVGClassList;s[7]=o.UserSVGPackageList;s[8]=o.align;s[9]=o.aux;s[10]=o.backgroundTimerInterval;s[11]=o.cellAlign;s[12]=o.cellSize;s[13]=o.cellStyle;s[14]=o.cellVAlign;s[15]=set.serializeList(o,o.children,true,'children');s[16]=o.containerStyle;s[17]=o.cssLevel;s[18]=(o.designMode?1:0);s[19]=(o.disabled?1:0);s[20]=(o.dragAndDrop?1:0);s[21]=(o.dragEnabled?1:0);s[22]=(o.dropEnabled?1:0);s[23]=(o.dynamic?1:0);s[24]=o.enclosingClass;s[25]=o.enclosingStyle;s[26]=o.error;s[27]=o.groupClass;s[28]=o.groupStyle;s[29]=o.height;s[30]=(o.hidden?1:0);s[31]=o.hint;s[32]=o.hintClass;s[33]=o.hintStyle;s[34]=(o.inlineSVG?1:0);s[35]=(o.isPopup?1:0);s[36]=(o.isSoftModal?1:0);s[37]=o.label;s[38]=o.labelClass;s[39]=o.labelDisabledClass;s[40]=o.labelPosition;s[41]=o.labelStyle;s[42]=o.lastModalIndex;s[43]=o.layout;s[44]=o.nextIndex;s[45]=o.onafterdrag;s[46]=o.onbeforedrag;s[47]=o.onclick;s[48]=o.ondrag;s[49]=o.ondrop;s[50]=o.onhide;s[51]=o.onoverlay;s[52]=o.onrefresh;s[53]=o.onshow;s[54]=o.onupdate;s[55]=o.overlayMode;s[56]=o.popupParent;s[57]=o.renderFlag;s[58]=(o.showLabel?1:0);s[59]=o.slice;s[60]=o.title;s[61]=o.tuple;s[62]=(o.useSVG?1:0);s[63]=(o.useSoftModals?1:0);s[64]=o.valign;s[65]=(o.visible?1:0);s[66]=o.width;s[67]=(o.zenPersistentPopup?1:0);
}
function test_zen_html_getSettings(s)
{
  s['name'] = 'string';
  this.invokeSuper('getSettings',arguments);
}

self.test_zen_html_LoadZenComponent = function(pNamespace,pName,pClassName,pCSSLevel) {
  return zenClassMethod(this,'LoadZenComponent','L,L,L,L','BOOLEAN',arguments);
}

self.test_zen_html_MonitorBackgroundTask = function(pTaskID) {
  zenClassMethod(this,'MonitorBackgroundTask','L','',arguments);
}

self.test_zen_html_ReallyRefreshContents = function() {
  zenInstanceMethod(this,'ReallyRefreshContents','','',arguments);
}
self.test_zen_html__Loader = function() {
  zenLoadClass('_ZEN_Component_page');
  test_zen_html.prototype = zenCreate('_ZEN_Component_page',-1);
  var p = test_zen_html.prototype;
  if (null==p) {return;}
  p.constructor = test_zen_html;
  p.superClass = ('undefined' == typeof _ZEN_Component_page) ? zenMaster._ZEN_Component_page.prototype:_ZEN_Component_page.prototype;
  p.__ZENcomponent = true;
  p._serverClass = 'test.zen.html';
  p._type = 'html';
  p.serialize = test_zen_html_serialize;
  p.getSettings = test_zen_html_getSettings;
  p.LoadZenComponent = test_zen_html_LoadZenComponent;
  p.MonitorBackgroundTask = test_zen_html_MonitorBackgroundTask;
  p.ReallyRefreshContents = test_zen_html_ReallyRefreshContents;
}
// ================================================================================
function zenCreatePageModel() {
try {
var o = null;
zenCreate('test_zen_html',1,'');
zenCreate('_ZEN_Component_html',2,'aaa');

o = _zenIndex[1];
o.SVGClassList = 'test.zen.html';
o.children[0] = _zenIndex[2];
o.cssLevel = 3;
o.isPopup = false;
o.layout = 'none';
o.nextIndex = 2;

o = _zenIndex[2];
o.OnDrawContent = 'Draw';
o.id = 'aaa';
o.parent = _zenIndex[1];
zenPage = _zenIndex[1];
}
catch(ex) {
 zenExceptionHandler(ex,arguments,'Error building ZEN Page Model.');
}
}

window.onload = function() {
  if (null == self.zenASSERT) { alert('ОШИБКА ZEN:\nНе найден обязательный include-файл, zenutils.js.'); window.stop(); return; }
  if (14 != self.zenUtilsVersion) { alert('ОШИБКА ZEN:\nzenutils.js имеет неверный номер версии.\nВерсия страницы:14\nzenutils.js: ' + (self.zenUtilsVersion ? self.zenUtilsVersion : '')); window.stop(); return; }
  if (14 != self.js_zen_core) { alert('ОШИБКА ZEN:\nInclude-файл отсутствует или имеет неверный номер версии:\nВерсия страницы:14\nZEN_Component__core.js: ' + (self.js_zen_core ? self.js_zen_core : '')); window.stop(); return ; }
  zenPageEventHandler('onload'); }
window.onbeforeunload = function() { return zenPageEventHandler('onunload'); }
window.onresize = function() { zenPageEventHandler('onresize'); }
window.onkeydown = function(event) { return zenPageEventHandler('onkeydown',event); }
window.onkeyup = function(event) { return zenPageEventHandler('onkeyup',event); }
  
//]]>
</script>
</body>
</html>
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38813900
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintDAiMor, в 2007 он только появился
Не совсем точно. Хорошо помню, как в начале сентября 2006 года на традиционном симпозиуме InterSystems (тогда он проходил в ПаркАтлас Отеле) Вадим Федоров презентовал ZEN как уже готовый к использованию продукт. А в ноябре я уже сам его юзал на Cache 5.020. Правда, в любовь не переросло - не понравилось. Возможно, просто не распробовал толком. Но с тех пор больше не пользовался.
...
Рейтинг: 0 / 0
ZEN - победа над рацио
    #38814688
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u78,

А я, честно говоря, не вижу живых альтернатив зену. Наверное потому, что у меня третий брак)
И наверное, потому что я дорожу своим временем, а зен позволяет экономить его наиболее эффективно. Разумеется, если речь идет о каше. Ибо сам по себе он конечно внутренне громоздок и глючен. Но где этого нет?

Может быть вы приведёте конкретный пример того, как зен победил ваш разум? Возможно ситуация не так безнадёжна?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN - победа над рацио
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]