Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1153 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  HTMLControls et/ou WebControls ?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

HTMLControls et/ou WebControls ?

n°1517784
tabouret e​n bois
Profil:s de pute
Posté le 21-02-2007 à 16:43:16  profilanswer
 

Salut!
 
Dans le cadre d'une programmation de page et controles web C# ou VB.NET, sans toucher à de l'ASP.NET.
Pensez vous qu'il faille se poser la question "dois je utiliser un HTMLControl, ou un WebControl?"
 
J'en suis arrivé à un point ou je pense comme ce gars que j'ai lu sur un forum :
 

Citation :

Je crois que les HtmlControls ne sont la que pour passer "en douceur" de la programmation asp/html à asp.net, un truc un poeu marketing de la part de microsoft pour dire : voyez, vos controles html dont vous avez l'habitude, hop vous leur mettez un runat="server" et ça devient des controles serveurs. A part ça, ce sont plutot les WebControls les vrais controles asp.net, car mieux intégrés au model objet de ce framework.


 
êtes vous d'accord avec ce raisonement?
 
C'est vrai qu'en y repensant, je ne vois pas l'interet d'utiliser du HTMLControl quand en programme en .NET (à part les performances, mais ce n'est pas transcendant.. ou alors autant tout generer en string et hop HTMLWriter.. bref.. on est dans le monde .NET maintenant)
 
 
qu'utilisez vous? dans quelles circonstances?
 
 
 :)  :jap:  
 


---------------
██████████████████████████████████
mood
Publicité
Posté le 21-02-2007 à 16:43:16  profilanswer
 

n°1517785
tabouret e​n bois
Profil:s de pute
Posté le 21-02-2007 à 16:43:27  profilanswer
 

reserved

n°1517794
tabouret e​n bois
Profil:s de pute
Posté le 21-02-2007 à 16:49:57  profilanswer
 

Difference Between ASP.NET Server Controls,HTML Server Controls and HTML Intrinsic Controls  :
http://www.extremeexperts.com/Net/ [...] trols.aspx
 
 
bof

n°1517804
MagicBuzz
Posté le 21-02-2007 à 16:55:48  profilanswer
 

:heink:
 
Les HtmlControl sont là pour faire la transition en douceur depuis un site déjà fait en ASP pour le passer en .NET
 
Ensuite, effecitement, il vaut mieux utiliser les WebControls.
 
Pour le reste, niveau performances, lisibilité et maintenabilité, utiliser l'un ou l'autre ne changera pas grand chose. Par contre, le coup du HTMLStringBuilder... [:vomi]

n°1517814
tabouret e​n bois
Profil:s de pute
Posté le 21-02-2007 à 17:04:17  profilanswer
 

MagicBuzz a écrit :

:heink:
 
Les HtmlControl sont là pour faire la transition en douceur depuis un site déjà fait en ASP pour le passer en .NET
 
Ensuite, effecitement, il vaut mieux utiliser les WebControls.
 
Pour le reste, niveau performances, lisibilité et maintenabilité, utiliser l'un ou l'autre ne changera pas grand chose. Par contre, le coup du HTMLStringBuilder... [:vomi]


 
toi, par exemple, dans ton code .NET tu geres tout en webcontrols? donc grosse arbo de controles...
tu ne tape jamais une seule ligne de html...
 
et les performance ça va?...

n°1517826
MagicBuzz
Posté le 21-02-2007 à 17:09:17  profilanswer
 

1/ je code tout en WebControls, oui, sauf les éléments HTML statiques
2/ donc oui, y'a du HTML dans mes pages : ça sert à rien de faire des éléments dynamiques si c'est pour qu'ils soient statiques
3/ Niveau performances, je mets à plat n'importe quel site écrit en ASP, PHP ou Java (.NET est très largement plus performant que chacun des trois, à conditions de coder correctement évidement)
 
PS : Et avec le modèle objet de .NET, ainsi que la gestion des évènements, on n'a jamais à se balader dans l'arbo !

n°1517835
cosmoschtr​oumpf
dawa powered
Posté le 21-02-2007 à 17:15:00  profilanswer
 

moi je connais pas la différence entre "asp.net server controls", "server controls" et "html intrinsic controls" :o


---------------
Android/Manettes/Metroidvania/Zelda/Indés/Retrogaming/VDS jeux
n°1517855
tabouret e​n bois
Profil:s de pute
Posté le 21-02-2007 à 17:28:19  profilanswer
 

MagicBuzz a écrit :

1/ je code tout en WebControls, oui, sauf les éléments HTML statiques


 
quesque t'appelles un element html statique?
un header ou un footer par exemple?
 
concretement tu fais quoi en html? j'ai du mal à voir....
 
 
petite question: moi j'ai tout fait en webcontrol.. et ma page contient + de 180 controles.. ça te choque? (ouai ça va vite avec les tables/rows/cells)

n°1517866
MagicBuzz
Posté le 21-02-2007 à 17:35:22  profilanswer
 

euh... :sweat:
 
DataRepeater, tu connais ? :o
 
Vire-moi ces putains de tables codées en dur et utilise les méthodes DataBind() :o
 
Du code statique, ça va être un truc genre "mon joli logo tout pourrave collé dans le coin en haut à gauche". Pas besoin de créer un contrôle pour ça, alors que l'image est figée. Mais bon, pour ça y'a carrément les master pages.

n°1517869
ixemul
Nan mais sans blague ! ⚡
Posté le 21-02-2007 à 17:37:32  profilanswer
 

MagicBuzz a écrit :

euh... :sweat:
 
DataRepeater, tu connais ? :o
 
Vire-moi ces putains de tables codées en dur et utilise les méthodes DataBind() :o
 
Du code statique, ça va être un truc genre "mon joli logo tout pourrave collé dans le coin en haut à gauche". Pas besoin de créer un contrôle pour ça, alors que l'image est figée. Mais bon, pour ça y'a carrément les master pages.


 
Pas en .NET 1.1  [:kilgoreweb]  
 
dur retour pour moi après 1 an de .NET 2.0, retour au 1.1 :/ (vivement la migration)

mood
Publicité
Posté le 21-02-2007 à 17:37:32  profilanswer
 

n°1517873
MagicBuzz
Posté le 21-02-2007 à 17:39:56  profilanswer
 

Y'a pas de master pages en 1.1, mais des DataRepeater, si, c'est en faisant un site en 1.1 que je les ai découverts il y a 1 an et demi :spamafote:
 
Comment c'est trop bon d'ailleurs :)

n°1517874
ixemul
Nan mais sans blague ! ⚡
Posté le 21-02-2007 à 17:43:03  profilanswer
 

MagicBuzz a écrit :

Y'a pas de master pages en 1.1, mais des DataRepeater, si, c'est en faisant un site en 1.1 que je les ai découverts il y a 1 an et demi :spamafote:
 
Comment c'est trop bon d'ailleurs :)


 
Ha ben oui, le datarepeater est plus que bon :D
 
j'utilise même plus de datagrid...

n°1517889
cosmoschtr​oumpf
dawa powered
Posté le 21-02-2007 à 17:59:58  profilanswer
 

y'a personne pour répondre à ma question ? :o


---------------
Android/Manettes/Metroidvania/Zelda/Indés/Retrogaming/VDS jeux
n°1517899
tabouret e​n bois
Profil:s de pute
Posté le 21-02-2007 à 18:12:08  profilanswer
 

MagicBuzz a écrit :

euh... :sweat:
 
DataRepeater, tu connais ? :o


 
oui..
 

MagicBuzz a écrit :


Vire-moi ces putains de tables codées en dur et utilise les méthodes DataBind() :o


 
??
 

MagicBuzz a écrit :


Du code statique, ça va être un truc genre "mon joli logo tout pourrave collé dans le coin en haut à gauche". Pas besoin de créer un contrôle pour ça, alors que l'image est figée. Mais bon, pour ça y'a carrément les master pages.


 
j'suis en 1.1 :-/
 
 
 
mais en fait je veux tout faire dans des classes pour pouvoir tout embarquer dans une dll.. donc pas de aspx, ni ascx.. à part pour les pages principales...
 
 
 
 
bref imagine un cas concret...
dans mes pages... j'ai tout affichier dans 1 ou  plusieurs "window" qui sont en fait des cadres constitués d'un header/body/footer
et je peux, dans chaque page , avoir 1 ou plusieurs "window" disposés differemment ..
 
donc la je fait un control qui gère ma window (qui lui, en interne, gère un tableau pour placer header body et footer).. ça parait bien nan?
 
 
puis des fois j'ai des windows, qui contiennent une grille dans leur body...
 
cette grille est une liste qui associe un texte avec un ou plusieurs controles (textfield, radiobutton, dropdownlist, etc...)
 
 
donc du cou j'ai fait 2 classes.. à savoir CWindow et CGrid...
 
je peux instancier un nouveau CWindow et y faire CWindow.BodyControls.Add(new CGrid)
 
et la CGrid je peux faire CGrid.AddRow("text", control1, control2, etc...)
 
c'est ainsi que je construi mes pages... c'est mal?
 

n°1517902
tabouret e​n bois
Profil:s de pute
Posté le 21-02-2007 à 18:15:39  profilanswer
 

cosmoschtroumpf a écrit :

y'a personne pour répondre à ma question ? :o


 
http://www.odetocode.com/Articles/348.aspx

