Samstag, Februar 19, 2005

Windows 2003 sicherer als Linux?

Hier mal wieder eine Studie zum Thema Linux vs. Windows.
Ergebnis, Windows besser als Linux.

Der Artikel:

http://seattletimes.nwsource.com/html/businesstechnology/2002182315_security17.html

Freitag, Februar 18, 2005

Kollegen suchen Arbeit

Ein paar Kollegen von mir haben eine kleine Firma, hier mal der Link: www.capevision.de

Also, wenn jemand was richtig gemacht haben will, dann immer hin da :D

Viele brauchbare Webparts

Ein schöner Artikel von Mart Muller, er listet mal eine ganze Reihe von interessante Webparts auf. Bestimmt intressant, wenn man was mit Sharepoint macht.

Hier der Artikel:

Some usefull Sharepoint webparts

..which can be downloaded at Teamcenter Community.

http://www.ugs.ch/evis5/pub/ps/cs/wss/default.aspx

Poll
Used the Microsoft RateThisPage web part as a base to create a Poll web part.

RateThisPage
I have become cumbersome to Microsoft´s feature to take care about servernames and protocolls. I had for the same page about 6 different ratings. So I decompiled the Microsoft RateThisPage web part and added a config variable to remove this behavior.

QuickTime
The QuickTime Web Part brings QuickTime Movies to your Sharepoint site. You can specify the QuickTime Movie to be displayed with an URL.

The TccRoleSyncer Admin Tool
Synchronize you role definition from a sharepoint site to another site including it's sub structure.

The Active Directory User Information Web Part
The AD User Information web part shows information stored in the active directory about the actual user. It lets the user also change his login password.

The Connected Page Viewer Web Part
You know the Page Viewer web part thats installed by default. This web part works analogue. May it have a lot of more functionality. You can set some attributes to the IFrame and you can use web part connections to show pages.

Site Navigation
The site navigation is used to show the site structure of your Sharepoint site. It's shown below. Use it to navigate to your demo page of interest.

Importable WebParts
This page shows some web parts you can import on a site without installing any component on the server side.

Breadcrumbs
One problem a lot of Sharepoint users have, is to navigate in the site hierarchy of a sharepoint server. A lot of users are thinking the Home link have to be the root site of the server. They don't want to go to the root site by clicking several times the Up link. The Breadcrumbs Web Part helps.

TccFeeder
The TccFeeder client application synchronizes events, contacts and tasks from different Sharepoint servers and from different sites to the users desktop.

Event Rollup
The Event Rollup Web Part rolls up events from all subsites into one single table. This way you have an overview off all events. You can manage events from all subsites in one single web part. You can link all event lists into outlook. The best use case for this web part is ressource planning.

Ressource Plan
The Ressource Plan Web Part shows events assigned to users or groups in a table view. This way you can easely manage your ressources and always have an overview about theire work load.

Google Search
The Google Search Web Part brings the entire Google search power to your Sharepoint site. You can specify search options. As an example you can configure the web part to search your own site!

Google Translator
The Google Translator Web Part brings the entire Google translation power to your Sharepoint site. You can translate text between different languages!

Flash Movie
The Flash Movie Web Part brings Shockwave Flash to your Sharepoint site. You can specify the Flash Movie to be displayed with an URL.

Welcome
The Welcome Web Part welcomes your users with a lot of configuration options!

World Time
The Wolrd Time Web Part lets you choose time zones to display. You can highly configure, how the zones are displayd on the page. You can see on the right side an example of a configuration.

What's New (by Jan Tielens Lead-it, modifications by Konrad Brunner)
The What's New Web Part shows all new items from a site in one single web part area. Add some new items into the events or announcement list to see how the new items appear.
I addedd a site structure walk down functionality and done the web part ignoring hidden lists and document library folders.

The User Alert Web Part (by Jan Tielens, Lead-it)
The User Alert web part allows administrators to manage the alerts from a site. Add, remove and change alerts from any user.

Dienstag, Februar 15, 2005

Endlich, lang erwartet (nun auch ein Rolling File Sink für EntLib)

Hier der orginal Post von Baz:

Enterprise Library Logging - Rolling File Sink

