T'as pas tout vu en .NET !!! :-)

Aller au contenu | Aller au menu | Aller à la recherche

mercredi, mars 18 2009

Que faire lorsque gem cleanup échoue ?

Il arrive que parfois gem refuse d'effectuer un cleanup ... Par exemple, il ne retrouve plus les packages (super vieux). Voici une petite procédure pour nettoyer le package qui bloque le cleanup

Miko:~ titi$ sudo gem cleanup

==> echoue !

Miko:~ titi$ sudo gem list -d sqlite3-ruby

*** LOCAL GEMS ***

sqlite3-ruby (1.2.4)
    Author: Jamis Buck
    Homepage: http://sqlite-ruby.rubyforge.org/sqlite3
    Installed at: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

    SQLite3/Ruby is a module to allow Ruby scripts to interface with a
    SQLite3 database.

==> On récupère le chemin de la version que l'on souhaite supprimer

Miko:~ titi$ sudo gem uninstall --install-dir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 sqlite3-ruby

==> Le package n'est plus :-)

Bon rails 2.3.2 !

mardi, mars 17 2009

Un petit contrôle pour la navigation sous Silverlight 2

Description

Voici un petit exemple de ce qu'il est possible de faire simplement pour pouvoir changer de fenêtre sans problème. Pour ce faire, il faut créer un contrôle qui sera utilisé en conteneur de UserControl. Cet exemple comporte également un petit helper permettant de naviguer simplement.

Lire la suite...

mardi, mars 3 2009

Création d'un système de notification en Ajax (microsoft)

Introduction

Je vais vous présenter ici un petit mécanisme de notification passant par un webservice. A interval régulier, le client via Javascript va demander au webservice une information. Nous utiliserons ici le framework Ajax de Microsoft.

Lire la suite...

dimanche, décembre 14 2008

Custom View en ASP.NET MVC Bêta

Il est possible avec certains framework MVC du marché de créer des vues optimisées pour un browser. Prenons par exemple le cas de Ruby on Rails et du support de l'iphone (expliqué sur ce post). Mais qu'en est-il de cette fonctionnalité sous ASP.NET MVC ?

Lire la suite...

dimanche, décembre 7 2008

Custom Model binder en ASP.NET MVC Beta

Après plusieurs semaines sans Internet à domicile, me revoici en ligne avec le reste du monde ;-).. J'en profite pour publier un article sur la gestion des "Binders" en ASP.NET MVC.

Lire la suite...

mardi, octobre 14 2008

Silverlight 2.0 released

Après un an de développement, la version 2.0 est enfin disponible. Vous trouverez plus d'informations via ce lien.

lundi, août 11 2008

.Net Framework 3.5 SP1 and Visual Studio 2008 SP1 disponible !

Oyé oyé !!! Le sp1 est disponible ;-). Tous à vos download !

lien !

jeudi, juillet 17 2008

ASP.NET MVC Preview 4 : Support d'ajax

Depuis ce 16 juillet 2008, la nouvelle version d'ASP.NET MVC Preview 4 est disponible en test. Il y a quelques nouveautés intéressantes .... Je passerai ici les actions disponible pour l'authentification... En effet, il était possible de le réaliser simplement via l'attribut ActionFilterAttribute dont je vous ai parlé il y a quelques temps ...
Les sujets de ce soir seront l'ajout d'ajax! (Il était temps ;-)) et les changements pour l'attribut ActionFilter.

Lire la suite...

mercredi, juillet 16 2008

Set de propriétés de contrôles asp.net en fonction du browser

Dernièrement, j'ai découvert qu'il était possible de préfixer les propriétés de contrôles en fonction du browser. Il est possible d'afficher un texte différent dans une page ASP.NET sur un bouton en fonction du browser utilisé. Ceci ne fonctionne qu'en déclaratif dans la page aspx. La liste des browsers se trouve dans ce répertoire : C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers.
Il est important de noter que tout code c# affectant ces propriétés modifiera le comportement de tous les browsers.
Voici un petit exemple:

