Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Wax
Thema: C# Skript zur Laufzeit laden und Methode aus Skript aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@BerndFfm: Mit welchem "Scripting-Host" werden die Skripte denn geladen bzw. ausgeführt und unterstützt du das Laden von 3rd Party Libraries (durch Referenzen auf die Assemblies) oder muss sich das Skript da selbst drum kümmern?

Thema: C# Skript zur Laufzeit laden und Methode aus Skript aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@T-Virus: Aktuell wäre der Plan, zur Laufzeit an einer bestimmten Stelle im Code nach [BestimmterOrdner]\[BestimmterDateiname].cs zu suchen. Falls diese Datei existiert, sollte ein ScriptingHost die Datei laden und eine gewünschte (hoffentlich vorhandene Methode) ausführen.

Der Kunde könnte im Endeffekt selbst Hand anlegen und z.B. hauseigene Bibliotheken zur Ver-/Entschlüsselung von Inhalten zwischen schalten.

Das mit dem Scripting ist nur aufgekommen, da das Produktmanagement meint, es wäre für die Kunden bzw. unsere Consultants einfacher mal eben in einer kundenspezifischen Programmierung ein Skript anzupassen, anstatt eine DLL zu kompilieren.

Ich selbst bin ein Freund der Plug-in Lösung. Allerdings kann ich auch die Einfachheit der Skript-Lösung nachvollziehen.

Thema: C# Skript zur Laufzeit laden und Methode aus Skript aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich bin soeben über "CS-Script" gestolpert.
Das könnte mich schon ein ganzes Stück weiter bringen, wenn es hält was es verspricht.

Ich muss mir das mal anschauen...

Thema: C# Skript zur Laufzeit laden und Methode aus Skript aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für die bisherigen Antworten!

@Abt: Bisher wurden diese Probleme tatsächlich mit VB-Script gelöst. Da gab es keine Assemblies die in App-Domains geladen werden und OOP bis ans Limit.

Da das Kernprodukt in C# entwickelt wurde und die meisten Entwickler innerhalb der Firma auch C# beherrschen, wollte man am liebsten in dieser Sprache bleiben.

Vielleicht ist der Ansatz aber auch einfach verkehrt. Ich versuche das ursprüngliche Problem mal zu schildern...

Innerhalb des C# Codes gibt es Stellen die, falls eine Implementierung für diese Stelle/Hook existiert, diese Implementierung dann auch durchlaufen werden soll. Quasi nach dem Motto: Wurde ein Handler für diesen Hook gefunden, dann rufe ihn auf und lass ihn arbeiten. Die Signaturen dieser "Erweiterungspunkte" wären wohl definiert und die Entwickler würden sich an die Konventionen halten und somit könnte die Hauptanwendung die Methode innerhalb des "Erweiterungsskriptes" finden und aufrufen. Leider sind diese "Erweiterungsskripte", wie immer, abhängig von anderen Assemblies.

Von daher sehe ich inzwischen eigentlich nur noch die Plug-in Lösung. Also die Entwickler sollen bitte sehr DLLs in nen bestimmten Ordner werfen und die Hauptanwendung scannt diese Ordner nach verwendbaren Modulen.

Thema: C# Skript zur Laufzeit laden und Methode aus Skript aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich muss wohl etwas weiter ausholen merke ich gerade....

Innerhalb des Skripts, sollen andere Entwickler ihren C# Code ausführen können, der wiederum auf andere 3rd Party Bibliotheken zurückgreifen muss.

Jetzt habe ich Ansätze wie die Roslyn Scripting API gesehen, die Code Zeile für Zeile ausführt.
Dadurch würden zur Laufzeit ja nicht automatisch die benötigten 3rd Party Assemblies geladen werden oder etwa doch?

Muss ich vielleicht doch lieber eine Assembly per AssemblyResolver als Plug-in laden und aufrufen anstatt ein Skript zu laden?

Die Skript Variante erschien mir Anfangs attraktiv, da so die anderen Entwickler für Anpassungen nicht immer erst eine Plug-in DLL kompilieren müssten, sondern den Skript-Code "mal eben" anpassen und sofort laufen lassen könnten.

Thema: C# Skript zur Laufzeit laden und Methode aus Skript aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Guten Tag,

ich schaue mich gerade nach einer Möglichkeit um, mit der ich zur Laufzeit ein externes C#-Skript (liegt im Dateisystem in einem zugreifbaren Ordner) laden und Methoden innerhalb dieses Skripts ausführen kann.

