Frage

Gibt es eine Möglichkeit in Cocoa, die derzeit beste Praxis für die Erstellung einer Multi-Tier-oder Client-Server-Anwendung betrachtet wird?

Ich bin ein erfahrener Web-Entwickler, und ich liebe wirklich Python. Ich bin neu, obwohl Cocoa. Die Anwendung, die ich mit dem Schreiben bin liebäugelt ist ein Patientenmanagementsystem für ein großes Krankenhaus. Das System wird erwartet, dass große Datenmengen über die Zeit zu speichern, sondern die während einer einzigen Sitzung übertragenen Daten sind sehr leicht (meist nur Text). Die Kommunikation wird angenommen, über ein lokales Netzwerk (verdrahtet oder drahtlos) auftreten. Es hat sehr sicher sein, natürlich.

Das Beste, was ich tun konnte, ist ein Python REST Web-Service zu schreiben und sie durch die Cocoa-Anwendung zu verbinden. Vielleicht werde ich sogar Python verwenden, um die Cocoa-Anwendung selbst zu codieren.

Cocoa Sehen, sehe ich wirklich toll Technologien in Cocoa wie Coredata, aber ich kann nichts Vergleichbares für die Client-Server-Entwicklung finden. Ich möchte nur sicherstellen, dass ich nichts fehlt.

Was denken Sie?

Reale Welt Beispiele werden sehr geschätzt.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Wenn Sie die Kontrolle über sowohl Client und Server, und Sie können den Client OS X nur begrenzen, ich zweite Marcs Antwort. Cocoa verteilte Objekte sind eine erstaunliche Technologie und machen RPC-Stil Client-Server-Anwendungen sehr einfach.

Wenn über die Anforderungen zu restriktiv sind für Sie, Sie haben immer noch viele Optionen in der Kakao-Welt zur Verfügung:

  1. Sie können die gesamte Client-Anwendung in Python mit PyObjC codieren. Mit diesem Ansatz können Sie den Standard-Netzwerk-Code verwenden, die Sie mit der Python-Standardbibliothek vertraut sind. Verdrehte integriert auch gut mit dem Cocoa Laufschleife (Beispiele im PyObjC Beispiel-Code), und ich habe viel Erfolg hatte mit verdrillt für die Netzwerkkommunikation von mit in einem Cocoa App. Wenn Sie sich entscheiden, diesen Weg zu gehen, sollten Sie die Client-Anwendung in Objective-C und laden Sie das Python-Code als Plugin (mit NSBundle) kodieren. PyObjC der py2app können ladbare Bundles aus Python-Code kompilieren.

  2. Sie können NSURLConnection verwenden für High-Level-Zugriff auf einen HTTP-Server.

  3. Herunterfallen eine Abstraktionsebene, können Sie Cocoa NSStream verwenden, um Ihr Netzwerkprotokoll zu implementieren. Die Klasse Dokumentation ist hier , mit Links zu beispiel~~POS=TRUNC demonstriert HTTP und SOAP-Protokolle.

  4. Sie können eine weitere Ebene fallen nach unten und die CFNetwork Klassen verwenden. NSStream basiert auf CFNetwork, aber Sie haben untergeordnete Kontrolle über die Linie CFNetwork verwendet wird.

Schließlich ist eine Technologie von Apple für die Client-Server-Architekturen das WebObjects Rahmen.

Andere Tipps

Cocoa hat Tragbare verteilte Objekte , mit dem Sie eine Client / Server-Anwendung lassen bauen in reinem Objective-C und Kakao, die über Prozesse oder über ein Netzwerk kommunizieren können.

Leider ist es eine der schwierigeren Dinge in Cocoa zu lernen. Verteilte Objekte nicht zu halten mit neuen Technologien wie Bindungen aktualisiert, es gibt nicht viele Beispiele oder Dokumentation (und viele der Tutorials sind alt, einige sogar Pre-Dating-OS X). Es gibt auch eine Menge „gotchas“, selbst für erfahrene Cocoa-Programmierer, in der Art und Weise Objekte werden über den Draht übertragen entweder als Kopie oder ein Proxy-Objekt. Zum Beispiel können Sie eine NSURL von einem Server übertragen, und es wird scheinen in Ordnung, wenn man es in einen String oder schauen Sie es im Debugger konvertieren, aber Ihr Client stürzt ab, wenn Sie versuchen, es in einem NSURLConnection zu verwenden.

Je nach Erfahrung kann es einfacher und schneller sein, einen Web-Service zu nutzen, aber es ist immer noch lohnt einen Blick in, um, wenn Sie möchten, das gesamte Projekt in Cocoa zu halten. Hier ist ein Tutorial , wenn Sie möchten, um ein Beispiel sehen.

Im Allgemeinen sind die Ideen alle anderen Client / Server-Frameworks anwendbar.

Werfen Sie einen Blick auf diesen Link: http://developer.apple.com/ Internet / Web Service / webservicescoreandcfnetwork.html

Ich habe einen Server und eine Client-Klasse für den Einsatz in Cocoa geschrieben. diese Klassen macht es sehr einfach, einen Server oder Client-Anwendung ohne das Wissen über Sockets und dass C-Material zu produzieren Schauen Sie einfach unter meiner Website oder auf sourceforge.net Projekt-Website

Schauen Sie sich die api für NSConnection und NSDownload Griff die Netzwerkverbindung. Die NSString Klasse hat auch Methoden wie + stringWithContentsOfURL: Codierung: Fehler:. die nützlich sein können

Dann gibt es NSXMLParser und NSXMLDocument zum Lesen xml Daten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top