Archive for Februar, 2008
Add-In für VisualStudio 2008, Support für SQL Server 2008
Microsoft hat ein Add-In zur Verfügung gestellt für alle glücklichen Entwickler, die bereits mit dem VisualStudio 2008 unterwegs sind. Letzteres verursachte bislang Probleme im Zusammenspiel mit einem SQL Server 2008. Das Add-In ist gerade mal knapp 4mb gross und kann HIER runtergeladen werden.
Parameter an Telerik DockableObject Form mit Reflection übergeben
Eine kleine Knacknuss hat sich bei der Verwendung der Telerik Docking Zones (DZ) rsp. Dockable Objects (DO) ergeben. Folgende Situation: drei DZ liegen nebeneinander, alle werden dynamisch mit DO gefüllt. Als ContentTemplate wird für jedes DO ein eigenes Control definiert, welches nach dem Aufklappen des DO eine umfangreiche Editmaske zur Verfügung stellt. Soweit so gut, bloss muss dem Control innerhalb des DO ein Parameter übergeben werden, damit dort die ID des DO zur Verfügung steht. Alles klar?
Der erste Versuch nur über ein Property war nicht von Erfolg gekrönt. Die Lösung heisst: Reflection! Hier ein Vorschlag, wie die Create Methode aussehen könnte:
Function CreateDockableObject(ByVal _Id As Integer, ByVal _Text As String) As RadDockableObject
'create new dockable object
Dim dObj As New RadDockableObject
dObj.ID = _Id
dObj.Text = _Text
dObj.DockingMode = RadDockingModeFlags.AlwaysDock
dObj.Expanded = False
dObj.Width = "250"
'load a user control as a template
Dim myUC As UserControl
myUC = CType(LoadControl("Controls/ModulEdit.ascx"), UserControl)
Dim ucType As Type = myUC.GetType()
'pass a parameter to the user control
Dim ucProperty As Reflection.PropertyInfo = ucType.GetProperty("mId"
ucProperty.SetValue(myUC, _Id, Nothing)
'add user control to dockable object template
dObj.ContentTemplate = myUC
Return dObj
End Function
Natürlich muss im Control ein entsprechendes Property (hier “mId”) vorhanden sein. Ist dies der Fall, funktioniert alles bestens!
Das Aus für die HD-DVD!
Gemäss einem Statement von Toshiba (der treibenden Kraft hinter der HD DVD) werden in Zukunft keine HD DVD Geräte mehr produziert. Damit hat sich die Formatsfrage endlich selber beantwortet: Blue-Ray heisst die Zukunft! Ich denke, damit ist vor allem dem Endkonsumenten ein grosser Dienst getan worden, da bislang nicht klar war, in welche Technologie investiert werden sollte.
Schlecht für die Leute, die sich bereits einen HD DVD Player geholt haben, aber gut für diejenigen (wie mich), die zu Hause eine PlayStation3 stehen haben ![]()
Guter Ersatz für das XAMLpad
Wer sich bereits mit Silverlight und XAML rumschlägt, ist sicher einmal über das XAMLpad gestolpert. Das Stück Software von Microsoft war bislang nicht unbedingt der Hammer, weswegen es wohl niemand wirklich einsetzt.Eine gute Alternative ist nun mit Kaxaml verfügbar. Die Freeware kann auf der offiziellen Website http://www.kaxaml.com/ runtergeladen werden.Einizge Voraussetzung: Windows XP oder Vista mit dem .net Framework 3.0, da das Tool auf WPF setzt.
Arbeiten mit Verzeichnissen in vb.net
Zu internen Zwecken musste ich ein kleines Tool schreiben, welches diverse Verzeichnisse abgleicht und ein paar Fileoperationen ausführt. Dafür gibt’s in .net eine praktische Lösung! Mit dem folgenden Code kann für jede Datei in einem Verzeichnis eine Aktion ausgeführt werden.
Imports System.IO Imports System.Data Partial Public Class _Default Inherits System.Web.UI.Page Dim SourcePath As String = "C:\Test\TestSource" Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim di As New DirectoryInfo(SourcePath) For Each fi As FileInfo In di.GetFiles Dim mySourceFilename As String = fi.Name 'do something Next End Sub
Fortune Cookie Codes mit .net
Für einen Kunden sollten wir einen Glückscode-Generator schreiben. Die Anforderungen waren relativ simpel: Codes im Format xxxx-xxxx-xxxx, natürlich absolut unique Codes, performant auch bei der Erzeugung von mehreren 100′000 Codes im Zusammenspiel mit einer MS SQL Datenbank.Zur Erzeugung der Codes verwendeten wir die .net GUID (globally unique identifier) Funktion, die diese Arbeit recht hübsch erledigt. In einer For-Next Schlaufe werden die Codes generiert, transformiert und in eine Datatable geschrieben. Die Funktion DeleteDuplicates erstellt einen DataView, sortiert diesen nach Codes und arbeitet sich top-down. Sind zwei aufeinanderfolgende Codes identisch, wird der aktuelle gelöscht. Fertig ist die Geschichte, das Ganze wird in diesem Beispiel in ein XML File gespeichert.Werden die Codes in eine SQL Db gespeichert, kann die Einzigartigkeit zusätzlich überprüft werden mit einer DISTINCT Abfrage.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ‘number of codes to generate Dim EndCount As Integer = 5000 ‘create the datatable and add a row objDT = New System.Data.DataTable(”CodeTable”) objDT.Columns.Add(”Code”, GetType(String)) ‘create random id, transform code Dim count As Integer For count = 0 To EndCount - 1 ‘edit the string Dim myCode As String = Guid.NewGuid.ToString ‘add some separators and cut the string down on 15 chars (3 x 4chars + 3x 1 separator) myCode = UCase(myCode.Replace(”-”, “”)) myCode = myCode.Insert(4, “-”) myCode = myCode.Insert(9, “-”) myCode = myCode.Substring(0, 14) ‘add to datatable objDR = objDT.NewRow objDR(”Code”) = myCode.ToString objDT.Rows.Add(objDR) Next ’start the sub DeleteDuplicates(objDT) ‘Serialize the datatable object into a xml file objDT.WriteXml(”final_codes.xml”) objDT.WriteXmlSchema(”final_scheme.xslt”) ‘output the number of generated codes lblNumRows.Text = objDT.Rows.Count & ” Codes generiert” End Sub ‘Selects duplicate entries and removes them Public Sub DeleteDuplicates(ByVal dt As DataTable) Dim myDataView As New DataView(dt) myDataView.Sort = “Code” For x As Integer = 0 To myDataView.Count - 2 Dim myDataRowView As DataRowView = myDataView.Item(x) Dim myDataRowViewNext As DataRowView = myDataView.Item(x + 1) If myDataRowView.Item(”Code”).ToString = myDataRowViewNext.Item(”Code”).ToString Then myDataRowView.Delete() End If Next End Sub End Class
SQL 2005 Express - Agent
Bislang war bei uns ein MSSQL 2000 Server im produktiven Einsatz. Ein neuer Liveserver brachte MSSQL 2005 mit sich, aufgrund der Lizenzkosten entschieden wir uns für die Expressversion. Mit den meisten Einschränkungen der Expressversion können wir leben, der Agent wurde aber wirklich vermisst. Abhilfe habe ich in Form des “Express Agent” von Valesoftware gefunden. Das rund 80 US$ teure Tool ist in 15 Minuten gekauft und installiert - und funktioniert hervorragend. Über einen kleinen Scheduler können die Tasks komfortabel geplant werden.
HTC P3600 Synchronisation auf dem Mac
Endlich habe ich eine coole Software für die Synchronisation meines HTC P3600 (Windows Mobile 5) und meinem Mac gefunden. Missing Sync von Mark/Space erledigt den Job souverän, die iCal Termine werden anstandslos übernommen. Die Software unterstützt die meisten gängigen PDAs und ist auf jeden Fall einen Blick wert.
OpenXML oder ODF?
Zukunftsträchtige Formate zur Speicherung von Daten werden mehr denn je gesucht; vor allem von Behörden, die die Verfügbarkeit von Informationen auch in ferner Zukunft garantieren müssen. Proprietäre Formate eignen sich dazu bekanntermassen schlecht.Nach dem Siegeszug von Adobes PDF stehen nun zwei weitere Formate zur Diskussion. Auf der einen Seite ist das das Open Document Format (ODF), auf der anderen Seite Microsoft mit dem OpenXML Standard. Obwohl von Standard im Sinne von “jeder kennts - jeder brauchts” eigentlich noch keine Rede sein kann, liegt doch noch ein weiter Weg vor beiden Formaten. So kann momentan nur von den wenigsten Applikationen ein OpenXML oder ODF Format geschrieben werden. OpenXML scheint auch dermassen kompliziert zu sein, dass wohl nur wenige Entwickler den vollen Funktionsumfang wirklich kennen dürften. Immerhin wurde bereits vor ein paar Monaten das ODF Format ISO zertifiziert, was dem Ganzen ordentlich Rückenwind geben dürfte. Nun denn, die Schlacht ist eröffnet!
Telerik Radcontrols vs. Windows Vista Business
Nachdem wir uns eine Lizenz für das gesamte Telerik Package beschafft haben, war die Frustration relativ hoch bei der Installation auf meinem T60 mit Windows Vista Business. Nach der Installation standen die Controls in Visual Studio 2005 nicht zur Verfügung. Ein manuelles Hinzufügen zur Toolbox schlug ebenfalls fehl. Durch irgendein Problem in der Deinstallationsroutine dauert die Deinstallation der Controls auf Vista mehrere Stunden (!). Auf einer Windows XP Pro Kiste war das Problem nicht zu beobachten. Mein Tipp: die mühsame Deinstallation in Kauf nehmen und einfach noch einmal installieren.. schlussendlich hat’s dann doch noch geklappt.
Comments(0)