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

 

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

Για Decision Makers

Îåêßíçóå áðü ôï ìÝëïò kchristo. Τελευταία δημοσίευση από το μέλος kchristo στις 30-11-2011, 14:33. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  29-11-2011, 10:27 68409

    Για Decision Makers

    Διάβασα πρόσφατα ένα εξαιρετικό άρθρο (αν και λίγο μεροληπτικό) για το VSLS και το γιατί κάποιος αξίζει να επενδύσει. Επειδή στην παρουσίαση στο ItProDev2011 διέκρινα μια διάθεση κάποιων να "πειστούν" για το αν πρέπει να εμπιστευτούν το LightSwitch για LOB applications, παραθέτω το link για κάθε ενδιαφερόμενο
    1+1 = 3 για πολύ μεγάλες τιμές του 1
  •  29-11-2011, 16:45 68417 σε απάντηση της 68409

    Απ: Για Decision Makers

    Νομίζω ότι μάλλον κάνει λάθος συγκρίσεις το συγκεκριμένο άρθρο, άσε που οι "Decision Makers" δεν θα είχαν μεγάλη όρεξη να το διαβάσουν όπως είναι. Δεν συζητάμε για HTML vs Sivlerlight ούτε για το αν αξίζει να χρησιμοποιήσει κανείς μοντέλα. Μάλιστα, θα έλεγα ότι τίποτε απ' όσα προσφέρει το LightSwitch δεν είναι καινούριο:

    • Η δημιουργία εφαρμογών με βάση μοντέλα είναι παλιά υπόθεση. Θα μπορούσες να πεις ότι πάμε πίσω στις πρώτες 4GL προσπάθειες.
    • Το Silverlight vs HTML επίσης δεν έχει νόημα καθώς LOB εφαρμογές βασισμένες σε scaffolding υπάρχουν επίσης εδώ και πάρα πολύ καιρό. Μην πω ότι το Ruby on Rails θα μπορούσε να ισχυριστεί ότι το έκανε πρώτο.
    • 3-Tier: Δίνει μία καλή, τυπική θα έλεγα, υλοποίηση για 3-tier εφαρμογή, όπως θα την έφτιαχνε κάποιος ο οποίος έχει εμπειρία σε 3-tier.

    Από την άλλη παρέχει ελάχιστα σε δύσκολους τομείς, τους οποίους αντιμετωπίζουν με διάφορους τρόπους άλλες παρόμοιες εφαρμογές. Χωρίς λύσεις σε αυτό τον τομέα θα είναι δύσκολο να το χρησιμοποιήσει κανείς σε σχετικά περίπλοκα περιβάλλοντα:

    • Concurrency, Conflict resolution? Αυτά που δίνει το LS είναι τα εντελώς βασικά.
    • Security? Υποτυπώδες, σε επίπεδο "δείχνω οθόνη".
    • Schema Versioning? Ποιό schema versioning? Πως θα κάνω deploy ένα νέο σχήμα πάνω από παλιά δεδομένα?
    • Business rules ή workflow: Τίποτε. Αν δεν μπορείς να ορίσεις κάποιους κανόνες, δεν μπορείς να χρησιμοποιήσεις την εφαρμογή για κάτι πέρα από Data Entry. Και αν το σκεφτείς, ελάχιστες εφαρμογές κάνουν ΜΟΝΟ data entry.
    • Reporting: Ούτε καν totals στα detail views.

    Το Holy Grail του Corporate Computing τα τελευταία ΧΥ χρόνια είναι να μπορούν οι business χρήστες να ορίσουν τις φόρμες και τις διαδικασίες τους χωρίς να καταφεύγουν στη βοήθεια του IT. Το LightSwitch ξεκινάει κοιτάζοντας το πρώτο (και ευκολότερο) κομμάτι και ο χρόνος θα δείξει αν μπορέσει να χτυπήσει και το δεύτερο. Χωρίς υποστήριξη για διαδικασίες, δύσκολα θα χρησιμοποιηθεί για ουσιαστικές εφαρμογές.

    Αυτό που προσφέρει το Lightswitch είναι ότι δίνει μία εύκολη δυνατότητα σχεδίασης του μοντέλου και του UI στους "business" χρήστες ενώ τους κρύβει τα πιο περίπλοκα θέματα όπως reporting, security, concurrency, versioning κλπ. Αυτό είναι καλό γιατί επιτρέπει σε αυτούς τους χρήστες να σχεδιάσουν την εφαρμογή "όπως θέλουν" πολύ γρήγορα και με χαμηλό κόστος. Από την άλλη, οτιδήποτε πιο προχωρημένο θα πρέπει να γίνει από έμπειρους προγραμματιστές.

    Το ευχάριστο είναι ότι από τη στιγμή που οι "business" χρήστες δεν έχουν πρόσβαση στον κώδικα, αποφεύγονται οι "ατυχείς" παρεμβάσεις η δουλειά των προγραμματιστών γίνεται πολύ ευκολότερη.

    Αν ήθελα να περιγράψω κάπως το Lightswitch θα έλεγα ότι είναι κάπως σαν Silverlight scaffolding με client side designer. Ακόμα είναι σε έκδοση 1 οπότε λογικό είναι πιο προχωρημένες δυνατότητες να λείπουν. Αυτές ελπίζω ότι θα προστεθούν σιγά-σιγά. Θα είναι ευκαιρία για τους έμπειρους προγραμματιστές να προσφέρουν τις υπηρεσίες που λείπουν τώρα από το LightSwitch ..... μέχρι να τις βγάλει η ίδια η Microsoft και να τους "θάψει" ... (οπότε θα προσφέρουν migration στη "νέα" υπηρεσία")

    Πού θα πάει? Το μέλλον θα δείξει. Η Microsoft πρόσφατα "έσφαξε" το Oslo, το project το οποίο προσπαθούσε να δώσει μία ουσιαστική Model Driven πλατφόρμα. Η φιλοσοφία του "παραμετροποιήσιμου από το χρήστη" βρίσκεται και πίσω από το SharePoint - που μόνο εύκολα παραμετροποιήσιμο δεν θα το έλεγες. Το LightSwitch ξεκινάει κοιτώντας προς το "κάτω" μέρος της αγοράς προσφέροντας βασικές υπηρεσίες, χωρίς να φαίνεται κάποιο σοβαρό εμπόδιο στην επεκτασιμότητα του - για την ώρα.

    Οι πρώτες ενδείξεις είναι ενθαρρυντικές και σίγουρα για το κόστος του αξίζει. Θα δούμε στο μέλλον αν μπορέσει να καλύψει και σενάρια πέρα από το Data Entry.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  29-11-2011, 18:22 68419 σε απάντηση της 68417

    Απ: Για Decision Makers

    Concurrency : Δεν σε καλύπτει αυτό που έχει; Σου βγάζει και μία φόρμα και σου λέει αναλυτικά τι τιμή έχει η βάση τι τιμή έχει η εφαρμογή.

    Security : Είναι για φόρμες αλλά όχι μόνο. Τουλάχιστον εγώ το χρησιμοποιώ και για άλλα πράγματα. Δώσε μου μία ιδέα όμως να καταλάβω τι εννοείς.

    Schema Versioning : Όταν κάνεις publish ένα project στις διάφορες επιλογές έχει δημιουργία βάσης ή update βάσης. Όταν επιλέξεις update σου ζητάει με ποια βάση θα συγκρίνει για τις αλλαγές. Αν και ποτέ δεν έχω τρέξει την συγκεκριμένη διαδικασία μου δίνει την εντύπωση πως είναι schema updating. Δεν είναι;

    Business Rules / Workflows : Όπως είπες δεν κάνει για σχετικά περίπλοκα σενάρια και θα συμφωνήσω σε αυτό.

    Reporting : Απαράδεκτοι να έχουν αφήσει εκτός κάτι τέτοιο που θέλει να αντικαταστήσει Access. Filemaker, Excel.

  •  29-11-2011, 19:41 68421 σε απάντηση της 68419

    Απ: Για Decision Makers

    Όσον αφορά το Concurrency, αυτό που περιγράφεις είναι το εντελώς βασικό, το λες στο χρήστη και τον αφήνεις να βγάλει άκρη. Είναι το λιγότερο που μπορεί να γίνει και αν μιλάμε για απλές data entry εφαρμογές ίσως να είναι και το μόνο που έχει νόημα. Υπάρχουν πλήθος άλλων δυνατοτήτων:
    • Να στείλεις την αλλαγή σε κάποιο αρμόδιο για έγκριση. Φαντάσου δύο ταξιδιωτικά γραφεία να κλείσουν ταυτόχρονα την ίδια θέση.
    • Να κρατήσεις την αλλαγή αυτού που είναι παραπάνω στην ιεραρχία. 
    • Να ειδοποιήσεις και τους δύο όταν ανοίγουν το ίδιο αντικείμενο, ίσως και να δείξεις ζωντανά τις αλλαγές που κάνει ο ένας στην οθόνη του άλλου
    • Να ΜΗΝ επιτρέπεις καθόλου updates παρά μόνο δημιουργία νέων εγγραφών - κλασσικό παράδειγμα ο λογαριασμός τραπέζης. Κάθε συναλλαγή δημιουργεί μία νέα εγγραφή που αλλάζει το υπόλοιπο. Δεν υπάρχει ποτέ conflict γιατί καμμία συναλλαγή δεν προσπαθεί να "γράψει" το υπόλοιπο.
    Για το security, το συνηθισμένο είναι permissions per item με συνηθισμένες επεκτάσεις τα ιεραρχικά permissions ανά group και ανά ρόλο. Το αντίστοιχο με τα permissions που υπάρχουν στα Windows, τον SQL Server και τα forums όπως το DotNetZone. Παρότι μπορείς να το προσεγγίσεις φιλτράροντας τί θα δείξεις την ώρα που ανοίγει η φόρμα, είναι 1000 φορές προτιμότερο να έχεις ένα σωστό μοντέλο (και οθόνη για να βάζεις τα permissions!). Σκέψου μόνο τί θα γίνει αν κάνεις ένα λαθάκι σε μία μόνο οθόνη ....

    Για το versioning, αυτό που περιγράφεις δεν έχει να κάνει με το versioning. Schema Versioning είναι το τί κάνεις όταν αλλάζει το μοντέλο? Δυνατότητες υπάρχουν πολλές:
    • Αλλάζεις τη βάση? Αυτό είναι το ελάχιστο και είναι αυτό που κάνει το LS. Και τί θα γίνει με διαγραμμένες στήλες, νέες στήλες, αλλαγές στην ιεραρχία ή τα relations? Θα βάλεις NULL, θα σβήσεις δεδομένα? Θα αφήσεις ορφανές εγγραφές? 
    • Θυμάσαι  όλα τα schema versions και δείχνεις κάθε εγγραφή με τον σωστό τρόπο. Έτσι δουλεύουν όλες οι document databases, αλλά είναι κάτι το οποίο πρέπει να φτιαχτεί από το μηδέν στα RDBMS

    Για το Reporting, δεν είναι απαράδεκτο, είναι λογικό αν σκεφτείς σε ποιούς απευθύνεται. Ένα report συνήθως διαβάζει ένα μεγάλο ποσοστό των πινάκων που χρησιμοποιεί και μπορεί άνετα να μπλοκάρει όλες τις άλλες διαδικασίες. Το απολύτως τελευταίο πράγμα που θέλεις είναι να δώσεις τη δυνατότητα reporting σε κάποιον που δεν καταλαβαίνει το κόστος. Αυτό είναι δουλειά για ένα προγραμματιστή, ο οποίος θα ξέρει πότε να φτιάξει reporting views (αν υπάρχουν λίγες εγγραφές) ή θα φτιάξει μία Reporting database στην οποία θα εξάγει περιοδικά τα δεδομένα από τη αρχική βάση. 
    Ίσα-ίσα, πολύ καλά κάνανε και το αφήσανε απέξω!

    Σκέψου απλά το "χρυσό" σενάριο για το LightSwitch: ο business χρήστης (ή ο consultant) σχεδιάζει το μοντέλο και την οθόνη, ο προγραμματιστής δημιουργεί τα features που λείπουν (όπως security model, reporting) για να καλυφθεί το σενάριο του business χρήστη. 

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  29-11-2011, 20:57 68423 σε απάντηση της 68421

    Απ: Για Decision Makers

    Παναγιώτη ήμαστε ακριβώς σε αντίθετες όχθες.

    Τα παραδείγματα που αναφέρεις είναι σωστά όμως δεν ταιριάζουν σε μία εφαρμογή που φτιάχτηκε για χρήστες με λίγες γνώσεις προγραμματισμού. Άλλωστε εσύ ο ίδιος ανέφερες ότι για πιο περίπλοκα σενάρια/εφαρμογές το Lightswitch δεν είναι η καλύτερη λύση.

    Άραγε πόσες εφαρμογές που έχεις φτιάξει, επιτρέπουν μόνο update. Εγώ μία μόνο, όλες οι υπόλοιπες είχαν update. Σωστή επιλογή λοιπόν η προεπιλεγμένη τιμή να επιτρέπει Updates. Ακόμα όμως και αν δεν θέλεις το δηλώνεις σε επίπεδο Entity στο Lightswitch και τέλος.

    Για το security. Τι θέλει ο απλός ο χρήστης. Ακόμα και η ανάλυση που θα κάνει στο μυαλό του ταιριάζει με το security που έχει το lightswitch.

    Για το verisoning όπως έγραψα δεν ξέρω τι κάνει η συγκεκριμένη ενέργεια αναλυτικά όμως η δυνατότητα που σου δίνει το Publish να κάνεις update μία βάση εκεί παραπέμπει. Όσο για τις επιμέρους ερωτήσεις επάνω στο θέμα αυτό είναι άλλο να λες δεν υποστηρίζει versioning και άλλο με ποιον τρόπο το κάνει. Και στην τελική μόνος σου καταλήγεις πως για να θυμούνται τα RDBMS το schema version θα πρέπει να επανασχεδιαστούν οπότε τι να σου κάνει το Lightswitch;

    Και τέλος για το reporting κάθετα αντίθετος. Το reporting έπρεπε να υπάρχει. ΑΠΑΡΑΔΕΚΤΟ. Στην τελική τι πας να αντικαταστήσεις; Σε ποιους απευθύνεσαι; Σε ανθρώπους που μέχρι χθες δούλευαν σε Access, Excel, Filemaker με λίγες γνώσεις και ξαφνικά τους λες όχι δεν βάλαμε γιατί ένα report μπορεί να μπλοκάρει διαδικασίες κτλ κτλ. Θα σε κοιτάνε με μισό μάτι και θα λένε τι είναι τώρα αυτό; Μα εγώ στην Access το έκανα και το σχεδίαζα και όπως ήθελα. Άτε πείσε τον ότι εσύ είσαι ο σωστός...

    Δεν λέω ότι είναι το καλύτερο που υπάρχει εκεί έξω όμως από την άλλη καταλαβαίνω και σε ποιους απευθύνεται.

  •  29-11-2011, 21:59 68428 σε απάντηση της 68423

    Απ: Για Decision Makers

    Να το πούμε αλλιώς τότε. Η εφαρμογή που θα έφτιαχνες με τέτοιο τρόπο με Access θα κοβόταν από το τμήμα IT της εταιρείας και θα ήσουν αναγκασμένος να την δουλεύεις μόνος στο laptop σου. Στο σπίτι. 

    Με το Lightswitch το IT μπορεί να βεβαιωθεί ότι δεν θα υπάρξουν παρατράγουδα όταν γίνει deployment σε παραγωγή και το reporting θα παίξει σωστά χωρίς να αναγκαστούν να αγοράσουν βαρύ σίδερο. Έτσι θα επιτραπεί στον business χρήστη να φτιάξει αυτός το μοντέλο και τις οθόνες του. Έτσι θα επιτραπεί ο business χρήστης να κάνει deploy την εφαρμογή στους servers.



    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  29-11-2011, 22:50 68429 σε απάντηση της 68428

    Απ: Για Decision Makers

    Ναι θα συμφωνήσω και σε αυτό που λες. Βασικά συμφωνώ με ότι έχεις πει, αλλά αναφέρεσαι ένα επίπεδο παραπάνω από αυτό που πάει να κάνει και το κενό που θέλει να καλύψει το lightswitch.

    Η πραγματικότητα έχει δείξει άλλα πράγματα και αυτό το βλέπω και εγώ σε πάρα πολλές εταιρείες. Το κεντρικό σύστημα που έχουν δεν τους καλύπτει σε όλες τις επιμέρους εργασίες/λειτουργίες ακριβώς όπως θα ήθελαν και έτσι δημιουργήθηκε η ανάγκη κάποιοι υπάλληλοι με λίγες γνώσεις προγραμματισμού να στραφούν προς Excel, Access κτλ. Συνήθως οι εφαρμογές αυτές είναι για ένα άτομο ή για ένα μικρό department μιας μικρής εταιρείας και η βάση βρίσκεται σε κάποιο workstation.

    Παραδείγματα να σου πω πολλά, σε μία εταιρεία το σύστημά τους δεν κρατάει τη θέση του προϊόντος. Ένας αποθηκάριος με Access το έφτιαξε για να κάνει πιο εύκολα την δουλειά του. Σε έναν οργανισμό ήθελαν αρχειοθέτηση των εγγράφων με βάση τον αριθμό τη απόφασης, όμως το πρόγραμμα κάνει την αρχειοθέτηση με βάση τον αριθμό πρωτοκόλλου. Και άλλα πολλά που λίγο πολύ βλέπω σε κάθε εταιρεία. Και δεν υπάρχουν παντού εταιρείες με υπαλλήλους που να έχουν έστω και αυτές τις γνώσεις για να ασχοληθούν με Access. Ένα πρόγραμμα σαν το Lightswitch θα ήταν μεγάλη βοήθεια ακόμα και για εμένα που μερικές φορές θέλω να βοηθήσω αλλά δεν έχω τον χρόνο σε τέτοια απλά πράγματα.

    Αυτό το κενό πάει να καλύψει το Lightswitch. Και το πάει ένα βήμα παραπάνω για να μπορεί να το εγκρίνει και το IT department αν υπάρχει τέτοιο. Έχοντας σαν βάση τον SQL και δημιουργώντας μία 3-tier εφαρμογή. Όμως μέχρι εκεί. Αυτός ήταν ο στόχος. Ο χρήστης να έχει τον έλεγχο και απλά το IT στα όρια του επιτευκτού να μπορεί να το εγκρίνει. Η έλλειψη reporting κάνει ένα βήμα πίσω. Και στην τελική αν πρόκειται για Department mostly μικροεφαρμογές σιγά το τι θα πει το IT προκειμένου να έχω τα reports μου. Ας έχω την βάση σε κάποιο Workstation μέσα στο τμήμα αρκεί να έχω reporting. Αυτό θα σκεφθεί ο κάθε απλός χρήστης.

    Θα δεις, θα το βάλουν το reporting, πιο πολύ βασίζω το γεγονός ότι δεν έχει μπει γιατί δεν είχαν τον χρόνο. Αν δεν το βάλουν όμως θα πρέπει να επαναπροσδιορίσουν για το ποιους τελικά απευθύνεται το Lightswitch. Αυτή την στιγμή έτσι όπως έχουν τα πράγματα δεν μπορείς να έχεις reporting σε μία Web lightswitch εφαρμογή παρά μόνο εάν πληρώσεις. Ακόμα όμως και Out Of Browser να ήταν θα έπρεπε είτε να έχεις Office στο μηχάνημα ή να γνωρίζεις HTML. Απαράδεκτα πράγματα. Ακόμα και το Export to Excel που έχει είναι απαράδεκτο. Σου κάνει Export ανά σελίδα. Πρόσφατα είχα ένα πελατολόγιο με 9 σελίδες τον 45 εγγραφών. Έπαθα την πλάκα μου όταν συνηδειτοποίησα ότι έκανε export ανά page. Και τι ήθελα; Μία εκτύπωση με πελάτη διεύθυνση και τηλέφωνο για να μπορεί ένας υπάλληλος να έρθει σε επαφή μαζί τους όταν θα πήγαινε ταξίδι για να τους δει.

  •  30-11-2011, 14:33 68445 σε απάντηση της 68429

    Απ: Για Decision Makers

    Λοιπόν για να πάρω κι εγώ θέση στην "διαμάχη" που μάλλον καταλήγει σε συμφωνία.
    Εγώ λοιπόν διέκρινα και μου άρεσε στο LS ότι με σώζει από πολλή χαμαλοδουλειά και παράλληλα μου δίνει την δυνατότητα είτε στον client αλλά πολύ περισσότερο στο server να υλοποιήσω πολλά παραπάνω από αυτά που μου δίνει από default το LS. Ήδη αναπτύσσουμε μια κάθε άλλο παρά απλή εφαρμογή (PLM) και έχουμε καταφέρει μέχρι τώρα είτε με τις out of the box δυνατότητες είτε με extensions και custom controls στον client είτε με υλοποίηση διαφόρων υπηρεσιών που πρέπει να τρέχουν ας πούμε στο "background" της εφαρμογής (είτε αυτά αφορούν workflows, είτε notifications, είτε auditing) να υλοποιήσουμε όλα τα requirements όχι απλά με επιτυχία αλλά και γράφωντας "καλό" κώδικα, χωρίς να χρειαστεί να κάνουμε οποιδήποτε "ταρζανιά". Θέλω να πω, εγώ αυτό που βλέπω στο LS είναι ότι σου δίνει κάποια πράγματα, σίγουρα δεν είναι ένα ολοκληρωμένο application framework, αλλά σε σώζει από πάρα πολύ κόπο για πράγματα που θα έπρεπε να κάνεις (με την μορφή framework) για οποιαδήποτε data-driven εφαρμογή και παράλληλα, καθώς στο τέλος της μέρας, που έλεγε και η κ.Μανουσοπούλου για το cloud, είναι το .NET stack που παίζει από κάτω, μπορείς να κάνεις σωστά και αποτελεσματικά ό,τι παραπάνω θες. Δεν είναι ούτε το Holly Grail, ούτε το υγρό πυρ του application development. Είναι απλά ένα ακόμη εργαλείο το οποίο για ένα μεγάλο εύρος εφαρμογών μπορεί να σε σώσει από πολύ χρόνο και κόπο σε μια εποχή που το ΤΤΜ είναι μάλλον σημαντικό.
    Επίσης για όλες τις αδυναμίες, που κανείς δεν θα μπορούσε παρά να συμφωνήσει, πρέπει να υπενθυμίσω ότι είναι ακόμη version 1.0 και μάλιστα βιαστική καθώς για προφανείς λόγους την βγάλανε νωρίτερα από ότι αρχικά προγραμματίζονταν.
    Ξέρω ότι ακούγομαι σαν LightSwitch Evangelist, αλλά το μόνο που θέλω να πω είναι ότι καλό είναι να μην κρίνουμε το LS για αυτά που δεν είναι (και που ποτέ δεν είπε κανείς ότι είναι) αλλά γι' αυτό που είναι.
    Φυσικά και καταλαβαίνω απόλυτα τις απόψεις και τις επιφυλάξεις των 2 προλαλησάντων, απλά η πολύ θετική εμπειρία που έχω μέχρι τώρα (με πολλά προβλήματα πρέπει να παραδεχτώ) με κάνει να είμαι pro και όχι against.

    1+1 = 3 για πολύ μεγάλες τιμές του 1
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems