在Cocoa中是否有一种方法目前被认为是创建多层或客户端服务器应用程序的最佳实践?
我是一位经验丰富的网络开发人员,我非常喜欢Python.我虽然是Cocoa的新手.我正在写的应用程序是一个大型医院的患者管理系统.预计系统会随着时间的推移存储大量数据,但在单个会话期间传输的数据非常轻(大多数只是文本).假设通信通过本地网络(有线或无线)发生.当然,它必须是高度安全的.
我能想到的最好的方法是编写一个Python REST Web服务并通过Cocoa应用程序连接到它.也许我甚至会使用Python来编写Cocoa应用程序本身.
看看Cocoa,我在Cocoa中看到了非常棒的技术,比如CoreData,但我找不到任何与客户端服务器开发类似的技术.我只是想确保我没有遗漏任何东西.
你怎么看?
真实世界的例子将不胜感激.
提前致谢.
我有以下数据结构(列表清单)
[
['4', '21', '1', '14', '2008-10-24 15:42:58'],
['3', '22', '4', '2somename', '2008-10-24 15:22:03'],
['5', '21', '3', '19', '2008-10-24 15:45:45'],
['6', '21', '1', '1somename', '2008-10-24 15:45:49'],
['7', '22', '3', '2somename', '2008-10-24 15:45:51']
]
Run Code Online (Sandbox Code Playgroud)
我希望能够
使用函数对列表重新排序,以便我可以按列表中的每个项目进行分组.例如,我希望能够按第二列分组(这样所有21个都在一起)
使用函数仅显示每个内部列表中的某些值.例如,我想将此列表缩小为仅包含'2somename'的第4个字段值
所以列表看起来像这样
[
['3', '22', '4', '2somename', '2008-10-24 15:22:03'],
['7', '22', '3', '2somename', '2008-10-24 15:45:51']
]
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个程序,它使用套接字通过网络连接自身的其他实例.由于最终我还想编写Windows版本,我目前正在OS X端使用BSD套接字,以便我可以确保它与(最终)Windows版本兼容.
到目前为止,我能够使这个工作的唯一方法是在创建服务器套接字时指定我的实际IP地址.如果我改用127.0.0.1,那么我只能从我的本地机器连接.
虽然这在理论上很好,但问题是我如何知道使用哪个IP地址?我不知道如何通过Cocoa获取当前机器的IP地址,即使我可以,如果有多个有效的IP地址(例如机场和以太网连接),该怎么办.我怎么知道使用哪一个?我可以问用户,但这似乎不是他们可以/应该知道的事情.
如果需要,我可以提供我的客户端和服务器连接代码,但是考虑到我能够从远程计算机建立连接,我认为问题不在我的代码中.
感谢您的时间.:)
每当特定单元格中的值发生更改时,如何自动执行Excel宏?
现在,我的工作代码是:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H5")) Is Nothing Then Macro
End Sub
Run Code Online (Sandbox Code Playgroud)
"H5"被监视的特定单元格在哪里,是Macro宏的名称.
有没有更好的办法?
我有一个Python函数,我正在对输入参数进行一些消毒:
def func(param1, param2, param3):
param1 = param1 or ''
param2 = param2 or ''
param3 = param3 or ''
Run Code Online (Sandbox Code Playgroud)
这适用于作为None而不是空字符串传递的参数.是否有更简单/更简洁的方法来循环函数参数以将这样的表达式应用于所有这些.我的实际功能有九个参数.
有没有人知道如何使Eclipse成为SDI应用程序而不是MDI应用程序?SDI - 单文档界面,每个窗格都是自己的窗口MDI - 多文档界面,所有窗格都卡在一个"主"窗口内.
Eclipse是一个MDI应用程序.所有小窗格(如调用堆栈,变量查看器等)都是一个主Eclipse窗口的一部分.而不是让所有的窗户都嵌入一个主"蚀"窗口,我希望它们都是他们自己的自由浮动窗口.
我已经使用C++大约6或7年了,我认为自己能流利.到目前为止,我从未对Java感到困扰,但我发现自己失去了工作(公司陷入困境),我需要扩展我的技能.有人推荐Java,所以我想知道是否有任何关于像我这样的人可能会开始的建议.我也很想知道Java在访谈中最有可能出现的关键方面.
这个问题最初询问哪种是在SSIS中通过SFTP或FTPS上传文件的最佳方法.现在只列出每种解决方案的优缺点.我个人现在使用CozyRoc的SFTP库,但我已经在某个方面使用了以下每个解决方案.
SSIS组件库
方法:从CozyRoc,Codeplex,BizCrypto,PragmaticWorks或每个开发和生产服务器上的某些其他供应商安装SSIS组件库,并使用SFTP任务上载文件.
优点:易于使用.它看起来,闻起来和感觉就像一个正常的SSIS任务.SSIS还将密码识别为敏感信息,并允许您保护敏感信息的所有常规选项,而不是仅以非安全方式将其存储为明文.适用于其他SSIS任务,例如ForEach Loop Containers.上传和下载失败时出错.当您不知道要下载的远程FTP站点上的文件名称或者在运行时之前您不知道要上载的文件的名称时,可以正常工作.
缺点:除了Codeplex解决方案之外,这需要花费在生产环境中许可.需要在每台开发和生产计算机上安装库.如果是Codeplex解决方案,那么您使用的是任何特定供应商都不支持的软件.这也使您依赖供应商在每个版本之间更新其库.例如,在2008 RTM之前,我在2008年的CTP版本上开发了一个新服务器,而CozyRoc 2005库与它不兼容.最终他们发布了2008兼容版本,但我不得不暂时使用命令行解决方案来解决这个问题.
命令行SFTP程序
方法:安装一个免费的命令行SFTP应用程序,如Putty和WinSCP,并通过运行批处理文件或操作系统进程任务来执行它.这里列出了通过WinSCP执行此操作的说明.
优点:免费,免费,免费.如果您使用Putty,您可以确定它是安全的,因为许多GUI FTP客户端似乎使用Putty.您肯定知道您使用的是SSH2而不是SSH.
缺点:我尝试过的两个命令行实用程序(Putty和Cygwin)需要将SFTP密码存储在非安全位置.我没有找到一种在上传文件时捕获失败或错误的好方法.这个过程看起来并不像SSIS.大多数代码都封装在文本文件中而不是SSIS本身.如果您不知道要上载或下载的文件的确切名称,则很难使用.
一个3RD PARTY C#或VB.NET LIBRARY
方法:安装SFTP或FTPS库并使用引用库的脚本任务来上载文件.(我从未尝试过这个,所以我会猜测它的优点和缺点)
优点:可能很容易捕获错误.应该可以很好地处理变量,因此即使您不知道要上传或下载的文件的确切名称,它也可能很容易使用.
缺点:这是一个结合.NET库的脚本任务.如果您正在使用SSIS,那么您可能更熟悉SSIS任务,然后是.NET代码.脚本任务也很难排除故障,因为它们没有与常规.NET项目相同的调试工具和功能.创建对第三方代码的依赖关系,这些代码可能在不同版本的SQL Server之间不起作用.公平地说,它可能更有可能在不同版本的SQL Server之间工作,而不是第三方SSIS任务库.另一个巨大的骗局 - 我还没有找到一个免费的C#或VB.NET库.所以如果有人知道,那么请告诉我!
这个问题与语言无关,但我是C#家伙所以我使用术语POCO来表示一个只能预先形成数据存储的对象,通常使用getter和setter字段.
我只是将我的领域模型重新设计成超级PCOO,并且对于如何确保属性值在域中有意义而留下了一些问题.
例如,服务的EndDate不应超过服务所在合同的EndDate.但是,将检查放入Service.EndDate设置器似乎违反了SOLID,更不用说随着需要完成的验证数量增加,我的POCO类将变得混乱.
我有一些解决方案(将在答案中发布),但它们有其缺点,我想知道解决这一难题的最佳方法是什么?
language-agnostic separation-of-concerns solid-principles modular-design
我有一个php文件,我将作为一个包含专门使用.因此,当我通过输入URL而不是包含它来直接访问它时,我想抛出一个错误而不是执行它.
基本上我需要在php文件中进行如下检查:
if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");
Run Code Online (Sandbox Code Playgroud)
是否有捷径可寻?
python ×3
cocoa ×2
arguments ×1
automation ×1
c++ ×1
eclipse ×1
excel ×1
ftps ×1
function ×1
include ×1
integration ×1
java ×1
macos ×1
mdi ×1
objective-c ×1
parameters ×1
php ×1
pyobjc ×1
sanitization ×1
sdi ×1
service ×1
sftp ×1
sockets ×1
ssis ×1
vba ×1
web-services ×1