n°1517923
MagicBuzz
Posté le 21-02-2007 à 19:04:49  profilanswer
 

Evite de tout faire en code.
 
.NET est un outil qui permet de dissocier totalement le code HTML du code C#, il faut donc respecter l'esprit dans lequel il a été créé.
 
Donc tes "Window", ça va bêtement être des WebControl (*.ascx) que tu vas coller dans tes pages (*.aspx). Si tu veux pouvoir les changer de place de façon programmative, c'est pas compliqué, t'as tout ce qu'il faut dans un WebControl pour décider où le placer. Au pire, tu peux les ajouter de façon "manuelle" dans le code C#, mais je préconise de ne le faire que lorsque c'est obligatoire.
Tout vouloir coller dans une seule DLL sans aucune page, c'est "stupide" dans le mesure ou de toute façon tu auras au moins un default.aspx et un web.config en plus. Sans parler des images et autres CSS qui j'espère pour toi ne sont pas dans ta DLL ! Bref, à partir du moment où tu distribues de toute façon des fichiers statiques, autant faire avec, et proprement.
 
Ensuite, pour tes histoires de CGrid qui est un CWindow qui contient une grille, je te propose de faire une classe abstraite CWindow, qui implémente toutes les méthodes de base.
Ensuite tu fais hériter CGrid de cette classe, afin d'apporter de nouvelles fonctionnalités. Ca évite le code redondant.
 
Si j'ai vraiment du courage, je vais voir à faire un petit exemple, peut-être ce soir.

n°1518108
tabouret e​n bois
Profil:s de pute
Posté le 22-02-2007 à 09:23:22  profilanswer
 

ouaip ben tout ça, ok...
 
mais je t'explique mon problème...
j'utilise mes controles dans mon projet, ça ok.. mais j'ai un collègue qui aimerais utiliser mes controles dans son projet qui est carrement sur un autre serveur... donc il aurait juste à prendre ma dll...
 
tu vas me dire qu'il suffit de créer les ascx dans la dll à partager, mais ça ne marche pas.. :-/
l'ascx doit être dans un projet web...
 
comment partager un ascx??

Message cité 1 fois
Message édité par tabouret en bois le 22-02-2007 à 09:25:22
n°1518116
MagicBuzz
Posté le 22-02-2007 à 09:33:33  profilanswer
 

ben y'a pas plus de problème... tu lui livres tes ASCX en même temps que la DLL qui contient leur code compilé :spamafote: lui il a juste à mettre en référence ta DLL à son projet.

Message cité 1 fois
Message édité par MagicBuzz le 22-02-2007 à 09:33:58
n°1518123
ixemul
Nan mais sans blague ! ⚡
Posté le 22-02-2007 à 09:57:13  profilanswer
 

tabouret en bois a écrit :

ouaip ben tout ça, ok...
 
mais je t'explique mon problème...
j'utilise mes controles dans mon projet, ça ok.. mais j'ai un collègue qui aimerais utiliser mes controles dans son projet qui est carrement sur un autre serveur... donc il aurait juste à prendre ma dll...
 
tu vas me dire qu'il suffit de créer les ascx dans la dll à partager, mais ça ne marche pas.. :-/
l'ascx doit être dans un projet web...
 
comment partager un ascx??


 
Vous connaissez source safe ?  :D

n°1518163
tabouret e​n bois
Profil:s de pute
Posté le 22-02-2007 à 10:46:13  profilanswer
 

MagicBuzz a écrit :

ben y'a pas plus de problème... tu lui livres tes ASCX en même temps que la DLL qui contient leur code compilé :spamafote: lui il a juste à mettre en référence ta DLL à son projet.


 
c'est un peu lourd de livrer les ascx + dll...
en plus j'utilise source safe
 
je suis entrain d'étudier les articles suivants :
 
http://support.microsoft.com/kb/324785/en
http://www.dotnetguru.org/articles [...] reuse.html
 
mais j'ai du mal :-D

n°1518179
tabouret e​n bois
Profil:s de pute
Posté le 22-02-2007 à 11:11:39  profilanswer
 

bon je vais tout faire en HtmlWriter.Write!

n°1534581
dymezac
Posté le 27-03-2007 à 21:09:46  profilanswer
 

Bonjour  :)  
 
j'aurai une question à vous poser à tous :
 
Dans le cas des WebControls, n'y a t'il pas un peu trop d'aller/retour serveur ??
 
Je développe en C# des pages Asp.Net depuis environ 6 mois et depuis le début je construit mon Html dynamiquement avec des String et des StringBuilder()..
Concrètement je me suis fais des classes du genre GenerateFormulaireHtml() avec des méthodes du genre addInputText(label, value, maxchar, ..) etc.. et en surchargeant la méthode ToString() pour qu'elle me retourne un formulaire tout propre (sous la forme d'un string contenant le html prêt à l'emploi)..  
L'avantage est pour moi de centraliser l'apparence de mon html dans ces classes, et surtout de pouvoir générer hyper facilement mes formulaires et autres tableaux html..
 
