vendredi 20 mai 2016

Visual Studio 2013 Update 5 - Les Templates ont disparu

Vous venez d'installer ou de réinstaller Visual Studio 2013 et vous êtes déjà obsolète... De toutes les façons vous n'avez pas les bons Templates, vous souhaitez utiliser les templates ASP.NET MVC 4 ou ASP.NET MVC 5 mais vous ne les trouvez plus, alors que faire ?

Visual Studio Templates ASP.NET MVC 4
Vous cherchez en ligne, vous trouvez des Templates de types "ASP.NET" mais vous savez pertinemment que ce n'est pas cela qu'il faut installer.
C'est la jungle
Cherchez alors plutôt : Visual Studio 2013 Update et MSDN vous proposera le bon truc à installer : Visual Studio 2013 Update 5


On trouve de la doc sur Update 4
Au moment de cliquer pour télécharger, vous trouvez Update 5... Bref c'est très mal fait, on est bien d'accord mais l'important c'est de se sortir de ce mauvais pas alors on continue.
Visual Studio 2013 Update 5
Espérons que l'on ne va pas retomber dans l'Enfer du DotNET

Installation de Visual Studio Update 5 pour Visual Studio 2013
Une fois ce Visual  Studio Update 5 d'installé, vous retrouvez vos Templates dans Visual Studio.

Have fun!

lundi 9 mai 2016

Connexion impossible au serveur Web de développement configuré.

Encore une erreur du serveur IIS (Internet Inforamtion Service), impossible de connecter le serveur Web configuré ! Accès refusé ! Encore une bien belle salo(bip) d'IIS ! Error description: Accès refusé. (0x80070005).

Un petit "Systray", et pourquoi pas, allez allons-y de toutes les façons nous n'avons pas le choix il va bien falloir lui tordre le coup à cette nouvelle salo(bip) d'IIS :

Notification IIS Express - Une ou plusieurs erreurs se sont produites lors de l'exécution d'IIS Express.
Tu m'étonnes, c'est catastrophique toutes ces versions d'IIS (Vous rappelez-vous Cassini la version Debug d'IIS ? Dédiée au développement et tous les problèmes qui en résultaient par la suite lors du déploiement derrière "un vrai serveur IIS"). A chaque fois, Visual Studio se prend les pieds dans le tapis.

C'est comme avant quand il fallait aller relancer IIS à la main, faire un stop puis redémarrer. Vous vous rappelez c'était le "Redémarrer IIS" ça c'était il y a longtemps. Mais aujourd'hui... ben c'est pas mieux ! Moins d'erreur certes mais quand vous avez une erreur... Elle est plus tordue encore.

En cliquant sur le Systray, s'il ne vous a pas échappé, vous obtenez la boite suivante :

En cliquant sur le Systray
Suivi d'une belle boite de dialogues bien pourrie comme on les aime :

Ajouter une légende
Connexion impossible au serveur Web de développement, configuré. Error description: Accès refusé. (0x80070005).

Recherche de la solution

Essayons de modifier le serveur Web de développement... Oh la la pffffff ras le bol vraiment !

Et oui avec Visual Studio 2013, il y a deux articles dans le menu, créer Nouveau projet, créer Nouveau site Web ... :

Visual Studio 2013 - Nouveau site Web...
Oh la la quelle mer(bip)...

Visual Studio 2013 - Créer un nouveau site Web
En cliquant sur parcourir, c'est quoi cette boite de dialogue, elle n'est pas toute pourrie celle là aussi ? :

Visual Studio 2013 - Emplacement pour site Web
Et nous y voilà, voilà pourquoi Visual Studio se plante comme un me(bip), vous essayez de créer un site Web qui existe déjà. Supprimez le site Web déjà existant... Et puis vous recommencez tout. 

Parfois, je me dis que les ingé qui travaillent avec LAMP et qui voient tout cela, doivent bien rigoler...

De la littérature Ici :
http://stackoverflow.com/questions/23502327/unable-to-launch-the-iis-express-web-server-failed-to-register-url-access-is-d

C'est incroyable le nombre de bêtises qui traînent sur Internet, surtout concernant IIS. Ils ont raison les gas de Stackoverflow, ils préconisent les solutions qu'ils ont trouvées dans MSDN mais ce n'est pas pour autant que c'est LA Solution.

Solution

Souvent la solution est plus simple...

