Ich habe eine ASP.NET Web Forms-Seite, die der Referent mit Steuerelementen füllen muss. Diese Interaktion ist etwas empfindlich für den Seitenlebenszyklus und ich frage mich, ob es einen Trick gibt, von dem ich nichts weiß.Entkopplung von Ansicht, Präsentation und ASP.NET Web Forms
Ich möchte über die ganze Sache praktisch sein, aber nicht die Testbarkeit gefährden.
Zur Zeit habe ich dies:
public interface ISomeContract
{
void InstantiateIn(System.Web.UI.Control container);
}
Dieser Vertrag eine Abhängigkeit von System.Web.UI.Control hat, und ich brauche, dass die Lage sein Modell Dinge zu tun, mit der ASP.NET Web Forms-Programmierung. Weder die Ansicht noch der Präsentator kennen jedoch Kenntnisse über ASP.NET-Serversteuerelemente.
Wie kann ich das umgehen? Wie kann ich mit dem ASP.NET Web Forms-Programmiermodell in meinen konkreten Ansichten arbeiten, ohne eine System.Web.UI.Control-Abhängigkeit in meinen Vertragsassemblies zu nehmen?
Um die Dinge ein wenig zu klären, ist diese Art von Schnittstelle alles über UI-Zusammensetzung (mit MEF). Es ist durch den Rahmen bekannt, aber es wird wirklich nur aus der konkreten Sicht aufgerufen. Die konkrete Ansicht ist immer noch die einzige Sache, die ASP.NET Web Forms kennt. Diese öffentlichen Methoden, die InstantiateIn(System.Web.UI.Control)
sagen, sind jedoch in meinen Vertragsassemblys vorhanden, und das bedeutet eine Abhängigkeit von ASP.NET Web Forms.
Ich habe über einen Doppelversandmechanismus oder sogar Besuchermuster nachgedacht, um zu versuchen, um dieses Problem zu arbeiten, aber ich weiß noch nicht, in welche Richtung ich gehen möchte, und ich hätte wirklich gerne etwas dazu.
Warum können die Ansicht und der Präsentator keine Kenntnisse über ASP.NET-Serversteuerelemente haben? –
@Kirk Testbarkeit? wird es nicht schwer sein (fast unmöglich), diese Dinge zu verspotten? –
Könnten Sie bitte http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-net beantworten? – Lijo