asp.net – 将任何UI连接到我的应用程序
发布时间:2020-12-16 09:49:54 所属栏目:asp.Net 来源:网络整理
导读:目前,我已经非常成功地构建了我的应用程序,如下所示: 数据模型(实体框架4.1) 使用Enterprise Library 5.0验证应用程序块进行验证. 由可重用类库管理的对象上下文. 因此,UI在代码上相当轻松,但我知道我还没完全在那里. 如果我想设置我的项目以便实现Web窗体,
目前,我已经非常成功地构建了我的应用程序,如下所示:
>数据模型(实体框架4.1) 因此,UI在代码上相当轻松,但我知道我还没完全在那里. 如果我想设置我的项目以便实现Web窗体,MVC,WPF桌面或Silverlight(甚至是Windows Phone 7)应用程序,我还需要采取哪些其他步骤? 这里有一些代码,故意简化,以说明我目前的游戏状态(我省略了代码约定和类库): (目前EF4 Model First和ASP .Net Web Forms) 自动生成实体的部分类 namespace MyNamespace.Database { using Microsoft.Practices.EnterpriseLibrary.Validation; using Microsoft.Practices.EnterpriseLibrary.Validation.Validators; [HasSelfValidation] public partial class MyEntity : IMyEntity { [SelfValidation] public void Validate(ValidationResults validationResults) { // Custom validation can go here,just add a new ValidationResult // to validationResults if the rule fails. if (validationResults != null) { validationResults.AddAllResults( ValidationFactory .CreateValidator<IMyEntity>() .Validate(this)); } } } } 验证 namespace MyNamespace.Database { using System.ComponentModel.DataAnnotations; using System.Diagnostics.Contracts; using Microsoft.Practices.EnterpriseLibrary.Validation; using Microsoft.Practices.EnterpriseLibrary.Validation.Validators; [ContractClass(typeof(MyEntityContract))] public interface IMyEntity { int Id { get; set; } [Required] [NotNullValidator] [StringLengthValidator(0,RangeBoundaryType.Ignore,50,RangeBoundaryType.Inclusive,MessageTemplate = "MyEntity Name must be 50 characters or less.")] string Name { get; set; } void Validate(ValidationResults validationResults); } } 门面的数据访问 namespace MyNamespace.Facade { using System.Collections.Generic; using System.Linq; using Common.ObjectContextManagement; using Database; public sealed class MyEntityFacade : FacadeBase<MyEntities,MyEntity> { public IEnumerable<MyEntity> GetAll() { return this.ObjectContext.MyEntitys .Distinct() .ToList(); } } } Web App UI using (new UnitOfWorkScope(false)) { this.MyEntityList.DataSource = new MyEntityFacade().GetAll(); this.MyEntityList.DataBind(); } // Or... using (var scope = new UnitOfWorkScope(false)) { var myEntityFacade = new MyEntityFacade(); var myEntity = new MyEntity(); PopulateEntity(myEntity); // Validation errors are automatically presented // to the user from the Validate method if (Validate(myEntity)) { try { myEntityFacade.Add(myEntity); scope.SaveAllChanges(); } catch (Exception exception) { Logging.Write("Error",LoggingLevel.Error,exception.Message); } } } 我有多近? 解决方法
公开中间/后端以便各种客户端可以挂钩的最简单方法是将其全部包装在一个或多个Web服务中.在您的示例中,您可以考虑将MyEntityFacade公开为WCF服务,或者您可以构建一个在客户端和外观之间来回传递的全新层.
如果您坚持使用POCO对象和SOAP,除了列出的客户端之外,您可以考虑从java,javascript,python等连接. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 缓存是客户端还是服务器端?
- asp.net – 通过VB.NET将click事件添加到按钮以激活javascr
- asp.net-mvc – Cookie不会被删除
- asp.net-mvc – 强类型视图与动态类型视图
- asp.net-mvc – SignalR 2依赖注入与Ninject
- asp.net-mvc – 用于json嵌套数组的MVC3绑定
- asp.net-mvc – 登录MVC3中的Razor视图
- asp.net-mvc – 如何获取视图html并返回客户端
- asp.net – 绑定ListView InsertItemTemplate中的DropDownL
- asp.net – TFS 2010 – TF14040可能无法检出文件夹
推荐文章
站长推荐
- asp.net-mvc – NHaml是否具有content_for布局能
- asp.net-mvc – 在路由路径中公开属于MVC应用程序
- 如何在ASP.NET PreInit事件中获得控制权?
- asp.net – HMACSHA1.ComputeHash()线程安全问题
- asp.net – 在转发器中只选择一个radiobutton
- ASP.NET设计网络硬盘之删除文件夹实现代码
- asp.net – Windows身份验证会话超时
- asp.net-mvc – 获取视图名称,其中ViewResult.Vi
- 身份验证 – 禁止ASP.NET Core中的API URL重定向
- asp.net – 如何使用比较验证器验证时间?
热点阅读