Feed
Contact
XING
LinkedIn
Twitter
ICQ
meebo.com

Niemand kann vollkommene Software schreiben

by Roland Schumacher alias GENiALi 27. January 2010 -- 6 Wörter  -- 208 mal gelesen
Dieser Beitrag ist mir was wert:  

Tags:

Entwicklung

VS - Unterschied zwischen F5 und CTRL+F5, oder wie finde ich den Fehler

by Roland Schumacher alias GENiALi 10. October 2008 -- 357 Wörter  -- 101 mal gelesen
Dieser Beitrag ist mir was wert:  

Das hat jetzt einiges an Nerven gekostet. Eigentlich sollte ich nur ein Release-Build machen und das einchecken. Aus lauter gewohnheit habe ich dann mal die EXE-Datei gestartet und musste feststellen das die Anwendung nicht wollte. Wie so nicht? Na ja, dass galt es nun rauszufinden.

Also stellte ich die Konfiguration auf Debug und drückte F5. Die Anwendung startete ohne Fehler. Ein Doppelklick auf die EXE oder ein CTRL+F5, die Anwendung wollte nicht. :-(

Zuerst prüfte ich dann mal alle Verzeichnisse auf einen Schreibschutz. Es war nichts schreibgeschützt.

Da ich nur eine allgemeine Fehlermeldung bekam, die leider nichts sage wo was passierte, musste ich mich mühsam durchsuchen bis ich dort war wo es bum machte. Ich konnte ja nicht debuggen. Mit der MessageBox.Show(“Hallo x”) schaute ich wo es noch tat.

Nach einiger Zeit landete ich hier.

protected override DbConnection CreateConnection(string connectionString)
{
	return new SqlConnection(connectionString);
}

Jetzt konnte ich alles in ein try{} catch() Block packen und schauen was genau der Fehler war.

System.TypeInitializationException: Der Typeninitialisierer für
"System.Data.SqlClient.SqlConnection" hat eine Ausnahme verursacht.
---> System.TypeInitializationException: Der Typeninitialisierer für
"System.Data.SqlClient.SqlConnectionFactory" hat eine Ausnahme verursacht.
---> System.TypeInitializationException: Der Typeninitialisierer für
"System.Data.SqlClient.SqlPerformanceCounters" hat eine Ausnahme
verursacht.
---> System.Configuration.ConfigurationErrorsException: Das
Konfigurationssystem konnte nicht initialisiert werden.
---> System.Configuration.ConfigurationErrorsException: Unbekannter
Konfigurationsabschnitt "lag.wordplus". (P:\ProjectX\WP.config line 8)
   bei System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean
ignoreLocal)
   bei
System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors
schemaErrors)
   bei System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
   bei System.Configuration.ClientConfigurationSystem.EnsureInit(String
configKey)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Configuration.ConfigurationManager.PrepareConfigSystem()
   bei System.Configuration.ConfigurationManager.GetSection(String
sectionName)
   bei
System.Configuration.PrivilegedConfigurationManager.GetSection(String
sectionName)
   bei System.Windows.Forms.WindowsFormsSection.GetSection()
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Data.SqlClient.SqlConnectionFactory..cctor()
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Data.SqlClient.SqlConnection..cctor()
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Data.SqlClient.SqlConnection..ctor()
   bei System.Data.SqlClient.SqlConnection..ctor(String connectionString)
   bei LAG.WordPlus.Database.SqlDatabase.CreateConnection(String
connectionString) in P:\ProjectX\SqlDatabase.cs:Zeile 23.

Scheinbar wurde der Konfigurationsabschnitt “lag.wordplus” nicht gefunden. Den gibt es aber. Ganz sicher.

Der Unterschied zwischen CTRL+F5 und F5:

CTRL+F5: AppDomain.CurrentDomain.SetupInformation.ConfigurationFile == ANWENDUNGSNAME.config

F5: AppDomain.CurrentDomain.SetupInformation.ConfigurationFile == ANWENDUNGSNAME.vshost.exe.config

Das brachte mich dann auf die Idee die App.config genauer anzuschauen.
Ich fand dort folgendes.

<!-- <configSections>
    <section name="lag.wordplus"
type="LAG.WordPlus.Configuration.WordPlusSection, LAG.WordPlus" />
  </configSections> -->

Na ja, was soll ich sagen. <!-- --> weg und es tut.

Und wieder um eine Erfahrung reicher. :-)

Tags: , , ,

Allerlei | Entwicklung | Software

Wo platziert man Feedbacks in einer WinForm

by Roland Schumacher alias GENiALi 12. August 2008 -- 288 Wörter  -- 91 mal gelesen
Dieser Beitrag ist mir was wert:  

Zur Zeit bereite ich mich auf den MCPD für Windows Applikationen vor. Im Buch für die Vorbereitung werden Themen behandelt die, meiner Meinung nach, zu den Grundlagen gehören, dass heisst zum 70-536. Aber es sind Themen die mich interessieren. Viele Fragen, die ich bislang hatte, werden beim MCPD beantwortet.

Heute ging es um das Thema Validierung von Eingaben und, vor allem, wo werden die Meldung ausgegeben wenn ein Fehler gefunden wird. Validieren heisst z.B.: ist das Feld leer, was es nicht sein dürfte oder entspricht die Eingabe einer ganz bestimmten Formatierung.

Statusbar
Wenn man einen Entwickler fragt, wo man solche Meldungen ausgeben soll, wird oft die Statusbar erwähnt. Soll aber eine ganz schlechte Lösung sein. Angeblich hat Microsoft im VB.NET Team den folgenden Versuch unternommen. Im Access wurde in der Statusbar folgende Meldung ausgegeben.
”If you notice this message and tell the usability lead, we will give you 15$.”

Es wurde von niemandem gemeldet. Die Stautsbar wird also nicht oder schlecht beachtet. Dort gibt man also keine Meldungen aus.

Tooltip
So wie ich das verstanden habe ist die Implementation für Fehlermeldung UND die normalen Meldungen einfach zu aufwendig. Angeblich auch ungeeignet.

Feld farbig markieren
Was auch sehr beliebt ist, auch bei mir, dass das Feld rot hinterlegt wird. Aber wenn man an Sehbehinderte denkt ist das auch eine ganz ganz schlechte Lösung. Meistens ist das Feld dann rot was dem Kontrast nicht entgegen kommt.

Was ist richtig
Was ist nun der richtige Weg?
Der ErrorProvider. Den kann man einfach an ein Control binden und die Meldung ausgeben. Der Provider produziert dann neben dem Fehlerhaften Control einen blinkenden roten Kreis mit einem Ausrufezeichen drin. Im Tooltip wird die Meldung angezeigt.

Na dann weiss ich was ich in Zukunft anwenden sollte.

Tags: ,

Allerlei | Ausbildung

VB6 und eine komische Eigenart

by Roland Schumacher alias GENiALi 23. July 2008 -- 146 Wörter  -- 72 mal gelesen
Dieser Beitrag ist mir was wert:  

Ich bin nicht unbedingt Fan von VB6. Kommt wahrscheinlich
daher das ich mit C# zu programmieren gelernt habe und
es für mich einfach ein Rückschritt ist.

Dann kommt es immer mal wieder vor das irgend etwas
nicht will. Erklärbar ist das dann aber nicht. Hier ein Beispiel.

If (g_objRAdEx.Fakultaet.Key = "KSF") And (mod ...

Wenn dieser Code im Visual Studio 6 ausführt wurde war Key
immer leer b.z.w. Nothing. Wenn ich dann einen Haltepunkt auf
diese Zeile setzte war die Variable Key nicht mehr Nothing. Es
war der richtige, gewünschte Wert drin. Haltepunkt weg, und es
stimmte nichts mehr.

Das kann doch jetzt wirklich nicht sein.

Also ging ich mich bei den VB Crack’s ausweinen. 1’er konnte mir nicht
helfen, der Andere hatte ein Allerweltsheilmittel.

Das hier.

DoEvents
DoEvents
DoEvents
DoEvents
DoEvents

If (g_objRAdEx.Fakultaet.Key = "KSF") And (mod

Einfach ein paar mal DoEvents auslösen und es tut.

WAS SOLL DAS? :-(

Wegen sowas kann man an Herzinfarkt sterben. Ich will
wieder mit C# …

Tags:

Allerlei

dasBlog &ndash; Eigene Makros wollten nicht mehr

by Roland Schumacher alias GENiALi 17. July 2008 -- 204 Wörter  -- 77 mal gelesen
Dieser Beitrag ist mir was wert:  

Ich lade regelmässig den Source von dasBlog und passe ihn
für mich ein wenig an. Zudem habe ich auch einige Makros selber
gemacht.

Seit einiger Zeit wollen meine Makros einfach nicht mehr. Die selben
Makros, die auf dem Liveserver ihren Dienst verrichten, liefen
lokal auf einen Fehler wenn ich z.B.: auf die Login Seite wollte.

Fehlermeldung in dasBlog

Ich glaube, ich habe die Source rund 1’355 mal runtergeladen
und alles wieder Schritt für Schritt eingerichtet. Immer
blieb ich hier hängen.

Gestern habe ich dann mal alle Makros auskommentiert. Danach
funktionierte alles wieder. Jetzt habe ich Makro für Makro
wieder “einkommentiert” bis der Fehler wieder kam.

Bemerkung des Autors: Das hätte ich schon vor Wochen machen können.

Irgend wann, bei einem Makro das mir den Text des ersten Postings
in kurzer Form zurückgibt, machte es wieder bum. Wie so nur?
Früher lief es doch.

Die Lösung war ganz einfach.

Der Grundaufbau eines Makros ist immer der Selbe.

public virtual Control Foo()
{
	LiteralControl lit = new LiteralControl();

	return lit;
}

Bei mir war das Makro im HEAD Bereich in Gebrauch. Dort
darf das LiteralControl in der Eigenschaft Text nicht den Wert
null haben.

Also, man initialisiere alle LiteralControl mit “”.

Und schon klappt es wieder.

Vote for GENiALi's Blog :-)

Tags: , ,

Allerlei | Entwicklung | Software

Übersetzen

Diverses

Seitwert

Locations of visitors to this page

Rating
Excellent - 97%overlay Icon

Statistik