Au feeling : cette cocho(bip) de couple infernal Visual Studio et Serveur IIS se prend les pieds dans le tapis, un truc qui devait être supprimé ne l'a pas été.

Résolution - Connexion impossible au serveur Web Accès refusé. (0x80070005)
1 : Sélectionnez le site incriminé
2 : Supprimez le Web Site si si n'ayons pas peur
3 : Allez rechercher le Site Web que vous souhaitez déboguer, puis ouvrez

Lancez le débogue dans Visual Studio, ça refonctionne !
Au passage vous aurez remarqué que VS a recréé une nouvelle solution .sln que le port incriminé a été supprimé puis recréé... 

Bref, Visual Studio a arrêté de se prendre les pieds dans le tapis...

Si vous êtes arrivé jusqu'ici, je pense que je vous ai rendu service ;-) alors consultez la page "AdBlock" et faites le nécessaire... mais surtout, surtout n'oubliez pas :

Have fun !

vendredi 22 avril 2016

ASP.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1 - l'enfer du DotNET

Vous comprenez toutes ces versions du .NET Framework ? Moi pas encore. Alors essayons de découvrir ce qu'il se cache derrière tout ça.

https://msdn.microsoft.com/fr-fr/library/w0x726c2(v=vs.110).aspx
.NET Framework 4.6 et 4.5

http://getdotnet.azurewebsites.net/target-dotnet-platforms.html
A lire absolument, les versions du DotNET sont associées et expliquées avec celles de Visual Studio.

Problème et symptômes

Depuis peu j'ai des soucis avec mon Visual Studio 2013 et la mise à jour Service Pack 4. Je désinstalle les mises à jour, le SP4. Je réinstalle mon Visual Studio 2013 à partir du DVD d'installe.

Et boom !
ASP.NET 4.5 n'est pas enregistré sur le serveur Web.
Je tente un coups de :
C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i puis avec l'option -ir.

Rien n'y fait ! Entre temps, je pense que les mise à jours de Windows avaient installées le Framework 4.6.1 et que mon Visual Studio 2013 n'est pas compatible avec cette version sans le SP4 !

Bienvenu dans l'enfer du DotNET !

Recherche d'une solution

Je regarde dans les programme installé, j'ai le Framework 4.5.2 :

Les différentes version du framework .NET, c'est lenfer !
Ah bon le 4.5.2 ? Moi je croyais que j'étais resté au 4.5... bref ça ne marche pas !

Sur cette machine, il y a aussi le 4.6.1 d'installé :

Framework 4.6.1
Je ne me dégonfle pas, je vire tout ça !
Par curiosité, je regarde dans le répertoire C:\Windows\Microsoft.NET\Framework\v4.0.30319,

Voici ce que j'y vois :

Framework 4.0.30319
Après ces désinstallations successives, je pensais que j'allais retrouver un FrameWork 4.5 ou 4.5.1 mais quand je vois le tête du répertoire 4.0.30319, une chose est sûr, ça va beaucoup moins bien marché maintenant ;-)

Pendant ce temps, évidemment, mon processus de mise à jour Windows Update est dans les choux complet depuis quelques heures...

Je pars chercher une solution et je reviens ...

Un peu de littérature :
https://blogs.msdn.microsoft.com/dotnet/2015/12/09/support-ending-for-the-net-framework-4-4-5-and-4-5-1/

Ça déprime un peu ! Ça pique même un peu également. Je crois que je vais choisir un des liens d'installation du 4.5.2 qui m'à l'air d'être supporté... par Windows et par Visual Studio à la fois.

https://www.microsoft.com/fr-FR/download/confirmation.aspx?id=42642
Installation de Microsoft.NET Framework 4.5.2

Bienvenu dans l'enfer du DotNET !

Allez une petite dernière pour la fin :

Mise à jour cliquez sur Oui
Voilà, malgré tout, ça fonctionne quand même, c'est du bidouillage le problème c'est que l'on a rien appris sur les différents frameworks et les différentes versions et que comme professionnel, je n'ai pas de temps à perdre avec tout ça !

Have fun!

mardi 15 mars 2016

Boucle de redirection - ERR_TOO_MANY_REDIRECTS - l'enfer du DotNET

Une fois déployée sur votre Serveur de production, votre application ASP.NET ne fonctionne pas mais alors pas du tout ! Vous avez un message "boucle de redirection" ERR_TOO_MANY_REDIRECTS dont vous n'arrivez pas à vous débarrasser. J'ai la solution !

