Da .NET Applikationen auf nem PDA nunmal keine Geschwindigkeitsrekorde brechen, ist es ganz sinnvoll dem User zu zeigen, dass da "im Hintergrund gearbeitet wird":
private void button1_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
Test();
Cursor.Current = Cursors.Default;
}
So einfach kann das sein ... ...
Ich bin gerade dabei eine PDA-Anwendung auf meinem eigenen PDA zu testen - dessen Hauptspeicher allerdings gerammelt voll ist, weshalb Visual Studio beim Deployment der 15 MB großen Datenbank streikte. Jetzt stellt sich natürlich die Frage:
Wie bekommt man die Daten auf die Storage Card gelegt?
Auf der sind nämlich noch 500 MB frei.
Im Prinzip ganz einfach, drauf kommen muss man aber erstmal:
Klick auf "Device Options"
Auswahl des Device, in meinem Fall "Pocket PC 2003 Device"
Klick ...
Das Erweitern der E-Mail-Templates, die von den LoginControls genutzt werden, ist an sich ziemlich einfach - wie es genau geht, wird hier beschrieben.
Aber:
Man sollte nicht wie ich den Fehler machen, und den Code blind mit Copy&Paste übernehmen - er ist nämlich ausnahmsweise mal fehlerhaft:
e.Message.Body.Replace("", Createuserwizard1.Question);
e.Message.Body.Replace("", Createuserwizard1.Answer);
wird nie funktionieren, weil Replace einen String zurück liefert - der erst zugewiesen ...
Wenn man "normale" Identities und keine Guids als IDs benutzt, erhält man, wenn die Anwendung fertig für die Auslieferung ist, schnell recht hohe IDs - da die ja fortlaufend, meist bei 1 beginnend, bereits während der Erstellung durch das Anlegen von X Testdatensätzen nach oben getrieben wurden. In Access ist die Sache einfach - einfach Datenbank komprimieren und reparieren, und schon sind Autowerte dort wieder bei 0.
Am SQL Server muss man eine System-Sproc benutzen:
delete from Tabelle
DBCC ...
Für's Archiv: um etwa ein Update oder Insert auf eine Tabelle in einer anderen Datenbank zu machen, muss der Tabellenname inkl. User und Datenbankname angegeben werden:
Datenbank.User.Tabelle
So klappt's auch mit dem Nachbarn. ...
Alex hat eine kleine Helper-Klasse gebaut, mit der sich on the fly weitere Regeln für das Umschreiben von URLs hinzufügen lassen, nützlich wenn man nicht direkt an die Web.config fassen will. ...
Folgender Fall:
Einfache Website mit wenigen Seiten, Menü kommt nicht aus der Datenbank - es wird kein eigener SiteMapProvider geschrieben.
Die Website ist mehrsprachig.
Es gibt zwei verschiedene Zustände: Eingeloggt und nicht eingeloggt.
Die Sprache wird via URL-Rewriting in der URL mitgegeben. aus ~/Default.aspx wird somit ~/de/Default.aspx.
Keine Rollen.
Im vorherigen Posting habe ich geschildert, wie man die Mehrsprachigkeit erschlagen kann. Zu dem Zeitpunkt hatte ich auch noch ...
Ich habe gerade bestimmt ne halbe Stunde gesucht, um herauszufinden, wie man die Site Map lokalisieren kann - und zwar am besten implizit, weil das Tipparbeit spart und einfach übersichtlicher ist.
Die Lösung: auch bei der impliziten Lokalisierung einer Web.sitemap müssen die Resource-Files, sofern man keinen eigenen Provider verwendet, in /App_GlobalResources und nicht in App_LocalResources liegen! Da muss man erstmal drauf kommen ...
Die Lösung lieferte "How to: Localize Site-Map Data".
Da ...
Ich habe mir am Sonntag ein neues Admin-Interface für dotnet.job mit Hilfe der schönen neuen ASP.NET-Controls zusammengeklickt, was wirklich wunderbar funktioniert hat (irgendwann musste ich es ja schließlich auch mal ausprobieren, um mitreden zu können ;-)).
Was mir aber noch fehlte, war eine Möglichkeit die Jobbeschreibungen vernünftig zu bearbeiten. Vernünftig hieß bei mir eigentlich nur, dass ich den HTML-Code nicht von Hand hacken wollte - gar groß war die Anforderung also nicht.
Also ...
Kleiner Trick zum Vorbelegen einer DropDownList, sprich Selectbox, wenn diese automatisch gefüllt wird (DataSource o.ä.) aber mit einem feststehenden Wert vorbelegt werden soll:
SelectedValue='"164" %>'
Funktioniert, auch wenn SelectedValue von IntelliSense gekonnt verschwiegen wird. Andernfalls tritt dann oben genannter Fehler auf. ...