Also z.B. würde das Skript folgende Methode enthalten, die ich gerne zur Laufzeit aufrufen würde:


public Task<object> Execute(object parameter) {}

Nun finde ich Beiträge im Netz von 2010, in denen z.B. der Typ Microsoft.CSharp.CSharpCodeProvider verwendet wird um den Code zu laden und on-thy-fly zu kompilieren.

Ist es aktuell immer noch der Weg den man gehen sollte oder hat sich in der Zwischenzeit da etwas getan und ich würde auf das falsche, schlecht gealterte, Pferd setzen? Vielleicht gibt es inzwischen bessere (Standard-) Bibliotheken?

Gruß

Thema: WiX Installer: Custom Action soll installierte Datei lesen (inkl. rollback bei Fehler)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich möchte in meinem Setup Projekt in einer Custom Action den Inhalt einer (durch den Installer) installierten Datei lesen und verwenden. Wenn bei dieser Custom Action ein Fehler auftritt, möchte ich die komplette Installation des Produkts rückgängig machen, also das es später nicht unter den installierten Programmen erscheint.

Ich habe nun das Problem das ich den Inhalt der Datei erst nach dem "InstallFinalize" event von der Platte lesen kann und wenn ich nun die Custom-Action einen Fehler werfen lasse, hat das keine Auswirkung auf die Installation. Sprich, die Dateien bleiben an Ort und Stelle und es erscheint natürlich auch unter den installierten Programmen.

Laut Doku wird mein gewünschtes Verhalten anscheinend auch nicht unterstützt.

Nun hoffe ich auf viele pfiffige Entwickler, die es vielleicht doch irgendwie hinbekommen haben oder 'nen Workaround gefunden haben?


Gruß
wax

Thema: WCF WSDL Definition wird nur per https veröffentlicht
Am im Forum: Netzwerktechnologien

Bringt leider keine Besserung.

Hier nochmal die Auszüge aus der web.config Datei:


<behaviors>
    <endpointBehaviors>
        <behavior name="webServiceEndpointBehavior">
            <AuthenticationBehaviorExtensionElement />
            <FluentValidationBehaviorExtensionElement />
        </behavior>
    </endpointBehaviors>
    <serviceBehaviors>
        <behavior name="serviceBehavior">
            <serviceDebug includeExceptionDetailInFaults="true" />
            <serviceMetadata httpGetEnabled="true" />
        </behavior>
    </serviceBehaviors>
</behaviors>

<bindings>
    <basicHttpBinding>
        <binding name="http" textEncoding="utf-8">
            <security mode="TransportCredentialOnly">
                <message clientCredentialType="UserName" />
            </security>
        </binding>
    </basicHttpBinding>
</bindings>

<service name="FancyController" behaviorConfiguration="serviceBehavior">
    <endpoint name="fancy_httpEndpoint" behaviorConfiguration="webServiceEndpointBehavior" address="" binding="basicHttpBinding" bindingConfiguration="http" contract="IFancyControllerDTO" />
    <endpoint name="fancy_httpMetadataEndpoint" address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
        <baseAddresses>
            <add baseAddress="http://localhost:8082/Controllers/FancyController.svc"/>
        </baseAddresses>
    </host>
</service>

Thema: WCF WSDL Definition wird nur per https veröffentlicht
Am im Forum: Netzwerktechnologien

Eine http-Bindung wurde im IIS konfiguriert.
Der eigentliche Service-Endpoint verwendet binding="basicHttpBinding" und eine bindingConfiguration mit den http Security-Settings.


OT: Der Kunde will...


Gruß
wax

Thema: WCF WSDL Definition wird nur per https veröffentlicht
Am im Forum: Netzwerktechnologien

Sorry für die fehlende Information.
Ja es handelt sich um einen per IIS (10) gehosteten Service.

Gruß
wax

Thema: WCF WSDL Definition wird nur per https veröffentlicht
Am im Forum: Netzwerktechnologien

Guten Tag,

ich habe einen WCF Service (gehostet auf einem IIS 10) und dieser stellt auch seine Metadaten mittels WSDL bereit.


<serviceBehaviors>
    <behavior name="serviceBehavior">
        <serviceMetadata httpsGetEnabled="true" httpGetEnabled="true" />
    </behavior>
</serviceBehaviors>

Die Security Settings für das basicHttpBinding sehen folgendermaßen aus:

<security mode="TransportWithMessageCredential">
    <message clientCredentialType="UserName" />
</security>

Mein Service hat folgenden Metadaten-Endpunkt konfiguriert:

<endpoint name="service_httpMetadataEndpoint" address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

Das funktioniert über https wunderbar!

Nun zum Problem:
Jetzt würde ich aber gerne nur http verwenden (also ohne SSL).

Also setze ich httpsGetEnabled="false" und die Security-Settings auf:

<security mode="TransportCredentialOnly">
    <message clientCredentialType="UserName" />
</security>

Ich habe gehofft, dass mir trotzdem noch der http Zugang zur WSDL Definition bleibt, nur leider ist dem nicht so. Unter "myService.svc?wsdl" finde ich dann plötzlich nichts mehr.

Hat jemand eine Ahnung warum dann plötzlich kein ?wsdl Aufruf mehr möglich ist, obwohl httpGetEnabled="true" gesetzt ist.

edit: Es wird dann plötzlich nur noch diese URL vorgeschlagen: "http://[servername]/myService.svc/mex"

Gruß
wax

Thema: [gelöst] Multiple File Upload via WCF SOAP Endpoint (MTOM) und SoapUI
Am im Forum: Netzwerktechnologien

Ich habe es hinbekommen und es lag tatsächlich an der Art und Weise wie das SOAP-XML in SoapUI definiert wird. Wenn man in SoapUI ein Attachment hinzufügt, dann wird eine ContentID vergeben.

Und genau diese ContentID musste einfach gleich sein zu dem dazugehörigen PART Eintrag:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="www.tempuri.org" xmlns:bgp="http://schemas.datacontract.org/2004/07/WSController.Models">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:UploadMultipartDocument>
         <!--Optional:-->
         <tem:multipartDocument>
            <bgp:Parts>
               <bgp:DocumentPart>
                  <bgp:Name>part1.xml</bgp:Name>
                  <bgp:PartData>cid:part1.xml</bgp:PartData>
               </bgp:DocumentPart>
               <bgp:DocumentPart>
                  <bgp:Name>part2.xml</bgp:Name>
                  <bgp:PartData>cid:part2.xml</bgp:PartData>
               </bgp:DocumentPart>
            </bgp:Parts>
         </tem:multipartDocument>
      </tem:UploadMultipartDocument>
   </soapenv:Body>
</soapenv:Envelope>

Attachments in SoapUI:
part1.xml mit PART="part1.xml" und ContentID="part1.xml"
part2.xml mit PART="part2.xml" und ContentID="part2.xml"

Für den Request sind außerdem natürlich noch EnableMTOM und ForceMTOM auf true zu setzen.

Gruß
wax

Thema: [gelöst] Multiple File Upload via WCF SOAP Endpoint (MTOM) und SoapUI
Am im Forum: Netzwerktechnologien

Hier der ServiceContract:


    [ServiceContract(Namespace = "www.tempuri.org")]
    public interface IMultipartDocumentsService
    {
        [OperationContract(Name = "UploadMultipartDocument")]
        void UploadMultipartDocument(MultipartDocument multipartDocument);
    }


Die dazugehörigen Models:


[DataContract]
public class MultipartDocument
{

    [DataMember(IsRequired = true)]
    public string ID
    {
        get;
        set;
    }

    [DataMember(IsRequired = true)]
    public string CreationDate
    {
        get;
        set;
    }


    [DataMember(IsRequired = true)]
    public string Name
    {
        get;
        set;
    }

    [DataMember(IsRequired = true)]
    public Collection<DocumentPart> Parts
    {
        get;
        set;
    }

    public MultipartDocument()
    {
        Parts = new Collection<DocumentPart>();
    }

}



[DataContract]
public class DocumentPart
{

    [DataMember(IsRequired = true)]
    public string Name
    {
        get;
        set;
    }

    [DataMember(IsRequired = true)]
    public byte[] PartData
    {
        get;
        set;
    }

}


Hier das dazugehörige Binding:

<basicHttpBinding>
    <binding name="httpsWithMtom" messageEncoding="Mtom" textEncoding="utf-8">
        <security mode="TransportWithMessageCredential">
            <message clientCredentialType="UserName"/>
        </security>
    </binding>
 </basicHttpBinding>

Gruß
wax

Thema: [gelöst] Multiple File Upload via WCF SOAP Endpoint (MTOM) und SoapUI
Am im Forum: Netzwerktechnologien

Hi zusammen,

danke erstmal für die bisherigen Antworten!

Es muss nicht unbedingt per Stream gemacht werden.

Ich habe jetzt eine Variante, in der mehrere Dateien gleichzeitig geschickt werden könnten.
Hier mal ein Beispiel Aufruf, wie ich ihn aus SoapUI heraus abschicken möchte:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="www.tempuri.org" xmlns:bgp="http://schemas.datacontract.org/2004/07/WSController.Models">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:UploadMultipartDocument>
         <!--Optional:-->
         <tem:multipartDocument>
            <bgp:Parts>
               <bgp:DocumentPart>
                  <bgp:Name>part1.xml</bgp:Name>
                  <bgp:PartData>cid:794981264365</bgp:PartData>
               </bgp:DocumentPart>
               <bgp:DocumentPart>
                  <bgp:Name>part2.xml</bgp:Name>
                  <bgp:PartData>cid:123481264365</bgp:PartData>
               </bgp:DocumentPart>
            </bgp:Parts>
         </tem:multipartDocument>
      </tem:UploadMultipartDocument>
   </soapenv:Body>
</soapenv:Envelope>

In SoapUI wird mir angezeigt, dass die beiden Attachments vom Typ "XOP" sind, also glaube ich erstmal in Ordnung.

Auf Service Seite wirft der XmlMtomReader jetzt die Exception "Ein MIME-Abschnitt mit der Content-ID "cid:794981264365" konnte nicht gefunden werden."

Also entweder schnürt SoapUI das Gesamtpaket nicht korrekt oder ich habe noch ein tieferliegendes Problem.

Gruß
wax

Thema: [gelöst] Multiple File Upload via WCF SOAP Endpoint (MTOM) und SoapUI
Am im Forum: Netzwerktechnologien

Hallo,

Ich habe einen WCF Service der es ermöglicht Dateien hochzuladen. Nun habe ich die Anforderung bekommen, dass die Dateien am besten mittels MTOM Encoding hochgeladen werden sollen und am besten 3 Dateien in einem Request. Der Endpunkt der sich um den Upload kümmert, hat als Binding Parameter das MessageEncoding mit MTOM eingerichtet. Jetzt frage ich mich ob ich im dazugehörigem ServiceContract einfach eine Collection von Streams verwenden kann oder ob es eine Collection von Byte Arrays sein muss, um mehrere MTOM Attachments gleichzeitig entgegennehmen zu können.

Kennt sich da jemand vielleicht mit aus?

Gruß
wax

Thema: Pfade aus der Entwicklungsumgebung in Assembly
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielen Dank an alle Beteiligten.

Es waren tatsächlich .pdb Dateien mit im Deployment.

Gruß
wax

Thema: Pfade aus der Entwicklungsumgebung in Assembly
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi Coffeebean,

also auf andere Projekte innerhalb meiner Solution verlinke ich über "Add Reference -> Projects". Ich referenziere aber auch .DLLs per "Add Reference -> Browse".

Sind diese "Browse" Verweise irgendwie anders hinterlegt im Projekt?

Also im Code habe ich keine Pfade hinterlegt.

Gruß
wax

Thema: Pfade aus der Entwicklungsumgebung in Assembly
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

Ich habe da ein kleines Problem mit absoluten Pfaden aus der Entwicklungszeit, die aus einem mir unbekannten Grund in meinen Assemblies verbacken sind.

Wäre eigentlich nicht so wild, nur leider stecken in den Log Files beim Kunden jetzt in den Exception Beschreibungen meine "C:\Dev\..." Pfade. Das fühlt sich falsch an. ;-)

Was könnte ich beim Build falsch machen?

Thema: Per Unit Test die Serialisierung/Deserialisierung meiner WCF Contract Klassen testen
Am im Forum: Netzwerktechnologien

Ich hatte die ganze Zeit einen falschen Typen verwendet. Jetzt bekomme ich mit meinem Code das gewünschte Verhalten, sprich es werden die Exceptions geworfen, falls ein Typ unbekannt ist.

Danke LaTino.

Thema: Per Unit Test die Serialisierung/Deserialisierung meiner WCF Contract Klassen testen
Am im Forum: Netzwerktechnologien

Zitat
der wegen des fehlenden KnownType-Attributes in einer SerializationException resultiert. Wenn du das hast, kannst du deine TestCases anpassen und dann deine DataContracts vervollständigen

Genau das möchte ich erreichen und ich hatte gehofft das ein serialisieren mit dem DataContractSerializer die Exception werfen würde im Fehlerfall.

