小编Eoi*_*ell的帖子

Xamarin表单导航和处理登录页面

我正在尝试创建一个带有登录页面的应用程序作为第一页.

一旦用户登录,之后的页面将位于标准页面堆栈组织中,因此我可以轻松地使用构建Navigation对象并将所有内容包装在导航页面中.

例如

Login Page -> MainAppPage  |-> Category1Page -> Cat1SubPage
                           |-> Category2Page -> Cat2SubPage
Run Code Online (Sandbox Code Playgroud)

我的理解是,我应该换MainAppPagenew NavigationPage(),然后我将有机会获得导航对象让我做这样的事情:

await this.Navigation.PushAsync(new Category1Page());
Run Code Online (Sandbox Code Playgroud)

并且各种平台将为我提供自动后退按钮支持以返回上一页.

但是我不希望用户以这种方式从LoginPage - > MainAppPage导航,因为我不希望后退按钮将它们带回Login,而没有他们明确地点击注销按钮.

那么我应该如何处理来自LoginPage - > MainApp Page的第一页转换.

是否有另外两种方法可以Primary在它们之间进行交换?或者有没有办法拦截MainAppPage上的后退按钮请求并丢弃它们?

没有在文档中找到关于此的大量信息,但它似乎是一个相当标准的要求,所以可能是PEBKAC

c# navigation xamarin xamarin.forms

11
推荐指数
2
解决办法
1万
查看次数

使用多个具体实现处理存储库模式中的查询?

这更像是学术上的好奇心,但我想弄清楚如何最好地完成以下内容.

想象一下你有一个Person物体的情况