Erreur boucle de redirection
Votre application ne répond pas correctement à la requête http et le site part en boucle !

Quel est le problème avec cette "Boucle de redirection" ?

Et c'est bien là  l'enfer du DotNET car vous avez testé en debug avec Visual Studio, vous avez déployé en local et ça fonctionne parfaitement. Mais une fois le site déployé sur le serveur de production c'est la catastrophe. Et le message d'erreur semble comme d'habitude, totalement bidon sans aucun rapport avec l'erreur réelle.

Je n'ai pas les moyens d'investigation sur le serveur, le débogueur à distance ne fonctionne pas et je ne souhaite pas l'installer cela encombrerait mon serveur.

Quelles sont les différences au niveau d'IIS ?

Sur ma machine de développement, je regarde :

Version d'IIS sur ma machine de développement
Sur le serveur, je fais la même chose :

Version d'IIS sur le serveur de développement
Il s'agit dans les deux cas d'un IIS 7.5.7600.16385 ... On dirait bien la même chose !

Donc au niveau d'IIS pas de différence !

Si quand même, a noter :
La langue est différente : Serveur de dev en Fr, Serveur de prod en Gb ... Et là solution est là !

Ce qui met la puce à l’oreille

Dans ce cas, on sait par expérience que toute la littérature du monde ne pourra pas vous être utile. Par là, on vous dit de supprimer les cookies de votre application, par ailleurs on vous indique une autre solution, toutes sont aussi farfelues. Je vais chercher pendant un certain temps. Et puis, je vais me raccrocher au message d'erreur de ma page d'erreur, c'est moi qui l'aie mise en place :
PageErreur.Aspx?msg=String+was+not+recognized+as+a+valid+DateTime.

Qu'est ce qui peut bien faire qu'une DateTime ne soit pas valide ?

Solution DateTime non valide dans le Web.config

La Culture, mais oui, c'est la culture qui rend ma DateTime non valide, je lis alors cette page :


Dans le Web.config, on peut configurer la culture du site web :

<configuration>
   <system.web>
     <globalization culture="en-GB"/>
   </system.web>
</configuration>

Me voilà avec la puce à l'oreille, je trouve une ligne un peu plus moderne à ajouter dans mon Web.config :

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto" />

Et le tour est joué ! Mon site fonctionne !

Conclusion, c'est l'enfer du .NET

Il faut bien le reconnaître ASP.NET, c'est purement l'enfer et ça depuis des années. On est passé du premier serveur IIS qui fonctionnait à peut prêt : IIS 5.0. Mais parfois les messages d'un site en rade était ... Cosmiques et surtout ne correspondaient en rien avec la solution à mettre en oeuvre. Aujourd'hui avec 7.5 et 8.0 la partie configuration est un peu plus claire, surtout depuis la réorganisation entre Pool d'Application, Site Web et Répertoire Virtuel, cela apporte de la clarté mais il traîne encore trop de vacheries qui devraient disparaître à mon sens.

Le fichier Web.config, suivant les versions, est farcie de ligne stupides sans intérêt.










mercredi 9 mars 2016

Erreur HTTP 500.23 - Internal Server Error

Encore un problème avec le serveur IIS, une application qui fonctionnait parfaitement est tombée en panne. Il faut dire que le Web.config est modifié pour un oui ou pour un non par tout un tas d'acteurs et surtout lorsque l'on change de Visual Studio ou d'IIS. Voilà le résultat :

IIS Impossible de développer de façon professionnelle
Comment expliquer à vos clients que le temps de développement de leur application dépend essentiellement de toutes les saloperies que les ingés de Redmond ont bien voulu mettre dans leur serveur IIS de daube !

Problème Erreur HTTP 500.23 - Internal Server Error

C'est vraiment génial de lire toute cette littérature ...; )

Causes les plus probables :

Cette application définit la configuration dans la section system.web/httpHandlers.

Essayer les choses suivantes :

On me dit d'essayer les choses suivantes :