Overview
I spend my days working at Avanade and I've been using the beta of Enterprise Library for the past few months on various customer projects.  After using the FlatFileSink recently, I noticed a few problems with it.  The most glaring deficiency is the lack of rolling logs.  Log files will keep growing until an adminstrator manually fixes the problem.  On active systems, this could result in huge log files that can't even be opened using standard viewers.  The other problem was more subtle and turned out to be a bug with the FlatFileSink implementation.

This article describes the RollingFileSink extension of the Logging block.  This is a custom sink that can be plugged into the Enterprise Library Logging block like the standard sinks that are included.  The FlatFileSink shipped with EntLib 1.0 may not be adequate for enterprise systems since log files by default will continue to grow unchecked.  This new sink provides support for rolling over log files based on time or file size.

Even if you don’t need log rollover capabilities, the new sink fixes two bugs in the FlatFileSink.  Additional details about the specific fixes can be found at the end of this article.

Download the latest source code for the new RollingFileSink here.


Configuration
The sink creates a new log file when the current file exceeds defined thresholds.  The RollingFileSink provides file age and file size thresholds that can be configured using the Enterprise Library configuration tool like any other sink.

The RollingFileSink has the following properties• Header - optional•BR>• Footer - optional
• MaximumLogFilesBeforePurge - option•l
• Timestamp –ormat – yyyy-MM-dd [hh:mm t] - opti•nal
• Age Threshold - in•eger
• –Age Unit – Minutes, Hours, Days, Weeks,•Months
• Byt– Threshold • integer
•&n–sp;Byte Unit – KB, MB, GB


Design
The RollingFileSink uses a database-style log rollover process.  All new log entries are written to the file defined in the BaseFilename property.  Before a log is written, the sink checks to see if the file has grown too big or the time limit has expired.  If the current log file exceeds the size or age threshold, then the log file is renamed with the current timestamp or an incremental counter.  The new file is created with the same name defined in BaseFilename.

File Age Threshold
The age threshold allows you to limit the growth of your log files according to age.  The threshold is compared by evaluating the current date/time against the log file creation date/time.  For example, if the log file was created on 1/1/2000 at 3PM and the age threshold was set to 2 days, a new log file will be created on 1/3/2000 at 3PM.

There are two properties that control the age thre–hold behavior – AgeThreshold and AgeUnit.  Select the appropriate –nit size first – Minutes, Hours, Days, Weeks or Months - by setting the AgeUnit property.  Set the AgeThreshold property to zero to disable the age threshold check. 

File Size Threshold
In addition to age threshold, you can limit log file growth based on file size. 
There are two properties that control the age th–eshold behavior – ByteThreshold and ByteUnit.  Select the appropriate unit size first - Kilobytes, Megabytes or Gigabytes - by setting the ByteUnit property.  Set the ByteThreshold property to zero to disable the file size threshold check. 

Combo
Both the age and size thresholds can be applied at the same time.  For example, logs can be configured to rollover every week or earlier if the file grows over 10MB.  To accomplish this, set the AgeUnit to Weeks, AgeThreshold to 1, ByteUnit to Megabytes and ByteThreshold to 10.

Filename Formatting
When log file exceeds the defined thresholds, it is given a new unique name. 
The TimestampFormat property can be used to define a date-time format string used for generating new file names.  This allows overgrown log files to be renamed and stamped with the current timestamp.

The timestamp is appended to the end of the new filename, before the extension.  If the new filename is already exists, then an incremental counter is added until a unique combination is found.  If the TimestampFormat property is left blank, the counter will always be appended to the end of the BaseFilename.  The counter is formatted to 7 digits (mybase-0000123.log) and counting begins from 1.
 
Usage
In order to use the new sink, you must compile and copy the binaries into the same directory as the configuration tool.  There are two files that need to be copied - Avanade.Baz.Logging.Sinks.dll and Avanade.Baz.Logging.Sinks.Configuration.Design.dll.  When these files are in the same directory, they will be registered during the startup of the tool.  This will allow you to add a new Rolling File Sink from the right-click context menu on the Sinks collection node.


FlatFileSink Bug Fixes
There is a serious bug in the FlatFileSink that causes data loss in multithreaded applications.  The lock in the main WriteToFile method needs to be called earli–r in the process – before the file is opened.  This results in contention errors that get logged in the event log.  The RollingFileSink does not inherit from the FlatFileSink and has corrected this bug.

This new sink also fixes another bug in the FlatFileSink.  If you have tried using the FlatFileSink from ASP.NET you will notice that the sink tries to write to c:\windows\system32.  The workaround with the FlatFileSink is to specify a full path instead of just a filename.  The RollingFileSink correctly appends the base directory of the current AppDomain and resolves this issue.

Purging
Log files can be automatically deleted after a certain amount by setting the MaximumLogFilesBeforePurge property.  Set this property to 0 to disable automatic purging.  Purging occurs before the current log file is renamed.

Test Driven

The RollingFileSink includes a full set of unit tests and was built using test-driven development techniques.  Before extending this sink (or any Enterprise Library code for that matter), ensure that all of the unit tests are executing properly.

Unfinished Business
There are a few areas of the RollingFileSink that are incomplete.  The code has the various strings and messages hard-coded and does not use the string resource tool.  Code comments are also missing and FxCop has not been run.  There are also no unit tests for the design-time node.

Please download the source and take a look through.  Post your feedback and other improvements.

Samstag, Februar 12, 2005

Ist Baz eine Maschine?

Ist schon interessant, Baz blogged jeden Tag min. 1 Artikel. Eine sehr gute Quelle zur Enterprise Library. Baz-Blog enthält viele gute Einstiegs-Sample zur Enterprise Lib, schaut euch das mal an. Ob Baz eine Maschine ist? http://blog.hishambaz.com/

Dienstag, Februar 08, 2005

Enterprise Library Caching/ExtendedFormatTime

Also die Library ist grundsätzlich gut dokumentiert, allerdings der Teil mit den ExtendedFormatTime ist mies. Naja also wenn ich das richtig verstanden habe (im Quellcode der Lib mal etwas genauer beleuchtet), dann ist es aber doch verständlich. Der ExtendedFormatTime-Provider bekommt immer einen String der 5 "Parameter" enthält.

Parameter:

  1. Minute/minute
  2. Stunde/hour
  3. Tag/Day
  4. Monat/month
  5. Tag des Monats/day of month

OK, was heißt das nun?

Naja das einfachste, ist auch im Quickstart verwendet ist:
new ExtendedFormatTime("0 0 * * *")
In dem Beispiel sind die Parameter Minute und Stunde mit "0" Belegt und die anderen mit dem Stern, ergo läuft anschließend das CacheItem jeden Tag des Monats, jeden Monat, jeden Tag um 0:00 ab. Einfach gesagt, um 0:00 ist das Item aus dem Cache entfernt worden.
Das das nicht dokumentiert ist, ist sehr schade.

Aber das Caching geht noch weiter.

Das obere Beispiel mal adaptiert:
new
ExtendedFormatTime("0 0,12 * * *")
Das bedeutet nun, dass das Item immer um 0 Uhr und um 12 Uhr entfernt wird. eigentlich einfach.  

Der String muss immer 5 Parameter haben, sonst gibt es eine ConfigurationException. Der 5. Parameter muss als Text (Culture-Specific) angegeben werden. z.B. Montag für Deutsch oder Monday für Englisch, dabei wird die UICulture verwendet.   So, ich hoffe das hilft ein wenig weiter, wenn nicht, dann schreibt einfach.

Kollegen bloggen los

2 meiner Kollegen in Darmstadt haben nun auch ein blog und schreiben kräftig Einträge, respekt. Wer viele interessante Stories lesen will, manchmal auch sehr witziges ;), findet den blog hier. http://blog.codespace.de/ Ich wünsche den zwei ganz viel Spass dabei.

Interessanter Artikel zu Sharepoint Webservices

Guten Tag, langer Zeit mal wieder bisschen was neues von mir. Ich habe gerade einen interessanten Artikel in einem Sharepoint-Blog gefudnen. Bei C-Sharpcorner hat Klaus Salchner einen schönen Artikel zu dem Thema geschrieben. Der Orginal Blog Artikel: C-SharpCorner: Talk to SharePoint Through Its Web Services by Klaus Salchner Der Link bei C-Sharpcorner: http://www.c-sharpcorner.com/Code/2004/Dec/SharePointWS.asp Gurß, Jan