Mais je viens seulement de me rendre compte qu'il existait les HtmlControls !!!
Tout simplement parce que je débutais en Asp.Net, et que dans l'équipe de développement ou je travaille on a préféré faire une croix sur les controles spécials ASP.NET quand on a vu qu'ils provoquaient beaucoup "aller/retour" serveur..
 
Par exemple un simple select asp: nous fait un aller retour serveur dès qu'on lui a mis un évènement onclick par exemple !!  
 
Et bon .. les aller retours serveur, c'est peut être pratique si les utilisateurs ont l'adsl mais on doit penser aussi à ceux qui sont à la campagne avec leur 56ko.
 
Par contre, je me suis rendu compte cet après midi que les HtmlControls ne font pas d'aller retour serveur mais sont simplement les éléments Html de base sous la forme d'objet et ça c'est exactement ce que je recherche.
 
Ma question à ceux qui utilisent les WebControls est :
N'avez vous pas trop d'aller retour serveurs avec vos WebControls ?
 
P.S : je fais bien la différence entre les HtmlControl et les WebControls, quoique je continue de me documenter actuellement à leurs sujets
 
D'avance merci beaucoup pour vos réponses !!!
 
 :wahoo:

Message cité 1 fois
Message édité par dymezac le 27-03-2007 à 21:14:53
n°1534824
_Mose_
Lonesome coder
Posté le 28-03-2007 à 11:04:15  profilanswer
 

MagicBuzz a écrit :

Les HtmlControl sont là pour faire la transition en douceur depuis un site déjà fait en ASP pour le passer en .NET


Non.
Les HtmlControls sont les contrôles HTML.
Les WebConrols sont les contrôles ASP.Net.
 
Quand tu fais du HTML static, si tu rajoute un ID et un runat="server" sur ta balise static, alors ça devient un contrôle serveur, qui hérite de.... HtmlControl, c'est magique :)
ex :
* une table, ça devient une HtmlTable.
* un div, ca devient un HtmlGenericControl.
 
Donc non, je suis pas d'accord pour dire que c'est pour "faire une transition en douceur".
En revanche, on peut dire que les WebControl sont une surcouche des HtmlControls.
Les deux se complètent, et la grande majorité des gens utilisent un mélange des deux, sans même savoir qu'ils utilisent des HtmlControls (ex : chaque fois que tu utilises une <table> au lieu d'une <asp:Table> )

n°1534838
_Mose_
Lonesome coder
Posté le 28-03-2007 à 11:20:30  profilanswer
 

dymezac a écrit :

Dans le cas des WebControls, n'y a t'il pas un peu trop d'aller/retour serveur ??

C'est le codeur qui décide quand il veut faire ses aller/retour serveur.

dymezac a écrit :

Je développe en C# des pages Asp.Net depuis environ 6 mois et depuis le début je construit mon Html dynamiquement avec des String et des StringBuilder()..

Olalalala... en terme de maintenance, je ne veux jamais avoir à travailler avec tes projets.
Moi aussi j'ai fait ce genre de connerie quand je débutais, et je l'ai regretté amèrement : la personne qui a suivi sur le projet a dû tout jeter et tout refaire "normallement" le jour où y'a eu besoin de faire une modif. Pourquoi ? Paske le pb du HTML généré c'est que tu n'as pas de lisibilité globale sur ta page. Y'a des morceaux qui sont créé par-ci par-là et t'es obligé de lire le code de chaque morceau généré sour savoir s'il est généré en utilisant un div ou une table (par exemple)

dymezac a écrit :

Mais je viens seulement de me rendre compte qu'il existait les HtmlControls !!!
Tout simplement parce que je débutais en Asp.Net, et que dans l'équipe de développement ou je travaille on a préféré faire une croix sur les controles spécials ASP.NET quand on a vu qu'ils provoquaient beaucoup "aller/retour" serveur..

L'équipe dans laquelle tu travaille est une équipe de noobs qui ne connait pas sa techno.

dymezac a écrit :

Par exemple un simple select asp: nous fait un aller retour serveur dès qu'on lui a mis un évènement onclick par exemple !!


