Laden...

Forenbeiträge von kaepten Ingesamt 239 Beiträge

12.05.2015 - 15:13 Uhr

Ich habe nun 179 Tage bekommen... 🤔 naja jedenfalls mehr als 4 Tage und mehr als genug.

Mir hat das hier geholfen:
Visual Studio Forum ...

Wobei im Artikel von der Preview geredet wird. Die hatte ich tatsächlich installiert, aber auch wieder deinstalliert, bevor ich die RC installiert habe.

Download the setup application you used to originally install Visual Studio 2012. If you installed from media, please insert that media.  
Open a command prompt.  
    Click Run on the Start menu (Start + R).  
    Type cmd and press OK (Enter).  
Type in the full path to the setup application and pass the following command line switches: /uninstall /force  
Example: D:\vs_ultimate.exe /uninstall /force  
Click the Uninstall button and follow the prompts.

Wie sollte ich also die Preview uninstall force machen? Egal

Ich habe das ISO der 2015er RC Version nochmals verbunden und davon dieses uninstall force gemacht habe. Das hat die RC deinstalliert mitsamt den Lizenzeinschränkung aus der Preview (Vorinstallation).... ( Alles klar? 8) )

11.05.2015 - 21:24 Uhr

Danke für den Link! Ich werde das Morgen im Büro gleich mal genau durchgehen und schauen, ob das auch mein Problem ist.

11.05.2015 - 21:15 Uhr

😄 Danke für die Antworten! Aber...

Ich würde gerne wissen, wie ich die Enterprise Version nochmals/länger testen kann, um Demos und Präsentationen für die GL zu machen.

Privat würde ich ja Community Edition nutzen, aber ich muss die Enterprise fürs Geschäft evaluieren. Ich hab halt einfach mal die Version 2015 installiert und als ich nach einer Lizenz gefragt wurde bzw. nach Account habe ich kurzerhand meine privaten Microsoft Account angegeben.

Also die Frage: kann ich mit der MSDN Lizenz unbegrenzt testen? Der MSDN Admin will mir "einfach so" die Zugangsdaten nicht geben.

11.05.2015 - 21:07 Uhr

Hi und danke für die Antwort!

Doch, das kann ich also bestätigen, dass meine Lizenz auf meinen privaten hotmail / microsoft Account in 4 Tagen abläuft. Wird mir jedenfalls so als "Warnung" in VisualStudio angezeigt oben rechts...

Du meinst, dass die MSDN Lizenzierung nich abläuft?

11.05.2015 - 20:35 Uhr

Hallo Forum

Nachdem ich die üblichen 30/60 Tage die VisualStudio 2015 RC mit meinem privaten MS-Account getestet habe wird mir natürlich nun der Hahn abgedreht.

Ich finde nirgends Hinweise, wie ich die Testdauer verlängern kann. Immerhin haben wir im Hause ein MSDN Abo. kann es sein, dass ich mit diesem MSDN Account die Testdauer verlängern kann? (bzw. das die MSDN Lizenz nicht in der Dauer beschränkt ist?) Ich finde so auf die Schnelle bei MS keine Hinweise und unser MSDN Admin ist - freundlich gesagt - nicht so willig sich selbst schlau zu machen 🤔

Vielen Dank für Hinweise!

PS: und warum die Testdauer verlängern!? Weil ich das zuerst mal so "privat" für mich ausprobieren wollte ohne Hintergedanken. Nun möchte die GL doch etwas genauer wissen, was mit VS2015 auf uns zu kommt und ich wollte ein Paar Live-Demos machen für unsere Entscheidungsträger... dumm, dass meine "private" Testlizenz in 4 Tagen abläuft 8)

18.09.2014 - 15:15 Uhr

Besten Dank für die aufschlussreichen Antworten.

Am Ende geht es für mich auch wieder in die Richtung soll eine Exception geworfen werden oder nicht.

Das Anmelden des Benutzers am System mag ein Benutzerfehler sein/erzeugen = falsches Passwort. Ganz sicher darf es kein System-Fehler sein. Denn wenn ich eine Exception werfe bei nicht übereinstimmenden Login-Angaben, dann hab ich wohl den Sinn eines Login-Dialogs nicht verstanden. Denn der Login-Dialog hat zwei absolut nachvollziehbare Zustände: da kommst Du rein, da kommst Du nicht rein. Das hat nichts mit einem Anwendungsfehler zu tun. Meine Ansicht.

Hier aber fängt unser "Problem" ja an: es gibt Exceptions, die bubblen sich im System nach oben und sind wirkliche Fehler, die nirgends verarbeitet/abgefangen wurden - weil einfach niemand diesen Zustand erwartet und im Programmcode robust verarbeitet hat (robuster Code). Dann gibt es Exceptions, die aus jux und tollerei geworfen werden, ein falsches Login z.B. und dann kommt ein Fehlerdialog.

Am ende ist es mir ja wurscht, ob mein Kollege eine Exception wirft bei jedem kleinen Ding. Er darf nur nicht pauschal bei jeder Exception den Error-Dialog anzeigen und den Exception-Dump darstellen. Dann muss er Fallabhängig auch mal in einem Catch eine modale Warnungs-Box anzeigen: Passwort und Benutzername stimmen nicht überein.