Ich stehe gerade auf dem Schlauch wie ich diese Exceptions herauskitzeln könnte.

ps: Der UnitTest dazu sieht so aus:


static Object[] DataContractTypes =
        {
            new Object[] {new ItemContainerDTO()},
            new Object[] {new ItemContainerDTO()},
            new Object[] {new DownloadDocumentDTO()},
            new Object[] {new UploadDocumentDTO()},
            new Object[] {new DocumentItemContainerDTO()},
            new Object[] {new DocumentResponseContainerDTO()},
            new Object[] {new ResponseContainerDTO()},
            new Object[] {new UploadDocumentResponseContainerDTO()}
        };


        [TestCaseSource("DataContractTypes")]
        public void ReflectionTest<T>(T source) where T : class
        {
            // Arrange
            ReflectionEqualityComparer<T> comparer = new ReflectionEqualityComparer<T>();

            // Act
            T deserializedObject = DataContractTestHelper.DataContractSerializationRoundTrip<T>(source);

            // Assert
            Assert.IsTrue(comparer.Equals(source, deserializedObject));
        }

Thema: Per Unit Test die Serialisierung/Deserialisierung meiner WCF Contract Klassen testen
Am im Forum: Netzwerktechnologien

Hallo zusammen,

ich würde gerne per Unit Test die Serialisierung/Deserialisierung meiner WCF Contract Klassen testen.

Um die De-/Serialisierung zu testen, kommt folgende Hilfefunktion zum Einsatz:


public static T DataContractSerializationRoundTrip<T>(T obj, IEnumerable<Type> knownTypes = null)
        {
            T result = default(T);

            var serializer = new DataContractSerializer(obj.GetType());

            using (MemoryStream memoryStream = new MemoryStream())
            {
                serializer.WriteObject(memoryStream, obj);
                memoryStream.Position = 0;
                result = (T)serializer.ReadObject(memoryStream);
            }

            return result;
        }

Das funktioniert für alle meine Typen ohne Probleme.

Zur Laufzeit wirft mein WCF Service am Client allerdings die Fehlermeldung, dass ein nicht erwarteter Typ gefunden wurde und ich diesen doch bitte zur Liste der "KnownTypes" hinzufügen soll. Wenn ich das mache klappt es natürlich wieder, allerdings würde ich gerne etwas Prophylaxe betreiben und diese Fehler bereits per Unit Tests finden.

Wie kann ich also die tatsächliche Serialisierung "simulieren" für den Unit Test?

Thema: Wie kann ich den Basic-Http-Auth-Header bei WebSockets und ASP.NET WebAPI mitsenden?
Am im Forum: Web-Technologien

Moin,

das klappt anscheinend nur unter Node.js. Im Browser sieht die WebSocket Klasse leider anders aus und nimmt dieses Options Objekt nicht entgegen.

MfG
wax

Thema: Wie kann ich den Basic-Http-Auth-Header bei WebSockets und ASP.NET WebAPI mitsenden?
Am im Forum: Web-Technologien

Guten Tag,

ich schreibe zur Zeit an einem WebSocket und würde diesen aus Gründen der Einfachheit gerne durch meinen bereits existierenden WebApi Service hosten lassen.

Webserver ist der IIS ab Version 8.
Der "Handshake" funktioniert soweit auch gut mittels:


[HttpGet]
public HttpResponseMessage Connect()
{
   if (HttpContext.Current.IsWebSocketRequest)
   {
       HttpContext.Current.AcceptWebSocketRequest(ProcessRequestInternal);
   }

   return new HttpResponseMessage(HttpStatusCode.SwitchingProtocols);
}

Ich bin diesen Weg gegangen, da mein Service sich bereits um die Authentifizierung meiner User kümmert. Dies wurde bisher per Basic-Http Authentication gemacht. Nun habe ich das Problem, dass ich den "Authorization: Basic blabla" Header nicht mehr mitsenden kann und somit sich der WebSocketController nicht mehr in meine Umgebung "passt".

Weiß jemand wie man das normalerweise macht? Per JavaScript WebSocket Objekt kann man z.B. keine Http-Header setzen. ;-(


MfG
wax

Thema: Globale Mocks mit TypeMoq und Mocha synchronisieren
Am im Forum: Web-Technologien

Genau so ist es dann auch geschehen. Danke für die Hinweise. Mich hätte halt interessiert wie das andere Vorgehen funktioniert. ;-)

Mit freundlichen Grüßen
wax

