RIA по сравнению с RCP

Вы должны проверить CTE: https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server -2017

Более конкретно: Выбрать первую строку в каждой группе GROUP BY?

Используйте этот запрос для выбора верхней строки по группе, после чего вы можете присоединиться.

В качестве альтернативы вы можете использовать подзапрос:

SELECT
    date_diff(
        some_date,
#subquery - min date or whatever
        SELECT MIN (...) FROM "x" AS "x2" WHERE "x2"."id"="x1"."id" 
    )
FROM "x" AS "x1"

6
задан paweloque 20 April 2009 в 14:16
поделиться

9 ответов

Нет подробностей о требованиях вашего приложения, которые действительно имеют ключевое значение для ответа на вопрос.

Большой выигрыш для использования GWT - это простота развертывания по сравнению с чем-то вроде RCP. Для пользователя нет ничего проще, чем навести веб-браузер на URL-адрес, и для операционной команды нет ничего проще, чем отправить код на сервер, отскочить и вызвать его за день.

Что касается функциональности, то это большая область, где GWT если коротко, будут более богатые визуализации данных: диаграммы, дерево / узел, сетевые диаграммы и т. д. Это возможно с GWT и некоторой помощью на сервере, но ограничения DHTML начинают проявляться даже с таким мощным инструментарием, как GWT. С другой стороны, RCP предоставляет вам все возможности Java 2D для визуализации всего, что вы хотите. Эти виды функций могут вам и не понадобиться, но они также делают приложения по-настоящему интересными, и представляют собой нечто большее, чем просто беспорядок в виде вкладок, дерева и элементов управления сеткой данных.

Я разрабатывал с Adobe Flex несколько Прошло много лет, и он оказался действительно мощным, обладающим более или менее теми же преимуществами развертывания, что и GWT, но предлагающим такую ​​же мощность, что и RCP. Возможно, вы тоже захотите это проверить.

RCP дает вам полную мощь Java 2D для визуализации всего, что вы хотите. Эти виды функций могут вам и не понадобиться, но они также делают приложения действительно интересными, а не просто путаницей вкладок, дерева и элементов управления сеткой данных.

Я разрабатывал с Adobe Flex несколько Прошло много лет, и он оказался действительно мощным, обладающим более или менее теми же преимуществами развертывания, что и GWT, но предлагающим такую ​​же мощность, что и RCP. Возможно, вы тоже захотите это проверить.

RCP дает вам полную мощь Java 2D для визуализации всего, что вы хотите. Эти виды функций могут вам и не понадобиться, но они также делают приложения действительно интересными, а не просто путаницей вкладок, дерева и элементов управления сеткой данных.

Я разрабатывал с Adobe Flex несколько Прошло много лет, и он оказался действительно мощным, обладающим более или менее теми же преимуществами развертывания, что и GWT, но предлагающим такую ​​же мощность, что и RCP. Возможно, вы тоже захотите это проверить.

обладать более или менее теми же преимуществами развертывания, что и GWT, но предлагать ту же мощность, что и RCP. Возможно, вы тоже захотите это проверить.

обладать более или менее теми же преимуществами развертывания, что и GWT, но предлагать ту же мощность, что и RCP. Возможно, вы тоже захотите это проверить.

7
ответ дан 8 December 2019 в 04:31
поделиться
//PLEASE COMMENT IF YOU FIND BUGS OR SUGGEST IMPROVEMENTS


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace MustHaveAttributes
{
 [AttributeClass ( "Yordan Georgiev", "1.0.0" )] 
 class Program
 {


 static void Main ( string [] args )
 {
  bool flagFoundCustomAttrOfTypeAttributeClass = false; 
  Console.WriteLine ( " START " );

  // what is in the assembly
  Assembly a = Assembly.Load ( "MustHaveAttributes" );
  Type[] types = a.GetTypes ();
  foreach (Type t in types)
  {
   object[] arrCustomAttributes = t.GetCustomAttributes ( true );


   if (arrCustomAttributes == null || arrCustomAttributes.GetLength ( 0 ) == 0)
   {
    //DO NOT CHECK IN
    ExitProgram ( t, "Found class without CustomAttributes" );
   }


   foreach (object objCustomAttribute in arrCustomAttributes)
   {
    Console.WriteLine ( "CustomAttribute for type  is {0}", t );
    if (objCustomAttribute is AttributeClass)
     flagFoundCustomAttrOfTypeAttributeClass = true; 
   }

   if (flagFoundCustomAttrOfTypeAttributeClass == false)
   { //DO NOT CHECK IN 
    ExitProgram ( t, "Did not found custom attribute of type AttributeClass" );
   }
   Console.WriteLine ( "Type is {0}", t );
  }
  Console.WriteLine ("{0} types found", types.Length );

  //NOW REQUIREMENTS IS PASSED CHECK IN
  Console.WriteLine ( " HIT A KEY TO EXIT " );
  Console.ReadLine ();
  Console.WriteLine ( " END " );
 }



 static void ExitProgram ( Type t, string strExitMsg  )
 {

  Console.WriteLine ( strExitMsg );
  Console.WriteLine ( "Type is {0}", t );
  Console.WriteLine ( " HIT A KEY TO EXIT " );
  Console.ReadLine ();

  System.Environment.Exit ( 1 );

 }
} //eof Program


//This will fail even to compile since the constructor requires two params
//[AttributeClass("OnlyAuthor")]  
//class ClassOne
//{ 

//} //eof class 


////this will not check in since this class does not have required custom
////attribute
//class ClassWithoutAttrbute
//{ }



[AttributeClass("another author name " , "another version")]
class ClassTwo
{ 

} //eof class


[System.AttributeUsage ( System.AttributeTargets.Class |
 System.AttributeTargets.Struct, AllowMultiple = true )]
public class AttributeClass : System.Attribute
{

 public string MustHaveDescription { get; set; }
 public string MusHaveVersion { get; set; }


 public AttributeClass ( string mustHaveDescription, string mustHaveVersion )
 {
  MustHaveDescription = mustHaveDescription;
  MusHaveVersion = mustHaveVersion;
 }

} //eof class 

} // eof namespace

Что касается нас, Eclipse хорош как среда разработки (для Java у нас нет опыта работы с другими языками), но усилия, которые они вкладывают в отделение IDE от GUI (чтобы сделать возможным RCP), не вполне закончено.

С другой стороны, jQuery кажется специально созданным для такого рода вещей (возможно, потому что он был специально создан для такого рода вещей). И разработка, и запуск приложений очень хороши.

3
ответ дан 8 December 2019 в 04:31
поделиться

Rich internet applications is a good way to make robust software that act like traditional desktop software. One common problem with RIA is that many developers tend to place business logic in the client side code. Business logic and states in the client-side code is very insecure as one can manipulate the client-side code in run time. Additionally, it is a whitebox system, which allows hackers to examine the code and find weaknesses, such as input validation done only in the client side code or manipulating states. Don't be fooled by obfuscation, as it only slows down a hacker, but doesn't stop him. Billy Hoffman wrote a good book about AJAX security (called, ta-daa, "Ajax security") and I recommend it for every RIA developer.

This doesn't mean that RIA is by definition bad, you can write secure RIA if you know what you are doing (no business logic in client side code, no states, input validation [also] done on server side etc). There are a couple of frameworks which implement this securer server driven RIA, one is IT Mill toolkit (based on GWT) and ICEFaces should also be one to my knowledge.

3
ответ дан 8 December 2019 в 04:31
поделиться

Организация, в которой я работал, выбрала RCP, потому что их пользователям нужно было работать с приложением как в сети, так и в автономном режиме (когда они на дороге и тд). Я знаю, что теперь это возможно с Google Grears, но на самом деле Gears не достаточно распространен, чтобы крупные организации могли использовать его в качестве основного продукта. Но если у ваших пользователей нет необходимости выходить в автономный режим, вы действительно избавите себя от необходимости синхронизировать пользовательские данные / обновления продукта между вашим приложением rcp и сервером, и в этом случае RIA будет подходящим вариантом.

1
ответ дан 8 December 2019 в 04:31
поделиться

Проверить версию, которую вы связываете во время компиляции (ваш файл ссылка) и версия, которая используется во время выполнения (сначала посмотрите в GAC, затем локально)

Обычно версия в GAC отличается от версии, которую вы используете в качестве ссылки на файл. Пожалуйста, проверьте это.

Также очистите ASP. тогда выбор предоставлен.

С RCP и верстаком не так легко работать, но вы получите много бесплатно, если приложение получит выгоду от более «свободной» и открытой рабочей модели с несколькими открытыми представлениями / редакторами и т. Д.

Если приложение для более случайных задач, тогда GWT действительно хорош.

GWT действительно хорош, , но это все еще веб-приложение, и это иногда отстой. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

