查看关于设置cookie的php文档,我看到我可以设置cookie的过期日期.您可以将cookie设置为在浏览器会话结束时或将来的某个时间到期,但我没有看到将cookie设置为永不过期的方法.这是否可能,这是如何实现的?
我知道这可能是一个古老的问题,但更好的做法是什么?在应用程序的所有层中使用域模型对象,甚至在JSP上直接将值绑定到它们(我使用的是JSF).或者将域模型对象转换为DAO或服务层中的DTO,并将轻量级DTO发送到表示层.
我被告知使用DTO是没有意义的,因为对数据库的更改将导致所有DTO的更改,而在任何地方使用模型对象只需要更改受影响的模型对象.然而,DTO的易用性和轻量级特性似乎超过了这一点.
我应该注意我的应用程序使用Hibernate模型对象并使用自己的自定义创建的模型对象(意味着没有绑定到任何数据库会话,总是分离).以上任一方案对严格的模型对象模式更有利吗?对于像Lazy Initialization Exceptions这样的事情,使用Hibernate是一个巨大的PITA.
我正在编辑这个问题,希望能够进一步讨论(不确定我是否正确行事):
我对模型对象的问题在于它们根本不灵活.下面的评论说应该设计应用程序,以便可以在所有层中使用模型对象.为什么?如果用户想要一个荒谬的功能,我应该告诉他们,"好吧,这对模型对象不起作用"?
简单而简单,有时候模型对象不起作用.你可能有:
public class Teacher {
List<Student> students;
[tons of other Teacher-related fields]
}
public class Student {
double gpa;
[tons of other Student-related fields]
}
Run Code Online (Sandbox Code Playgroud)
但也许你不需要所有这些信息.您只需要教师的姓氏,他们今年教授的学生人数,以及所有学生的平均GPA.在那种情况下你会做什么?检索完整的教师信息和学生关系,然后您的代码计入学生列表,然后计算内部所有gpas的总平均值?这似乎比简单地使用'String lastName','int numStudents'和'double combinedGpa'创建DTO更加努力;
听起来好像我已经考虑到了这些,但我还没有在一个应用程序中工作,在这个应用程序中,模型对象可以在每个实例中完全使用.具有不同寻常的用户需求的常规实际应用程序不能以这种方式工作.
对于DI和ninject来说,我是一个新手,我正在努力解决实际注入何时发生以及如何开始绑定的问题.
我已经在我的Web应用程序中使用它并且它在那里工作正常,但现在我想在类库中使用注入.
说我有这样一个类:
public class TestClass
{
[Inject]
public IRoleRepository RoleRepository { get; set; }
[Inject]
public ISiteRepository SiteRepository { get; set; }
[Inject]
public IUserRepository UserRepository { get; set; }
private readonly string _fileName;
public TestClass(string fileName)
{
_fileName = fileName;
}
public void ImportData()
{
var user = UserRepository.GetByUserName("myname");
var role = RoleRepository.GetByRoleName("myname");
var site = SiteRepository.GetByID(15);
// Use file etc
}
}
Run Code Online (Sandbox Code Playgroud)
我想在这里使用属性注入,因为我需要在构造函数中传入一个文件名.我是否正确说,如果我需要传入一个构造函数参数,我不能使用构造函数注入?如果我可以使用带有附加参数的构造函数注入,我该如何传递这些参数?
我有一个由Test类使用的控制台应用程序,如下所示:
class Program
{
static void Main(string[] args)
{
// NinjectRepositoryModule Binds my IRoleRepository …Run Code Online (Sandbox Code Playgroud) 运行Dynamics CRM 2011部署3.需要定期更新数百万个客户记录(增量更新).使用标准更新(逐个)需要几周时间.此外,我们不想直接触摸数据库,因为它可能在将来破坏数据.
我们可以使用Dynamics CRM 2011 webservice/REST API中的批量更新方法吗?(WhatWhereHow)
我已经下载了CRM Dynamics SDK并将其保存在本地目录中.在我的代码中,我正在使用EntityCollection(与Xrm名称空间相关的其他类),这意味着我需要添加using Microsoft.Xrm.Sdk;.
问题是在编译期间我得到错误说:
命名空间"Microsoft"中不存在类型或命名空间名称"Xrm"(您是否缺少程序集引用?)
所以,我仔细检查参考已经作出,非常准确,我看microsoft.xrm.sdk的确就是我的列表中.只是为了确定,我已经删除它并通过指向具有相同名称的DLL再次添加它.但无济于事......令人讨厌的事情是,我的同事使用相同的代码并在机器上编译(唯一的区别是他在Win 7上,我在Win 8上).
我们如何解决这个问题?
我使用Erik Pool的实现ICodeWriterFilterService和Manny Grewal的GenerateOption函数作为模型来过滤掉CRMSvcUtil生成的文件中不需要的实体.虽然Erik建议返回true为GenerateOptionSet方法enums集生成的方法,但这样做会复制任何特定实体使用的任何全局选项集(如该帖子的其中一条评论中所述).
为了解决这个问题,我检查是否已经生成了选项集,如果是,我将返回默认选项(大概false是大多数情况下),如下所示.
//list of generated option sets, instantiated in the constructor
private List<string> GeneratedOptionSets;
public bool GenerateOptionSet
(OptionSetMetadataBase optionSetMetadata, IServiceProvider services)
{
if (!GeneratedOptionSets.Contains(optionSetMetadata.Name))
{
GeneratedOptionSets.Add(optionSetMetadata.Name);
return true;
}
return _defaultService.GenerateOptionSet(optionSetMetadata, services);
}
Run Code Online (Sandbox Code Playgroud)
但是当在我的CRM项目中合并生成的文件时,编译错误
Run Code Online (Sandbox Code Playgroud)Cannot convert type 'Microsoft.Xrm.Sdk.OptionSetValue' to 'int'
总是被看起来像的每一行代码抛出
this.SetAttributeValue
("address1_shippingmethodcode", new Microsoft.Xrm.Sdk.OptionSetValue(((int)(value))));
Run Code Online (Sandbox Code Playgroud)
.
作为一种变通方法,我用一个单独的项目中,我过滤我需要的实体运行CRMSvcUtil的论据埃里克表明,更换代码的麻烦的部分(int)(value)(这里value是一个OptionSetValue含)value.Value时生成的文件后,再重新保存文件,并所有问题都消失了.
我的问题是:我是否需要做一些不同的事情来修复这个编译错误与默认CRMSvcUtil生成的文件,而不做像修改生成的文件这样的hackish?
我目前正在编写一个使用AngularJS的简单couchapp,并决定使用TypeScript
我基于AngularJS angular-phonecat教程.我将大部分应用程序转换为惯用的TypeScript.我的基础是pwalat/Piotr.Productlist第1位,但它们仅涵盖控制器和模型.
我正在努力弄清楚如何为角度路由器创建正确的TypeScript等效项 $routeProvider
//app/js/app.js[2]
angular.module('phonecat', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}).
when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
otherwise({redirectTo: '/phones'});
}]);
Run Code Online (Sandbox Code Playgroud)
我知道它需要module {}某种形式?
我正在提取营销列表清单.正如我这样做,根据我使用intellisense的检查,这似乎是一次成功的操作.当我寻找时,...Entities[0].Attributes["nick"]我得到一个对象(在其中的某个地方有正确的数据).但是我不能以编程方式访问它(相反,我必须像猴子一样点击,通过优点来折叠好东西).
事实上,我得到的实体应该使用下面的代码.问题是它们不Strings符合计算机.它们属于类型Microsoft.Xrm.Sdk.AliasedValue,我不知道如何访问其中的实际缺口.
new Contact
{
Name = element.Attributes["nick"] as String,
Mail = element.Attributes["mail"] as String
}
Run Code Online (Sandbox Code Playgroud)
Intellisense说Value它就在那里(而且它也是正确的值)但是我无法通过输入来访问它.Value.我怀疑我需要使用"as"或类似的东西,但此刻我被卡住了.任何提示?As它String应该起作用,它给了我null......
我已经读过这篇文章以及其他几个喜欢它和我看到它的方式,我应该能够访问那里所有有趣的东西.我不能......
我注意到下面的代码得到我的数据,我这么拼命试图让,但这个不能成为一个专业的语法,可以吗?!说真的,它看起来像一个患有多动症和宿醉的高中生试图这样做......
new Contact
{
Name = ((Microsoft.Xrm.Sdk.AliasedValue)result.Entities[0].Attributes["nick"]).Value,
Mail = ((Microsoft.Xrm.Sdk.AliasedValue)result.Entities[0].Attributes["mail"]).Value
}
Run Code Online (Sandbox Code Playgroud)
我的意思是,认真 - 这是一段丑陋的代码......必须有一个更好的方法!但是,我担心没有,因为这个讨论似乎也在使用这种语法......
dynamics-crm ×4
c# ×2
angularjs ×1
bulkinsert ×1
cookies ×1
dto ×1
enums ×1
git ×1
linux ×1
model ×1
ninject ×1
pdf ×1
php ×1
typescript ×1
xrm ×1