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 fichz
Thema: Mails versenden - ohne Outlook
Am im Forum: Office-Technologien

Hallo Bernd,

ja genau sowas in der Art werde ich auch basteln. Würde für den Zweck den ich benötige allemal ausreichen

LG
fichz

Thema: Mails versenden - ohne Outlook
Am im Forum: Office-Technologien

Hallo,

ok dann werde ich mir mal MailKit zu Gemüte führen und eine einfache "Versende-Form" basteln.

Danke an alle

LG
fichz

Thema: Mails versenden - ohne Outlook
Am im Forum: Office-Technologien

Das mit dem SmtpClient wusste ich nicht - gut zu wissen.

Ja genau nur ein Fenster wo man auf "Senden" drücken kann und die Mail wird gesendet. Der Inhalt (Betreff, Body, Anhang, ...) wird vor befüllt und es muss nur mehr der Empfänger ergänzt werden.
Da in so einer Form ja doch ein bisschen Logik dahintersteckt (Anhang hinzufügen usw.) dachte ich eventuell, dass es bereits etwas "fertiges" in dieser Art geben könnte.

Wenn nicht, dann wird es mir eh nicht ausbleiben es selbst zu basteln

LG
fichz

Thema: Mails versenden - ohne Outlook
Am im Forum: Office-Technologien

Hallo Leute,

aktuell versende ich in einem Programm diverse E-Mails über den Outlook Client (früher über die Redemption.dll). Teilweise werden diese im Hintergrund gesendet (auch über Outlook) und ab und zu erscheint eine vor befüllte "Neue Mail" Form - inkl. Anhang - von Outlook wo der User den Empfänger noch angeben muss.

Nun ist es so, dass Outlook nicht mehr installiert wird sondern nur mehr über die Webanwendung von Office 365 erreichbar ist. Somit kann ich die Outlook Komponente nicht mehr verwenden.

Das Versenden der E-Mails im Hintergrund ist ja kein Problem, da ich dies über den SmtpClient lösen kann, da ich ja alle Daten, welche ich benötige, kenne. Leider funktioniert die "Neue Mail" Form nicht - da ja Outlook nicht mehr existiert.

Meine Frage ist nun ob es eventuell bereits Komponenten gibt - am Besten gratis/Open Source - welche ich von einem C# Programm aus ansteuern kann damit so eine "Neue Mail" Form - wie bei Outlook - aufpoppt.

Falls es so etwas nicht geben sollte bleibt mir eh nix anderes übrig so etwas selbst zu entwickeln. Wenn aber bereits jemand eine stabile Komponente kennt welche das erfüllt könnte ich mir das natürlich sparen.

LG
fichz

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

BhaaL's Argumentation unterstreicht eigentlich genau meine Gedanken, dass interne mycsharp.de-Links eventuell im gleichen Fenster bleiben aber externe Links in einem neuen Tab geöffnet werden.
Würde ich persönlich für eine gute Möglichkeit halten (oder halt generell alles in einem neuen Tab).

LG
fichz

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Hi!

Ich weiß nicht ob es nur mir so geht, aber ich falle immer wieder darauf rein, dass ich Links in den Beiträgen "normal" anklicke und somit mycsharp.de verlasse und auf die geklickte Seite wechsle. Ich muss also immer entweder Rechtsklick -> in neuem Fenster öffnen oder mit der mittleren Maustaste klicken um weiterhin auf mycsharp.de zu bleiben.

Ist das bewusst so gemacht, dass Links nicht in einem neuen Fenster/Tab geöffnet werden? Oft befinden sich ja gleich mehrere Links in einem Beitrag und wenn man da nicht daran denkt muss man immer wieder auf zurück klicksen.

Noch dazu sieht ja das Standard-Logo neben dem Link (wenn es kein mychsarp, stackoverflow, etc. Link ist) auch so aus als würde sich ein neues Fenster/Tab öffnen.

Kann man das eventuell einstellen (per User) oder eventuell generell ändern?

LG
fichz

Thema: Wie kann ich ein vorliegendes (UML) Klassendesign implementieren?
Am im Forum: Grundlagen von C#

Bezüglich Design-Pattern stieß ich einmal auf diese Seite, wo wie ich finde einige Pattern sehr gut am Beispiel erklärt werden:

https://www.philipphauer.de/study/se/design-pattern.php

Vielleicht hilft es dir.

LG

Thema: Änderungen am Datenbankschema - Best Practice
Am im Forum: Datentechnologien

Guten Morgen!

Werde mir den FluentMigrator und das mit den DACPAC-Files mal genauer ansehen. Die Lösung von Redgate eventuell auch, aber was ich gesehen habe wäre diese nicht freeware - somit mal hinten anreihen :)

Besten Dank für die Infos!

LG

Thema: Änderungen am Datenbankschema - Best Practice
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MSSQL

Hallo,

ich würde gerne wissen wie ihr eure Datenbanken verwaltet bzw. Änderung am Schema (neue Spalte in Tabelle X, neue Tabelle, ...) vornehmt.

Ich habe ein Projekt mit dem ich den Datenbankzugriff über Dapper an eine SQL-Server Datenbank durchführe. Bei Entity Framework gäbe es ja Migrations, aber wie löst man so was ohne Entity Framework am Besten? Hättet ihr hier eventuell ein paar Tips/Anregungen?

Lg

Thema: Projektstruktur: Aktuell Desktop, später Web
Am im Forum: Rund um die Programmierung

Hallo Abt!

Werde ich mir bei Gelegenheit mal ansehen, kann ich aber wahrscheinlich in diesem Fall noch nicht machen, da hier etwas Zeitdruck herrscht.

Zur 3-Schichten-Architektur hätte ich aber noch Fragen:

Ich habe jetzt ein .Data - Projekt für den DAL und ein .Service - Projekt für die BL erstellt.
Irgendwie habe ich aber Schwierigkeiten wo ich nun meine konkreten Klassen implementieren soll/muss.

Speziell:
- Datenklassen (POCOs) -> Data?
- Repositories -> Service?
- Implementierung des UnitOfWork?

Ist der BL nur dazu da die Daten aus dem Data-Projekt zu lesen/speichern - quasi als Schnittstelle?

Stehe hier ein wenig auf dem Schlauch...

lg fichz

Thema: Projektstruktur: Aktuell Desktop, später Web
Am im Forum: Rund um die Programmierung

Hallo Abt!

Das mit den asynchronen Abfragen werde ich natürlich beherzigen.

Dann werde ich eine Daten + Business Schicht (Projekte) erzeugen wo dann die unterschiedlichen UI-Projekte gemeinsam drauf zugreifen können.

Danke für die prompte Antwort!

lg
fichz

Thema: Projektstruktur: Aktuell Desktop, später Web
Am im Forum: Rund um die Programmierung

Guten Tag,

ich habe eine Frage zur Projekt Architektur meines nächsten Projektes und würde mir gerne euren Rat bzw. eure Erfahrungswerte dazu anhören.

Folgendes ist gegeben/gewünscht:
Ich soll eine Webapplikation erstellen wo simple CRUD-Funktionen zur Verfügung stehen sollen. Die Daten werden über einen SQL-Server bereitgestellt und zurückgespeichert.
Das Problem: Der Wissenstand damit ich eine Webapplikation erstellen kann reicht leider noch nicht aus - Schulung wird folgen.
Da die Applikation aber nur intern laufen soll und dies auf einem Windows Tablet sein wird die Applikation vorerst als Desktop Anwendung erstellt.

Ich will nun das Projekt so anlegen, dass ich zuerst die Desktop Applikation erstelle und später, wenn ich genug "Web-Fit" bin, zusätzlich (auch für mich als "Übung") eine Webapplikation hinzufüge.

Meine Idee wäre nun:
Die Projektmappe enthält
- eine Klassenbibliothek wo der komplette Datenzugriff stattfindet. Speziell will ich das über das Repository Pattern lösen
- ein Windows Forms bzw. WPF-Projekt welches die Desktop Applikation darstellt und auf die Klassenbibliothek für den Datenzugriff zugreift
- später dann ein ASP - MVC Projekt welches auch auf die gleiche Klassenbibliothek zugreift und dies dann halt als Webapplikation ausgeführt werden kann

Ist dieser Ansatz OK oder empfehlt ihr hier einen anderen/besseren Weg?

Falls noch etwas unklar ist bitte einfach fragen.


lg
fichz

Thema: TSQL - Wie kann ich ein Datetime in einer WHERE-Klausel benutzen?
Am im Forum: Datentechnologien

hi!

Verwende Db-Parameter:
[Artikelserie] SQL: Parameter von Befehlen

lg

Thema: EF 6 - Wie kann ich bei Verbindungsverlust auf eine Fallback Database zurückgreifen?
Am im Forum: Datentechnologien

Denke damit kann ich soweit schon mal was anfangen. Falls ich es mal benötige werde ich mich in die Materie einlesen.

Danke für die Erklärung!

lg

Thema: EF 6 - Wie kann ich bei Verbindungsverlust auf eine Fallback Database zurückgreifen?
Am im Forum: Datentechnologien

Hallo!

die "Proxy-Lösung" würde mich interessieren da ich über solch eine Problematik auch schon einmal nachgedacht habe. Ich kenne den Begriff "Proxy" jedoch nur aus dem Netzwerkbereich und kann leider in Verbindung mit der Programmierung hier nicht wirklich was anfangen (im Zusammenhang mit dem DB-Problem des TE).

Könntet ihr mir dies bitte im Detail erklären wie man so etwas auf die Beine stellt, bzw. vielleicht gibt es ja auch eine Artikel im Netz der das beschreibt. Ich weiß leider nicht genau wie ich danach suchen muss...

lg

Thema: Wiederkehrende Tasks in Datenbank speichern und ausführen lassen
Am im Forum: Rund um die Programmierung

Hallo und danke für die zahlreichen Antworten!

Hangfire werde ich mir bezüglich des Schedulers auf jeden Fall mal ansehen.
Da es mir aber prinzipiell darum ging wie man sich solch eine Architektur aufbaut kann ich mit diesen Antworten schon einiges anfangen.

Ich habe auch das Thema MEF für ein Pluginsystem gefunden was ich denk ich hier gut anwenden kann (hoffe es gibt nichts "aktuelleres").

Danke für eure Hilfe

lg

Thema: Wiederkehrende Tasks in Datenbank speichern und ausführen lassen
Am im Forum: Rund um die Programmierung

Hallo Coffeebean,

danke für die Korrektur, nur leider trifft es das auch nicht so recht was ich meine X(
Danke auch für den Link das könnte ich eventuell sogar verwenden für dieses Projekt.

Mir geht es bei meinem Problem aber weniger um die Funktionalität des Schedulers sondern eher um die Architektur.
Vielleicht ist es besser ich erkläre einmal ganz Simple ausgedrückt was ich vorhabe und wie derzeit denke es lösen zu wollen:

Zum Programm:
Ein Scheduler. Führt zu bestimmten Zeitpunkten Aufgaben aus (Was ein Scheduler halt so macht :D)
Verschiedene solcher Aufgaben können vom Benutzer gespeichert werden (diese werden in einer SQL-Tabelle hinterlegt). Hierzu muss er angeben (vereinfacht):
- Beschreibung der Aufgabe
- Wann bzw. in welchem Intervall sie ausgeführt werden soll
- WAS ausgeführt werden muss (Aufgabentyp) - Wird in Form einer ComboBox zur Auswahl stehen

Mit geht es konkret um das WAS wo ich mein Problem sehe. Dies kann z.B. eben sein, dass einfach nur eine Batchdatei gestartet werden soll (Typ BatchAufgabe) oder halt auch eine Datei von einem FTP-Server geladen wird (Typ FtpDownloadAufgabe). (Es wird oft passieren, dass neue Aufgabentypen zu einem späteren Zeitpunkt hinzugefügt werden müssen. Als Beispiel fällt mir jetzt spontan ein: Es muss eine Log-Datei alle 10 Minuten analysiert werden und bei einem Fehler soll eine E-Mail versendet werden (LogAnalyseAufgabe))

Diese unterschiedlichen Aufgabentypen muss ich ja auch in der Datenbank speichern damit diese beim nächsten Start wieder laden kann.


Mein Lösungsgedanke:
Diese verschiedenen Aufgabentypen werden in Form einer Klasse dargestellt. Um diese gleich behandeln zu können war meine Idee, alle ein Interface implementieren zu lassen damit es dem Scheduler ja egal sein kann welcher Typ sich wirklich dahinter verbirgt. Der Scheduler muss es nur starten (Perform/PerformAsync). Erweiterbar wäre das Ganze dadurch ja auch, falls neue Aufgabentypen dazu kommen. Da kam mir der Gedanke mit einem Pluginsystem, dass ich theoretisch einen neuen Aufgabentyp in Form einer neuen dll in ein Pluginverzeichnis lege und diese vom Programm dann erkannt wird (darum vielleicht der etwas irreführende Titel des Threads)

Dass der Scheduler seine Arbeit verrichtet ist wie gesagt nicht das Problem. Mein Problem liegt eigentlich darin, dass wenn das Programm gestartet wird, die Aufgabeneinträge aus der Datenbank gelesen werden und ich ja irgendwie Instanzen der einzelnen Aufgabentypen erstellen muss. Doof gesagt: Wie weiß mein Programm, dass Aufgabe 2 eine FtpDownloadAufgabe ist und eine neue FtpDownloadAufgabe-Instanz erstellt werden muss.

Hoffe ich konnte es so ein wenig besser erläutern wo mein Problem liegt. Vielleicht ist mein Lösungsgedanke ja auch falsch und ihr könnt mir vielleicht sagen wie man sowas in der Art besser umsetzen kann.

lg
fichz

Thema: Wiederkehrende Tasks in Datenbank speichern und ausführen lassen
Am im Forum: Rund um die Programmierung

Hallo Leute,

mir ist leider kein passender Titel eingefallen darum versuche ich mein Problem hier etwas zu erläutern:

Es soll ein Scheduler erstellt werden welcher zu bestimmten Zeitpunkten "Tasks" starten soll.
Diese verschiedenen "Tasks" werden in einer Datenbank - SQLServer - gespeichert.

Solch ein Task beinhaltet unter anderem die Felder wie Id, Beschreibung, Timestamps, Parameter, etc..
Diese Task können unterschiedliche Funktionen ausführen:

    - Starten einer Batchdatei (.cmd) (kann unter Umständen zusätzliche Parameter beinhalten)
    - Download einer Datei eines FTP-Servers (benötigt Usernamen und Passwort)
    - Auswerten einer Logdatei (Pfad zur Logdatei)
    - Versenden eines E-Mails (E-Mail EMpfänger, Betreff, ...)


Alle diese Funktionen müssen ein Interface (IFunction) implementieren welches im Prinzip nur 2 Member beinhaltet:


public interface IFunction
{
	string Description { get; }
	Task PerformAsync();
}

Eine Implementierung dieses wäre zB.:


public class DelayedTestFunction : IFunction
{
	public string Description
	{
		get { return "Testfunktion mit einem Delay von 3 Sekunden"; }
	}

	public async Task PerformAsync()
	{
		await Task.Delay(3000);
		System.Diagnostics.Debug.Print("Testfunktion");
	}
	
}

Das Hauptprogramm hält nun eine Liste mit IFunctions und führt diese dann zu bestimmten Zeitpunkten aus.

Nun zum Problem:
Wie kann ich diese Tasks in der Datenbank abspeichern, damit ich diese dann auch wieder laden kann?
Genauer gesagt wie weiß ich, dass z.B.: der Task mit der ID 1 eine "BatchFunction" ist damit ich dieser auch beim Instanziieren die notwendigen Parameter mitgeben kann? Sollte ich hier eine Art Factory erstellen welche anhand eines Identifiers diese erstellt?


public static class FunctionFactory
{
	public static IFunction GetFunction(int id, string parameter)
	{
		switch(id)
		{
			case 1:
				return new DelayedTestFunction();
			case 2:
				return new BatchFunction(parameter);
			default:
				throw new ArgumentException("nix gefunden");
		}
	}
}

Am schönsten wäre es ja, wenn eine neue Funktion hinzugefügt wird, diese ohne große Änderungen/Anpassungen verwendet werden kann.
Gibt es für diese Art "Problem" eine saubere Lösung bzw. eine Art Standard wie man so etwas umsetzen sollte??

Falls noch etwas unklar sein sollte bitte einfach fragen.

lg
fichz

Thema: Bei jedem Change in TextBox mit Databinding Daten gegen Datenbank prüfen gibt Performanceprobleme
Am im Forum: GUI: WPF und XAML

Wenn die Textbox.Text Property per Binding an das Viewmodel gebunden ist geht auch einfach

<Textbox Text="{Binding YourProperty, Delay=500}" />

EDIT: http://www.jonathanantoine.com/2011/09/21/wpf-4-5-part-4-the-new-bindings-delay-property/

lg