11.09.2014 - 09:24 Uhr

Hallo Forum

Ich habe eine Frage eher konzeptioneller Art. Hier in der MSDN wird eigentlich schön die Art von "Messages" beschrieben, weiter gibt es dann auch gute Beispiel wann welcher Dialog und warum verwendet werden soll.

Das hilft mir aber bei der simplen Frage nicht weiter: Ist eine Eingabe eines falschen Passwortes beim Anmelden eines Benutzers an der Anwendung ein Fehler?

Ich komme deshalb auf diese simple Frage, weil wir bisher für ein falsches Passwort denselben FehlerDialog anzeigen, wie bei einem unerwarteten Fehler. (Rotes Stopp Symbol, Fehlernachricht, Schliessen-Button) Nun haben wir den Fehlerdialog um eine Funktion erweitert, die es erlaubt, automatisch das Logfile vom Kunden an unseren Server zu übermitteln - ein zusätzlicher Link-Button wird angezeigt mit der entsprechenden Beschriftung. Nun wird also ab sofort auch bei einem falschen Login ein "gefährlich" aussehender Dialog mit Log-Versende Funktionalität angezeigt. Das wirkt jetzt irgendwie überkandidelt! (Zumal uns der Kunde sicher nicht das Log zuschicken muss, wenn er sich wegen eines falschen Passwortes nicht anmelden kann)

Aus dieser Tatsache heraus bekomme ich also die Meinung, dass ganz grundsätzlich der FehlerDialgo für ein falsches Login nicht die richtige Benachrichtigung ist. Aber in welche "Kategorie" gehört die Benachrichtigung? Warnung, Info... ? Denn ein Fehler aus Anwenungstechnischer Sicht ist es ja nicht!

Gibt es UI Spezialisten hier, die dazu eine Meinung haben und eine Aussage machen können?
Vielen Dank für Hinwese und Meinungen

PS: Ich weiss, es gibt weltbewegendere und schlimmere "Probleme", aber wir haben betreffend unserer Anwendung eine maximale "User-Experience" auf unsere Fahne geschrieben... dazu gehört für mich auch die korrekte Darstellung und Benachrichtigung von Messages.

10.02.2014 - 16:04 Uhr

Hallo zusammen und vielen Dank für die ausführlichen Antworten!

Eine Woche hatte mich die Grippe im Griff und während dem Fiebern habe ich dauernd an den Exceptions rumstudiert 😉

Ich habe mein "Mind-Set" etwas erweitern können. Denn der Beispielcode ist eigentlich ein Code, den ich selbst nie so geschrieben hätte. Ich hätte bisher keine Exceptions geworfen, sondern irgendwie mit einer bool Validate-Methode und evtl. einer BrokenValidList gearbeitet um die Nachrichten "nach Aussen" zu tragen. Aber ich verstehe das Prinzip mit den Exception, die Vorteile dabei und finde es eigetnlich auch praktisch. ( Aber eine Methode für faule... 😉 )

Mir kommen Exception ein wenig wie "GoTo"s vor... es schmeisst Dich irgendwo aus einem Fluss raus. Nicht direkt nach oben, sondern halt da wo es gefangen wird.

Es bleibt bei mir das Bauchgefühl, dass ich eher nach Lösungen ohne Exceptions suche, denn ich finde den Code schlechter lesbar. Zum Beispiel irgendwie so:


		private Model _data;
		private BrokenValidList _brokenValidList;
        public void DoIt(Model data)
        {
            try
            {
                _data = data;
                if (IsDiesValid())
				{
					FuehreDiesJetztAus();
				}
                else
                {
	               MsgDialog.Show(_brokenValidList); 
	               return;
                }


                ...
            }
            catch (Exception exception)
            {
                MsgDialog.Show(exception);
            }
        }

        private bool IsDiesValid()
        {
            if (_data == null)
            {
	            _brokenValidList.Add(new InvalidObject(data, "Keine Daten vorhanden"));
                return false;
            }
            if (string.IsNullOrEmpty(_data.RequiredName))
            {
                _brokenValidList.Add(new InvalidObject(data, "Der Name ist erforderlich"));
				return false;
            }
        }

Mir gefällt an diesem Code etwas besser, dass ich im Ablauf sehr schnell sehe was passiert, oder passieren kann ohne, dass weiter "nach innen" nachgucken müsste. Angenommen, dass ich im Code von DoIT stehe:

Ich WEISS direkt, dass es eine Validierung gibt bevor **FuehreDiesJetztAus **ausgeführt wird. Ich weiss auch sogleich, dass FuehreDiesJetztAus NICHT ausgeführt würde, wenn PruefeObIchDiesMachenDarf fehl schlägt (und auch die nachfolgenden Funktionen nicht). Klar sehe ich das Try-Catch, aber ich habe nicht so sehr verinnerlicht, dass eine Validierung mit Exceptions um sich schmeisst. Exception sind halt eher die Ausnahme und böse. Eine Validierung ist lieb und nett und gern gesehen - nicht nur in Ausnahmefällen - und dient der Robustheit des Codes 😉

