Darkleo’s Blog
Ein Schatz, der seinen Besitzer überallhin begleitet.

NRW08 in Wuppertal am Fr. 12.09.2008

July 15th, 2008 by darkleo

Wieder findet die NRW0x Reihe statt, das größte regionale Community-Event für Software-Entwickler und IT-Professionals veranstaltet von der JustCommunity e.V..

NRW08 in "die boerse" Wuppertal am Fr. 12.09.2008
Auf 4 Tracks verteilt werden 24 interessante Themen vorgestellt.
Wir lernen immer wieder was Neues und das ist auch gut so, vielleicht trifft man sich dort ;-)

Weitere Infos:  http://www.nrw08.de/

Posted in .NET, Allgemein, Community, Fun | No Comments »

Binding als Klasse und als Kurzschreibweise

July 10th, 2008 by darkleo

Wir haben die Möglichkeit auf Zweiweisen das Binding zu beschreiben:

Explizit Innerhalb des Contents des Buttons:
<
Button Name="button" Content="OK">

 
<Button.Background>

   
<Binding ElementName="control" Path="Background" />

 
</Button.Background>

</Button>

In kürzerer Schreibweise sieht es so aus

In Kurzform in den Attributen der Klasse Button:
<
Button Name="button" Content="OK"
Background="{Binding ElementName=control, Path=Background}" />
 

Das Ergebnis der beiden ist Equvivalent.

Posted in .NET, WPF, XAML | No Comments »

.NET User Group Dortmund “Do.NET” 11.06 ab 18:00

June 3rd, 2008 by darkleo

Die Dodnedder, die .NET-Community der Metropolregion Dortmund, treffen sich erneut am 11.06. ab 18:00 Uhr. Es geht um das Thema .NET Framework(WCF), es gibt einige neue Demos zu sehen und auch etwas zu gewinnen. Und natürlich eine Menge kompetenter Fachgespräche.

Das Thema ist der produktive Einsatz der Windows Communication Foundation. Planen Sie WCF produktiv einzusetzen? Sind Sie vielleicht schon bei der Umsetzung und haben sich „halb-tot konfiguriert"? Daniel Fisher und Michael Willers geben wertvolle Tipps und Tricks aus 2 Jahren Ihrer praktischer Erfahrung mit der Technologie in Projekten und plaudern über die Interna der universellen Kommunikationsinfrastruktur der Windows-Plattform.

Die Sprecher sind Daniel Fisher und Michael Willers, diese haben Europaweit Vorträge auf Konferenzen zu .NET Themen gehalten und sind die Gründer des Unternehmens devcoach®.

Kostenlose Anmeldung: XING Termin
Weitere Infos: http://www.do-dotnet.de

Posted in User Group | No Comments »

ASP.NET Monitoring

April 29th, 2008 by darkleo

Wäre es nicht einfach Klasse eigene ASP.NET Anwendungem im Detail in Echtzeit zu monitoren?
Mit monitoren ist gemeint, zu sehen wie performant die Anwendung ist (beobachten) um bei Problemen in das System eingreifen zu können (reagieren).

Ich stelle dieses Framework zum Testen zur Verfügung.

Funktionsweise:
Metricsobjekte: Sammeln von Informationen über das Verhalten von ASP.NET Application.
Storeobjekte sind in Metrics instanziert und bilden die Speicher- und Ladeschicht.
Stateinstanzen prüfen ob Performanceprobleme im System vorhanden sind, Reaktionen darauf muss jeder selbst (web.config) einstellen oder ausprogrammieren.
Dafür gibt es Responder/Container oder auch die direkte Ansprache des Providers oder des Module-interfaces.
IPerformanceProvider ist das FacadenInterface über welches das Do.NET Pla Framework angesprochen werden kann.

Wieso habe ich das erwähnt? Weiß ich selbst nicht!
Es sind Interfaces die jeder selbst implementieren kann aber nicht muss, denn das Framework hat schon eine eigene ProviderGruppe: "PerformanceCounter".
Zum Reagieren gibt es den ResponderDefault der einfach eine Exception wirft.

Das Framework wird über ein HttpModul angeschlossen.

<httpModules>
<add name="PlaModule" type="Do.NET.Pla.PlaModule, Do.NET.Pla"/>

Und die Provider müssen bekannt gegeben werden.

<section name="performanceConfiguration" type="Do.NET.Pla.Configuration.PerformanceConfiguration"/>


<performanceConfiguration enabled="true" providerGroup="PerformanceCounter oder Custom" applicationName ="Portal.Pla">
</performanceConfiguration>

pc.png Für Reaktionsmöglichkeiten per Web.config
<add name="_default.*"
enabled="true"
isCriticalPerformance="true"
criticalResponder="PlaWeb.Extend.RedirectResponder, PlaWeb.Extend, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
description="Wartungsarbeiten von 2008-2009"
freezeStartDate="01.01.2008 00:00"
freezeEndDate="01.01.2009 00:00"
any="sonstige parameter optional"/>
<!--
criticalResponder="Do.NET.Pla.PerformanceCriticalResponderDefault"-->

"_default.*" gibt an, dass die _default.* Seite in allen Contexten überprüft werden soll und bei Eingabe von isCriticalPerformance==true die Reaktionsinstanz erzeugen soll.

Die Custom Responder Klasse sieht so aus:

public class RedirectResponder : PerformanceCriticalResponderBase
{
public override void CallBackCriticalPerformance(object sender, EventArgs e)
{
IPerformanceState state = (IPerformanceState)sender;
HttpContext.Current.Session["_lasterror"] = state;
HttpContext.Current.Response.Redirect("~/Error.aspx", true);//endresponse
}
}

et voila

Würde mich freuen, wenn jemand Feedback gibt ob es Probleme gibt.

Im Sample ist der StateProvider auf die Web.config -> WebService-Klasse angesetzt. Somit können die Seiten zusätzlich zur web.config über einen WebService gesteuert werden. (z.b. ab* für About.None oder alle Seiten die mit ab anfangen.)

[Vortragsfolien] [Sample Project]

Happy monitoring!!!

Posted in .NET, ASP.NET, C#, Frameworks | No Comments »

ASP.NET Anzahl der Benutzer auf der Seite ausgeben.

April 23rd, 2008 by darkleo

do-dotnet-80x25.jpgHab versucht die Anzahl der Benutzer auf der Seite festzustellen und habe nichts passendes gefunden. Wie immer, wenn etwas nicht da ist, wird versucht sich selbst am Schnellsten und Besten zu helfen :)

Wäre auch klasse wenn ich nicht unbedingt auf der MasterPage Code verteile, also machen wir uns ein cooles HttpModule welches und auf die Frage "wieviele Benutzer sind auf der ASP.NET Webseite?" eine Antwort liefert.

Label1.Text = string.Format("Es sind {0} Benutzer auf der Webseite.",
                                     Do.NET.Web.
CurrentUserModule.Count);

So binden wir das HttpModule zu unserer Webseite an und damit ist es schon Verfügbar.
<httpModules>
   <add name="CurrentUserModule" type="Do.NET.Web.CurrentUserModule, Do.NET.Web"/>
</httpModules>

 Funktioniert nur wenn Session eingeschaltet ist, da das HttpModule sich an den Sessions orientiert.
Beispiel Session Config:
<system.web>
    <sessionState mode="InProc" cookieless="UseUri" timeout="30"/>

Wie mit Hilfe von HttpModulen die gesamte ASP.NET Webapplication in Echtzeit gemonitort werden kann, wird auf dem .NET User Group Dortmund "Do.Net" Treffen am 25.04.08 vorgestellt.  Mit Monitoring ist überwachen und reagieren gemeint .

Weitere Infos dazu auf www.do-dotnet.de.

Download donetweb Solution
currentusermodule.cs

Ein anderer Ansatz mit MembershipProvidern wird hier beschrieben: http://aspnet.4guysfromrolla.com/articles/041608-1.aspx

Posted in .NET, ASP.NET | No Comments »

Afterlaunch war letzte Woche, nächste Woche .NET User Group Dortmund :)

April 14th, 2008 by darkleo

Der Tag verging,
und halb betrunken
ist Saltan ins Bett gesunken ...
Ich war dort, trank Met und Bier,
naß ward nur der Schnauzbart mir.
[Puschkin]

Die Afterlaunch Veranstaltung ist sehr interessant gewesen, vor allem auch das Thema "Visual Studio 2008 - Tipps und Tricks für die Praxis"von Roland Weigelt von der User Group Bonn www.bonn-to-code.net.

Auf der .NET User Group Dortmund findet auch ein Vortrag über "Tipps und Tricks in Visual Studio 2008" statt, wer afterlaunch verpasst hat, kann sich auf Do-DotNet.de Webseite für das Treffen am 25.04 anmelden und für alle die da waren, es findet eine vertiefung in die Tipps und Tricks statt also Anmelden lohnt sich. :)

Die Teilnahme an den Treffen ist kostenlos, es gibt auch keine formale Mitgliedschaft.

