powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / реинжиниринг с помощью cache
25 сообщений из 100, страница 2 из 4
реинжиниринг с помощью cache
    #36522725
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznau , мне больше нравятся понятные изначально по тексту csp-странички...
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36522810
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.То есть мне кажется, что в XML запихивать структуру страницы получается сложнее и непонятней, чем ее просто так написать?
Но люди вроде хвалят, говорят, именно для быстрой разработки хорошо

1. html вроде подмножество xml. Даже с учетом "странности" лэйаута зена, "постигается" его разметка гораздо быстрее, чем html или xsl. Другой вопрос, если у Вас большая практика html-разметки... Мне это не мешает...

2. ZEN - он не про разметку... он, скорее, про Ajax... Вернее, даже про интереснейшую реализацию MVC для http & Cache'.

Контролы убогие, но в реальной работе даже являются некой лакмусовой бумажкой - если их "не хватает", то значит задача поставлена неверно... Такая посылка меня лично выручила раз 100 (если не больше ;)
Редкие (единичные) исключения из этого правила заканчивались, обычно, разработкой новых контролов.

3. В условиях, когда нет заведомо однозначной информации о том, что же, собственно, нужно заказчику. Как инструмент прототипирования zen поспорит с чем угодно... Быстрее можно, разве что, на бумаге нарисовать (и то не всегда - на "простой справочник" с несколькими скалярными полями и парой ссылок на другие справочники, уйдет до 5 минут, при правильных предках, читай - инфраструктуре). Но бумаге клиент склонен верить (а потом утверждать "я совсем не это имел ввиду!"), а тут может сразу пощупать.
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36522831
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего лично мне не хватает в ZEN-е, так это старого доброго ##server. Подо все методы сервера приходится обертки писать... Скукота.

Мож, кто знает, как обращаться из js к серверным методам напрямую в ZEN?
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36522864
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov1. html вроде подмножество xml.
Это не так... Т.е. то, что уже может называться ХТМЛ ИКСМЛем не назать.
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36522895
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovЧего лично мне не хватает в ZEN-е, так это старого доброго ##server. Подо все методы сервера приходится обертки писать... Скукота.

Мож, кто знает, как обращаться из js к серверным методам напрямую в ZEN?
Покажи как ты это делаешь? Что там за "обёртки" у тебя?

Как раз в ЗЕНе-то это выглядит вообще просто. Вызвал метод и все! Без всяких там
Код: plaintext
#srver(...)#

Кстати такая штуковина только в Кащее и есть! ПХПисты с ХТТПРеквестом дрючатся дабы на сервер обратиться, чего-то с него получить...
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36522937
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мой пример...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
/// Просмотр поступлений техники
ClassMethod Shipping() [ Language = javascript ]
{
	id=zenPage.cIdClient(zenPage.idItem)
	if (id=='') {
		alert('Id клиента не определено...')
		return
	}
	zenPage.Go('uch.ZEN.Shipping.cls?id='+id)
}

/// Вернёт Id клиента
ClassMethod cIdClient(Id As %String) As %String [ ZenMethod ]
{
	s o=##class(uch.DAT.Enterprise).%OpenId(Id)
	s id=o.Client.%Id()
	d o.%Close()
	q id
}

Никакой "обёртки". Просто вызов... Просто метод...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36523280
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Без всяких там
Код: plaintext
#server(...)#
Кстати такая штуковина только в Кащее и есть! ПХПисты с ХТТПРеквестом дрючатся дабы на сервер обратиться, чего-то с него получить...
Кстати, Cache тоже с тем же ХТТПРеквестом дрючится, только старательно это скрывает :) Даже когда просто вызов просто метода, то обертка, которой Вы не замечаете, этим самым и занимается.
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36523380
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint , я в курсе что чудес не бывает... Но синтаксис есть синтаксис. У одних он есть... У других его нет.
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525173
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaПокажи как ты это делаешь? Что там за "обёртки" у тебя?

Ваш пример работает для вызова методов ZEN, расположенных на той же странице, откуда идет вызов.
А вот в случае, когда мне нужно вызвать метод не с текущей странички, выглядит это так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ClientMethod jsCheck() [ Language = javascript ]
{
	var p =  1 
	var tmp = zenPage.zenCheck(p);
}

ClassMethod zenCheck(p As %String) As %String [ ZenMethod ]
{
	q ##class(my.Class).serverCheck(p)
}
Вместо того, чтобы сразу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ClientMethod jsCheck() [ Language = javascript ]
{
	var p =  1 
	var tmp = #(##class(my.Class).serverCheck(p))#;
или
	var tmp = #server(my.Class.serverCheck(p))#;
или
	var tmp = #call(my.Class.serverCheck(p))#;
}
В ZEN-е это не прокатывает, к сожалению...
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525237
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какой смысл вызывать методы не той страницы, а другой
если прям так нужно вызывать методы другого класса, можно добавить этот класс в SUPER
либо создать отдельный не визуальный компонент, и на страничке его добавить, и тогда будут доступны его методы через component.Mymethod()

у вас странная идея вызывать методы другого класса, что-то я не знаю языков которые используются для WEB и в них можно было вызвать функции из другого файла, без дополнительного обьявления

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525254
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov , не вижу особой разницы в вызове... Главное что это есть. И оно не дюже геморное...
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525281
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора какой смысл вызывать методы не той страницы
Еще какой!
И причем методы не страниц (это скорее плохой тон), а методы хранимых классов.
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525301
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.автора какой смысл вызывать методы не той страницы
Еще какой!
И причем методы не страниц (это скорее плохой тон), а методы хранимых классов.

