Συμφωνώ με το Mitsara. Η ερώτηση είχε κάποιο νόημα πριν 4-5 χρόνια, σήμερα όμως .... όλοι σχεδόν έχουν Internet! Ή έχουν έκδοση Windows με ενσωματωμένο το .NET! Ή το έχουν ήδη, γιατί κάποιο άλλο πρόγραμα το εγκατέστησε, κλπ, κλπ, κλπ.
Επιπλέον, δεν θα υπήρχε κάποιο πραγματικό όφελος. Το .ΝΕΤ 2.0 Runtime έχει μέγεθος > 20 MB, τα μεταγενέστερα ακόμα μεγαλύτερο. Οι εφαρμογές έχουν μέγεθος συνήθως 1-2 MB. Γιατί να προσθέσει κανείς και το Runtime το οποίο κατά πάσα πιθανότητα ήδη υπάρχει?
Η ιδέα να ενσωματωθεί στο binary και το Runtime είχε πρωτοεμφανιστεί το 2002 καθώς οι περισσότεροι δεν είχαν καταλάβει τη διαφορά Runtime από απλές βιβλιοθήκες. Αφού μπορώ να ενσωματώσω τα Dll στο binary μου, γιατί να μην το κάνω και με το Runtime? Το Runtime όμως ΔΕΝ είναι βιβλιοθήκη. Είναι το περιβάλλον στο οποίο τρέχουν ΟΛΕΣ οι εφαρμογές .NET, έχει ρυθμίσεις που αφορούν το μηχάνημα και το domain, εγκαθιστά services, τροποποιεί τον IIS, και γενικώς κάνει αλλαγές που αφορούν το μηχάνημα στο οποίο εγκαθίσταται, όχι μόνο μία εφαρμογή.
Στην πραγματικότητα, πρόκειται για κακή ιδέα. Όχι μόνο το Runtime είναι μεγάλο, αλλά υπάρχει κίνδυνος για ασυμβατότητες αν ο χρήστης έχει ήδη εγκατεστημένη την ίδια έκδοση με κάποια επιπλέον hotfixes. Ακόμα χειρότερα, η εφαρμογή θα πρέπει να περιλαμβάνει κάθε hotfix και service pack που βγαίνει, γιατί απλά θα είναι αδύνατο πλέον το upgrade μέσω του Windows Upgrade. Αυτό θα οδηγήσει σε ακόμα μεγαλύτερο πρόβλημα καθώς ο δημιουργός του προγράμματος θα πρέπει να υποστηρίξει κάθε έκδοση της εφαρμογής, για κάθε πιθανό patch και upgrade,
... και να αναλάβει φυσικά την ευθύνη αν κάτι πάει στραβά λόγω έλλειψης κάποιου critical security update.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos