Laden...

Outlook Email per Drag & Drop in Silverlight ziehen

Erstellt von MorphieX vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.328 Views
M
MorphieX Themenstarter:in
184 Beiträge seit 2012
vor 8 Jahren
Outlook Email per Drag & Drop in Silverlight ziehen

Hi,

ich muss demnächst eine Browseranwendung entwickeln, mit der man Emails aus Outlook in eine Browseranwendung ziehen kann. Die Browseranwendung lädt Dokumente, Emails und Anhänge dann in ein vordefiniertes Sharepoint hoch und zeigt diese auch als DataGrid an.

Folgende Gegebenheiten:

  • Seite muss im Internet Explorer 8-Kompatibilitätsmodus laufen (HTML5 fällt dadurch weg)
  • Seite befindet sich im lokalen Intranet
  • zurzeit gibt es bereits so eine Anwendung als Java Applet, was aber ziemlich langsam lädt und auch andere Java-Spezifische Probleme macht (nicht von uns programmiert)

Jetzt habe ich mir gedacht, Silverlight wäre vielleicht eine passende Technologie für so eine Anwendung.
Allerdings wird hier gesagt, dass ein Drag&Drop aus Outlook in eine Silverlight-Anwendung nicht möglich sei

Der Post ist allerdings von 2011... Hat sich da vielleicht etwas geändert?

Was wären denn alternative Technologien? Würde das mit XBAP funktionieren?
Sonst irgendwelche Ideen?

Gruß,
Morphie

148 Beiträge seit 2013
vor 8 Jahren

Hallo,

wir hatten eine ähnliche Anforderung hier.
Es funktioniert NICHT mit SilverLight und auch NICHT mit HTML5 (wegen der Drag&Drop Api).

Der einzige Weg der übrig blieb war eine ActiveX Komponente. Da das ganze im Intranet läuft, sollte das, genauso wie bei uns, kein Problem sein.

Die Komponente ist sehr performant und man kann keinen wirklichen Unterschied zwischen der ActiveX Komponente und unserer alten SilverLight Komponente erkennen.

M
MorphieX Themenstarter:in
184 Beiträge seit 2012
vor 8 Jahren

Vielen Dank für deine Antwort 😃

Hattest du XBAP zufällig auch getestet?

Gruß,
Morphie

148 Beiträge seit 2013
vor 8 Jahren

Hallo,

ich habe es gerade mal getestet. Im ersten Test schien es zu funktionieren.
Ich werde das sicherlich mal die Tage weiter verfolgen, ob das nicht sogar eine bessere Alternative ist oder zu starke Restriktionen hat.

Grüße

M
MorphieX Themenstarter:in
184 Beiträge seit 2012
vor 8 Jahren

Hi,

würdest du dann ggf. kurz über die Ergebnisse berichten, falls du dich damit noch weiter beschäftigen solltest?

Gruß,
Morphie

148 Beiträge seit 2013
vor 8 Jahren

Werde ich gerne machen. Da aktuell jedoch andere Tasks wichtiger sind, kann es durchaus etwas dauern (eine Woche oder so). Nur damit du Bescheid weisst.

Grüße

M
MorphieX Themenstarter:in
184 Beiträge seit 2012
vor 8 Jahren

Kein Problem, ist nichts zeitkritisches bei mir 😉

M
MorphieX Themenstarter:in
184 Beiträge seit 2012
vor 8 Jahren

Ich wollte mal vorsichtig nachfragen, ob es bereits irgendwelche News dazu gibt? 😉

148 Beiträge seit 2013
vor 8 Jahren

Bitte entschuldige die späte Antwort!

Ich habe das Ganze inzwischen per XBAP umgesetzt und die Lösung ist uns auch produktiv im Einsatz 😃
Das wichtigste an der Lösung ist die angehängte Datei (habe ich selber von http://www.codeproject.com/Articles/28209/Outlook-Drag-and-Drop-in-C).

Das DropEvent sieht dann etwa so aus:


         public void Drop(object sender, DragEventArgs e)
        {
                if (e.Data.GetDataPresent("FileGroupDescriptor"))
                {
                    var dataObject = new OutlookDataObject(e.Data);
                    var fileNames = (string[])dataObject.GetData("FileGroupDescriptor");
                    var fileStreams = (MemoryStream[])dataObject.GetData("FileContents");
                    //HIER WAS DAMIT MACHEN
                }
            }            
        }

Du bekommst für jede Datei einen Eintrag im "fileNames" Array und einen im "fileStreams" Array.
Dann kannst du damit machen was du willst 😃

Wichtig ist, dass die XBAP Anwendung "Full-Trusted" ist. Sonst klappt das Drag&Drop nicht!

Grüße
Geaz

M
MorphieX Themenstarter:in
184 Beiträge seit 2012
vor 8 Jahren

Sehr cool 😃 danke für deine Antwort.
Das war quasi just-in-time, denn nächste Woche muss ich mit dem Projekt beginnen 😉