Weitere Information findet ihr hier: http://www.do-dotnet.de

Posted in .NET, User Group, VisualStudio | No Comments »

Das nächste Treffen der Dortmunder User Group Do-DotNet

April 10th, 2008 by darkleo

wb_preview.jpgEs gibt das nächste Treffen im April (Fr. 25.04.2008 18-20 Uhr) einfach formlos über www.do-dotnet.de anmelden.

Die geplanten Themen:

  • Tipps und Tricks rund um das Visual Studio 
    Es werden die kleinen und versteckten Helfer in Visual Studio zu schnellerem Arbeiten vorgestellt.
  • ASP .NET Monitoring
    Paul Mizel zeigt wie es durch PerformanceCounter möglich ist eigene WebAnwendungen zu Monitoren.
  • Danach gibt es eine Überraschung :)

Die Teilnahme an den Treffen ist kostenlos, es gibt auch keine formale Mitgliedschaft.

Posted in .NET, User Group, VisualStudio | No Comments »

WCSF - PageFlow Suspend and Resume by UserID

April 1st, 2008 by darkleo

Die Aufgabe ist es die Arbeitsabläufe zu speichern um später weiter zu arbeiten und vielleicht auch weiter zu delegieren.

Wir speichern jeden Vorgang mit dem Benutzernamen ab dazu erstellen wir UserCorrelationTokenProvider was wir später über die Web.config noch bekannt geben werden.

public class UserCorrelationTokenProvider :
 
IPageFlowCorrelationTokenProvider
{
public string GetCorrelationToken()
{
return HttpContext.Current.User.Identity.Name;}
}

Eine Procedure für die Ausgabe aller Instancen mit der UserID als Parameter:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE PROCEDURE [dbo].[pageFlow_GetAllInstanceByCorrelationToken]
@correlationToken NVARCHAR(256)
AS
BEGIN
SELECT * FROM  dbo.pageFlow_InstanceStore WHERE
CorrelationToken = @correlationToken
END
GO

Zugriff auf die Procedure:

public List<PageFlowInstanceItem> GetInstancesList()
{
List<PageFlowInstanceItem> result = new List<PageFlowInstanceItem>();
using (SqlConnection conn = new SqlConnection(
@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=
WCSF_QuickStart;Data Source=.\SQLExpress"
))
{
 using (SqlCommand command = new SqlCommand("pageFlow_GetAllInstanceByCorrelationToken", conn))
 {
  command.CommandType =
CommandType.StoredProcedure;
  SqlParameter IdIn = command.Parameters.Add("@correlationToken", SqlDbType.VarChar, 255);
  IdIn.Direction =
ParameterDirection.Input;
  IdIn.Value =
HttpContext.Current.User.Identity.Name;
  conn.Open();
  using (SqlDataReader reader = command.ExecuteReader())
  {
   while (reader.Read())
   {
    result.Add(
new PageFlowInstanceItem(
    "Beschreibung",
    reader[
"InstanceID"].ToString(),
    reader[
"Type"].ToString()));
   }
  }
 }
}
return result;
}

Hiermit ist es möglich die Liste der PageFlows zu lesen, jetzt nur noch aufwecken
IPageFlow flow = PageFlowDirectory.Provider.GetPageFlow(instanceID);
flow.Resume();
flow.RedirectToCurrentPage();

Fertig.

WCSF: www.codeplex.com/websf

Posted in .NET, ASP.NET, C#, WCSF | No Comments »

Generic Constraints

March 20th, 2008 by darkleo

Heute habe ich mit mehrfachen Generics(public class MyGeneric<A,B,C>) gekämpft. Hab versucht verschiedene Constraints an verschiedene Typen zu setzten, g**glen war auch nicht einfach, hier ist die Lösung dazu:

public class MyGeneric<A,B,C,D,P>: GenericInterfaceImpl<A>,IGenericInterface<B>
where A : class
where B : IComparable 
where C : class, new()
where D : struct
where P : ProviderBase
{
//code
}

Posted in .NET, C#, Generics | No Comments »

Icons für eigene Anwendungen

February 18th, 2008 by darkleo

Kennt Ihr das Problem eigene Icons für Anwendungen zu erstellen?
Jedes mal muss ich persönlich nach Icons suchen oder immer wieder eigene erstellen.

hier ist eine schöne Sammlung von Icons.

http://www.famfamfam.com/lab/icons/

Weitere Icon-Links werden hoffentlich folgen.
http://www.crystalxp.net

Posted in Allgemein, Softwareentwicklung | No Comments »

« Previous Entries