Werbung

10.03.2010  --  GENiALi  --  26 Wörter

In Zukunft werde ich wohl vor dem Anmelden einer Domain bei einem Linkverzeichnis den Dienst ein wenig genauer anschauen.

Das hier dürfte aber sicher nicht vorkommen.

Ich darf im Moment sehr viel WPF machen. Dazu kann ich entweder Visual Studio 2008 oder Expression Blend 3 nutzen. Beides lässt mich die Wände hoch gehen.

Im Visual Studio 2008 ist der Designer einfach nur schwach und verhält sich bisweilen sehr eigenartig. Aber das ist allseits bekannt. Also versuche ich mich an Expression Blend 3. Ich finde das Teil noch unbrauchbarer als VS.

Wie so?

1. Auf den Tabs gibt es kein Kontextmenü. Kein “Alle schliessen” oder “alle ausser diese schliessen”.

Expression Blend 3 Tabs

2. Ich kann mehrere XAML Dateien selektieren aber nicht miteinander öffnen. Muss alle einzeln doppelklicken. Nicht mal “Enter” geht.

Nur via Kontextmenü und öffnen.

Expression Blend 3 Projektexplorer

3. Code formatieren in Expression Blend 3? Ja wo den? Geht auch nicht? Kein Kontextmenü auf dem XAML Code. Man kann nicht mal Code zusammenklappen. Das können heute ja schon 0815 Editoren.

Expression Blend 3 Sourcecode

4. Der Codeeditor verhält sich oft anders als der in VS 2008. Wie oft habe ich schon einen Zeilenumbruch gemacht wo ich es nicht wollte.

5. Gewaltig was man in den Optionen alles einstellen kann. Wie stelle ich ein das ich einen schwarzen Hintergrund im Code habe?

Expression Blend 3 Optionen

6. Egal welches Farbschema. Kontrast ist immer schwach.

Expression Blend 3 Kontrast

Ich bin ja auf VS 2010 gespannt. Das Projekt soll dann sofort auf 2010 migriert werden. Das kann ja nur besser werden.

PS: Habe mir schon ein paar mal gewünscht diese Anwendung in WinForm zu machen. Einfach weil dort die Werkzeuge ausgereifter scheinen.

kick it on dotnet-kicks.de

23.02.2010  --  GENiALi  --  183 Wörter

Mich nervt Windows 7 seit einigen Tagen mit dem Hinweis das es nächstens seinen Dienst einstellen wird. Ich soll doch meine Daten sichern. Das mit dem Sichern ist keine Problem. Das wird regelmässig gemacht.

Aber die Kiste muss auch neu installiert werden. Und das stresst mich im Moment. Ich habe null Bock mein Windows neu zu installieren. Das dauert wieder ewig.

Nur schon Visual Studio 2008 und das passende SP1 nehmen den Laptop für über 1 Stunde in Anspruch. Fertig bin ich dann ja noch lange nicht.

Und die ganze Einstellerei. Bis wieder alle Treiber drauf sind, alle Tools und alle Einstellungen. Och, ich will nicht.

Im Internet findet man diverse Hacks wie man die RC updaten kann. Das lässt mir der Kopf aber auch nicht zu. Es wurde doch noch einiges auf die finale Version hin gefixt. Es macht also schon sinn Windows 7 neu zu installieren.

Aber nach 10-11 Stunden intensiv entwickeln im Büro ist mein Verlangen nach Windows 7 installieren doch ziemlich tief.

Ich will einfach nichts machen. Werde aber wohl nicht drum rum kommen.

Also, auf Windows 7 final.

16.02.2010  --  GENiALi  --  75 Wörter

Ofensichtlich habe ich mit meinem Gejammer etwas bewirkt. Auf codekicker.de wird wieder gerechnet.

Ich habe meine Reputation schlagartig mehr als verdoppelt. Aber die andern auch. :-)

Benutzerprofil von GENiALi

Auf dem codekicker blog wurde mir auch für die Unterstützung gedankt. Cool wenn man Gejammer als Unterstützung abtut. Gefällt mir. Aber danke, dass es wieder tut. Das gefällt nicht nur mir. Es gibt noch einige Andere die das gut finden. Hoffentlich zieht die Antwortfreudigkeit auf dem Portal wieder an.

kick it on dotnet-kicks.de

11.02.2010  --  GENiALi  --  177 Wörter

Seit bald einem Monat wird bei codekicker.de die Reputation nicht mehr nachgefahren. Am 19.01.2010 habe ich mal darauf hingewiesen das mit der Reputation etwas nicht mehr stimmt. Ich bekam auch eine Antwort. Der Fehler sei entdeckt und es müsse danach alles einfach neu berechnet werden. Es seinen keine Reputationen verloren gegangen. Wurde es aber noch nicht.

Leider geht auch der Goodwill der Teilnehmer mit der Zeit verloren. Um so länger nicht bewertet wird um so weniger passiert bei codekicker.de.

Wenn die Jungs bei codekicker nicht bald den Fehler beheben wird sich das Projekt tot laufen. Einige die am Anfang sehr tüchtig antworteten blieben dem Projekt schon länger fern.

Ich war eigentlich erstaunt wie wichtig so eine Reputation ist. Dachte nicht das mir diese Zahl so viel bedeuten könnte. Aber der Ehrgeiz geht irgend wie verloren wenn man nicht mehr “belohnt” wird.

Also Jungs bei codekicker.de. Schaut doch das die Reputation wieder funktioniert. Dann kommt sicher wieder mehr Leben in das Projekt.

Auf die letzt Nachfrage, 02.02.2010 bekam ich nicht mal mehr eine Antwort. Ob ich nervig bin?!

kick it on dotnet-kicks.de

10.02.2010  --  GENiALi  --  342 Wörter

Vor kurzem habe ich über eine Fehlermeldung mit WCF geschrieben die nicht wirklich etwas über den Fehler aussagte. Damals ging es um das Laden von Daten. Also vom WCF Host (Server) auf den Client.

Damals schieb ich: “Was mir dabei auffiel, die Einstellung muss nur auf der Client Seite gemacht werden. Auf der Serverseite konnte ich alles so sein lassen wie vorher.”

Jetzt wollte ich das selbe Objekt speichern. Also vom Client auf den Server schicken. Und es machte booom. Die Fehlermeldung war/ist dabei auch sehr aussagekräftig. Nur wusste ich jetzt in welcher Richtung ich suchen musste.

Die Exception meldete etwas in der Form:

"System.ServiceModel.CommunicationException" wurde aufgefangen.
  Message="Die Socketverbindung wurde abgebrochen. Dies kann durch einen Fehler beim Verarbeiten der Nachricht, durch ein Überschreiten des Empfangstimeouts durch den Remotehost oder durch eine Problem bei der zugrundeliegenden Netzwerkressource verursacht sein. Lokaler Sockettimeout: \"00:00:59.9989999\"."

SocketTimeout?! Na ja, ich dachte mir schon das es wahrscheinlich etwas mit der Grösse des zu übertragenden Objektes zu tun haben könnte. Also habe ich auf der Serverseite die app.config für den WCF Host angepasst.

<netTcpBinding>
  <binding name="Core" maxReceivedMessageSize="10485760">
    <security mode="TransportWithMessageCredential">
      <message clientCredentialType="UserName" />
      <transport clientCredentialType="None"/>
    </security>
  </binding>
</netTcpBinding>

Die Änderung ist in Zeile 2. maxReceivedMessageSize war schon beim letzten Posting zum Thema schuld.

Das ganz nochmals ausgeführt bekam ich aber noch immer eine Fehlermeldung. Diese war aber nun so präzise das ich das Problem damit auch beheben konnte.

"… Die InnerException-Nachricht war \"Fehler beim Deserialisieren des Objekts \"vom Typ Library.Person\". Die maximale Arraylänge (16384) wurde beim Lesen von XML-Daten überschritten.

Hier weiss man doch sofort was zu tun ist.

<netTcpBinding>
  <binding name="Core" maxReceivedMessageSize="10485760">
    <readerQuotas maxArrayLength="10485760"/>
    <security mode="TransportWithMessageCredential">
      <message clientCredentialType="UserName" />
      <transport clientCredentialType="None"/>
    </security>
  </binding>
</netTcpBinding>

Zeile 3 löste das Problem. OK, die Zahl ist sicher übertrieben hoch. Ich frage mich aber so oder so wie so man WCF nicht irgend wie in verschiedenen Modis betreiben kann. Ein Modi für Internet, mit all seinen Einschränkungen und ein Modi für Interne Firmenanwendungen wo die diversen Grenzen viel höher liegen.

