2012-03-31 8 views
0

Ich habe eine einzigartige Anforderung, die ich mit Sitecore treffen muss, und ich fragte mich, ob es machbar ist. Der Client verfügt über eine vorhandene .net-Lösung, bei der es sich um ein Webprojekt (Website, nicht Webanwendung) handelt, das auf dem Spring Framework und dem Commerce-Server basiert. Sie möchten nun Sitecore verwenden, um die Bearbeitung von Inhalten auf einigen ihrer Seiten zu ermöglichen. Die Anforderung besteht darin, dass sie die Masterseiten und die allgemeinen Elemente in Sitecore nicht beibehalten möchten, sie möchten jedoch, dass Sitecore die Masterseiten und alle Steuerelemente in der benutzerdefinierten Lösung verwenden kann. Ich habe ihr Projekt überprüft, und sie haben viele Abhängigkeiten von vielen anderen Referenzen und Projekten, und so ist es keine ziemlich einfache Anwendung. Sie möchten die Masterseiten nicht speziell in Sitecore haben, und sie möchten nur Sitecore für die Hauptinhaltsbearbeitung. Sie möchten grundsätzlich, dass alle Layouts in Sitecore ihre Masterseiten verwenden. Ich habe versucht, virtuelle Verzeichnisse zu verwenden und dann die Masterseiten in Sitecore zu verwenden, aber es gibt viel zu viele Abhängigkeiten in ihrem Projekt. Ich habe versucht, sitecore eine Anwendung in seinem eigenen Verzeichnis zu machen, aber es scheint nicht sehr gut zu funktionieren. Ich kann die web.configs so oft ich kann verschmelzen, aber das wird Kopfschmerzen auf den Weg bringen, wenn es Zeit für ein Upgrade ist ... Meine anspruchsvollere Frage ist, ist dies überhaupt machbar, und wenn es einen Weg gibt Ich kann diese Anforderung erfüllen.Merge Sitecore-Projekt mit einem anderen .net-Projekt

Antwort

1

Die ersten Gedanken sind, dass die Verwendung von Masterseiten in Sitecore ein bisschen ein Nichtstarter ist. Es scheint seltsam, solche Anforderungen zu haben und Sitecore bereits vorgeschrieben zu haben.

Drei Ideen in den Sinn kommen.

1) Erwägen Sie, die Lösungen getrennt zu halten und bestimmte Sitecore-Seiten in einer sauberen Sitecore-Standardlösung zu hosten. Verwenden Sie einen Lastenausgleich, um zu bestimmen, welche URLs wohin zeigen. Dieser Ansatz kann viele Nebenwirkungen haben, die mit Sitzungen usw. verbunden sein können.

2) Migrieren Sie die vorhandene Lösung auf Sitecore, wobei Sie Masterseiten durch Sitecore-Layouts und Unterlayouts ersetzen. Gleichzeitig migrieren Sie zu einem Webanwendungsprojekt. Dies ist sehr wahrscheinlich der beste langfristige Ansatz. Die größte Herausforderung wäre die Zuordnung vorhandener Inhalte zu einer Reihe von Vorlagen in Sitecore und verschiedene Refactoring-Funktionen.

3) Verwenden Sie Sitecore als Inhaltsrepository, aber bieten Sie Inhalte aus Ihrer bestehenden Website-Lösung an. Dies wird zahlreiche komplizierende Faktoren aufgrund des Fehlens eines typischen Sitecore-Elements, des Domänenkontexts & haben, der alle durch benutzerdefinierten Code bearbeitet werden müsste. Die Lösungen könnten vollständig getrennt sein und sogar Webdienste verwenden, um Inhalte von Sitecore abzurufen, die von der vorhandenen Lösung bedient werden. Es gibt volle Trennung, aber Sie verlieren einen großen Teil der Sitecore-Funktionalität und enden mit einem teuren Rich-Text-Editor + Datenbank.

Ich würde mich für # 2 wo möglich entscheiden.

1

Ich denke, ich kann ein paar Optionen sehen, wie dies zu tun ist. Ich mache gerade etwas Ähnliches gerade jetzt in einem großen Unternehmensprojekt, wo es eine vorhandene ASP.NET MVC-Anwendung gibt, die den Großteil der Site ausführt. Hier sind einige Optionen, die ich denken kann:

  1. Verwenden Sie eine Sub-Domain für die Sitecore-only Sachen und im Sitecore Content oder tun einen HTTP-GET an den Sitecores Seiten und ziehen Sie den Inhalt in die bestehende App . Z.B. sc.mysite.com ist die Sitecore App. Ich mache das gerade mit MVC und es ist in Ordnung. Von einem Inhaltsmanagement-POV können Redakteure den Seitenbearbeitungsmodus auf den Sitecore-Seiten weiterhin in ihrem Stand-alone-Zustand verwenden, der Inhalt wird jedoch im eingezogenen Zustand auf der Haupt-MVC-Site produziert.

  2. Sitecore kann MasterPages verwenden, es verhindert nur den Zweck der Präsentationsschicht von Sitecore.Im Wesentlichen können Sie Ihr Sitecore-Layout von der MasterPage erben lassen und es funktioniert genau wie jede normale Anwendung mit Vererbung. Ich bin mir der Caching-Implikationen allerdings nicht sicher. Solange Ihre App auf die Sitecore-Assemblys verweist, können Sie die API so lange verwenden, wie sie Teil des Sitecore-Kontexts ist. Wenn Sie mit Masterpages Sitecores Verwenden Sie, stellen Sie sicher, dass Sie mit dem Schlüssel webedit einen Platzhalter hinzufügen-Editor, damit arbeiten: <sc:placeholder key="webedit" runat="server" />