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

 

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

Μετάβαση ERP εφαρμογής σε VS2008

Îåêßíçóå áðü ôï ìÝëïò Αλέξανδρος Δημητρίου. Τελευταία δημοσίευση από το μέλος nikolaosk στις 19-06-2009, 16:36. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  18-06-2009, 18:21 51818

    Μετάβαση ERP εφαρμογής σε VS2008

    Αγαπητοί φίλοι Καλησπέρα ,

    Σήμερα λοιπόν στην εταιρεία που εργάζομαι με κάλεσε ο product manager και μου ανέθεσε ένα project. Πριν σας αναφέρψ σχετικά με το project και πρίν ζητήσω την άποψη σας θα σας δώσω μερικές πληροφορίες.

    Ένα από τα προϊόντα της εταιρείας μας είναι μια  καλομελετημένη ERP εφαρμογή γραμμένη σε FOX και SQL 2000. Το μεγαλύτερο ποσοστό των λειτουργιών της εφαρμογής εκτελείται από τη βάση με λίγους triggers και πολύ περισσότερες stored procedure (γύρω στις 183).

     

    Αυτά που μου ζητήθηκαν λοιπόν είναι τα εξής:

    1) Μετάβαση του server layer σε MS WINDOWS SERVER 2008

    2) Μετάβαση της βάσης σε SQL 2008 μόνον σε ότι αφορά tables indexes , views , constraints.

    3) Μεταφορά της εφαρμογής σε περιβάλλον ανάπτυξης VS 2008 - Visual Basic

    4) Όλη η εφαρμογή θα πρέπει να γραφτεί σε APIs ώστε να μπορούμε να τοποθετήσουμε κομμάτια από την εφαρμογή σε άλλες ξένες εφαρμογές όταν και αν αυτό απαιτηθεί.

    5) Κατάργηση triggers και Stored Procedures. Όλα θα πρέπει να μετατραπούν σε βιβλιοθήκες που θα εκτελούνται από τον κώδικα της VB.

    Ερωτήσεις λοιπόν σχετικά με 4 και 5

    Πως θα μετατρέψω τους triggers και τις stored procedures σε dll και να τα καλώ μέσα άπο τον κωδικά μου?

    Τι πορεία θα πρέπει να ακολουθήσω ώστε όλη η εφαρμογή να χωριστεί σε APIs?

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

     

    Ευχαριστώ παρα πολύ για το χρόνο σας.

     

     


    Αυτοί που ζουν γενναίοι είναι ενάρετοι,κάνουν ένδοξες πράξεις και πέθαινουν αιώνια ξακουστοί....
    Μ.Αλέξανδρος...IV Crusade...
  •  18-06-2009, 20:52 51821 σε απάντηση της 51818

    Απ: Μετάβαση ERP εφαρμογής σε VS2008

    Δε νομίζω ότι έχω αντιληφθεί πλήρως το τι ακριβώς έχεις κληθεί να υλοποιήσεις, αλλά θα κάνω κάποιες υποθέσεις. Όταν μιλάς για API μάλλον εννοείς τη δημιουργία βιβλιοθηκών που μπορεί κάποιος να κάνει register και να τις χρησιμοποιήσει προκειμένου να δημιουργήσει κάτι καινούριο, το οποίο μπορεί και να μην έχει σχέση με την αρχική εφαρμογή. Δηλαδή, θέλεις όλη η εφαρμογή να έχει τη μορφή ενός framework. Ως παράδειγμα αναφέρω τα StatBeans. Μπορεί κάποιος να τα χρησιμοποιήσει για να φτιάξει το δικό του στατιστικό πακέτο ή μια οποιαδήποτε άλλη εφαρμογή που να χρησιμοποιεί στατιστικές διαδικασίες. Όσον αφορά στη δική σου περίπτωση, ένα framework που βρήκα είναι το JFire (σε Java). Μπορείς να πάρεις ιδέες από το documentation για το πως είναι δομημένο.

    Αν τώρα ο project manager εννοεί ότι θέλει να φτιάξεις plug ins του ERP σας για εφαρμογές τρίτων, φαντάζομαι ότι θα πρέπει να σου πει ποιες είναι αυτές οι εφαρμογές. Για να καταλάβεις τις προθέσεις του πρέπει να του ζητήσεις να σου ξεκαθαρίσει τι ακριβώς θέλει. Επειδή σ' αυτές τις περιπτώσεις η επικοινωνία μπορεί να είναι λίγο προβληματική, ζήτησέ του να σου πει ποια ανταγωνιστική εφαρμογή έχει στο μυαλό του, η οποία διαθέτει σε κάποιο βαθμό τα χαρακτηριστικά που ζητά από σένα να υλοποιήσεις.

    Όσον αφορά τους Triggers και τις Strored Procedures, μάλλον εννοεί ότι η λειτουργικότητά τους πρέπει να ενσωματωθεί στο framework. Το πως θα γίνει αυτό πρέπει να το ανακαλύψεις μόνο σου, γιατί μόνο εσύ γνωρίζεις τι κάνουν αυτές οι stored procedures.

    Τέλος, τι εννοείς όταν λες ότι δε μπορεί να χρησιμοποιήσεις κανένα εργαλείο σχεδιασμού "ακόμα και για τις φόρμες σου";

    Συγγνώμη αν δεν έχω καταλάβει σωστά τις απορίες σου και οι απαντήσεις μου δεν είναι προς την κατεύθυνση που ψάχνεις...


    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  18-06-2009, 23:09 51825 σε απάντηση της 51821

    Απ: Μετάβαση ERP εφαρμογής σε VS2008

    Φιλε μου θα προσπάθησα να γίνω όσο πιο κατανοητός μπορούσα αλλά όπως φαίνεται δεν τα κατάφερα και καλά και δε σου κρύβω ότι διαβάζοντας ξανά το post μου θεωρώ οτι δεν έχεις και άδικο. Γι αυτό λοιπόν θα προσπαθήσω να επαναλάβω και να απαντήσω αναλυτικά στις απορίες σου.

    Ειπες:

    Δε νομίζω ότι έχω αντιληφθεί πλήρως το τι ακριβώς έχεις κληθεί να υλοποιήσεις, αλλά θα κάνω κάποιες υποθέσεις. Όταν μιλάς για API μάλλον εννοείς τη δημιουργία βιβλιοθηκών που μπορεί κάποιος να κάνει register και να τις χρησιμοποιήσει προκειμένου να δημιουργήσει κάτι καινούριο, το οποίο μπορεί και να μην έχει σχέση με την αρχική εφαρμογή. Δηλαδή, θέλεις όλη η εφαρμογή να έχει τη μορφή ενός framework.

    Απαντώ:

    Αυτό ακριβώς έχω κληθεί να υλοποιήσω. Να αντιγράψω την εφαρμογή χρησιμοποιώντας ένα νέο περιβάλλον ανάπτυξης (VS 2008) διαχωρίζοντας τη σε APIs ώστε να μπορεί μια άλλη εφαρμογή να κληρονομήσει τις κλάσεις της και να εκτελέσει κάποιες από τις λειτουργίες της. Σκέψου ότι έχεις μια CRM εφαρμογή στην επιχειρησή σου και θές να προσθέσεις και ένα ERP στην ίδια εφαρμογή. Θα αγοράσεις από εμάς τα APIs που θα εκτελούν τις συμφωνημένες διαδικασίες και θα τα ενσωματώσεις στην υπάρχουσα εφαρμογή σου. Δε μιλάμε για κάποια συγκεκριμένη εφαρμογή στην οποία θα θέλαμε να "κοτσάρουμε" και τη δική μας μα μια οποιαδήποτε εφαρμογή αναπτυγμένη στο ίδιο περιβάλλον. Επίσης όπως είπες να μπορείς να επεξεργαστείς μόνος σου μέρη της εφαρμογής. να τροποποιήσεις φόρμες , πεδία , stored procedures και triggers.

    Ειπες:

    Ως παράδειγμα αναφέρω τα StatBeans. Μπορεί κάποιος να τα χρησιμοποιήσει για να φτιάξει το δικό του στατιστικό πακέτο ή μια οποιαδήποτε άλλη εφαρμογή που να χρησιμοποιεί στατιστικές διαδικασίες. Όσον αφορά στη δική σου περίπτωση, ένα framework που βρήκα είναι το JFire (σε Java). Μπορείς να πάρεις ιδέες από το documentation για το πως είναι δομημένο.

    Απαντώ:

    Θα το κοιτάξω μήπως μου δώσει κάποιο μπούσουλα μα νονίζω πως ξεφευγει τελείως από το ζητηθέν περιβάλλον ανάπτυξης δηλαδη VS2008.

     

    Ειπες:

    Αν τώρα ο project manager εννοεί ότι θέλει να φτιάξεις plug ins του ERP σας για εφαρμογές τρίτων, φαντάζομαι ότι θα πρέπει να σου πει ποιες είναι αυτές οι εφαρμογές. Για να καταλάβεις τις προθέσεις του πρέπει να του ζητήσεις να σου ξεκαθαρίσει τι ακριβώς θέλει. Επειδή σ' αυτές τις περιπτώσεις η επικοινωνία μπορεί να είναι λίγο προβληματική, ζήτησέ του να σου πει ποια ανταγωνιστική εφαρμογή έχει στο μυαλό του, η οποία διαθέτει σε κάποιο βαθμό τα χαρακτηριστικά που ζητά από σένα να υλοποιήσεις.

    Απαντώ:

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

    Ειπες:

    Όσον αφορά τους Triggers και τις Strored Procedures, μάλλον εννοεί ότι η λειτουργικότητά τους πρέπει να ενσωματωθεί στο framework. Το πως θα γίνει αυτό πρέπει να το ανακαλύψεις μόνο σου, γιατί μόνο εσύ γνωρίζεις τι κάνουν αυτές οι stored procedures.Απαντώ:

    Οι stored procedures εκτελούν περίπου το 90% των λειτουργιών της εφαρμογής και αυτές δυστυχώς θα πρέπει να καταργηθούν σε επίπεδο βάσης. Θα πρέπει όπως ορθά είπες να ενσωματωθούν στα APIs που θα αποτελούν τα τμήματα της εφαρμογής. Αυτό που χρειάζομαι πραγματικά αυτή τη στιγμή είναι μια ιδέα,μια μικρή άποψη σχετικά με τον τρόπο που θα υλοποιηθεί αυτό. Σκέψου ότι η τιμολόγηση από την καταχώρηση των ειδών μέχρι την ενημέρωση αποθήκης, κινήσεων πελατών,και εκτύπωση παραστατικού γίνεται μέσα απο stored procedure και triggers. Δεν ζητάω να μου πείς τι procedures να ενσωματώσω στον κώδικα μα το πως θα το κάνω. Τι εργαλεία πρέπει να χρησιμοποιήσω,τι επιλογές έχω ώστε τις διαδικασίες που εκτελουν οι stored procedures και οι triggers μου να τις εκτελεί μια κλάση που θα καλείται μέσα από την VB.

    Ειπες:

    Τέλος, τι εννοείς όταν λες ότι δε μπορεί να χρησιμοποιήσεις κανένα εργαλείο σχεδιασμού "ακόμα και για τις φόρμες σου";

     Απαντώ:

    εννοώ ότι δεν θέλει να ανοίξω το form designer του visual studio να κάνω drag and drop objects και να ολοκληρώσω τη φόρμα μου μα τα πάντα να ολοκληρωθούν strongly typed.

     

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

     

     


    Αυτοί που ζουν γενναίοι είναι ενάρετοι,κάνουν ένδοξες πράξεις και πέθαινουν αιώνια ξακουστοί....
    Μ.Αλέξανδρος...IV Crusade...
  •  19-06-2009, 09:07 51833 σε απάντηση της 51825

    Απ: Μετάβαση ERP εφαρμογής σε VS2008

    Για να καταλάβεις το έργο που σου έχει ανατεθεί θα πρέπει να μπορείς να καταλάβεις ή να γνωρίζεις για τα περίφημα layers στην αρχιτεκτονική των εφαρμογών.

    Βασικά και χονδρικά, έχουμε τρία layers, το Presentation Layer που συνιστά το UI της εφαρμογής, το Business Layer που είναι κώδικας που υλοποιεί τη λογική της εφαρμογής και το Data Layer που έχει να κάνει με το data access. Τώρα, στην πράξη αυτά τα layers σπάνε σε περισσότερα ωστόσο για αρχή ας δούμε αυτά τα τρία.

    Το κύριο ερώτημα είναι γιατί να έχω αυτά τα layers. Φαντάσου ότι ο πελάτης σου ζητάει μια φόρμα όπου ο χρήστης θα περνάει ένα νούμερο και στο button click θα ελέγχεται αν το νούμερο είναι θετικό και αν είναι, θα αποθηκεύεται στη βάση. Το φτιάχνεις αυτό εύκολα και το δίνεις στον πελάτη. Την επόμενη μέρα σε παίρνει ο πελάτης και σου λέει, "ωραίο αυτό που έφτιαξες αλλά θέλω να έχω το ίδιο functionality και σε μια web form". Οπότε τώρα υπάρχουν δύο λύσεις. Η πρώτη είναι να κάνεις copy/paste τον κώδικα σε ένα web form πράγμα που σε οδηγεί να σκεφτείς ότι αν αρχίσει να μεγαλώνει το project θα έχεις δύο πανομοιότυπες εκδόσεις του κώδικα που σημαίνει ότι θα έχεις διπλές αλλαγές, διπλά bugs, διπλός κόπος, κλπ. Άσε που αρχίζεις να πονηρεύεσαι και σκέφτεσαι ότι αν αύριο-μεθαύριο σου ζητήσει και mobile client θα έχεις και τρίτη έκδοση του κώδικα. Η δεύτερη λύση είναι να περάσεις τον κοινό κώδικα σε ένα άλλο library. Αυτό το library θα είναι το Business Layer, θα έχει μια κλάση που θα καλείται από τον εκάστοτε client, θα παίρνει ένα νούμερο και θα απαντάει αν έγινε σωστά όλη η διαδικασία. Με αυτόν τον τρόπο μπορείς να έχεις ό,τι είδους client θες, ενώ η "λογική" της εφαρμογής είναι σε ένα κεντρικό σημείο.

    Περιχαρής, δίνεις τη νέα έκδοση στον πελάτη και μετά από μια εβδομάδα σου λέει "μια χαρά η εφαρμογή, σου έχω έναν πελάτη που την είδε και του άρεσε αλλά απ' ότι μου είπε έχει Oracle και εσύ την έχεις φτιάξει να παίζει με SQL Server". Ουσιαστικά αυτό είναι το ίδιο πρόβλημα που είχες και προηγουμένως. Copy/Paste με μικροαλλαγές; Όχι βέβαια. Παίρνεις τη λογική και τη σπας. Το μισό κομμάτι παίρνει έναν αριθμό (που του έρχεται από κάπου) και ελέγχει αν είναι μεγαλύτερος του μηδέν. Το άλλο μισό πάει σε ένα τρίτο library που γράφει το νούμερο στη βάση. Τώρα έχεις τα τρία layers, με το τρίτο να υφίσταται σε διαφορετικές εκδόσεις, ανάλογα με τη βάση που έχει ο πελάτης. Αν ο αριθμός είναι θετικός, το Business Layer καλεί το Data Layer, του περνάει το νούμερο και αυτό καταλαβαίνει τι πρέπει να κάνει.

    Το σημαντικό είναι ότι αυτά τα layers είναι ανεξάρτητα με την έννοια του ότι κάνει το καθένα τη δουλίτσα του και όταν τελειώσει μεταβιβάζει την συνέχεια της διαδικασίας.

    Τώρα, στην περίπτωσή σου τα layers είναι λίγο μπερδεμένα. Για παράδειγμα, στη βάση υπάρχουν triggers και stored procedures που πιθανά έχουν business λογική πέρα από τη data access λογική. Θα πρέπει λοιπόν να επανασχεδιάσεις την εφαρμογή ώστε το κάθε κομμάτι να πάει στο κατάλληλο layer.  Χρειάζεται να μάθεις επακριβώς πως δουλεύει η παλιά εφαρμογή που έχεις στα
    χέρια σου και να σχεδιάσεις μια νέα σύμφωνα με τις αρχές που σου περιέγραψα παραπάνω. Επίσης, θα πρότεινα πριν να προχωρήσεις στο έργο που ανέλαβες, να φτιάξεις μια μικρή pet εφαρμογή σε αυτό το στυλ ώστε να καταλάβεις πως δουλεύει η αρχιτεκτονική και να σου βγουν απορίες και ερωτήσεις.

    Μπορείς να βρεις περισσότερο υλικό στα παρακάτω links
    http://www.codeplex.com/LayerSample
    http://apparch.codeplex.com/Wiki/View.aspx?title=Pocket%20Guides

    Καλό διάβασμα!


    Vir prudens non contra ventum mingit
  •  19-06-2009, 09:16 51834 σε απάντηση της 51818

    Απ: Μετάβαση ERP εφαρμογής σε VS2008

    Να προσθέσω και εγώ τον οβολό μου. 

    Καταρχήν συμφωνώ απόλυτα με τον Kelman σύμφωνα με τον τρόπο που θα πρέπει να κινηθείς. Ειδικά η χρήση ενός ανεξάρτητου Business Layer το οποίο στην ουσία θα περιέχει όλο το fanctionality των Stored Procs ώστε να είναι portable. 

    Επίσης θα σου συνιστούσα να χρησιμοποιήσεις ένα app framework για το UI. Δες αυτό της DevExpress το οποίο είναι ιδανικό για αυτό που πας να φτιάξεις. Ένα ERP κρύβει πολύ UI interaction με τον χρήστη οπότε αν το κάνεις μόνο σου θα χρειαστείς να γράψεις πολύ και δύστροπο κώδικα.
     

    Manos
  •  19-06-2009, 11:12 51839 σε απάντηση της 51825

    Απ: Μετάβαση ERP εφαρμογής σε VS2008

    Μαζί με τις άλλες απαντήσεις, θεωρώ ότι στο πελάτη θα πρέπει να δίνεις αρκετά περισσότερα πράγματα από plain libraries (framework). Θα πρέπει να δίνεις μια όσο το δυνατό πληρέστερη έτοιμη εφαρμογή erp, δηλαδή κάτι για να χρησιμοποιήσει αμέσως, καθώς και ένα τροπον τινά IDE. Για παράδειγμα, πως θα φτιάχνει νέα reports ή θα σχεδιάζει νέες φόρμες; Συν τη δυνατότητα να γράφει κώδικα όπου απαιτείται. Δε μπορείς να τον υποχρεώσεις να αγοράσει το Visual Studio. Μετά, όλες αυτές οι προσθήκες θα πρέπει να μπορούν να ενσωματωθούν είτε στο έτοιμο δικό σου erp είτε στην όποια δική του εφαρμογή. Το project είναι πολύ πιο πολύπλοκο απ' όσο φαίνεται. Τουλάχιστον, έτσι το βλέπω εγώ...
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  19-06-2009, 13:04 51856 σε απάντηση της 51833

    Απ: Μετάβαση ERP εφαρμογής σε VS2008

    Kleman ίσως είναι η καλύτερη και πιο απλουστευμένη επεξήγηση που έχω δει για να εξηγήσει τα layers Yes. Να σε ρωτήσω έρχεται με copyright ή δικαιούμαι να την χρησιμοποιώ και εγώ?

    http://www.iezekiel.com
  •  19-06-2009, 15:16 51865 σε απάντηση της 51856

    Απ: Μετάβαση ERP εφαρμογής σε VS2008

    Iezekiel:
    Kelman ίσως είναι η καλύτερη και πιο απλουστευμένη επεξήγηση που έχω δει για να εξηγήσει τα layers Yes. Να σε ρωτήσω έρχεται με copyright ή δικαιούμαι να την χρησιμοποιώ και εγώ?


    ++

    Εγώ προτείνω να κάνουμε ένα δώρο στο παλικάρι μια κούπα με λογότυπο dotNETZone.gr για καφέ, τις μεγάλες ξέρετε!

  •  19-06-2009, 16:36 51870 σε απάντηση της 51818

    Απ: Μετάβαση ERP εφαρμογής σε VS2008


    φίλε αλέξανδρε,

    έχεις δύσκολο δρόμο μπροστά σου. αλλά πίστεψε με όταν τελειώσεις με το καλό αυτό το project  θα έχεις ανέβει 3 επίπεδα πάνω σαν developer.

    δες εδώ

    πολύ ωραία videos που εξηγούνε το data access layer και business logic layer



    τώρα δεν θα το ανέφερα αλλά επειδή το είπε ο manosb "Επίσης θα σου συνιστούσα να χρησιμοποιήσεις ένα app framework για το UI. Δες αυτό της DevExpress το οποίο είναι ιδανικό για αυτό που πας να φτιάξεις."

    Πραγματικά το θεωρώ , αν και δεν το έχω δει αναλυτικά, ότι πραγματικά πρέπει να πας σε μια τέτοια λύση.

    Τυχαίνει αυτή την εποχή , να διοργανώνεται από μια εταιρεία εκπαίδευσης που συνεργάζομαι μια ημερίδα πάνω σε αυτό το Framework.

    Μην το πάρεις σαν διαφήμιση, απλά στο λέω σε περίπτωση που σε ενδιαφέρει...

    δες λοιπόν αυτό

    όσο αφορά τον μάνο (kelman) έχει δώσει μια πολύ καλή εξήγηση. kudos to kelman.

    αλλά υποψιάζομαι ότι τα έχει μάθει όλα αυτά από πικρή εμπειρία (την μία μέρα ο πελάτης θέλει το ένα και την άλλη το άλλοBig Smile)

    πρέπει οπωσδήποτε να ξεχωρίσεις στα stored procs ποιο κομμάτι κάνει Business login things (αν έχουμε λιγότερο από 12 τεμάχια του τάδε προιόντος, στέλνεται ένα email στον admin) και ποια κομμάτια του stored proc , βάζουνε δεδομένα στην βάση.



    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems