www.inqu.de.NET User Group Dresden            Real World Scenario Deeplinking in eine WinForms-Anwendung               01....
www.inqu.dedie vorhandene Anwendung unternehmensinternes Bestellsystem WinForms-Client auf Terminalserver               ...
www.inqu.dedas Ziel Migration ins Web neue Features Einsparung Terminalserver                              Marco Wagner...
www.inqu.dedas (Zwischen)Ergebnis Bestellansicht                         Marco Wagner | InQu Informatics GmbH | http://in...
www.inqu.deHerausforderung 2 Systeme Medienbruch Win/Web „nicht aus einem Guß“ Mindestanforderung: Navigation zwischen...
www.inqu.deNavigation zwischen Win & Web      vonnach   Win                          Web      Win        Nav zw. Modulen  ...
www.inqu.deNachrichten vom Web ins Win? Skype? MSDN?                     Marco Wagner | InQu Informatics GmbH | http://i...
www.inqu.deCustom URL Protocol eigenen URL-Protokollhandler registrieren und  implementieren http:// ms-help:// skype:...
www.inqu.deURL-Protokoll registrieren siehe shop.reg in MessageDispatcher.csproj                              Marco Wagne...
www.inqu.deWindows RegistryHKEY_CLASSES_ROOT     COM-Registrierung; Dateitypen / ErweiterungenHKEY_CURRENT_USER     Profil...
www.inqu.deKommunikation über Prozessgrenzen hinweg Problem    Prozesse haben separate Adressräume Lösungen      Pipes...
www.inqu.deNavigation von Web nach Win (auch) per Hyperlink                        Marco Wagner | InQu Informatics GmbH | ...
www.inqu.deDemo Prototyp siehe Solution                   Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://...
www.inqu.deÜbersicht Prototyp                     Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolke...
www.inqu.dePause?         Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
www.inqu.deURL      shop://component=Bestellungen;id=2                      Marco Wagner | InQu Informatics GmbH | http://...
www.inqu.deNachricht Nachrichtentyp: WM_COPYDATA    http://msdn.microsoft.com/en-     us/library/windows/desktop/ms64901...
www.inqu.deURL via Dispatcher weiterreichen(Nachricht senden) vgl. MessageDispatcher.Program        [DllImport("user32.dl...
www.inqu.deURL/ Parameter im Legacy Shop verarbeiten(Nachricht empfangen) siehe WndProc in LegacyShopprotected override v...
www.inqu.deproprietäre Nachrichteninterpretation              shop://component=Bestellungen;id=2var formatPattern =       ...
www.inqu.deFragen?          Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
www.inqu.deSlides & Code demnächst auf    http://raumwolken.de    http://dd-dotnet.de/ Fragen    marco.wagner@inqu.de...
Upcoming SlideShare
Loading in …5
×

Deeplinking in eine WinForms-Anwendung

2,131 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,131
On SlideShare
0
From Embeds
0
Number of Embeds
1,000
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Deeplinking in eine WinForms-Anwendung

  1. 1. www.inqu.de.NET User Group Dresden Real World Scenario Deeplinking in eine WinForms-Anwendung 01.03.2012 InQu Informatics GmbH Marco Wagner
  2. 2. www.inqu.dedie vorhandene Anwendung unternehmensinternes Bestellsystem WinForms-Client auf Terminalserver Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  3. 3. www.inqu.dedas Ziel Migration ins Web neue Features Einsparung Terminalserver Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  4. 4. www.inqu.dedas (Zwischen)Ergebnis Bestellansicht Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  5. 5. www.inqu.deHerausforderung 2 Systeme Medienbruch Win/Web „nicht aus einem Guß“ Mindestanforderung: Navigation zwischen beiden Systemen Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  6. 6. www.inqu.deNavigation zwischen Win & Web vonnach Win Web Win Nav zw. Modulen Hyperlink Web ? Hyperlink Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  7. 7. www.inqu.deNachrichten vom Web ins Win? Skype? MSDN? Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  8. 8. www.inqu.deCustom URL Protocol eigenen URL-Protokollhandler registrieren und implementieren http:// ms-help:// skype:// shop:// MSDN: http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  9. 9. www.inqu.deURL-Protokoll registrieren siehe shop.reg in MessageDispatcher.csproj Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  10. 10. www.inqu.deWindows RegistryHKEY_CLASSES_ROOT COM-Registrierung; Dateitypen / ErweiterungenHKEY_CURRENT_USER Profil aktueller UserHKEY_LOCAL_MACHINE Nutzerübergreifende EinstellungenHKEY_USERS NutzerstammHKEY_CURRENT_CONFIG Profil aktuelle Hardware Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  11. 11. www.inqu.deKommunikation über Prozessgrenzen hinweg Problem  Prozesse haben separate Adressräume Lösungen  Pipes  Events / Nachrichten  Funktionsaufrufe / Remote Procedure Calls  Shared Memory Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  12. 12. www.inqu.deNavigation von Web nach Win (auch) per Hyperlink Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  13. 13. www.inqu.deDemo Prototyp siehe Solution Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  14. 14. www.inqu.deÜbersicht Prototyp Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  15. 15. www.inqu.dePause? Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  16. 16. www.inqu.deURL shop://component=Bestellungen;id=2 Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  17. 17. www.inqu.deNachricht Nachrichtentyp: WM_COPYDATA  http://msdn.microsoft.com/en- us/library/windows/desktop/ms649011(v=vs.85).aspx Nachrichtenstruktur: COPYDATASTRUCT  http://msdn.microsoft.com/en- us/library/windows/desktop/ms649010(v=vs.85).aspx siehe Shared Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  18. 18. www.inqu.deURL via Dispatcher weiterreichen(Nachricht senden) vgl. MessageDispatcher.Program [DllImport("user32.dll")] public static extern int SendMessage( IntPtr hWnd, int Msg, IntPtr wParam, ref WndMessage lParam); SendMessage schickt direkt ans Ziel und wartet bis Abarbeitung (Message Loop; synchron) PostMessage legt Message in Queue und kehrt sofort zurück (Message Queue; asynchron) Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  19. 19. www.inqu.deURL/ Parameter im Legacy Shop verarbeiten(Nachricht empfangen) siehe WndProc in LegacyShopprotected override void WndProc(ref Message m)…var messageData = (WndMessage)Marshal .PtrToStructure(m.LParam, typeof(WndMessage));var message = Marshal.PtrToStringUni(messageData.lpData); Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  20. 20. www.inqu.deproprietäre Nachrichteninterpretation shop://component=Bestellungen;id=2var formatPattern = @"shop://component=(?<componentKey>w+);id=(?<id>d+)";var match = Regex.Match(message, formatPattern);var componentKey = match.Groups["componentKey"].Value;var idText = match.Groups["id"].Value; Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  21. 21. www.inqu.deFragen? Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de
  22. 22. www.inqu.deSlides & Code demnächst auf  http://raumwolken.de  http://dd-dotnet.de/ Fragen  marco.wagner@inqu.de Marco Wagner | InQu Informatics GmbH | http://inqu.de | http://raumwolken.de

×