Mir will eben auch nicht so recht gefallen, dass ich an PruefeObIchDiesMachenDarf nicht ansehe wohins mich rausschmeisst, wenn die Exception auftritt. PruefeObIchDiesMachenDarf schmeisst die Exception, aber nicht die aufrufende Methode fängt die Exception, sondern noch etwas weiter oben erst wird gefangen. Ich kann z.B auch in der Entwicklungsumbegung nicht direkt navigieren, ich muss mich hochhangeln und suchen.

Mir gefällt an meinem Code natürlich weniger, dass ich über eine zustäzliche BrokenValidListe arbeiten muss, um die Nachricht nach aussen tragen zu können. Den Code finde "lesbarer", aber diese Liste macht es etwas aufwändiger.

Für mich ist das Thema somit geklärt, Anregungen und Meinungen würden mich aber nach wie vor sehr interessieren!

30.01.2014 - 09:02 Uhr

Hallo Froum

Verschiedene Quelle thematisieren kontrovers die "Kosten" von Exception. Abgesehen von diesen Diskussionen wird dennoch (meist) einhellig gesagt, dass Exceptions nicht zur Steuerung des Programmflusses verwendet werden sollten. Auch hier im Forum kommt diese Aussage. Ich finde aber nirgends eine Begründung dazu!

Die Diskussion "Steuerung des Programmflusses" ist für sich selbst schon nicht einfach. Wann ist es eine Steuerung, wann doch nicht. (CSLA schmeisst auch Exceptions, wenn Validierungen von BusinessRules invalid sind...) Aber ich würde mal gerne wissen welche Argumente GEGEN solchen Code sprechen würden:

Pseudo-Code:


		private Model _data;
		public void DoIt(Model data)
		{
			try
			{
				_data = data;
				ManchZuerstDies();
				MachDannDas();
				SchliesseVerarbeitungAb();
			}
			catch (Exception exception)
			{
				MsgDialog.Show(exception);
			}
		}

		private void ManchZuerstDies()
		{
			PruefeObIchDiesMachenDarf();
			FuehreDiesJetztAus();
		}

		private PruefeObIchDiesMachenDarf()
		{
			if (_data == null)
			{
				throw new MeineSpezialExceptionDarfNichtNullSein(data, "Keine Daten vorhanden");
			}
			if (string.IsNullOrEmpty(_data.RequiredName))
			{
				throw new MeineSpezialExceptionDarfNichtNullSein(data, "Der Name ist erforderlich");
			}
		}

Vielen Dank für Tipps und Hinweise zu Quellen oder Posts hier im Forum.

11.10.2010 - 14:15 Uhr

Hallo Forum

Ich suche Tipps und Empfehlungen zu Grid-Controls. Das Grid muss leistungsfähig und zuverlässig sein (keine Freeware gesucht!)

Wir nutzen hier das SourceGrid von codeproject.com. Vielleicht kennt das jemand. Ist nicht schlecht, aber nun stösst das freie Controll langsam an seine Grenzen. Wir können unsere Anforderungen damit nicht mehr abdecken und wir möchten etwas "erwachsenes" kaufen. Nur was?

Bisher habe ich diese zwei Anbieter gefunden:
devexpress
Xceed

Kann hier noch jemand eine Ergänzende Empfehlung machen?
Vielen Dank für eure Antworten.

29.06.2010 - 16:10 Uhr

Ich konnte es prima an meinen echten Daten nachvollziehen.

Besten Dank für Deine Antwort!

29.06.2010 - 13:48 Uhr

Hi Viper

Das echte Problem ist etwas komplexer, ich dachte nur das Produkt-Bestellungs Beispiel kann jeder nach vollziehen und anhand dessen eine mögliche Lösung aufzeigen. Es muss auf jeden Fall Live ausgeführt werden...

Gehen wir mal vereinfach von dem hier aus:

Bestellung:
[Id], [Datum], [ProduktId], [KundenId]

Produkt:
[Id], [Name]

Danke für die Anwort!

29.06.2010 - 13:11 Uhr

hiho
Ich muss Datenbank-Unabhängig bleiben... also reines SQL oder dann halt im Code mit C#

29.06.2010 - 11:12 Uhr

Danke für euer Antworten.

spacenet, das würde ich momentan so im DataSet mache. Denn die Daten werden ohnehin als DataSet dem Report übergeben. So würde ich also das ursprüngliche Resultat im Code nochmals verwurschteln und dann ins DataSet in der Form abfüllen. Kommt Deinem Ansatz denke ich gleich, einfach dass es kein DB-Ansatz ist.

29.06.2010 - 10:47 Uhr

verwendetes Datenbanksystem: ORACLE / SQL Server

Hallo Forum

Die Frage geht ganz grundsätzlich um SQL, gerne nehme ich auch links zu spezialisierten Foren entgegen, sollte das Thema hier nicht passen.

Es geht um die gestaltung eines Reports und die Datenerhebung mittels SQL.
Der Report soll immer für 6 Tage die Anzahl der Bestellungen eines Produktes darstellen können. (Ist Vereinfacht, also nicht Anzahl Produkte!)

Darstellung im Report


Produkt - Tag1 - Tag2 - Tag3 - Tag4 - Tag5 - Tag6
Prod.A - 2 - 5 - 2 - 9 - 5 - 7
Prod.B - 2 - 2 - 2 - 3 - 5 - 5
Prod.n - 2 - 5 - 2 - 5 - 8 - 5

Die Query:
select * from Produkt
join Bestellung on Bestellung.Produktid = Produkt.Id
where Bestellung.Datum ≥ 1.7.2010 and Bestellung.Datum ≤ 6.7.2010

Gibt es einen Ansatz, dass ich nun das Resultat nicht nur "vertikal" sondern auch "horizontal" auf die Tage/Datum bekommen kann? Die 6 Wochentage sind ja immer gegeben...

Vielen Dank für Tipps und Hinweise
kaepten

18.09.2009 - 08:45 Uhr

Hallo Forum

Ich habe hier eine ziemlich grundsätzliche Frage zum Laden von Assemblies.

Ein PlugIn-System von mir lädt mir eine Assembly zur Laufzeit. Diese Assembly hat weitere Referenzen zu anderen Assemblies. Beispiel:

PlugIn_1.dll --> Referenz zu --> Kernel.dll (1.0.0.0)

Nun gibt es ein weiteres PlugIn, welches auch den Kernel Referenziert, aber (leider) in einer neueren Version.

PlugIn_2.dll --> Referenz zu --> Kernel.dll (2.0.0.0)

Nun zur eigentlichen Frage:
Wie lädt eigentlich die .NET Runtime Assemblies, woher nimmt er sie und wie geht er dabei vor. Ich habe die PluIn's in einem Subverzeichnis im Bin-Verzeichnis drin.

bin
plugin1
plugin2

Momentan ist im bin direkt drin die Kernel.dll, beide Plugins arbeiten damit. Aber was passiert, wenn ich unterschiedliche Versionen von Kernel.dll in den einzelnen Plugin-Verzeichnissen drin habe? Zieht die Runtime dann die richtige Referenz (Version) von Kernel.dll an? Oder wie müsste ich in diesem Falle vorgehen?

Hinzu kommt noch, dass ich weder mit StrongNames, noch mit GAC arbeite!

Vielen Dank für Hinweise und Tipps
kaepten

31.05.2009 - 10:22 Uhr

OMG bin ich ultra blöd! Manchmal sollte man das Arbeiten zur späten Stunde einfach lassen. 😦

Das Problem war, dass ich den DB Instanzname SQLEXPRESS brav eingab, aber den Rechnername vergass.

Problem gelöst. Manchmal hass ich meine Arbeit, 3 Stunden verloren... für eine Banalie... ARGH

31.05.2009 - 09:54 Uhr

Hallo und Danke für die Antwort.

Zugegebenermassen kenn ich mich mit SQL Server fast nicht aus. Ich glaube nun auch langsam, dass ich etwas grundsätzliches falsch mache.

Wenn ich das Management-Studio starte, was sollte ich eigentlich eingeben wohin ich verbinde? Der Server ist ja frisch installiert und trägt den Namen "SQLEXPRESS". Ich verstehe schon mal den Unterschiede "Datenbankmodul" und "SQL Server Compact" nicht...

Vielen Dank für Tipps
kaepten

EDIT: Wenn ich ein "Datenbankmodul" verbinden möchte, dann wähle ich "Suchen..." und ich kriege da aber keine lokalen Server gelistet.

31.05.2009 - 00:11 Uhr

verwendetes Datenbanksystem: <steht im Titel>

Hallo Forum

Ich wollte jetzt grad neu mal die 2008er DB installieren (unter Windows 7 64Bit) und ich finde die Möglichkeit nicht, mein altes Backup vom 2005er einzuspielen.

Gibt es diese Möglichkeit denn unter dem 2008 Server Mgmt Studio nicht (mehr)? Mir fehlen die ganzen "Taks" die ich vom 2005er her kenne.

Vielen Dank für Tipps
kaepten

13.05.2009 - 08:22 Uhr

Hallo Forum

Ich bin grad wild am recherchieren betreffend WS (Security) und auch Transfer von binärdaten.

Vor langer Zeit hatte ich mal eine Implemetation mit byte[] und Base64 Encodierung gemacht. Hat funktioniert. Nun habe ich nochmals Code gesucht und stolpere über "DIME". Ich hatte das nie gehört zuvor.

Hat irgendjemand schon mal mit den Web Service Enhancements (WSE) 2.0 gearbeitet?
Im speziellen mit Dime Attachments. Die Beiträge hier im Forum sind doch schon etwas älter, was mich verunsichert, ob das überhaupt noch ein gangbarer und brauchbwarer Weg ist.

Vielen Dank für Antworten
kaepten

12.05.2009 - 10:08 Uhr

Vielen Dank für die Links, da werde ich mich jetzt einmal schwer reinknien.

Vorab aber eine Frage; auf den Punkt gebracht : Dieses WCF Sicherheitskonzept beschränkt sich auf Services innerhalb WCF/.NET. Das heisst, dass ich mit PHP dieses Konzept nicht nachvollziehen könnte?

kaepten

12.05.2009 - 09:30 Uhr