Thema: Globale Mocks mit TypeMoq und Mocha synchronisieren
Am im Forum: Web-Technologien

Es ist nur so das ich nicht steuern kann wann welcher Test ausgeführt wird und die einzelnen SUTs verwenden Zugriffe auf window["MyGlobal"]. Ich möchte gerne erreichen das jeder Test seine eigene globale Umgebung erhält. Leider kriege ich das unter TypeMoq nicht hin. Deswegen die Frage

Thema: Globale Mocks mit TypeMoq und Mocha synchronisieren
Am im Forum: Web-Technologien

Hallo zusammen,

hat vielleicht jemand Erfahrung mit globalen Mocks unter TypeMoq?
Ich möchte den Zugriff auf


window["MyGlobal"]
gerne mittels TypeMoq mocken.

Dazu verwende ich ein Interface von MyGlobal.

let globalMock = TypeMoq.GlobalMock.ofType2<IMyGlobal>('MyGlobal', window);

Das funktioniert soweit auch ganz gut, allerdings bekomme ich mit mocha race conditions, da sich mehrere Tests wohl parallel das globale Objekt "kaputt" schreiben.

Nun habe ich auf der Doku-Seite von TypeMoq etwas von GlobalMock + GlobalScope gesehen und getestet, bekomme dieses "Sandbox" verhalten allerdings nicht hin. Wenn ich z.B. am Ende des Tests verifiziere, wie oft eine bestimmte Methode des Mocks aufgerufen wurde, dann sehe ich, dass alle Aufrufe addiert wurden und nicht in eigenen Scopes stattfanden.

Falls hier jemand Erfahrung hat, wie man am besten damit umgeht, wenn Tests sich mit globalen Objekten in die Haare kriegen, dann möge er dies bitte mitteilen. ;-)

Gruß
wax

Thema: Web Api Plugin Controller soll aufwärtskompatibel sein
Am im Forum: Web-Technologien

Hi,

ja die BasisDLL ist meine WebAPI. In dieser sind "Haupt" Controller der Anwendung implementiert und eben auch ein PlugInBaseController.

Von diesem PlugInBaseController leiten PlugIn-Controller ab.

Anscheinend war das nicht die beste Idee....

Gruß
wax

Thema: Web Api Plugin Controller soll aufwärtskompatibel sein
Am im Forum: Web-Technologien

Die Plugin Controller erben von einem Basis-Controller und dieser ist in einer "Basis-Dll" definiert.
Wenn nun diese Basis-Dll-Version aus z.B. firmenpolitischen Gründen erhöht wird, was geschieht dann mit abhängigen Assemblies?

Mir fallen zwei Lösungen spontan ein:
1. Die Plugin-Hersteller zwingen neu zu kompilieren.
2. Den Plugins sagen, dass sie nicht eine spezifische Basis-Dll referenzieren sollen.

Wie macht man so etwas im .NET Bereich?

Gruß
wax

edit: Das Plugin System wurde selbst entwickelt.

Thema: Web Api Plugin Controller soll aufwärtskompatibel sein
Am im Forum: Web-Technologien

Guten Morgen,

ich habe eine ASP.NET Web Api Lösung die z.B. mit der Assembly Version 1.0 markiert wurde. Für diese Basis Dll wurden nun Plugin Controller entwickelt. Die Plugins verweisen auf die Basis Dll. Wenn ich nun eine neue Version 2.0 der Web Api veröffentliche, wie kann ich dann sicher stellen, dass die alten Plugins weiterhin funktionieren?

Eine Neukompilierung aller Plugins kommt nicht in Frage.

Gruß
wax

Thema: WixVSExtension Custom Action VS2015InstallVSTemplates sehr langsam
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich schraube zur Zeit an einem WiX Setup und installiere mit Hilfe des Setups Visual Studio Projektvorlagen.

Dazu verwende ich diese Custom Action aus der WixVSExtension Biblio:


<CustomActionRef Id="VS2015InstallVSTemplates" />

Leider ist dieser Aufruf seeeeehr laaaangsam. Ich spreche von ca. 5 Minuten. Egal auf welchem System installiert wird.
Das Setup macht zwar was es soll und die Templates werden anschließend auch im Studio angezeigt, doch das Setup ist so nicht ertragbar. Selbiges passiert dann auch beim deinstallieren.

Die Projektvorlagen sind geradezu winzig. Nur ein paar KB groß.

Weiß vielleicht einer woran das liegen kann?

Gruß
wax