Juli 2006 - Einträge

Codezone.de Windows Live Gadget 2.0

Das Gadget um Suchfunktionalitäten von CodeZone.de in live.com anzubieten gibt es schon seit längerer Zeit. Nun wurde das Gadget erneuert und bietet unter anderem folgende Neuerungen:

  • Bessere Persormance
  • Verbesserte Suchfilter
  • Verbesserte Usability
  • Spezielle Suche nach Typen
  • Das ganze gibt es für die direkte Einbindung unter: http://microsoftgadgets.com/forums/6915/ShowPost.aspx

    Gefunden via Kay Giza

    Posted von Alex Bierhaus | mit no comments

    Blinq

    Bereits vor einem Monat hat Microsoft im Zuge der LINQ/ DLINQ /XLINQ Reihe ein neues Produkt mit dem Namen BLINQ veröffentlicht (bald gehen die Buchstaben aus ;)). Für meinen Vortrag am Donnerstag bei der NRW06 Konferenz in Düsseldorf (es sind noch kostenfreie Anmeldungen möglich) habe ich mir BLINQ einmal näher angeschaut. Blinq erstellt aus einem Datenbankschema eine Webseite, mit der alle Tabellen anschauen, sortieren, editieren und neue Einträge hinzufügen kann. Das ganze klappte bei mir leider nur mit der Northwind Datenbank, dafür konnte man schon die Sprache (C# oder VB) aussuchen, in der die WebSeite erstellt werden soll. Die erstelle WebApplikation kann selbst angepasst und erweitert werden. Das ganze wird in der finalen Version sicher dem Entwickler einiges an Arbeit abnehmen. Mehr Infos gibt es unter:

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=479818&SiteID=1. Ich empfehle jedoch das ganze in einer virtuellen Maschine zu testen.

    http://www.vb-magazin.de/blinqbig.png

    Top five things Linux can learn from Microsoft

    Sehr interessant ist dieser Blogeintrag zu lesen: http://www.linux-watch.com/news/NS5991301042.html. Da fällt mir als 6. Punkt noch folgendes ein:

    Linux hat zwar eine große Community, diese ist aber eher zerstreut bzw. so gut wie kaum organisiert. Wenn man sich ein wenig umschaut findet man "seine" passende Community im .NET Umfeld sehr schnell. Egal ob VB, C#, ASP.NET für viele Kategorien fällt mir spontan eine deutschsprachige .NET Community ein. Hinter den meisten Projekten stecken mehrere interessante und bekannte Köpfe, die man zu Themen auch direkt ansprechen kann. Falls man neu ins Thema .NET einsteigt, oder noch zu seinem Thema kein passendes Forum gefunden hat schmeißt einfach seine Lieblingssuchmaschine ein, tipp sein Thema bei CodeZone.de ein, oder schaut einfach mal auf die CLIP Seite um dort den Community Guide zu finden, oder ein Experten-Profil (zurzeit übrigens mit Thomas Bandt, frisch gebackender MVP). Natürlich sollte man nicht blogs.dotnetgerman.com vergessen, wo man nicht nur Kniffe zu .NET erfährt, sondern auch, wo sich Damir mal wieder rumtreibt (an der Stelle:  besuchten Orten mit einem Map Service, vielleicht kann man das ganze graifsch darstellen) oder warum Zürich so schön ist  :-)

     

    Posted von Alex Bierhaus | mit no comments

    Go Go get Gadget

    Nachdem ich schon länger Live.com als Startseite habe und alle möglichen RSS Feeds aboniert habe finde ich den neuen Microsoft Wettbewerbn, für den gerade recht weitläufig geworben wird, ziemlich interessant:

    Microsoft ruft Entwickler auf, im Rahmen der Einführung von Windows Live neue und außergewöhnliche Gadgets für Live.com zu entwickeln. Gesucht wird das beste deutschsprachige Gadget, mit einer nützlichen, kreativen oder ausgefallenen Idee. Der Wettbewerb startet am 17. Juli und läuft drei Monate. Bis Mitte Oktober haben die Teilnehmer Zeit, ihre Entwicklungen unter MicrosoftGadgets.de anzumelden und einzureichen. Es winken attraktive Preise im Wert von mehreren tausend Euro, darunter ein High-end LCD-Fernseher.

    Ich hoffe ich habe noch eine coole Idee für ein Gadget, vielleicht eins, welches meine nicht vorhandene Klimaanlage steueert (hier im Obergeschoss gerade 34 Grad, aber wem sag ich das).

    Frohes Schwitzen und viel Spaß beim Gadget entwickeln ;)

     

     

    Posted von Alex Bierhaus | mit no comments

    Mein neues Gadget: Nokia E60

    Nachdem wieder ein neues Handy aus der Vertragsverlängerung anstand und ich mit meinem Samsung SGH-D500 zwar zufrieden war, jedoch mit immer Funktionen fehlten beschloss ich mich nach einem neuen Handy umzusehen. Ich hatte bereits vor längerem vom Nokia E60 gehört. Die Top-Merkmale:

    • 16 Millionen Farben
    • 352 x 416 Pixel
    • Wlan (b/g)
    • Office Suite um Office-Dateien (Word, Excel, PP) zu sehen und zu editieren
    • Push-Mail Funktion für den Microsoft Exchange Server
    • VOIP Telefonie möglich

     

    Nachdem ich mich noch über andere Handys informiert hatte beschloss ich das Nokia E60 zu kaufen. Bisher habe ich es 4 Tage im Dauereinsatz und bin bisher sehr zufrieden. Outlook Synchronisation klappte problemlos, in den Kontakten lassen sich viele Informationen hinterlegen. SMS und E-Mails schreiben sich dank der guten Auflösung sehr gut. Office Dokumente werden sogar mit der richtigen Formatierung angezeigt. Der interne Browser ist gewöhnungsbedürftigt, ist aber durchaus logisch aufgebaut. Mit Mail for Exchange kann man das Nokia E60 mit seinem Exchange Server verbinden und Einstellungen für den Push-Dienst vornehmen. Neue E-Mails werden daraufhin auf dem Startdisplay des Smartphones angezeigt. Zwar nicht ganz so schön wie auf Windows Mobile Geräten, es erfüllt aber seinen Zweck. Was mich bisher noch stört ist, dass SymbianOS an einigen stellen hakt. Ich hatte zwar keinen Absturz, aber laut verschiedenen Webseiten wurden schon einige Bugs gesichtet. Zwar hat Symbian die Version 9.3 veröffentlicht, welche viele Fehler beheben soll. Meist sind die Geräte so gebaut, dass man nicht einfach die Software updaten kann. Ich habe mir bei dus.net einen VOIP Account zugelegt um VOIP auch mal auf dem E 60 zu testen. Die Qualität (über Wlan) ist klasse, vor der Telefonie kann man auswählen, ob man über das normale Handynetz gehen möchte oder über einen VOIP Account.
    Eine sehr gute Webseite mit weiteren Bildern, Berichten und Workshops findet man unter http://www.my-e60.com/


     

    Posted von Alex Bierhaus | mit no comments

    Vorsicht bei Benennung von Dateien mit dem aktuellen Datum/ XYZ is not a valid file name

    Für eine Anwendung wollte ich einen Vorschlag als Dateinamen angeben. Hier habe ich Now.ToShortDateString & "weiterer Name" verwendet um den Benutzer die Möglichkeit zu geben die Datei mit dem aktuellen Datum zu speichern. Auf meiner lokalen Maschnine (Win XP mit deutschen lokal Einstellungen) klappte das auch wunderbar. Als ich die Anwendung aber auf einem englischen Testsystem testete kam folgender Fehler:

    System.InvalidOperationException: File 10/07/2006 Pricing Tool.xls is not a valid file name.
       at System.Windows.Forms.SaveFileDialog.RunFileDialog(OPENFILENAME_I ofn)
       at System.Windows.Forms.FileDialog.RunDialog(IntPtr hWndOwner)
       at System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner)
       at System.Windows.Forms.CommonDialog.ShowDialog()
       at Off_net_tail_quote_application.frmPricing.btnExportPricing_Click(Object sender, EventArgs e)
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    wie man unschwer erkennen kann wollte die Anwendung die Datei mit dem lokalen Datumsformat speichern. Da das Dateisystem aber keine / untersützt wurde der Fehler ausgelöst. Ich habe mich nun einfach für

    Format(CDate(Now.ToShortDateString), "dd-MM-yyyy").ToString  entschieden. Es gäbe auch noch weitere Möglichkeiten (Intellisense bietet nach Now. eine Vielzahl von Möglichkeiten)

    Posted von Alex Bierhaus | mit no comments

    Distinct für DataSet als Visual Basic 2005

    Ich hatte das Problem, dass ich mit einem umfangreicher T-SQL Select Statement Daten aus der Datenbank lesen musste und als Resultat einen Vielzahl von Datensätze mit unterschiedlichen Spalten bekommen müsste. Ein Feld mit dem Namen RefID enthielt immer Daten vom Typ integer. Egal was in den anderen Spalten zu dem Datenfeld stand, es sollte immer nur ein Datensatz je RefID ausgegeben werden, doppelte Nummern sollten also verhindert werden. Da T SQL von Haus aus keine Funktion hierfür zur Verfügung stellt (Distinct klappt nur, wenn alle Felddaten gleich sind) suchte ich nach einer Möglichkeit das ganze unter .NET zu lösen und so entstand der Distinct DataTable filter für Visual Basic.

    Zunächst wude eine neue Klasse mit dem Namen DataSetHelper angelegt. Die Klasse kann dann so angesprochen werden (in dem Beispiel handelt es sich um ein typisiertes DataSet, welches mit dem Visual Studio Designer angelegt wurde:

    Dim datasethelper As New DataSetHelper(Me.DS.NamederTabelle.DataSet)

    Me.NamedesTableAdapter.Fill(Me.DS.NamederTabelle)

    datasethelper.SelectDistinct("NamederNeuenTabelle", Me.DSquotes.Tables("AlteTabelle"), NameDerSpalte)

    Bei Aufruf von SelectDistinct wird zunächst der Name des neuen Tabelle, danach der Quelltabelle und hierauf die Spalte, die geprüft werden soll, angegeben. Darauf hin wird geprüft, ob der vorhandene Inhalt (es können alle möglichen Datenformate übergeben werden) bereits vorkam, falls dies nicht der Fall ist, wird der Inhalt zum DataTable hinzugefügt. Das ganze klappt auch, wenn die Daten unsortiert übermittelt worden.

     

     Klasse:

    Public Class DataSetHelper

     

        Public ds As DataSet

     

        Public Sub New(ByRef DataSet As DataSet)

     

            ds = DataSet

     

        End Sub

     

        Public Sub New()

     

            ds = Nothing

     

        End Sub

     

        Private Function ColumnEqual(ByVal A As Object, ByVal B As Object) As Boolean

     

            If A Is DBNull.Value AndAlso B Is DBNull.Value Then

     

                Return True

     

            End If

     

            If A Is DBNull.Value OrElse B Is DBNull.Value Then

     

                Return False

     

            End If

     

            Return (A.Equals(B))

     

        End Function

     

     

        Public Function SelectDistinct(ByVal TableName As String, ByVal SourceTable As DataTable, ByVal flToCheck As String) As DataTable

     

     

     

            Dim dt As DataTable = New DataTable(TableName)

     

            dt.Columns.Add(flToCheck, SourceTable.Columns(flToCheck).DataType)

     

            Dim objToCheck As Object = Nothing

     

     

     

     

            For Each dr As DataRow In SourceTable.Select("", flobjToCheck)

     

                If objToCheck Is Nothing OrElse Not (ColumnEqual(objToCheck, dr(flobjToCheck))) Then

     

     

                    Check = dr(flToCheck)

     

     

                    dt.Rows.Add(New Object() Check})

     

                End If

     

            Next

     

            If Not (ds Is Nothing) Then

     

                ds.Tables.Add(dt)

     

            End If

     

            Return dt

     

        End Function

     

    End Class

     

     

    Posted von Alex Bierhaus | mit no comments