public class Person {
    public string Name {get;set;}
    public int Age {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

和一个从一些持久性存储中检索它们的存储库合同......

public class IPersonRepository {
    public IEnumerable<Person> Search(*** SOME_METHOD_SIGNATURE ***);
}
Run Code Online (Sandbox Code Playgroud)

您的消费者应用程序实际上并不关心具体实现.它只是从Unity/Ninject中获取正确的具体实现并开始查询.

IPersonRespository repo = GetConcreteImplementationFromConfig();
repo.Search( ... );
Run Code Online (Sandbox Code Playgroud)

我想知道的是,你在这里使用的方法签名将是什么,无论实现如何,它都具有灵活性和可扩展性.

选项1.

public IEnumerable<Person> Search(Expression<Func<Person, bool>> expression);
Run Code Online (Sandbox Code Playgroud)

这很好,因为如果你使用LINQ Capable(例如EntityFramework)数据上下文,你可以直接将表达式传递给你的上下文.如果你的实现必须使用手工制作的存储过程/ sql/ADO.NET等,这个选项似乎就会失败...

选项2.

public IEnumerable<Person> Search(PersonSearch parameters);

public class PersonSearch {
    public int? Age {get;set;}
    public string FullName {get;set;}
    public string PartialName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这个看起来最灵活(在某种意义上它可以与Linq,Plain Old SQL一起使用).

但它只是"编写自己的查询语言"的臭味,因为您需要考虑消费者可能想要做的每一个可能的查询.例如,年龄> = 18 &&年龄<= 65 &&名字喜欢'%John%' …

linq generics repository

10
推荐指数
1
解决办法
1310
查看次数

SQL Azure地理复制用于非冗余目的

我只是在研究如何在Azure上构建一个大规模,全局可访问的应用程序.

那里已经有很多技术可以让你的应用程序尽可能贴近消费者.

  • 用于静态内容的CDN边缘服务器在全球共享.
  • 不同地区的云服务,使用流量管理器将域名路由到最近的应用程序主机.

我有点困惑的是数据库.如果您使用的是SQL Azure,则必须指定一个区域来放置它.如果我的SQL Azure实例位于西欧(阿姆斯特丹),但我的客户位于澳大利亚,并通过澳大利亚(NSW)的实例访问该应用程序,应用程序与数据库通信之间会有一些延迟.

我见过的有关Geo Replication的所有参考资料似乎都在主从冗余设置的上下文中.但是我想知道是否可以使用Master-Master设置,其中每个应用程序实例在同一个Geo-Region中与它自己的SQL Azure主实例进行对话,然后sql azure会处理它们之间的双向复制.

sql sql-server azure geo-replication azure-sql-database

10
推荐指数
1
解决办法
3063
查看次数

嵌套元素上的CSS和覆盖样式

这是来自这里提出的另一个问题,但我认为这可能是一种"最佳实践"方法.

在设计网站时,设计师很可能会为网站中的所有元素组合一组通用样式.(Div/Spans/H1/H2s中文本的标准字体)

在表的情况下,它们可能也定义了默认的站点范围边界和对齐...例如

Table
{
   border: dashed 1px #333333;
   padding: 2px;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果表中有一个表(来自RSolberg的示例,DataGrid中的AJAX日历),那么您的父表和嵌套表都将继承这些样式.(假设这就是为什么他们被称为Cascading)

我的问题是将样式应用于最顶层元素的最佳实践是什么,而没有子元素也继承它们.

你应该只提供一个覆盖来撤消你应用的任何样式.

例如

Table
{
   border: dashed 1px #333333;
   padding: 2px;
}

Table Table
{
   border: solid 0px #000000;
   padding: 0px;
}
Run Code Online (Sandbox Code Playgroud)

html css styles

9
推荐指数
2
解决办法
3万
查看次数

我应该如何保护我的WCF Rest/JSON服务以用于iOS/Android应用程序?

我们正在构建一个新的Web应用程序堆栈.后端功能将基于服务,但由于其中一些服务需要暴露给公共互联网,我需要保护它们.我使用标准成员资格/角色提供程序模型锁定服务URL部分成功.我在那一刻遇到麻烦的部分是,如果我们要在我们的服务堆栈上构建一个iOS(或Android)应用程序,我们将如何处理安全性?

我完全乐于接受建议.到目前为止,我已在下面的设置中包含了一些信息.

  1. ASP.NET网站使用在HTTPS连接上运行的SQL成员资格/角色提供程序/表单身份验证.只有Default/Login/FAQ页面可以公开访问.所有其他页面都位于名为"/ Secure"的文件夹中,需要您进行身份验证.

  2. WCF WebService.所有支持的功能都通过此服务提供.端点仅在本地Intranet上可用.ASP.NET网站代码背后使用标准服务参考与服务进行对话.

  3. WCF REST/JSON服务.上述某些功能在WCF REST/JSON服务中重新包装.这是使用" WCF REST模板40 "设置的.然后使用System.Web.Routing将服务路由到"/ Secure/jsonsvc/*".因为它位于/ Secure文件夹下,所以它继承了任何请求的membership/roleprovider安全性.例如,xmlhttp从客户端JQuery小部件调用此服务,仅适用于已登录我们网站的用户.

  4. 将来,外部应用程序(例如IPad应用程序)可能需要使用这些相同的WCF Rest/JSON服务.鉴于缺少HTTP站点/会话/登录上下文,最好的方法是什么?

.net rest wcf json ios

9
推荐指数
1
解决办法
4798
查看次数

c#code for select all wpf datagrid中的复选框

我需要一些c#代码来选择/取消选择WPF 3.5框架中数据网格中的所有复选框.我想通过单击网格中的单个标题复选框来完成此操作.

请帮忙.

c# wpf checkbox datagrid .net-3.5

8
推荐指数
3
解决办法
3万
查看次数

如何忽略[XMLIgnore]属性

我正在尝试将从第三方.NET Lib获得的一些对象序列化为XML文件.

当我Go To Definition为对象时,该对象的某些属性被标记为[XMLIgnore]

有没有办法告诉我System.Xml.Serialization.XmlSerializer忽略一些属性具有该属性并且应该序列化对象中的所有内容的事实.

我可能获得源代码并重新编译它没有XMLIgnore属性,但如果XmlSerializer有一些很好的覆盖属性,它会很好

XmlSerializer xmls = new XmlSerializer(
   typeof(MyObject),
   Settings.DoNotApplyXMLAttributeRules
);
Run Code Online (Sandbox Code Playgroud)

提前致谢


编辑

已按照建议尝试了XmlAttributeOverrides但没有太多的乐趣.这是对象定义(来自FlickrAPI的照片)

[Serializable]
public class Photo
{
    //Some code omitted
    [XmlIgnore]
    public string LargeUrl { get; }

}
Run Code Online (Sandbox Code Playgroud)

继承了我写过的序列化代码......仍然无效......

XmlWriter xtw = XmlWriter.Create( Server.MapPath("~/App_Data/Data.xml") );

XmlAttributes photoAttributes = new XmlAttributes();
photoAttributes.XmlIgnore = false;

XmlAttributeOverrides photoOverrides = new XmlAttributeOverrides();
photoOverrides.Add(typeof(Photo), "LargeUrl", photoAttributes);

XmlSerializer xmlphoto = new XmlSerializer(typeof(Photo), photoOverrides);
Run Code Online (Sandbox Code Playgroud)

.net c# xml xml-serialization .net-3.5

8
推荐指数
1
解决办法
3万
查看次数

如何在SQL Azure Active Geo-Replication辅助节点上重新创建用户/登录

我的生产应用程序有一个Premium P2 SQL Azure数据库,出于安全考虑,我创建了数据库特定模式/视图/角色以及用于从SSRS查询中读取数据的特定数据库用户帐户.

让我们只是调用服务器PRIMARY和我的数据库MyApp

这个的安装脚本如下.

-- On Primary Master
CREATE LOGIN ssrsuser WITH password='******'

-- On Primary MyApp
CREATE USER ssrsuser FOR LOGIN ssrsuser 
CREATE ROLE [ssrsreader] AUTHORIZATION [db_owner]
GRANT SELECT ON SCHEMA :: [App] TO [ssrsreader]
GRANT SELECT ON SCHEMA :: [Reports] TO [ssrsreader]
EXEC sp_addrolemember 'ssrsreader', 'ssrsuser'
Run Code Online (Sandbox Code Playgroud)

因此,我们的用户对Prod数据库施加了很多负载,我们认为是时候将报告功能移到辅助同步从数据库了.

由于我们使用的是SQL Azure Premium层,因此我们可以使用只读辅助副本启用Active Geo-Replication.实际上MS甚至说它适用于只读工作负载,例如报告.

所以我设置了SECONDARY服务器,启用了播种,它现在已经完成,我可以使用SECONDARY管理员用户和密码访问只读副本.

但是SECONDARY服务器没有登录,ssrsuser而我可以创建一个SECONDARY.master,我不能DROP RECREATE用户,因为SECONDARY.MyApp数据库处于只读模式.

有没有其他方法来解决这个问题.我真的不想将SECONDARY服务器管理员用户和密码放入SSRS连接字符串.

sql-server azure reporting-services geo-replication azure-sql-database

8
推荐指数
1
解决办法
2144
查看次数

我应该如何执行SQL ETL脚本和SPROC的自动化测试?

我们有许多DTSX软件包,它们从许多传统的Pervasive Databases - > SQL Server 2k8 R2中提取 - 转换 - 加载数据.(通过ODBC)

我们的大部分ETL过程都是T-SQL脚本

遗留数据是一个结构严重的混乱,最常见的是,我们对ETL脚本进行的调整和更改是为了处理这种格式错误的数据.

我们想要做的是设置一些流程来自动测试执行这些转换的SPROCS/Scripts.

我们自己想出的是:

  • 有一些已知的数据源输入(托管在本地普及数据库中)
  • 运行DTSX包以生成输出
  • 在SQL Server中的其他地方有一些预期和预先创建的输出.
  • 编写我们自己的验证脚本,将预期与实际情况进行比较.

只是想知道是否还有其他进程/系统/数据库测试应用程序,我们也应该考虑.

sql sql-server unit-testing ssis etl

7
推荐指数
1
解决办法
4846
查看次数

最佳实践 - 在EntityFramework中混合使用View-Entities的表实体?

我有一个遗留数据库,我想与Entity Framework进行交互.

数据库高度标准化,用于存储有关航班的信息.为了更容易使用某些数据,已经编写了许多SQL视图来展平数据并将某些多表连接转换为更多逻辑信息.

快速浏览一下后,我发现在EF中使用Views有两个问题.

  1. 视图包含大量的键.一些快速谷歌搜索似乎表明我将需要手动编辑EDMX文件以删除此信息.

  2. 视图与其他表实体没有任何关系.需要手动添加这些关联才能链接视图 - >表.

当DBA团队进行更改时,从DB中刷新模型时,这两者似乎都是主要的难点.

这是您在使用EF时需要"忍受"的东西,还是有任何建议的模式/做法来处理这些问题.

c# entity-framework view edmx

7
推荐指数
1
解决办法
3851
查看次数