November 2006 - Einträge

Vista x64

Als technischer Beta Tester von Windows Vista darf ich mich zu den glücklichen zählen, die Vista x64 bereits jetzt schon installieren können.

Gestern war auch endlich der Download fertig und auf meinem Dell Precision M90 dauerte die Installation ca. 20min.

Mittlererweile habe ich auch Office 2007, Visual Studio 2005 SP1 und Sql Server 2005 x64 SP2 installiert.

Der Treibersupport ist noch nicht so weit fortgeschritten was wohl mit meiner relativ neuen Hardware und x64 zusammenhängt. Aero Grafik, Sound, Lan und WLAN funktionieren jedoch und Nvidia und Co. bereits unter Hochdruck daran, die Treiber zu verbessern.

Performancetechnisch ist mir kein großer Unterschied zu XP aufgefallen - das wird wohl noch kommen. Lediglich benötigen alle Prozesse deutlich mehr Arbeitsspeicher, was einfach an 64 Bit liegt.

Hallo dotnetgerman!

Seit heute darf ich mich auch zu den .NET Bloggern zählen, die bei http://blogs.dotnetgerman.com/ gelistet werden, und werde mich aus diesem Grund kurz vorstellen.

Momentan besuche ich die 13. Klasse des Friedrich-Schiller-Gymansium Marbachs und will im Winter mein Physik Studium beginnen.

Microsoft .NET kenn ich schon, seit es selbst noch in den Kinderschuhen steckte also von den Betas der 1.0 Version an. Heute entwickle ich Windows- und Webanwendungen mit Visual Studio 2005 und habe mir bereits einen gewissen Wissensfundus über .NET 3.0 angeeignet.

Im Baden-Württemberger Raum habe ich bereits mehrere Softwareprojekte durchgeführt, sowie weitere in Zusammenarbeit mit Alex Bierhaus.

Sie können mich über meinen Blog oder das VB-Magazin http://www.vb-magazin.de/ erreichen.

Performance von RegluarExpressions verbessern

Im .NET Framework setllen die RegularExpressions (zu deutsch reguläre Ausdrücke) eine Vielzahl von Textoperationen bereit.

Beispiel: Format einer Email Adresse überprüfen

Dim text As String = someone@somecompany.com

If System.Text.RegularExpressions.RegEx.IsMatch(text, "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")
  ' Diese Email ist gültig
Else
  ' Diese Email ist ungültig
End If

Jedoch müsste bei jedem Aufruf des Codes der reguläre Ausdruck bei jedem Aufruf erst interpretiert und dann angewendet werden.

Bei seltenem Aufruf bzw. dynamischem pattern ist das auch kein Problem.

Wird die Validierung jedoch sehr häufig benötigt vielleicht sogar mehrmals in der selben Prozedur, bietet es sich an den Ausdruck vorzukompilieren.

Dazu sollte man den das RegEx in einer Variablen speichern:

Private Shared ReadOnly emailregex As New System.Text.RegularExpressions.Regex("\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", System.Text.RegularExpressions.RegexOptions.Compiled)

Der Ausdruck wird nun kompiliert und ist nun viel perfomanter bei häufiger Ausführung.

Um zusätzlich noch Platz zu sparen und Übersichtlichkeit zu erhalten, kann man den Namespace System.Text.RegularExpressions importieren:

Private Shared ReadOnly emailregex As New Regex("\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", RegexOptions.Compiled)

Posted von Jan-Cornelius Molnar mit no comments
Abgelegt unter:

WPF Threadsicherheit

Überrascht stelle ich fest, dass in der WPF Final das PropertyChanged Event threadsicher ist.

Das bedeutet, dass das Event von jedem Thread aus ausgelöst werden darf ohne es vorher auf den Ui Thread zu synchronisieren.

Leider gilt das für die CollectionChanged Events nicht.

Posted von Jan-Cornelius Molnar mit no comments
Abgelegt unter: ,

CSS auch für Links in ASP .NET

Definiert man eine Klasse in CSS und referenziert diese von einem Link, wird man vielleicht überrascht sein:

CSS

.my-link {

color: #ffc700;

}

ASP .NET

<asp:Hyperlink runat="server" id="lnk1" cssclass="my-link" text="Link 1" />

Der Link ist nicht wie erwartet gelb, sondern hat die Browser Standard Farbe für Links. Das liegt daran, dass Links mit eigenen Pseudo-Klassen definiert werden (:link, :active, :hover und :visited).

CSS

.my-link:link, .my-link:active, .my-link:hover, .my-link:visited {

color: #ffc700;

text-decoration: none;

}

.my-link:hover{

text-decoration: underline;

}

.my-link:visited{

color: gray;

}

Nun erscheint der Link wie erwartet.
Interessant ist auch, dass gleich mehrere Klassen durch ein Komma getrennt definiert werden können. Wird eine Eigenschaft später im CSS Dokument erneut gesetzt, wird deren Wert einfach überschrieben.

Das ganze kann auch hier betrachtet werden: http://www.dev-jc-vb.de/dev-jc-vb/Samples/VbMagazin/cssdemo_link_pseudo.htm

Windows Vista Ultimate 4 Free

Gerade habe ich erfahren, dass ich, als einer der etwa 30.000 technischen Beta Tester von Windows Vista, eine kostenlose Kopie von Windows Vista Ultimate erhalte.

Danke Microsoft!

Posted von Jan-Cornelius Molnar mit no comments
Abgelegt unter:

Sql Server Everywhere Edition ist nun Sql Server Compact Edition

Microsoft hat heute den Namen des bereits als Sql Server Everywhere Edition bekannten Sql Server abkömlings bekannt gegeben, der auch ohne Installation als Service läuft.

Die Compact Edition basiert auf der Mobile Edition 2005 und besteht im Wesentlichen aus der Assembly System.Data.SqlServerCe, die in jedes .NET Projekt eingebunden werden kann. Die Daten werden in einer Datei mit der Endung .sdf abgelegt; der Zugriff erfolgt über die typischen ADO .NET Klassen mit dem Prefix SqlCe (SqlCeConnection, SqlCeCommand, SqlCeDataReader etc.) also im Gegensatz zu den Klassen des "großen" Bruders mit dem Prefix Sql.

Der Sql Server Compact Edition ist demnach eigentlich kein richtiger Sql "Server" mehr, da er nicht als Service für alle Applikationen zur Verfügung steht, sondern nur für die aktuelle Anwendung. Aus diesem Grund ist auch stets nur eine Verbindung zur Datenbank erlaubt, was aber für gewöhnliche Anwendungen ausreicht.

Jede Anwendung kann nun Daten im gewohnten Datenbankformat speichern, ohne eine Installation des Sql Servers auf dem Zielrechner zu erfordern. Das spart Zeit, da kein aufwendiges Speicherframework entwickelt werden muss, und bringt Performance, da der Sql Server Compact viel schneller ist als Daten, die aus einer Xml Datenbank geladen werden müssen. Außerdem ist die Compact Edition für kleinen Arbeitsspeicherverbrauch optimiert.

Bei der Erstellung einer ClickOnce Installation kann der Sql Server Compact mitausgewählt werden und ist damit auch automatisch bei jedem Start der Anwendung verfügbar.

Abgeschlossen wird die Compact Edition durch die Sql Server Compact Edtion 2005 Tools for Visual Studio 2005, durch die sich die Compact Edition nathlos in Visual Studio 2005 integriert und kompfortablen Zugriff ermöglicht.

Momentan steht der Sql Server Compact Edition als RC1 zum Download

Microsoft SQL Server 2005 Compact Edition RC1
http://www.microsoft.com/downloads/details.aspx?FamilyID=85e0c3ce-3fa1-453a-8ce9-af6ca20946c3&DisplayLang=en

SQL Server 2005 Compact Edition Books Online Community Technology Preview (CTP)
http://www.microsoft.com/downloads/details.aspx?FamilyID=e6bc81e8-175b-46ea-86a0-c9dacaa84c85&DisplayLang=en

Microsoft SQL Server 2005 Everywhere Edition Tools for Visual Studio 2005 Service Pack 1 Beta
http://www.microsoft.com/downloads/details.aspx?FamilyID=61289b5d-af86-45dd-8962-e7dcc5221796&displaylang=en

 

Weitere Informationen

http://www.microsoft.com/sql/editions/compact/default.mspx

http://www.microsoft.com/sql/editions/sqlmobile/default.mspx

Neue Version von Windows Live Writer

Gerade habe ich die aktuellste Version von Windows Live Writer installiert und muss sagen, dass sich das Tool dem RTM Status immer mehr annähert.

Die Unterstützung für den CommunityServer ist hervorragend und WLW läuft superschnell und stabil.

WLW hilft mir beim Bloggen ordentlich Zeit zu sparen im Vergleich zum Schreiben von Blogeinträgen über das WebInterface.
Allein schon dadurch, dass nicht alles über JavaScript nachgeladen werden muss sondern einfach da ist ;)

Interessant finde ich auch die PlugIn API, die in kürzester Zeit interessante Erweiterungen hervorbringen wird.

Den Download und alle Informationen findet man hier.

SmartFTP 2.0 Build 1000

Heute ist ein wichtiges Update für das beliebte FTP Programm SmartpFTP 2.0 erschienen. Das Update behebt einen Fehler, der zu Abstürzen des Programms nach dem 10. November geführt hat.

.NET 3.0 ist da!

Noch vor dem offiziellen Vista Release im Januar 2007 ist die finale Version des .NET Framework 3.0 erschienen. Endlich kann man die neuen Technologien WPF, WCF, WWF und WCS sinnvoll in Projekten einsetzten. Aber auch Applikationen die mit dem RC1 oder dem September 06 CTP erstellt wurden sind kompatibel mit der finalen Version.

Die Erweiterungen für Visual Studio haben den finalen Stand noch nicht erreicht. Der November 06 CTP wird jedoch der letzte sein und ermöglicht es bereits Applikationen mit dem finalen .NET 3.0 zu entwickeln.

Download Links

.NET 3.0 Redistributable

http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=10cc340b-f857-4a14-83f5-25634c3bf043

Windows Vista SDK

http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en

Visual Studio 2005 Extensions für WPF & WCF

http://www.microsoft.com/downloads/details.aspx?FamilyID=f54f5537-cc86-4bf5-ae44-f5a1e805680d&DisplayLang=en

Visual Studio 2005 Extensions für WWF

http://www.microsoft.com/downloads/details.aspx?FamilyID=5d61409e-1fa3-48cf-8023-e8f38e709ba6&DisplayLang=de

.NET 3.0 Language Packs

http://www.microsoft.com/downloads/details.aspx?FamilyID=41c61d2a-d411-4dde-9013-bb08eb688bb6&DisplayLang=de

Posted von Jan-Cornelius Molnar mit no comments
Abgelegt unter: ,

Sql Server Everywhere CTP & Enterprise Library

UPDATE: Mit dem Erscheinen des Sql Servers 2005 Compact Edition RC1 (ehemals Everywhere Edition) wird der SqlCe-Provider automatisch registriert, was einen zusätzlichen Eintrag in der web.config unnötig macht.

Die Microsoft patterns & practices Enterprise Library 2.0 January 2006 setzt auf das Providermodell von ADO .NET 2.0. Für Sql Server, Ole Db, Oracle und auch den SQL Server 2005 Everywhere Edition stehen diese Provider zur Verfügung. Dieser Artikel soll zeigen, wie man sie auch einsetzt.

Mit dem DataAccess Application Block der Enterprise Library kann man vollkommen datenbankunabhängige Anwendungen entwerfen. Die Provider von ADO .NET 2.0 machen dies möglich, indem sie die sepeziellen Objekte wie z.b. SqlConnection und SqlCommand für ihre Datenbank erstellen und dem Entwickler allgemeine Objekte wie DbConnection und DbCommand zur Verfügung stellen.
Durch eine kleine Änderung am ConnectionString kann so z.B. von Oracle auf Sql Server 2005 gewechselt werden.

<connectionStrings>
<add name="AppDatabase" connectionString="Data Source=(local);Initial Catalog=dbname;User Id=user;Password=pwd;" providerName="System.Data.SqlClient"/>
</connectionStrings>

Will man nun den Sql Server Everywhere mit providerName="System.Data.SqlServerCe" einsetzten, stößt man zunächst auf die Fehlermeldung, dass kein Provider gefunden wird, obwohl sich in der Assembly befindet sich aber der xyz Provider befindet. Das Problem ist lediglich, dass dieser nicht ADO .NET registriert ist.

Die Registrierung ist jedoch mit einem weiteren Eintrag in der web.config ganz einfach zu erreichen:

<system.data>
<DbProviderFactories>
<add name="SQL Server 2005 Everywhere Data Provider"
invariant="System.Data.SqlServerCe"
description=".NET Framework Data Provider for Microsoft SQL Server 2005 Mobile Edition"
type="System.Data.SqlServerCe.SqlCeProviderFactory,
System.Data.SqlServerCe, Version=9.0.242.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
</system.data>

Nun glückt die Instanzierung und die Enterprise Library kann in vollem Umfang eingesetzt werden.

Zum Weiterlesen

Sql Server Everywhere Edition
http://www.microsoft.com/sql/CTP_sqlserver2005everywhereedition.mspx

Enterprise Library for .NET Framework 2.0
http://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp

ADO .NET 2.0
http://www.microsoft.com/germany/msdn/library/net/ADONET20.mspx?mfr=true

Posted von Jan-Cornelius Molnar mit no comments
Abgelegt unter: ,