[{"data":1,"prerenderedAt":415},["ShallowReactive",2],{"article-visual-studio-2015-toolbox-items-missing":3},{"article":4,"tags":75,"previous":90,"next":354},{"id":5,"title":6,"author":7,"body":8,"createdAt":63,"description":64,"extension":65,"img":66,"meta":67,"navigation":68,"path":69,"seo":70,"stem":71,"tags":72,"updatedAt":63,"__hash__":74},"articles\u002Farticles\u002Fvisual-studio-2015-toolbox-items-missing.md","Visual Studio 2015 Toolbox Items missing","[object Object]",{"type":9,"value":10,"toc":59},"minimark",[11,20,39,42,47],[12,13,14,15,19],"p",{},"Recently, I was using a 3rd party product that had toolbox items.  All was good after installation, then Visual Studio crashed,\nand my new toolbox items disappeared.  Restarting didn’t help.  I came across the following solution which\n",[16,17,18],"strong",{},"did ","solve my issue. To understand the cause of Toolbox issues and resolve them, perform the following steps:",[21,22,23,27,30,33,36],"ul",{},[24,25,26],"li",{},"Open the \"%USERPROFILE%\\AppData\\Local\\Microsoft\\VisualStudio\\14.0\" folder and remove all .TBD files.",[24,28,29],{},"Run the Registry Editor (regedit.exe).",[24,31,32],{},"Locate the following keys:\n\"HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\14.0\\ToolboxControlsInstaller_AssemblyFoldersExCache\"\n\"HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\14.0\\ToolboxControlsInstallerCache\"",[24,34,35],{},"Remove these keys with their sub-keys.",[24,37,38],{},"Launch Visual Studio 2014 using the following command line:",[12,40,41],{},"In a 32-bit Windows:\n\"C:\\Program Files\\Microsoft Visual Studio 14.0\\Common7\\IDE\\devenv\" \u002FResetSkipPkgs \u002Flog \"\u003Cmy_folder>\\ActivityLog.xml\"\nIn a 64-bit Windows:\n\"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\devenv\" \u002FResetSkipPkgs \u002Flog \"\u003Cmy_folder>\\ActivityLog.xml\"",[21,43,44],{},[24,45,46],{},"Open Visual Studio – relaunch and hopefully all is good.",[48,49,51],"a",{"href":50},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015toolbox-items-missing_e76b-toolbox_2.jpg",[52,53],"img",{"title":54,"style":55,"border":56,"alt":54,"src":57,"width":58,"height":58},"toolbox","border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px",0,"\u002Farticles\u002Fimageswindows-live-writer-visual-studio-2015toolbox-items-missing_e76b-toolbox_thumb.jpg",240,{"title":60,"searchDepth":61,"depth":61,"links":62},"",2,[],"2016-01-20T12:29:49.0000000-05:00",null,"md","\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015toolbox-items-missing_e76b-toolbox_thumb.jpg",{},true,"\u002Farticles\u002Fvisual-studio-2015-toolbox-items-missing",{"title":6,"description":64},"articles\u002Fvisual-studio-2015-toolbox-items-missing",[73],"visualstudio","zdb7Iz7ZOc2BRjB-2JVcAt2ealuaketM1ImlOxRIVaU",[76],{"id":77,"title":78,"body":79,"description":83,"extension":65,"img":84,"meta":85,"name":73,"navigation":68,"path":86,"seo":87,"stem":88,"__hash__":89},"tags\u002Ftags\u002Fvisualstudio.md","Visualstudio",{"type":9,"value":80,"toc":81},[],{"title":60,"searchDepth":61,"depth":61,"links":82},[],"Develop apps for Android, iOS, Mac, Windows, web, and cloud","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1598313183973-4effcded8d5e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=675&q=80",{},"\u002Ftags\u002Fvisualstudio",{"description":83},"tags\u002Fvisualstudio","glm3bYyBlAXGun4NJe-CV_iOzhszydeBRIpbGNNLeEk",{"id":91,"title":92,"author":7,"body":93,"createdAt":345,"description":346,"extension":65,"img":147,"meta":347,"navigation":68,"path":348,"seo":349,"stem":350,"tags":351,"updatedAt":345,"__hash__":353},"articles\u002Farticles\u002Fxamarin-android-drawerlayout.md","Xamarin Android - DrawerLayout",{"type":9,"value":94,"toc":343},[95,201,246,285],[12,96,97,98,102,103,105,106,109,110,113,117,118,120,121,123,124,126,127,129,130,132,133,138,139,141,151,153,154,156,157,159,160,163,164,166,167,169,170,172,179,180,188,190,191,193,194,196,197,200],{},"To add a navigation drawer, declare your user interface with a ",[48,99,101],{"href":100},"http:\u002F\u002Fdeveloper.android.com\u002Freference\u002Fandroid\u002Fsupport\u002Fv4\u002Fwidget\u002FDrawerLayout.html","DrawerLayout"," object as the root view of your layout. Inside the ",[48,104,101],{"href":100},", add one view that contains the main content for the screen (your primary layout when the drawer is hidden) and another view that contains the contents of the navigation drawer.",[107,108],"br",{},"\n\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\n\u003Candroid.support.v4.widget.DrawerLayout\nxmlns:android=\"",[48,111],{"href":112},"http:\u002F\u002Fschemas.android.com\u002Fapk\u002Fres\u002Fandroid",[48,114,112],{"href":112,"rel":115},[116],"nofollow","\"\nandroid:id=\"@+id\u002FdrawerLayout\"\n   android:layout_width =\"match_parent\"\n    android:layout_height=\"match_parent\">",[107,119],{},"\n  \u003C!-- Content -->\n  \u003CFrameLayout\n        android:id =\"@+id\u002FframeLayout\"\n        android:layout_width =\"match_parent\"\n        android:layout_height=\"match_parent\" \u002F>",[107,122],{},"\n  \u003C!-- Navigation drawer menu -->\n  \u003CListView\n        android:id=\"@+id\u002FdrawerListView\"\n        android:layout_gravity=\"start\"\n        android:choiceMode    =\"singleChoice\"\n        android:layout_width  =\"240dp\"\n        android:layout_height =\"match_parent\"\n        android:background =\"?android:attr\u002FwindowBackground\" \u002F>",[107,125],{},"\n\u003C\u002Fandroid.support.v4.widget.DrawerLayout>",[107,128],{},"\nThe above layout uses a DrawerLayout with two child views: a FrameLayout to contain the main content which will be populated with a Fragment at runtime, and a ListView for the contents of the drawer.",[107,131],{},"\nNow to the MainActivity.cs coding.. let’s get a reference to the drawerLayout = FindViewById\u003CDrawerLayout>(Resource.Id.drawerLayout);  You will find that DrawerLayout is not defined.  You need to add a reference via Nuget to ",[48,134,137],{"href":135,"target":136},"https:\u002F\u002Fcomponents.xamarin.com\u002Fview\u002Fxamandroidsupportv4-18","_blank","Android Support Library v4",".  Open Nuget and search for Xamarin.android.support.v4",[107,140],{},[48,142,144],{"href":143},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_2.png",[52,145],{"style":146,"src":147,"border":56,"alt":148,"title":148,"width":149,"height":150},"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;","\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_thumb.png","image",374,106,[107,152],{},"\nAndroid Support Libraries : The Android Support Libraries are a set of code libraries that provide backward-compatible versions of Android framework APIs as well as features that are only available through the library APIs. Each Support Library is backward-compatible to a specific Android API level. This design means that your applications can use the libraries' features and still be compatible with devices running older versions of Android.  Including the Support Libraries in your Android project is considered a best practice for application developers.",[107,155],{},"\nAdding a using statement for Android.Support.V4.Widget will complete the reference to DrawerLayout.",[107,158],{},"\n_menuItems = new string",[161,162],"span",{}," { \"Welcome\", \"Options\", \"About\" };\n_drawerLayout = FindViewById\u003CDrawerLayout>(Resource.Id.drawerLayout);\n_drawerList = FindViewById\u003CListView>(Resource.Id.drawerListView);\n_drawerList.Adapter = new ArrayAdapter\u003Cstring>(this, Resource.Layout.ListViewMenuRow, Resource.Id.menuRowTextView, _menuItems);",[107,165],{},"\nWe have a List which should be populated by an Adapter (ArrayAdapter or SimplerCursorAdaptor)",[107,168],{},"\nAt this point we have (left) and if you swipe toward the right you see the menu.",[107,171],{},[48,173,175],{"href":174},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_4.png",[52,176],{"style":146,"src":177,"border":56,"alt":148,"title":148,"width":178,"height":58},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_thumb_1.png",151," ",[48,181,183],{"href":182},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_6.png",[52,184],{"style":185,"src":186,"border":56,"alt":148,"title":148,"width":178,"height":187},"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;","\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_thumb_2.png",244,[107,189],{},"\nHooking up the menu click looks like..",[107,192],{},"\n_drawerList.ItemClick += _drawerList_ItemClick;",[107,195],{},"\nprivate void _drawerList_ItemClick(object sender, AdapterView.ItemClickEventArgs e)\n{\n    OnMenuItemClick(e.Position);\n}private void OnMenuItemClick(int position)\n{\n    this.Title = _menuItems",[161,198,199],{},"position",";\n}",[12,202,203,204,206,207,200,209,211,212,216,217,221,222,226,227,231,233,234,236,237,239,240,242,243,245],{},"If you want to use lambda the above can be rewritten..",[107,205],{},"\n_drawerList.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => OnMenuItemClick(e.Position);\nprivate void OnMenuItemClick(int position)\n{\n    this.Title = _menuItems",[161,208,199],{},[107,210],{},"\nNow we have to deal with showing a view after clicking a menu item.  We will do this implementation with Fragments.  A Fragment is a piece of an application's user interface or behavior that can be placed in an ",[48,213,215],{"href":214},"http:\u002F\u002Fdeveloper.android.com\u002Freference\u002Fandroid\u002Fapp\u002FActivity.html","Activity",". Interaction with fragments is done through ",[48,218,220],{"href":219},"http:\u002F\u002Fdeveloper.android.com\u002Freference\u002Fandroid\u002Fapp\u002FFragmentManager.html","FragmentManager",", which can be obtained via ",[48,223,225],{"href":224},"http:\u002F\u002Fdeveloper.android.com\u002Freference\u002Fandroid\u002Fapp\u002FActivity.html#getFragmentManager()","Activity.getFragmentManager()"," and ",[48,228,230],{"href":229},"http:\u002F\u002Fdeveloper.android.com\u002Freference\u002Fandroid\u002Fapp\u002FFragment.html#getFragmentManager()","Fragment.getFragmentManager()",[107,232],{},"\nAt this point, we declare field parameter Fragment",[161,235],{}," _fragments\nprivate Fragment",[161,238],{}," _fragments = new Fragment",[161,241],{},"{ new WelcomeFragment(), new OptionsFragment(), new AboutFragment() };",[107,244],{},"\nand within the menu click, use the FragmentManager to set the selected fragment using the position in the array.",[12,247,248,249,251,252,254,255,257,258,260,261,263,264,268,269,271,272,274,282,284],{},"private void OnMenuItemClick(int position)\n{\n    base.FragmentManager.BeginTransaction().Replace(Resource.Id.frameLayout, _fragments",[161,250,199],{},").Commit();\n    this.Title = _menuItems",[161,253,199],{},";\n}\nOk, so running the sample now we have a drawer menu, and when an item is selected we use FragmentManager to swap out the frameLayout view with a fragment defined in the _fragments array.  As the application starts we want to set the first menu item selected and we want to show the respective fragment via",[107,256],{},"\n_drawerList.SetItemChecked(0, true); \u002F\u002Fhighlight the first item at startup\nOnMenuItemClick(0);",[107,259],{},"\nAfter the menu item is selected, we swap fragments and we will also close the drawer via\n_drawerLayout.CloseDrawer(_drawerList);",[107,262],{},"\nIf you review the screen captures above you will notice we do not yet have the hamburger menu.  We will do this by working with the ActionBar.  Using the class ",[48,265,267],{"href":266,"target":136},"http:\u002F\u002Fdeveloper.xamarin.com\u002Fapi\u002Ftype\u002FAndroid.Support.V4.App.ActionBarDrawerToggle\u002F","ActionBarDrawerToggle"," we can tie together the functionality of DrawerLayout and the framework ActionBar to implement the recommended design for navigation drawers.",[107,270],{},"\nSo, I did have a few conflicts at this point which brings up Android.Support.V7.App vs. Android.Support.V4.App.  What is the difference? V4 supports library is designed to be used with Android 1.6 (API level 4) while V7 supports “libraries designed to be used with Android 2.1 (API level 7) and higher”  We will need to add via Nuget Xamarin.Android.Support.v7.AppCompat to reference ActionBarDrawerToggle.  i.e. Android.Support.V7.App.ActionBarDrawerToggle",[107,273],{},[48,275,277],{"href":276},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_8.png",[52,278],{"style":146,"src":279,"border":56,"alt":148,"title":148,"width":280,"height":281},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_thumb_3.png",342,100,[107,283],{},"\nWithin v7 Support Library there are several libraries with a number of feature sets which can be included independently of each other.  For example within v7 we have v7 appcompat library, v7 cardview library, v7 gridlayout library etc.",[12,286,287,288,290,291,294,295,297,298,300,301,305,306,308,309,297,311,313,179,320,328,330,331,333,334,336,337,339,340,342],{},"\u002F\u002Fcreate an instance of actionbardrawertoggle           \n_drawerToggle = new ActionBarDrawerToggle(this, _drawerLayout, Resource.String.DrawerOpenDescription, Resource.String.DrawerCloseDescription);\n\u002F\u002Fset the actiondrawertoggle as the drawerlistener on the drawlayout so it recieves drawer state-change callbacks\n_drawerLayout.SetDrawerListener(_drawerToggle);\n\u002F\u002FMust up-enable the home button, the ActionBarDrawerToggle will change the icon to the \"hamburger\"\nActionBar.SetDisplayHomeAsUpEnabled(true);",[107,289],{},"\nBuilding the project I do have an issue….”",[16,292,293],{},"No resource identifier found for attribute ‘touchscreenBlocksFocus’ in the package ‘android’ ","After more than 1 hour of searching I came along the solution.  I had ‘Compile using Android version:’ API Level 19, Minimum Android to target: Use Compile using SDK Version, Target Android: ‘'Use Compile Using SDK Version.  In order to avoid this error I had to change my Target Android version to API Level 21 (Xamarin.Android v5.0 Support).",[107,296],{},"\n ",[107,299],{},"\nSo that brings up the question\u002Fconcern, for Android applications you have the choices Compile Using, Minimum Android to target, and Target Android version.  So what is the difference here.  From ",[48,302,304],{"href":303,"target":136},"http:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F4568267\u002Fandroid-min-sdk-version-vs-target-sdk-version\u002F4994039#4994039","StackOverflow"," a very good explanation (partial)\n”In short, here is the purpose to declaring a different targetSDK from the minSDK: It means you are using features from a higher level SDK than your minimum, but you have ensured backwards compatibility. In other words, imagine that you want to use a feature that was only recently introduced, but that isn't critical to your application. You would then set the targetSDK to the version where this new feature was introduced and the minimum to something lower so that everyone could still use your app.”",[107,307],{},"\nGetting back on track, we were hooking up the action bar to that of the drawer. Before we hook up this action bar drawer toggle we have this (left) notice there is no icon.  After we hook up the drawertoggle we have the \u003C icon.",[107,310],{},[107,312],{},[48,314,316],{"href":315},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_14.png",[52,317],{"style":146,"src":318,"border":56,"alt":148,"title":148,"width":319,"height":58},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_thumb_6.png",150,[48,321,323],{"href":322},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_10.png",[52,324],{"style":146,"src":325,"border":56,"alt":148,"title":148,"width":326,"height":327},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-xamarinandroiddrawerlayout_9d2d-image_thumb_4.png",152,242,[107,329],{},"\nNow when a user clicks on the > icon we want to forward all actionbar clicks to the ActionBarDrawerToggle.  We can do this with",[107,332],{},"\npublic override bool OnOptionsItemSelected(IMenuItem item)\n{\n    \u002F\u002F Forward all ActionBar-clicks to the ActionBarDrawerToggle.\n    \u002F\u002F It will verify the click was on the \"Home\" button (i.e. the button at the left edge of the ActionBar).\n    \u002F\u002F If so, it will toggle the state of the drawer. It will then return \"true\" so you know you do not need to do any more processing.\n    if (_drawerToggle.OnOptionsItemSelected(item))\n        return true;\n    \u002F\u002F Other cases go here for other buttons in the ActionBar.\n    \u002F\u002F This sample app has no other buttons. This code is a placeholder to show what would be needed if there were other buttons.\n    switch (item.ItemId)\n    {\n        default: break;\n    }    return base.OnOptionsItemSelected(item);\n}",[107,335],{},"\nThe final piece of this is ensuring that the hamburger is shown when the menu is closed.  In order to do this we need to sync the state of the drawer via the following method.  This will execute after your activities initialization is finished.  You need to tell the toggle button to synchronize its icon with the open\u002Fclosed state of the drawer.",[107,338],{},"\nprotected override void OnPostCreate(Bundle savedInstanceState)\n{\n    \u002F\u002F Initialization and any needed Restore operation are now complete.\n    \u002F\u002F Sync the state of the ActionBarDrawerToggle to the drawer (i.e. show the \"hamburger\" if the drawer is closed or an arrow if it is open).\n     _drawerToggle.SyncState();\n    base.OnPostCreate(savedInstanceState);\n}",[107,341],{},"\nIf you would like the sample code, please connect with me via email or twitter and I will send to you.",{"title":60,"searchDepth":61,"depth":61,"links":344},[],"2016-01-30T08:45:55.4700000-05:00","To add a navigation drawer, declare your user interface with a DrawerLayout object as the root view of your layout. Inside the DrawerLayout, add one view that contains the main content for the screen (your primary layout when the drawer is hidden) and another view that contains the contents of the navigation drawer.\n\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\n\u003Candroid.support.v4.widget.DrawerLayout\nxmlns:android=\"http:\u002F\u002Fschemas.android.com\u002Fapk\u002Fres\u002Fandroid\"\nandroid:id=\"@+id\u002FdrawerLayout\"\n   android:layout_width =\"match_parent\"\n    android:layout_height=\"match_parent\">\n  \u003C!-- Content -->\n  \u003CFrameLayout\n        android:id =\"@+id\u002FframeLayout\"\n        android:layout_width =\"match_parent\"\n        android:layout_height=\"match_parent\" \u002F>\n  \u003C!-- Navigation drawer menu -->\n  \u003CListView\n        android:id=\"@+id\u002FdrawerListView\"\n        android:layout_gravity=\"start\"\n        android:choiceMode    =\"singleChoice\"\n        android:layout_width  =\"240dp\"\n        android:layout_height =\"match_parent\"\n        android:background =\"?android:attr\u002FwindowBackground\" \u002F>\n\u003C\u002Fandroid.support.v4.widget.DrawerLayout>\nThe above layout uses a DrawerLayout with two child views: a FrameLayout to contain the main content which will be populated with a Fragment at runtime, and a ListView for the contents of the drawer.\nNow to the MainActivity.cs coding.. let’s get a reference to the drawerLayout = FindViewById\u003CDrawerLayout>(Resource.Id.drawerLayout);  You will find that DrawerLayout is not defined.  You need to add a reference via Nuget to Android Support Library v4.  Open Nuget and search for Xamarin.android.support.v4\nAndroid Support Libraries : The Android Support Libraries are a set of code libraries that provide backward-compatible versions of Android framework APIs as well as features that are only available through the library APIs. Each Support Library is backward-compatible to a specific Android API level. This design means that your applications can use the libraries' features and still be compatible with devices running older versions of Android.  Including the Support Libraries in your Android project is considered a best practice for application developers.\nAdding a using statement for Android.Support.V4.Widget will complete the reference to DrawerLayout.\n_menuItems = new string { \"Welcome\", \"Options\", \"About\" };\n_drawerLayout = FindViewById\u003CDrawerLayout>(Resource.Id.drawerLayout);\n_drawerList = FindViewById\u003CListView>(Resource.Id.drawerListView);\n_drawerList.Adapter = new ArrayAdapter\u003Cstring>(this, Resource.Layout.ListViewMenuRow, Resource.Id.menuRowTextView, _menuItems);\nWe have a List which should be populated by an Adapter (ArrayAdapter or SimplerCursorAdaptor)\nAt this point we have (left) and if you swipe toward the right you see the menu. \nHooking up the menu click looks like..\n_drawerList.ItemClick += _drawerList_ItemClick;\nprivate void _drawerList_ItemClick(object sender, AdapterView.ItemClickEventArgs e)\n{\n    OnMenuItemClick(e.Position);\n}private void OnMenuItemClick(int position)\n{\n    this.Title = _menuItemsposition;\n}",{},"\u002Farticles\u002Fxamarin-android-drawerlayout",{"title":92,"description":346},"articles\u002Fxamarin-android-drawerlayout",[352],"xamarin","atMZSxAPcEHLtAMZGtRMESx9f019pOvMhwLgqyfRYSM",{"id":355,"title":356,"author":7,"body":357,"createdAt":407,"description":64,"extension":65,"img":401,"meta":408,"navigation":68,"path":409,"seo":410,"stem":411,"tags":412,"updatedAt":407,"__hash__":414},"articles\u002Farticles\u002Fpersonal-pc-backup-strategies-including-redundancy.md","Personal PC Backup–Strategies including redundancy",{"type":9,"value":358,"toc":405},[359,368,372,375,378,382,385,389,392,395],[12,360,361,362,364],{},"I use the following ‘backup’ tools and products for my personal use.  Yes, I do use 3 approaches as each has different benefits and advantages.",[107,363],{},[48,365,367],{"href":366,"target":136},"https:\u002F\u002Ftechnet.microsoft.com\u002Fen-us\u002Flibrary\u002Fcc733145.aspx?f=255&MSPPError=-2147217396","RoboCopy",[369,370,371],"blockquote",{},"  \nThis is a Microsoft product that is already on your system for copying files between 2 locations.  Why use RoboCopy?  If you're conscientious about the safety of your data, chances are good that you are already using Windows 7's Backup and Restore tool to create an image file of your hard disk as well as to back up your data files on a regular schedule. However, you may like to have an additional copy of your data files just to be on the safe side. While you can easily do so by copying your files and folders to an external hard drive via drag and drop, that can be a tedious operation.  \n",[369,373,374],{},"  \nI use this product to backup my local files to an external harddrive.  I have created a batch file which when clicked will execute robocopy commands copying files between my pc and an external hard drive.  The hard drive came from an older pc that i have put in a cheap ($15) enclosure.  I can connect this device to my pc via usb cable.  The batch file resides on the external harddrive called robo_home.bat with the following contents… Below i am showing just 1 line of the file.  It provides the source and destination locations for what is to be copied to the external hard drive.  In fact I have multiple locations that i copy to the hard drive.  The external hard drive is 250gb plenty large enough to backup personal pictures\u002Fvideos etc.  \nrobocopy D:\\_Personal_A_L F:\\Home_PC\\_Personal_A_L   \u002Fmir \u002Fz \u002Fxa:sh \u002Fxjd \u002FR:5 \u002FW:15 \u002FMT:32 \u002Fv \u002Fnp \u002Flog:home_backup1.log  \n",[369,376,377],{},"  \nWhat does this do?  It copies files from the source D:\\_Personal to the destination F:\\Home_PC\\_Personal_A_F with a series of command arguments.  RoboCopy has numerous arguments that can be used to instruct how things will be copied.  The following are what i use.  \n\u002Fmir = I want to back up every folder in the source, even any empty folders, as they may be placeholders for future data. I also don't want to have files on the backup that I deleted from my hard disk  \n\u002FXA: SH = switch to exclude the hidden, system files  \n\u002FXD AppData = to exclude the entire AppData folder  \n\u002FXJD = exclude all the junction points  \n",[48,379,381],{"href":380,"target":136},"https:\u002F\u002Fwww.dropbox.com\u002Fhome","DropBox",[369,383,384],{},"  \nDropbox is an online backup facility which stores your data on server using Cloud Storage so that you can share the files with other using file synchronization. The concept of Dropbox is that you can simply access your files anywhere and can be shared with others. The best part of Dropbox is its synchronization, Any files you save to Dropbox will also instantly reflect the same in your computers, Phones, iPad and Dropbox Websites.  \nI use a personal account, and the size limit is quite low 8 gb.  You can purchase a license to get more space and often they have promotions to get more space.  I use this product to make some files availalbe cross multiple devices and pcs.  Often I share Application settings files so that a product on one device will run with similar settings on another computer.  In addition, I use the folder share features to share files with friends and family.  \nI have installed this product on my phone which is really nice to access pictures taken on mobile devices.  After installing on a mobile device you will be walked through options to copy pictures automatically to your dropbox account.  So immediately after taking a picture the file(s) are available on my home pc.  Really nice.  For my family (wife and kids) i stress they use this product, for their school assignments\u002Fhome work etc.  If their laptops crash – they are safe.  Often they have used this product to access assignments from libraries or school systems, making their work available to them at all times. Very nice.  \n",[48,386,388],{"href":387,"target":136},"http:\u002F\u002Fwww.code42.com\u002Fcrashplan\u002F","CrashPlan",[369,390,391],{},"  \nCrashPlan is a utility that allows you to back up your computer to another computer or to an external drive, either manually or on a schedule. If you have multiple computers in your household, you can back them up to one another, or you can back up to a friend's computer and invite them to do the same.  You can configure this app to create automatic backups once a day. And if you're a paid user, you'll benefit from continuous backups, so if something does go wrong, you can quickly pick up right where you left off.  \nThis is my fail safe backup system that is scheduled to run every evening.  Crashplan backups up unlimited amount of data\u002Ffiles to the cloud nightly.  The cost was ~$100 for 5 years which I find very reasonable to know that my home pc is backed in case of fire\u002Ftheft etc.  This is quite affordable in my opinion for the comfort of knowing things are backed up.  You can use this product like DropBox however I find DropBox is cross platform and free\u002Flow cost.  \n",[48,393],{"href":394},"\u002Farticles\u002Fimages\u002Fopen-live-writer-backing-up-to_d663-backup_5.jpg",[12,396,397],{},[48,398,399],{"href":394},[52,400],{"style":146,"src":401,"border":56,"alt":402,"title":402,"width":403,"height":404},"\u002Farticles\u002Fimages\u002Fopen-live-writer-backing-up-to_d663-backup_thumb_1.jpg","backup",148,99,{"title":60,"searchDepth":61,"depth":61,"links":406},[],"2016-01-17T09:06:13.1300000-05:00",{},"\u002Farticles\u002Fpersonal-pc-backup-strategies-including-redundancy",{"title":356,"description":64},"articles\u002Fpersonal-pc-backup-strategies-including-redundancy",[413],"tools","bemS4swwtVbF4VqtdcWLrntTQBgmjprqf9NcPo4K-YU",1781574769685]