Normal. Ton code, le code associé à ton OnClick, il est exécuté où ce code ?   Sur le serveur !
C'est là où ton équipe n'a rien compris : la différence entre code serveur (C#) et code client (Javascript).
Je veux bien que tu m'expliques ce que tu voulais faire avec ton OnClick, que tu arrives à faire sans A/R serveur.
J'imagine que tu vas me parler de Javascript, mais le JS est complètement compatible avec les contrôles ASP.Net.
 
Tout le reste de ton message est basé sur une grande incompréhension de la technologie, aussi je vais m'arrêter là, paske tu te plantes assez radicalement (pas de ta faute, apparemment les gars qui t'ont expliqué t'on salement enduits d'erreurs)
A ta dispo pour d'éventuelles précisions.

n°1534876
MagicBuzz
Posté le 28-03-2007 à 11:39:13  profilanswer
 

_Mose_ a écrit :

Non.
Les HtmlControls sont les contrôles HTML.
Les WebConrols sont les contrôles ASP.Net.
 
Quand tu fais du HTML static, si tu rajoute un ID et un runat="server" sur ta balise static, alors ça devient un contrôle serveur, qui hérite de.... HtmlControl, c'est magique :)
ex :
* une table, ça devient une HtmlTable.
* un div, ca devient un HtmlGenericControl.
 
Donc non, je suis pas d'accord pour dire que c'est pour "faire une transition en douceur".
En revanche, on peut dire que les WebControl sont une surcouche des HtmlControls.
Les deux se complètent, et la grande majorité des gens utilisent un mélange des deux, sans même savoir qu'ils utilisent des HtmlControls (ex : chaque fois que tu utilises une <table> au lieu d'une <asp:Table> )


je maintiens ce que je dis, dans la mesure ou "les réels objets du framework" sont les WebControls, et que les HTMLControls permettent, à partir d'un code existant (pré-.NET) d'utiliser un certain nombre de fonctionalités des WebControls, sans pour autant devoir modifier en profondeur le code.
 
mais à la base, pour un nouveau site, il vaut mieu éviter les HTMLControls, au profit des WebControls, qui offrent plus de possibilités, et permettent de faire une abstraction totale de la syntaxe HTML.
 
 
Exemple, j'ai une page ASP :


...
<p><%=CStr(Now())%></p>
...


 
Maintenant, je passe en .NET, trois choix s'offrent à moi :
Méthode pourrie, uniquement pour raisons de compatibilité ascendante :


...
<p><% Response.Write(DateTime.Now.ToString()); %></p>
...


 
Méthode utilisant les HTML Controls : (uniquement de nouveaux attributs)


...
<p id="monParagraphe" runat="Server" />
...



monParagraphe.Text = DateTime.Now.ToString();


 
Méthode utilisant les Web Controls : (réécriture du tag complètement)


...
<asp:Label id="monParagraphe" runat="Server" />
...



monParagraphe.Text = DateTime.Now.ToString();


=> Le <p> est changé en <span> ce qui peu avoir des répercussions au niveau CSS par exemple

Message cité 1 fois
Message édité par MagicBuzz le 28-03-2007 à 12:27:03
n°1534877
MagicBuzz
Posté le 28-03-2007 à 11:41:18  profilanswer
 

_Mose_ a écrit :

Normal. Ton code, le code associé à ton OnClick, il est exécuté où ce code ?   Sur le serveur !
C'est là où ton équipe n'a rien compris : la différence entre code serveur (C#) et code client (Javascript).
Je veux bien que tu m'expliques ce que tu voulais faire avec ton OnClick, que tu arrives à faire sans A/R serveur.
J'imagine que tu vas me parler de Javascript, mais le JS est complètement compatible avec les contrôles ASP.Net.


Effectivement, "ClientOnClick" spa fait pour les chiens :jap:


Message édité par MagicBuzz le 28-03-2007 à 11:46:14
n°1534903
dymezac
Posté le 28-03-2007 à 11:57:37  profilanswer
 

Bonjour Mose,
 
merci pour tes explications..
 
En effet, l'entreprise ou j'ai été embauché il y a 6 mois ne connaissait pas la technologie ASP.NET sauf par un stagiaire qui développait en .Net qui est resté plusieurs mois et a développé une application.
 
On a donc découvert l'asp.net sur le tas..
 
Par contre ayant tous déjà fait du php, on a gardé les séquelles et on a réfléchit un peu comme quand on réfléchissait en php, d'où des construction de html en string..
 

_Mose_ a écrit :

Olalalala... en terme de maintenance, je ne veux jamais avoir à travailler avec tes projets.


 
Par contre au niveau de mes projets, ça se tient bien, j'ai développé des objets hyper pratiques tel que des tableaux html qu'on génère en lui affectant des propriétés et une dataTable. Par exemple on lui donne une dataTable et des propriétés pour le tableau html, puis on récupère le html brut avec un ToString()..
 
Du coup le seul code html généré en brut se trouve une seule fois dans le ToString() de ma classe GenererTableauHtml.cs
 
tu vois ce que je veux dire, ça tient la route..
Maintenant que je connais les HtmlControls, je peux très bien re-écrire un jour le ToString() en question
 
Pareil, je me suis fait un GenererChampsDeFormulaire.cs sur lequel je fais des addInputText(label, value, title, classCss, etc..) et toutes les pages du site utilisent cette classe, avec un ToString() qui retourne le html brut. Donc en terme d'optimisation avec les HtmlControls, je pourrai toujours plus tard ré-écrire ces méthodes (addInputText, addSelect() etc..) en leur faisant utilisé des HtmlControl() et ce de manière transparente pour l'ensemble du site.
 
En terme de Design Pattern, on pourrait dire que j'ai fait des Constructeur (Builder).
Pour optimiser tout ça, il me resterai plus qu'à faire des Fabrique (Factory) du genre HtmlControlFactory.cs qui me fabrique des HmlControl (avec des getInputText(value, title, id, name, etc..) que je fabriquerai à partir de mes classes GenererTableauHtml et GenererChampsDeFormulaires.. Et toujours mon ToString() qui me renverrai du html brut sous forme de string.
 
Pour les pages que l'on a développé, c'est très lisible, il y a du commentaires et c'est très structurés, le projet est tout à fait reprennable par n'importe qui. Et puis on a de la doc.
 

_Mose_ a écrit :

J'imagine que tu vas me parler de Javascript, mais le JS est complètement compatible avec les contrôles ASP.Net.


 
Par contre, peux tu me dire comment tu fais pour dire à un controle ASP.Net que tu ne veux pas qu'il fasse d'aller retour serveur ?
 
J'ai lu hier soir de la doc sur OnClientClick, c'est de ça qu'il s'agit ?
 
Peux tu me dire un peu comment tu codes et comment tu utilises dans tes projets les différentes objets dispo, et pourquoi tu les utilise à tel moment et pa d'autres (HtmlControl, WebControl)..

Message cité 2 fois
Message édité par dymezac le 28-03-2007 à 13:52:32
n°1534912
_synapse_
Posté le 28-03-2007 à 12:00:29  profilanswer
 

Et bien autant je trouve le C# et .NET super pour faire des applications en winforms face à du C++, autant ca me semble super compliqué pour pas grand chose l'ASP.NET comparé par exemple au PHP pour faire du développement web.
 
Je fais principalement du dev. web en php, et comme à coté de celà je fais aussi un peu de dev. winforms en C# je voulais essayer de me réorienter vers de l'ASP.NET (surtout que de part le passé j'ai déjà fait de l'asp 3.0) pour la partie web, mais franchement pour le moment que ce soit sur la méthodologie à adopter ou bien les 36 objets tout bizarre pour simplement sortir 3 lignes d'une base de donnée, je comprends rien.  :sweat:

n°1534924
dymezac
Posté le 28-03-2007 à 12:06:49  profilanswer
 

_Mose_ a écrit :


J'imagine que tu vas me parler de Javascript, mais le JS est complètement compatible avec les contrôles ASP.Net.


 
Autre chose que j'avais remarqué :
 
Les controles Asp.Net ne font que générés du javascript en arrière plan si on peut dire, pour faire fonctionner des controles html standard.
 
Il est vrai qu'ils facillitent apparamment pas mal le codage au développeur, mais pour des éléments basiques, du genre des champs basiques de formulaires, c'est peut être pas la peine de passer par les controle Asp.Net si ?? ou bien ?
 
Parce que le javascript que Asp.Net génère, je le fais aussi, mais au moins je sais ce qui est dans la page c'est moi qui l'ai fait.. Parfois le javascript qu'asp.Net génère est pas ttrès lisible non ?
 
merci pour vos réponses
 
 

n°1534934
MagicBuzz
Posté le 28-03-2007 à 12:14:34  profilanswer
 

dymezac a écrit :

Par contre au niveau de mes projets, ça se tient bien, j'ai développé des objets hyper pratiques tel que des tableau html du'on génère en lui affectant des propriétés et une dataTable. Par exemple on lui fonne une dataTable et des propriétés pour le tableau html, puis on récupère le html brut avec un ToString()..


=> avec des webcontrols :
 
DataGrid monTableau = new DataGRid();
monTableau.DataSource = monDataTable;
monTableau.DataBind();
 
=> et zou, j'ai mon joli tableau contenant les données de mon DataTable !
Ensuite, un DataGrid permet de faire des tris, de la pagination, de lui affecter un skin, de modifier le type de contrôle utilisé pour un champ, ajouter des lignes, en supprimer, les mettre à jour... Le tout avec 4 lignes de code ;)
 
Très franchement, je pense que ça vaut le coup de jeter un coup d'oeil ;)

n°1534937
dymezac
Posté le 28-03-2007 à 12:15:11  profilanswer
 

_Mose_ a écrit :

Les deux se complètent, et la grande majorité des gens utilisent un mélange des deux, sans même savoir qu'ils utilisent des HtmlControls (ex : chaque fois que tu utilises une <table> au lieu d'une <asp:Table> )


 
Une chose que j'ai oublié de préciser :
 
J'utilise les HtmlControls sans le savoir depuis le début dans la mesure où dans mes pages aspx, j'ai des <div id="zoneXXdeLaPage" runat="server"> qui structurent mes pages et dans lesquels je met mes string html brut à l'aide de zoneXXdeLaPage.innerHtml = monHtmlBrutGénérésAvecMesObjetsPersos (en gros monGenerateurDeTableauHtml.ToString())
 
qu'en penses tu ?
qu'en pensez vous ?

n°1534939
MagicBuzz
Posté le 28-03-2007 à 12:16:23  profilanswer
 

_synapse_ a écrit :

Et bien autant je trouve le C# et .NET super pour faire des applications en winforms face à du C++, autant ca me semble super compliqué pour pas grand chose l'ASP.NET comparé par exemple au PHP pour faire du développement web.
 
Je fais principalement du dev. web en php, et comme à coté de celà je fais aussi un peu de dev. winforms en C# je voulais essayer de me réorienter vers de l'ASP.NET (surtout que de part le passé j'ai déjà fait de l'asp 3.0) pour la partie web, mais franchement pour le moment que ce soit sur la méthodologie à adopter ou bien les 36 objets tout bizarre pour simplement sortir 3 lignes d'une base de donnée, je comprends rien.  :sweat:


je confirme, c'est très rebuttant, surtout si t'as de l'expérience avec des langages "old school".
perso, j'en chie toujours comme un russe à chaque fois que je veux faire un bête formulaire un peu évolué :D

n°1534944
MagicBuzz
Posté le 28-03-2007 à 12:18:08  profilanswer
 

dymezac a écrit :

Autre chose que j'avais remarqué :
 
Les controles Asp.Net ne font que générés du javascript en arrière plan si on peut dire, pour faire fonctionner des controles html standard.
 
Il est vrai qu'ils facillitent apparamment pas mal le codage au développeur, mais pour des éléments basiques, du genre des champs basiques de formulaires, c'est peut être pas la peine de passer par les controle Asp.Net si ?? ou bien ?
 
Parce que le javascript que Asp.Net génère, je le fais aussi, mais au moins je sais ce qui est dans la page c'est moi qui l'ai fait.. Parfois le javascript qu'asp.Net génère est pas ttrès lisible non ?
 
merci pour vos réponses


le js que .NET te génère, t'as pas à t'en soucier. il est justement là pour t'affranchir d'en faire un.
c'est ça le principal but des WebControls : tu ne te soucis que de ce que ça fait, pas de comment ça marche.

n°1534946
MagicBuzz
Posté le 28-03-2007 à 12:20:29  profilanswer
 

dymezac a écrit :

Une chose que j'ai oublié de préciser :
 
J'utilise les HtmlControls sans le savoir depuis le début dans la mesure où dans mes pages aspx, j'ai des <div id="zoneXXdeLaPage" runat="server"> qui structurent mes pages et dans lesquels je met mes string html brut à l'aide de zoneXXdeLaPage.innerHtml = monHtmlBrutGénérésAvecMesObjetsPersos (en gros monGenerateurDeTableauHtml.ToString())
 
qu'en penses tu ?
qu'en pensez vous ?


Mettons que tu as un div, dans lequel tu veux ajouter un champ de type "input" :
 


...
<div id="monDiv" runat="server"/>
...


 
en CS :
 


InputBox input = new InputBox();
input.Value = "toto va à la plage";
monDiv.Controls.Add(input);


 
=> c'est quand même plus propre que ta solution non ? :o
 
(ps : la class, c'est pas "InputBox", mais j'ai pas en tête son vrai nom, c'était juste à titre d'exemple ;))


Message édité par MagicBuzz le 28-03-2007 à 12:21:17
n°1534948
dymezac
Posté le 28-03-2007 à 12:21:21  profilanswer
 

MagicBuzz a écrit :

=> Le <p> est changé en <span> ce qui peu avoir des répercussions au niveau CSS par exemple


 
Bonjour MagicBuzz,  
 
Dans quel cas, le p est changé en span (HtmlControl ou WebControl) ??
 
cela est effectivement parfois problématique..
 

n°1534951
MagicBuzz
Posté le 28-03-2007 à 12:23:16  profilanswer
 

en fait, il faut voir ASP.NET comme si tu travaillais avec DOM.
=> sauf qu'au lien de travailler avec des objets générique, tu utilises des "nodes" typées.
 
