SolutionDev Blog

Gedanken rund um die Lösungsentwicklung

Applikationsweite Events mit mehreren Empfängern - vb.net

clock August 22, 2008 12:39 by author soldev

Wie oft ... stellt man sich ein komplexes Problem und findet am Ende eine ganz einfache Lösung. So auch hier. Die Frage war: Wie kann ich über meine gesamte Applikation events generieren, welche von irgendwoher aufgerufen und von beliebig vielen Empfängern erhalten werden... Da kommen einem Message Broker, Queues, Hooks und mehr in den Sinn. Doch Sascha Kiefer konnte mich auf Xing auf eine ganz einfache Lösung bringen. Er gab mir zwar einen Hinweis auf Delegates (von C# her) doch mit ein wenig Recherche fand ich heraus, dass ich dies in vb.net gar nicht benötige - es geht wesentlich einfacher.

Auf Codeproject habe ich einen Artikel über Global Events publiziert, hier ein kleiner Extrakt auf deutsch...

Man erstellt eine Klasse für das Globale Eventhandling:

Public Class GlobalEventing
 Public Shared Event DataStored(ByVal sender As Object, ByVal type As String, ByVal msg As String)
 Public Shared Sub TestDataStored()
 RaiseEvent DataStored("x", "x", "x")
 End Sub
End Class

Das steht alles auf 'Public' und 'Shared', damit die Klasse über sämtliche Grenzen hinweg verwendet werden kann.

Das Feuern des Events ist dann sehr einfach:
GlobalEventing.TestDataStored()

Das Empfangen des Events ebenfalls:
'Als Deklaration
Private t As GlobalEventing

'Im Form_Load oder an geeigneter Stelle
 AddHandler t.DataStored, AddressOf test

'Und natürlich die Sub
 Private Sub test(ByVal sender As Object, ByVal typ As String, ByVal msg As String)
 MsgBox("received in reminder")
 End Sub

Selbstverständlich muss das noch mit entsprechenden Parametern etc. ausgebaut werden, das Grundgerüst jedoch läuft :)

Ich habe diese Idee noch einen Schritt weiterverfolgt mit Vererbung. Meine Forms leiten sich von einer Basisklasse ab. Wird dieser Event nun in der Basisklasse empfangen, so erhalten die Childs automatisch diese Voraussetzungen mit. Das ist absolut cool!

Hoffe, jemand kann damit ebenfalls etwas anfangen ... Ein kleines Testprojekt befindet sich ebenfalls auf codeproject.com.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Krimi Spam aus dem achten Stock

clock August 7, 2008 16:18 by author soldev

