Ha! Bug gefunden:)
Offene Belege = Differenz zwischen alten und neuem Kreditlimit. Obwohl mein Limit schon seit Januar angepasst wurde tauchte der "Posten" jetzt erst .. Whatever
Normalerweise sind getätigte Zahlungen direkt in den Umsätzen zu erkennen. Leider ist es "dieses" mal nicht der Fall. Außerdem würde sich mein offenes Limit ja reduzieren.. Hmm.. Mysteriös..
Naja, ich rufe mal morgen früh an:)
Hallo Peter,
die Autofac Jungs äußern sich zum "Best-Practise" wie folgt:
Don't Pass the Container Around
Giving components access to the container, or storing it in a public static property, or making functions like Resolve() available on a global 'IoC' class defeats the purpose of using dependency injection. Such designs have more in common with the Service Locator pattern.
If components have a dependency on the container, look at how they're using the container to retrieve services, and add those services to the component's (dependency injected) constructor arguments instead.
Use generated or hand-coded factories for components that need to instantiate other components.
und ein passendes Beispiel .
Viele Grüße,
moq
Hallo zusammen,
habe vorhin bei meinem Online-Banking meines Kreditkarteninsituts mal wieder reingeschaut.
In der Übersicht sind folgende Punkte aufgelistet:
Kreditrahmen: 4.500,00 EUR
Offene Belege: 1.800,00 EUR
Zur Verfügung stehender Kredit: 4.500,00 EUR
Der Posten "offene Belege" war bisher noch nie ersichtlich. Was beutet dieser? Gehe ich richtig in der Annahme, dass es sich noch um "offene" Posten handelt die beglichen werden müssen und derzeit in Prüfung sind?
Hab in der letzten Zeit nichts größeres über die CC bezahlt, daher wundert mich woher diese "glatte" Summe kommt. Ob da jemand über meine Karte was bestellt hat?..
Leider erreich ich jetzt beim Kundenservice niemanden mehr..
Viele Grüße,
moq
Hallo JayKore,
mehrere Thin-Clients (Browser, PDA/MDA/Handy, Desktop-Client, etc) können von SOA bedient werden. Das ist der Sinn meiner Meinung nach. 😃
Durch Contract-First Design in Verbindung mit einem Microkernel kann man so schnell kundenspezifische Anpassungen / Erweiterungen machen und muss es defintiv nur an einer Stelle erledigen.
Ein WCF Service dienst als Fassade der intern alle Anfragen an die zuständigen Stellen weiterdelegiert. Gerade wenn mehrere Endgeräte wie bereits oben erwähnt sich die gleiche Logik teilen, macht SOA Sinn. Hat man nun aber "nur" ein Webprojekt benötigt man SOA nicht zwingend, erst später wenn Anpassungen für spezielle Kunden auf Business Logik gewünscht werden oder Schnittstellen zu anderen Programmen.
Viele Grüße,
moq
Sobald man dynamisch die GUI programmieren will ist ende im gelände.
Hallo dodo502b,
ich erstelle dynamisch zur Laufzeit anhand von Metadaten komplette GUIs inkl. Datenanbindung. Und nicht nur GUIs werden dynamisch(!) zur Laufzeit erstellt sondern komplette Controller Klassen nach MVC.
...
Winforms sowie WPF sind mächtige Werkzeuge zuzüglich aller "Third-Party" Komponenten für Entwickler die wissen was sie tun.
Viele Grüße,
moq
Hallo JuyJuka,
ich geh erst mal auf eine Sache von dir ein - der Rest kommt morgen. 😃
Das große Problem, welches mir halt immer und immer wieder Kopfzerbrechen bereitet ist, die "weichheit" der Datenklassen. Wenn ich bei "meine" Klassen etwas
an den Daten ändern muss, kann ich das geziehlt machen und "gerade so viel aufweichen" wie unbedingt nötig ist.
Das Problem was ich eher sehe ist, dass du immer direkte Anpassung an den Business Objekten machen musst. Ich sehe das produktiv als schwerwiegend Test + Wartungsbedürftig an. Es kann sich immer bei einer "kleinen" Änderung ein schwerwiegender Fehler im Gesamtsystem entstehen. Daher müssen alle Teile die deine Klasse nutzt per Unit Tests abgesichert sein.
Wenn ich allerdings an meinen "SendeBriefService" etwas ändere könnte ich allerhöchstens den Service ruinieren - nicht das Gesamtsystem. Ich mag in der Hinsicht etwas pingelig sein, jedoch finde ich es besser die Business Objekte dezent darzustellen ohne zu viel Logik die über den Tellerrand hinausgehen.
Viele Grüße,
moq
Im übrigen kann ich auch eine Nebenfrage stellen:
Ist so eine von mir gezeigte Vorgehensweise üblich?
Und wenn nicht, was wäre die Alternative?
Hallo Peter,
eine Frage habe ich dazu: Wie unterteilst du deine Container? Oder gibt es bei dir nur einen "großen" Container der alles mögliche beeinhaltet? Wenn ja, würde ich einen ServiceLocator vor den Container schieben.
Ich erstelle mir pro Form einen Container oder ggf. einen "Modul" Container.
Der enthält folgendes:1. Controller
Ich kann daher entweder per Konfigurationsdatei oder "händisch" (mir lieber 😉) meine GUIs zusammen basteln. Die GUIs werden zur Laufzeit anhand von MetaDaten ausgewertet und erstellt. So bin ich a) nicht auf den Designer angewiesen b) kann ich Meta Daten pro Business Object pflegen (Lokalisierung, Pflichtfelder, Einzigartige Werte, etc) und c) kann ich durch den Microkernel sehr schnell Anpassungen an der GUI machen.
Einfaches Beispiel:
Container container = new ..
container .Register(c =>
{
var controller = new Controller<View1,Model1>();
controller.AddComponent(xyz,typeof(I), Instanz od. type);
return controller;
}
).Named("blalba").Fact/Single/Container/ExternallOwnedScope angabe
Oben ist keine Datenbindung oder ähnliches. Wir haben intern in der Firma noch einige netten Dinge die sich "Extensions" schimpfen. Extensions können pro View oder Model sein. DataBindingModelExtension / FocusableViewExtension nur als Beispiel. Die Extensions werden vom Controller ausgewertet.
Viele Grüße,
moq
Edit:
Mein 123. Beitrag 😉
Vor dem Sleep und nach dem Sleep hilfts schon. 😉
Hallo Soulkiller1990,
dien Tipp von Knuddlbaer solltest du dir mal anschauen..
Aber zu deinem Problem:
Thread.Sleep(xxx) verhindert u.a. das Windows-Nachrichten richtig ausgewertet werden. Es gibt die große Keule
Application.DoEvents()
die zwingend alle vorhandenen Windows-Nachrichten weiterleitet / auswertet. Aber das sollte man vermeiden.
-> Daher lieber einen Timer einsetzen..
Viele Grüße,
moq
Hallo timonb,
bool Is64Bit
{
return Marshal.SizeOf(typeof(IntPtr)) == 8;
}
Bei 32-bit Betriebssystemen ist IntPtr 4 Bit groß. Bei 64-bit hingegen 8 Bit. 😃
Alternativ:
int bits = IntPtr.Size * 8;
Viele Grüße,
moq
Hallo Christoph,
das hört sich nach Contract First Design und evtl in Verbindung mit einem Microkernel an. Finde ich persönlich super. Wartbarkeit und lose Koppelung macht genau dort Sinn. Gerade das einzelne Komponenten ("Implementierungen") via Konfigurationsdateien ausgetauscht werden können vereinfacht die Wartbarkeit enform. 👍
Viele Grüße,
moq
Das kann man meiner Meinung nach auch nicht pauschalieren,
es kommt immer drauf an was man genau damit machen will.
Da gebe ich dir recht. Aber viele Projekte scheitern an zu hohen Lizenz- und Wartungsgebühren.
Ich persönliche setze liebend gerne bei Hochverfügbarkeit auf Microsoft Hausmittel. Nur liegt es nicht in meinem Ermessen was der Kunde wünscht. Und da es meistens "kostengünstig" sein soll ist Linux wie bereits oben erwähnt desöfteren vorzuziehen.
Bei Projekte die mehr als "nur" den IIS zum Hosten von Diensten / Webseiten benötigen wirds schwieriger. Gerade in Hochverfügbarkeitslösungen mit komplexerem Backend (Application Server).
Erst kürzlich haben wir ein Projekt abgeschlossen, dass die AEC-3 (eigtl eher AEC-4) Klasse erfüllen muss. Mit 2-4 Kisten kommt man da leider nicht so weit. Bei 5 Kisten aufwärts spielen die Lizenz-/Wartungsgebüren eher eine Rolle als bei einem klassischem Cold Failover ("Master+Ausfallserver"). Vergleiche 150.000 Euro mit 300.000 Euro jährlich.
Viele Grüße,
moq
TCO ist halt bei Linux quasi um 50% geringer als bei Windows.
Abgesehen davon hat Linux halt gerade in der Hochverfügbarkeit einige Vorteile durch die Heartbeat + DRBD Kombination. Ist schnell aufgesetzt und braucht weniger Ressourcen als nen Windows Cluster.
Linux Server sind wohl breiter im Markt vertreten weil:
a) PHP / Ruby / whatever breitflächliger genutzt werden
b) die Kisten billiger sind (Windows Server 2008 Enterprise Lizensen sind halt sehr günstig.. hust).
Wir setzen intern auf Microsoft Clustering zur Hochverfügbarkeit und sind da sehr zufrieden mit.
Hallo manunidi,
schon mal beim Hersteller nach einem SDK gefragt?
Welches Betriebsystem läuft den auf den UMPCs?
Viele Grüße,
moq
Hallo herbivore!
hattee den Ansatz von rechner nur kurz überflogen und nicht erkannt, dass er genau die Anforderung des TS erfüllt. Daher kam mein kritischer Vorschlag zu goto. Den Link hatte ich erst im Nachhinein hinzugefügt.
Viele Grüße,
moq
Hallo,
du könntest goto benutzen. Allerdings ist das eine sehr schlechte Lösung. Überdenke daher lieber deinen Ansatz und such ein anderer Lösung.
Viele Grüße,
moq
Hallo,
wir nutzen DevExpress im kommerziellen Umfeld mit weit ueber 700 Kunden.
Sind soweit zufrieden, allerdings haben wir fast jede Komponente von DevExpress abgeleitet um weitere Features oder "zwangsläufige" Workarounds hinzuzfügen.
Der Support ist echt klasse. Antwort innerhalb 6 Stunden und bei kritischen Problemen in unter 4h.
Leider konnte ich keine Erfahrung mit anderen Anbietern machen, aber die DevExpress Suite kann ich anstandslos weiterempfehlen.
Viele Grüße,
moq
Hallo zusammen
Ein Provider ist fuer mich eine beliebige Datenquelle.
Ein Repository od. ein RepositoryService hingegen verarbeitet die gelieferten Daten des Providers und verdrahtet sie in einen moeglichen Kontext.
Viele Grüße,
moq
Hallo Freddy,
falls du nur beispielsweise Backups machst und nicht neu deployst, könntest du auch in der web.config ein Attribute beispielsweise "IsMaintenance" deklarieren, dass vor jedem Request abgefragt wird. Sollte es true sein, den Request auf deine "Wartungsseite" umleiten.
Viele Grüße,
moq
Hallo Kinglouy,
beachte aber das ein Obfuscator, wie der Name bereits sagt, nur verschleiert - nicht "verschlüsselt". Der Obfuscator macht es schwerer, durch den Code zu steigen. Es werden vorhandene Klassen/Methoden/etc aufgeteilt und nach dem Alphabet umbenannt.
Sensitive Daten, wie beispielsweise Passwörter die im Klartext im Quellcode gespeichert sind zu 100% sichtbar. (Sollte man daher NIE! machen.)
Viele Grüße,
moq
Stichwort INotifyPropertyChanged.
Daher Server.
Oh, danach hatte ich nicht gegooglet. Nun kann ich meine WCFs anpassen 😉
Danke für den Link!
Hallo Golo,
nenn sie doch nach folgendem Schema: MethodeMitIntIntIntStringBoolBoolIntStringInt(..). 👅
Schon mal nach method chaining wcf gegooglt?
Viele Grüße,
moq
Wenn ich die Schnittstellen implementiere unter VS08 werden keine members erzeugt. In den Gettern/Settern werden NotImplementExceptions erzeugt.
Hast du ein Snippet oder eine Einstellung angepasst, dass bei dir die Member erzeugt werden?
Viele Grüße,
moq!
Beispiel:
public class Class1 : IDummy
{
#region IDummy Member
public int A
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
public int B
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
#endregion
}
public interface IDummy
{
int A { get; set; }
int B { get; set; }
}
Danke für das Feedback 🙂
Gerne. 🙂
Mit verschachtelten Projekten habe ich es ehrlich gesagt gar nicht getestet X(. Nur mit einer geraden Struktur, also
Das Projekt andem ich derzeit arbeite, umfasst knapp 1100 Projekte. VS kommt bis ca. 500 Projekte pro Solution gut mit.. Von daher ist bei mir jede Solution (natürlich automatisiert über Abhängigkeiten erstellt) mit Ordner sortiert und gut aufgeräumt..
Viele Grüße und danke für deine Arbeit!
moq
PS:
Zu den Properties erstellen.. Wäre es möglich, dass die Properites anhand der implementierten Interfaces erstellt werden könnten? Gleiches vorgehen wie bisher mit setzen der modifiers etc..
[...]
1. String Refactoring
Durchsucht die geladene Solution nach festen Strings im Code. Anschließend kann gewählt werden, was mit dem entsprechenden Strings passieren soll. Entweder als Konstant in der Klasse anlegen, in eine Resourcendatei übertragen oder den String so belassen wie er ist. Ebenfalls können Leerstrings "" gegen String.Emoty getauscht werden.[...]
)
Hallo Khalid,
erstmal vorweg: echt schönes Addin. 🙂
Allerdings habe ich eine Frage zu der String Refactorisierung. Kann es sein, dass verschachelte Projekte innerhalb der Solutions nicht untersucht werden? (Sofern Projekte in eigenen Ordnern abgelegt ist)
Beispiel-Solution Aufbau:
+ Core (Ordner)
+ Networking (Proj)
+ Base (Proj)
+ ExternalCore (Ordner)
+ .. (Proj)
+ Utils (Proj)
In dem obigem Beispiel wird nur Utils untersucht, aber nicht Networking/Base etc.
Achja, schön wäre es auch, wenn man als Aktion neben In Konstante / Resourcedatei / String.empty auch Ignorieren auswählen könnte. 🙂
Viele Grüße,
moq
Kann GMLOD so nur unterstützen.
Es ist ein "nettes" Projekt, aber schlechtes Fundament führt zu schlechten Ergebnissen.
Viele Grüße,
moq
Hallo zusammen,
Wie wäre es den alternativ mit einer Top-Liste alle Threads d. Tages?
Beispielsweise die 5 Top Themen des Tages - jeder Benutzer kann einem Thema od. einer Antwort Punkte vergeben. Ähnlich wie bei codeproject..
Viele Grüße,
moq
Hab gerade mal den BinaryReader durchforstet und folgendes gefunden:
http://msdn.microsoft.com/en-us/library/system.io.binaryreader.readint16.aspx
"Reads a 2-byte signed integer from the current stream and advances the current position of the stream by two bytes. "
Müsste demnach das richtige sein..
Hallo zusammen,
ich habe derzeit Probleme mit einer binären(?) Datei die eine Dreiecksmatrix darstellen soll.
Es handelt sich um ein Entfernungswerk ("Wie weit ist es von A nach B in KM.."). in einer Dreiecksmatrix.
Mit der "Datei" habe ich folgende Beschreibung erhalten:
"pro Entfernung werden 2 Byte benötigt für 16-bit Integerzahlen. (z.B. 300km = 2C01)
Die Entfernung werden in einer Dreiecksmatrix abgestellt:
2-1,3-1,3-2,4-1,4-2,4-3,...
Zum finden der Entfernung kann dann folgende Formel genutzt werden:
((b-1)*(b-2)/2+a-1)*2, a<b"
Wenn ich die Datei nun in Notepad++ öffne erscheint der Inhalt im Anhang.
Kann mir auf die Sprünge helfen wie ich die Datei irgendwie sauber eingelesen bekomme / verarbeiten kann?
Viele Grüße,
moq
Wie wäre es zugleich mit einigen Screenshots?
Hallo,
als schnellere Alternative zu Festplatten könnte man HyperDrive einsetzen.
"In other words one would need to spread the data over a merely fifty hard disks to obtain the same performance as a single HyperDrive4. If we look back at the 2K OLTP performance one would need to stripe the OLTP database over roughly a hundred hard disks to get equal performance to a single HyperDrive4."
Viele Grüße,
moq
Es muss ja keine Referenz im fachlichem Sinne sein, die nur Entwickler od. andere "Fachmenschen" verstehen. Es reicht doch , wenn der Kunde sagt, dass er mit deiner Lösung mehr als zufrieden ist und was ihm das für Vorteile im Vergleich der davorige bringt! (Einsparungen von Ressourcen (Mitarbeiter,Geld,Zeit..), was auch immer..)
Hallo zusammen,
vor einigen Wochen hatte ich mal auf www.codeproject.com ein "Systemleistung" - Control (siehe Screenshot anhang) entdeckt. Leider finde ich es derzeit nicht mehr wieder, hat jmd. den Link noch?
Viele Grüße,
moq
Hauptsächlich Stoner Rock / Industrial / Rock.
Beispielsweise:
Viele Grüße,
moq
Hallo zusammen,
ich fahre tag täglich mit dem Rad zur Arbeit. Sind pro Tag knapp 10-12 KM. Finde es viel angenehmer und zugleich gesünder als sich bsp. in die öffentliche Verkehrsmittel zu quetschen.
Viele Grüße,
moq
xyz zukunftssicher! Für die Programmierung wurden die modernste Techniken gewählt, die derzeit am Markt verfügbar sind: Microsoft .NET 3.5 Framework und in Verbindung mit der SQL Server Compact 3.5 Datenbank. Dies bildet den idealen Kern der Anwendung.
Hallo Blue_Dragon,
wie bereits in einem vorherigen Post erwähnt, musst du ein Virtuelles Verzeichnis im IIS erstellen und konfigurieren.
Viele Grüße,
moq
Hallo,
wir nutzen TargetProcess.
Viele Grüße,
moq
Hallo,
bei mir gibt es den Eintrag "Internet-Informationsdienste (IIS)" .
Sehr mysteriös auf jeden Fall..
Viele Grüße,
moq
Damit funktionierts nicht. Installier dir mal den IIS.
Dafür benötigst du eine Windows CD und etwas Rechere bei Google. Tipp: Wenn der IIS installier ist, google mal nach "Virtuelles Verzeichnis IIS".
http://technet2.microsoft.com/WindowsServer/de/library/6b672523-789a-4523-8f27-f745802db40b1031.mspx
Hallo Blue_Dragon,
nutzt du den IIS oder den ASP.NET Development-Server?
Prinzipell müsstest du nur deine IP im Netzwerk rausfinden und dann anstelle von localhost diese in der URL nutzen.
Viele Grüße,
moq
Hallo Blue_Dragon,
schau dir mal den Abschnitt:
Geräteemulator-Manager: ActiveSync-DMA-Transportunterstützung sowie So verbinden Sie eine Instanz des Emulators mit ActiveSync meines ersten Links an.
Kurze Umriss: Um mit dem Emulator auf deinen WebService zuzugreifen, benötigt er eine virtuelle Netzwerkverbindung. Diese wird über den Geräte-Manager erstellt. Active-Sync verhält sich dann so, als hättest du über USB ein PPC angeschlossen. Natürlich musst du DMA dafür aktivieren. Das steht alles in dem Link den ich dir gepostet habe!
Viele Grüße,
moq
PS:
Den Link WebService mit Pocket PC aufrufen. hast du dir nicht angeschaut oder? 🙂
Hallo Blue_Dragon,
wahrscheinlich nutzt du ActiveSync. Was für ein Endgerät nutzt du? Emulator ?
Dieser Link könnte dir weiterhelfen. Das Stichwort ist DMA.
http://support.microsoft.com/kb/908273/de
WebService mit Pocket PC aufrufen.
http://dotnet.org.za/diago/archive/2007/02/08/102455.aspx
Viele Grüße,
moq
Hallo Blue_Dragon,
hört sich schwieriger an als es ist..
Visual Studio nimmt dir die schwierige Arbeit ab und erstellt bsp. alle Proxy-Klassen/Service-Klassen für dich. Der Rest ist simple Programmierung. (paar Method Calls => fertig)
Auf codeproject.com bzw. hier im Forum wirst du bestimmt einige Beispiele finden..
Viele Grüße,
moq