et entre travailler en XML à coup de stringbuilder et à coup de DOM, y'a pas photo, DOM est bien plus pratique, pour des performances, quasi identiques.

n°1534952
MagicBuzz
Posté le 28-03-2007 à 12:23:54  profilanswer
 

dymezac a écrit :

Bonjour MagicBuzz,  
 
Dans quel cas, le p est changé en span (HtmlControl ou WebControl) ??
 
cela est effectivement parfois problématique..


je ne crois pas qu'il y a de WebControl qui crée un <p>.
par contre, en HtmlControl, il y a un objet "Paragraph" il me semble.

n°1535028
dymezac
Posté le 28-03-2007 à 14:05:31  profilanswer
 

MagicBuzz a écrit :

=> avec des webcontrols :
 
DataGrid monTableau = new DataGRid();
monTableau.DataSource = monDataTable;
monTableau.DataBind();
 
=> et zou, j'ai mon joli tableau contenant les données de mon DataTable !
Ensuite, un DataGrid permet de faire des tris, de la pagination, de lui affecter un skin, de modifier le type de contrôle utilisé pour un champ, ajouter des lignes, en supprimer, les mettre à jour... Le tout avec 4 lignes de code ;)
 
Très franchement, je pense que ça vaut le coup de jeter un coup d'oeil ;)


 
ok merci beaucoup pour toutes tes explciations..
 
Quelques questions me viennent pourtant :
 
1) Par défaut, le DataGrid crée va t'il faire des aller/retours serveurs incontrôlés et quand ?
 
2) Existe t'il autre chose que onClientClick ? du genre onClientChange, onClientFocus, enfin l'éuivalent de chaque événement mais coté client et pas serveur.. Je voudrais pouvoir retrouver mes événements javascript de base (onchange, onchecked, ondblclick, etc..) et éviter un maximum les allers retours serveurs..
 
3) Est ce que le DataGrid est personnalisable à souhait ou avez vous déjà rencontrés des soucis avec et si oui lesquels ?
Par exemple, si je voulais ajouter deux jolis bouton modifier/supprimer en dernière colonne du tableau ?
Ou bien si je voulais faire des couleurs alternatives en fond de chaque ligne <tr> (blanc, gris, blanc, gris, etc..) et cela en utilisant 2 classes css tr1 et tr2 par exemple..
 
 
D'avance merci..
 
Quand j'aurai un peu de temps, je testerai le dataGrid bien sur..
 
merci  :hello:


Message édité par dymezac le 28-03-2007 à 14:08:23
n°1535042
MagicBuzz
Posté le 28-03-2007 à 14:16:38  profilanswer
 

le datagrid est 100% "personalisable", simplement en utilisant "datarepeater". il va reprendre la structure des lignes de ton datatable, et te laisser choisir ce que tu mets dans tes lignes. genre au lieu de faire un affichage de type tableau, tu peux vouloir faire des vignettes photo + prix pour un site ecommerce par exemple.
 
ensuite, niveau attributs JS, plusieurs choses :
1/ à l'heure ou plus personne (ou presque) n'est en RTC, économiser quelques Ko de bande passante est quelquechose de superflu
2/ un site correctement conçu doit fonctionner à 100% même sans la présence de JS
3/ c'est à toi de décider si tu fais des aller/retour ou non : au lieu d'utiliser le "onclick" d'un objet serveur, tu peux utiliser "attributes" et ajouter un attribut "onclick" qui sera rendu en HTML, et donc côté client

n°1535047
_synapse_
Posté le 28-03-2007 à 14:19:15  profilanswer
 

MagicBuzz a écrit :

le datagrid est 100% "personalisable", simplement en utilisant "datarepeater". il va reprendre la structure des lignes de ton datatable, et te laisser choisir ce que tu mets dans tes lignes. genre au lieu de faire un affichage de type tableau, tu peux vouloir faire des vignettes photo + prix pour un site ecommerce par exemple.
 
ensuite, niveau attributs JS, plusieurs choses :
1/ à l'heure ou plus personne (ou presque) n'est en RTC, économiser quelques Ko de bande passante est quelquechose de superflu
2/ un site correctement conçu doit fonctionner à 100% même sans la présence de JS
3/ c'est à toi de décider si tu fais des aller/retour ou non : au lieu d'utiliser le "onclick" d'un objet serveur, tu peux utiliser "attributes" et ajouter un attribut "onclick" qui sera rendu en HTML, et donc côté client


 
Je suis assez d'accord là dessus, mais va falloir expliquer celà aux promoteurs fou d'ajax en ce moment dont c'est le principal argument :D

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  HTMLControls et/ou WebControls ?

 

Sujets relatifs
Plus de sujets relatifs à : HTMLControls et/ou WebControls ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR