Silverlight, веб-приложение Wpf (xbap) или нажимают Once? За и против

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

37
задан Community 23 May 2017 в 12:01
поделиться

10 ответов

Во-первых, я оценил бы, не может ли веб-клиент (идеально MVC+jQuery) сделать задания...

Принятие полного клиента гарантировано:

, Если это - бизнес-приложение, которое требует клиент, я был бы склонен идти с полной платформой и ClickOnce; основное различие здесь (развертывание ре) - то, что клиенту нужно было установить платформу - но мимо этого, развертывание ClickOnce является очень свободной болью. На самом деле создание декларации ClickOnce очень легче , чем Silverlight и т.д., так как IDE сделает почти все это для Вас; просто необходимо разместить файлы где-нибудь (мог быть веб-URL; могла быть сеть UNC).

Это дает Вам очень [еще 111] управление (и питание) в клиенте, а также намного большем диапазоне существующих ресурсов для использования (например, если Вам нужно, можно использовать некоторый код winform прежней версии поверхности WPF). "Требует, чтобы полная платформа" была также одним из самых больших преимуществ: "имеет полную платформу".

необходимо также, возможно, рассмотреть 3,5 "клиентских установки" профиля; не уверенный, насколько широко распространенный это в действительности..., но стоящее знания о.

7
ответ дан Marc Gravell 27 November 2019 в 05:04
поделиться

Вы не сказали - ли это компания только приложение или общественность, сталкивающаяся один. Тот один решит его для Вас.

, Если бы компания только, я пошел бы полным щелчком WPF однажды. Это даст Вам все. Полная платформа не должна быть проблемой. Это - одна установка времени, работающая в фоновом режиме, таким образом, это не что-то, от чего должно зависеть Ваше решение. Недостатки: это работает в Windows только, но если Ваша компания является Windows только, это не должно быть проблемой.

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

, Если это - интернет-приложение, пойдите для Silverlight: это работает под различными операционными системами.

3
ответ дан Abdu 27 November 2019 в 05:04
поделиться

ПРОФЕССИОНАЛЫ по сравнению с Веб-формами ASP.NET

  1. Никакой ViewState или "неожиданное дерьмо" o Это не обращаются к Silverlight также. Silverlight приносит "настольный" опыт конечному пользователю и нет никакого ViewState, который используется в Silverlight.
  2. Более быстрая серверная сторона & клиентская o Silverlight быстрее на клиент-серверной стороне в зависимости от того, как Вы смотрите на него. Silverlight компилируется в подсистеме.NET Silverlight. У Вас есть доступ к многопоточности, LINQ, сложным структурам данных, и т.д. Производительность по сравнению с ASP.NET или приложением AJAX/JavaScript - он времена величин лучше из-за клиентской казни и некоторые объекты, которые обычно обрабатываются в сервере, BLL может быть понижен до клиента
  3. , модель Simplified для нескольких связанных представлений o Silverlight поддерживает полное разделение данных и UI. Взятие этого далее, просто создав отдельные представления для говорит, что другой потребитель Silverlight довольно мощен. Можно применить тот же шаблон MVC/MVP в Silverlight и достигнуть этого уровня абстракции. Jason упоминает пример способности создать отдельное представление для iPhone, и только Компонент представления должен измениться. Это относится к Silverlight также за разные вещи. Например, у меня есть приложение Silverlight крупных размеров, которое я хочу портировать на SharePoint. Я могу создать "Меньшее Представление" для SharePoint, таким образом, он соответствует более хороший UI. Кроме того, Мобильная Silverlight частная протестированный теперь. Я предположил бы, что тот же самый очень мощный уровень абстракции применяется также для создания "Мобильного представления" для приложения Silverlight.
  4. Единица Тестируемая o Silverlight включает платформу Модульного теста также. Это может быть загружено здесь: http://code.msdn.microsoft.com/silverlightut/
  5. проблемы, если Вы не выполняете IIS 7 o Silverlight, НЕ заботятся, не работаете ли Вы на IIS 6 или IIS 7 или Apache в этом отношении. Это - одна функция, где Silverlight имеет преимущество перед ASP.NET MVC.
  6. Клиент, Кэширующийся o В Веб-формах ASP.NET или MVC, Вы кэшируетесь на сервере. Silverlight позволяет Вам кэшироваться на клиенте через Изолированное устройство хранения данных (который может быть увеличен до сотен megs при необходимости). Это позволяет приложениям работать крайний быстро без срывания хостинг-сервер.

