Fermer

août 28, 2019

Vers un CMS découplé avec .NET Core dans Sitefinity


Dans cet article, je souhaite vous donner un aperçu de notre vision de la manière dont Sitefinity peut être utilisé pour développer et diffuser rapidement des expériences multicanaux à l'aide de .NET Core MVC.

Pourquoi ASP.NET Core?

ASP. NET est une infrastructure de développement Web populaire permettant de créer des applications Web sur la plate-forme .NET. .NET Core est la version Open Source d’ASP.NET, fonctionnant sous macOS, Linux et Windows. .NET Core, qui a été publié pour la première fois en 2016, est une refonte des versions antérieures d'ASP.NET exclusivement basées sur Windows.

Il permet aux développeurs de fournir des API rapidement, dispose d'outils pour simplifier les processus de développement et nous prévoyons de l'ajouter à Sitefinity. .

Sitefinity Today

Regardons Sitefinity aujourd'hui. Il s'agit d'un CMS traditionnel puissant avec des fonctionnalités sans tête:

Fonctionnalités de CMS traditionnelles permettant aux créateurs de sites Web de tirer parti de la technologie côté serveur

Un CMS sans tête permettant aux développeurs de créer de riches applications côté client

«Plus» sans tête

  • Éditeur de contenu WYSIWYG
  • Modèles de mise en page
  • Paquets de ressources
  • API REST pour le contenu
  • Interface utilisateur d'administration construite sur le dessus
  • Cycle de vie et flux de travail
  • Autorisations
  • Code de prévisualisation et éléments créés par les éditeurs de contenu parallèle dans l'environnement de transfert

Pour vous offrir le meilleur de tous les mondes (le traditionnel et les puissantes API REST), nous allons découpler l'interface et la déplacer vers .NET Core ce qui permettra de communiquer avec ces puissantes API.

Notre stratégie

L’architecture d’hébergement Sitefinity repose aujourd’hui sur deux niveaux. Le niveau 1 héberge des services de base de données. Le niveau 2 héberge les services principaux, qui répondent aux demandes d’édition de contenu, ainsi que le moteur de rendu des pages, qui sert les demandes de l’utilisateur frontal.

Nous envisageons de passer à une architecture à trois niveaux, dans laquelle les niveaux 2 et 3 communiquent avec un. autre via REST:

Niveau 1

Niveau 2

Niveau 3

Services de base de données

Administrateur Backend

Services frontaliers

Les avantages d’un système à trois niveaux architecture:

  • Développement plus rapide – Personnalisez l'interface sans avoir à gérer l'arrière-plan
  • Mises à niveau plus faciles – Toutes les personnalisations seront isolées afin que les services d'arrière-plan puissent être mis à niveau rapidement
  • Isolement entre site Web et administration – Augmente la sécurité et la fiabilité du système
  • Extensibilité pour les autres moteurs de rendu et IDE – Grâce à l'application frontend basée sur .NET Core, les administrateurs informatiques peuvent héberger l'application sur toute plate-forme prise en charge par .NE. T Core.
  • Évolutivité moins coûteuse – L'application frontale sera beaucoup plus petite et légère, nécessitant moins de ressources pour s'exécuter. Lorsque vous effectuez une mise à l'échelle, vous pouvez utiliser des machines moins puissantes.

Concrètement, imaginez que vous deviez modifier un widget. Dans une architecture à deux niveaux, le backend et le frontend s'exécutant dans le même processus, vous devez redémarrer tout le système et attendre la réinitialisation.

Dans un scénario à trois niveaux, lorsque vous déployez ou exécutez l'application pour voir le résultat, il vous suffit de redémarrer le client. Les processus back-end restent opérationnels tout au long.

Avantages liés à l'évolutivité

Dans une architecture à deux niveaux, si vous êtes confronté à une charge utilisateur importante et que vous devez faire évoluer votre système, vous devez dupliquer l'application sur le prochain noeud que vous souhaitez ajouter. Cela signifie qu'il faut redimensionner l'avant et l'arrière-plan, car ils vivent dans la même application.

Sur trois niveaux, vous avez différentes applications hébergées dans des environnements distincts, ce qui signifie que vous ne pouvez adapter que ce dont vous avez besoin, quand vous en avez besoin.

Prochaines étapes – Améliorations supplémentaires

Les prochaines étapes que nous envisageons de rendre découplées incluent: :

  • Framework de développement de widgets ASP.NET Core
  • Concepteurs prêts à l'emploi pour les widgets basés sur Angular 2
  • Rendu et éditeur de pages basés sur .NET Core
  • API REST de mise en page
  • Backend personnalisation mise en œuvre sous forme de microservices

Restez à l'écoute lorsque nous lançons ces nouvelles améliorations intéressantes dans les prochaines versions de Sitefinity! www.progress.com/sitefinity-cms et https://www.progress.com/documentation/sitefinity-cms




Source link