Map a network drive to Mac OS X that re-mounts after system reboot

This method allows you to reboot your Mac and have the mapped network drive / network share automatically connect and remount, appearing on the desktop of OS X or in the Finder sidebar. This is more persistent than the above method and is helpful for network shares you connect to frequently: From the Finder, hit …

通过现有数据库在 .NET Framework 上开始使用 EF Core

微软官方案例 在本教程中,你将构建一个控制台应用程序,它使用 Entity Framework 对 Microsoft SQL Server 数据库执行基本数据访问。 通过对现有数据库进行反向工程,创建 Entity Framework 模型。 在 GitHub 上查看此文章的示例。 系统必备 Visual Studio 2017 版本 15.7 或更高版本 创建博客数据库 本教程使用 LocalDb 实例上的博客数据库作为现有数据库。 如果已在其他教程中创建了博客数据库,请跳过这些步骤。 打开 Visual Studio “工具”->“连接到数据库…” 选择“Microsoft SQL Server”,然后单击“继续” 输入“(localdb)\mssqllocaldb”作为服务器名称 输入“master”作为数据库名称,然后单击“确定” Master 数据库现在显示在“服务器资源管理器”的“数据连接”中 右键单击“服务器资源管理器”中的数据库,然后选择“新建查询” 将下列脚本复制到查询编辑器中 右键单击查询编辑器,然后选择“执行” SQL复制 创建新项目 打开 Visual Studio 2017 “文件”>“新建”>“项目…” 从左侧菜单中选择“已安装”>“Visual C#”->“Windows Desktop” 选择“控制台应用(.NET Framework)”项目模板 确保项目面向 .NET Framework 4.6.1 或更高版本 …

ASP.NET MVC(HelperMethods)

帮助函数封装一些代码,方便我们在应用程序中重用,MVC内建很多帮助函数,可以很方便的生成HTML标记。首先列出后面示例中用到的数据模型类定义: namespace HelperMethods.Models { public partial class Person { public int PersonId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public DateTime BirthDate { get; set; } public Address HomeAddress { get; set; } public bool IsApproved { get; set; } public Role Role { …

ASP.NET MVC(View)

视图引擎与视图 多数情况下控制器action方法返回ViewResult对象,MVC内建action调用器ControllerActionInvoker负责调用控制器action方法并调用视图引擎处理ViewResut,由视图引擎将ViewResult转化为ViewEngineResult对象,ViewEngineResult对象内含实现IView接口的视图对象,最终MVC框架调用视图对象的Render的方法渲染输出结果。下面还是以例子来演示这个过程,先来看看相关接口和类的定义与实现: public interface IViewEngine {   ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache);   ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache);   void ReleaseView(ControllerContext controllerContext, IView view); } public interface IView {   void Render(ViewContext viewContext, TextWriter writer); } public class ViewEngineResult {   public ViewEngineResult(IEnumerable<string> searchedLocations) {     if (searchedLocations == null) {       throw new ArgumentNullException(“searchedLocations”);     } …

ASP.NET MVC(Factory)

MVC的标准流程是请求传递给控制器,由控制器action方法操作数据模型,最后交由视图渲染输出,这里忽略了两个细节,就是MVC是如何创建相应控制器实例,又是如何调用控制器action方法的,这就必须讲到控制器工厂和action调用器。 控制器工厂 Controller factory负责创建并初始化控制器,控制器工厂实现IControllerFactory接口: namespace System.Web.Mvc { public interface IControllerFactory {   IController CreateController(RequestContext requestContext, string controllerName);   SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, string controllerName);   void ReleaseController(IController controller);   } } 我们可以从IControllerFactory接口实现自定义的控制器工厂: public class CustomControllerFactory: IControllerFactory { public IController CreateController(RequestContext requestContext, string controllerName) { Type targetType = null; switch (controllerName) { case “Product”: targetType = typeof(ProductController); break; case “Customer”: targetType …

ASP.NET MVC(Action Filter)

public class AdminController : Controller { // … instance variables and constructor public ViewResult Index() { if (!Request.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); } // …rest of action method } public ViewResult Create() { if (!Request.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); } // …rest of action method } … AdminController控制器的众多Action中我们都需要判定当前验证用户,这里有很多重复的代码,我们可以简化为: [Authorize] public class AdminController : Controller { // … instance variables …