我们正在修复重新构建应用程序,并且正在讨论是否可以使用UWP而不是普通的WPF应用程序.
我们的应用程序需要能够访问整个文件系统和所有系统资源.这是一个问题,因为UWP应用程序是沙箱.但是,我们试图通过尝试以这种方式处理它来绕过该问题:
Windows服务 - >始终在系统上运行.这将在访问和修改系统资源时承载核心功能.
UWP应用程序 - >由于UWP是沙盒,UWP应用程序会将所有系统请求转发到Windows服务,这将完成所有主要工作并返回输出.
我们可以简单地在WPF中执行此操作,但我们希望使用UWP以利用WPF缺少的一些新的Windows 10核心功能,例如live tiles和Cortana.
你认为我们的方法是否可行?我们的一个不确定因素是我们如何让UWP应用程序与Windows服务进行通信 - 我们已经研究过SignalR和Desktop Bridge这样的东西,但不确定哪种方法可能是我们方案的最佳方法.
谢谢!
我遇到一个问题,其中我的查询方法在foreach循环中,并且每次我传递不同的参数以检索不同的信息时。但是,在循环的第一次迭代之后,查询数据将被缓存(我认为)并为后续循环返回相同的数据。
这是我的代码:
@Transactional(readOnly = true)
public List<InitiativeReport> getInitiativeReports() throws Exception {
try {
List<InitiativeReport> ir = new ArrayList<InitiativeReport>();
List<Initiative> in = initiativeRepository.findAll();
for(Initiative i : in) {
i.getTheme().getId(); // lazy initialize
InitiativeReport report = new InitiativeReport();
report.setId(i.getId());
report.setInitiativeId(i.getInitiativeId());
report.setName(i.getName());
report.setTheme(i.getTheme());
// this is the call to the query, which is cached after the first iteration
List<InitiativeProfileQuestion> q = initiativeProfileQuestionRepository.getQuestionsAndAnswerLogs(i.getInitiativeId());
report.setQuestions(q);
ir.add(report);
}
return ir;
}
catch (Exception e) {
throw new Exception(e);
}
Run Code Online (Sandbox Code Playgroud)
这是我的存储库界面:
public interface InitiativeProfileQuestionRepository extends JpaRepository<InitiativeProfileQuestion, Long> …Run Code Online (Sandbox Code Playgroud)