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 actif
    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
    Points : 288
    Points
    288
    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 confirmé

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    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
    Points : 1 234
    Points
    1 234
    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 confirmé

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    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 éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    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