Le blog de Arnaud Weil où l'on parle technique (.NET Framework 4, WPF, Silverlight 4, ASP.NET, WCF, Windows Forms, Web Service, WF, Volta)
24 novembre 2009
Détecter une perte du serveur avec la classe Socket
Je précise que je suis en Framework 2.0 ou 3.5. En Silverlight OOB, on a un événement pour gérer la connexion/déconnexion.
TCP établissant un lien permanent entre le client et le serveur, on peut être prévenu dès que ce lien tombe. Malheureusement il n'y a pas d'événement pour ça sur les classes Socket ou TcpClient. Voici en cadeau une classe qui déclenche un événement dès que le serveur ou la connexion tombent:
public class ClientLinkDetector
{
public event EventHandler ConnectionLost;
public ClientLinkDetector()
{
ConnectToServer();
}
SocketError receiveError;
private void ConnectToServer()
{
IPEndPoint serverIp = new IPEndPoint(IPAddress.Any, 1256);
Socket s = new Socket(serverIp.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
s.Connect("ici l'adresse IP du serveur", 1256);
byte[] buffer = new byte[100];
s.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, out receiveError, RemovePassiveSocketCallback, s);
}
private void RemovePassiveSocketCallback(IAsyncResult result)
{
Socket socket = (Socket)result.AsyncState;
OnConnectionLost();
}
protected virtual void OnConnectionLost()
{
if (ConnectionLost != null)
{
ConnectionLost(this, EventArgs.Empty);
}
}
}
18 novembre 2009
Silverlight 4 est là, Windows Azure arrive
C’est l’une des annonces de la PDC aujourd’hui. Silverlight 4 est disponible en version Beta. Et accrochez-vous, il y a du bon, du solide, du très attendu:
- prise en charge de l’impression (YES!!!)
- prise en charge de la WebCam et du microphone
mais aussi des features que l’on pouvait attendre car elles sont dans WPF depuis le début:
- styles implicites
- commandes (pour faire du MVVM notamment)
- une vue design utilisable dans Visual Studio 2010
et enfin des OVNI
- applications OOB en confiance totale (full trust) (WPF risque d’en mourir)
- partage d’assemblies entre du .NET Framework et Silverlight (ça évitera les magouilles)
D’autres annonces dans la foulée:
- un renommage d’ADO.NET Data Services (ex-Astoria) en WCF Data Services
- un renommage de .NET RIA Services en WCF RIA Services
La bonne nouvelle dans le lot, c’est donc que RIA Services est une technologie pérenne, ce que rien ne garantissait jusque là. Et comme .NET WCF RIA Services c’est un superbe outil pour développer des applications de gestion Silverlight connectées aux données, ça me fait bien plaisir.
14 novembre 2009
Demonstration Silverlight LOB 3D
Pour ma démonstration de mardi chez Microsoft, je vais créer en 30 minutes et sous vos yeux l’application Silverlight décrite ci-dessous. N’hésitez pas à venir, la conférence est gratuite et il y aura d’autres sessions intéressantes.
Si vous voulez faire tourner l’application, elle est en ligne ici. En voici quelques copies d’écran:
Comme vous pouvez le voir, il s’agit d’une application LOB médicale. Pour passer du mode “Détails” au mode “Modifier”, on a un effet de rotation du panneau principal en 3D. La liste des patients tourne aussi en 3D pour se coller sur le côté et prendre moins de place.
Quelques détails intéressants:
- a tout moment, on peut cliquer sur un nouveau patient dans la liste pour voir ses détails ou le modifier, même lorsque la liste est sur le côté;
- toute modification du nom ou de l’âge est immédiatement répercutée dans la liste de gauche;
- les données proviennent d’une vraie classe métier écrite en C#;
- l’application est redimensionnable.
Alors rendez-vous mardi 17 novembre à 17h.