Ich komme mit der Organisation von Softwareprojekten in Squeak
schlecht zurecht. Vielleicht kann mir jemand helfen, vielleicht fehlt mir auch einfach ein Hinweis auf die richtige Doku. Meine Organisation: Ich habe ein Morf-Projekt namens SQL. Alle meine Klassen landen in einer der Kategorien KlausF-Mysql oder KlausF-MysqlTest. ---> Ist das OK? Ich kann alle Klassen unter KlausF-Mysql* mit Monticello auf einen Server laden. Das verstehe ich. OK. Kein Problem. Ich kann diese Kategorien auch in *.st-Dateien lokal speichern. Ich kann das Projekt SQL in eine *.pr-Datei speichern. Tue ich das, erscheinen 2 Fragen, die ich nicht verstehe: "Would you like to include all the changes ..." und "Some blocks which reference instance- variables are included in this segment ..." ---> Was bedeutet das genau? ---> Wo bekomme ich erklärt, was genau ein Change-Set ist und wie ich steuern kann, was in einem Change-Set erscheinen soll? Wenn ich diese *.pr-Datei in ein frisches Image lade, kommt eine Fehlermeldung "Reading an Instance of ... Which modern class should it translate to?" ---> Was bedeutet das? Wie gehe ich damit um? wie verhindere ich das? Wenn ich meine *.st-Dateien in ein frisches Image lade, klappt das wunderbar. Aber, wenn ich die Tests durchführe, fehlen die Methoden Integer>>asByteArray und ByteArray>>bitXor. Diese Methoden habe ich nicht geschrieben, sie stammen offensichtlich aus einem anderen Monticello-Paket, das ich in der Zwischenzeit geladen habe. ---> Was tue ich nun? Ich weiß, dass ich diese Methoden in mein Monticello-Paket übernehmen kann, indem ich sie in die Message-Kategorie '*klausf-mysql' schreibe. Aber: ---> Landen diese Methoden dann auch beim lokalen Speichern in der *.st-Datei? ---> Was geschieht, wenn es Integer>>asByteArray bereits gibt, wenn mein Monticello-Paket geladen wird? Überschreibt dann meine Methode die bereits installierte? Grüße an die Liste Klaus |
Hallo Klaus,
was ist Dein Ziel? Möchtest Du Smalltalk-Klassen und Methoden verwalten? Dann ist ein Monticello-Package das richtige. Speicherst Du ein .mcz file ab? Dokumentation zu Monticello ist in "Squeak by Example". Oder möchtest Du auch selbstgemachte Morphs (zB ein BookMorph mit einer Präsentation, eine Zeichnung o.ä.) abspeichern? Dann ist das Speichern eines Projekts (.pr) OK. Die "Rückfragen" beim Speichern als .pr kommen daher, daß nicht nur Klassen sondern auch vollständige Objekte gespeichert werden. 2009/1/13 Klaus Füller <[hidden email]>: > Ich komme mit der Organisation von Softwareprojekten in Squeak schlecht > zurecht. > [...] > Ich habe ein Morf-Projekt namens SQL. Alle meine Klassen landen in einer der > Kategorien KlausF-Mysql oder KlausF-MysqlTest. > ---> Ist das OK? Ja. > Ich kann alle Klassen unter KlausF-Mysql* mit Monticello auf einen Server > laden. Das verstehe ich. OK. Kein Problem. Ich kann diese Kategorien auch in > *.st-Dateien lokal speichern. Du kannst / solltest Sie auch lokal als Monticello-Pakete speichern. Dazu kannst Du ein lokales Monticello repository anlegen und dann immer dorthin speichern. > Ich kann das Projekt SQL in eine *.pr-Datei speichern. Tue ich das, > erscheinen 2 Fragen, die ich nicht verstehe: "Would you like to include all > the changes ..." und "Some blocks which reference instance-variables are > included in this segment ..." > ---> Was bedeutet das genau? Wie gesagt, es werden Objekte (und nicht nur Klassen und Methoden) abgespeichert. > ---> Wo bekomme ich erklärt, was genau ein Change-Set ist und wie ich > steuern kann, was in einem Change-Set erscheinen soll? Ein Change set enthält eine Mitschrift von Änderungen im System. Änderungen in Klassen und Methiden stehen drin, Änderungen an Objekten werden nur unvollständig abgebildet (alle "Do-it's" sind drin). Dann kann man mit einem change browser Änderungen von einem changeset ins andere verschieben use.. > Wenn ich diese *.pr-Datei in ein frisches Image lade, kommt eine > Fehlermeldung "Reading an Instance of ... Which modern class should it > translate to?" > ---> Was bedeutet das? Wie gehe ich damit um? wie verhindere ich das? Die Klasse des gelesenen Objektes ist nicht im System,. Wahrscheinlich muß noch ein anderes package geladen werden. > Wenn ich meine *.st-Dateien in ein frisches Image lade, klappt das > wunderbar. Aber, wenn ich die Tests durchführe, fehlen die Methoden > Integer>>asByteArray und ByteArray>>bitXor. Diese Methoden habe ich nicht > geschrieben, sie stammen offensichtlich aus einem anderen Monticello-Paket, > das ich in der Zwischenzeit geladen habe. > ---> Was tue ich nun? nachsehen, in welchem Monticello-Paket diese Methoden sind: im alten image im browser steht zu der Methode "In change set xyz" - bzw. das Package der zugehörigen Klasse ist sowieso ein Monticello-paket. > Ich weiß, dass ich diese Methoden in mein Monticello-Paket übernehmen kann, > indem ich sie in die Message-Kategorie '*klausf-mysql' schreibe. Aber: > ---> Landen diese Methoden dann auch beim lokalen Speichern in der > *.st-Datei? Tun sie nicht, aber ich bin nicht 100% sicher. > ---> Was geschieht, wenn es Integer>>asByteArray bereits gibt, wenn mein > Monticello-Paket geladen wird? > Überschreibt dann meine Methode die bereits installierte? Ich glaube, ja. Es wird davon abgeraten, solche Methoden zu überschreiben. Viele Grüße Matthias |
Am 13.01.2009 um 16:49 schrieb Matthias Berth: > Hallo Klaus, Danke für die Schnelle Antwort. > > was ist Dein Ziel? > > Möchtest Du Smalltalk-Klassen und Methoden verwalten? Dann ist ein > Monticello-Package das richtige. Speicherst Du ein > .mcz file ab? Dokumentation zu Monticello ist in "Squeak by Example". Ja. Ich würde eine "Applikation" dann so gestalten, dass man der Klasse für den Haupt-View die Message 'start' schickt. Beispiel: MysqlClient start. ((Ich lösche jetzt die Fragen zu *.pr. [...] >> Ich habe ein Morf-Projekt namens SQL. Alle meine Klassen landen in >> einer der >> Kategorien KlausF-Mysql oder KlausF-MysqlTest. >> ---> Ist das OK? > > Ja. Tatsächlich heißt das Monticello-Projekt jetzt KFMysql und ist unter http://www.squeaksource.com/KFMysql veröffentlicht. Nimmt "man" dieses Repository oder gibt es Alternativen? >> Ich kann alle Klassen unter KFMysql* mit Monticello auf einen Server >> laden. Das verstehe ich. OK. Kein Problem. [...] > > Du kannst / solltest Sie auch lokal als Monticello-Pakete speichern. > Dazu kannst Du ein lokales Monticello repository anlegen und dann > immer dorthin speichern. Die landen automatisch in .../.../package-cache. Soll ich noch zusätzlich ein Repository einrichten? [...] >> Wenn ich meine *.st-Dateien in ein frisches Image lade, klappt das >> wunderbar. Aber, wenn ich die Tests durchführe, fehlen die Methoden >> Integer>>asByteArray und ByteArray>>bitXor. Diese Methoden habe ich >> nicht >> geschrieben, sie stammen offensichtlich aus einem anderen >> Monticello-Paket, >> das ich in der Zwischenzeit geladen habe. >> ---> Was tue ich nun? > > nachsehen, in welchem Monticello-Paket diese Methoden sind: im alten > image im browser steht zu der Methode "In change set xyz" - bzw. das > Package der zugehörigen Klasse ist sowieso ein Monticello-paket. Die Methoden stammen aus "Cryptography". Ich trage das jetzt einfach im Monticello als "Required" ein. VIELEN DANK für die Tipps. Klaus |
2009/1/13 Klaus Füller <[hidden email]>:
> > Am 13.01.2009 um 16:49 schrieb Matthias Berth: > >> Hallo Klaus, > > Danke für die Schnelle Antwort. gern :) > [...] > Tatsächlich heißt das Monticello-Projekt jetzt KFMysql und ist unter > http://www.squeaksource.com/KFMysql veröffentlicht. Nimmt "man" dieses > Repository oder gibt es Alternativen? "man" nimmt es. >>> Ich kann alle Klassen unter KFMysql* mit Monticello auf einen Server >>> laden. Das verstehe ich. OK. Kein Problem. [...] >> >> Du kannst / solltest Sie auch lokal als Monticello-Pakete speichern. >> Dazu kannst Du ein lokales Monticello repository anlegen und dann >> immer dorthin speichern. > > Die landen automatisch in .../.../package-cache. Soll ich noch zusätzlich > ein Repository einrichten? > [...] Ich richte immer ein extra repository (lokales directory) ein, dann kann ich meinen code leicht von allen anderen packages trennen (zB für backup). Viele Grüße Matthias |
Free forum by Nabble | Edit this page |