Hallo LaTino

Gut, jetzt verstehe ich langsam.

Es ist jedoch so, dass ich nicht mit "fremden" Clients Kommunizieren muss. Server (Webservice) wie auch Client-App sind sozusagen "Proprietär" in unseren Händen.

Wie funktioniert denn euer Authentifizierungs-System auf Header Basis? Ist das eine eigene Implementation, oder gibt es da gängige Patterns?

kaepten

12.05.2009 - 09:11 Uhr

Hallo und Danke für die Anwort!

Deinen Worten entnehme ich, dass SOAP für sich selbst keine Authentizierung, bzw. Autorisierungsmechanismen mit sich bringt.

Eine Implementation über den SOAP Header z.B. wäre nicht denkbar?

kaepten

12.05.2009 - 08:46 Uhr

Hallo Forum

Ich habe mich nie um Sicherheit in Bezug auf Webservices unter .NET machen müssen, weil wir unsere WS-Kommunikation immer im gesicherten Netz betrieben haben.

Nun ändert sich die Situation ein wenig und ich recherchiere in zwei Richtungen betreffend Sicherheitskonzept:

  • rein .NET und IIS Technologie basiert, was verwendet man da?
  • ein .NET Client und ein PHP Webservice z.B. auf Apache, was kommt hier zum Zug?

Kann mir jemand mit Stichworten weiterhelfen? In welche Richtung geht das Sicherheitskonzept?

Vielen Dank für Antworten
kaepten

20.02.2009 - 08:58 Uhr

Hoi LaTino

Ich rede hier nur über die "Begrifflichkeit". Insofern, wenn ich unter Kollegen rede, ist UNC klar umrissen was gefordert ist.

Der Begriff "Laufwerkspfadangabe" wird halt unter Kollegen als solcher nicht wahrgenommen, was er eigentlich bedeutet. Hätte er einen Begriff wie UNC, dann wärs auch klar. Da kann dennoch die Frage aufkommen: Ist das nun ein Pfad zum Laufwerk auf Server x, oder wie...

Dasselbe mit dem Begriff "Dateinamen". Beinhaltet der nun die komplette Verzeichnis- und Dateinamen infromation, oder nur den Namen selbst? Beinhaltet der "Pfad" auch immer den Dateinamen? So klar ist das bei uns manchmal nicht... 😉

kaepten

20.02.2009 - 08:36 Uhr

Danke für die ausführlichen Erläuterungen!

Warum hat man für die "Adressierung von Ressourcen im Netzwerk" den schönen Begriff UNC erfunden - der keine Fragen offen lässt - aber für "Laufwerkspfadangaben gibt es keinen Begriff für dessen "Format"?

kaepten

20.02.2009 - 08:08 Uhr

Hallo Forum

Eine Grundlagen-Frage zu Pfaden. Ich würde gerne wissen, wie die Begrifflichkeiten sind.

UNC ist ein Pfad der auf eine Ressource zeigt. Das kann ein Server im Netzwerk sein, aber auch mein eigener Rechner:
\rechnername\verzeichnis\dateiname wobei das "verzeichnis" immer eine Freigabe sein muss. (Ich kann also nicht ohne eine Standard-Freigabe auf c:\zugreifen)

Wie sagt man denn einem Pfad auf dem eigenen Rechner nach dem Schema c:\temp\dummy.txt? Die MSDN sagt dem "Laufwerkspfad". Aber gibts dafür auch einen (internationalen) Begriff?

Dann wäre noch; wo wären URI und URL einzuordnen?

kaepten

06.02.2009 - 10:21 Uhr

Hallo theury

Der Grund, warum ich es etwas umständlich im Memory implementiere ist der:
Ich rufe Image.Save nicht in der einfachen Form auf, sondern übergebe bei der Konvertierung zu JPG noch den Qualitäts-Wert mit.

Dann werden aus dieser Save-Zeile eben mehr Zeilen um den Codec und die Parameter dafür zu instanzieren und zu deklarieren. Das möchte ich in einer Methode verbergen, ohne dass die Methode das Image aber persistiert.

Ich habe meine Tests abgeschlossen und es funktioniert alles wie erwartet. Die Frage bleibt eigentlich nur: könnte man es besser machen?


public static Image ToJPG(Image sourceImage, int quality)
            {
                // simple validation
                if (sourceImage == null)
                {
                    return null;
                }

                #region Configure JPG Quality

                ImageCodecInfo iciJpegCodec = null;

                // This will specify the image quality to the encoder
                EncoderParameter epQuality = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);

                // Get all image codecs that are available
                ImageCodecInfo[] iciCodecs = ImageCodecInfo.GetImageEncoders();

                // Store the quality parameter in the list of encoder parameters
                EncoderParameters epParameters = new EncoderParameters(1);
                epParameters.Param[0] = epQuality;

                // Loop through all the image codecs
                for (int i = 0; i < iciCodecs.Length; i++)
                {
                    // Until the one that we are interested in is found, which is image/jpeg
                    if (iciCodecs[i].MimeType == "image/jpeg")
                    {
                        iciJpegCodec = iciCodecs[i];
                        break;
                    }
                }

                if (iciJpegCodec == null)
                {
                    throw new Exception("Required JPG image encoder not available!");
                }

                #endregion

                #region Conversion

                Image newImage;
                MemoryStream mem = new MemoryStream();
                sourceImage.Save(mem, ImageFormat.Tiff); // use lossless format
                newImage = Image.FromStream(mem);
                MemoryStream memWrite = new MemoryStream();
                newImage.Save(memWrite, iciJpegCodec, epParameters);

                return Image.FromStream(memWrite);

                #endregion // conversion
            }

kaepten

06.02.2009 - 09:11 Uhr

hallo theury

Genau das versuche ich und es ist richtig was Du schreibst.

Aber es geht mir um das Image objekt. Wenn ich im Memory diese Konvertierung vornehme, dann sollte doch das objekt die Formatinfos haben. Ein anschliessendes Speichern mit Image.Save(imagePath) reicht dann um das Bild im gewünschten Format zu speichern.

Wie gesagt, ich bekomme keine Laufzeitfehler, bin aber grad noch am Testen, ob das abschliessende Speichern mir auch das Format korrekt macht...

kaepten


                Image newImage;
                MemoryStream mem = new MemoryStream();
                sourceImage.Save(mem, ImageFormat.MemoryBmp); // use lossless format
                newImage = Image.FromStream(mem);
                MemoryStream memWrite = new MemoryStream();
                newImage.Save(memWrite, iciJpegCodec, epParameters);

06.02.2009 - 08:17 Uhr

Hallo Forum

Ich möchte eine Konvertierung zu JPG machen. Dazu verwendet man ja die Image.Save Methode. Soweit so gut, allerdings möchte ich die Bilddatei in dieser Methode (!) nicht direkt ins Filesystem speichern. Deshalb verwende ich einen MemoryStream. Folgender Code kommt dabei raus:

         
public Image ConvertJPG(Image sourceImage)  
{     

...

Image newImage;
using (MemoryStream mem = new MemoryStream())
{
sourceImage.Save(mem, ImageFormat.Tiff); // use lossless format in memory
newImage = Image.FromStream(mem);
}
MemoryStream memWrite = new MemoryStream();
newImage.Save(memWrite, iciJpegCodec, epParameters);

return Image.FromStream(memWrite);
}

Der Code funktioniert, aber irgendwie scheint er mir nicht sehr elegant. Gerade die Zeile wo ich ins TIFF-Format zwischenspeichere ist mir selbst suspekt. Weiss jemand einen anderen Ansatz oder kann mir Tipps geben?

kaepten

29.01.2009 - 09:48 Uhr

Es hat so lange gedauert, bis ich die Ursache gefunden habe, gerade weil ich es auch für unwahrscheinlich hielt. Ich hatte zig-Mal den Oracle Client-Treiber Re-Installiert, weil ich dachte dass es daran liegt.

Dennoch: Wieso ging es auf allen anderen Entwicklungsrechner (die eigentlich auch alle die Betriebssystem-Updates bekommen sollten) nur bei mir und zufälligerweise bei meinem Arbeitskollege nicht!? Das ultimative Erlebnis war, als wir unsere Maschine zuerst neu aufgesetzt hatten, weil wir nicht wussten was die Ursache war. Es funktionierte bei uns dann genau 2 Tage bis wir den Fehler "plötzlich" wieder hatten. Er spielte sein Image ein und ich (hatte keines) fing dann eben an das ganze .NET zu re-installieren.

Das Problem ist jedenfalls behoben mit einer neuinstallation vom Framework. Die Ursache ist jedoch unbekannt und absolut nicht nachvollziehbar.

kaepten

29.01.2009 - 08:49 Uhr

Hallo Forum

Folgendes ist mir passiert:
Ich hatte "plötzlich" ganz punktuell Probleme mit DB-Query's auf Oracle. Gewissen nachvollziehbare Abfragen aus meiner Anwendung heraus führten zu einem Absturz. Das Problem lag im Bereich "Execute requires the Command object to have a Transaction object when the Connection object assigned to the Command is in a pending local transaction. The Transaction property of the Command has not been initialized" (System.Data.OracleClient). Weil nur mein Rechner diesen Fehler plötzlich hatte, kam ein Programmierfehler zu 99% nicht in Frage. Nach Stundenlanger Ursachensuche habe ich schlicht und ergreifend die ganze Entwicklungsumgebung mit samt .NET Framework de- und wieder installiert. Nun läuft die Codestelle ohne Probleme durch.

Habt Ihr euch auch schon einmal das Framework zerschossen? Was könnte die Ursache gewesen sein? Ich vermute, es muss irgend ein Windows-Update gewesen sein, welches mir von der IT periodisch im Hintergrund eingespielt wird.

kaepten

27.01.2009 - 09:58 Uhr

@DonMaxo
Das ist wirklich ein toller Link! Gute Inhalten, Danke.

27.01.2009 - 09:37 Uhr

robert

Ich bin eine Niete beim erfolgreichen Suchen und in der MSDN verlaufe ich mich sowieso immer. Danke für die tollen Links.

DIE Seite, die ich suche und im Kopf habe, die habe ich aber noch nicht finden können; da gab es auch so Screenshots, wieviel Abstand Controls vom Rand haben sollen, dass Labels oberhalb von InputBox'en sein sollten etc.

kaepten

27.01.2009 - 09:23 Uhr

Hallo kubi

😃 Interessante Ansicht.

Nein, es gibt Tatsächlich Richtlinen, wo Microsoft Vorgaben macht, wie Forms (generell) auszusehen haben. Ich behaupte, dass Du ganz intuitiv davon profitierst. Es gibt nämlich lustige self-tests. Vertausch in einem Dialog mal Ok - und Abbrechen. Du wirst sehen, dass Du merkst, dass 'etwas nicht stimmt'.

So gibt es z.B. auch die 'Regel', dass die Benennung von Menüeinträgen immer '...' (drei Punkte) haben, wenn bei diesem Menüpunkt ein Dialog aufgeht, der weitere Eingaben für die Weiterverarbeitung benötigt... Daran hält sich wohl eigentlich jede Win-App. Und da gibt es noch weitere so "kleinigkeite".

Kein Graus, eine Vereinfachung im Alltag, damit man Intuitiv Bedienen kann.

Grüsse
kaepten

27.01.2009 - 09:08 Uhr

Danke für den Link, bin ihm mal nachgegangen. Aber ich suche etwas anderes; Ich suche so Richtlininen ganz allgemein für Windows-GUI Design.

Also so ein Regelwerk wo z.b. festgehalten ist, dass Buttons unten rechts zu sein haben. Dass ganz rechts immer Abbrechen, links davon OK ist etc. etc.

kaepten

27.01.2009 - 09:03 Uhr

Hallo Forum

Ich kanns nicht mehr finden 😦

In der MSDN gibt es Seiten, die sich mit dem GUI Design (WinForms) befassen. Kann mir vlt. grad jemand mit Links weiterhelfen?

Selbstverständlich sind mir auch sonstige Links die sich mit Windows GUI und Usability befassen willkommen.

Vielen Dank
kaepten

27.11.2008 - 13:08 Uhr

Hallo

Pragmatischer Ansatz, darf man das? 😉
Stimmt, damit hätte ich das Problem einfach umgangen...

kaepten

27.11.2008 - 12:48 Uhr

Hallo Forum

Ich habe einen Webservice und ich möchte einen Proxy dazu erstellen lassen. Nun gibt es IMO zwei Wege; im VisualStudio über WebReference und über das Tool wsdl.exe.

Das Problem bisher beim automatischen erzeugen des Proxy ist, dass die Rückgabetypen ja automatisch in den Proxy integriert werden. Das möchte ich aber umgehen, die Typen sollen meinen eigenen Typen aus anderen Klassen/Namespaces kommen die ich schon habe.

Der Proxy soll also selbst KEINE Typen definieren.

Auf welchem Wege kriege ich sowas hin? Mein Ansatz wäre jetzt, selbst eine WSDL zu schreiben und dann so wsdl.exe quasi "richtig" zu steuern, dass er diese Rückgabetypen der Methoden anders macht.

Kann mir in dieser Thematik jemand weiterhelfen? Hat das schon jemand mal gemacht? Falls mein Ansatz mit "eigener" WSDL stimmt, gibts ein schönes Tutorial wo ich lesen kann wie ich das genau machen müsste mit den Typen?

Vielen Dank für Tipps und Hinweise
kaepten

06.11.2008 - 08:02 Uhr

Hallo Bernd und Danke für die Antwort

Ich habe Dein Beispiel auch schon vielerorts hier gefunden 😉

Soweit hab ich das auch schon umgesetzt für Tests. Dabei frage ich mich nur, was "man" richtigerweise macht (damit kein Bastel entsteht). Für was sind denn die sogenannten "Unbound" Controls?

Mein Problem ist, dass ich all das sehe, aber nicht weiss wie in der Praxis anzuwenden.

kaepten

05.11.2008 - 16:08 Uhr

Hallo Forum

Ich finde viele Beispiele mit ADO.NET bzw. Datenbankaccess um Reports zu erzeugen. Soweit kann ich das Prinzip nachvollziehen (quasi im Stil eines Access-Reports).

Wie ist denn das prinzipielle Vorgehen mit Crystal und C#, wenn ich neben einer Daten-Tabelle auch einzelne "Felder" im Report anzeigen möchte? Mit Felder meine beispielsweise, dass ich im einfachsten Fall einen Reporttitel aus C# heraus in den Report dynamisch einfügen möchte. Oder wenn ich diverse Sprachabhängige "Labels" habe, die ich bei der Reporterzeugung befüllen möchte. Welche Crystal-Mechanismen nutzt man dazu?

Auf den Punkt gebracht; wenn ich gar kein DataSet mit Daten habe, sondern eine Klasse die alle meine Informationen enthält, die ich einzeln im Report ausgeben möchte.

Vielen Dank für Hinweise
kaepten

09.10.2008 - 13:49 Uhr

Hallo Forum

Ich suche ein freies Control für einen Prototyp. Das Control sollte in der Art eines Sliders sein, wo aber nicht ein einzelner Wert, sondern zwei Werte festgelegt werden können. Sprich: es muss ein "Range/Bereich" selektiert werden können.

Kennt jemand etwas? Möglichst "stylish" - ist schliesslich für einen Prototyp, der verkauft werden soll 😉

Danke für Tipps
kaepten

29.09.2008 - 15:37 Uhr

Danke für den Hinweis, bin es grad am durchsehen. Da tun sich mir gleich mehrere Fragen auf:

Grundsätzlich zu AssemblyInfo.cs. Kann ich da code einfügen, der ausgeführt wird. Z.B. das aktuelle Datum (DateTime.Now)? Ich dachte das wäre etwas einfacher als grad ein AddIn machen zu müssen.

Weil sich meine Idee in zwei Teile Gliedern lässt:

  1. Ich muss zur Build-Zeit etwas dynamisch in die Assembly reinkriegen. (Frage oben)
  2. Ich hätte eigentlich gerne den Algorithmus von MS verwendet, es würde aber auch ein simpler Timestamp genügen. Kennt wer den Algotithmus?

kaepten

29.09.2008 - 14:30 Uhr

Hallo Forum

In der AssemblyInfo.cs Datei kann man Platzhalter verwenden um automatische Versionsnummern beim Builden zu verwenden. Z.B: 1.0..

Nun möchte ich gerne diese Buildnummer die mir VS erzeugt, gerne in eine anderes Feld in der AssemblyInfo verwenden z.B. AssemblyProduct("Mein Produkt " + _buildNummer).

Das Ding ist; ich lasse mir die Versionsnummern NICHT erzeugen. Das heisst, ich kann die nicht aus den AssemblyInof lesen, sondern müsste sie wirklich neu erzeugen. Weiss jemand wie ich das anstellen kann?

Vielen Dank für Tipps
kaepten

07.09.2008 - 12:09 Uhr

Ich hab mir schon so ein Tool geholt, aber ich glaube es klemmt irgendwie mit dem Proxy hier bei der Arbeit. Ich denke das wird es wohl sein. Versuche es noch von Zuhause aus.

Danke für die Anwort
kaepten

05.09.2008 - 13:25 Uhr

Ja, die ist wirklich beeindrucken. Rührt aber sicherlich daher, dass die ein rel. transparentes Bugtracking-System verwenden. Die lassen halt einfach ein Report raus, ob das so geschickt ist? 😉

PS:
Ich hatte NIE einen Absturz. Das einzigste, irgendwann musste ich einen Nighly-Build nehmen, weil die Performance krass bachab ging. Aber ab der besagten NB Version hatte ich keine Probs. mehr.

05.09.2008 - 12:55 Uhr

@MagicAndre1981
Danke für den Hinweis! Den habe ich schön öfters gesehen. Aber ehrlich gesagt weiss ich einfach nicht, wie ich die Sourcen als Paket downloaden kann 😦 Meine Versuche sind gescheitert. Kann mir da wer weiterhelfen?

@Visual Assist X Benutzer
Die Aussage finde ich sehr spannend!
Ich habe mir grad Gestern das Ding wieder deinstalliert, weil ich finde, dass es den Funktionsumfang von ReSharper nicht abdecken kann. Dann habe ich auch leider ziemliche "Flacker-Effekte" gehabt. Nicht zu vergessen, dass ReSharper wesentlich günstiger zu haben ist.

Mir scheint bei diesen Tools aber eines ganz wichtig: Bei ReSharper habe ich erst nach einiger Zeit Benutzung alle Features so richtig im Alltag genutzt. (Kann sicher sein, dass es sich mit Visaul Assist X auch so verhält.) Aber grad so ein Feature was mir einfällt (Refactoring):

  1. mach eine Klasse
  2. mach mit "ctor" den Konstruktor (VS Bordmitteln)
  3. erfasse für den Konstruktor einen Parameter "bool myFlag"
  4. mach Shortcut "ALT+Enter" und wähle die Option "erstelle Klassenfeld => das Resultat ist, dass ich eine Klassenvariable bekomme und dass im Konstruktor-Body die Variable mit dem Parameter initialisiert wird.
  5. mach ein "Ctrl+R, Ctrl+E" und erstelle Dir eine Property (geht auch mit VS Bordmitteln)

Ist genial und habe ich bei VA-X nicht finden können. Auch das Code-Analysis ist bei R# sehr nützlich. Schade ist halt, dass der gesamte Funktionsumfang nicht so einfach ersichtlich ist...

kaepten

04.09.2008 - 13:07 Uhr

Mal eine Frage; gibts hier jemand, der sich schon mal ein ReSharper PlugIn gebastelt hat? (Für 4.x)

Ich versuche mich grad mit dne PowerTools, aber wenn man sich grad gar nicht auskennt ist es mühsam, da alles auf 3.x basiert.

kaepten

19.07.2008 - 16:57 Uhr

Alles Gute!

Schön das es dich gibt, halt die Ohren steiff und bleib so clever auch die nächsten 5 Jahren.

kaepten

09.07.2008 - 21:19 Uhr

Ich bin zwar noch nicht dazugekommen alle Informationen auszuwerten, aber ich möchte mich sehr für die Beiträge bedanken!

kaepten