Faites migrer la configuration vers la section system.webServer/handlers. Vous pouvez procéder manuellement ou en utilisant AppCmd depuis la ligne de commande. Par exemple, à partir du répertoire d'installation d'IIS Express, exécutez appcmd migrate config "Default Web Site/". L'emploi d'AppCmd pour faire migrer votre application lui permet de fonctionner en mode intégré, de continuer à fonctionner en mode classique et sur les précédentes versions d'IIS.
Si vous êtes certain que cette erreur peut être ignorée sans risque, procédez à la désactivation en définissant system.webServer/validation@validateIntegratedModeConfiguration avec la valeur False.
Une autre solution consiste à basculer l'application vers un pool d'applications en mode classique. Par exemple, à partir du répertoire d'installation d'IIS Express, exécutez appcmd set app "Default Web Site/" /applicationPool:"Clr4ClassicAppPool". Ne procédez ainsi que si vous ne pouvez pas faire migrer votre application.

Bla bla bla bla ...

Erreur HTTP 500.23 - Internal Server Error - Solution

J'avais une ligne dans mon Web.config que j'ai mise en commentaire :

    <!--<httpHandlers>
      <add verb="*" path="monster.axd" type="HttpHandlers.MonsterHandler" validate="false"/>
    </httpHandlers>-->

Voilà... c'est tout !

Je suppose que quelque chose est tombé en panne par ailleurs, en tous cas mon application fonctionne à nouveau !

Have fun ! Et surtout n'oubliez pas c'est que du Soft !

mardi 8 mars 2016

Impossible de lancer le serveur Web IIS Express

Google ne donne aucun résultat ! Et pourtant c'est bien le message que retourne l'application que j'essaye de déboguer :

Impossible de lancer le serveur Web IIS Express
Curieux rien de nouveau sous le soleil, toujours autant de problèmes ! Quelle perte de temps ...

Je ne peux pas être LE SEUL à avoir ce genre de problème !

Hommage au BlogEngine.NET sur le Codeplex et GitHub

L'étude de ce projet m'a beaucoup apportée aussi j'aimerais rendre un vibrant hommage à ce projet du CodePlex le BlogEngine.NET, en effet c’est un projet démarré en 2007 par un certain Mads Krisensen et son équipe et qui depuis n’a cessé d’évoluer avec les différents frameworks .NET et les différentes versions de Visual Studio ce qui en soit est une véritable performance.

Le BlogEngine.NET, c’est donc un fantastique projet qui n’a cessé de capitaliser sur les évolutions du développement d’application ASP.NET. Son code source C# est une véritable mine d’exemples, d’architecture (XmlProvider entre autre) et autres astuces tera fun. Un projet que l'on peut véritablement prendre en exemple.

Voici la page d'accueil de votre nouveau blog, une fois installé :

BlogEngine.NET
Voici les sources de ce projet de Blog en ASP.NET C# au sein du CodePlex :

https://blogengine.codeplex.com/
Mais comme vous le savez le CodePlex se meurt, voici donc les sources migrées sous GitHub :
 
 
N'hésitez pas à investir sur la compréhension de ce projet qui est une véritable référence dans le monde DotNET.
 
Merci de votre attention,
 


mercredi 2 mars 2016

input type=submit text multiligne

Vous cherchez à créer un bouton dont la propriété "Text" en ASP.NET ou "value" en html serait sur plusieurs lignes. Voici donc les mots clefs que j'ai entrés ce matin dans mon moteur de recherche favori pour tenter de répondre à cette question.

Je suis halluciné par la complexité du développement html, rendue encore plus complexe par les mésententes organisées des différents protagonistes du web, w3c, google, microsoft, apple et consorts. J'avais une truc qui fonctionnait très bien sous Internet Explorer.

Dans le cadre d'une interface un peu complexe je souhaitais faire un bouton cliquable dont le texte serait sur deux lignes comme suit :
Interface complexe avec boutons sur deux lignes dans Internet Explorer
Reconnaissez avec moi que l'interface est complexe et que l'information "Enchainez les questions" est plus parlante que simplement "Enchainez" ...

On voit donc ici dans IE un bouton sur deux ligne; Si j'affiche la source j'obtiens le code suivant :

<table border="0" cellpadding="5px">
<tr>
    <td valign="top" align="center">
        <input type="submit" name="ctl00$LoginView2$MenuContexte$ButtonWizardQuestionEnchainee" value="Enchainez
les Questions" id="ctl00_LoginView2_MenuContexte_ButtonWizardQuestionEnchainee" title="Ajouter plusieures Questions" class="ButtonMenuWizardStyle" />
    </td>
</tr>
</table>