тем более, обращаться к методам хранимых классов со стороны браузера, по-моему не очень безопасно будет
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525373
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorа какой смысл вызывать методы не той страницы, а другой
если прям так нужно вызывать методы другого класса, можно добавить этот класс в SUPER
либо создать отдельный не визуальный компонент, и на страничке его добавить, и тогда будут доступны его методы через component.Mymethod()Не часто, но это бывает нужно. Пример: на многих интерфейсах при вводе информации объектов класса "собака" после выбора хозяина нужно вызвать метод рассчитатьПодсказкуДляПособачногоНалога (АйДиХозяина, Известные, Параметры, Псины), который, на основании существующих питомцев и их свойств, а также предполагаемого нового песика, возвращает рекомендацию типа "Желательно взять суку, с весом до 5 кг., короткошерстную. В этом случае налог будет ... руб."

DAiMorу вас странная идея вызывать методы другого класса, что-то я не знаю языков которые используются для WEB и в них можно было вызвать функции из другого файла, без дополнительного обьявленияХм... CSP с этим прекрасно справляется ;)

Впрочем, как я уже пояснил, неудобство это шутошное ;)
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525382
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.И причем методы не страниц (это скорее плохой тон), а методы хранимых классов.О! Наш человек!
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525433
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorтем более, обращаться к методам хранимых классов со стороны браузера, по-моему не очень безопасно будет

А откуда "безопасно", если не секрет? Вопрос, имхо, риторический...
Я больше скажу - Вы их все равно оттуда вызовете... так или иначе... Мне нравится, когда это можно делать при обработке событий на странице, кому-то другому удобнее сделать семислойную архитектуру и послойно вызывать обертки, проверяя при этом черти-что... при том, что за всю безопасность уже с лихвой ответили роли/ресурсы... а вся бизнес-логика зашита в методы на COS (если не так, то нахрена козе баян нам Каше, спрашивается?)
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525490
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
#call()# и #server()# скрытые ajax вызовы динамически создаваемых на стороне Cache страниц. Посмотрите на это с точки сервис-ориентированного приложения. Каждая страница это web-функция с параметрами (ответ в форматах HTML, XML, JSON, text). Вызов любого метода возможен через оберточный класс (например, наследник %СSP.Page) через HTTP-request.
На стороне сервера:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Class csp.anyFunction Extends %CSP.Page {
 ClassMethod OnPage() As %Status {
  s class=$G(%request.Data("class")),method=$G(%request.Data("method"))
  ;!!!ПРОВЕРКИ!!!, например Q:'##class(%Dictionary.CompiledClass).%ExistsId(class) $$$OK и т.д
  m args=%request.Data ;
  d $zobjclassmethod(class,method,args) ;или write 
  Quit $$$OK
 }

На клиентской странице:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<script src="js/jQuery-1.3.2.min.js" type="text/javacript"/><!--write less, do more - есть версия 1.4-->
<script type="text/javascript">
  function btnClick(e){
      var result = $.ajax({
      url: "csp.anyFunction.cls"  //вызов посредника
      ,type: "POST"
      ,data: ({id : this.getAttribute('id')})
      ,dataType: "html",  
     }).responseText;
     //делаем что-нибудь с переменной на клиенте 
     $("#serverResponse").text(result); //например выводим в элемент с id=serverResponse
  }
</script>
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36525501
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в data забыл добавить добавить значения class и method
Код: plaintext
1.
2.
3.
4.
5.
<script type="text/javascript">
 ....
 ,data: {id : this.getAttribute('id'),class:"MyDog",method:"GetDogTaxTips "}
 ...
</script> 
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36526493
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint,

Но это тоже своего рода обертка. ZEN-овский вариант, на мой взгляд, даже приятнее с виду ;)
Хотя и применение, думаю, можно найти. Спасибо.
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36532711
akihito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а импорт данных из фокс про к примеру в cache осуществляется с помощью DeepSee?
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36532735
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akihitoа импорт данных из фокс про к примеру в cache осуществляется с помощью DeepSee?
нет DeepSee совсем для другого предназначен
Создаешь подключение по ODBC, соответственно на сервере с кашей, должен стоять ODBC драйвер для FoxPro, и должно быть настроено в Windows подключение по ODBC к нужному серверу
в портале [Домашняя страница] > [Конфигурация] > [Параметры Объектного/SQL Шлюзов] > [Соединения SQL Шлюза]
после создания подключения в Cache
в портале на главной в столбце управления данными пункт SQL
выбрав слева область, где будут созданы классы и куда будут сохранены данные
выбираешь мастер миграции данных
в мастере указываешь свое подключение, схему(если есть), и выбрать одну или несколько таблиц
на следующей странице лучше переименовать схему, если была [null schema]
после завершения мастера, и завершения миграции данных, в Cache будут все те же таблицы, что и в фоксе, с теми же данными
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36533752
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorпосле завершения мастера, и завершения миграции данных, в Cache будут все те же таблицы, что и в фоксе, с теми же данными
Еще не мешало бы сверить данные с оригиналом после миграции. У меня были случаи, когда не все записи импортировались, хотя идентичная операция с помощью кода Cache (через %SQLGatewayConnection) зачитала из того же DNS-источника все записи.
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36540127
akihito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

устанавливаю ODBC драйвер для FoxPro, в Администратор источников даных для ODBC выбираю этот драйвер и прописываю путь к нужной database.

В Соединения Объектного/SQL Шлюзов пишет "Не найдено ни одного элемента".
что-то еще настраивать?
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36540184
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну правильно его еще нужно добавить
выше есть ссылка Создать новое соединение
там можно будет выбрать настроенный DSN
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
реинжиниринг с помощью cache
    #36540481
akihito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

в форме для нового соединения есть поля Пользователь и Пароль. что туда вводить?
...
Рейтинг: 0 / 0
25 сообщений из 100, страница 2 из 4
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / реинжиниринг с помощью cache
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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