IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Javascript Server Side


Sujet :

JavaScript

  1. #1
    Membre �prouv�
    Profil pro
    D�veloppeur .NET
    Inscrit en
    Novembre 2010
    Messages
    127
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 127
    Par d�faut Javascript Server Side
    Bonjour,
    Je suis arriv�e sur cette vid�o: [ame="http://www.dailymotion.com/video/xggsky_le-javascript-server-side-faire-un-point-quentin-adam_tech"]Dailymotion - Le javascript server side, faire un point (Quentin Adam) - une vid�o High-tech et Science@@AMEPARAM@@http://www.dailymotion.com/swf/video/xggsky@@AMEPARAM@@xggsky[/ame]
    en cherchant des infos sur Alfresco...
    Question simple: je pense ne pas avoir bien saisi l'int�r�t d'utiliser jss... selon moi, l'utilit� principale est de placer des �v�nements c�t� serveur. Si j'ai bien compris, est-ce que quelqu'un aurait un exemple pr�cis pour illustrer jss? Si je n'ai pas compris, est-ce que qqn pourrait m'expliquer clairement pourquoi on utilise du javascript c�t� serveur?
    Autre question : est-ce que qqn connait Alfresco?
    Merci

  2. #2
    Membre chevronn�

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Par d�faut
    Une conf�rence plut�t int�ressante ! Mais je suis d��u ils n�ont pas mentionn�s ma propre techno JSS

    est-ce que qqn pourrait m'expliquer clairement pourquoi on utilise du javascript c�t� serveur?
    Ben comme dit dans la conf�rence cela permet la mutualisation du code dans un m�me langage, un code manipulant une entit� m�tier, peut etre, aussi bien ex�cut� cot� client (sur un navigateur) que coter serveur.

    Par contre cette vid�o laisse sous entendre, que le choix du JavaScript comme langage de r�f�rence est impos� par le fait que c�est le seul langage disponible sur un navigateur par d�faut. Dommage qu�ils ne mettent pas plus l�accent sur les �normes points forts de ce langage�

    Dans mon entreprise nous avons d�cid�s de r��crire les totalit�s de nos applications en JavaScript tournant sur la plateforme .Net, pour toutes nos applications, gr�ce � la techno Jint. Nous observons une r�duction de code de facteur 5 par rapport a du code C#, de plus l��criture en javascript de certaine de nos application, nous ont sauv�s d�un refactoring tr�s bas niveau et tr�s critique pour l�ensemble de nos applications, gr�ce aux m�caniques des port�s de variable par closure et de l�absence de signature pour les fonctions.

    Bref le JavaScript cot� serveur c�est bien, le JavaScript pour toute les applications logiciel c�est encore mieux ! Mais pour cela faudra changer les mentalit�s des d�veloppeurs car JavaScript ne poss�de pas un tres bonne image � l�ext�rieur du d�veloppement WEB, moi-m�me j�avais un tres mauvais apriori sur ce langage avant d��tre forcer de l�utiliser

  3. #3
    Membre �prouv�

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par d�faut
    Citation Envoy� par p3ga5e Voir le message
    Nous observons une r�duction de code de facteur 5 par rapport a du code C#
    Ha bon ?
    Vous auriez quelques examples pour illustrer cela ?

  4. #4
    Membre chevronn�

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Par d�faut
    Citation Envoy� par p3ga5e
    Nous observons une r�duction de code de facteur 5 par rapport a du code C#
    Ces r�sultats ont �t� obtenus, en r�alit�, sur la diff�rence de lignes de code lors de la migration de notre client tr�s Lourd (en C# et DirectX) en client pas si Leger (en JavaScript et plugin O3D sur Firefox/Chrome). Je n�ai pas de chiffre sur le gain obtenu sur les applications cot� serveur, a mon avis le gain est sup�rieur.

    Ce gain s�explique plus par un changement radical de nos m�thodes conception que par le changement de langage. Quand on a souhait� migrer notre client lourd, nous avons, d�abord, tent�s un portage afin de traduire nos class C# en JavaScript . . . probl�me aucune notion de m�tadonn�e en JavaScript et les diff�rentes technique de d�finition de Class en JS ne nous convenait pas.
    Donc nous avons abandonn�s la conception POO, d�cid�s de ne pas mod�liser nos entit�s et de r��crire totalement notre client. Notre approche est d��crire des jeux de fonctions qui s�adaptent au type qui la r�f�rence et/ou aux types des arguments ! Au final nous avons que tr�s rarement utilis�s l�h�ritage par prototype et quasiment jamais le polymorphisme.
    Une grande parti de la r�duction de code est donc dus � ce changement de m�thode de conception, qui utilis� en C# est beaucoup moins �l�gant qu�en JavaScript !

    Petit exemple :
    Code JS : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    var Vector2D = 
    {
    	Add : function()
    	{
    		var sum = { x : arguments[0].x, y : arguments[0].y };
    		for(var i=1;i<arguments.length;i++)
    		{
    			sum.x += arguments[i].x;
    			sum.y += arguments[i].y;
    		}
    		return sum;
    	}
    };
     
    var v1 = { x : 1.5, y : 3 };
    var v2 = { x : 2.5, y : -2.3 };
     
    var v3 = Vector2D.Add(v1,v2); // v3 = { x: 4, y: 0.7 }
    Code C# : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    using System;
    using System.Collections.Generic;
     
    static class Program
    {
        static class Vector2D
        {
            static public Dictionary<string, object> Add(params object[] arguments)
            {
                Dictionary<string, object> sum = new Dictionary<string, object>();
                sum["x"] = ((Dictionary<string, object>)arguments[0])["x"];
                sum["y"] = ((Dictionary<string, object>)arguments[0])["y"];
                for (int i = 1; i < arguments.Length; i++)
                {
                    sum["x"] =  (double)sum["x"] + (double)((Dictionary<string, object>)arguments[i])["x"];
                    sum["y"] =  (double)sum["y"] + (double)((Dictionary<string, object>)arguments[i])["y"];
                }
                return sum;
            }
        }
     
        static void Main(string[] args)
        {
            Dictionary<string, object> v1 = new Dictionary<string, object>();
            v1["x"] = 1.5;
            v1["y"] = 3.0;
     
            Dictionary<string, object> v2 = new Dictionary<string, object>();
            v2["x"] = 2.5;
            v2["y"] = -2.3;
     
            Dictionary<string, object> v3 = Vector2D.Add(v1, v2);
            Console.WriteLine(" x: {0} , y : {1}", v3["x"], v3["y"]);
        }
    }
    Le code en C# n�est g�re plus volumineux, en terme de ligne, que le code JavaScript, par contre de part sa nature fortement typ� et system de cast explicite, cela pose quelques probl�mes : les types valeurs manipul�s par des r�f�rences de type objet g�n�re une m�canique de boxing/unboxing tr�s co�teuse au niveau du run-time.

    Le JavaScript permet la m�ta-programmation de mani�re simple par la fonction eval, C# �galement mais de mani�re tr�s complexe (compilation a la vol�e).
    Donc voici un cas d��cole, la s�lection d�entit�s d�une collection par un filtre :
    Code JS : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    var Filter = function(expr)
    {
    	this.Match = eval(
    	[ 	"(function (obj) {",
    		"	with (obj) {",
    		"		return " + expr + ";",
    		"	}",
    		"})"
    	].join('\n'));
    };
     
    Array.prototype.SelectByFilter = function(filter)
    {
    	return this.filter(filter.Match);
    };
     
    var candidas = 
    [	{ Name : 'Pierre', Age: 32 , Permis: false},
    	{ Name : 'Paul', Age: 15,  Permis : 'A' },
    	{ Name : 'Jack', Age: 56 , Permis: false }
    ];
     
    var adultes = candidas.SelectByFilter(new Filter("Age >= 18")); // [ Pierre, Jack ]
    var majeurs_ou_mobiles = candidas.SelectByFilter(new Filter("Age >= 18 || Permis")); // [ Pierre, Paul, Jack]
    Je d�fis quiconque, de r��crire dans autre langage l�exemple ci-dessus en moins de ligne de code !

    Si tu n�es toujours pas convaincus, j�ai encore une multitude d�exemples en resserve

  5. #5
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Citation Envoy� par chadoum Voir le message
    Bonjour,
    ...
    Question simple: je pense ne pas avoir bien saisi l'int�r�t d'utiliser jss... selon moi, l'utilit� principale est de placer des �v�nements c�t� serveur.
    Ben comment dire au tout d�but du d�but js � �t� cr�e pour scripter cot� seveur. sur Netscape serveur.
    et lorsque quelqu'un � envisag� de porter le langage sur le client

    les auteurs de js de l'�poque se sont exclam�s
    "Mais que voulez vous scripter sur le poste du client ?"

    js retrouve sa place d'origine (qu'il n'avait jamais quitt� d'ailleurs)
    il existe de nombreuse impl�mentation de js c�t� seveur.

    A+JYT

Discussions similaires

  1. R�ponses: 2
    Dernier message: 12/04/2012, 10h16
  2. HTML Table sort (server side ou JavaScript)
    Par Soulama dans le forum Struts 1
    R�ponses: 2
    Dernier message: 28/04/2009, 14h07
  3. [AJAX] Annuler une requ�te asynchrone server side
    Par Matthieu Bissat dans le forum ASP.NET
    R�ponses: 2
    Dernier message: 24/01/2007, 20h42
  4. Server side proxy
    Par NR dans le forum ASP
    R�ponses: 2
    Dernier message: 27/09/2006, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo