Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

OMEGA Framework and CMS - Alpha 0.2

Îåêßíçóå áðü ôï ìÝëïò ABS. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 25-02-2011, 12:39. Υπάρχουν 54 απαντήσεις.
Σελίδα 2 από 4 (55 εγγραφές)   < 1 2 3 4 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-02-2011, 21:03 63695 σε απάντηση της 63690

    Απ: OMEGA Framework and CMS - Alpha 0.2

    ABS:
    Ναι, πολύ ωραία έχεις και την επιλογή να κάνεις χρήση ενός JIT και...?


    Δεν έχεις την επιλογή...τον χρησιμοποιείς το JIT. Η αρχική σου δήλωση ήταν οτι έχουμε να κάνουμε με κάτι interpreted. Ε, δεν έχουμε να κάνουμε με κάτι interpreted, έχουμε να κάνουμε με κάτι το οποίο γίνεται compile σε 2 φάσεις μεν, αλλά ΔΕΝ είναι interpreted. 

    Περαν αυτού, τα υπόλοιπα ανοίγουν μια ολόκληρη νέα συζήτηση.



    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  25-02-2011, 00:58 63706 σε απάντηση της 63693

    Απ: OMEGA Framework and CMS - Alpha 0.2

    1. Φυσικά και συγκρίνω την PHP με το συνδυασμό  ASP.NET/C#
    2. Φυσικά και είναι interpreted. Απλά στο .NET το byte code γίνεται compile στο runtime σε native κώδικα και μετά το τρέχεις, ενώ στη PHP ο κώδικας γίνεται compiled on-the-fly!
    3. To γνωρίζω....
    4. Έχεις δίκιο. Γενικά το ανέφερα τουλάχιστον ώς προς το initialization του execution.
  •  25-02-2011, 01:02 63707 σε απάντηση της 63695

    Απ: OMEGA Framework and CMS - Alpha 0.2

    cap:
    ABS:
    Ναι, πολύ ωραία έχεις και την επιλογή να κάνεις χρήση ενός JIT και...?


    Δεν έχεις την επιλογή...τον χρησιμοποιείς το JIT. Η αρχική σου δήλωση ήταν οτι έχουμε να κάνουμε με κάτι interpreted. Ε, δεν έχουμε να κάνουμε με κάτι interpreted, έχουμε να κάνουμε με κάτι το οποίο γίνεται compile σε 2 φάσεις μεν, αλλά ΔΕΝ είναι interpreted. 

    Περαν αυτού, τα υπόλοιπα ανοίγουν μια ολόκληρη νέα συζήτηση.



     Φυσικά και είναι interpreted γιατί πολύ απλά πριν παράγεις τον native κώδικα περνάς απο τη φάση της ενδιάμεσης γλώσσας, όπως και η Java.
    Compiled λέμε μια γλώσσα που πραγματικά περνάει από το στάδιο του source σε ASM σε ένα pass.
    Αυτά που μου λες τώρα καταργούν ότι έχω μάθει στις σπουδές μου τόσα χρόνια + τη δουλειά μου...

  •  25-02-2011, 01:05 63708 σε απάντηση της 63694

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Panagiotis Kefalidis:
    ABS:
    Ναι, πολύ ωραία έχεις και την επιλογή να κάνεις χρήση ενός JIT και...?
     
    Για να είσαι portable όμως το αφήνεις ως έχει και πάλι δεν έχεις καλύτερη ταχύτητα από την PHP που είναι όλη γραμμένη σε native C!
    Άρα λοιπόν το να κάνω χρήση loose ends και λιγότερο κώδικα .ΝΕΤ για μένα είναι πολύ σημαντικό για μεταφερσιμότητα αλλά και ταχύτητα!

    Τι εννοείς "έχεις και την επιλογή"; Αυτή ΕΙΝΑΙ η επιλογή. Μετά απο το compilation απο τον JIT, το "πακέτο" που ονομάζεται assembly κι έχει μέσα, metadata, IL, resources κλπ, γίνεται compile σε κάτι που λέγεται "native assembly" έτσι ώστε να μην χρειάζεται κάθε φόρα να γίνει compile. Αυτό γίενται για λόγους optimization για διαφορετικές αρχιτεκτονικές συστημάτων (CPU κλπ).

    Ξεκίνα απο τα βασικά, γιατί χάνεις μπόλικο ζουμί και θα έχεις πρόβλημα. Τώρα εάν δεν θέλεις να ακούσεις 4-5 διαφορετικούς ανθρώπους που σου το λένε αυτό, δικαίωμά σου I guess Smile


    Το πακέτο που λες εσύ είναι ένας ενδιάμεσος byte code που γίνεται στο running time compile....δηλαδή όπως στη Java.
    Όμως έχεις και την επιλογή να το κάνεις έτσι, native εξαρχής χάνοντας όμως το portability. Αυτό είπα.
    Απλούστατο!
  •  25-02-2011, 01:14 63709 σε απάντηση της 63695

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Επίσης για όλους εσάς που λέτε ότι είστε και MVP....

    Για διαβάστε ξανά και δείτε αν έχω άδικο σε αυτά που λέω.


    Αν αυτό δε, το θεωρείτε ASSEMBLY....και όχι intermediate language τότε σας προτείνω να διαβάσετε ξανά τις βασικές εντολές ASM και αρχές αρχιτεκτονικής Η/Υ.

    1
    2
    3
    4
     
    ldloc.0
    ldloc.1
    add
    stloc.0    // a = a + b or a += b;

  •  25-02-2011, 01:35 63710 σε απάντηση της 63709

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Θα σου προτείνω φιλικά να χαμηλώσεις τους τόνους. Δεν γράφουμε εδώ για να τσακωθούμε, ούτε για να ξεκινήσουμε flame war php vs .net. Γνώσεις ανταλλάσσουμε.

    Αλλο πράγμα ο php processor (interpreter) και άλλο πράγμα το JIT. Σε όλα όσα μας παραθέτεις δεν αναφέρεται κάπου κάποιο hint οτι JIT = interpreter. (Εντάξει, δεν τα διάβασα και όλα, αλλά αναμενόμενο είναι να μην αναφέρεται). 

    Α, και δεν είμαι mvp. :)








    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  25-02-2011, 01:51 63711 σε απάντηση της 63706

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Όπως είπα και πιο πριν δεν θέλω να ξεκινήσω flame. Η συζήτηση ήδη έχει ξεφύγει από το θέμα του τίτλου. Γενικά, ως προς το performance, οι αναφορές που έχω βρει είναι υπέρ της ASP.NET. Οι πηγές, όμως, χωρίς να μπορεί κανείς να τις χαρακτηρίσει αναξιόπιστες, προέρχονται κυρίως από το "άλλο" στρατόπεδο. Μια ισορροπημένη συζήτηση ως προς τα υπέρ και τα κατά της κάθε πλατφόρμας είναι αυτή εδώ.

    Ένα σημείο που πρέπει να σκεφτείς, ανεξάρτητα από το ποια τεχνολογία είναι καλύτερη, είναι ο λόγος που μπήκες σ' αυτή τη διαδικασία αναζήτησης. Συνήθως οι συνάδελφοι που ξεκινούν μία τέτοια κουβέντα απευθύνονται πρωτίστως στον εαυτό τους, ειδικά όταν δεν έχουν ασχοληθεί με μια τεχνολογία και προβάλλουν επιχειρήματα για να μην εγκαταλείψουν αυτό που ήδη χρησιμοποιούν για χάρη του "καινούριου". Κάτι τέτοιο μπορεί να μην ισχύει στην περίπτωσή σου και να είσαι ειδικός και στις δύο τεχνολογίες. Το θέμα είναι ότι ΚΑΙ οι δύο βρίσκονται αυτή τη στιγμή εδώ. Ειδικά αυτή την περίοδο, το ποια θα χρησιμοποιήσει κανείς εξαρτάται από τους πελάτες ή/και τους συνεργάτες του. Το καλοκαίρι που μας πέρασε έκανα κάποιες συζητήσεις για συνεργασία (η οποία τελικά δεν ευοδώθηκε) και η προϋπόθεση ήταν να μάθω PHP. Στρώθηκα στο διάβασμα και δεν θεωρώ τον εαυτό μου χαμένο. Το ότι δεν αξιοποίησα άμεσα ό,τι έμαθα είναι άσχετο. Στο μέλλον ίσως μου χρειαστεί. Το ηθικό δίδαγμα είναι:

    Είτε συμφωνούμε είτε διαφωνούμε με αυτά που γράφεις δεν έχει καμία απολύτως σημασία. Αν χρειαστεί να χρησιμοποιήσεις κάτι το οποίο δεν σου "αρέσει", η προτίμησή σου δεν παίζει κανένα ρόλο. Όλα εξαρτώνται από τη δουλειά που σου αναθέτουν να κάνεις.

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  25-02-2011, 03:08 63712 σε απάντηση της 63690

    Απ: OMEGA Framework and CMS - Alpha 0.2

    ABS:

    Άρα λοιπόν το να κάνω χρήση loose ends και λιγότερο κώδικα .ΝΕΤ για μένα είναι πολύ σημαντικό για μεταφερσιμότητα αλλά και ταχύτητα!

    Ωπ. Τώρα το παρατήρησα αυτό και είναι ιδιαίτερα ενδιαφέρον.

    Ας αφήσουμε την ταχύτητα στην άκρη, με ενδιαφέρει ο όρος "μεταφερσιμότητα". Εννοείς ότι ο κώδικας γράφεται έτσι για να μπορεί να μεταφερθεί μεταξύ διαφορετικών πλατφορμών; Αν ναι, ποιό είναι το στοιχείο βάσει του οποίου περιλαμβάνεις ή εξαιρείς features; Οσα είναι κοινά ή συγγενικά μεταξύ των πλατφορμών - στόχων;

    (Το αν συμφωνώ ή διαφωνώ το αφήνω για μετά, γιατί αν δεν έχω καταλάβει καλά δεν θα έχει νόημα να παραθέσω απόψεις)




    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  25-02-2011, 08:50 63713 σε απάντηση της 63712

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Ίσως πάλι να εννοεί ότι μπορεί να συνδεθεί σε διαφορετικές βάσεις? Γιατί από τη στιγμή που επιλέγεις .NET η μεταφερσιμότητα ανάμεσα σε πλατφόρμες περιορίζεται σε Windows και Mono ... και μόνο.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  25-02-2011, 09:01 63714 σε απάντηση της 63713

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Μήπως εννοεί την ανάπτυξη ως SDK για χρήση από διαφορετικές πλατφόρμες; Αλλά και αυτό δεν νομίζω να γίνεται... διαβάζουν άλλα περιβάλλοντα assemblies .ΝΕΤ;
    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  25-02-2011, 10:06 63716 σε απάντηση της 63714

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Καλημέρα σας.

    Εξηγούμαι....

    Καταρχήν το .NET "τρέχει" σε Windows, Linux και σε Mac. Εγώ στο iPhone έχω application σε .NET και παίζει καλά. Απλά δεν είναι free το implementation.

    Όμως πέρα από τα Windows στα άλλα λειτουργικά δεν έχει υλοποιηθεί στο 100%!
    Με αποτέλεσμα να έχω ένα framework που να μπορεί να τρέχει σε διαφορετικά O/S αλλά με περιορισμένα features.

    Άρα κοιτάζω να μην κάνω χρήση μη υλοποιημένων βιβλιοθηκών. Επίσης προσπαθώ να γράφω κώδικα που δεν είναι τόσο στενά δεμένο με το  CIL και το .ΝΕΤ γενικά για να μην έχω τον JIT στην εκκίνηση να κάνει compile classes που επιβαρύνουν την εκτέλεση.

    Παράδειγμα:
    Αντί για χρήση  της string.Concat κάνω απλά σύνδεση των strings με "+".
    Έτσι στο CIL θα έχω data σε μορφή string και όχι κλήσεις σε classes/functions της .NET.

    Τέλος για να προλάβω κάποιον που είπε ότι η .ΝΕΤ είναι compiled και θα μου πει ότι παράγει ένα executable και αυτό το θεωρεί απόδειξη, εξηγώ ότι το executable που παράγεται είναι ένα PE που έχει ένα μέρος του native code ο οποίος ελέχγει εάν υπάρχει στο σύστημα το .ΝΕΤ και μετά καλεί τον JIT για να μεταγλωτίσει τον ενδιάμεσο byte code, που βρίσκεται μέσα στο PE, σε κώδικα εκτελέσιμο για το συγκεκριμένο σύστημα.

    Άρα λοιπόν έχουμε μια διαδικασία interpretation και final compilation στο σύστημα. Ε, δε μπορεί να πει κανείς ότι ο εκτελούμενος κώδικας προέκυψε ακριβώς απο μεταγλώτιση αλλά από μια διαδικασία interpretation και custom μεταγλώτισης. Αυτό στη πληροφορική δε θα βρείτε πουθενά να λέγετε μεταγλώτιση. 
    Πιο δόκιμο είναι να πούμε μετάφραση όπως και στη Java.

    Αυτά είχα να πώ και διαμαρτύρομαι που έχουμε το θέμα αυτό στα πρώτα βήματα γιατί γράφω .ΝΕΤ τα τελευταία 5 χρόνια, απλά έχω μια φιλοσοφία στο μυαλό μου που ίσως σε κάποιους ξυνίσει.

    Ευχαριστώ.

  •  25-02-2011, 10:35 63718 σε απάντηση της 63716

    Απ: OMEGA Framework and CMS - Alpha 0.2

    "Θα ήθελα feedback και πιο πολύ για το framework (OMEGA - DLL)!"

    Καταρχήν, όταν ζητάς feedback είναι θέμα στοιχειώδους ευγένειας να αποδέχεσαι την κριτική χωρίς να γίνεσαι εριστικός. Στο κάτω-κάτω αυτός που σου απαντά αφιέρωσε χρόνο από τη ζωή του για να κοιτάξει τον κώδικά σου. Σχόλια του τύπου "Επίσης για όλους εσάς που λέτε ότι είστε και MVP...." δεν τιμούν ούτε εσένα, ούτε εμάς.

    Από εκεί και πέρα ως προς το θέμα interpreter vs JIT compiler το θέμα έχει ως εξής:

    Στο JIT compilation, το compilation γίνεται σε δύο φάσεις. Στην πρώτη φάση ο εκάστοτε language compiler παράγει MSIL ωστόσο ο κώδικας περνάει από διάφορα optimizations. Κλασική περίπτωση:

    int[] nums= { 1, 2, 3, 4 }; 
    for (Int32 i = 0; i <= nums.Length-1; i++)

        Console.WriteLine(nums[ i ].ToString());
    }

    Αν δεις τον MSIL κώδικα, θα παρατηρήσεις ότι ο C# compiler (και ο VB compiler αν ο κώδικας ήταν σε VB) έχει πάρει την πρωτοβουλία να υπολογίσει το nums.Length-1 και να το κάνει assign σε μια μεταβλητή ώστε να μην το κάνει σε κάθε iteration του loop. Και αυτό είναι ένα από τα πολλά optimizations. To σημαντικό εδώ είναι ότι γίνεται compile ο κώδικας συνολικά.

    O MSIL κώδικας που παράγεται είναι έτοιμος τέλος πάντων μετά από αυτό το στάδιο και γίνεται δεύτερη φορά compile σε native κώδικα ώστε να παραχθεί optimized κώδικας ανάλογα με το "περιβάλλον" του MSIL κώδικα. Ο JIT compiler ενεργοποιείται σε διάφορες περιπτώσεις. Βασικά ενεργοποιείται την πρώτη φορά που τρέχει το assembly αλλά όχι μόνο. Υπάρχουν περιπτώσεις που ξανατρέχει, όπως για παράδειγμα όταν:

    • Αλλάξει η έκδοση του .NET Framework
    • Αλλάξει η CPU (μιλάμε για αρχιτεκτονική)
    • Αλλάξει η έκδοση του ΛΣ
    • Αλλάξουν οι εκδόσεις των assemblies που χρησιμοποιεί το assembly
    • Αλλάξουν τα security demands του κώδικα
       

    Ο JIT compiler δεν κάνει συνολικό compilation σε native κώδικα αλλά σταδιακά, ωστόσο αυτό δεν συναπάγεται ότι κάνει JIT compile γραμμή-γραμμή αλλά ανά method call. Αυτό έχει ως συνέπεια να μην σπαταλιέται χρόνος και CPU σε methods που δεν θα κληθούν. Από εκεί και πέρα εφόσον υπάρχει o JIT compiled κώδικας μια φορά και εφόσον δεν έχει συμβεί κάτι από τα προηγούμενα που ανέφερα, δεν ξανασυμβαίνει JIT compilation.

    Όπως αντιλαμβάνεσαι αυτό που λες εσύ "διαδικασία interpretation και final compilation" ότι δεν έχει καμία σχέση με το τι πραγματικά γίνεται και σίγουρα καμία μα καμία σχέση με το τι γίνεται στην PHP.

    Τώρα, ως προς το δεύτερο κομμάτι:

    Λες ότι προτιμάς αυτό:

            static string Test1(string a, string b)
            {
                return a + b;
            }

    από αυτό:

            static string Test2(string a, string b)
            {
                return string.Format("{0}{1}", a, b);
            }

    Γιατί στον IL κώδικα "θα έχω data σε μορφή string και όχι κλήσεις σε classes/functions της .NET"

    Αν δεις με το Ildasm τον παραγόμενο κώδικα, θα παρατηρήσεις ότι και στις δύο περιπτώσεις θα έχεις κλήση στα methods της κλάσης String:

        L_0000: ldarg.0
        L_0001: ldarg.1
        L_0002: call string [mscorlib]System.String::Concat(string, string)
        L_0007: ret

    και

        L_0000: ldstr "{0}{1}"
        L_0005: ldarg.0
        L_0006: ldarg.1
        L_0007: call string [mscorlib]System.String::Format(string, object, object)
        L_000c: ret

    αντίστοιχα. Οπότε καταλαβαίνεις ότι αυτό που υποστηρίζεις, έστω και στο πιο απλό επίπεδο του string concatenation είναι τελείως ανεδαφικό.

    Ίσως είναι καιρός να αναθεωρήσεις την φιλοσοφία που γράφεις .ΝΕΤ κώδικα.


     


    Vir prudens non contra ventum mingit
  •  25-02-2011, 10:47 63719 σε απάντηση της 63718

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Δεν ξέρω για τα Mac, αλλά από όσο ξέρω για το mono, και διορθώστε με εάν κάνω λάθος, τουλάχιστον οι στατικές μέθοδοι string.whatever είναι όλες υλοποιημένες.

    Και έχω και την ίδια εντύπωση για τα sqlparameters.

    Και η ερώτηση παραμένει: μπορείς να κάνεις reference dll του .net  από πχ php; ή οτιδήποτε άλλο;

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  25-02-2011, 10:50 63721 σε απάντηση της 63718

    Απ: OMEGA Framework and CMS - Alpha 0.2

    Απλά τα πήρα λίγο, sorry.

    Πάμε παρακάτω...

    Σε ευχαριστώ που με επαληθεύεις.

    1. Άρα δε μπορούμε να αναφερόμαστε στο .ΝΕΤ ως compiled...

    2. Ο κώδικας που μου δείχνεις αν και στη προκυμένη περίπτωση καλεί όντως την string ξανά έχει όμως μια γραμμή κώδικα παραπάνω L_0000: ldstr "{0}{1}"
         Άρα όντως η δική μου φιλοσοφία είναι ορθή ως προς το optimization. 
         Υπάρχουν όμως και περιπτώσεις πολύ πιο σύνθετες που ο κώδικας που γράφω θα είχε δραματικές διαφορές για τον JIT.



  •  25-02-2011, 10:51 63722 σε απάντηση της 63719

    Απ: OMEGA Framework and CMS - Alpha 0.2

    dimos.homatas:
    Δεν ξέρω για τα Mac, αλλά από όσο ξέρω για το mono, και διορθώστε με εάν κάνω λάθος, τουλάχιστον οι στατικές μέθοδοι string.whatever είναι όλες υλοποιημένες.

    Και έχω και την ίδια εντύπωση για τα sqlparameters.

    Και η ερώτηση παραμένει: μπορείς να κάνεις reference dll του .net  από πχ php; ή οτιδήποτε άλλο;

    Για ποιο λόγο να θέλω να κάνω reference του .ΝΕΤ DLL στη PHP????????

    Αυτό που μου λες είναι αδιανόητο :-S
Σελίδα 2 από 4 (55 εγγραφές)   < 1 2 3 4 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems