我是SharePoint的新手,并试图解决这个问题.我有一个简单的Web部件项目.我还有一个自定义数据层项目,它使用Microsoft Enterprise Library进行数据访问.在Web部件项目中,我添加了对数据层项目程序集的引用.我在Web部件项目的包中指定了我希望部署数据层的程序集.我可以通过使用标准ADO.NET类而不是自定义MS库来验证这是有效的.如果我使用企业库部署到SharePoint服务器(我有100%访问权限),我会收到错误消息:
"无法加载文件或程序集'Microsoft.Practices.EnterpriseLibrary.Data"
我需要采取哪些步骤来确保此项目以及服务器上的所有未来项目都可以轻松访问企业库以进行数据访问?
谢谢!
我正在学习Linq to SQL,我很难理解它.我试图简单地在C#中使用Linq查询返回单个(布尔值)值.
我想看看故事的所有者是否希望在添加新评论时发送电子邮件通知.我想包含Linq to SQL的方法返回一个布尔值.
public bool NotifyOnComment(string username){
var notify = (from s in db.AccountSettings
where s.UserName == username
select s.NotifyOnComment).DefaultIfEmpty(false);
// clueless
}
Run Code Online (Sandbox Code Playgroud)
更新:
我现在正在做以下事情:
var notify = (from s in db.AccountSettings
where s.UserName == username
select s.NotifyOnComment).SingleOrDefault();
return (bool)notify;
Run Code Online (Sandbox Code Playgroud) 我的数据库中有几个产品表:
我现在看到它的方式,我可以制作具有以下方法的IProduct:
或者,我可以分别模仿表结构:IProductType,IProductCategory等.
是否有理由与另一个一起去?
我仍然在努力解决这个问题,因为我正在尝试使用来自ASP.NET Web Forms的SharePoint.我们希望仅出于几个原因使用SharePoint; 其中一个主要卖点是巩固我们的发展努力.因此,例如,今天我们有几个一次性网站,在几个服务器,IIS安装等等1-5页(小),似乎有点零散.
假设我需要一个小网站(1-5)页面.SharePoint处理这种情况的方法是什么?我是否创建了多个Web部件,然后在SharePoint中创建页面并将其插入或者我只是创建一个ASP.NET Web窗体应用程序并在SharePoint中提供链接吗?
谢谢!
更新
我没有去.基于反馈和其他研究,似乎应用程序页面正是我正在寻找的.这是一篇很好的文章:http://grounding.co.za/blogs/brett/archive/2008/07/13/sharepoint-the-role-of-a-web-part-vs-using-application-pages.aspx
我有一些单元测试和模拟的经验.在我有限的经验中,我将使用这两个来测试服务层,例如,模拟(stubbing?)数据库以消除依赖关系并专注于单元测试业务逻辑.
现在我正在创建一个将使用RESTful Web服务的包装器API实现.发回给我的json结果结构不在我手中,例如:Twitter.我只是构建客户端以与其api接口.我不确定如何对json结果进行单元测试.现在我只是用静态json结构模拟http请求的结果.这确保了json对我的pojos的反序列化是正确的,但我关注API的变化.如果api结构改变怎么办?如果api目前返回"title"并明天返回"groovy_title"怎么办?我的单元测试不会抓住那个.
从我的理解来看 - 单元测试应该很快.以前我会模拟数据库,现在我正在嘲笑http,但是我应该使用具体的http实现,所以我立即通知了一个突然的api更改?或者有更好的方法来解决这种情况吗?
我有一个由两个不同页面共享的视图模型.除了一个属性外,视图模型非常相似:地址.视图模型包含名称和位置字段.但是,客户视图的地址标签应为:客户地址和员工视图的地址标签应为:员工地址.它们还将显示不同的错误消息.
这是我想要完成的简化版本:
public class BaseLocation
{
[Display(Name="Your Name")]
public string Name {get;set;}
public virtual string Address {get;set;}
}
public class CustomerLocation : BaseLocation
{
[Display(Name="Customer Address")]
public override string Address {get;set;}
}
public class EmployeeLocation : BaseLocation
{
[Display(Name="Employee Address")]
public override string Address {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
然后我为基本位置创建了一个部分,如下所示:
@model BaseLocation
***ASP.NET MVC Helpers here: labels, text, validation, etc.
Run Code Online (Sandbox Code Playgroud)
最后,在Customer和Employee页面中,我将调用partial并将其发送给子类型.
Customer.cshtml
@model CustomerLocation
@Html.Render("_BaseLocation", Model)
Employee.cshtml
@model EmployeeLocation
@Html.Render("_BaseLocation", Model)
Run Code Online (Sandbox Code Playgroud)
结果是我不会看到特定类型的数据属性.例如,在客户页面中,我会得到一个"地址"标签而不是"客户地址".
我宁愿不为每种特定类型创建两个具有相同数据的部分,只是因为共享视图模型中的一个属性应该具有不同的标签和错误消息.最好的方法是什么?谢谢.
到目前为止,我一直是我客户项目中的孤狼.任何时候我都会对SQL Server进行更改:表更新,存储过程等.我会生成更改脚本并将其放入目录中.当应用程序准备好发布时,我会在实时服务器上运行脚本并完成.
很快我将有另一个开发人员在同一个项目上工作.项目文件都在源代码管理中.我只是不确定如何处理更改脚本.我猜它们也应该受源代码控制?如果是这样,最好的命名约定是什么?我究竟如何确定下一个版本要执行哪些脚本?请记住,这是一个相当低调,非正式的Web项目,没有任何版本号或项目管理软件.
谢谢.
从第1天开始,我一直在努力解决这个问题.我可能已经被很多甚至根本不处理错误的代码所包围.
无论如何,我正在使用传统的n层设计中的WebForms:UI-> BLL-> DAL.通常我所做的(我知道它不对)是尝试/捕获我的数据操作.如果有例外我只是把它扔到泡沫中.
try
'db operations
catch ex as exception
throw
finally
'close connections
end
Run Code Online (Sandbox Code Playgroud)
那么它会冒泡到BLL,并且还有另一个try/catch,我将记录错误.现在我想提醒用户有什么问题,所以我再次抛出它,这样它就会冒泡到用户界面.在UI级别,我将包装一个try/catch,如果有错误,我将向他们显示一条友好的消息.
你的想法是什么?我能在这做些什么?
假设我的业务层当前包含一堆DTO和单独的服务类,以便与数据存储库进行通信.
例:
class PersonService
{
IPersonRepository _personRepository;
ILogging _logger;
ICacheStorage _cache;
// Constructor here to create concrete objects.
public Person GetPersonById(int Id)
{
// error logging and caching here???
}
}
Run Code Online (Sandbox Code Playgroud)
在这一层记录和缓存是否有意义?或者,应用服务层处理这些问题会更有意义吗?或者可能还有别的东西?
我正在编写一个包装REST API的库.我正在创建的包装器使用GSON将json反序列化为我的对象.基本上,像这样......
public Post getPost(url) throws IOException {
String jsonString = httpClient.get(url);
Post p = gson.fromJson(jsonString, Post.class);
// return Post to client and let client do something with it.
}
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,IOException是一个经过检查的异常.我告诉我的客户:嘿,伙计 - 你最好注意并从这个例外中恢复过来.现在我的客户端可以在try/catch中包装调用,并确定在出现网络故障时该怎么做.
GSON fromJson()方法抛出JsonSyntaxException.我相信这在Java世界中是未经检查的,因为它的一个超类是RuntimeException,而且因为我不需要添加try/catch或像IOException这样的"throws".
假设我到目前为止所说的是正确的 - API和客户端究竟应该如何处理这种情况?如果json字符串是垃圾,我的客户端将由于JsonSyntaxException而失败,因为它未经检查.
// Client
PostService postService = new PostService();
try{
Post p = postService.getPost(urlString);
// do something with post
}catch (IOException){
// handle exception
}
// ok, what about a JsonSyntaxException????
Run Code Online (Sandbox Code Playgroud)
处理这些情况的最佳方法是什么?
asp.net ×3
asp.net-mvc ×3
architecture ×2
c# ×2
sharepoint ×2
.net ×1
gson ×1
java ×1
json ×1
linq ×1
linq-to-sql ×1
mocking ×1
rest ×1
scripting ×1
sql ×1
sql-server ×1
svn ×1
unit-testing ×1
webforms ×1