cl_mavie 1
Je sais coder en PHP. Et comme maintenant je cherche un nouveau truc à découvrir, j’aimerais voir ce que vaut ASP.NET pour programmer des sites web. J’ai donc téléchargé Visual Web Developer 2005 Express Edition, et j’ai quelques question : cl_mavie 0
Heu… j’étais habitué à faire des pages PHP complètes, sans code XHTML, puis ensuite de générer le code XHTML à partir d’une template. Toujours possible en ASP.NET ?
On parle d’ASP.NET, mais ça veut dire que c’est un langage ? Ou alors je dois utiliser un truc comme C# ou Visual Basic.NET ?
Après avoir édité un premier fichier, j’ai un truc comme ceci :
[code]using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Oui oui a priori, ca depend ce que t’entend par la, mais ca me parait raisonable.
ASP.NET = API de programattion et lib standard poru faire du devel web. Ca s’utilise depuis n’importe quel langage .Net, C#, VB.NET, C++/CLI, Ruby.Net, etc, etc, y en a une trentaine. Of course C# et VB.NET sont de loin les plus utilisees.
Oui, tout est un objet (donc une classe), y compris chaque page de ton site.
Je te conseille de lire: http://books.google.com/books?id=DUwx_H3G0…SmrtEJettEJAnto
Par exemple, c’est une bon bouquin, pas forcement a jour pour 2.0 mais les concepts de bases sont toujours les meme et il est tres bien ecrit. Sinon essaye un peu d’oublier la maniere dont tu codes en php, ca a pas grand chose a voir et essayer d’appliquer les concepts a Asp.Net ca va mener qu’a du code pas propre et tu vas penser « bah c’est nul » alors qu’en fait tu fais pas du tout les choses comme il faudrait. Niveau tuto et tout il faut demander a d’autres, moi j’ai appri sur le tas quand c’etait en beta de la version 1 donc j’ai pas trop ca sous la main
J’étais dans ton cas il y a quelques moi et je confirme ce que dit Glop : oublie complètement les méthodes du php, ça va t’embrouiller plus qu’autre chose. Pour répondre à ta question… ça veut dire… que ça a rien à voir! Chaques page à une classe qui lui est associée (ça tu t’en es rendu compte) et cette classe est executé à chaque fois que tu rentres dans la page (tu verras les histoires de PostBack() vite fait). Il y a les évènements (pas besoin de te faire chié à récuperer les valeurs “à la main” en post ou get comme en php), et tous les objects bien pratique : les datagrid / dataview, les placeholder, etc.
Et alors qu’en php tu fait tout “à la main” : genre créer une dropdownlist, en asp.net (… enfin… avec visual studio… ) tu vas tout faire à la souris et t’as quasiment rien à écrire comme code, ne serait-ce que remplir le corps des fonctions que visual t’as créer. Docn la prise de tête est minime.
Bon… c’est tout automatique c’est sympa mais défois ça prend bien la tête, surtout quand tu viens du php est que t’as l’impression de tout maitriser (mais y’a toujours une solution, je parle en connaissance de cause).
Ensuite, en asp.net avec visual studio le code est de toute façon séparé de la page html donc aucun soucis à te faire.
Y’a plein de tutos sur le net, et comme d’habitude pour commencer qqchose faut que tu te fixes un objectif (simple), genre un formulaire d’inscription en ligne, un petit forum, un blog ou un truc comme ça.
Amuse toi bien !
ah oui, tu peux jeter un coup d’oeil à cette vidéo là, ça parle d’Atlas, le truc Ajax de .net, mais ça montre bien comme tu fais tout à la souris et tu met jamais les main dans le code, c’est assez impressionnant http://atlas.asp.net/Default.aspx?tabid=47
je connais pas cette version, moi j’ai installé aussi visual c# 2005 express edition à 0€ et il fait pas d’asp.net, mais des winforms (par opposition aux webform )
question bouquin j’en ai absolument aucune idée, j’ai toujours trouvé de l’aide sur le net ou chez mes chers collègues
Le “t’as rien à écrire comme code, visual studio fait tout” est vrai tant que tu fais des choses simples. Si tu pousse un peu les choses et que tu fais des custom controls, etc tu devras mettre les mains dans le cambouis.
Je suis contraint pour un stage de faire un site dynamique en ASP.net 2.0 et le fait de pouvoir tout controller comme en PHP me manque. Tu peux toujours appliquer les méthodes PHP et parser toi même les clés post, etc mais ca ne correspond pas à la philosophie ASP et comme dit précédemment, je te le déconseille, tu auras au mieux un code fouilli. Pour ma part, je trouve la surcouche ASP lourde. Enfin, les gouts et les couleurs …
Pour le moment, j’en suis uniquement à « recherche et documentation », donc je ne peux pas donner beaucoup d’avancées.
J’espère que je ne trouverais pas un système comme Windev (si vous connaissez) : très puissant, très simple, mais dès qu’on veut pousser le développement, on est tout simplement bloqué par le langage, je me rapelle avoir eu cette sensation dans Visual Basic. Quelqu’un pour me contredire (pitié) ?
Tiens, j’ai aussi une autre question, en relation avec ASP.NET : le serveur de base de données, Microsoft SQL Server, est-il 100% compatible avec SQL (j’avais entendu parler que MySQL ne l’était pas complètement) ? Les performances sont-elles la ?
Ce que tu me dis m’inquiète un peu, et j’espère vraiment ne pas trouver cet aspect-la (j’aime bien qu’on me simplifie la tâche, mais j’aime bien aussi tout contrôler quand je le souhaite).
C’est parceque tu connais pas assez comment est architecturé la chose. T’as 100% du controlle, il faut savoir travailler dans l’esprit du framework et pas essayer d’appliquer des concepts PHP a un truc qui a rien a voir, c’est encore une fois la meme chose. Ca n’a rien a voir avec VB 6.0 ou potentiellement windev (je connais pas donc je peux pas dire pour sur), le but c’est justement de ne jamais etre bloqué tout en gardant les trucs qui font aller plus vite. Ca veut potentiellement dire que quand tu fais des trucs compliqués il faut apprendre comment marche une couche plus basse pour utiliser ses points d’extensibilité au lieu de re-inventer la roue de zero mais au final quand tu maitrises tu y gagnes enormement. Sinon SQL server est compatible SQL mais ca veut pas dire grand chose, et il y a pas de soucis a se faire pour les perfs. Tu pourras demander a Kinik comment il fait tourner sa base de plusieurs centaines de gig avec
Personellement je ne dis pas qu’on est bloqué par ASP.net. On fait ce qu’on veut, c’est clair.
Ce qui m’emmerde moi c’est la couche d’abstraction qui au final “cache” l’emploi du HTML et te donne la sensation que tu es en train de développer une application WinForm.
Pour arriver à cette couche, Microsoft a du rajouter certaines choses : Le viewstate pour faire persister les variables auquel il faut faire attention, ca prend vite de l’ampleur. Ainsi que des ID de 3km (suis-je le seul à être énervé par des trucs du genre ctl00_mainholder_menu_controlx_machiny qui sont lourds dans le CSS ?).
A la fin j’ai l’impression de pas avoir pu faire mon HTML à la main, tout beau, tout propre comme je le fais d’habitude.
Par contre pour développer, c’est cool. Petit serveur web qui se lance quand il faut et debug dans Firefox.
Je pense que la meilleure façon se de « mettre dans l’ambiance » pour coder en ASP.NET, c’est d’oublier qu’on fait du ouaib un moment, et de commencer avec ses réflexes de codage d’interface graphique :
chaque type de page est un type de dialogue, et donc une classe
quand on cliquouille sur la page, ça crée des évènements qui appellent des méthodes de la classe (genre OnButtonClick, OnLoad, etc.)
on peut créer des controles réutilisables
on peut foutre ces controles dans des « templates » réutilisables aussi
C’est un modèle de programmation drastiquement différent de PHP (moi aussi ça m’a un peu choqué au début, mais j’ai vite appris à adorer). Par contre, c’est carrément pas con, et MS a bien fait de faire ce rapprochement entre le dev web et le dev d’UI/application « normales » vu comment maintenant la mode c’est les « web applications ». Mais bref, je m’égare.
C’est clair que le HTML, même s’il est conforme, il faut pas trop le regarder de près… Mais rien ne t’empêche d’y aller en bourrin, et de reprendre les mêmes méthodes de programmation que sous PHP (en utilisant seulement des .asmx et plus aucun .aspx par exemple). Mais s’emmerder à recoder des listboxes, treeviews, des panels repositionable, des splitters, sans compter les joies du databinding et autres… bah j’oublie rapidement mon HTML. C’est un peu comme les codeurs Assembleur qui ont du râler lors du passage massif à C, prétextant qu’ils n’avaient pas le controle sur leur « joli code ASM tout beau tout propre comme ils le faisaient d’habitdue ». Ca a du leur faire un choc, mais au final…
Oui mais non, tu lis un artcile sur le web standard, les joies de la sémantique, etc et ensuite tu retrouves ton ASP … t’es frustré.
En fait le problème c’est surtout que l’HTML c’est fait pour du contenu et pas pour designer l’interface d’une application dynamique. ASP essaie de se débrouiller avec le peu de possibilités de HTML pour pouvoir quand même créer une interface client riche et ca devient vite une soupe de balises qui ne veut plus rien dire.
Le problème est le même en PHP mais tu as quand même l’impression de contrôler un peu plus (et de travailler un peu plus aussi vu que les évènements et tout, tu te les tappe toi même).
Ben non pas du tout je trouve et le paralelle de lordabdul me semble plutot pertinent (meme si c’est pas la meme chose, c’est un paralelle, pas une comparaison). Tu peux controller a la main tout ce qui te gene si tu veux, renommer les classes CSS, etc, etc et c’est toujours ta responsabilite de bien appliquer la semantique la plus appropriee. Au final, bien fait, ca a absolument rien d’une soupe de balise qui veut plus rien dire ou alors t’as que toi a blamer. Tu controlles encore tout le layout et un entassement de controles ne fait pas un site. J’ai des exemples de sites tres propres, qui et Kinik ou Boudin en font tous les jours pour citer que les deux cas les plus evidents qui me viennent a l’esprit Bien sur quelqu’un qui s’y prendrait mal sans faire expres parceque il est pas en phase avec la philosophie du design des API ou qu’il ferait ca comme un cochon et ca finira degueu, et ca c’est vrai partout pour tous les langages et tous les framework comme tu dis :P.
Je ne dis pas le contraire, on peut tout à fait gérer le layout et je ne m’en prive pas.
Mon output au final n’est pas trop dégueu.
Néanmoins j’ai l’impression de sortir l’usine à gaz pour quelque chose que je fais tout simplement en PHP.
C’est vraiment ce qui ressort de mon expérience (encore fort limitée, je l’accorde) de ces deux langages :
ASP.net : puissant mais assez lourd, c’est peut-être psychologique aussi mais le fait de compiler mon code web me donne l’impression d’avoir un truc énorme.