Laden...
M
MorphieX myCSharp.de - Member
Softwareentwickler Rahden Dabei seit 06.02.2012 184 Beiträge
Benutzerbeschreibung

Forenbeiträge von MorphieX Ingesamt 184 Beiträge

25.08.2016 - 09:26 Uhr

catch(SqlException ex) { }, du hast dann alle Eigenschaften von
>
zur Verfügung.

Kleine Ergänzung: Falls du für C# 6.0 programmierst, geht auch folgendes:


try
{
...
}catch (SqlException ex) when ex.Message.StartsWith("Login failed for user ")
{
  MessageBox.Show("Deine Message");
}

Besser als die Message zu prüfen wäre natürlich einen entsprechenden Fehlercode zu prüfen. Den richtigen Fehlercode verrät dir der Debugger 😉

18.08.2016 - 13:22 Uhr

Dann kannst du die Abfrage genau so bauen als wäre es eine native datetime-Spalte. (wenn sonst nichts spezielles im Datentyp eingestellt ist)
quasi (ungetestet):

SqlDataAdapter adapter = new SqlDataAdapter("select a.I_FALL, m.CODE, m.ANZ, m.TDAT From test m with (nolock) inner join test2 a with (nolock) on a.aid = m.aid where year(m.TDAT) = @jahr and m.Einrichtung = @einricht order by a.I_FALL", "Server = tre; Database = vbn;Trusted_Connection = True");

Dem Parameter @jahr weist du dann einen Wert von Typ int zu.

18.08.2016 - 11:59 Uhr

Ist Datum8 ein benutzerdefinierter Datentyp?
Schau mal im SQL Management Studio nach:
Datenbank > Programmierbarkeit > Typen > Benutzerdefinierte Datentypen
Da müsstest du dann auch den nativen Datentypen dazu finden.

11.08.2016 - 17:58 Uhr

Es ist doch so, dass unter Visual Studio alle Devices angezeigt werden, die mit der Android Debugging Bridge (ADB) verbunden sind. Ganz egal in welchem Emulator die gerade laufen...

Taucht dein virtuelles Device denn in der Ausgabe auf:

"C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe" devices
14.07.2016 - 12:54 Uhr

Du könntest einen virtuellen Drucker per RedMon erstellen und so den Druckjob über StdIn an ein eigenes Programm weiterleiten.
Dort kannst du dann einen Dialog öffnen und z.B. den Header im Druckjob entsprechend anpassen (Schwarzweiß oder Farbe).
Das Programm gibt dann den modifizierten Druckjob über StdOut an den virtuellen Drucker weiter.
Der virtuelle Drucker schickt diesen Job dann zu deinem richtigen Drucker.

14.07.2016 - 11:28 Uhr

Sind Drucker A und Drucker B tatsächlich 2 verschiedene Drucker? Oder ist derselbe Drucker nur 2x mit unterschiedlichen Einstellungen eingerichtet?

14.07.2016 - 07:27 Uhr

Der Navigation Drawer heißt bei Xamarin.Forms übrigens Master-Detail Page.

13.07.2016 - 15:54 Uhr

Hi,

auch wenn es dir vielleicht nicht direkt weiterhilft, aber ich hatte am Anfang dieselben Probleme mit Android und Xamarin. Nach einigen Tagen habe ich dann Xamarin.Forms ausprobiert und seitdem gab es diese Versionskonflikte bei mir nicht mehr. Nebenbei finde ich, dass Xamarin.Forms wesentlich besser in unsere .NET-Welt passt, wenn man sich vorher schon mit WPF o.Ä. beschäftigt hat...

Ich hoffe Microsoft / Xamarin führen dieses Projekt langfristig weiter.

07.06.2016 - 07:19 Uhr

Willst du das ganze Serverseitig oder Clientseitig lösen?

Serverseitig: Webservice implementieren und vom Client aus aufrufen

Clientseitig: Man könnte das mittels Javascript und COM irgendwie hinbiegen, vorausgesetzt der Browser (bzw. dessen Sicherheitseinstellungen) lässt das zu.
Oder aber du schreibst dir z.B. in einer .NET-Sprache einen Protocol-Handler der dann die API entsprechend benutzt.
Dann könntest du auf deiner Seite z.B. so einen Link einbauen: "remotephone://<number>"
Dieser Protocol-Handler muss dann halt zusätzlich auf jedem Client installiert werden.

Es hat halt alles seine Vor -und nachteile.

26.04.2016 - 09:29 Uhr

Sowas installiert man nicht auf einem Server.

Ich vermute mal, dass er einen Terminal-Server meint. Somit wäre es also absolut legitim das Programm "auf einem Server" zu installieren.

07.03.2016 - 09:18 Uhr

Wenn du bereit bist, etwas Geld auszugeben:
https://www.video2brain.com/de/search.htm?search_entry=wpf

Ist für einen ersten Einstieg sehr interessant

23.02.2016 - 07:08 Uhr

Bringt

<ComboBox IsEditable="True" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemsSource="{Binding Path=ListOfResultTemplates}" ext="{Binding ResultValue , Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  >

einen Unterschied?

21.01.2016 - 10:58 Uhr

Ich hatte neulich auch eine Anforderung (Outlook Email per Drag & Drop in Silverlight ziehen), bei der ich um eine Art Applet nicht herumkam.
Das hatte zwei Gründe:

  • Die Webanwendung (Intranet) läuft nur im IE8-Kompatibilitätsmodus (Der Hersteller der Software setzt ziemlich viele htc-Features vom IE8 ein)
  • Die Webanwendung muss Drag&Drop aus Outlook heraus erlauben / verarbeiten, was aus Sicherheitsgründen so einfach nicht möglich ist

Ich habe das ganze dann erfolgreich per XBAP (XAML Browserapplications) gelöst.

12.01.2016 - 13:17 Uhr

Braucht die WPF-Anwendung im Release-Build genauso lange?
edit: Und bitte die Anwendung mal außerhalb vom Visual Studio starten

28.10.2015 - 10:17 Uhr

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

27.08.2015 - 07:11 Uhr

Starte Visual Studio 2015 bitte mal als Administrator (rechtsklick auf das Icon -> Als Administrator ausführen) und teste dann dein debugging.
Wenn das klappt liegt es an fehlenden Rechten bzw. "komischen" Accounteinstellungen

12.08.2015 - 09:41 Uhr

Eigentlich brauchst du das DataContext gar nicht mehr in dem Slider angeben, da das Window ja schon einen DataContext besitzt.

03.08.2015 - 10:53 Uhr

So, es ist Montag und ich fange mal an:

Du hättest eigentlich schon in dem anderen Thread erkennen können, dass den Lesern und Helfern nicht so 100% klar ist, was Du da vor hast und wozu das dienen soll.

Und deswegen habe ich hier einen getrennten Thread für eine konkretere Frage aufgemacht, nämlich nach der Frage ob hier jemand so eine Sammlung kennt. Diese Frage lässt sich nur mit Nein oder Ja und ggf. mit einem Link zur Sammlung beantworten. Hier wird aber wieder über Sinn und Unsinn für mein Projekt diskutiert.
Geht ihr mit so einer Argumentation auch an eure Kunden, wenn diese (Administratoren) so einen Wunsch äußern?

Dahingehend ist es auch sehr schwer zu sagen, ob es eine Sammlung gibt oder nicht.
Ich verstehe zB nicht mal, was Du überhaupt von der Sammlung sowohl inhaltlich wie auch formal erwartest bzw. Du Dir vorstellst.

Wie hummigbird1 schon richtig festgestellt hat, suche ich eine Sammlung an Select-Abfragen, die ein möglichst großes Spektrum an verschiedenen SQL-Select-Features abbilden.
Es ist gut möglich, dass ich irgendein Feature noch nicht vollständig berücksichtigt habe, daher die Frage nach einer Sammlung die möglichst alle Features berücksichtigen.

Ich glaube das MorphieX einfach einen T-SQL Parser gebaut hat und nun eine möglichst große unterschiedliche Vielzahl an Select Statements sucht um möglichst sämtliche Aspekte seiner Implementation testen.

Nicht ganz. Ich nutze den SQL-Parser von Microsoft (TSQLParser) um das Selectstatement zu parsen. Dabei gehe ich dann möglichst jede Tabellenreferenz durch und rufe aus meiner Klasse ein Event auf, in dem man die zur Tabellenreferenz gehörende Where-Clause modifizieren (erweitern) kann.
Die Schwierigkeit dabei ist, wirklich jede Tabellenreferenz zu finden, z.B. in SubSelects, Unions, Joins,...
Ich denke den Großteil konnte ich schon abdecken, aber möglicherweise habe ich noch bestimmte Konstellationen übersehen.

Ohne Hintergrundwissen warum dies umgesetzt wurde, ergibt sich für mich aus meiner Sicht kein brauchbares Szenario in dem ich einen Parser schreiben möchte.

Ein Beispiel ist eine automatische Filterung nach Mandanten. Hier wird z.B. jede Abfrage in meinem DAL über meinen SQLModifier gejagt und anhand einer Einstellung (welche Tabelle ist mandantisiert? Welche Tabellen haben übergreifende Daten etc.) wird die Where-Clause erweitert.
In meinem Programm muss ich dann nur noch allgemeine SQL-Abfragen formulieren und muss die Mandantisierung dabei nicht berücksichtigen, denn hier kann der Administrator sehr flexibel die Mandantenbeziehungen einstellen.

Ein zweites Beispiel wäre die automatische Filterung von Daten. Z.B. kann ein User Administrator (meine User sind Entwickler) für bestimmte Tabellen selbstdefinierte Datenfilter setzen.

Wenn du kein konkretes Entwicklungsproblem hast, bist du mit deiner Anfrage hier falsch.

Richtig, es ist kein Entwicklungsproblem sondern eine Frage, ob jemand zufällig schon so eine Sammlung hat. Ich wusste nicht dass man das hier nicht fragen darf.

Im Forum wird sich keiner die Mühe machen die schier endlosen Kombinationen von Select Statements zusammen zu bauen.
Das ist deine Aufgabe.

Das habe ich auch nicht erwartet, es war nur eine einfache Frage!

Dass man das Vorgehen statt "klasse" im Allgemeinen eher als höchst fragwürdig und in meinen Augen auch unfassbar fahrlässig bezeichnen kann, das ist im Prinzip MorphieX's Problem.

Genau so fahrlässig wie das Absetzen von eigenen SQL-Abfragen aus dem SQL-Manangement-Studio...
Wir haben sicherlich unterschiedliche Anwenderkreise. Ich halte das gezielte Manipulieren von SQL-Abfragen nicht für fahrlässig, sondern für ein Must-Have-Feature in meiner Software.

Außerdem hebelt ihr mit dem Kram dermaßen viele Sicherheitsmechanismen aus, dass es schon wehtut.
Sowohl auf Sql Parameter wird dabei verzichtet, was sowohl Performance als auch Sicherheit kostet.
Ebenfalls kann mit dieser Umsetzung eben auch viel Unfug gemacht werden.
Wenn man das böswillig umsetzt, macht man eine Sql Injection und liest die ganzen Benutzerdaten aus.
Wenn die DB dahinter dann noch fahrlässigerweise die Daten im Klartext hat, kann man Emails und co. auslesen.
Ich für meinen Teil kann euch nur dingend ans Herz legen, das Thema einzustampfen.
Ihr spielt hier mit dem Feuer.

Natürlich wird der Produktivcode auf Parameter setzen, aber das ist halt Sache der Implementierung im DAL und hat erstmal nichts mit dem SQLModifier selbst zutun.
Bitte erkläre mir aber mal, wie ich mit einem SQL-Select die DB zerstören, Daten löschen oder zumüllen kann?
Ich grenze meine Ergebnismenge schließlich nur weiter ein.
Anstatt in jedem SQL-Statement die Mandantenspezifischen Sachen in der Where-Clause von hand zu definieren, macht mein Programm dies automatisch. Das tatsächliche SQL-Statement entspricht anschließend also dem, was ich sonst hardcodiert in die Abfrage geschrieben hätte...

Ich würde auf jeden Fall eine Software bevorzugen, die so eine Funktion zum Zerschießen der Datenbank gar nicht erst anbietet. Also benutzt du lieber Notepad als das SQL-Manangement-Studio, weil man mit dem Studio ja die Datenbank zerschießen kann und in Notepad nicht?! Hä?

01.08.2015 - 14:57 Uhr

Wie sollen wir ohne Tabellen Struktur und DB Infos wissen was du mit dem Select auswählen kasst?

Die Frage verstehe ich nicht. Wozu musst du irgendwelche DB-Strukturen wissen?
Es ist eine Klasse, die ein SQL Select-Statement parst und dann weiter verarbeitet. (Where-Clause extrahieren, Tabellennamen extrahieren usw.)
Es gibt dazu keine Datenbank, denn erstmal ist es wie gesagt nur eine Klasse die etwas parst.
Man kann doch eine SQL-Abfrage parsen (in einzelne Teile zerlegen) ohne, dass man die DB-Abfrage zu irgendeinem Server schicken muss...

Was ist dein Ziel mit der Umsetzung die du gebaut hast? Suche: SQL-Statement-Modifier
Auch wenn ich mich frage, wozu du wissen musst, was ich vorhabe, um zu sagen ob du so eine Select-Sammlung kennst oder nicht...? 😉

01.08.2015 - 13:50 Uhr

verwendetes Datenbanksystem: SQL Server

Hi, ich schreibe gerade eine Klasse, die zumal SQL-Abfragen parsen und diese anschließend weiter verarbeiten soll.

Eigentlich habe ich die Klasse soweit auch fertig, mir fehlt scheinbar nur noch eine Test-Unit.

Kennt jemand von euch eine Quelle, wo es zu jedem Select-Feature ein Beispiel-Select gibt?
Ziel ist halt, dass ich meine Klasse mit so vielen SQL-Abfragen testen kann wie möglich und das halt in allen möglichen Konstellationen, die mir MSSQL bei Select-Abfragen bietet.

Wenn es so eine Sammlung schon gibt, spare ich viel Zeit 😉

28.07.2015 - 13:57 Uhr

Ich denke ActiveX ist hier das Zauberwort...
Du schreibst dir ein ActiveX-Control, registrierst dieses auf dem Gerät bettest es auf deiner Webanwendung ein... Das ganze kann aber ziemlich komplex werden und ist meines Wissens auch nicht mit C# umzusetzen.

28.07.2015 - 10:09 Uhr

Wenn du absolut nicht weiter kommst, dann könntest du dir den EntityFramework-Sourcecode laden und damit debuggen...

27.07.2015 - 12:59 Uhr

Kannst du einmal die beiden SQL-Abfragen posten, die das EF dir generiert?
Irgendwo muss ein Unterschied sein... Oder die Ergebnismenge für Abfrage 2 ist wesentlich größer als bei Abfrage 1 und irgendein Index greift hier nicht...

15.07.2015 - 12:46 Uhr

Wie schon gesagt, gibt es in RTF keine Möglichkeit, die Hintergrundfarbe für das gesamte Dokument zu speichern.
Das müsste man sich dann selbst basteln, z.B. indem man am Dateiende hinter \0 (NULL) die Farbinformation mitspeichert und von dort auch wieder ausliest.

Allerdings funktioniert das auslesen dann natürlich nicht bei anderen RTF-Programmen, da du dich damit nicht an die RTF-Spezifikationen hälst.

So als Beispiel (Quick&Dirty)

public class RichTextBoxEx : RichTextBox
{
  public void SaveFileWithBackground(String path)
  {
    using (TextWriter writer = new StreamWriter(path))
    {
      writer.Write(this.Rtf);
      String suffix = this.BackColor.ToArgb().ToString();
      writer.Write("\0" + suffix);
    }
  }

  public void LoadFileWithBackground(String path)
  {
    try
    {
      using (TextReader reader = new StreamReader(path))
      {
        String text = reader.ReadToEnd();
        String suffix = text.Substring(text.LastIndexOf('\0') + 1);
        int colorValue;
        if (int.TryParse(suffix, out colorValue))
        {
          Color color = Color.FromArgb(colorValue);
          this.BackColor = color;
        }
        this.Rtf = text;
      }
    }
    catch
    {
      this.LoadFile(path);
    }
  }
}
10.07.2015 - 10:56 Uhr

Natürlich kann man dem Anwender eine Maske bauen, in der er seine Filter zusammenklicken kann - es hat ja niemand behauptet dass der Anwender seine Filter in SQL definieren muss.

Aber die Abfrage im Hintergrund läuft nunmal über SQL.

Ich weiß, ist schwer zu verstehen, aber wir nutzen zur Zeit eine Anwendung die genau so funktioniert - und das ist wirklich klasse!

10.07.2015 - 10:12 Uhr

Bei anwendungsweiten konfigurierbaren Filtern durch den Benutzer.
Beispiel 1:
Eine mandantenfähige Anwendung. Der User (bzw. Administrator) kann sich selbst einstellen, welche Tabellen mandantisiert sein sollen und welche nicht. Optional kann er dann auch noch einstellen welche Mandanten dieselben Daten sehen. Bei allen mandantisierten Tabellen wird dann quasi der Where-Abschnitt erweitert, bei den Tabellen die für alle Mandanten gleich sein sollen, wird der abschnitt halt weggelassen.

Beispiel 2:
Globale Filter.
Angenommen ein Anwender interessiert sich nur für Kunden aus dem asiatischen Bereich, so könnte er sich für die Kunden-Tabelle einen Filter definieren, der den Where-Abschnitt entsprechend erweitert.

Alle Abfragen, die im Programm abgesetzt werden, durchlaufen dann diesen SQLModifier, egal ob ORM (EntityFramework) oder über einen normalen SQLCommand... Die SQL-Filter laufen dann dynamisch, man muss diese beim programmieren also nicht berücksichtigen.

10.07.2015 - 08:09 Uhr

verwendetes Datenbanksystem: SQL Server 2008 (oder neuer)

Hi,

ich bin auf der Suche nach einem SQLModifier, also einer Klasse, mit dem ich ein SQL-Statement manipulieren kann.

Ich habe mir das so vorgestellt:

  1. Ich füttere den SQLModifier mit einem Select-Statement
    Beispiel:
SELECT 
  A.* 
FROM 
  A 
WHERE 
  A.ID NOT IN (
    SELECT 
      B.ID 
    FROM 
      B 
    WHERE 
      B.DUMMY = 'Hallo')
  1. Der SQLModifier parst jetzt diese Abfrage:
public String ParseSQL(string sql)

durchsucht die Abfrage nach SubQueries, Unions usw. und feuert bei jedem gefundenen Statement ein Event:

public delegate void StatementParsedEventHandler(StatementParsedEventArgs e);
public event StatementParsedEventHandler StatementParsed;

In e wären dann die Informationen wie "Columns, Source, WhereClause, GroupByClause, HavingClause, OrderByClause, ...) getrennt vorzufinden.

  1. Das Event wird also aboniert und wird bei jedem Statement ausgelöst.
    Die Reihenfolge wäre dann von unten nach oben im Expression-Tree (also SubQueries usw. zuerst)
    Hier ließe sich dann zu jedem Statement z.B. die WhereClause manipulieren.
e.WhereClause += " AND MandantID = 2";
  1. Anschließend gibt die Methode ParseSQL den modifizierten SQL-Befehl wieder zurück. Der müsste dann bei oben genannten Beispiel so aussehen:
SELECT 
  A.* 
FROM 
  A 
WHERE 
  A.ID NOT IN (
    SELECT 
      B.ID 
    FROM 
      B 
    WHERE 
      B.DUMMY = 'Hallo'
      AND MandantID = 2)
  AND MandantID = 2

Frage: Kennt jemand so eine Klasse, die genau das kann?
Bevor ich das komplett selbst implementiere, lohnt sich schon das Fragen 😉

Gruß,
Morphie

08.07.2015 - 13:10 Uhr

Und wenn du das komplett über das ViewModel abbildest?

CheckBox1 bindest du an Property1 (Boolean)
CheckBox2 bindest du an Property2 (Boolean)
CheckBox3 (Alles anwählen) bindest du ein ein weiteres Property (Boolean)

Im Getter des 3. Property prüfst du, ob Property1 und Property2 true sind, dann gibst du auch true zurück, ansonsten false.
Property1 und Property2 müssen dann natürlich über INotifyPropertyChanged mitteilen, dass sich Property3 ggf. geändert hat.

Und im Setter setzt du Property1 und Property2 auf true.

03.06.2015 - 17:46 Uhr

If successful, returns 0. A value less than 0 indicates an error (read failed).

Also gibt es einen Fehler. Jetzt musst du noch herausfinden was -18 bedeutet

03.06.2015 - 15:49 Uhr

Darüber denke ich auch sehr oft nach...

So bin ich sonst immer vorgegangen:
Model (POCO-Klassen) erstellt und INotifyPropetyChanged implementiert
Wenn es berechnete Properties (z.B. Menge * Einzelpreis = Gesamtpreis) sind, die nicht zur Datenbank gehören, benutze ich das [NotMapped]-Attribute.
Dieses Model benutze ich dann mit dem EntityFramework als Entität
Bei mir sind die Views meist Fenster, dafür erstelle ich separate ViewModels. Diese ViewModels besitzen dann aber meist ein Objekt mit einer Instanz einer Entität, die ich jetzt ebenfalls an die View binden kann, oft auch eine ObservableCollection einer Entität.

Damit bin ich bis jetzt immer gut zurecht gekommen.
Man liest aber immer wieder, dass das "nicht richtig" oder "schlecht" sei...

Darum überlege ich mir zur Zeit dieses Konstrukt:

Die Entitäten (wieder POCO-Klassen) besitzen wirklich nur die Properties, die sie wirklich abspeichern wollen
Zu jeder Entität gibt es eine abstrakte Basis-ViewModel-Klasse, die alle Properties der Entität 1:1 nachbilden, zusätzlich aber noch INotifyPropertyChanged implementieren
Diese Basisklassen würde ich mir über eine T4-Vorlage automatisch erzeugen lassen...
Dann gibt es zu jeder Entität mindestens ein ViewModel, welches von der Basisklasse erbt, zusätzlich aber noch weitere Properties zur Verfügung stellt (z.B. Menge * Einzelpreis = Gesamtpreis)

Dann gibt es wieder für jedes Fenster ein ViewModel, welches mindestens eine Instanz der Entity-ViewModels besitzt. Also dasselbe wie oben, nur dass nicht direkt auf die Models gebunden wird, sondern noch die VM-Klasse dazwischen liegt.

Wäre das vielleicht ein "richtigerer" weg? 😉

03.06.2015 - 15:31 Uhr

Du wertest immer noch nicht aus, ob die Funktion einen Fehler zurückgibt oder nicht...

int result = I2C.Functions.SmbReadBlock(smbAddress, smbReadData, numberOfBytesToRead, smbSpeed, usesPEC, readRegIndex);

Welchen Wert hat hier result?

03.06.2015 - 13:15 Uhr

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

02.06.2015 - 09:40 Uhr

Was gibt dir denn SmbReadBlock zurück? Der Rückgabetyp ist ja int.
Vielleicht solltest du den auswerten?

01.06.2015 - 14:25 Uhr

Woher hast du diese Signatur der Methode?
Ich vermute mal da fehlt ein parameter modifier wie out oder ref...

07.05.2015 - 07:17 Uhr

Da muss ich mich mal einmischen 😉

Gibt es einen wirklichen Grund, die Models immer noch einmal als VM abzubilden?
Ich binde die Models auch manchmal direkt an die View, wenn es einfacher ist. Bislang habe ich keinen Nachteil feststellen können...

Also bei mir sieht das in etwa so aus:

Model (z.B. POCO aus EF, implementiert INotifyPropertyChanged)
ViewModel (implementiert INotifyPropertyChanged, hat eine ObservableCollection des Models)
View (DataContext = Instanz des ViewModels, hat z.B. ein DataGrid mit ItemsSource = ObservableCollection)

Wieso sollte ich bei so etwas eine Zwischenschicht zwischen Model <> ModelViewModel einbauen, die letztendlich nichts anderes macht als die Daten weiterzureichen?

Gruß,
Morphie

06.05.2015 - 13:59 Uhr

Kein Problem, ist nichts zeitkritisches bei mir 😉

06.05.2015 - 12:57 Uhr

Hi,

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

Gruß,
Morphie

05.05.2015 - 15:09 Uhr

Vielen Dank für deine Antwort 😃

Hattest du XBAP zufällig auch getestet?

Gruß,
Morphie

05.05.2015 - 12:50 Uhr

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

18.04.2015 - 17:06 Uhr

Hi Abt,

super, vielen Dank 😃 Das sieht sehr gut aus...

18.04.2015 - 16:31 Uhr

Hi,

eigentlich ist es eine grundlegende Frage:
Wie "merkt" man sich in einem C# WPF / WinForms-Programm am einfachsten besten globale Informationen wie z.B. an aktuellen Benutzer (eigene Benutzerverwaltung im Programm, also nicht die Windows-Anmeldung), aktuellen Mandanten, usw...

Ist hier das Singleton-Pattern passend oder lieber eine statische Klasse? Oder ganz was anderes?

Wie behandelt ihr also solche Informationen, die ständig im gesamten Programm abgerufen werden sollen?

Gruß,
Morphie

23.12.2014 - 08:00 Uhr

Befindet sich der Rechner in einer Domäne?
Wie meldest du dich an? DOMÄNE\USERNAME oder nur USERNAME?

19.09.2013 - 15:30 Uhr

Dann kannst du aber nicht einfach so ein Bild herunterladen, sondern musst schon das MJPEG-Protokoll implementieren.

Ganz einfach ausgedrückt:

  1. Download starten
  2. Daten in Buffer schreiben
  3. Bild aus dem Buffer parsen (Stichwort: boundary, siehe Wikipedia-Artikel)
  4. Bild darstellen
  5. Zurück zu Schritt 2

Oder du suchst dir einen fertigen MJPEG-Decoder
z.B. http://mjpeg.codeplex.com (habe ich allerdings nicht getestet)

19.09.2013 - 14:34 Uhr

Was lädtst du denn herunter?
JPEG = Schnappschuss, also ein Bild
MJPEG = Endlosstream! Wenn du versuchst diesen herunterzuladen, lädt er quasi unendlich lange.
MJPEG

19.09.2013 - 14:15 Uhr

10 Sekunden googeln:

VLC rtsp://IPADDRESS:554/play1.sdp
JPEG ht
tp://IPADDRESS/image/jpeg.cgi
MJPEG http://IPADDRESS/mjpeg.cgi
MJPEG ht
tp://IPADDRESS/GetData.cgi
MJPEG ht****tp://IPADDRESS/video/mjpg.cgi

Quelle: Connecting to your TrendNet IP camera

06.09.2013 - 12:55 Uhr

Ok danke, das gelang mir bislang noch nicht... Aber wenn es einen Weg gibt, dann muss ich diesen finden. 😉

Damit hat sich das Thema erst mal erledigt:

  • bei Jet4.0-Datenbanken ist x64 unmöglich
  • den Dienst als x86 kompilieren und irgendwie unter x64 ausführen.
06.09.2013 - 12:47 Uhr

Es muss x64 sein, weil ich den Dienst auf einem/mehreren vorhandenen Servern (Windows Server 2008 R2) installieren muss.

Wenn es einen Weg gibt, einen x86-Dienst unter Windows Server 2008 R2 zu installieren, dann wäre das Problem auch gelöst =)

06.09.2013 - 12:39 Uhr

verwendetes Datenbanksystem: Jet 4.0 / Access2000

Hi,
ich muss einen Dienst programmieren, der Daten einer Access-Datenbank ausliest / ändert.

Der "Dienst" ist soweit fertig, dass er als normale Konsolenanwendung als x86-Kompilat läuft.

Um einen richtigen Dienst auf einem 64-Bit OS zu installieren, muss dieser als "Any CPU" oder "x64" kompiliert werden, richtig?

Gibt es OleDB nicht für 64-Bit?
Ich bekomme beim 64-Bit-Kompilat diese Fehlermeldung:> Fehlermeldung:

Der 'Microsoft.Jet.OLEDB.4.0'-Provider ist nicht auf dem lokalen Computer registriert.

Oder gibt es auch eine Möglichkeit, ein x86-Dienst unter x64 zu installieren?