<asp:Button ID="Button1" runat="server"
ie:Text="Button IE" mozilla:Text="Button Mozilla"  />

dimanche, juin 29 2008

Etendre les actions / Result sur le framework ASP.NET MVC

Il est possible d'étendre simplement les actions et données renvoyées lors d'un appel vers un controller. Pour se faire, il suffit d'implémenter le comportement que l'on souhaite ajouter et de tag la méthode avec l'attribut.
  • Implémentation de la classe qui ajoutera le comportement
  • public class FiltrageAttribute : ActionFilterAttribute
    {
    public override void OnActionExecuting(
    ActionExecutingContext filterContext)
    {}
    public override void OnActionExecuted(
    ActionExecutedContext filterContext)
    {}
    public override void OnResultExecuted(
    ResultExecutedContext filterContext)
    {}
    public override void OnResultExecuting(
    ResultExecutingContext filterContext)
    {}
    }
  • Tag sur la méthode
  • public class HomeController : Controller
    {
    [FiltrageAttribute]
    public ActionResult Index()
    { return new View(); }
    }
En quelques minutes, il est possible d'ajouter un mécanisme d'authentification unifié sur une application ASP.NET MVC ou de réduire le droit d'accès sur une méthode en fonction d'un rôle utilisateur.

mardi, juin 24 2008

LINQ to SQL (detach / re attach dans un modèle N-tiers)

Lorsque l'on commence à réellement utiliser Linq to SQL, on en arrive vite à se prendre la tête sur certaines parties. Je vais vous présenter ici la problématique d'update d'un objet récupéré via différents DataContext. En effet, il n'est pas simple de faire fonctionner LINQ to SQL avec une instance de DataContext différente pour le "GET" et l' "UPDATE".

Lire la suite...

dimanche, juin 22 2008

Surcharge de thème en ASP.NET 2.0+

Vous utilisez peut-être la propriété "Theme" sur votre page comme ceci:

<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Default.aspx.cs" Inherits="_Default" Theme="Lelibre" %>

Comment surcharger certaines propriétés CSS d'un contrôle sur une page ? Il existe à ma connaissance deux approches.
  • Désactivation du thème sur le contrôle
  • Le contrôle qui a sa propriété "EnableTheme" à "false" ne sera pas rendu en utilisant les skin disponibles sur le site web.
    
    <asp:Label runat="server" ID="label" Text="Hello world !" 
    EnableTheming="false" ForeColor="Red" />
    
    
  • Utilisation de la propriété "StylesheetTheme" en lieu et place de "Theme"
  • L'utilisation de "StylesheetTheme" offre au développeur la possibilité de surcharger certaines propriétés du thème via code / propriétés. Si nous spécifions une couleur "Red" à la propriété "ForeColor" d'un label et que dans le skin le ForeColor du label est à "Green", le rendu affichera le label en rouge et non en vert.
    
    <%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" Inherits="_Default" 
    StylesheetTheme="Lelibre" %>
    
    
    J'espère avoir pu vous aider dans la notion de surcharge de CSS en asp.Net 2.0. Si vous connaissez une autre approche, merci de le signaler ;-)

lundi, juin 16 2008

Les mystères de Equals ...

Voici un petit bout de code ....
ArrayList array = new ArrayList();
ConstructorInfo constructor = typeof(CompilerInfo).GetConstructor(
BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[0], 
null);
array.Add(constructor.Invoke(null));
object column = new object();
array.Add(column);
Console.WriteLine(array.Contains(column));
Quel est le résultat à l'écran ?
  1. Affichage de "True"
  2. Affichage de "False"
  3. Affichage de "touche pas à ça petit con ?" (Exception ...)
  4. Rien ne s'affiche

Lire la suite...

dimanche, juin 8 2008

WCF et le support des transactions distribuées

