2010-09-27 61 views
2

这个问题是Best Solution Architecture中的一个扩展,基本上我想知道什么是最好的架构来处理涉及桌面和移动应用程序的解决方案。在这个时候,我想知道,如果我们决定研究Java技术,那么我们如何构建这个解决方案以便尽可能多地重用代码。良好的移动和桌面架构

解决方案必须运行在windows,linux和mac机器上(我们知道分别使用java和swing技术作为业务和GUI,我们可以完成这个要求)。当我们决定将Android操作系统移植到我们解决方案的移动功能时,问题就出现了,我们如何重用为桌面应用程序编写的代码?当我们试图避免Web或应用程序服务器安装时,如何将我的业务类作为服务公开?是否有可能归档SOA避免Web应用程序服务器?为了尽可能多地使用代码,最好的开发技术是什么?

如果你的家伙有任何文件或任何意见,指出我正确的方向来解决这个问题,我会appriciate它。

回答

2

如果你想避免托管一个运行它的代码的Web服务器,那么我会建议创建好的旧时尚JAR库。

保留JAR中的所有用户界面代码,并将业务逻辑编程为API。在J2SE 1.5中进行编码,但要确保在桌面和移动环境中进行测试。然后,您可以在创建完整桌面应用程序和Android应用程序时使用业务逻辑JAR文件。

有关在Android中使用JAR文件的信息,这将有助于: How to add external jar libraries to an android project from the command line

有关一般和桌面应用程序的JAR文件的信息在这里阅读更多:http://java.sun.com/developer/Books/javaprogramming/JAR/basics/

0

这里是一个PHP脚本,使它:

<?php 

/* MOBILE DETECT */ 

$mobile_browser = '0'; 

if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))): 
$mobile_browser++; 
endif; 

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))): 
$mobile_browser++; 
endif; 

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)); 

$mobile_agents = array('w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac', 
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno', 
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-', 
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-', 
'newt','noki','oper','palm','pana','pant','phil','play','port','prox', 
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar', 
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-', 
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp', 
'wapr','webc','winw','winw','xda','xda-'); 

if(in_array($mobile_ua,$mobile_agents)): 
$mobile_browser++; 
endif; 

if(strpos(strtolower($_SERVER['ALL_HTTP']),'operamini')>0): 
$mobile_browser++; 
endif; 

if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0): 
$mobile_browser=0; 
endif; 

if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0): 
$mobile_browser++; 
endif; 

if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),' ppc;')>0): 
$mobile_browser++; 
endif; 

if($mobile_browser>0): 
echo "mobile"; 
else: 
echo "nix mobile"; 
endif; 

?>