НЕДОСТАТКИ по сравнению с Веб-формами ASP.NET

  1. Трудный преобразовать существующий код o Silverlight совершенно другая платформа программирования или, чем ASP.NET WebForms или, чем MVC. Мало того, что много кода не преобразует, также необходимо думать о клиентском слое, и в большинстве случаев полная переархитектура необходима при замене больших модулей в существующем сайте ASP.NET.
  2. НЕ лучшая SEO из Google поля o несколько месяцев назад запущенный spidering SWF файлы и добавление их к поисковой системе. Я думаю, что Silverlight является, вероятно, все еще путями далеко здесь. То, что можно сделать для SEO Silverlight, является основными приемами для описания тегов метаданных действительно хорошо вокруг разъема в.
  3. Доступ к данным o Доступ к данным в Silverlight ограничен сетью Услуги передачи данных Services/WCF/ADO.NET. Вы не можете выполнить прямые вызовы с помощью ADO.NET или хранимых процедур к базе данных.
  4. безопасность o Silverlight работает на клиенте. Много Ваших битов тогда бродит в дикой природе в Интернете. Кроме того, некоторые методы доступа к данным не поддерживают полный WS* стандартная защита. Поэтому вне основанной на сертификате транспортной безопасности, Вы или пишете много своего собственного кода инфраструктуры или ожидания следующей версии. Код XAML в значительной степени небезопасен; не много приложений имеют свою Интеллектуальную собственность в их UI. В Silverlight, которая может быть очень легко перепроектирована с помощью Шпиона Silverlight, например. Silverlight, просто по своей природе, немного менее безопасна, чем приложение MVC ASP.NET. Очевидно, Вы хотели бы шифровать/запутывать свои блоки Silverlight перед отпущением их в дикой природе.
1
ответ дан 27 November 2019 в 05:04
поделиться

Профессионалы

  1. плагин Silverlight означает, что разработчики могут быть нацелены на единственное, последовательное время выполнения для основанных на браузере приложений, вместо того, чтобы иметь дело со сложностью нескольких браузеров в различных версиях. Вы также получаете видео и мультимедийные эффекты, которые трудны или невозможны с чистым HTML и JavaScript, хотя Flash Adobe Systems имеет те же преимущества.
  2. Выполняют код.NET, не развертывая время выполнения.NET. Плагин Silverlight действительно включает время выполнения.NET сокращения, но вместо того, чтобы иметь дело с большой загрузкой и сложностями установщика Windows, у пользователя есть маленькая загрузка приблизительно 4 МБ, все обработанные в браузере. По моему опыту, до сих пор установка является гладкой и легкой.
  3. Производительность обещает. Silverlight выходит хорошо в этом калькуляторе простого числа, спасибо несомненно к JIT-компиляции к собственному коду, хотя это не может выдержать сравнение так хорошо для рендеринга графики.
  4. Поддержка Лунного света означает, что будет официальная реализация с открытым исходным кодом Silverlight, смягчая собственный аспект.
  5. Silverlight интерпретирует XAML непосредственно, тогда как язык GUI Adobe’s XML, MXML, преобразовывается в SWF при компиляции времени. На самом деле страницы XAML включены как ресурсы в скомпилированном.XAP двоичном файле, используемом для развертывания приложений Silverlight..XAP файл является просто ZIP с различным расширением. Это также означает, что поисковые системы могут потенциально текст указателя в рамках приложения Silverlight, как они могут с Flash.
  6. Сторонние поставщики компонента уже хорошо включены с дополнениями Silverlight. Например, Infragistics, ComponentOne и DevExpress.
  7. Берут Ваш межплатформенный код.NET. С Macs, открывающимся везде, способность переместить Visual Basic или код C# межплатформенному, основанному на браузере клиенту Silverlight будет все больше полезна. Очевидно это только относится к существующим разработчикам.NET - я предполагаю, что это - основной рынок для Silverlight, но это - большое. То же относится к следующему вопросу:
  8. Visual Studio Использования. IDE Microsoft’s является зрелой и любимой средой разработки, и так как это - также инструмент для ASP.NET, можно использовать его для серверного кода, а также для клиента Silverlight. Для тех, которые don’t ладят с Visual Studio, SDK Silverlight также поддерживает компиляцию командной строки.
  9. Выбирают Ваш язык. Поддержка нескольких языков была частью.NET с ее начала, и наличие времени выполнения.NET в Silverlight 2.0 означает, что можно кодировать клиентскую логику в C#, Visual Basic, или благодаря Динамическому времени выполнения языка (DLR) Iron Ruby или Iron Python.
  10. Изолированное устройство хранения данных дает приложениям Silverlight локальный доступ к файлу, но только в защищенном месте, характерном для приложения, обеспечивая относительно безопасный способ извлечь эту пользу.

недостатки

  1. , Если Apple won’t даже позволяет Flash на iPhone, что шанс там для Silverlight?
  2. Silverlight является поздней к игре. Flash зрел, хорошо доверяемый и повсеместен. Silverlight 2 только выходит из беты Осенью (мы надеемся). Это - версия, о которой мы заботимся о - тот, который включает время выполнения.NET - и все еще испытает недостаток в поддержке на мобильных устройствах, даже Windows Mobile, хотя это обещано в некоторую неуказанную более позднюю дату.
  3. средства проектирования являются Дизайном Смешения и Выражения Выражения - но кто использует их? Мир дизайна использует Adobe PhotoShop.
  4. При наличии совместимости решения между Смешением Выражения и Visual Studio звучит хорошим, it’s на самом деле стычка, имеющая необходимость использовать два отдельных инструмента, особенно когда там придираются несовместимости, как в текущей бете.
  5. Никакая поддержка популярного видеокодека H.264. Вместо этого видео с высоким разрешением для Silverlight должно быть в VC-1, который менее распространен.
  6. It’s другое усилие продвинуть собственную технологию, а не открытые стандарты.
  7. Да Linux будет поддерживаться через Лунный свет, но когда? Кажется вероятным, что реализация Linux будет всегда отставать от Windows и выпусков Mac.
  8. Silverlight поддерживает веб-сервисы SOAP, или REST предоставил Вам ПОМЕЩЕННОЕ использование don’t, или УДАЛИТЕ, но doesn’t имеют оптимизированный протокол двоичной синхронной передачи данных как Формат сообщения ActionScript (AMF) Adobe’s, который, вероятно, означает более медленную производительность в некоторых сценариях.
  9. Silverlight является решением только для браузера, тогда как Flash может быть развернут для рабочего стола с помощью Adobe Integrated Runtime (AIR). Однако да я видел это.
  10. необходимо разработать в Windows. Это - особенно проблема для средств проектирования Выражения, так как у разработчиков есть непропорционально высокое количество Macs.
1
ответ дан Meta-Knight 27 November 2019 в 05:04
поделиться

Можно добавить к за и против обычного материала онлайн по сравнению с офлайновыми дебатами. Некоторые объекты:

Профессионалы

wpf (офлайн):

  • лучший доступ к низкоуровневым частям компьютера.
  • использование CPU локально, таким образом, у Вас редко есть проблемы загрузки ЦП.
  • не зависимый сети.
  • никакое время простоя для обслуживания.

Silverlight (онлайн):

  • Лучшее управление пользователей. Если Ваши пользователи входят в систему, Вы не должны волноваться с ключами активации или подобным материалом.
  • Это работает над Windows и Mac
  • , можно обновить все пользовательские приложения легко.

я упростил его немного, в списке существуют серые области. Я только переделал XBAP, так, чтобы один я не учел. Недостатки не трудно выяснить после смотрящий на профессионалов.

HTH

0
ответ дан Artur Carvalho 27 November 2019 в 05:04
поделиться

Я рассмотрел бы WPF ClickOnce с синхронизирующей поддержкой платформы ( www.msdn.com/sync ). Это позволило бы Вам поддерживать ограниченную функциональность, когда пользователь не подключен к корпоративной сети (который устранит любые основанные на браузере сценарии развертывания, такие как Silverlight и XBAP).

0
ответ дан Philipp Schmid 27 November 2019 в 05:04
поделиться

Если бы Вам не нужен весь WPF, я попробовал бы, делают это в Silvelight сначала Тогда, можно переключиться на WPF более легко при необходимости в нем позже.

Здесь я думаю, что это применяется, “less является more” принципом: идут it’s, верные, что с WPF Вы имеете намного больше опций и можете получить доступ к компьютеру пользователей, но это может наконец быть больше проблемой, чем справка как времена. Думайте, например, в том, сколько изменений можно должны быть измениться от Windows XP до Vista в приложении, которое использует много “user computer” ресурсы!

0
ответ дан DaniCE 27 November 2019 в 05:04
поделиться

Mark, что Вы имеете в виду при высказывании 'единственного браузера' для XBAP? XBAP действительно работает с Firefox, например. Это действительно требует Платформы.NET, и маловероятно, что у нас будет WPF в Моно где угодно скоро (если когда-либо), таким образом, Вы застрянете с Windows, правильно.

0
ответ дан IgorK 27 November 2019 в 05:04
поделиться

Не щелчок однажды доступный на Firefox в эти дни, через это дополнение: https://addons.mozilla.org/en-US/firefox/addon/1608

0
ответ дан John Rusk 27 November 2019 в 05:04
поделиться

1. Silverlight может получить доступ к DOM со страницы хостинга и
2. страница хостинга может получить доступ к части Silverlight.
Это большой плюс для Silverlight

Но все остальные ограничения требуют WPF / Windows-Forms с доступом к файлу Clickonce
, щелчком правой кнопки мыши, легкостью доступа к БД

1
ответ дан 27 November 2019 в 05:04
поделиться
Другие вопросы по тегам:

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