С RCP и верстаком не так легко работать, но вы получите много бесплатно, если приложение получит выгоду от более «свободной» и открытой рабочей модели с несколькими открытыми представлениями / редакторами и т. Д.

Если приложение для более случайных задач, тогда GWT действительно хорош.

GWT действительно хорош, , но это все еще веб-приложение, и это иногда отстой. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

С RCP и верстаком не так легко работать, но вы получите много бесплатно, если приложение получит выгоду от более «свободной» и открытой рабочей модели с несколькими открытыми представлениями / редакторами и т. Д.

Если приложение для более случайных задач, тогда GWT действительно хорош.

GWT действительно хорош, , но это все еще веб-приложение, и это иногда отстой. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

но вы получите много бесплатно, если приложение получит выгоду от более «бесплатной» и открытой рабочей модели с несколькими открытыми представлениями / редакторами и т. д.

Если приложение предназначено для более случайных задач, то GWT действительно хорош.

GWT действительно хорош, , но все же это веб-приложение, и это иногда отстой. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

но вы получите много бесплатно, если приложение получит выгоду от более «бесплатной» и открытой рабочей модели с несколькими открытыми представлениями / редакторами и т. д.

Если приложение предназначено для более случайных задач, то GWT действительно хорош.

GWT действительно хорош, , но все же это веб-приложение, и это иногда отстой. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

и открытая рабочая модель с несколькими открытыми представлениями / редакторами и т. д.

Если приложение предназначено для более случайных задач, то GWT действительно хорош.

GWT действительно хорош, , но он все еще веб-приложение, и это отстой иногда. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

и открытая рабочая модель с несколькими открытыми представлениями / редакторами и т. д.

Если приложение предназначено для более случайных задач, то GWT действительно хорош.

GWT действительно хорош, , но он все еще веб-приложение, и это отстой иногда. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

но это все же веб-приложение, и это иногда отстой. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

но это все же веб-приложение, и это иногда отстой. Я бы не хотел делать всю свою работу в веб-приложении, где я мог бы случайно нажать клавишу и потерять всю свою работу и сеанс. (У моей клавиатуры даже есть клавиша рядом с клавишами со стрелками, которую невозможно отключить). Он достаточно мощный, он делает практически все, что вы можете делать в RCP, но он все еще работает в веб-браузере, и это может раздражать.

Помните, что вы можете использовать java Webstart для развертывания приложений RCP.

7
ответ дан 8 December 2019 в 04:31
поделиться

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

0
ответ дан 8 December 2019 в 04:31
поделиться

По моему опыту, графические интерфейсы RIA, как правило, достаточно надежны, чтобы передавать большую часть информации пользователям. Возможно, есть некоторые исключения из этого, но сейчас я не могу придумать хорошего. Преимущество RIA в том, что он доступен любому через веб-браузер без установки толстого клиента (RCP). Если у вас нет специального сложного дисплея, который нельзя сделать с помощью веб-технологий, я бы порекомендовал пойти по маршруту RIA.

3
ответ дан 8 December 2019 в 04:31
поделиться

Существует также возможность развертывания RCP с некоторыми из преимуществ RIA. Одним из решений, которое исследуется для нашего клиента (для использования исключительно сотрудниками их компании), является использование Java-приложения, запускаемого через сервлет Java.

Определенные преимущества включают в себя:

  • Он легко обновляется, во многом как RIA (просто повторно разверните свой JAR-файл, он будет выбран в следующий раз, когда в любой момент перейдет на страницу с апплетом)
  • Он выглядит, чувствует, ведет себя и работает как собственное приложение, во многом как RCP (благодаря SWT)

Некоторые выявленные недостатки включают в себя:

  • На компьютерах пользователей должен быть установлен плагин Java.
  • Приложение должно быть разработано в версии Java, совместимой с пользователями. плагины (хотя клиент может потребовать установки минимальной версии на компьютеры персонала). Инструмент RetroWeaver может помочь, хотя у меня нет особого опыта работы с ним.
  • Пользователь должен держать веб-браузер открытым, в противном случае приложение будет закрыто.
1
ответ дан 8 December 2019 в 04:31
поделиться

Моя важная коллега работает над программным устройством, где она использовала AJAX в качестве средства для настройки устройства. Набор функций для конфигурации богат и очень хорошо согласуется с RIA. Кроме того, крайне нежелательно устанавливать программное обеспечение локально в веб-браузере.

0
ответ дан 8 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: