Laden...

Forenbeiträge von tASven Ingesamt 62 Beiträge

08.11.2016 - 14:44 Uhr

Vermutlich suchst du so was: https://nfilestorage.codeplex.com (Ist leider schon etwas älter).
Alternativ sicherlich auch http://www.litedb.org - Kann genau so wie MongoDb auch ein GridFS ähnliches Konstrukt 😉

30.09.2016 - 09:42 Uhr

Das Programm in .NET neu zu bauen ist keine Alternative?
Evtl. wirst du mit dem was: What is IDR? ?

30.09.2016 - 09:18 Uhr

Ich hatte mit dem Teil mal Diffs von Objekten gemacht und fand das ganz brauchbar: https://github.com/GregFinzer/Compare-Net-Objects

30.09.2016 - 09:05 Uhr

Unter Scott Hanselmann - Creating a NuGet Package in 7 easy steps - Plus using NuGet to integrate ASP.NET MVC 3 into existing Web Forms applications gibt es ca. ab der Hälfte des Posts (Ab "How I made my own NuGet package and you should too") eine Anleitung wie man mit der NuGet.exe ein nuget Paket bauen kann.

29.09.2016 - 14:40 Uhr

Frage: wie würdest du es denn in MySQL machen?

Und wie greifst du auf deine SQLite DB zu?

09.05.2016 - 09:16 Uhr

Könnt ihr mir die Sachen bitte auch schicken? Fände ich auch interessant 😃

06.05.2016 - 17:26 Uhr

Ich denke dieses Erwachen kommt erst, wenn es so einen Ausfall mal wirklich gab 😉
Server und Storage sind redundant bei uns ausgelegt - ausfälle gab es shon öfter, aber nicht so schlimm das man nicht weiter arbeiten konnte.

06.05.2016 - 09:56 Uhr

Warum ist eine Gesamtlösung in der Cloud (zB. Visual Studio Team Services) nichts für euch?

Ganz einfach: Wegen dem "Cloud".
Der Quellcode unserer Anwendungen liegt ausschließlich Inhouse und auf Band bei den Geschäftsführern zu Hause im Safe 😉

Dazu kommen Argumente wie: "Wir wollen uns nicht abhängig machen" oder "Da weiß doch niemand was mit den Daten passiert" oder "Wenn das Internet weg ist, können wir alle nicht mehr arbeiten".

ne ne ne.. mit Cloud brauchst du hier nicht zu kommen 😉

06.05.2016 - 09:34 Uhr

Unser Wiki war vorher ein Jahrelang ein Dokuwiki mit 3 kleineren Plugins welche wir selbst gebaut hatten.
Da in dem Dokuwiki nur begrenzt dokumentiert wurde (Argumentation: diese Wiki-Syntax sei viel zu umständlich, Bilder lassen sich nur umständlich einfügen) wurde über längere Zeit ein neues Wiki gesucht und letzendlich wurde sich für Confluence entscheiden.
In der tat wird seit dem mehr dokumentiert (vor allem, wenn man es mit Bildern dokumentieren kann und möglichst wenig dazu schreiben muss) - aber auch hier dibt es diverse defizite wie z.b. Fehlende Formatierungsmöglichkeiten was Schriftarten und Farben angeht. Außerdem kann man namensräume nicht mehr so nutzen wie man es vorher gewohnt war, weil eine Seitenname (z.B. "Info") nur ein einziges mal im ganzen namespace vorkommen kann.
Das ganze Confluence hat uns nicht nur die Investitionskosten der Software gekostet, sondern auch eine massive Hardware-Erweiterung des "Wiki-Servers".
Wo das Dokuwiki vorher ein simples PHP Script war, welches auf einer VM mit einer vCPU und 512MB RAM auskam, läuft Confluence jetzt halbwegs flüssig auf einer VM mit 4 vCPU´s und 8 GB RAM - wie gut das Hardware-Preise immer mehr sinken 😉
Zusätzlich hat sich noch niemand die zeit genommen die Einträge aus dem alten Wiki in Confluence zu übertragen, weshalb aktuell 2 Wiki-Systeme im Einsatz sind - wobei das Dokuwiki nur readonly ist.

Immerhin dokumentieren die meisten Entwickler hier jetzt mehr.

Ein anderes Beispiel ist unser Interne Build-Infrastruktur.
In der Basis ist es ein CruiseControl.net mit viel MSbuild und NAnt Scripten, etwas WIX für Installer und noch ein haufen anderer tools.
Dieses ganze System ist zum größten Teil entstanden weil anfangs keine finanziellen Mittel da waren um sich z.b. einen TFS anzuschaffen und dafür Schulungen zu bekommen. Darum der Weg der Open-Source / kostenlosen Tools und "learning by doing".
Das ganze System funktioniert sehr gut und sehr stabil - es wird jedoch nicht als "Standard" angesehen. Ein Standard wäre nach heutigen Vorstellungen eben z.B. ein TFS der diese ganze Build-Geschichte übernimmt, integrierte Quellcode-Verwaltung und Integriertes Projektmanagement mitbringt.
Vermutlich wird es auf kurz oder lang eines der nächsten Projekte sein alles auf TFS umzubauen.
Jedenfalls ist hier auch wieder die Aussage vom "Entscheider": "Das sind alles nur irgendwleche kleinen Tools, welche sich irgendwer mal zusammen gesucht hat - aber kein aktueller Standard, für den man im Idealfall ein gewissen KnowHow von neuen Mitarbeitern erwarten kann".

05.05.2016 - 23:30 Uhr

Da wir bei uns in der Firma aktuell eine Diskussion darüber haben, wollte ich diese hier im Forum auch mal anzetteln.

Es geht hier im Speziellen darum wie viel Standard-Tools gesund sind.. oder eben nicht.

Ein Beispiel:
Wir haben ein Ticket-System im Einsatz, welches ein Azubi während seiner 3 Jährigen Ausbildung programmiert hat.
Jetzt ist die Argumentation, dass man besser hätte ein Standard-Ticket-System kaufen können weil wir da versucht haben etwas zu bauen, was überhaupt nicht unsere Kernkompetenz ist (wir bauen eine Speditionssoftware).
Folgende Probleme bringt dieses selbst gebaute Ticket-System mit sich:

  • "keiner" kann dieses Programm anpassen
  • fehlende Dokumentation
  • Teilweise Heftiger Grützcode (ist halt von nem Azubi wo nicht immer jemand drüber geschaut hat)
  • Fehlende grundlegende Funktionen (z.b. Auto-Reply, Tickets aus E-Mails erzeugen, etc...)

Von solchen Beispielen gibt es so einige kleine und größere Tools, die irgend jemand mal gebaut hat, eine Zeit lang funktioniert haben - und wenn sie es nicht mehr tun, keiner mehr weiter weiß.

Darum jetzt die neue Anforderung: keine Eigenen Tools mehr bauen, sondern nur noch Standard-Software für Standard-Tools einsetzen. Dies hat z.B. auch den Vorteil, das ein "neuer" Mitarbeiter im Unternehmen diese Standard-Tools erlernen kann, was bei Eigenprogrammierungen eher nicht so gut geht, weil im schlimmsten Fall überhaupt keiner weiß wie dieses Tool denn korrekt funktioniert.

Ich als Entwickler denke wie folgt darüber:

  1. Eigenprogrammierungen sind wichtig für die persönliche Weiterbildung
  2. Die oben beschriebenen Probleme deuten auf falsche bzw. mangelnde Organisation hin.

Natürlich möchte ich das ein oder andere kleine Tool selbst bauen - immerhin möchte ich neu gewonnenes Wissen auch irgendwo anwenden können - wenn ich dies nicht in der bestehenden Software tun kann, welche meine Kernkompetenz darstellt, dann muss ich dies zwangsweise in einem anderen Projekt umsetzen.
Grundsätzlich muss man aber ein gewisses Bauchgefühl dafür haben, was Sinn macht selbst zu bauen - und was keinen Sinn macht, weil es schon X-Fach öffentlich erhältlich ist.

Darum jetzt die Frage an euch:
Wie viele Standard-Tools setzt ihr in euren Unternehme ein, und wie viele Tools habt ihr selbst Programmiert (obwohl es nicht eure Kernkompetenz ist), weil ihr meint das es euer Tool noch nicht gibt, ihr es besser machen, oder die kommerzielle Alternative einfach viel zu teuer wäre?

04.08.2015 - 12:21 Uhr

Das using für den namespace dient wirklich nur der vereinfachten Schreibweise für den Entwickler.
Schau dir mal den IL Code deiner Anwendung an, dann wirst du sehen das dort überall vor den Klassen/Methoden der komplette Namespace ausgeschrieben wird.

Hat alles mit Performance nichts zu tun.

03.08.2015 - 12:12 Uhr

Zwischenfrage:
Wo ist der Vorteil alle Controls in einer schleife rekursiv zu durchlaufen anstatt das jedes Control auf einen Event reagiert?

07.07.2015 - 11:11 Uhr

Gibt es auch noch eine Frage dazu? 😃

  1. Edit:
    Ich würde so was grundsätzlich nicht über das installierte Word machen, sondern über das OpenXML SDK (https://msdn.microsoft.com/de-de/library/office/bb448854.aspx).

  2. Edit:
    Und mit etwas googeln wärst du sogar auf ein Code-Beispiel gekommen: https://msdn.microsoft.com/de-de/library/office/cc850844.aspx

21.05.2015 - 14:43 Uhr

MAPI (Messaging Application Programming Interface) ?

Darüber kannst du jeden Installierten Mailclient ansprechen der MAPI unterstützt (so ziemlich alle).

20.05.2015 - 09:10 Uhr

Ich nutze z.B. https://closedxml.codeplex.com. Mir gefielen daran die recht einfachen Möglichkeitend er Formatierungen (z.B. Hintergrundfarben von Zellen) und das sehr einfache erstellen eines AutoFilters 😃

03.03.2015 - 11:13 Uhr

Oder nutze z.B. eine REST API um über HTTP auf die Datei zuzugreifen (Also z.B. eine PHP REST-Api für eine SQLite DB)

02.03.2015 - 15:23 Uhr

...bedeutet auch im Umkehrschluss: Wenn du nur einen FTP-Zugang hast (z.b. Kostenlosen Webspace von Anbieter XY), wirst du dort selbst keine Datenbank installieren können.

02.03.2015 - 09:47 Uhr

Dazu gibt es auch ein schönes Video vom Kenny Pflug: https://www.youtube.com/watch?v=G738cPs8Ack

26.02.2015 - 12:37 Uhr

Nun bin ich etwas weiter.

die BsonClassMap kann unter anderem auch ein unmap() machen.
Dies würde dann z.b. so aussehen:


if (!BsonClassMap.IsClassMapRegistered(typeof(Model.Kunden)))
            {
                BsonClassMap.RegisterClassMap <Model.Kunden> (cm =>
                {
                    cm.AutoMap();
                    cm.UnmapProperty("ansprechpartner");
                    cm.UnmapProperty("adressen");
                });
            }

Das macht dann genau das selbe wie das [BsonIgnore] Attribut im POCO.
Das ganze müsste jetzt nur noch etwas generischer auf alle virtual properties angewendet werden.

26.02.2015 - 11:33 Uhr

Der Hinweis ist gut, ob das Rechtlich vertretbar ist hab ich noch nicht drüber nachgedacht.

26.02.2015 - 10:56 Uhr

Ich möchte ja nicht das Relationale Schema umsetzen, sondern nur die Flachen Objekte ohne Relationen.
Mit dem [BsinIgnore] Attribut auf den Navigationseigenschaften funktioniert das auch genau so wie ich es brauche - Aber dann habe ich die Abhängigkeit der MongoDB DLL´s in dem Projekt wo das Model definiert ist, was aber nicht sein soll.

26.02.2015 - 10:14 Uhr

Ähm...
War vll. etwas undeutlich ausgedrückt von mir.

Die Daten liegen bereits in einer Relationalen Datenbank.
Es soll aber Zusätzlich die Möglichkeit geben die Daten als Audit-System in eine MongoDB Datenbank zu Packen (und diese Möglichkeit soll in einer eigenen DLL als MEF Plugin gebaut werden)
Die Daten liegen also am Ende in einer Relationalen Datenbank und eine Kopie jeder Änderung in MongoDB.

26.02.2015 - 09:21 Uhr

verwendetes Datenbanksystem: EF / MongoDB

Guten Morgen,
ich bin gerade dabei etwas wie ein kleines Audit-System zu bauen bei dem jeder geänderte Datensatz als Kopie in eine MongoDB Collection geschrieben werden soll.
Im Idealfall soll dies wahlweise über ein Plugin (MEF) geschehen.

Jetzt habe ich das Problem das mein EF Model Navigationseigenschaften hat, welche MongoDb an sich nicht speichern möchte da es meint das dies Circular References sind.
Die Lösung die hilft, wäre vor jede Navigationseigenschaft im EF Model ein Attribut "[BsonIgnore]" zu schreiben, so werden wirklich nur die flachen Objekte ohne Referenzen geschrieben.

Das Problem hierbei ist, das ich eigentlich keinen Verweis der MongoDB-DLL´s in dem Projekt haben möchte in dem mein EF-Model definiert ist.
Ich hatte schon aus Verzweiflung versucht das Attribut nach zu bauen, aber das hat MongoDB nicht interessiert.

Jetzt wäre die Frage ob man evtl. so etwas wie Attribut-Aliase definieren kann, dass z.b. ein [DataContract(IsReference = false)] wie ein [BsonIgnore] behandelt werden soll.
Oder es gibt einfach eine schöne Lösung für dieses Problem 😃

Hier mein Beispielhaftes EF-Model:


namespace SQliteEFTest.Model
{
    public class Kunden : Auditme
    {
        public Kunden()
        {
            ansprechpartner = new List<Ansprechpartner>();
            adressen = new List<Adressen>();
        }

        [Key]
        public int pid { get; set; }
        public string Name { get; set; }
        public string Matchcode { get; set; }

        public virtual ICollection<Ansprechpartner> ansprechpartner { get; set; }
        public virtual ICollection<Adressen> adressen { get; set; }
    }

    public class Ansprechpartner : Auditme
    {
        [Key]
        public int pid { get; set; }
        public string Anrede { get; set; }
        public string Vorname { get; set; }
        public string Nachname { get; set; }
        public string Email { get; set; }

        public int? fk_Kunde { get; set; }
        public virtual Kunden kunde { get; set; }
    }

    public class Adressen : Auditme
    {
        [Key]
        public int pid { get; set; }
        public string Name { get; set; }
        public string Strasse { get; set; }
        public string Plz { get; set; }
        public string Ort { get; set; }

        public int? fk_Kunde { get; set; }
        public virtual Kunden kunde { get; set; }
    }

    public class Auditme
    {
        [NotMapped]
        virtual public string Aktion { get; set; }
        [NotMapped]
        virtual public DateTime? CreatedOn { get; set; }
        [NotMapped]
        virtual public string CreatedBy { get; set; }
        [NotMapped]
        virtual public DateTime? ModifiedOn { get; set; }
        [NotMapped]
        virtual public string ModifiedBy { get; set; }

    }
}


11.07.2014 - 09:33 Uhr

Mittlerweile sollte es doch Standard sein für jede Tabelle eine autoinc ID (MySQL) Spalte einzufügen.
Der Inhalt dieser Spalte wird vom RDBMS vergeben und ist immer unique.
Falls du keine autoinc Spalte in den Tabellen hast, kannst du sie im Nachhinein auch hinzufügen, werden dann beim Anlegen durchgezählt.

Da du aber jetzt schon JOINS verwendest müsstest du doch schon irgendeinen eindeutigen schlüssel für die Verknüpfungen in deinen Tabellen angelegt haben?

10.07.2014 - 16:43 Uhr

Was spricht dagegen die ID der jeweiligen Zeile für die bemerkungen mit im Grid einzulesen und beim verlassen der Zelle selbst ein Update zu bauen was sich aus dem Inhalt der Bemerkungs.zelle und der ID-Zelle zusammensetzt?

Mag nicht schön sein, ist aber simpel.

26.06.2014 - 17:01 Uhr

Jup - und so lange du den nicht findest, wirst du die Arbeit wohl haben 😉
Aus der Erfahrung heraus sage ich dir das etwas, das in diesem Sinne oft Erwähnt wird meistens gut ist.
Ob eine Spezielle Lib unter deinem verwendeten Mono werkelt, sollte sich mit einem kleinem Test auch testen lassen.

Edit: https://github.com/jstedfast/MailKit wird auch als Cross-Platform Mail Client angepriesen.

26.06.2014 - 16:43 Uhr

https://www.google.de/#q=c%23%20imap%20library ?

MailSystem.NET wird ziemlich oft genannt, scheint gut zu sein.
Bei Yet Another Email Client (LINQ to IMAP) steht expiziet auch mono bei.

24.06.2014 - 15:26 Uhr

Wo ist jetzt die konkrete Frage?

06.03.2014 - 11:02 Uhr

Eine Frickelige aber schnelle Lösung wäre eventuell einfach ein Programm laufen zu lassen in dem ein FileSystemWatcher rekursiv das Verzeichnis überwacht und bei der entsprechenden Pfadlänge das Popup bringt.

Nachteil: so ein Programm kann man einfach beenden, dann kommt kein Popup mehr 😕
Aber evtl. kann man das durch setzen von diversen Rechten verhindern.

06.02.2014 - 09:11 Uhr

Die M500 hab ich auch - sowohl im Büro als auch Privat (ebenfalls mehr als 8 Stunden am Tag).
Wenn es die Schnurlos als 705 gibt, um so besser 😃

06.02.2014 - 09:08 Uhr

Ich denke das kommt auf die Datenmengen drauf an.
Praktisch kannst du eine SQLite DB auch auf einem Netzlaufwerk öffnen.
Beim Schreiben wird die DB dann so lange gesperrt bis der Schreibvorgang fertig ist - danach darf der nächste schreiben.

Wenn dein Programm bereits mit SQLite arbeitet und du damit zufrieden bist, dann versuch es einfach mal und schau ob es deinen Bedürfnissen ausreicht.

Wenn du aber lust hast dich mit etwas mehr mit Datenbanken auseinader zu setzten, kannst du deine Datenhaltung gern auf MS SQL Express, MySQl/MariaDB, PostgreSQL, Firebird... oder evtl. Objekt/Dokumentenbasiert auf MongoDB, Couchdb, Redis... oder sonst was umbauen 😃

EDIT:
bezüglich SQLite gibt es auf http://www.sqlite.org/cvstrac/wiki?p=SqliteNetwork eine kleine Übersicht wie man diese im netzwerk benutzen könnte.
Ganz oben steht:

SQLite database files may be shared accross a network using a network filesystem. This is never a particularly efficient method and may have problems (depending on the filesystem, or may simply not be available. These are alternative techniques for remote access to SQLite databases.

SQLite Datenbanken können durchaus auf einem Netzlaufwerk liegen, dies Praktizieren wir hier für kleine Anwendungen auch. Das einzige Problem das wir bemerken konnten ist das die Performance bei größeren Datenbanken (bei uns Aktuell 60MB) extrem zusammen bricht.
Ansonsten funktioniert das mit 15 Benutzern recht gut.

Ich möchte hier keinesfalls von dem Einsatz von SQL-Servern abraten, welche speziell gerade für diese Anforderung gemacht sind - machmal ist es aber der Fall das man einfach nur ein altes, kleines Programm hat welches mit Sqlite funktioniert und man nicht die ressourcen hat/bekommt dieses zu überarbeiten.

03.02.2014 - 09:12 Uhr

Wie immer: Kommt darauf an... 😉

Der Normale weg ist - denke ich - einen Service (Windows Dienst) zu bauen, der die Funktionalität deiner Konsolen-Anwendung beinhaltet.
Ich denke nicht das es möglich ist das der Dienst von einem anderen Prozess weiss wann dieser abgestürzt ist und ihn dann neu starten kann (es sei dann man würde in diesem Dienst eine Prozess-Überwachung bauen welche diese Funktionalität übernimmt).
Ich denke da gibt es noch andere Probleme, wie z.b. das du die Konsole nicht angezeigt bekommst, wenn der Dienst sie startet und du als Benutzer nicht am System angemeldet bist.

Die Installation funktionierte bis VS2010 sehr einfach anhand des Visual Studio Setup Projektes.
Danach baut man Setups mit WIX - ist aber auch kein Hexenwerk.
Der Entsprechende Component-Abschnitt würde da wie folgt aussehen:


<Component Id="_4c440f2e_3cdd_48df_8c6a_360553d737a4" Guid="4868762c-587c-42a2-8ba2-bf40e7182c0c">
	<File Id="_54cbd890_06c9_4c0d_9be5_f2c2ce701fbf" Name="Daemon.exe" KeyPath="yes" DiskId="1" Source="C:\Projekte\Daemon\bin\x86\Debug\Daemon.exe"/>
	<ServiceInstall Id="_53496dd2_e114_472a_8dd8_7b773056026d" Name="Daemon" DisplayName="Daemon" Type="ownProcess" Start="auto" ErrorControl="normal"/>
	<ServiceControl Id="_d821969a_6bc6_487e_a253_7cb108ea9367" Name="Daemon" Stop="both" Remove="uninstall"/> <!-- Automatischer Start nach Install: Start="install" -->
</Component>

Näheres zum ServiceInstall Element im WIX kannst du dir dort durchlesen: WiX Toolset: ServiceInstall Element

Und noch eine Info am Rande: Eine Vorlage für Windows Dienste ist bei den Express Editions nicht dabei. Man kann aber z.B. mit Sharp-Develop einen Dienst erstellen und diesen dann in der Express Edition weiter bearbeiten - wenn man das möchte.

29.01.2014 - 10:59 Uhr

Es könnte gut sein das derjenige dich falsch verstanden hat.
Er nahm evtl. an das du selbst das Windows Embedded Compact 2013 für die Geräte entwickelt möchtest (Platform Builder Plugin fürs VS) oder du die Sourcen vom OS selbst zum Entwickeln brauchst (Shared Sources von Win CE).
Ich denke das es das ganze Windows Embedded Compact 2013 Produkt in der MSDN gibt (im Dreamspark scheint ist es auch enthalten).

Ich habe bis jetzt auch nur CE Anwendungen unter VS2008 gebaut - ich wüsste nicht mal das man dies auch unter VS2013 machen kann. Gibt es dort auch ein Smart Devices Paket das man zusätzlich Installieren kann?
Die nächste Frage ist ob du dann ohne weiteres eine Anwendung für das CE2013 als Target Platform erstellen kannst (Im VS2008 gab es Standardmässig auch nur ein paar Smart-Device Vorlagen für die man Anwendungen erstellen konnte).

Es wäre schön wenn sich jmd. Dazu mal äußern könnte der in diesem Bereich etwas mehr Erfahrung hat - ich fände das auch ziemlich Interessant.

28.01.2014 - 09:10 Uhr

Was ist mit der Idee einen Minidump schreiben zu lassen, diesen mit per Mail zu schicken und dann zu debugging zwecken ins Visual Studio einhängen?
Vorteil ist das du die Aktuellen Variableninhalte mitgeliefert bekommst.

Evtl. hilft das weiter: Dump Files

17.01.2014 - 08:56 Uhr

Liegt eventuell daran das TCP nichts "einfaches" für "C# Neulinge" ist 😉

Wenn du bei google nach"C# TCP client server" suchst, findest du hunderte Beispiele.
Wo genau kommst du nicht weiter?

31.12.2013 - 05:43 Uhr
SqlCeCommand update = new SqlCeCommand("UPDATE Quarz SET CleanCounter = @CleanCounter WHERE Seriennummer '" + CbSeriennummer.Text + "'");  

Dort fehlt doch im WHERE zwischen Seriennummer und dem CbSeriennummer.Text auch ein "=" oder?

...WHERE Seriennummer = '" + CbSeriennummer.Text + "'");

Schöner ist natürlich den Value der gesucht wird auch als Parameter zu übergeben, wie Abt schon schrieb.

Also bekomme folgendes zurück: ExecuteNonQuery: Connection-Eigenschaft wurde nicht Initialisiert

Da Fehlt der Rest vom Code.
Kann es sein das du vergessen hast keinen Connectionstring anzugeben, bzw. das du generell keine Verbindung zur Datenbank angegeben hast?

31.12.2013 - 05:38 Uhr

Lass dir doch die txt datei geben und führe das einlesen im Debug Modus mit angehängten Debugger durch.

Der Debugger wird dir sicherlich einen Fehler in Zeile 20 zeigen, da du dort einfach auf einen Index von einem Array zugreifst ohne vorher zu prüfen ob diese Werte überhaupt existieren.

10.12.2013 - 08:07 Uhr

Interessant hierzu auch http://www.sqlite.org/lang_datefunc.html

Soweit ich das sehe kannst du ein Datum wie folgt eingeben:


YYYY-MM-DD -> Date()
HH:MM:SS -> Time()
YYYY-MM-DD HH:MM:SS -> Datetime()

Bzw. die dort angegebenen alternativen Timestrings.
Und dann Entsprechend mit strftime() ausgeben lassen.

Wenn man bei Google nach "C# sqlite date" sucht findet man z.b. unter http://techreadme.blogspot.de/2012/11/sqlite-read-write-datetime-values-using.html auch ein schönes Beispiel wie man in C# ein Date bzw Datetime in sqlite bekommt oder aus sqlite heraus bekommt.

03.12.2013 - 13:04 Uhr

Vielen Dank für den Link, den kannte ich auch noch nicht 😃

Nachtrag:
Ich hab das gleich mal probiert.
Immernoch die Selbe Datenbank + die FTS Tabelle zusätzlich drin.
Die Größe ist nun von 70 MB auf 150 MB gestiegen (sollte bei Doppelter Datenmenge normal sein).

Original-Tabelle ohne FTS (Tabelle "logs" / Feld "cont"):


select count(*) from logs WHERE cont LIKE '%suchbegriff%';

Ergebnis: 888 gefundene Datensätze
Dauer: 576ms

FTS-Tabelle (Tabelle "fulltextdata" / Feld "content")


select count(*) from fulltextdata WHERE content MATCH 'suchbegriff';

Ergebnis: 888 gefundene Datensätze
Dauer: 20ms

Das ist durchaus ein wenig schneller 😃

03.12.2013 - 12:10 Uhr

Auf Gehalt & Verdienst Fachinformatiker für Anwendungsentwicklung steht was von 2300 bis 2400 Eur Brutto was sich für mich recht hoch gegriffen anhört.

Ich denke zwischen 1800 (Hallo Bremen 😄 )und 2200 Eur (Hallo Hamburg 😄) Brutto ist durchaus Realistisch.

Wenn ihr nicht grad in einer überaus erfolgreichen Branche ansässig seid, schlage ich 2000 Eur brutto vor 😉

03.12.2013 - 11:48 Uhr

Kommt sehr stark auch auf die Stadt drauf an in der du arbeitest.
Man bekommt z.b. in Bremen sehr viel weniger als in Hamburg oder München.

03.12.2013 - 10:57 Uhr

Kommt wohl wirklich auf die Größe/Anzahl der Dateien an.

Ich hatte ein ähnliches Problem: Von diversen Stellen aus wurden kleinere log-Dateien und Schnittstellen-Dateien geschrieben (insgesamt etwa 15000 stk mit 1kb bis 2kb Größe).
Da wir auf Dauer Probleme mit den Technikern diverser Server bekommen haben (sehr viele kleine Dateien machen sowohl beim durchsuchen als auch beim sichern, kopieren und verschieben eigentlich immer Probleme) - wir diese Dateien zum einen für eine Historie, zum anderen zum durchsuchen von diversen Aktionen brauchen - haben wir uns dazu entschlossen den Inhalt dieser Textdateien in eine Datenbank einzulesen und diese dann zu durchsuchen.

Hierfür verwenden wir SQLite - die Größe der Datenbank beträgt bei 15000 Dateien ca - 80 MB.
Ein "SELECT * FROM dateiinhalt WHERE text LIKE '%suchausdruck%'" dauert < 1sec.
Die SQLite DB kann man einfacher sichern und die Größe kann durch NTFS komprimierung auch noch mal verringert werden.

Das System haben wir zwar erst seit ein paar Wochen im Einsatz und dies auch nur auf wenigen Servern zum Testen - aber es funktioniert und wir sind zufrieden.

Für diese Größenordnung kann man also durchaus noch SQLite benutzen 😃

02.12.2013 - 10:49 Uhr

Guten Morgen,

ich habe schon einiges hier im Forum über das Thema gefunden, aber die Frage die ab und an gestellt wurde, wurde nie beantwortet (Letztendlich lief es immer darauf hinaus den SQL Server Express zu benutzen).

Darum noch mal die Frage - evtl. wird dies ja bei dem ein oder anderen in der Firma auch so Praktiziert.
Angenommen ich kaufe/Lizenziere und Installiere mir einen SQL Server 2012 - Ist es dann legal über eine einzige User-Cal (=einem SQL Benutzer) mit mehreren Arbeitsplätzen (=Programm-Benutzer) auf diesem SQL Server zuzugreifen?

Anders gedacht ist es scheinbar auch legal eine Device CAL z.b. für einen Webserver zu kaufen, dort einen Webservice zu installieren über den man von Mehreren Arbeitsplätzen auf dem SQL Server zugreifen kann.

Letzteres ist eindeutig etwas mehr Arbeit, aber Technisch Möglich.

Ich frage dies, da mir diese 2 Methoden bereits von unterschiedlichen Lieferanten bekannt sind und es dort scheinbar gängige Praxis ist.

Hat in diesem Bereich jmd. von euch Erfahrung?

Nachtrag:
Ich habe gerade auf der Seite 17 von der PDF "SQL Server 2012 Licensing Reference Guide" ( SQL_Server_2012_Licensing_Reference_Guide.pdf ) etwas über "Multiplexing" gelesen - ich denke das ist das Stichwort nach dem ich gesucht habe.
Dort steht dann genau beschrieben das jeder User, der irgendwie direkt oder indirekt mit dem SQL Server kommuniziert Lizenziert werden muss.

Kann das jmd. Bestätigen?

19.11.2013 - 09:13 Uhr

Weil es nie erwähnt wird, hier auch mal eine ODB Statt SQLCE oder SQLite: http://ndatabase.net
Damit entfällt der ganze OR Kram - kann sehr komfortabel sein wenn man es einmal verstanden hat.

Du solltest dir trotzdem mal ganz normales ADO.NET anschauen - Ein wenig Grundlagen und vor allem ein wenig SQL haben auch bis Heute noch niemanden geschadet 😉

13.11.2013 - 13:37 Uhr

Nein, wir haben solche Probleme nicht.
Für normal verstehen Kunden das in einem Client-Framework diverse Funktionalitäten nicht vorhanden sind.
Da es ab Version ≥4.5 auch kein Client Profile mehr gibt, muss man dies Theoretisch auch nicht unterstützen oder?
Wenn der Kunde jetzt auf .NET 4.5 gehen will hast du somit wieder das komplette Framework vorliegen.

Gut, die Vorhabe ist hier 4.0 Client Profile - Dieses benutzen wir nicht, von daher kann ich dir auch keine Ideen zu dein Problem liefern, sorry.

Anmerkung:
Ich habe gerade auf Where is .NET Framework 4.5 Client Profile ? gelesen das das .NET 4.0 Client Profil durch eine FULL Version vom 4.0 ersetzt wird, wenn man .NET 4.5 Installiert.

22.08.2013 - 18:20 Uhr

Nur am Rande: GitHub kann auch SVN - dann kann man VS2012 mit Ankh weiterhin benutzen.
Alternativ kann VS2012 genau so gut auch Git (Vorteil hier da es auch in der Express-Version funktioniert).

12.08.2013 - 12:22 Uhr

Ich hatte mal selbes Problem (selbe Leitung, selbe Anbieter).
Manchmal hatte es schon was gebracht das Modem für ein paar sek aus der Steckdose zu nehmen und wieder rein zu stecken (in diesem Fall synchronisiert das Modem die DSL Verbindung und damit die Geschwindigkeit neu).

Ein anderes Problem bei mir war das ich zusammen mit dem Einbruch der Geschwindigkeit auch massives knacken im Telefon während der Telefonate hatte.
Daraufhin habe ich bei Vodafone angerufen und eine Verbindungs-Prüfung machen lassen.
Dort wurde dann festgestellt das es ein Problem mit der Leitung gibt, man es aber nicht lokalisieren könnte, man mir aber gern einen Techniker vorbei schicken würde der dies untersucht (dabei würden mir natürlich Kosten entstehen wenn das Problem nicht an Vodafone liegen würde).
Ich habe dann Erstmal angelehnt und bin selbst noch mal auf Fehlersuche gegangen.
Es hat einige Tage und viele Ersatzgeräte gebraucht bis ich die Lösung gefunden hatte.

Letztendlich lag es am Kabel zwischen Modem und NTBA, welches aufgrund der damaligen länge um ein paar Meter verlängert werden musste (Verlängerung per Wago-Klemmen 😄 ).
Über die Jahre korrodierte das Kupfer in den Klemmen aufgrund der Luftfeuchtigkeit im Keller.
Also: Kabel aus den Klemmen genommen, den grünen Kupfer-Gnatz abgeprökelt und das blanke Kupfer wieder in die Klemmen gesteckt - danach funktionierte alles wieder so wie früher.

So einfach kann es manchmal sein 😃

08.07.2013 - 11:02 Uhr

Da ich das Problem grad hatte und unter anderem diesen Beitrag hier über Google gefunden habe, setze ich die Lösung auch hier mit rein:

Windows 7 enthält eine Liste von reservierten Wörten, welche nicht im Programmnamen beinhaltet sein dürfen, wenn Sie dieses an die Taskleiste anheften wollten.

Sie finden diese in der Registry unter

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileAssociation\AddRemoveNames

In einer Standard Installation sind folgende Wörter reserviert:

Documentation  
Help  
Install  
More Info  
Readme  
Read me  
Read First  
Setup  
Support  
What’s New  
Remove  

Programme wie NetSupport Manager, NetSupport DNA, NetSupport Helpdesk, NetSupport Notify u.v.a. sind dann von dieser Einschränkung betroffen und können nicht an die Taskleiste angeheftet werden.

Kopiert von http://www.prosoft.de/faq/post/programmverknuepfung-kann-nicht-an-taskleiste-angeheftet-werden-2/

02.07.2013 - 12:41 Uhr

Ich greife das Thema hier noch mal auf, vll liest es ja noch mal irgendwer mit.

Ihr schreibt hier etwas von Produktiv-Lizenzen im Action Pack.
Auf der Webseite zum Action Pack selbst steht in den Nutzungsbedingungen, das die Software nicht zum Erstellen von Individuellen Kundenlösungen benutzt werden darf.

Der Genaue Wortlaut ist:

Die Software ist nicht für den persönlichen Gebrauch, für Kundenanwendungen oder für Installationen am Standort des Kunden bestimmt.

und

Diese Lizenzen dürfen nicht für Aktivitäten verwendet werden, die direkt Umsätze generieren (wie das Hosten von Websites oder E-Mails oder die Entwicklung angepasster Lösungen für eine finanzielle Vergütung)

In diesem Sinne: Produktiv vll ja - aber nur für INTERNE Zwecke die keinen Umsatz generieren.
Bedeutet: wenn ich eine Visual Studio Lizenz aus einem Action Pack besitze, darf ich nicht damit an Programmen arbeiten, welche später an einen Kunden verkauft werden.

Richtig?

19.03.2013 - 12:31 Uhr

Passend zum Thema hätte ich hier noch einen Link in meinen Favoriten gefunden: http://code.google.com/p/iqbox-svn/

Dort gibt es ein Projekt, welches Synchronisation mit Subversion ermöglicht.
Vielleicht passt das ja besser auf deinen Anwendungsfall.
Ich weiß allerdings nicht ob sich das auch so zickig hat wie Dropbox - müsste man dann mal testen.