Seit Juni 08 offeriert die IT Sicherheitsfirma "Sophos" (http://www.sophos.ch) einen IT-Sicherheitskrimi (siehe Pressemeldung unter http://www.sophos.de/pressoffice/news/articles/2008/06/krimi.html)

Während das Textfile registrierungspflichtig ist, kann das Hörbuch direkt geladen werden: http://www.sophos.ch/security/best-practice/sophos-spam-aus-dem-achten-stock.mp3

Werde mir das in den nächsten Wochen mal anhören, bin gespannt.

Aktuelle Bewertung 5,0 von 1 Besuchern

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Krimi "Spam aus dem achten Stock"

clock August 7, 2008 16:18 by author soldev

Seit Juni 08 offeriert die IT Sicherheitsfirma "Sophos" (http://www.sophos.ch) einen IT-Sicherheitskrimi (siehe Pressemeldung unter http://www.sophos.de/pressoffice/news/articles/2008/06/krimi.html)

Während das Textfile registrierungspflichtig ist, kann das Hörbuch direkt geladen werden: http://www.sophos.ch/security/best-practice/sophos-spam-aus-dem-achten-stock.mp3

Werde mir das in den nächsten Wochen mal anhören, bin gespannt.

Aktuelle Bewertung 4,0 von 1 Besuchern

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Nun ist er da: SQL Server 2008

clock August 7, 2008 16:10 by author soldev

Viel Wirbel wurde bereits darum gemacht, nun ist er offiziell erhältlich, Microsoft SQL Server 2008. In sieben verschiedenen Versionen können Unternehmenskunden und Endanwender ab dem 15. August umrüsten. Interessanterweise werden gleichzeitig die 2005er Versionen aus den Produktesortimenten entfernt und sind nicht mehr erhätlich (so zumindest bei ALSO).

Viele sehr spannende Erneuerungen sind eingebaut, ich durfte bereits einige Workshops machen. Wer wechseln möchte tut gut daran, einen Workshop zu besuchen, es gibt einige gute Anbieter (wie z.B. Trivadis und Digicomp).

Unter http://www.microsoft.com/sqlserver findet man viele wertvolle Infos (nebst dem obligaten Marketing).

Mal sehen, wir werden wohl anfangs 2009 unsere Kundschaft umrüsten.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Netter Link zu SQL Themen

clock August 5, 2008 10:30 by author soldev

Beim Suchen nach Infos zum Transaction Log fand ich die folgende Webseite, welche eine recht ansehnliche Sammlung von SQL Tipps enthält. Auf alle Fälle lesenswert!

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=55210&SearchTerms=How%20Backup%20works,What%20type%20of%20backup%20should%20I%20use,Automating%20Backups,Backup

Aktuelle Bewertung 5,0 von 1 Besuchern

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


SQL Server Express 2005 Transaction Log verkleinern

clock August 5, 2008 10:05 by author soldev

Es ist ein leidiges Thema, das Transaction Log und man könnte Jahre sich weiterbilden und wüsste wohl immer noch nicht jedes Detail (ob die Entwickler von MS das wissen? :) )

 Wer schon einmal versucht hat, das Transaction Log des SQL Servers im Full Recovery Modus zu verkleinern weiss, dass es eine ziemlich mühselige Angelegenheit ist. Der Speicher wird z.B. nicht freigegeben, wenn die Daten nicht gesichert sind (was Sinn macht) und auch nicht, wenn das Logfile noch durch offene Transaktionen oder Benutzerzugriffe in Gebrauch ist (was ebenfalls durchaus wünschenswert ist).

Gerade aber beim SQL Server Express mit seiner 4 GB Limite ist ein konstantes verkleinern des Transaktionsprotokolls unbedingt von Nöten. Nach einigem Hin und Her und aus verschiedenen Quellen habe ich das (zumindest für uns) optimale Vorgehen herausgetüftelt. Hier das Script:

BACKUP DATABASE [<dbname>] TO DISK=N'<diskname>' WITH NOFORMAT, NOINIT, MAME=N'<backupname>', SKIP, NOREWIND, NOUNLOAD, STATS=10
GO
BACKUP LOG [dbname] TO DISK=N'<diskname>' WITH FORMAT, INIT, NAME=N'<backupname>', SKIP, NOREWIND, NOUNLOAD, STATS=10
GO

USE <dbname>
ALTER DATABASE <dbname> SET RECOVERY SIMPLE
GO
DBCC SHRINKFILE (N'<logname>', <size>)
GO
ALTER DATABASE <dbname> SET RECOVERY FULL

Was läuft? Zuerst stellen wir die Datenbank und zusätzlich (weil paranoid?) das Transaktionsprotokoll sicher. Danach stellen wir den Recoverymodus auf "Simple", verkleinern das Transaktionsprotokoll und stellen den Recoverymodus wieder zurück.

Das ganze Script läuft bei uns ca. 2 Minuten. Das Verkleinern selber läuft ziemlich schnell. Selbst wenn in dieser Zeit ein Systemausfall auftritt, könnten wir mit einem Zurücksetzen von 2 Minuten leben.

In nächster Zeit werden wir das wohl als Script noch automatisieren.

Aktuelle Bewertung 5,0 von 1 Besuchern

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Search

Calendar

<<  Dezember 2017  >>
SoMoDiMiDoFrSa
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

Archive

Tags

Categories


Blogroll

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2017

Sign in