April 2009 Entries
In SQL Server 2000 darf eine Rownicht mehr als 8000 Bytes groß sein.
Das bedeutete auch, dass ein Feld max. 8KB gross sein darf, sofern es das einzige Feld ist, dass abgefragt wurde.
Eine varchar Spalte darf max 8KB und eine nVarcharSpalte max 4KB groß sein(2 Byte pro Unicode-Zeichen) sein.
Um mehr Daten in einer einzigen Spalte zu speichern gibt bzw. gab es NTEXT, oder Bild-Daten-Typen (BLOBs).
Nachteil, dass deiese Felder nicht wie üblich in Abfragen verwendet werden können.
Um dieses Problem zu lösen, wurden VARCHAR (MAX), NVarChar (MAX), und VARBINARY (MAX) Datentypen in SQL Server 2005 eingeführt.
Diese Daten können über die gleiche Menge von Daten...
Immer mehr Webanwendungen verwenden Ajax-Toolkits um bestimmte Funktionalitäten auf den Seits zur Verfügung zu stellen.
Abgesehen von der Suchmaschienenproblematik vergessen irgendwie alle, wofür es ursprünglich da war.
Es geht darum, dem User das Interface zu vereinfachen und oft auch Vorgänge dadurch zu beschleunigen, dass kein Reload der Seite gemacht werden muss.
Um das gleich mal klar zu stellen, ich setze das selbst gerne ein und auch immer öfter.
Was ich langsam nicht verstehe, ist das die Entwickler der Toolkits Pakete schnüren, bei denen mehrere hundert KB Javascript geladen werden müssen um einfache Effekte zu erzielen, die ein paar Zeilen eigenes Javascript auch realisieren...
Wenn man eine ASP.NET Textbox im Textmode="Multiline" erstellt, funktioniert dummerweise Maxlength nicht, da die HTML-Textarea das nicht unterstützt.
Hier ist die passende Javascript-Function und der VB-Code dazu.
Um das Feature später einfac h ändern zu können, suche ich erst alle Textboxen innerhalb eines Panels und aktiviere entsprechende onChange und onKeyDown Events.
1 Sub setMaxlength()
2 For Each ctl As Control In Panel1.Controls
3 If ctl.GetType Is GetType(TextBox) Then
4 Dim myTextbox As TextBox = ctl
5 If myTextbox.TextMode = TextBoxMode.MultiLine _
6 AndAlso myTextbox.MaxLength > 0 Then
7
8 myTextbox.Attributes.Add("onChange", _
9 ...
Jeder kennt das Problem... Man hat einen formatierten String und möchte diesen im Code verwenden.
zwei Möglichkeiten.... entweder man stückelt Ihn über mehrere Zeilen zusammen oder man macht eine gaaaaanz lange Zeile daraus.
Beides ist unbefriedigend und mühsam.
Gestern habe ich nun das XElement dafür entdeckt :
1 Dim SQL As New XElement(<root>
2
3 SELECT CMS_Artikel.Dachzeile,
4 CMS_Artikel.DateFrom,
5 CMS_Artikel.CreateDate,
6 User_User.RealName,
7 CMS_Artikel.ArtikelID
8 FROM CMS_Artikel...
Und mal wieder habe ich Probleme auf einem Server Umlaute in Cookies zu speichern bzw. zu lesen.
Die Tipps sind vielfältig und variiren von Server.URLDecode bis hin zu Globalization Eiträgen in der Web.Config.
Diesmla half gar nichts... Deswegen werden die CookieInformationen ab sofort Base64-codiert.
Damit hat sich das Thema - hoffentlich
String to Base64
1 Dim base64String As String = _
Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("äüö$$"))
2
3 Dim c As New HttpCookie("testCookie")
4 c("value") = base64String
5 Response.Cookies.Add(c)
6
7
Base64 to String
9 Dim base64FromCookie As String = _
Request.Cookies("testCookie").Values("value")
10
11 Dim standardString As String = _
Text.Encoding.UTF8.GetString(Convert.FromBase64String(base64FromCookie))
12
13 Response.Write(standardString)
Wer bereits mit XML gearbeitet hat und XPath-erfahren ist möchte dies evtl. auch mit xLinq nutzen.
Hierzu benötigt man den Namespace System.XML.XPath der dann diverse Extension-Methods bereitstellt:
3 Imports System.Xml.XPath
[...]
147 Dim list As IEnumerable(Of XElement) _
= xdoc.XPathSelectElements("//Node1/Node2/Node3[Attribut1='Value1']")
[edit 25.6.2009]
Hier ist eine Lösung um ein
VPN verbinden nach unterbrochener Netzwerkverbindung (mit .NET) oder um eine
VPN verbinden nach Energiesparmodus(mit .NET)
[/edit 25.6.2009]
Um eine VPN-Verbindung mit .NET starten genügt ein Einzeiler.
Vorraussetzung ist, dass das Kennwort gespeichert ist und die Abfrage deaktiviert.
Wobei myVPN_Connection der Name der Verbindung unter Windows ist:
1 Module Module1
2
3 Sub Main()
4 Process.Start("RasPhone.exe", "-d myVPN_Connection")
5 End Sub
6
7 End Module
In einem Bestellsystem für Stromverträge kann ein User aus einer Ergebnisliste eine Bestellung auslösen.
Die Linq-Abfrage hierzu ist mehr als komplex und die Werte in den verbundenen Tabellen werden in verschachtelten Repeatern auf der Website dargestellt.
Da wöchentlich die Datenbank ausgetauscht wird, möchte ich gerne im System die Daten aus dem Ergebnis hinterlegen.
Dummerweise ist ein LinqToSQL-Ergebnis nicht serialisierbar.
Im Netz habe ich auch nichts gefunden und mir meine eigene rekursive Methode gebastelt:
Sicherlich noch verbesserungsfähig... aber für das aktuelle Problem austreichend.
01 Imports System.Reflection
11
12 Public Function getXElementFromLinqObject(ByRef RootElement As XElement, _
13 ByVal DataObject As Object) As...
Fast jedes Mal, wenn ich ein neues Webform erstelle, füge ich ein Page_Load-Handler ein.
Im Verzeichnis
C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache\Web\VisualBasic\1033
liegen die Vorlagen für dei neuen Objekte.
Einfach in die Codebeside Datei den nötigen Eintrag machen und ab sofort ist der Handler vorhanden.
Jedes mal auf's neue suche ich den Link für die PDF-PReview in Outlook:
http://timheuer.com/blog/archive/2008/05/09/foxit-pdf-preview-handler.aspx
Das war er ;-)
Um Wildcardmapping im IIS7 zu ermöglichen, muss ein Sperre aufgehoben werden.
Folgenden Befehl in einer Console ausführen und die Sache ist erledigt:
C:\Windows\System32\inetsrv\appcmd.exe unlock config /section:system.webserver/handlers
Und dann muß noch die <modules> Section angepasst werden bzw. ein Attribut hinzugefügt werden:
<modules runAllManagedModulesForAllRequests="true" >