Laden...
Avatar #avatar-2140.png
tom-essen myCSharp.de - Experte
Entwickler & Consultant NRW Dabei seit 15.05.2005 1.820 Beiträge
Benutzerbeschreibung
Interessen: CAPI, TAPI, TWAIN, Win32, Client/Server, Komponenten-Entwicklung, SharePoint, Azure, Cloud-Dienste. Hardware: Ständig wechselnd 😉

Forenbeiträge von tom-essen Ingesamt 1.820 Beiträge

28.03.2024 - 15:44 Uhr

Hallo,

die mir bekanntesten Zertifizierungsstellen sind z.B. DEKRA und TÜV, aber da gibt es sicher noch mehrere.

Evtl. sollte man die einfach mal anschreiben und nachfragen. Je nach Kunden-Klientel gibt es evtl. sogar darauf spezialisierte Anbieter.

Es gibt hier ja auch zahlreiche Faktoren zu berücksichtigen (z.B. für welche Länder die Zertifizierung gelten soll, in welchen Sparten die Lösung eingesetzt werden soll, ...). Zusätzlich gibt es bestimmt auch noch Abstufungen in dem Bereich.

Das alles (und bestimmt noch viel mehr) wird man durch die entsprechenden Zertifizierungsstellen erfahren, evtl. erhält man dann sogar einen Katalog mit Anforderungen.

Aber ich vermute mal, dass man eine ungefähre Preisauskunft auch erst nach ausführlichen Beratungsgesprächen erhält.

28.03.2024 - 15:35 Uhr

Hallo,

mich würde mal das Ergebnis der Umfrage interessieren.

Am Ende der Umfrage wird nur angezeigt, wie viele die Fragen beantwortet haben, aber nicht mit welchem Ergebnis.

28.03.2024 - 15:00 Uhr

Hallo,

als kleine Ergänzung sei noch erwähnt, dass es für Threads die Eigenschaft IsBackground gibt, welche man auf true setzen sollte (siehe auch Thread.IsBackground). Dadurch wird verhindert, dass ein noch laufender Thread die Beendung der Anwendung verhindert.

28.03.2024 - 14:52 Uhr

Hallo,

evtl. noch als Ergänzung:

herbivore hatte ja bereits erwähnt, dass ein allgemeiner EventHandler erstmal ausreicht, da der erste Parameter (sender) ja die Button-Instanz zurück gibt.

Um nun zu wissen, um welchen Button es sich handelt, kann man entweder den Namen prüfen oder man verwendet die Tag-Eigenschaft des Buttons bei Erstellung, um dort weitere Informationen abzulegen, welche dann im EventHandler entsprechend verwendet werden können.

private void GlobalEventHandlerForButtonClick(object sender, EventArgs e)
{
  if (sender is Button button)
  {
    if (button.Name == "dynamicButton1")
    {
      // Code to handle click event for dynamicButton1
    } else 
      if (button.Tag != null) 
      {
        // Check data in button.Tag
      }
  }
}
28.03.2024 - 14:40 Uhr

Hallo,

als kleiner Tipp sei hier einmal das Framework NetOffice erwähnt, welches einen Wrapper für die Microsoft Office-Anwendungen bereit stellt.

Damit kann man per Fernsteuerung der Anwendungen so ziemlich alles machen, was sonst auch mit VBA geht.

Zu Einsteigen gibt es auch zahlreiche Beispiele.

16.01.2019 - 13:31 Uhr

Hallo,

eine andere Möglichkeit wäre die Nutzung der von Amazon, Google oder Microsoft angebotenen Online Services. Diese sind für einfache Testprojekte auch kostenfrei nutzbar und bieten u. a. OCR.

Zumindest für Microsoft gibt es auch vorgefertigte C#-Samples für die Cognitive Services.

16.05.2018 - 10:33 Uhr

Hallo,

es gibt doch in jeder AppDomain-Instanz ein Event AssemblyResolve. Dieses kannst du abbonieren, und dann bei den gennanten Assemblies den korrekten Verweis zurück geben.

08.08.2016 - 13:20 Uhr

Hallo zusammen,

ich habe nun eine aktuelle Version hochgeladen (64-bit), der Link ist im ersten Beitrag. Voraussetzung ist mittlerweile .NET 4. In der neuen Version ist der Zugriff auf SharePoint enthalten, an der CRM-Integration arbeite ich noch, bzw. habe diese noch nicht "Database-Explorer"-kompatibel.

24.07.2016 - 01:18 Uhr

Hallo Janserino,

ich habe aktuell ebenfalls das Problem, Printer++ nicht unter Windows 8 zum Laufen zu bekommen. Könnest du verraten, was du gemacht hast, damit Printer++ unter Windows 8 funktioniert?

27.06.2016 - 15:08 Uhr

Hallo,

es scheint dass man explizit angeben muss, von welchem Account die Freigaben abgefragt werden sollen:

Im folgenden Beispiel rufe ich den freigegebenen Ordner "Meine Kontakte" des Accounts mit der E-Mail "Name@Domain.de" ab:


FolderId rfRootFolderid = new FolderId(WellKnownFolderName.Root, "Name@Domain.de");
FolderView fvFolderView = new FolderView(1000);
SearchFilter sfSearchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Meine Kontakte");
FindFoldersResults ffoldres = service.FindFolders(rfRootFolderid, sfSearchFilter, fvFolderView);

Damit komme ich zumindest an die Kontakte. Hier muss allerdings beachtet werden, dass es sich beim gefundenen Ordner nicht zwingend um einen "ContactFolder" handelt, sondern meistens einen "SearchFolder".

Ich habe bisher leider noch nicht rausgefunden, wie man nach den freigebenden Accounts suchen kann.

26.04.2016 - 13:24 Uhr

Hallo,

wir setzen bei uns seit kurzem Passwordstate ein. Ich weiß nicht, wie teuer das war/ist, aber von der Funktionalität her ist es ganz gut, und kann sher detailliert eingestellt werden, sogar eine API ist dabei.

03.03.2016 - 07:13 Uhr

Hallo,

ich habe mir einen zentralen Admin-Server geschrieben, welcher u.a. für die zentrale Speicherung der Konfiguration, für Updates, Lizensierung, ... geeignet ist.

Die Clients suchen sich per Broadcast beim Start den Admin-Server und halten i.d. Regel die Verbindung bis zur Beendigung des Programms.
Sobald das Programm beendet wird (oder abstürzt), wird ja auch die Verbindung zum Server getrennt.
Ich kann somit zu jeder Zeit feststellen, welche Anwendung wann wo läuft.

Um klein anzufangen: Beim Start einen Background-Thread starten, welcher per Broadcast einen Server sucht, sich gegen diesen verbindet, seine Daten sendet (wer bin ich, ...) und die Verbindung offen hält.
Erweitert kann der Thread dann noch regelmäßig Nachrichten senden (z.B. einmal pro Minute), quasi als Lebenszeichen (heartbeat). Bleibt die Meldung längere Zeit am Server aus, kann dieser annehmen, dass das Programm nicht mehr läuft bzw. hängt, und die Verbindung selbst abbauen.

16.11.2015 - 18:10 Uhr

Hallo,

bei mir dauert eine 15 GB-Excel-Datei mit einer Tabelle ca. 24 Sekunden, bis die DataTable vollständig geladen wurde, würde bei einer 24GB-Datei also ebenfalls in den von dir genannten Bereich fallen.
Ich mach's allerdings komplett ohne Excel oder Interop-dll's, sondern nur über die Standard-.NET-Typen.

EDIT: Sorry, hatte mich vertippt: Ich meinte in beiden Fällen MB, nicht GB! Sonst wär das eine geniale Performance gewesen 😁

29.10.2015 - 07:29 Uhr

Hallo,

funktioniert das alles nicht mehr

Das hilft uns nicht viel weiter.
Was genau funktioniert nicht (Cursor wird nicht gesetzt, Text wird falsch eingefügt, falscher text markiert, wird eine Exception geworfen, wenn ja welche .....)?

Mit dieses Informationen können wir die Ursache bestimmt besser eingrenzen.

@nicky: Es soll wohl der markierte Text durch ein öffnenes und schließendes HTML-Tag ersetzt werden.

28.10.2015 - 08:50 Uhr

Hallo,

Zumindest was die Zwangstrennung und die wechselnde IP-Adfresse angeht, dafür gibt es ja die DynDns-Dienste, auch kostenfreie, wo man dann nur einmal im Monat bestätigen muss. Die meisten Router bieten dafür ja auch bereits Support.

EDIT: Ich habe selbst auch einen eigenen Webserver auf meinem NAS laufen, wo ich einfache Dienste für meine eigenen Zwecke und einge wenige Bekannte und Verwandte zur Verfügung stelle. Bei Massennutzung, sprich wenn eine unbestimmte Anzahl externer Benutzer Zugriff erhält, gebe ich herbivore recht, dass es dann schnell zu Beeinträchtigungen kommen kann.

Zudem muss man sich bei öffentlich zur Verfügung gestellten Diensten auch immer mit einer möglicherweise garantierten oder zumindest erwarteten Erreichbarkeit auseinander setzen, auch rechtliche Aspekte sind dann evtl. zu beachten.

28.10.2015 - 08:48 Uhr

@p!lle, @wirago:

Sorry, hab die Smileys irgendwie heute nacht nicht wargenommen, und dadurch die Ironie in der Frage nicht bemerkt.

28.10.2015 - 00:58 Uhr

Hallo,

bei den Homepages kommt es noch darauf an, welche Plattform du verwenden möchtest (IIS oder XAMPP). Für zweiteres kann man auch ein ggf. vorhandenes NAS entsprechend einrichten.

Für einen SQL-Server (selbst wenn es nur die Express-Edition ist) sollte man min. 4 GB RAM haben, aber dann ist gleichzeitiges arbeiten geschweige den entwickeln schon nicht mehr schön. Besser wären hier 8 GB, die max. Speichernutzung kann man im Server einstellen, damit der sich z.B. nicht mehr als 2 GB nimmt. Man muss dann aber auch bedenken, dass damit keine großen Datenmengen ausgewertet werden sollten (darunter fasse ich mal alles ab 100.000 Datensätzen zusammen, je nach Art und Komplexität der Abfragen evtl. sogar weniger).

Aber das sind alles nur ganz grobe Richtwerte, gibt ja noch mehr Rahmenbedingungen (CPU, Festplatte, ...)

28.10.2015 - 00:41 Uhr

Hallo,

da ja bald der 5. Geburtstag des DBE ist (zumindest was den Threadstart angeht), wollte ich mal kurz informieren, dass die Entwicklung natürlich immer weiter gegangen ist.

Ich werde demnächst eine neue Version hochladen, welche dann zahlreiche Neuerungen mitbringen wird (u.a. SharePoint-Support über die Webservices, komplexe SQL-Abfragen auch für Nicht-SQL-Datenquellen, also z.B. CSV-Dateien, und viele kleine Anpassungen, Fehler-Korrekturen, ...).

EDIT: Zudem alles auf .NET 4 umgestellt.

Arbeitet jemand mit dem Microsoft Dynamics CRM? Hier könnte ich demnächst ein paar Tester brauchen (aktuell teste ich sowohl mit v4 und 2011 onPremise, langfristig sollen aber auch 2013 onpremis und online sowie CRM 365 unterstützt werden).

27.10.2015 - 23:50 Uhr

Hallo,

unabhängig von der o.g. Lösung möchte ich noch den Hinweis auf ROW_NUMBER (Transact SQL) geben, welches Zeilennummern zu einem Abfrageergebnis hinzufügt, welche dann in einer übergeordneten Abfrage z.B. über

RowNr >= (max(RowNr)-20)

verwendet werden könnten.

27.10.2015 - 23:41 Uhr

Hallo Wirago,

MSDN steht für "MicroSoft Developer Network" (https://msdn.microsoft.com/de-DE/) und ist die erste Anlaufstelle u.a. für Fragen zu .NET-Klassen und Methoden (z.B. System.Console.WriteLine ).
Die sollte jeder .NET-Programmierer kennen und nutzen.

Ich zB hab bei meinem Blog das Feedback bekommen, dass die Leute gar keine größeren Anleitungen wollen, sondern eher gezielte Snippets zu akuten Problemen.

Die Gefahr, dass Du hier sehr viel Zeit rein steckst, ohne Deine gewünschte Zielgruppe zu erreichen; die schätze ich als relativ hoch ein.

Hierzu gab es letztens in der c't 22/15, Artikel Erfolgreich bloggen (der Link zeigt nur den ersten Absatz, der Artikel kostet 2,49 €, für die ohne Abo) einige Hinweise, wie man genau der von Abt angesprochenen Gefahr (in der Masse unter zu gehen) begegnen kann

28.07.2015 - 23:25 Uhr

Hallo,

evtl. noch ein Hinweis:
Wenn man den Zugriff komplett über die Webservices abwickelt, benötigt man die Assemblies nicht, und ist (zumindest bei den einfachen Dingen wie z.B. Abfrage eines Elements) relativ versionsunabhängig.

Ich benutze für den Zugriff auf SharePoint-Versionen zwischen 2007 und 2013 in den meisten Fällen denselben WebService (abfragen, erstellen, aktualisieren, Up- und Download von Dokumenten).

09.04.2015 - 16:37 Uhr

Hallo,

dieses Verhalten hängt mit dem für diesen Dateityp verwendeten Such-Provider in SharePoint zusammen und kann so leider nicht geändert werden. Dieses Verhalten ist somit ein (vermutlich) von Microsoft gewünschtes Verhalten. Ich kann hier allerdings nur für SP 2007/2010 sprechen, bzgl. 2013 habe ich dies noch nicht getestet.

09.04.2015 - 13:29 Uhr

Hallo UZI,

ist das Projekt noch aktuell?

Klingt für mich sehr interessant. Ich höre auf der Arbeit auch gerne Musik über Youtube, aber bei Telefonaten muss ich dann immer erst das Fenster suchen (falls es im Hintergrund gelandet ist) und die Weidergabe stoppen. Über eine eigene Anwendung könnte ich das dann automatisieren.

05.12.2014 - 16:03 Uhr

Hallo zusammen,

ich danke euch für die interessante Diskussion meines "Problems".
Ich denke, ich werde die abstrakten Hilfsklassen weiter verwenden, und habe ja auch für die weitere Verwendung ein paar Hinweise erhalten, die beachtet werden sollten.

04.12.2014 - 10:07 Uhr

Hallo zusammen,

muss mich beruflich nun auch mit dem Thema befassen, in meinem Fall wird primär erstmal der TAPI-Treiber der Firma Swyx verwendet.

Ich habe mir nun als erstes mal die kostenfreien Beispiele angeschaut:*TAPI 3 in C# - Get Lines and make a call, see calls incomming *TAPI 3.0 Application development using C#.NET *ITAPI3 - Managed .NET Library for TAPI 3.0 Development
Hinweis: Wer zwingend TAPI-2-fähige Beispiele benötigt, findet auf dieser Seite einen Link dazu

Beim 2. gab' es noch einen klassischen Fehler (threadübergreifende UI-Aktualisierung), aber dieser war schnell behoben.

Die ersten beiden dienen prinzipiell erstmal nur zur Signalisierung eingehender Rufe und zum Wählen einer Telefonnummer, beim 2. hat man zusätzlich noch die Möglichkeit, eingehende Rufe an eine vorgegebene Nummer weiterzuleiten.
Das dritte Beispiel ist sehr viel umfangreicher, hier gibt es mehrere separate Beispiele (u.a. für eingehend, ausgehend, DTMF, ...). Hier muss man zunächst die Samples separat entpacken und dann in den Projekten die dll neu hinzufügen, anschließend liefen aber auch diese Beispiele
anstandlos.

Noch ein selbst gefundener Link der Vollständigkeit halber:
http://www.traysoft.com/
Kosten: $399 pro Entwickler.

Zu den anderen geposteten Links:*www.julmar.com: Ist aus dem TAPI-Bereich ausgestiegen, bietet aber Links zu anderen Source-Codes (u.a. CodePlex) sowie freien Tools an http://www.toptapi.de/produkte/toptapi/tapi.html: Ist ebenfalls ausgestiegen, Support nur noch für Alt-Kunden ww**w.gotdotnet.com/...: Die Seite existiert nicht mehr *http://www.tapiex.com/product.htm: Es gibt eine Trial, ansonsten reichen die preise aktuell von 89 € - 1.080 €

Mein erstes Fazit:
Bis auf den zuvor erwähnten kleinen Fehler beim 2. und die manuelle Nacharbeit beim 3. Beispiel haben alle freien Lösungen auf Anhieb funktioniert.
Für einen ersten Einstieg sind diese Lösungen absolut ausreichend. Hiermit kann man die ersten Erfahrungen sammeln und dann bei Bedarf die Trials testen, bevor man Geld ausgibt (wenn dies dann überhaupt noch notwendig ist).

03.12.2014 - 13:50 Uhr

Hallo zusammen,

ich habe mir in letzter Zeit etwas angewöhnt, wo ich mir nicht sicher bin, ob dies richtig ist.

Ich habe ein Interface, welches von mehreren Klassen implementiert wird. Das Interface enthält einige Properties und eine überschaubare Menge an Methoden (bis zu 5).


public interface IStep
{
    ReadOnlyList<object> Connectors { get; }

    bool Apply(object data);
}

public class Destination : IStep
{
    public ReadOnlyList<object> Connectors { get; private set; }

    public Destination()
    {
      Connectors = new List<object>();
    }

    public bool Apply(object data)
    {
      return false;
    }
}

Nun habe ich in einigen Fällen eine abstrakte Klasse von diesem Interface angeleitet und davon wiederum die o.g. Klassen.


public interface IStep
{
    ReadOnlyList<object> Connectors { get; }

    bool Apply(object data);
}

public abstract class StepBase : IStep
{
    public ReadOnlyList<object> Connectors { get; private set; }

    public StepBase()
    {
      Connectors = new List<object>();
    }

    public virtual bool Apply(object data)
    {
      return false;
    }
}

public class Destination : StepBase
{
}

Ich kann dadurch viele Dinge bereits in der Basisklasse durchführen (Einrichten der Properties, Standardverhalten der Methoden) und muss nur noch die Zusatzfunktionen in der abgeleiteten Klasse implementieren. Erweiterungen im Interface muss ich primär ertmal nur in der abstrakten Basisklasse implementieren, für die abgeleiteten Klassen kann ich dies nach und nach einzeln implementieren, testen und z.B. in Subversion committen.

Mein persönlicher Eindruck ist allerdings, dass ich dadurch das Prinzip der Interfaces etwas verwässere, weil die Zwischenstufe mit der abstrakten Klasse zwischen dem Interface und dem letztendlichen Abonennten liegt.

Wie seht ihr das.

29.07.2014 - 11:46 Uhr

Hallo,

@Dani432123:
Man sollte sich schon alles anschauen.
Deine Anwendung reagiert erstmal nur auf Ereignisse innerhalb der eigenen Fenster.

Um nun globale Maus- oder Tastaturereignisse abzufangen, muss man etwas mehr Aufwand betreiben, und sollte dabei auch keine Fehler machen, denn sonst funktioniert ggf. die Maus oder Tastatur nicht mehr korrekt (spätestens bis zum Neustart).

Für das von dir gewünschte Verhalten muss man Windows zunächst mitteilen, dass man über alle Ereignisse der Maus / Tastatur benachrichtigt werden möchte, und Windows dann auch eine entsprechende Routine mitteilen. Das alles ist in dem o.g. Projekt erklärt.

27.06.2014 - 07:56 Uhr

Hallo,

In wiefern Mailsystem.NET für Mono geeignet ist, kann ich nicht sagen, aber ich benutze es selber, auch für den von dir genannten Zweck und bin ganz zufrieden. Es ist schnell eingebunden und Postfächer sind mit wenigen Befehlen abgefragt.

Es gibt bisher nur die folgenden Dinge, die mich stören:

  • Es wurde ein eigenes Message-Objekt eingeführt
  • Ausgelesene Mails werden automatisch als gelesen markiert
  • Das Verbinden dauert etwas länger, weil direkt alle Ordner einlesen werden
  • EDIT: Bzgl. Verbinden habe ich mittlerweile eine weitere Methode entdeckt, welche das komplette EInlesen verhindert, dadurch geht's erheblich schneller
27.05.2014 - 11:41 Uhr

Hallo Maffi1986,

wenn du druckst, hast du ja in den Eventargumenten eine Eigenschaft MorePages (oder so ähnlich). Diese muss auf true gesetzt werden, wenn noch weitere Seiten zu drucken sind. Du musst dir in einer internen variable merken, welche Zeile du zuletzt gedruckt hast, und dann beim nächsten Aufruf diese als Basis für die weiteren Zeilen nehmen.

Am Rande bemerkt, ist Drucken auch nicht gerade das beste Thema, um in C# einzusteigen, da es doch ein sehr komplexes Thema ist.

13.05.2014 - 07:58 Uhr

Hallo Brainwave,

auch wenn es eine (Kunden-)Anforderung ist, die evtl. sogar im Kontext Sinn machen könnte, gebe ich Lars recht, dass solche Einträge stark vom Standard abweichen und man zumindest entsprechend darüber informieren sollte.

Der einzige Grund, welcher mir einfällt ist, dass so wenig Platz in der Form ist, dass dieses Vorgehen notwendig ist.

24.04.2014 - 13:40 Uhr

Hallo zaimen,

was genau willst du einbinden, den gesamten Content?
Oder willst du im SharePoint eine Textbox haben, wo du einen Query eingibst, welcher dann ausgeführt und das Ergebnis als Tabelle angezeigt werden soll.

Ersteres geht - wie du schon angemerkt hast - über Access, dabei wird dann für jede Tabelle einie eigene Liste in der neuen Website angelegt.

Zweiteres geht zumindest nicht mit Bordmitteln. Ggf. mit einer eigenen Erweiterung (ist dann allerdings eine Menge an Aufwand) oder über ein DataViewerWebPart, damit aber auch nur begrenzt dynamisch, sprich keine direkte Eingabe der Query, höchstens Vorgabe der Felder und Filterwerte.

09.04.2014 - 16:11 Uhr

Hallo,

Zitat:

Diese Queue reagiert darauf, indem die Quit-Nachrichten übersprungen werden, falls noch weitere (ordentliche) Items drin sind.
Es kann zwar Fälle geben, in denen es sinnvoll ist, die Quit-Nachricht ans Ende zu verschieben, aber ich halte es nicht für ausgemacht, dass das immer oder auch nur meistens das Gewünschte ist. Deshalb lasse ich meine Queue so wie sie ist. 😃

Für diesen Fall könnte man SyncQueue um die Eigenschaft IsEmpty erweitern, welche bei einem Quit-Objekt prüft, ob die Queue leer ist. Falls nicht, wird das Objekt einfach wieder in die Queue gelegt, d.h. hier wären die Consumer wieder in der Pflicht.

04.04.2014 - 09:26 Uhr

Hallo,

z.B. für den Firefoc habe ich mal eine Erweiterung gesehen, welche beim Rechtsklick in einer Seite die Option angeboten hat, direkt einen Link im BB-Code in die Zwischenablage zu kopieren. Finde aber den Namen nicht mehr. Wenn ich es später nochmal wiederfinde, poste ich die Infos hier.

01.04.2014 - 07:42 Uhr

Hallo,

Martin Fowler hat es mal so beschrieben: Jeder Entwickler hat pro Tag eine gewisses Mana(Zauberkraft) Nach 8-10 Stunden ist diese Kraft verbraucht, sobald er angefangen hat seine Kraft zu nutzen, dies schliesst Pausen ausdrücklich ein, ist die Kraft verbraucht.

Gerade die Argumentation mit den Pausen kann ich nicht nachvollziehen. In Pausen hat man doch die Möglichkeit, sich zu entspannen, mit anderen mal zu diskutieren, ... Das würde für mich dann eher bedeuten, dass man (um in der Metapher zu bleiben) die Zauberkraft wieder aufgeladen wird.

Und hier liegt auch - meiner Meinung nach - das größte Potential aber auch die größte Gefahr der Heimarbeit. Man kann seine Pausen frei gestalten, mal komplett abschalten, sich vielleicht sogar ein paar Minuten hinlegen und dann wieder frisch ans Werk gehen.
Aber man muss auch genug Selbstdisziplin haben, dass die Pausen nicht irgendwann überhand nehmen.

Ich persönlich habe kein Problem, den ganzen Tag vor dem Rechner zu sitzen und zu programmieren, jede Aufgabe ich für mich eine Herausforderung. Aber ich mache auch viele Pausen (wodurch ich oft auch mal 10-12 Stunden im Büro bin).
Heimarbeit fände ich persönlich interessant, hab's noch nie über einen längeren Zeitraum getestet, aber ich weis auch genau, dass bei mir die Ablenkungsgefahr sehr groß ist.

Ich kann mir aber auch gut vorstellen, dass es Menschen gibt, die in einer bestimmten Zeit ihre Arbeit erledigen, aber danach einfach komplett Abstand vom Job nehmen wollen. Für diese wäre Heimarbeit dann eher Fluch.

01.04.2014 - 07:28 Uhr

Hallo KPhoenix,

der Zugriff auf SharePoint über das Objektmodell ist keineswegs veraltet. Die Assemblies findest du auch jedem SharePoint-Server im GAC, sofern du auf deinem Entwicklungssystem also einen SharePoint installiert hast, kannst du diese Assemblies einfach in einem Visual-Studio-Projekt einbinden.

Ansonsten musst du dir die Assemblies rauskopieren und manuell in dein Projekt einbinden. Die anfängliche Entwicklung mit dem Objektmodell sollte anfangs allerdings besser auf einem SharePoint-Server erfolgen, denn nur dann funktioniert auch das debugging.

Zudem kann ich dir nicht sagen, ob man mit dem Objektmodell auch auf SharePoint-Server im Netz zugreifen kann, ich verwende das aktuell nur lokal auf einem SharePoint-Server.

Sowohl auf den Microsoft-Seiten (z.B. SPSite Class) als auch im Netz finden sich zahlreiche Beispiele, wie man z.B. eine Datei in SharePoint hochlädt.

31.03.2014 - 10:27 Uhr

Hallo,

beides hat natürlich seine Vor- und Nachteile.

Wenn man Kinder hat, ist ein Heimarbeitsplatz nur dann OK, wenn man eine gute Rückzugsmöglichkeit hat, wo man nicht durch Frau und/oder Kind gestört werden kann. Allerdings frisst dass dann die Vorteile eines Heimarbeitsplatzes wieder auf, weil man ja wieder eingeschränkter ist.

Umgekehrt hat man dann aber auch eine schöne Ausrede, um nicht zu einer ungeliebten Familienfeier zu gehen ("Nee du, ich muss noch arbeiten..." 😉).

Man muss zu Hause die Arbeitszeiten besser im Blick haben, sprich zum einen die Pausenzeiten rausrechnen, aber auch nicht zuviel arbeiten (es sei denn, die Familie spielt mit und es wird bezahlt).

EDIT: Ich arbeite in einem rel. kleinen Unternehmen (ca. 15 MA's) als Entwickler. Es gibt zwar feste Bürozeiten (8 bis 16 Uhr), aber man kann auch schonmal später kommen oder früher gehen, wenn's vorher abgeklärt wurde. Und es gibt einen externen Zugang, d.h. man kommt auch schnell an die Daten bzw. Umgebung im Büro von zu Hause dran.

Und für kleine Änderungen am Code gibt's ja die Quellcode-Verwaltung.

19.03.2014 - 09:33 Uhr

Hallo ,

YLIREBUS sucht aber wohl ein (UML-)Tool oder noch eher ein (UML-)Control, dass er in sein Fenster einbinden kann und bei dem er aus seinem Programm steuern kann, welche Knoten und welche Kanten angezeigt werden sollen.

ah, OK, also doch eher was in Richtung des NetworkView-Framework -Vorschlags von MrSparkle?

Daran versuche ich mich gerade selber. Bin aktuell an dem Problem, die Verbindungslinien korrekt zu zeichnen (kürzester Weg, Überschneidungen, ...), alleine das ist schon eine Herausforderung.

EDIT: An ähnlichen Komponenten oder Frameworks wie dem von MrSparkle vorgeschlagenen habe ich sonst jetzt so auf die Schnelle auch nichts gefunden.

19.03.2014 - 08:02 Uhr

Hallo YLIREBUS,

Tools gibt es massig, unter dem Aspekt C# habe ich http://sourceforge.net/projects/umldesigner/ gefunden, d.h. hier hast du auch gleich noch den Code dazu.

Ansonsten einfach nach "C#" und "UML" suchen, ggf. ergänzt um "Tools", "Download" o.ä.

18.03.2014 - 07:51 Uhr

Hallo,

mir fällt dazu als Stichwort noch UML ein, auch dazu gibt es zahlreiche Tools.
Zusätzlich kann man die Verbindungen ja auch noch weiter unterscheiden (1:n, n:1 n:m).

03.03.2014 - 16:04 Uhr

Hallo,
nimm noch Gross- und Kleinbuchstaben mit dazu sowie Binde- und Unterstrich, dann hast du pro Zeichen 64 mögliche Werte (=6 bit). Dann kodierst du das Datum binär und schlüsselst alle 6 bit auf den Zeichenvorrat um.

13.02.2014 - 13:56 Uhr

Hallo,

DataGridView.EndEdit alleine hilf aber auchnicht unbedingt.
Ich musste dann noch die Datatable über DataBinding anbinden und im Binding auch nochmal EndEdit aufrufen.

06.02.2014 - 13:45 Uhr

Hallo,

da überlegt man ob die Frage ernst gemeint ist:

String.LastIndexOf liefert -1 zurück, wenn der gesuchte Text NICHT gefunden wurde (steht direkt unter 'Hinweise') ( [Hinweis] Wie poste ich richtig? 1.1)

Deine Frage sollte eher sein, warum der gesuchte Text nicht in entry steht, und dafür wäre wiederum der Debugger hilfreich.

29.01.2014 - 11:44 Uhr

Hallo,

die "empfohlene" Art wäre der Zugriff über die Web-API, damit ist man unabhängig vom Ort der Installation (lokal, Server, Office365), der SPD macht alle Änderungen ebenfalls darüber.

16.12.2013 - 17:25 Uhr

Hallo,

sehr schönes Control, jetzt fehlt eigentlich nur noch die Favoritenliste aus dem Explorer, ich hab' allerdings bisher noch nicht rausfinden können, wo die verwaltet wird.

20.11.2013 - 15:45 Uhr

Hallo,

da ich aktuell selbst vor dem Problem stand, eine .NET-CE-3.5-Anwendung persistent, also Hard-Reset-sicher zu machen, hier mal meine Erkenntnisse, welche allerdings auch nur die Mototrola-MD3000-Serie betreffen. Ob dies auch anderen Plattformen ähnlich umgesetzt werden kann, weis ist leider nicht.

Zunächst einmal gibt es auf dieser Plattform zwei Hauptordner "Platform" und "Application" welche persistent sind. Dateien, welche hierhin kopiert werden, überleben auch einen Hard-Reset.

Dateien in "Platform" mit der Endung "CPY" enthalten Informationen, welche Dateien vohin kopiert werden sollen, z.B.

\application\NETCFv35.wce.armv4.cab > \windows\NETCFv35.wce.armv4.cab

Damit wird z.B. das .NET-CF-3.5-Framework-Installationspaket in das Windows-Verzeichnis kopiert.

Im nächsten Schritt muss dieses nun gestartet werden. Dazu legt man einen Registryeintrag an. Dazu dienen die REG-Dateien im "Platform"-Ordner, diese werden nach dem CPY-Dateien abgearbeitet.

Bei den REG-Dateien handelt es sich um die von den Desktop-Systemen bekannten REG-Dateien, lediglich die Registry selbst hat eine etwas andere Struktur.
Uns interessiert aktuell nur der Ast HKEY_CURRENT_USER\Software\Symbol\Startup\Programs. Hier liegen Unterverzeichnisse mit nach einem Kalt-/Warmstart zu startenden Anwendungen, in unserem Fall:

[HKEY_CURRENT_USER\Software\Symbol\Startup\Programs\Prog17]
"Name"="\windows\wceload.exe"
"Command"="/noaskdest \windows\NETCFv35.wce.armv4.cab"
"Continue"=dword:0
"ColdBootOnly"=dword:1

wceload.exe ist für die Installation von CAB-Dateien zuständig, der Parameter "/noaskdest" unterdrückt die Frage nach einem alternativen Zielverzeichnis. Es gibt auch noch "/noui", ist allerdings bei größeren Installationen nicht zu emphehlen, da der Benutzer in der Zeit nicht weis, warum das Gerät gerade "scheinbar" nichts tut.

Ist der Eintrag "ColdBootOnly" auf 1, wird die Anwendung nur nach einem Hard-Reset aufgerufen.

Zu beachten wäre noch, dass max. 20 Unterschlüssel (also von PROG1 bis PROG20) unterstützt werden. man kann zwar mehr anlegen, alle ab PROG21 werden allerdings ignoriert. Zudem sollte man prüfen, ob die Einträge bereits belegt sind (z.B. durch andere Anwendungen).

Auf dieselbe Weise kann man seine eigene Anwendung deployen und mit weiteren Registry-Einträgen ggf. direkt im AppCenter veröffentlichen.

20.11.2013 - 13:51 Uhr

Hallo biu,

sollen die Werte den einfach nur angezeigt werden, oder auch farbig hervorgehoben werden?

Man kann xlsx-Dateien auch selber erstellen (siehe auch In Word geöffnetes Dokument mit OpenXML manipulieren)

14.11.2013 - 14:45 Uhr

Hallo,

um sich mal den internen Aufbau der OpenXML-Dateien anzuschauen, kann ich nur das "Open XML SDK 2.0 Productivity Tool for Microsoft Office" empfehlen.

Je nach Auswahl im Document Explorer wird der Quellcode angezeigt, mit dem der Dokument-Zweig erstellt werden kann.

13.11.2013 - 17:17 Uhr

Hallo script1,

ist den sichergestellt, dass die von dir aus der DB ausgelesenen MAC-Adressen korrekt an die WakeUp-Funktion übergeben werden. Denn entweder werden die MAC-Adressen falsch ausgelesen/konvertiert oder die WakeUp-Funktion läuft nicht korrekt.

Da zweitere aber bereits getestet wurde (auch ich konnte keinen Fehler finden), scheint eher der erste Teil einer genaueren Prüfung zu bedürfen.

18.10.2013 - 17:35 Uhr

Hallo!

@MrSparkle:
So wie ich die ursprüngliche Frage verstanden habe, geht es genau darum, möglichst viele Adressen bzw. Strassen zu erfassen (evtl. für eine automatische PLZ- und Orts-Suche).

Bzgl. der Lizenz sollte es zumindest für private und nicht-kommerzielle Projekte keine Einschränkungen geben.

18.10.2013 - 08:00 Uhr

Hallo!

ich bin ebenfalls aktuell dabei, meine Mitgliederverwaltung von DTA auf SEPA-XML umzustellen.

Ich habe mir auch bereits die XML-Spezifikationen dazu geladen und arbeite mich da gerade ein. Das i20022-Projekt kannte ich noch nicht, werde ich mir mal anschauen.

Sobald ich neue Informationen habe, werde ich diese hier weitergeben.