Essayons maintenant la même chose dans Chrome. Je ne sais pas si vous êtes comme moi mais IE jusqu'à IE 8 était devenu un gros bouzin bien lent et bien encombrant. Je trouve que Chrome rattrape IE aujourd'hui Chrome est un gros bouzin bien gras et bien encombrant surtout depuis qu'il veut absoluement vous connecter avec un compte pour voler toutes vos infos personnelles age sexe téléphone et pourquoi pas carte bancaire ...

Bref voici le résultat :

Chrome ne sait pas afficher un bouton dont le texte est sur deux lignes !
C'est tout pourri et pourtant l'html est exactement le même avec l'attribut value du intput type="submit" à :

"Enchainez
les Questions"

Et pourtant cette saloperie de Chrome n'affiche le bouton que sur une ligne ! Oui oui je dis bien saloperie de Chrome parce que je les soupçonne de l'avoir fait exprès !

Pensez vous qu'il est possible d'afficher un  bouton dont le texte est sur deux lignes dans chrome ? Pour moi après avoir parcourue les pages suivantes :

Ici vous pouvez écrire votre html pour tester le résultat

Ici on vous explique qu'il faut utiliser un textarea et ce n'est pas la bonne réponse

Là on vous explique qu'en ajoutant : "&#13;&#10;" dans la chaine value vous obtiendrez le résultat escompté mais c'est faux ! Cela ne fonctionne pas ! Aucune de ces solutions ne fonctionnent avec Chrome !

Chienlit !







mardi 23 février 2016

ASP.NET Configuration Error - Server Error in '/' Application

Vous cherchez à installer un Site Web sur un serveur IIS. A l'exécution de votre nouveau Site Web vous obtenez des erreurs, et ça continue, des erreurs encore et encore. Cette fois, j'ai installé parfaitement mon application sur Windows 7 Pro avec IIS 7.5, elle tourne ! Voici que je tente de faire exactement la même chose sous Windows 2008 R2 avec IIS 7.5 et voici ce superbe résultat :

IIS 7.5 des erreurs encore des erreurs que des erreurs
<httpRuntime maxRequestLength="104857600" />

Cette erreur n'est même pas dans le Web.config de mon application ! Il faut aller voir dans le Web.config du Framework 2.0. Je m'exécute, je vais dans :

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG

Pour modifier le Web.config, je prends garde de faire une copie du fichier et je fourre "2095151" dans le paramètre maxRequestLength.

IIS 7.5 configuration
Notez au passage le nombre de trucs et de machins qu'il faut configurer avec IIS 7.5 ... C'est tout bonnement affolant ! Vertigineux ! Pensez-vous que cela va suffire à faire fonctionner mon site web avec l'IIS de Windows 2008 R2 ? Ce site qui fonctionnait si bien avec l'IIS de Windows 7. Détrompez-vous !

Et BOUM ! Ça pète ailleurs ...

http://pageerreur.aspx/?msg=Failed+to+generate+a+user+instance+of+SQL+Server+due+to+failure+in+retrieving+the+user%27s+local+application+data+path.+Please+make+sure+the+user+has+a+local+user+profile+on+the+computer.+The+connection+will+be+closed.

Pffff, c'est fatiguant !

Chaîne de recherche Google :

SQL Server : Failed+to+generate+a+user+instance+of+SQL+Server+due+to+failure+in+retrieving+the+user%27s+local+application+data+path.+Please+make+sure+the+user+has+a+local+user+profile+on+the+computer.+The+connection+will+be+closed.

Et là, c'est le cauchemar mais je crois que la solution se trouve sur la page suivante de Stack Overflow :

http://stackoverflow.com/questions/4770596/failed-to-generate-a-user-instance-of-sql-server-due-to-failure-in-retrieving-th

Des explications abracadabrantesques !

Resolution for Windows 7 and Windows Server 2008 R2

Tiens, tiens, il y aurait un problème ? Tu m'étonnes !

Et à nouveau : NETWORK SERVICE

Un vrai délire mais je pense bien que la solution est là ...

D'autres explications délirantes, c'est ici :

https://support.microsoft.com/fr-fr/kb/2002980
Là aussi on trouvera certainement la solution une idée de la solution.

Solution pour Windows 2008 R2 - Site Web IIS 7.5 et Visual Studio 2010

Je vais essayer d'expliquer ce qui a fonctionné pour moi. On ne sait jamais trop comment, on ne peut pas non plus expliquer pourquoi, mais je vais vous décrire un peu la solution qui a fonctionnée pour moi :

C'est d'avoir configurer le modèle de processus du pool d'applications avec NetworkService au lieu ApplicationPoolIdentity ...

