Thomas Woelfers Baustatik Blog

Baustatik-Software und was sonst des Weges kommt

Wie man den Mailserver herausfindet

Für jede Domäne an die man Emails versenden kann, muss es einen zuständigen Mail-Server geben. Das ist der Rechner der die eingehende Mail annimmt oder die ausgehende Mail verteilt. Im Prinzip kann der Mailserver einer Domäne ein beliebiger Rechner sein - im Fall von "die.de" ist es beispielsweise so, das es einen eigenen Web-Server und einen davon separaten Mail-Server gibt.

Nun ist es manchmal ganz interessant herauszufinden, welcher (oder welche, denn es kann auch mehrere geben) Rechner für die Email einer Domäne zuständig ist - und das kann man ganz einfach mit einem Programm, das bei jeder aktuellen Windows-Version dabei ist: nslookup.

Damit Sie nslookup verwenden können, bzw. damit das Programm sinnvolle Informationen liefern kann, müssen Sie mit dem Internet verbunden sein. Um dann zum Beispiel herauszufinden welcher Rechner für die Mail von "die.de" zuständig ist, tun Sie folgendes:

  • Zunächst starten Sie eine Dos-Shell (Command-Prompt).
  • Darin starten Sie dann das Programm "nslookup". Das Programm wartet dann auf eine Eingabe von Ihnen hinter dem ">"-Zeichen.
  • Da Sie mit nslookup eine ganze Menge an Informationen erfragen können, müssen Sie dem Programm zunächst mitteilen, welche Informationen Sie wünschen. Im Fall des Mailservers ist das der "mx" (Mail eXchange) Record. Das tun Sie durch Eingabe der Zeile:
  • set type=mx
  • jetzt können Sie einfach den Namen der Domäne (oder die Namen der Domänen) angeben, für die Sie sich interessieren. Also zum Beispiel "die.de".
  • nslookup gibt Ihnen dann die IP-Adresse des Mailservers an

Um "nslookup" zu verlassen geben Sie den Befehl "exit" ein.

VS 2005: Forms-Designer kann Forms nicht mehr laden

Im Forms-Designer gibt es unter bestimmten Umständen ein Problem: Der Designer kann dann die Form nicht mehr laden und gibt statt dessen eine wenig hilfreiche Meldung aus: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

Es gibt nur ein funktionierendes Workaround für dieses Problem: Man muss das Visual Studio komplett beenden, und dann neu starten. Das ist reichlich ärgerlich, wenn man ein größeres Projekt hat.

Seit heute gibt es einen offizielles Fix für dieses Problem. Den bekommt man durch einen Anruf beim Microsoft Support. Der zugehörige KB-Artikel hat die Nummer 912019, die Support-Case ID ist SRQ051102600952. Der zugehörige KB-Artikel wird in etwa 3-4 Wochen erscheinen, den Bugfix gibts aber schon jetzt.

Update: Mehr zum Fix bei Microsoft

Updates: Xksn, Xspun, Xwin, Xmau, Xvos

Ab sofort sind neue Updates verfügbar: Das größte Upate gibt es für das Mauerwerksprogramm XMau. Hier ist ab sofort zusätzliche die DIN 1053-100 eingebaut. Wie immer ist auch dies für alle Kunden mit Work&Cash Vertrag kostenlos.

Details zu den Updates gibt es wie immer im Update-Log und im Blog meines Bruders.

Iteratoren in C# 2: Einfach den Compiler machen lassen

Irre praktisch: Mit "yield" baut der C# Compiler die Implementierung für IEnumerator automatisch. Über Instanzen der folgenden Klasse kann man problemlos mit foreach iterieren:

public class NameCollection : IEnumerable<string>
{
  
string[] names = { "Peter", "Paul", "Mary" };
  
public IEnumerator<string> GetEnumerator()
   {
     
for (int i = 0; i < names.Length; i++)
          yield return names[i];
   }
}

Wie man zwei Niederlassungen vernetzt

D.I.E. Software ist auf mehrere Niederlassungen verteilt. Neben der Hauptstelle in Oberhausen gibt es unter anderem auch eine Niederlassung in München. Seit einiger Zeit wird der Quellcode unserer Statikprogramme zentral in München verwaltet. Damit man auch von Oberhausen darauf zugreifen kann, war es notwendig, das die beiden Niederlassungen vernetzt wurden. Nichts einfacher als das - dachte ich.

Das Netz sollte als VPN (virtuelles privates Netzwerk) angelegt werden. Dabei verbindet man zwei LANs über das Internet, wobei der Datenverkehr der über die öffentlichen Leitungen geht, verschlüsselt wird. Von Haus aus ist das eigentlich kein Problem: In München setzen wir unter anderem einen Windows 2003 Server ein, und der kann von sich aus als VPN-Server fungieren. Auf der anderen Seite - in Oberhausen - kommen Windows XP Pro Systeme zum Einsatz, und die können von sich aus auch VPN Verbindungen zu VPN Server aufbauen. Man sollte annehmen, das der Vernetzung im Prinzip nichts im Wege steht.

Es verhält sich aber, wie das immer so, leider ein bisschen anders. Das Münchner Büro verfügt über eine feste Internetanbindung mit fester IP-Adresse. Der Windows 2003 Server ist auch über diese Adresse erreichbar. Das Oberhausener Büro ist hingegen per DSL von Arcor ans Internet angeschlossen und hat daher keine feste IP-Adresse.

An den jeweiligen Ausgängen von den LANs ins Internet findet NAT (Network Adress Translation) statt: Das ist notwendig, damit alle Rechner in den LANs, die ja kein "öffentliche" IP-Adresse haben, am Internet teilnehmen können. NAT funktioniert so, das die Rechner hinter dem NAT-Rechner (oder Router) stehen aus Sicht des Internet nur ein einzelner Rechner sind.

Das bedeutet aber auch, das eine Netzwerkverbindung von Oberhausen nach München sich eben auch für den Server in München so darstellt, als gäbe es in Oberhausen nur einen Rechner. Das Ergebnis davon: Man kann auch nur mit einem Rechner gleichzeitig eine VPN-Verbindung herstellen.

Was es also braucht sind zwei Geräte die unter sich eine VPN Verbindung aufbauen, und in Richtung ihrer jeweiligen LANs diese Verbindung zur Verfügung stellen: Dann können alle Rechner die VPN-Verbindung benutzen.

Das würde auch mit dem Windows 2003 Server gehen: Man braucht dann aber eben auf beiden Seiten einen solchen Server. Die Konfiguration wollte wir aber nicht wählen - Oberhausen sollte nicht noch einen weiteren Server zu verwalten haben.

"Kein Problem" war der nächste Gedanke: Dann beschaffen wir eben einen VPN-Router und ersetzen damit den in Oberhausen vorhandenen. Der baut dann die Verbindung mit dem VPN Server auf - und alle Rechner hinter dem Router könnten diese dann nutzen.

Gesagt, getan, fehlgeschlagen: Es ist nämlich so, das das Wort "VPN Server" oder "VPN Router" nicht viel zu sagen hat: Im wesentlichen funktionieren nur Geräte gleicher Hersteller untereinander. Man kann also nicht einfach irgend einen VPN Router kaufen und den dann mit dem VPN Server von Windows 2003 verbinden. (Es _gibt_ Geräte mit denen das geht, nur sind die Beschreibungen der verfügbaren Geräte derart mangelhaft, das ihre tatsächliche Funktion daraus schlicht nicht zu entnehmen ist.

Es kam also zum nächsten Versuch - und ob der wirklich klappt werden wir erst nächste Woche wissen: Dabei haben wir nun einen VPN-Server und einen VPN-Router in Hardware, beide von der Firma Bintec. Die Geräte machten auch einen ganz guten Eindruck - aber nur zunächst: Die eingebauten "Wizards" zur Installation klappen überhaupt gar nicht, und die mitgelieferte Dokumentation ist eher ein Witz. Auf der Bintec Webseite gibts zwar jede Menge FAQs, aber die die man bräuchte, haben zumindest wir nicht gefunden.

Es gibt aber auch einen Lichtblick: Der Support von Bintec ist nämlich hervorragend. Nachdem alle Versuche die Geräte mit Hilfe der mitgelieferten Software und Dokumentation in den Betrieb zu nehmen fehlgeschlagen waren, haben wir da angerufen.

Und siehe da: Nach etwa 20 Minuten lief alles perfekt - daher ein großes Lob an den Support bei Bintec. Allerdings nur in der "Testumgebung" in München. Die sieht aber so aus, das der Router per ISDN ans Internet angeschlossen ist - und nicht per DSL. Wie gut das dann funktioniert, wird sich wie gesagt in der nächsten Woche zeigen - notfalls gibts eben einen weitere Anruf beim Support.

 

Die "Todo"-Liste und die Fehlerverwaltung

Wenn Sie schonmal mit unserem Support gesprochen haben um einen Wunsch zu einem unserer Programme zu äußern, dann haben Sie bestimmt auch schon einmal den Ausdruck "Ich tus auf die Todo-Liste" gehört. Das ist nämlich die Antwort, die wir in einem solchen Fall immer geben. Was ist denn aber diese Todo-Liste? Kurze Anwort: Eben eine Liste auf der die Dinge stehen, die wir noch zu tun haben.

Früher haben wir dafür etwas veraltete Technologie eingesetzt: Nämlich verschiedene Zettel die von unterschiedlichen Personen "verwaltet" wurden. Der Nachteil dabei war, das man nie einen richtigen Überblick hatte, weil niemand so recht wusste, auf wessen Zettel welche Punkte standen. Seit längerem setzen wir aber ein "richtiges" Werkzeug dafür ein. Nun gibt es verschiedenste Produkte die sowas leisten können. Aufgrund der Tatsache das wir mehrere Standorte haben von denen aus die Mitarbeiter auf so eine Liste zugreifen müssen, setzen wir ein Web-basiertes Produkt ein, und das ist FogBugz.

Bei FogBugz handelt es sich um eine Webanwendung, die in unserem Fall mit dem IIS vom Windows Server 2003 betrieben wird. Das ganze stellt sich als eine normale Webseite dar, diese Webseite ist aber eigentlich ein Interface zu einer Datenbank, die ebenfalls auf dem Server läuft. Bei mir ist das ganze in Outlook integriert, aber man kann auch einfach einen ganz normalen Browser benutzen, um darauf zuzugreifen.

fogbugz.png

Jeder Entwickler hat dabei einen eigenen Account, und kann "seine" Datenbankeinträge einsehen und bearbeiten - aber auch in die Einträge der anderen Mitarbeiter reinsehen. Wenn nun ein neuer Vorschlag - oder Fehler - bei uns eingeht, dann wird dieser mit seiner Beschreibung in der Datenbank eingetragen, und einem Entwickler zugeordnet.

Der Entwickler bekommt dann eine Mail die ihm mitteilt, das er einen neuen Fall hat. Jeder Fall kann dabei eine andere Wichtigkeit haben: Wichtigere Fälle werden vor den weniger wichtigen abgearbeitet. Ist ein Fall erledigt, dann bekommt derjenige, der ihn "aufgemacht" hat, eine Mail. Das ist wichtig, denn nur derjenige der denn Fall eröffnet hat, kann ihn auch wieder schliessen. Ist der Fall nicht zufriedenstellend geklärt worden, kann er auch erneut eröffnet werden - der zuständige Programmierer ist dann also wieder an der Reihe, sich darum zu kümmern.

FogBugz kann die vorliegenden Fälle auf eine Vielzahl an Arten darstellen. Im Wesentlichen ist es so, das man Filter definieren kann, die auf die einzelnen Felder in der Datenbank angewendet werden können. So kann man zum Beispiel eine Liste aller "offenen" Fälle bekommen, oder aber auch eine Liste von Fällen die man selbst eröffnet oder geschlossen hat.

Mitlerweile kann ich mir schon gar nicht mehr vorstellen, ohne so ein Werkzeug zu arbeiten: Niemand sollte ohne ein derartiges Werkzeug Software entwickeln. Ich kann mir sogar vorstellen, das ein ähnlich geartetes Tool auch für die Arbeit im Statiker-Büro hilfreich sein kann. Schliesslich gibt es auch dort Arbeiten zu erledigen, aufgetretene Probleme zu verwalten, und Zuständigkeiten mitzuführen.

Lustig: Google hält mich für den .hta-Experten

Wer bei Google nach der Dateierweiterung .hta sucht ( klick ) - der landet dann wohl unweigerlich auf meinem Blog: Laut Google bin ich da wohl der Experte. :-)

Bin ich zwar eigentlich nicht, aber nachdem das offenbar ein wichtiges Thema ist (zumindest kommen viele Besuche anhand dieser Suche auf diese Seite), will ich die Sache an dieser Stelle kurz erklären.

Unter Windows ist es so, das die Dateierweiterung einer Datei - das sind die 3 (oder mehr) Zeichen hinter dem Punkt im Dateinamen - den "Typ" der Datei spezifizieren. Der Typ legt nun seinerseits fest, mit welchem Programm die Datei geöffnet werden kann. So kann man .txt - Dateien beispielsweise mit Notepad öffnen, .doc-Dateien mit Word, und .html-Dateien mit dem Internet Explorer.

Wer mag kann in den Ordner-Option auf dem Reiter "Dateitypen" nachsehen, welche Dateierweiterungen auf dem eigenen Rechner bekannt sind, und welche Programme sich für diese Erweiterung zuständig fühlen. Dort können Sie übrigens auch einstellen, welches Programm verwendet werden soll: Sie sind also nicht an den vorgegebene Zusammenhang gebunden.

Nun ist es so, das es eine Reihe von Dateierweiterungen gibt, die von Windows aus vorgegeben sind. Dazu gehört bei XP zum Beispiel .txt mit Notepad, .bmp mit Paint - und eben unter anderem .hta - mit dem Internet Explorer. Bei hta (HyperTextApplication) Dateien handelt es sich um Programme die sich nur aus HTML, CSS und Script zusammensetzen, und vom Internet Explorer ausgeführt werden. Man kann damit zum Beispiel ganz angenehme Oberflächen für Installationsprogramme oder andere Hilfsskripte bauen.

Die Oberfläche für das Installationsprogramm unserer Baustatik-Software ist zum Beispiel so ein HTA-Programm.

Nun ist es aber so, das es keinen weltweit zentralen Dienst fürs registrieren von Dateierweiterungen gibt - und so kommt es eben dazu, das manchmal unterschiedliche Programme die gleiche Erweiterung für sich beanspruchen. Gewinnen tut dann immer der, der sich zuletzt in Windows registriert hat.

Und genau das passiert mit einigen Versionen des "HTA" Bemessungsprogramms von Halfen - das registriert nämlich auch die Erweiterung .hta, und überschreibt damit eine eigentlich vom System vorgegebene Einstellung. Resultat: Man kann danach "echte" HTA-Programme nicht mehr starten, weil bei jedem Doppelklick darauf das Halfen-Programm startet. Das kann aber seinerseits mit den Daten aus der HTA-Datei nichts anfangen.

Wer das reparieren will, der findet eine Anleitung dazu hier.

(Übrigens habe ich das mit Google nicht selbst herausgefunden - statt dessen hat mir jemand den Link per Mail geschickt, allerdings ohne sich zu erkennen zu geben: Darum hier auch nur ein Dankeschöne an den anonymen Informanten :-))

Quellcodeumfang vom Faltwerk

Heute hat ein Kollege zum ersten Mal seit langer Zeit wieder mal den Umfang des Quellcodes fürs Kommende Faltwerksprogramm ermittelt - und der ist beeindruckend. (Naja, zumindest werden vielleicht ein paar Entwickler beeindruckt sein :-))

Der aktuelle Stand umfasst ca. 15 MB an C# code und 12 MB an C++ Code, also zusammen etwa 27 MB Quellcode. Dazu kommen dann noch Projektdateien, Bitmaps, Cursor, Icons, Hilfedateien etc. pp. - alles zusammen etwa 60 MB.

Nicht mitgerechnet bei den 60 MB sind "Support" Dateien, wie zum Beispiel die Material- oder die Profiledatenbank, das Installationsprogramm und diverse andere Dateien.

Schon eher umfangreich, die Sache.

Ein paar Zahlen zu unserem Webserver

Unser Webserver ist unter dem Namen www.die.de zu erreichen - dort finden Sie alle Informationen, die wir über unsere Produkte publizieren, die Updates zu den Statikprogrammen, ein Liste mit häufig gestellten Fragen, Tutorials und vieles mehr.

Seit Juli 2003 betreiben wir den Server mit seiner heutigen Technik, und seitdem haben wir auch eine Statistik der abgerufenen Seiten - und die Anzahl dieser Seiten wächst und wächst.

Hier ein Screenshot der aktuellen Statistik: Im November 2005 haben wir also etwas über 60.000 Seiten ausgeliefert.

webserver_statistics.png

Nochmal: Downloads auf www.die.de

Zum Thema, ob es für die Zukunft ausreichen würde, nur das CD-Image als Download auf www.die.de anzubieten, gab es eine ganze Menge Feedback. Der fand aber mit nur einer Ausnahme über unsere Mailing-Liste statt. Und alle Reaktion, die über die Liste bis heute eingegangen sind, sagten das gleiche: Das CD-Rom Image reicht aus.

Die einzige andere Meinung gibt über einen Kommentar in meinem Blog bei uns ein: Nur ein einzelner Kunde würde den Download der Einzelprogramme vorziehen.

Aus diesem Grund werden wir die Downloads wohl demnächst umbauen und auf das deutlich einfachere Modell mit dem CD-Rom Image umsteigen. Dieser Umbau erleichtert uns das Leben ganz erheblich, weil der Wartungsaufwand für die Downloads deutlich geringer wird: Alle Kunden haben es auch einfacher, weil es nicht länger notwendig ist, sich um die "passenden" Versionen von Patches zu kümmern - mit mehr Gegenstimmen würden wir sicherlich anders handelt, aber so wie sich die Sache darstellt, lohnt sich der Mehraufwand für die Einzeldownloads einfach nicht.