Wie machen wir weiter??

by wmn 18. November 2011 17:24

Nach den vielen Dingen, die uns auf der Build-Konferenz im September gezeigt und vor allem nicht gezeigt wurden, fragen sich sicher viele, wie sie denn jetzt weiter machen sollen. Speziell die Zukunft der Silverlight-Anwendungen, Visual-Studio und .NET ist für viele nicht klar absehbar. Dies führt auch zu Problemen in der Argumentation bei und mit unseren Kunden. Wer hier noch Argumente und Hinweise braucht, sollte sich mal folgende Links ansehen. Vielleicht helfen sie ja dem ein oder anderen weiter:

Ward Bell: http://neverindoubtnet.blogspot.com/

Robert Lhotka: http://www.lhotka.net/weblog/

Und sein Statement zu SL: http://www.lhotka.net/weblog/Default.aspx#a12925691-3e22-41e2-9d8f-a66c115e8b8c

PPEDV: http://blog.ppedv.de/

FoxPro-Anwendungen Modul für Modul nach Silverlight migrieren bzw. integrieren

by wmn 7. June 2011 19:30

Viele FoxPro-Entwickler stehen vor dem Problem große Anwendungen in die schöne neue Welt <G> zu migrieren. Häufig steht schon fest, daß die neue Entwicklungsumgebung .NET und damit Silverlight oder WPF oder ASP.NET sein wird. Aber auch für jede andere Web-Technologie ist der hier beschriebene Weg verwendbar.

Soweit so gut. In den meisten Fällen steht man aber vor der fast unlösbaren Aufgabe eine große Anwendung umzustellen. Meist hat man dafür weder die Entwicklungs- noch die Testkapazität geschweige denn das notwendige Budget. Somit bleibt nur, diese Umstellung Schritt für Schritt vorzunehmen. Da sich die Umstellungsphase auch über einen sehr langen Zeitraum hinziehen kann, sind Ideen für eine nahtlose Integration zwischen alten und neuen Systemteilen dringend gefragt.

Vor etwa zwei Jahren habe ich hierzu schon einmal das Windows Messaging im Rahmen eines Vortrags gezeigt. Dabei “kommunizieren” eine FoxPro-Anwendung und eine .NET-WPF-Anwendung über das Windows-Messaging miteinander. Der Anwender springt dabei - kaum merklich – zwischen alter und neuer Welt hin und her.

Heute stelle ich hier eine noch reibungslosere Integrationsmöglichkeit zwischen FoxPro-Anwendungen und Silverlight vor.

Die FoxPro-Beispielmaske:

image

Den Kern der Idee bildet das Internet-Explorer-Control (Active-X-Control!). Dieses Steuerelement bietet uns alle entscheidenden Funktionen um Silverlight-Masken anzuzeigen. Ein Beispielaufruf ist hinter dem Click-Event der Buttons implementiert:

this.olecontrol1.navigate2(“http://localhost:58226/slFoxIntegrationTestPage.aspx#/home”)

 

Die Silverlight Anwendung

Der Trick für eine nahtlose Integration von Silverlight in eine FoxPro-Anwendung liegt im sogenannten “Deep-Linking”, das Silverlight seit der Version 3.5. bietet. Hierbei kann man eine Silverlightanwendung direkt mit einem Aufruf einer bestimmten Maske starten. Am einfachsten kann man sich eine solche Anwendung über das “Silverlight Navigation Application”-Projekttemplate im Visual-Studio anlegen.

Ich habe die Optik der Startseite etwas angepasst sodaß man hier die Kopfzeile nicht mehr sieht. Diese brauchen wir für unser Beispiel einfach nicht mehr, da FoxPro für die Navigation in der Anwendung verantwortlich sein soll. Die Mainpage der Silverlight-Anwendung sieht dann so aus:

image

Nicht gerade spannend aber für unsere Zwecke völlig ausreichend. Kern dieser Seite ist jetzt nur noch das Frame-Control, das unsere Masken “hostet”, die wir von FoxPro aus direkt starten wollen. Hier der Auszug aus dem XAML der MainPage.xaml-Datei:

 

image

Damit sind die wesentlichsten Komponenten fertig gestellt. Wenn man jetzt die Silverlight-Anwendung startet bekommt man im Internetexplorer auch die korrekte Adresse der Silverlight-Anwendung auf seinem eigenen Rechner angezeigt. Diese kann man für den ersten Test einfach kopieren und nach FoxPro übertragen.

Wie kann man nun von FoxPro aus bestimmte Seiten direkt starten? Nun das geht direkt über die Startseite, die man mit entsprechenden Parametern aufrufen kann:

http://localhost:58226/slFoxIntegrationTestPage.aspx#/about?CustNo=1

Hierbei wird der Parameter “/about” über den URI-Mapper der MainPage in die Silverlightseite “/Views/About.xaml” umgemappt und dieses Control wird dann in dem obigen Frame-Control angezeigt.

Wie kann man dieser Maske nun von FoxPro aus Parameter übergeben? Auch das sieht man in der oben angebenen Adresse. Das “?” ist der Marker an dem Parameter intern unterschieden werden. In dem angezeigten Beispiel wird die CustNo mit dem Wert 1 übergeben. Auslesen kann man diesen Parameter dann auf der Silverlightseite z.B. im Codebehind der Maske über folgenden Aufruf:

image

Der Zugriff auf den Parameterwert ist sehr einfach, da VisualStudio uns hier ganz bequem zugreifen lässt:

image

Stellt sich natürlich noch die Frage, wie man Ergebniswerte von Silverlight nach FoxPro zurückgeben kann. Auch das ist eigentlich recht einfach solange es sich um wenige einzelne Informationen handelt. Der Trick ist hierbei eine Dummy-URl zu der man von Silverlight aus navigiert, um zurück zur FoxPro-Anwendung zu kommen. In folgendem Beispiel werden gefundene Daten zu einer URL zusammengesetzt und dann dorthin navigiert:

image

  Natürlich gibt es diese Webseite nicht wirklich. Hier sollte jetzt eigentlich auch ein entsprechender Fehler im Explorer-Control erscheinen. Damit das nicht passiert “fangen” wir diese Dummy-URL im Inernet-Explorer-Control in der FoxPro-Maske ab.

image

 

 

 

 

 

 

Hierzu habe ich am OCX-Control die Methode BeforeNavigate2 überschrieben. In diese wird die Dummy-URL als Parameter hereingegeben. Dadurch, daß ich den Parameter Cancel auf .t. gesetzt habe, wird die Navigation abgebrochen und der Aufruf der Seite quasi beendet.

Was aber tun, wenn man eine ganze Ergebnisliste von Silverlight nach FoxPro übergeben will? Die Übergabe per URL ist dafür sicher nicht geeignet. In diesem Fall muss man etwas mehr Aufwand betreiben. Der einfachste Weg hierfür geht sicherlich über XML-Dateien, die man im Isolated-Storage ablegt und deren Dateiname man als Parameter an Foxpro zurückgibt.

Der hier beschriebene Weg ermöglicht es - auch große Anwendungen - Stück für Stück umzustellen ohne dass der Anwender davon etwas merkt. Wenn Farben und Schriftarten sowie die Maskengestaltung angepasst wird, ist es für den Benutzer kaum auseinander zu halten, ob er sich in FoxPro oder in Silverlight bewegt. Wenn man sich die Implementierung der Serviceschnittstelle sparen will, kann man sicherlich auch WPF-Anwendungen auf die gleiche Art integrieren. Hierzu muss lediglich WPF als Browseranwendung laufen. Auch ASP.NET oder andere WEB-Anwendungen kann man auf diesem Weg nahtlos integrieren.

Vielleicht hilft das hier beschriebene Beispiel dem ein oder anderen auf dem Weg seine Anwendung auf eine neue Version zu migrieren.

.Net Stammtisch Stuttgart – unter neuer Leitung

by wmn 27. May 2011 20:02

Beruflich bedingt kann unserer bisheriger Leiter des Stuttgarter .Net Stammtischs Jörg Nowak seine Aufgabe nicht mehr weiter ausüben. Auch auf diesem Weg nochmals vielen Dank für sein Engagement in der vergangenen Zeit.

Bei unserem letzten Treffen am Mittwoch haben daher Eckmar Schmitz und ich die Leitung der Stuttgarter Usergroup übernommen. Wir werden versuchen den Stammtisch auch weiterhin so attraktiv wie möglich zu gestalten. Selbstverständlich freuen wir uns dabei über Eure Mitarbeit. Eure Anregungen, Ideen und Verbesserungsvorschläge sind natürlich jederzeit herzlich gerne willkommen.

Durch den Wechsel werden die Treffen auch umziehen. Im Moment sind wir auf der Suche nach neuen Räumlichkeiten. Auch hier sind Ideen gerne willkommen.

Wir freuen uns auf Eure rege Teilnahme und Mitarbeit an der Usergroup.

Tags:

Sonstiges

22. bis 25.2. auf der BASTA in Darmstadt

by wmn 9. February 2011 17:49

Vom 22. bis einschließlich 25. Februar bin ich wieder als Redner und Aussteller auf der BASTA (www.basta.net). Würde mich freuen, wenn wir uns dort sehen würden.

Tags:

Sonstiges

16. und 17.2. VSONE Konferenz in München

by wmn 9. February 2011 17:47

Nächste Woche bin ich am 16. und 17.2. auf der VSONE Konferenz (www.vsone.de) als Redner. Würde mich freuen, den ein oder anderen dort zu treffen……

Tags:

Sonstiges

Video zu Lightswitch auf Channel 9

by wmn 30. August 2010 20:59

In den vergangenen Tagen gab es immer wieder Hinweise auf ein neues Produkt von MS das sich Lightswitch nennt. Hierbei handelt es sich um einige Projekttemplates und Designer mit denen man ganz einfach komplette Datenbankanwendungen erstellen kann. Ich halte das Produkt für viele kleine Projekte für enorm interessant. Auch wenn es sich um einen Anwendungsgenerator handelt, verbaut man sich durch die Benutzung nichts! Insbesondere für Einsteiger bietet sich ein äußerst komfortabler Weg in die MVVM- Anwendungsarchitektur. Generiert werden dabei Silverlight Anwendungen, die mit beliebigen Datenquellen arbeiten können. Derzeit sind Projektvorlagen für C# und VB verfügbar.

Inzwischen ist auch die Beta zum Download bereit gestellt worden. Wer sich einen tiefergehenden Überblick verschaffen will - insbesondere was die Erweiterbarkeit angeht - sollte sich folgendes Video mal ansehen:

http://bit.ly/csqb3P

Übrigens wurde auch auf Universalthread eine separate Rubrik eröffnet. Hier laufen bereits die ertsen Diskussionen zu diesem Thema: www.universalthread.com.

 

schon gesehen? Solution Navigator aus den VS 2010 Productivity Power Tools (Update)

by wmn 21. July 2010 01:05

Im Visual Studio 2010 kann man sich über den Extension Manager zahlreiche hilfreiche Utilities installieren. Eine solche Erweiterung sind die “Visual Studio 2010 Productivity Power Tools”. Hier gab es in den letzten Tagen ein Update, das ein interessantes Tool mitbringt, den Solution Navigator. Dabei handelt es sich eigentlich um einen erweiterten Solution Explorer:

image

Dieses Paket von kleinen Utilities hat aber noch mehr zu bieten, was man sich mal ansehen sollte….

Unser nächster Workshop: Erstellung von Datenbankanwendungen mit C#, WPF (und Silverlight) in der Praxis - Ein praktischer Workshop für Umsteiger vom 16.6.-18.6.2010 in Ilsfeld

by wmn 6. May 2010 23:22

Hier kommen die Informationen zu meinem nächsten Workshop.

Information und Anmeldung zum Workshop

Ich würde mich sehr freuen, den ein oder anderen Leser meines Blogs mal persönlich kennen zu lernen.

mfg

Michael Niethammer

Tags:

Sonstiges

StoryBoarding mit TFS

by wmn 5. September 2008 20:18

In der Analysephase hilft es sehr, wenn man die Abläufe einer Software mit einem sogenannten StoryBoard vorab schon mal diskutiert und dokumentiert. Folgende Firma bietet hierzu ein entsprechendes Tool an:

http://www.stpsoft.co.uk/story/

stpBA Storyboarding is a Microsoft Visio® based requirements definition tool to visually elaborate and validate requirements with business users through GUI storyboarding. The tool can be used standalone or integrated with stpsoft Quew, IBM Rational RequisitePro® or Borland CaliberRM®. The tool generates HTML storyboards, screen flow diagrams, reader friendly UI specifications, functional specifications and test scripts.

   

                           

Key Benefits
• GUI storyboards help business users to identify issues and gaps early, minimising the cost of rework.
• Standardising the capture, validation and documentation of requirements results in fewer errors and omissions.
• Generating UI specs, functional specs and detailed test scripts saves hundreds of man hours.
• Reader friendly documentation and storyboards help to bridge the gap between users and developers.
• Minimal learning curve for users of Microsoft® Office products.
• Can be used standalone, or integrated with stpsoft Quew, IBM Rational RequisitePro® or Borland CaliberRM®.
• Can be upgraded to the Microsoft® Visual Studio® 2005 Team System edition.

Contact Details
• For Sales and General Enquiries please email sales@stpsoft.co.uk.
• For Support please email support@stpsoft.co.uk.

Pricing Information
•  The product is licensed per user per machine.
•  All prices exclude taxes and any imports/customs duties.
•  The license fee includes 12 months of email support and software updates.
•  Maintenance can be renewed annually per license.

Jetzt wird gebloggt!

by wmn 10. July 2008 20:23

Nachdem ich schon lange alles was ich so an wichtigen Informationen finde in OneNote aufhebe. Will ich in der kommenden Zeit mal versuchen diese Informationen in Form eines Blogs zu archivieren. Mein Hauptziel ist es die Informationen für mich zu dokumentieren und für die Kollegen ein einfaches Medium zu schaffen, wo sie auf diese Infos zugreifen können.

Ich bin mal gespannt, wie sich dieses neue Medium bewährt.

Für Anregungen Ideen und Beiträge bin ich immer gerne zu haben…..

Tags:

Sonstiges