Связывание.NET в [закрытом] установщике

Вот один из подходов, который вы можете попробовать:

import { Component } from '@angular/core';
import { interval } from 'rxjs';
import { take } from 'rxjs/operators';


@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  name = '';
  ngOnInit() {
    interval(500)
    .pipe(
      take(5)
    )
    .subscribe(_ =>
      this.name += 'a'
    );
  }
 }

демо https://stackblitz.com/edit/angular-6pkbhk?file=src%2Fapp%2Fapp.component .ts

В качестве альтернативы вы все еще можете использовать простой старый метод обещаний, который более близко соответствует вашему первоначальному подходу,

  import { Component } from '@angular/core';
  import { interval } from 'rxjs';
  import { take } from 'rxjs/operators';


  @Component({
    selector: 'my-app',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
  })
  export class AppComponent {
    title = '';
    ngOnInit() {

      this.sleep(200)
        .then(() => this.title = 'a')
        .then(() => this.sleep(200))
        .then(() => this.title += 'a')
        .then(() => this.sleep(200))
        .then(() => this.title += 'a')
        .then(() => this.sleep(200))
        .then(() => this.title += 'a')
        .then(() => this.sleep(200))
        .then(() => this.title += 'a')

   // same as 
  /*  let promise: any = this.sleep(delay)
      .then(() => this.title = 'a');

    for (let i = 0; i < 4; i++) {
      promise = promise
        .then(() => this.sleep(delay))
        .then(() => this.title += 'a')
    } */
    }

    sleep(milliseconds) {
      let resolve;
      let promise = new Promise((_resolve) => {
        resolve = _resolve;
      });
      setTimeout(() => resolve(), milliseconds);
      return promise;
    }
  }

demo https: // stackblitz. ком / редактировать / угловой d8ur5y? файл = ЦСИ% 2Fapp% 2Fapp.component.ts

6
задан Bill the Lizard 8 August 2012 в 14:45
поделиться

12 ответов

Я рекомендовал бы установщик 1 МБ или подход "bootstrapper". Если Вы не идете лезвие, большинство машин Windows там теперь имеет 2,0 платформы, уже установленные на них, и получение приложения, загруженного и установленного быстро, обычно находится на большинстве пользовательских умов.

2
ответ дан 10 December 2019 в 02:55
поделиться

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

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

3
ответ дан 10 December 2019 в 02:55
поделиться

Второй. Клиент хочет все функционирование, не помещая руку.

1
ответ дан 10 December 2019 в 02:55
поделиться

Обычно я нахожу все меньше и меньше важным связать платформу.NET моими приложениями. По крайней мере, для 2,0, поскольку это чаще всего устанавливается.

Я сказал бы, хотя это для 3,5, поскольку это не обязательно установлено, могло бы быть лучше включать это с загрузкой для простоты использования.

1
ответ дан 10 December 2019 в 02:55
поделиться

Я думаю Adobe Acrobat, которая имеет загрузку установщика на 1/2 Мбита для начальной загрузки намного большей программы. Acrobat произошел там как один из наиболее загруженных пакетов программного обеспечения там, и они все еще чувствуют себя вынужденными уменьшить размер их начальной загрузки. Microsoft использует этот подход к некоторым их большим пакетам также.

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

1
ответ дан 10 December 2019 в 02:55
поделиться

В то время как я лично ненавижу загрузчики, которые составляют только 0,5 МБ, которые загружают фактическое устанавливаемое содержание позже, потому что Вы не можете заархивировать фактические загруженные файлы установки, я должен был бы сказать, что в этом случае предпочитаю установщик 1 МБ. Время выполнения .NET достаточно распространено, которым это должно быть найдено на большинстве компьютеров. И если это не, это должно прибыть прямо из Microsoft, вместо того, чтобы пытаться сохранить актуальную версию платформы .NET в Вашем установщике. Другая опция, которая распространена с Java IDE, такие как Eclipse и Netbeans, состоит в том, чтобы иметь и версию, которая не идет с J2SDK и версией, которая действительно включает актуальную версию J2SDK.

1
ответ дан 10 December 2019 в 02:55
поделиться

У меня была бы одна установка помещенной один и точно одна часть программного обеспечения на моей машине. Когда мы развертываемся нашим клиентам, мы хотим смочь управлять установкой зависимостей сами.

Править: Обратите внимание, что я говорю о корпоративной среде, где мы централизованно справляемся с развертыванием программного обеспечения на наших клиентах. Я также чувствую этот путь ко мне, но я классифицировал бы меня как продвинутого пользователя, и я вижу встречный аргумент в пользу пользователя среднестатистического американца.

0
ответ дан 10 December 2019 в 02:55
поделиться

У Scott Hanselman недавно было действительно хорошее сообщение в блоге, где он говорил о связывании платформы .NET. Одна вещь также отметить состоит в том, что .net 2.0 был включен в Windows XP SP2, таким образом, актуальная машина должна иметь, по крайней мере, это

0
ответ дан 10 December 2019 в 02:55
поделиться

Я лично предпочел бы знать, что это устанавливало .NET.

Большинство нетехнических людей не будет заботиться и будет раздражаться из-за установщика, который просит, чтобы они нажали больше раз, чем необходимый (Мыслительный процесс пошел бы, "Устанавливают .NET? Что такое .NET? Вы спрашиваете меня, потому что я должен установить его, или потому что я не был должен? Позволяет выбирают случайную опцию" у большого количества людей.)

0
ответ дан 10 December 2019 в 02:55
поделиться

Зарегистрируйте зависимости от платформы и дайте пользователю дополнительное средство установки ее, если у них уже нет ее во время Вашего процесса установки. Это особенно важно, если Вы поставляете через Интернет так или иначе. Если Вы поставляете на CD/DVD, затем любой ценой включают распространяемый файл с Вашим кодом в случае, если у пользователя нет доступа к нему через сеть.

0
ответ дан 10 December 2019 в 02:55
поделиться

Проверьте smallestdotnet, а также новый клиентский материал профиля (в зависимости от Вашей версии)

0
ответ дан 10 December 2019 в 02:55
поделиться

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

0
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

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