Ce petit post était prévu depuis quelques mois ... En effet, je devais mettre en place un service Web supportant WS-* (WS-Transaction, WS-Reliable) pour une assoc ... ;). Je me suis tourné vers .NET 3.5 et WCF ... Certes il est possible de jouer avec WSE et les asmx .net 2 pour arriver au même résultat mais au bout de combien d'heures ???? WCF a réellement apporté un gros plus avec sa simplicité d'implémentation. En quelques minutes j'avais mon webservice fonctionnel. Je vous présente ici un petit exemple que j'ai réalisé pour expliquer comment mettre en place un webservice comme ca ...

Lire la suite...

jeudi, juin 5 2008

Astoria (relation 1..N)

Suite à la mise à jour de Visual Studio 2008 (le SP1 en bêta) disponible depuis quelques jours, il est désormais possible d'effectuer sous une même transaction une sauvegarde de plusieurs objets liés en relation 1 à N. En effet, dans la précédente version d'astoria, il y avait un bug ;-). Voici donc la procédure de mise en place... et les points à mettre en avant lors de la migration de l'ancienne solution.

Lire la suite...

lundi, juin 2 2008

EventValidation (Vive le Web 2.0) ...

Je vais vous présenter un sujet intéressant.... J'ai pu discuter ce weekend avec un ex-collègue parisien qui est devenu spécialiste Web 2.0 ... Nous avons remarqué que certaines nouveautés d'asp.net 2.0 ajoutant de la sécurité pouvaient devenir des contraintes avec du développement javascript. Je vais donc vous résumer ce premier point.... D'autres points pourraient venir ;-).

Lire la suite...

dimanche, juin 1 2008

Bouton "GET" en ASP.NET

J'ai profité de mon voyage en TGV pour écrire ce petit post. En effet, je m'étais laissé une heure pour créer un bouton qui effectue un GET et non un POST en ASP.NET. Je montre ici une possibilité... L'autre possibilité à laquelle j'ai pensé est un hyperlink customisé en CSS ou un "<form method="get">" vide ... Pour garder un look bouton sans problème, j'ai retenu mon idée de bouton qui contient le lien dans l'attribut javascript "onclick". Si vous avez d'autres idées, je suis preneur ;-)

Lire la suite...

mardi, mai 20 2008

Mock des méthodes static ?

Ce weekend, j'ai pu lire sur le blog de Roy Osherove la possibilité de "mock" les méthodes static via un mécanisme de swap... Ce support concerne évidement TypeMock. J'esperais pouvoir rapidement lire une réponse sur le blog d'Ayende suite à ce post ... Et en effet ... une réaction pour Rhino Mocks ^_^. Mais ce qui est réellement intéressant est de comprendre si il est intéressant de pouvoir mock les méthodes static et surtout si c'est un bon design ... A mes yeux, l'utilisation des méthodes static est tout ce qu'il ne faut pas faire :). Il faut minimiser l'utilisation de ce mot clé. Mais vous ? Qu'en pensez-vous ? Votre avis m'intéresse :-)

Voici quelques liens pour alimenter le débat:

ASP.Net MVC : Ajout du support du framework prototype pour donner de la vie

Depuis quelques semaines, je lis le code d'ASP.NET MVC ... Ce qui manque cruellement dans ce framework est le support d'ajax pour faire du minitel 2.0 ;-). Un autre point qui a été relevé par mon architecte à mon taf est l'absence de contrôles de type TreeView, etc. Ce que je vais présenter ici est l'ajout du framework prototype pour ajouter le support "Ajax" aux vues. Ce post part du principe que l'on connaît le pattern MVC Web ...

Lire la suite...

mardi, mai 13 2008

Support de la session dans les Generic Handlers (petit rappel)

Dernièrement, nous avons parlé d'interface pour supporter la session dans les fichiers ashx à mon taf. J'avais signalé l'existence de deux interfaces pour le support de celle-ci mais j'avais oublié les noms de ces interfaces. J'ai profité de mon petit voyage retour de ce we pour effectuer la recherche ... ;-).
Nous avons donc deux interfaces :

Il est intéressant de signaler en rappel qu'il s'agit d'interfaces vide ... Ce que normalement FxCop n'aimerait pas ;-). Bonne soirée.

- page 2 de 7 -