On prend une grande respiration et on y va. Cela se passe dans l’outil Gestionnaire des Services Internet :

Gestionnaire des Services Internet d'IIS 7.5
Pour faire tourner mon applications, j'ai créé un pool d'application qui tourne avec le framework 2.0. Je dois spécifier dans les "Advanced Settings..." :

IIS 7.5 Advanced Settings du Pool d'applications
que le modèle de processus pour mon Pool d'applications est "NetworkService" et pas "ApplicationPoolentity" !

Choisir pour le Process Model : NetworkService
Et vous trouvez ça normal !? Moi, personnellement, je trouve ça délirant !

Et si vous lisez cet article, s'il vous a aidé, merci de laissez un petit commentaire. Ça me fait toujours plaisir.

Have great fun !

jeudi 4 février 2016

ASP.NET MVC 4 Razor Html.Helpers functions samples

Vous cherchez des exemples d'utilisation des méthodes helpers, vous êtes comme moi. Je pratique ASP.NET MVC depuis des mois, je suis capable de développer de nouvelles fonctionnalités d'installer de déployer un site. Et puis je me rends compte qu'en fait je ne maîtrise même pas totalement une vulgaire liste de boutons radios.

Je suis stupéfait du peu d'exemples que l'on trouve sur Internet, je vais essayer ici, d'y remédier en vous donnant le mien. J'ai mis tu temps à trouver la page suivante dans MSDN :

Rendering a Form in ASP.NET MVC Using HTML Helpers

https://msdn.microsoft.com/en-us/library/dd410596(v=vs.100).aspx
Exemples, un peu intéressant d'utilisation des fonctions Html.Helpers même si ce n'est pas du Razor...

Les autres pages n'ont vraiment aucun intérêt ! Et pourtant, lorsque l'on cherche sur Internet, on retombe toujours dessus ! Par exemple la page :

https://msdn.microsoft.com/en-us/library/system.web.mvc.html.inputextensions.radiobutton(v=vs.100).aspx
ne vous apprendra aucunement à utiliser la fonction @Html.RadioButton. Elle n'a aucun intérêt. C'est assez incroyable !

Même le site de StackOverFlow est relativement muet :

http://stackoverflow.com/questions/14313475/how-to-add-a-htmlattributes-in-this-htmlhelper
Un exemple, pas très intéressant ...

http://stackoverflow.com/questions/23382612/set-a-radiobuttonfor-checked-by-default-within-a-foreach-loop
Là c'est intéressant, la remarque de "martennis" est la bonne : Si l'attribut "checked" est présent, peu importe ce qu'il y  dedans ! Le bouton sera coché ! Et comme c'est une radiolist, ce sera le dernier qui sera coché ! Incroyable à croire que cela n'intéresse personne ... ASP.NET MVC est mort et on ne m'a pas prévenu ???

ToBeContinued ...

Concernant la gestion des RadioButton, il y a plein de problèmes mais voici le début d'une solution :

J'ai donc passé un bon moment à triturer ces exemples, à essayer un tas choses qui n'ont pas fonctionnées, pour finalement trouver le début d'une solution.

RadioButton Html Helper Solution

Controller

        public ActionResult PageItems() 
        {
            var items = new List<SelectListItem>
            {
                new SelectListItem { Value = "1", Text = "Blue", Disabled = false },
                new SelectListItem { Value = "2", Text = "Red" },
                new SelectListItem { Value = "3", Text = "Green", Selected = true },
                new SelectListItem { Value = "4", Text = "Yellow", Selected = true },
                new SelectListItem { Value = "5", Text = "Black" }
            };

            return View( items  );
        }

View

@model List<SelectListItem>

<table style="margin:30px;">
@foreach ( var item in Model )
{
<tr>
<td>
@Html.RadioButtonFor( m => item.Text, "name_value" , item.Selected == true ? (object)new { @checked = "checked" } : new { } ) @item.Text
</td>
</tr>
}    
</table>

Voilà donc comment on utilise correctement la paramètre "Object htmlAttributes" pour sélectionner automatiquement le SelectListItem d'une list de Radiobox au démarrage de la page.

Voici le résultat de l'exécution


Enfin un RadioButton issue d'un @Html.Helper avec le bon item "selected"
L'élément "Yellow" de la RadioButton liste est sélectionné à l'init ! Enfin ! Razor c'est la lutte.