Ich muss ja Windows auch nicht anders konfigurieren wenn ich eine 100MB Datei aus dem eigenen LAN laden will.

kick it on dotnet-kicks.de

Neben meinem Job habe ich noch ganz wenig Freizeit. :-) Diese Freizeit wird von Frau, Kinder und PC in Anspruch genommen. Meine Frau hat auch ein Hobby, seit einiger Zeit. Und jetzt, jetzt folgt der logische nächste Schritt. Sie will eine eigene Webseite. Was liegt da näher als den Ehemann zu fragen der ja Programmierer ist. Was soll ich da bloss sagen. :-)

Jedenfalls gingen in den letzten paar Wochen etliche Stunden in das Projekt. Aber es macht Spass.

Meine Frau macht aus Edelsteinen Halsketten, Armketten, Bebehalsketten und noch ein paar andere nette Sachen. Ich bin ja nicht ein Schmuckfan, aber einige Sachen sehen echt gut aus. Bislang machte sie diese, wie wir sie nennen, EdelsteinKreationen für die Kinder, sich selbst, für Verwandte und Kolleginnen. Diese sind langsam aber sicher mit solchen Kunstwerken eingedeckt. Also, ab ins Web und versuchen die Kreationen zu verkaufen.

Ich darf also ein Web bauen mit einem kleinen Shop. Sehr einfach. Keine Kreditkarten oder so. Einfach per Mail. Ich wollte nicht das sie, meine Frau, alles irgend wie mit Expression Web oder so Pflegen muss. Dann wäre es ja eh bei mir hängen geblieben. Also suchte ich ein CMS. Fündig wurde ich bei N2 CMS. Das ist ein ASP.NET MVC Projekt. Es MUSSTE ein .NET CMS sein, vorzugsweise C#. So kann ich auch noch was lernen. Das Ergebnis ist unter www.EdelsteinKreationen.ch zu finden. Was mich noch am meisten erstaunte, die Domain war noch zu haben. Ich finde das eine absolut geniale Domain. Passt voll und ganz zum Thema.

Jetzt fehlen natürlich nur noch die Kunden. Aber das wird sich sicher noch geben. Vor zwei Tagen sagte ich meiner Frau, dass Google sicher mal wieder eine AdWords Kampagne starten wird und ich bekomme dann sicher wieder einen Gutschein. Was soll ich sagen. Heute kam ein solcher Gutschein über 125CHF mit der Post bei mir an. Was für ein Zufall. Das werde ich sicher noch nutzen.

Was sicher auch noch cool wäre ist so etwas wie virales Marketing. Hoffe der Begriff passt einigermasen. Es gibt immer wider Blogger die machen Wettbewerbe wenn man etwas dazu schreibt und einen Backlink auf ihr Blog setzt. Das gibt viele Backlinks und Google freut sich. Einen Wettbewerb kann ich nicht machen. Einen Preis in dem Sinn kann ich nicht zur Verfügung stellen.

Aber einen Backlink schon. :-D

Also. Wer etwas über www.EdelsteinKreationen.ch schreibt und es mir mitteilt, dem setze ich einen Backlink. Genau am Ende dieses Postings. Wie so sollte man das machen? Jetzt muss ich ein wenig prahlen. <prahlen> Backlink von einer Seite mit PR4!! Wisst ihr was das Wert hat?! 22Euro im Monat. Und der Link bleibt immer drin. Das kann also ein sehr guter Gewinn sein. :-D </prahlen>

Wenn sich jemand also darauf einlässt, dann ein Kommentar auf dem Posting hinterlassen. Dann setzte ich den Link. Natürlich ohne nofollow. Ist ja klar. :-D

Google wird’s freuen.

03.02.2010  --  GENiALi  --  255 Wörter

Zur Zeit darf ich an einem grossen Projekt mitarbeiten das regen gebrauch von WCF macht. Die ganze Kommunikation zwischen Server und Client baut auf WCF auf.

Jetzt habe ich einige Zeit an einem Fehler gesucht bei dem die Meldung ziemlich irreführend war, wie sich jetzt zeigte.

Die Fehlermeldung ist in etwa so (gekürzt):

"System.ServiceModel.CommunicationObjectFaultedException" wurde aufgefangen.
  Message="Das Kommunikationsobjekt \"System.ServiceModel.Security.SecuritySessionClientSettings`1+ClientSecurityDuplexSessionChannel[System.ServiceModel.Channels.IDuplexSessionChannel]\" kann nicht zur Kommunikation verwendet werden, weil es sich im Faulted-Status befindet."

Wenn ich mir die Meldung jetzt so anschaue denke ich mir, dass scheint doch ein Problem mit der Security zu sein. So ganz klassisch. Berechtigungen auf irgend eine Ressource oder so.

Weit gefehlt. Hat nicht mit dieser Sicherheit zu tun. Es gibt im WCF noch eine andere Sicherheit. Die gegen DoS (Denial of Service) Angriffe. Das heisst, gewisse Grenzen sind im WCF definiert die nicht überschritten werden dürfen/können. Das ist zum Beispiel die maximale Nachrichtengrösse (maxReceivedMessageSize). Per Default auf 65’536 Byte beschränkt. Das gibt meinem Szenario nicht viel her. Als ich diesen Wert erhöhte kam die Fehlermeldung nicht mehr.

Was mir dabei auffiel, die Einstellung muss nur auf der Client Seite gemacht werden. Auf der Serverseite konnte ich alles so sein lassen wie vorher. Hier ein Stück Code wie es gemacht werden kann.

private static T BindEndpoint<T>(string endPointAdress)
	where T : class
{
	EndpointAddress endpoint = new EndpointAddress(endPointAdress);

	NetTcpBinding binding = new NetTcpBinding();
	binding.MaxReceivedMessageSize = 10485760;

	ServiceClient<T> client = new ServiceClient<T>(binding, endpoint);

	return (T)client.InnerChannel;
}

Die Methode wir 1 zu 1 kopiert nicht einfach so funktionieren. Der relevante Teil ist in Zeile 7 zu finden. Die Nachrichtengrösse kann somit etwa 10MB betragen.

kick it on dotnet-kicks.de

Auf das habe ich lange gewartet. Zwei Jahre. Drei mal hatte ich Mailverkehr mit PayPal. Immer mit der Frage: Wie kann ich mein Konto ohne Kreditkarte verifizieren. Antwort war immer, für die Schweiz geht’s nur mit Kreditkarte.

Ich schaute mich also schon nach einer günstigen Kreditkarte um. M-Budget wäre gratis. Keine Gebühren. Aber auch bei 0CHF Umsatz? Also habe ich mir die Karte noch nicht besorgt.

Letzten Freitag, als ich mein Konto wieder einmal inspizieren wollte, sah ich ein leicht anderes Layout vor mir. Ich wurde explizit zur Verifizierung aufgefordert. Wie so den, dachte ich mir. Habe ja keine Kreditkarte.

Ich stutzte dann nicht schlecht als ich darauf aufmerksam gemacht wurde, dass ich das Konto jetzt auch mit einer Banküberweisung bestätigen kann. Das klickte ich dann an und heute sah ich dann auch das mir PayPal etwas überwiesen hatte.

Also die Zahlen eingegeben und siehe da.

Verifiziertes PayPal Konto

Neu habe ich also kein Limit mehr. Cool.

Meine Mails wurde also doch noch erhört. Habe ICH das alles bewirkt?! :-)

02.02.2010  --  GENiALi  --  151 Wörter

Sowas gibt es selten. Ich werde um meine Mausmatten beneidet. Aber wie so den blos? :-D

Irgend wann, vor etwa 1.5 Jahren, habe ich hier im Haus eine Mausmatte gesucht. Die original Leuchter Informatik AG Mausmatte ist nicht sehr speziell. Vorallem rutscht sie auf dem Tisch. Das passte mir nicht.

Irgend wo viel mir dann eine Mausmatte von Digicomp in die Finger. Die ist hauchdünn und, was gaaaanz wichtig ist, sie ist selbstklebend. Absolut genial. Folie abziehen und auf den Tisch kleben.

Ich habe die Mausmatte zwar schon etliche male verschoben, sie klebt aber immer noch. Ich liebe das Teil.

Jetzt habe ich aber Nachschub gebraucht. Was macht man in solchen Fällen? Man schreibt die Firma an und fragt nach ob man welche bekommen könnte. Tatsächlich. Am nächsten Tag hatte ich 8 Mausmatten in meiner Post. Analogen Post natürlich.

Ist auch wieder ein schönes Beispiel für sehr guten Kundenservice.

Danke Digicomp.