1 / 73

Georg Heeg eK Baroper Str. 337 D-44227 Dortmund Tel: +49-231-97599-0 Fax: +49-231-97599-20

Georg Heeg eK Baroper Str. 337 D-44227 Dortmund Tel: +49-231-97599-0 Fax: +49-231-97599-20. Georg Heeg eK Mühlenstr. 19 D-06366 Köthen Tel: +49-3496-214 328 Fax: +49-3496-214 712. Georg Heeg AG Riedtlistr. 8 CH-8006 Zürich Tel: +41-1-356 3311 Fax: +41-1-356 3312. Email: info@heeg.de

ezra
Télécharger la présentation

Georg Heeg eK Baroper Str. 337 D-44227 Dortmund Tel: +49-231-97599-0 Fax: +49-231-97599-20

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Georg Heeg eKBaroper Str. 337D-44227 Dortmund Tel: +49-231-97599-0 Fax: +49-231-97599-20 Georg Heeg eKMühlenstr. 19D-06366 Köthen Tel: +49-3496-214 328 Fax: +49-3496-214 712 Georg Heeg AGRiedtlistr. 8CH-8006 Zürich Tel: +41-1-356 3311 Fax: +41-1-356 3312 Email: info@heeg.de http://www.heeg.de

  2. Georg Heeg Smalltalk Speaks .NETand Gets Mobile Bled26 August 2003

  3. Overview • About us • Smalltalk today? • DotNETConnect • Smalltalk gets mobile

  4. About us... • Founded 1987, head quarter in Dortmund,since 1996 in Zurich, since 1999 in Koethen/Anhalt • Consulting and training companyconcentrated around Smalltalk • Hotline Support, Maintenance, Bug-Fixes • New technologies for VisualWorks • Technology partner of Corporate Mission: Make Sophisticated Projectsa Success for the Customer!

  5. Cooperation • Anhalt University of Applied Sciences in Koethen • Smalltalk as first programming language • Diploma thesis by Dirk Lannatewitz • Localization UI for VisualWorks • Finished 18 August 2003 • Diploma thesis by Katrin Nörenberg • German version of VisualWorks

  6. Overview • About us • Smalltalk today? • DotNETConnect • Smalltalk gets mobil

  7. Smalltalk 1972 • Xerox Palo Alto Research Center • Alan Kay, David Robson, Adele Goldberg • Goal: Dynabook • The personal Computer for everybody • Same size as a book • Same weight as a book • Dynamic • Available every time • Controllable by everybody

  8. Smalltalk 1980 • Smalltalk 80 • 1981 first publication in Byte Magazine • Foundation of object orientation • Window system • Software development using browser • Debugger • Technical base of today’s VisualWorks

  9. Smalltalk end of the 1980ies • Commercialization • Founding of Smalltalk companies • 1985 Digitalk • 1987 Georg Heeg • 1988 ParcPlace Systems • First application projects • The Analyst (Xerox/CIA) • ProfiSee (Ciba Geigy)

  10. Smalltalk early 1990ies • Large Projects • JP Morgan • Texas Instruments • Daimler Benz • BMW • Deutsche Bank • Deutsche Bahn • UBS • Siemens • IBM puts out VisualAge to the market place • Smalltalk books are published

  11. Smalltalk 1996-1999 • Java is the new buzz word • … • Smalltalk projects are put into operation • Users are happy

  12. Smalltalk 1999-2002 • Cincom takes over ObjectStudio and VisualWorks • Founded 1968 • About 800 employees • From the beginning managed by Tom Nies • Located in Cincinnati, Ohio • Consolidation • Long term strategy • Smalltalk books get out of stock

  13. Smalltalk 2003 • New Smalltalk companies show up • New platforms • Webserver • .NET • New markets • mobility • New Smalltalk books are published

  14. New Book on Smalltalk GWV Fachverlage Erscheinungstermin: 12. September 2003

  15. What is special about Smalltalk? • „Everything is an Object“ • „normal“ Objects • Windows • Numbers, strings, characters • Classes • Meta classes • Processes • Stack frames (contexts)

  16. Smalltalk properties • Every object is unambiguously typed • Instance of a class • Variables are ungetyped • Information Hiding • Only access to objects by messages • Dynamic binding

  17. Smalltalk Theory • Smalltalk is a modeling language • Smalltalk is able to represent every well formulated theory concept as a system of classes in a clear way => • Smalltalk is able to represent every computer science theory concept as a system of classes in a clear way

  18. Fear of Smalltalk • Pretended arguments • Will no exist for a long enough time • Is slow • Is not company strategy BUT • Fear is often hazy and unspecific

  19. What are the roots of the fear? • „Wat de Buer nich kennt, dat fret he nich“ [Low German: “Whatever the farmer does not know, he does not eat.” • More Marketing • More Sales • Smalltalk is different • Must be different to achieve the Smalltalk goals • You cannot build airplanes of steel

  20. The fear of Smalltalk is justified • Intellectual requirements • Classes = concepts • To understand concepts is intellectually demanding • To develop concepts requires creativity • To dismiss concepts requires inner freedom • To bear criticism must be learned • and criticism will come!!!

  21. Who has overcome the fear • Does not want to do anything else • Achieves a productivity, others can only dream of • Can spread out her/his own ideas • Feels as creator of a virtual world • … and travels to ESUG every year

  22. Smalltalk is reasonably cheap • Ideal for Prototyping • Ideal for Extreme Programming • Ideal for Redesign • From the idea via the prototype to product quality • Without a technology break • In shortest time • Few Lines of Code • Proximity of concepts and software • Notions correspond to classes

  23. One Software Base • From a server to a mobile device • Sun SPARC – HP UX – IBM AIX – SGI Irix • Linux 86 und PPC • Macintosh OS 9 und OS X • Windows 95, 98, ME, NT, 2000, XP, Server und Desktop • Windows CE 4.x • Windows Mobile for Pocket PC 2003 • Binary compatible

  24. Smalltalk 2004 • There are two alternatives • All programming is done the old style in low salary countries • India, Bela Russia, Ukraine • Does know-how get out of our business control? • Programming is done VERY efficiently • Modeling in SMALLTALK • Only possible if Smalltalk adopts all possible worlds

  25. Overview • Bout us • Smalltalk today and tomorrow! • DotNETConnect • Smalltalk gets mobile

  26. Bill Gates about • „Wir glauben, dass .NET in der Lage ist, • dem einzelnen Anwender ganz neue Möglichkeiten zu eröffnen, • Unternehmen ungeahnte geschäftliche Perspektiven zu bieten • und uns allen erneut bewusst zu machen, welch ungeheures Potenzial im Internet steckt.“

  27. BizTalk Server 2002

  28. What is .NET according to Microsoft Marketing? • Microsoft Platform for XML-Web Services • Connects in a uniform und personalized way • Information • Devices • Users

  29. What is .NET technically? • Development environment for Windows • VisualStudio .NET 2003 • Object oriented execution platform • Common Language Runtime • Class library • .NET Framework • ASP .NET, ADO .NET, Windows Forms, … • Interface for complex High-Level-Transactions • Web-Services

  30. What is .NET • Microsoft promotes WebServices as Internet based Strategy since 2001 • Actually development gains more importance with the goal: • Unifies programming • Same features in all languages • Unified API • Unified platform • Simplifies deployment and maintenance • Security

  31. .NET: Future Platform of Windows World • Replaces COM, OLE, DDE • Replaces native programming • Unifies programming languages (C++, Java, VB, …) • .NET simplifies heavily Windows programming

  32. Architectural Comparison .NET VisualWorks Web Services Web Forms Windows Forms Open talk Web Toolkit Basis image Data and XML EXDI/Lens and XML Framework VisualWorks Basisimage CLR VM OS Platform OS Platform

  33. Is .NET Planned as One-Way-Road? • Interfaces mainly serve for integration of Legacy components • Extensions of existing systems by .NET components is not intended • Soft pressure towards migration of existing systems into .NET • A way back is not provided

  34. Java or .NET • Java tries to dominate the world • Anything else is ignored • All concepts are newly invented and named differently • .NET tries to dominate the world • Anything can be integrated in .NET • .NET specifics can only be used from inside .NET

  35. Smalltalk and .NET (Theory) • Repetition: • Smalltalk is able to represent every well formulated theory concept as a system of classes in a clear way • Smalltalk is able to represent every computer science theory concept as a system of classes in a clear way => • Smalltalk is able to represent .NET as a system of classes in a clear way

  36. Smalltalk and .NET (Marketing) • All future development of Microsoft will happen in .NET • Windows is dominant platform for VisualWorks Client Applications • Windows is a platform for VisualWorks Server Applications • Thus we consider a preoccupation with .NET as (compellingly) necessary

  37. .NET Integration Options

  38. Smallscript alias S# + high acceptance in Windows community + First Class Citizen • Low acceptance in Smalltalk community • Loss of platform independence • Restriction of the language (.NET makes all languages being the same) • Quality of development • Breach with existing application base

  39. .NET Integration: Bytecode • Technically not investigated • Open whether can be put into practice at all without massive restrictions • static typing of CLR

  40. Web-Services • Available in VisualWorks since June 2002 • High strategic advantage • Integration on the level of • Applications • Systems • Enterprises • Standardized • XML, SOAP, WSDL, UDDI

  41. Web-Services • Not suitable for integration of • Local components • Client-server • Operating system services • “Nobody would ever want to print a Word document using Web-Services”

  42. DotNETConnect: Goals • Smalltalk and .NET coexist side by side • .NET objects will be usable as Smalltalk objects • Light weight solution • Easy to use • Time to Market • No technical knowledge about .NET required • All properties of Smalltalk are maintained • Favorable cost-benefit ratio

  43. DotNETConnect: Concepts • Smalltalk as Client, .NET as Server • Automatic generation of Smalltalk classes for .NET classes • Separation of .NET generated classes from communication medium • Web-Services • Managed Extensions for C++ • COM • Remoting • Garbage Collection coupled with .NET

  44. DotNETConnect: Properties • No adaptation of .NET Components necessary • Tool based generation of all necessary Components in source code • Complete access on generated Code • Components for .NET base classes as part of DotNETConnect available • mscorlib, data, xml

  45. VisualWorks .NET VisualWorks object stub .NET Object Registry Registry VisualWorks connection stub Proxy (C#, C++) Communication Channel (DLL, COM, Remoting) DotNETConnect: Architecture Generated Code installed Component

  46. Stub Classes • All Stub classes are subclasses of DotNETObject • Class methods • static methods • Access to static properties • Constructors • Instance methods • Non static methods • Access to non static properties

  47. VisualWorks .NET MscorlibStub MscorlibExternalInterface MscorlibProxy Communication channel aDateTime objectId aDateTime objectId Registry objectId objectId Registry objectId objectId aTimeInterval objectId aTimeInterval objectId Two Stub-Objects with DLL Channel

  48. Example: Stub Method (generated) AddDays: value "This is generated code for the .NET method: System.DateTime AddDays (System.Double value)" | returnData | returnData := self executionStub DateTime_AddDays: self objectId with: value. ^self register: returnData

  49. Example: Wrapper Method (generated) DateTime_AddDays: objectID with: value "execution stub method for the .NET Method System.DateTime AddDays (System.Double value)" | errorCode containerPointer objectPointer | containerPointer := self externalInterface return_type gcMalloc. objectPointer := objectID gcCopyToHeapUnicode. errorCode := self externalInterface DateTime_AddDays: containerPointer with: objectPointer with: value. errorCode < 0 ifTrue: [self GetLastError signal] ifFalse: [^self getDataFrom: containerPointer]

  50. Marshaling • Encoding is done using (Unicode-) strings

More Related