-
ACHTUNG - NEUES BLOG
Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
|
.NET 2.0 Library / NECOM.LIB
18.12.05 - NECOM.LIB Beitrag von Norbert Eder| | Nachdem ich derzeit an einem großen privaten Projekt arbeite, fallen immer wieder hilfreiche Klassen an, die ich in einer Library sammle. Zu dieser gesellen sich schön langsam auch ältere bewährte Klassen.
Diese Sammlung möchte ich euch nicht vorenthalten. Zur Zeit befindet sich darin noch nicht sehr viel, wird in den nächsten Tagen und Wochen natürlich stark erweitert.
Derzeit im Package enthalten:
Logger
Dabei handelt es sich um einen thread-sicheren Logger, der zusätzlich auch über LogLevels (Debug, Warning, Information, etc.) verfügt.
Translator
In Zeiten der Globalisierung ist ein Übersetzer auch immer wieder praktisch bzw. notwendig. Der vorhandene Translator bietet eine einfache Möglichkeit, Language-Dateien in eigene Projekte einzubinden und einfach darauf zuzugreifen. Neben einer Default-Sprache wird auch eine aktuell ausgewählte Sprache zur Laufzeit unterstützt. Sprachdateien können weiters zur Laufzeit neu geladen werden.
StringList
Der StringBuilder ist ansich recht nett, auch weitere String-Klassen sind immer wieder hilfreich. Leider bietet keine die Möglichkeit, enthaltene Strings durch einen Seperator zu treffen. Diese Klasse übernimmt eben diese Aufgabe und hat mir daher schon lange Zeit gut gedient.
Zusätzlich zur Library befindet sich in diesem Package eine Test-Applikation (mit Sourcecode), um den Umgang mit den Klassen näher zu zeigen.
Anforderungen
Microsoft .NET Framework 2.0
Download
NECOM.LIB
Über Anregungen zur Weiterentwicklung, Bug-Reports wäre ich sehr dankbar. Diese können entweder hierauf als Antwort gepostet oder via Email an csharp@gmx.at gesendet werden.
| | | 3 Kommentare
- 1402 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Defekter Server - Downloads - Email
17.12.05 - Blog-Intern Beitrag von Norbert Eder| | Durch defekte Hardware meines Servers sind leider die meisten meiner Webseiten offline. Darunter befinden sich leider auch die Downloads zu meinen Tools. Weiters bin ich derzeit via Email ebenfalls nicht erreichbar.
Die Suche nach Webspace mit meinen Anforderungen (Windows Server 2003 Web Edition / Standard, .NET Framework 1.1 oder 2.0 und einer dahinterliegenden Datenbank, wenn möglich MSSQL Server) geht nur schleppend voran, da sich die meisten Hoster weigern Virtual Hostnames für meine Domains einzutragen.
Sollte also jemand vielleicht einen Tipp für mich haben, ich kann jeden derzeit gut gebrauchen.
PS: Wer mich in der Zwischenzeit per Email erreichen möchte, kann dies unter csharp@gmx.at tun.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
ToDo-Manager gesucht? Gefunden!
14.12.05 - 3rd Party Tools Beitrag von Norbert Eder| | Wer einen ordentlichen ToDo-Manager sucht, der auch nicht unbedingt die Welt kosten sollte (besser gratis), der findet in den weiten Welten des Internets nicht besonders viel.
Entweder greift man hier auf die Aufgabenverwaltung von Outlook oder Sunbird zurück, aber eines der Tools nur für diese Aufgabe nutzen? Eher müsig.
Aus Zufall bin ich auf den Elevy ToDo Manager gestoßen. Dies ist ein Freeware-Tool, welches zwar keine aufregenden Features bietet, aber immerhin gibt es das Teil asl Standalone-Version und als Addin für's Visual Studio 2005.
Durch die anscheinend ständige Weiterentwicklung kann man davon ausgehen, dass das eine oder andere nette Feature noch dazukommt. Ich kann hier nur mein Lob aussprechen.
| | | 2 Kommentare
- 879 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
AppDomains und ShadowCopies
11.12.05 - Base Framework Beitrag von Norbert Eder| | Wer mit AppDomains zu tun hat, stößt irgendwann auch auf das Thema ShadowCopy. Hierfür sind allerdings die vorhandenen Informationen rar gestreut. Die MSDN gibt nicht viel her (nur Oberflächliches) und auch sonst ist dafür nicht viel zu finden. Vor allem nicht, wenn es Probleme gibt. Daher hier eine kleine Anleitung, was bei diesem Thema alles zu beachten ist.
Zuerst kurz beine Begriffserklärung:
AppDomain
Eine AppDomain ist im Endeffekt nichts anderes, als der Kontext, in dem eine Anwendung ausgeführt wird.
ShadowCopies
Dies wird zum Beispiel von ASP.NET betrieben. Assemblies, die vom IIS geladen werden sollen, werden in ein ShadowCopy-Verzeichnis kopiert und von dort geladen. Die ursprünglichen Assembly-Dateien werden dadurch nicht gelockt und können von neuen Versionen überschrieben werden.
Aber wie kann man nun selbst ShadowCopies realisieren?
Unter der Annahme, dass in einer Anwendung verschiedene AppDomains geladen werden, sind drei Dinge notwendig (sämtliche Einstellungen können über die Klasse AppDomainSetup gemacht werden):
1. ShadowCopy aktivieren
AppDomainSetup.ShadowCopyFiles muss hier auf true gesetzt werden. Zu beachten ist allerdings, dass es sich bei dieser Property um einen String handelt.
2. Wo sollen die ShadowCopies erstellt werden?
Hier gibt es zwei Properties, die interessant sind. AppDomainSetup.CachePath und AppDomainSetup.ApplicationName. CachePath stellt das Verzeichnis dar, in welches die Assemblies kopiert werden sollen. ApplicationName ist der Name der Application. Das ganze sieht nun so aus, dass im CachePath ein Unterverzeichnis mit dem unter ApplicationName angegebenen String erstellt wird. Darunter befinden sich dann die ShadowCopies. Wird darauf verzichtet, kommt der eigentlich dafür zuständige Pfad zum Handkuss: %userprofile%\local settings\application data\assembly. ShadowCopies in diesem Pfad werden automatisch wieder gelöscht. Werden beide Properties korrekt gesetzt und damit ein eigener CachePath verwendet, muss man sich auch selbst um das Löschen der Dateien kümmern.
3. Was soll kopiert werden?
Natürlich muss auch angegeben werden, welche Assemblies kopiert werden sollen. Dies wird in der Property AppDomainSetup.ShadowCopyDirectories eingestellt. Mehrere Pfade werden hier durch ein Semikolon (;) getrennt angegeben. Alle darin befindlichen Assemblies werden dann fürs ShadowCopy herangezogen.
Zum Schluss gibt es auch noch ein wenig Sourcecode. Hier (zur Veranschaulichung" mit fixen Pfaden:
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationName = "Test";
setup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
setup.PrivateBinPath = AppDomain.CurrentDomain.BaseDirectory;
setup.CachePath = @"C:\temp\cache";
setup.ShadowCopyFiles = "true";
setup.ShadowCopyDirectories = Path.Combine
(AppDomain.CurrentDomain.BaseDirectory,
Path.DirectorySeparatorChar.ToString());
Die Kopien würden also im Verzeichnis C:\temp\cache\Test erstellt werden.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Connection-Probleme zu SQL Server 2005 Express?
11.12.05 - SQL Server Beitrag von Norbert Eder| | Eventuell die nette Meldung provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server?
Die Lösung ist einfach: Im ConnectionString wurde einfach der Instanzname bei der Data Source vergessen. Beispielsweise 127.0.0.1\Instanzname angeben und schon funktioniert alles wie gewollt.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Ticketing-Tool für Lau
11.12.05 - 3rd Party Tools Beitrag von Norbert Eder| | Wer eine kleine aber feine HelpDesk-Software benötigt, der sollte sich das Tool zeta HelpDesk auf The CodeProject einmal ansehen.
Die Software ist nicht nur einfach zu bedienen, sondern sollte vom Funktionsumfang kleineren und mittleren Teams durchaus reichen. Durch den verfügbaren Sourcecode können auch jederzeit Anpassungen an die eigenen Gegebenheiten durchgeführt werden.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Wieso gibt es keine Assembly.Unload() Methode?
10.12.05 - Base Framework Beitrag von Norbert Eder
Unable to debug: The binding handle is invalid.
09.12.05 - Base Framework Beitrag von Norbert Eder| | Welch nette Fehlermeldung beim Startversuch einer Anwendung unter dem Visual Studio 2005.
Nach einiger Recherche kam ich dann auf des Rätels Lösung - und ich war richtig verwundert.
Gestern ging ich meine Dienste am Rechner durch und deaktiverte alles, was ich eigentlich nicht brauch. Darunter auch die Terminal Services. Das war übrigens ein Fehler. Denn Visual Studio 2005 benötigt die Terminal Services um Debuggen zu können. Aber bitte, nicht dass jemand auf die Idee kommt, mich zu fragen, warum das denn so ist.
Merke: Programmierst du mit Visual Studio 2005, niemals die Terminal Services deaktivieren. Einfach auf Manuell lassen und schon freut sich das Visual Studio wieder.
*verwirrt bin*
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Der beste Texteditor - noch dazu kostenlos!
09.12.05 - 3rd Party Tools Beitrag von Norbert Eder| | PSPad nennt sich der wohl beste Texteditor, den ich persönlich schon längere Zeit verwende. Durch ein Gespräch mit einem Freund wurde ich darum gebeten, doch ein Posting in meinem Blog zu diesem Thema zu verfassen. Dem komme ich doch gerne nach.
Zurück zum Produkt:
Wie gesagt, das Tool ist kostenlos (der Entwickler freut sich aber bestimmt über eine Donation) und bietet zahlreiche Funktionen wie Syntax-Highlighting, Makro-Rekorder, FTP-Client und viele mehr.
Hier ein paar direkte Links zu Informationen:
Funktions-Übersicht
Screenshots
Download
| | | Kommentar hinzufügen
- 4 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
SQL Server Replizierung: Alt oder doch neu?
09.12.05 - SQL Server Beitrag von Norbert Eder| | Wer sich derzeit mit den Gedanken über eine SQL Server Replizierung spielt und sich nicht sicher ist, ob er den altbewährten SQL Server 2000 oder dann doch den neuen 2005er nehmen soll, dann kann ihm geholfen werden.
Werden in Zukunft Änderungen an Tabellen etc. vorgenommen?
Wenn nein, dann sehe ich kein Problem bei der Verwendung der 2000er-Version. Handelt es sich dabei allerdings um ein wachsendes System, d.h. die Struktur der Tabellen etc. kann bzw. wird sich verändern, dann rate ich eindeutig zum 2005er.
Der Grund liegt darin, dass Änderungen an der Tabellenstruktur im SQL Server 2000 nur schwer nachgezogen werden kann. Wird beispielsweise im Verteiler (der Server, der die Daten an seine Abonennten verteilt) eine neue Tabelle angelegt, muss die Publikation, als auch die Abonnenten am Verteiler gelöscht und neu erstellt werden. Ändern sich nur einzelne Datenfelder, können diese nur mit der Stored Procedure sp_repladdcolumn zur Replikation hinzugefügt werden. Dies ist auf Dauer doch recht mühsam. Der SQL Server 2005 bietet diese Einschränkungen nicht mehr.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL | Zurück Weiter
|
|
|
|
|
|
|