Το LightSwitch δεν παρέχει κάποιο δικό του μηχανισμό για printing ούτε για emailing (για την προηγούμενη ερώτηση σου). Για να κάνεις αυτές τις λειτουργίες θα πρέπει να γράψεις τον αντίστοιχο κώδικα.
Πρέπει να καταλάβεις ότι το LightSwitch ουσιαστικά είναι ένα scaffolding που σου επιτρέπει να φτιάξεις σχετικά εύκολα φόρμες και πίνακες από ένα υποτυπώδες μοντέλο, αλλά από πίσω παράγει κώδικα VB.NET ή C#. Οτιδήποτε ξεφεύγει από τις βασικές data entry λειτουργίες μπορείς να το κάνεις γράφοντας κώδικα.
Δεν είναι ένα τελικό προϊόν (όπως η Access ή τα Oracle Forms), οπότε δεν σου παρέχει κάποιο συγκεκριμένο τρόπο για εκτύπωση ή emailing. Αν το έκανε αυτό, θα σε έδενε με μία υλοποίηση η οποία θα ήταν σίγουρα ακατάλληλη για οτιδήποτε πέρα από toy applications. Και στις δύο ερωτήσεις σου, μία έτοιμη λύση θα ήταν εντελώς λάθος:
- Στο emailing, αυτό που ζητάς δεν είναι η αποστολή email (γίνεται πανεύκολα με την κλάση SmtpClient με λίγες γραμμές) αλλά το mail merge, η δημιουργία template για το email, η μαζική παραγωγή των documents που θα σταλούν και η αποστολή τους. Με άλλα λόγια, είναι περισσότερο θέμα reporting παρά mailing. Που μας φέρνει στο δεύτερο ...
- Και στο printing, αυτό που ζητάς είναι reporting, όχι απλό printing. Μπορείς άνετα να τυπώσεις μία φόρμα χρησιμοποιώντας την κλάση PrintDocument. Αυτό το tutorial δείχνει πως να το κάνεις αυτό. Αν προσέξεις, το 90% του tutorial έχει να κάνει με το πως να φτιάξεις τη φόρμα σου, και ο κώδικας που εκτυπώνει είναι μόλις 20 γραμμές.
Πολύ σπάνια όμως μπορείς να καλύψεις τις ανάγκες μίας εφαρμογής τυπώνοντας μία φόρμα.
Κατά κανόνα θέλεις να δώσεις στον τελικό χρήστη (ή τον administrator της εφαρμογής), τη δυνατότητα να μορφοποιήσει ο ίδιος την εκτύπωση αντί να επεμβαίνει ο προγραμματιστής για να αλλάξει τη φόρμα.
Επιπλέον, ελάχιστες εκτυπώσεις (πέρα από τα ... mail merge) εκτυπώνουν απλά στοιχεία. Οι περισσότερες απαιτούν συγκεντρωτικά στοιχεία (π.χ. αθροίσματα) ή μία μορφή master/detail.
Τέλος, σε πολλές περιπτώσεις πρέπει να μπορεί ο τελικός χρήστης να δημιουργήσει ο ίδιος νέες εκτυπώσεις χωρίς να πειράξει την εφαρμογή.
Γι αυτό το λόγο είναι προτιμότερο να χρησιμοποιήσεις κάποιο reporting εργαλείο όπως τα Reporting Services, Active Reports, Telerik , DevExpress, Crystal Reports. Κάποια από αυτά μπορεί ήδη να δουλεύουν με LightSwitch, αν και αυτό είναι μάλλον δευτερεύον.
Το LightSwitch δεν φτιάχτηκε ως "η νέα Access" και δεν παρέχει καν όλα τα features που σου δίνει η Access, ούτε πρόκειται. Δεν είναι ένα τελικό προϊόν που θα επιτρέψει σε όσους δεν ξέρουν προγραμματισμό να φτιάξουν εύκολα εφαρμογές.
Αντιθέτως, το LightSwitch επιτρέπει σε business χρήστες που δεν ξέρουν προγραμματισμό να σχεδιάσουν μία νέα εφαρμογή ξεκινώντας από το μοντέλο και εμποδίζοντας τους να κάνουν τα βασικά λάθη που γίνονται συνήθως (π.χ. 100 πεδία ανά πίνακα, συνεχώς ανοικτή σύνδεση στη βάση, απευθείας κλήσεις στη βάση από τις φόρμες κλπ).
Από την άλλη στους προγραμματιστές να πάρουν την εφαρμογή που έφτιαξαν οι business χρήστες και να προσθέσουν το επιπλέον functionality που απαιτείται μέσω του Visual Studio.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos