Paul Sheriff's Blog for the Real World

This blog is to share my tips and tricks garnered over 25+ years in the IT industry

  • Creating Checkboxes using Bootstrap and MVC

    The normal HTML check box just does not look good. Yes, bootstrap has a CSS class that will attempt to at least let it render consistently across browsers, but it still is just the default HTML look. In addition, trying to hit a check box on a mobile phone can sometimes be a little challenging.

    In an MVC project we are doing for a client, they wanted the check boxes to look more like buttons. Since we were already using bootstrap for this project we were able to create our own check boxes using the “btn-group” class from bootstrap. Let’s walk through how we created these.

    Normal Check Boxes

    As most of you know, creating normal check boxes in MVC is easy to do with the CheckBox HTML helper class. The code below is what you write for creating standard HTML check boxes in MVC:

    @using (Html.BeginForm())

    {

      <div>

        @Html.CheckBox("IsJazz") Jazz

        @Html.CheckBox("IsCountry") Country

        @Html.CheckBox("IsRock") Rock

      </div>

    }

    Bootstrap Check Boxes

    With bootstrap you add a <div> with a class of either “checkbox” or “checkbox-inline” around your check boxes. You also add a <label> element around the check boxes in order to use bootstrap’s styling of labels. Normally this gives you a bolder font for the actual text of the check box.

    @using (Html.BeginForm())

    {

      <div class="form-group">

        <div class="checkbox-inline">

          <label>

            @Html.CheckBox("IsJazz") Jazz

          </label>

        </div>

        <div class="checkbox-inline">

          <label>

            @Html.CheckBox("IsCountry") Country

          </label>

        </div>

        <div class="checkbox-inline">

          <label>

            @Html.CheckBox("IsRock") Rock

          </label>

        </div>

      </div>

    }

    Both of the above pieces of code will produce some output that looks like the check boxes shown in Figure 1.

    Figure 1: Normal HTML Check boxes

    Use Button Groups

    One of the classes that bootstrap supplies is “btn-group”. This class combined with the data-toggle=”buttons” gives you the ability to create check boxes that look like standard buttons but will toggle when pressed. What is nice about check boxes expressed this way is you can really tell that the label is a part of the check box. When you click on one of the buttons you will see it change color. In addition, these buttons are much easier to press on a mobile device.

    @using (Html.BeginForm())

    {

      <div class="form-group">

        <div class="btn-group" data-toggle="buttons">

          <label class="btn btn-primary">

            @Html.CheckBox("IsJazz") Jazz

          </label>

          <label class="btn btn-primary active">

            @Html.CheckBox("IsCountry") Country

          </label>

          <label class="btn btn-primary">

            @Html.CheckBox("IsRock") Rock

          </label>

        </div>

      </div>

    }

    Note the use of the “active” class on the Country check box. This is what makes this one selected when you display the screen (see Figure 2).

    Figure 2: Check boxes displayed as button groups.

    Add Glyphs

    Users are used to seeing a check mark or an empty box next to the label for check box controls. So, you should add those into your design. Use the built-in glyphs in bootstrap to display a check or an empty box. Below is the code to do this:

    @using (Html.BeginForm())

    {

      <div class="form-group">

        <div class="btn-group" data-toggle="buttons">

          <label class="btn btn-primary">

            <span class="glyphicon glyphicon-unchecked"></span>

            @Html.CheckBox("IsJazz", true) Jazz

          </label>

          <label class="btn btn-primary active">

            <span class="glyphicon glyphicon-ok-circle"></span>

            @Html.CheckBox("IsCountry") Country

          </label>

          <label class="btn btn-primary">

            <span class="glyphicon glyphicon-unchecked"></span>

            @Html.CheckBox("IsRock", true) Rock

          </label>

        </div>

      </div>

    }

    Take a look at the Country check box. There are two modifications to this check box. First, you add the “active” class on the <label> element. This makes it a different color from the other two check boxes. You also change the glyph in the <span> element from “glyphicon-unchecked” to “glyphicon-ok-circle” to give it a check mark within a circle.

    Feel free to use whatever icons you want. Font Awesome (www.fontawesome.io) has a lot of different CSS glyphs that you can use instead of the limited ones in bootstrap.

    Figure 3: Add glyphs to make the buttons look more like check boxes.

    Change Glyphs Dynamically using jQuery

    When the user clicks on a check box you want to toggle the glyph. Luckily when you click on the check box, bootstrap takes care of toggling the “active” class on the <label> elements for you. All you need to do is to write some jQuery to toggle the glyphs. Below is the jQuery code you add at the bottom of the .cshtml MVC page to toggle the glyphs.

     

    @section scripts

    {

      <script>

        $(document).ready(function () {

          // Connect to 'change' event in order to toggle glyphs

          $("[type='checkbox']").change(function () {

            if ($(this).prop('checked')) {

              $(this).prev().addClass('glyphicon-ok-circle');

              $(this).prev().removeClass('glyphicon-unchecked');

            }

            else {

              $(this).prev().removeClass('glyphicon-ok-circle');

              $(this).prev().addClass('glyphicon-unchecked');

            }

          });

        });

      </script>

    }

    This jQuery is fairly simple to understand. When the user changes the check box you determine if the check box is checked or unchecked. Based on this setting you either add or remove the appropriate classes from the <span> element that is just prior to the check box control.

    Summary

    In this blog post you learned how to present check boxes just a little differently. While it is not necessary to do this, I like the way these check boxes look and feel. With just a little use of built-in bootstrap CSS and jQuery you can get something that looks a little different from the traditional web look.

    Read more...

  • Using Friendly URLs in Web Forms

    Friendly URls help you eliminate query string parameters and file extensions from the URL line. So, instead of…

    www.url.com/Products.aspx

    www.url.com/Products.aspx?ProductId=3

    You use simple friendly URLs instead as shown below:

    www.url.com/Products

    www.url.com/Products/3

    There are many benefits of using friendly URLs in your web applications.

    ·         Cleaner query string

    ·         User does not know the actual page name

    ·         Easier for users to use

    Friendly URLs are available in Web Forms and MVC. I see a lot of examples of using friendly URLs using MVC, but very few using Web Forms. So, I thought I would discuss how to use them in Web Forms. Actually, the process is almost identical.

    First you need to download the Microsoft.Asp.Net.FriendlyUrls.Core.dll if you don’t already have it in your project. If you have an older ASP.NET application you probably don’t have it. If you are starting a new project in Visual Studio 2013, and choose the Web Forms template, this DLL is already present.

    If you want to use friendly URLs in an older project, select Tools | Nuget Package Manager | Manage NuGet Packages for Solution... from the Visual Studio menu. Search online for Microsoft.AspNet.FriendlyUrls and install the Microsoft.AspNet.FriendlyUrls.Core. You don’t need any of the other DLLs in the NuGet packages list, just the “Core” DLL.

    If you have an App_Start folder, check and see if you have a class called RouteConfig.cs in there. If so, then you already have what you need. If you don’t, then add a class called RouteConfig to your project.

    Add the following using statements at the top of this new class file.

    using System.Web.Routing;

    using Microsoft.AspNet.FriendlyUrls;

    Either add the following method, or modify it to look like the following. This assumes you have 3 pages in your project; Default.aspx, Customers.aspx, and Products.aspx. Feel free to substitute your page names as appropriate.

    public static void RegisterRoutes(RouteCollection routes)

    {

      routes.EnableFriendlyUrls();

     

      routes.MapPageRoute("", "Default", "~/Default.aspx");

     

      routes.MapPageRoute("", "Customers", "~/Customers.aspx");

      routes.MapPageRoute("GetCustomer",

                          "GetCustomer/{CustomerId}",

                          "~/Customers.aspx");

     

      routes.MapPageRoute("", "Products", "~/Products.aspx");

      routes.MapPageRoute("GetProduct", "GetProduct/{ProductId}",

                           "~/Products.aspx");

    }

    In the above page routes you have some parameter placeholders denoted by the curly braces {}. These are what you use to pass any parameters to and the names you use to retrieve those values.

    The next step is to open your Global.asax and either add, or check to see, if you have the following using statement at the top of the file.

    using System.Web.Routing;

    In the Application_Start() event you now need to call the RegisterRoutes method you created in the last step. The RouteTable.Routes object, created by the ASP.NET engine, is what you add to in your RegisterRoutes method.

    RouteConfig.RegisterRoutes(RouteTable.Routes);

    You can now run your ASP.NET application type in any of the following:

    http://localhost:xxxx/Products

    http://localhost:xxxx/GetProduct/22

    http://localhost:xxxx/Customers

    http://localhost:xxxx/GetCustomer/ABC

    From any <a> tag on your web pages you can now use the following syntax:

    <a href="Products">Get All Products</a>

    <a href="GetProduct/22">Get Product #22</a>

    Notice that you don’t need the “.aspx” extension. If you are using the Response object to redirect from code behind, may also use the same shorthand for any route that does not have a parameter.

    Response.Redirect("Products");

    Response.Redirect("Customers");

    Passing Parameters using the Response Object

    If you are going to pass either a customer id or a product id to your pages, and you want to use the Response object, you need to setup things a little differently. Remember you created the following map page route in the RouteConfig class.

    routes.MapPageRoute("GetProduct", "GetProduct/{ProductId}",

                        "~/Samples/ProductView.aspx");

    To redirect to this page, you use the RedirectToRoute method of the Response object.

    Response.RedirectToRoute("GetProduct",

     new {ProductId = 33});

    The first parameter you pass to the RedirectToRoute method must match the first parameter in the MapPageRoute. The second parameter is an object with the name in the braces {ProductId} set to the value you wish to pass (in the above case 33).

    Retrieve the Passed Parameters

    To retrieve the value passed you use the Page.RouteData.Values property. Pass in the name of the parameter you are looking for, in this case “ProductId” and it will return either a null if not found, or the value. You typically retrieve these values from the Page_Load event procedure.

    if (Page.RouteData.Values["ProductId"] != null)

    {

      int ProductId =

         Convert.ToInt32(Page.RouteData.Values["ProductId"]);

    }

    Summary

    Using friendly URLs is quite easy to accomplish in either Web Forms or MVC. You can download the friendly URLs “Core” DLL from NuGet to add to any project. Then with just a few lines of code you can start calling your pages in a very user-friendly manner.

    Read more...

  • Web Forms is not Dead!

    It seems like everywhere you read, everyone is talking about using ASP.NET MVC to create mobile web applications. But what about programmers still working in ASP.NET Web Forms? We want our projects done using the latest techniques, we want to build mobile web apps, and we want to use jQuery and bootstrap too. Not to fear, Web Forms is not dead, and nearly everything you can do in MVC, you can also do in Web Forms. I am creating a whole series of videos on how to use all the latest techniques in Web Forms to build modern web applications. This series of videos will be available in the summer of 2014 on www.pluralsight.com.

    MVC vs Web Forms

    Many programmers feel they have to choose one technology over another. But, there is really no reason you can’t program in both MVC and Web Forms and use each for what they are good at.. Many MVC programmers give many reasons why you should use MVC as opposed to Web Forms. The reasons I hear more often are:

    1.    Fine control over the HTML generated

    2.    Ability to unit test

    3.    Can control the “id” attribute generated

    4.    Easier to use jQuery and JavaScript because no generated “id” attribute

    5.    Ability to use Friendly URLs

    6.    No ViewState sent to client

    Of course, programmers that like Web Forms have many reasons why they want to stick with it:

    1.    Rapid Application Development

    2.    Less code to write because of rich server controls

    3.    Lots of server controls to choose from

    4.    Great third-party support

    5.    Easy to preserve state

    6.    They like the event driven model

    7.    Hides the complexity of the web

    8.    More mature so there is more information with respect to questions, problems, etc.

    In this article let’s explore how Web Forms will let you get very close the MVC model. There are many things you can take advantage to get Web Forms to work almost exactly the same as MVC, and you do it using the tools you already know and love.

    HTML 5 and CSS 3

    In any Web Form page you can use HTML 5 elements and attributes. Even if you are using a server control you can still add any attribute to the control and it will emit the attribute for you. CSS 3 is just a new version of CSS and we have always been able to use CSS with Web Forms, so there is no difference here. The TextBox control now supports the HTML 5 input types such as date, tel and email through the TextMode property.

    ViewState

    Most Web Form pages do not need ViewState to work property. There are just a few cases when you will need to turn on ViewState. I recommend disabling ViewState in the Web.Config and then just turn it on when you get to a page that just does seem to work right. By turning this off you will see an increase in performance because not as much HTML is sent down to the client.

    Store ViewState on the Server

    If you still need to use ViewState, but you do  not want the extra hidden field to be sent to the client, you can easily store ViewState on the server. This functionality has been available since .NET 1.0. You simply override two events in the base page class; LoadPageStateFromPersistenceMedium and SavePageStateToPersistenceMedium. These two events will allow you to store and restore the view state on the server and not send the hidden field to the client.

    Friendly URLs

    Using “RESTful” or so-called SEO-friendly URLs is all the rage today. What is nice about these URLs is it makes for a cleaner query string, the user does not know the actual page name and is typically easier for users to access and remember.

    Instead of these…

    www.url.com/Products.aspx

    www.url.com/Products.aspx?ProductId=3

    Use Friendly URLs instead…

    www.url.com/Products

    www.url.com/Products/3

    To add friendly URLs to your project simply go to Tools | Nuget Package Manager | Manage NuGet Packages for Solution... Search online for “Microsoft.AspNet.FriendlyUrls” and install the “Microsoft.AspNet.FriendlyUrls.Core”.

    Add a class called RouteConfig and add the following using statements at the top of the file:

    using System.Web.Routing;

    using Microsoft.AspNet.FriendlyUrls;

    Now add a method named RegisterRoutes.

    public static void RegisterRoutes(RouteCollection routes)

    {

       routes.EnableFriendlyUrls();

     

       routes.MapPageRoute("", "Default", "~/Default.aspx");

    }

    You can add as many MapPageRoutes as you want in this method. You just have to keep the first and second parameters unique.

    Now in your Global.asax you will add a using statement at the top of this file:

    using System.Web.Routing;

    In the Application_Start() event you will call the static method you created in the RouteConfig class.

    RouteConfig.RegisterRoutes(RouteTable.Routes);

    MVVM

    I have written a blog post and an article on using the Model-View-View-Model approach to software development. If you use MVC or Web Forms you should be using a View Model. The View Model is where all of your data access happens and all the code to control the UI should also be located. The controller in MVC calls the View Model and the code-behind in Web Forms calls the View Model. This means that all unit testing happens on the View Model and you do not need to test against a controller or the code-behind file. You can read more about this model at the following two links.

    http://weblogs.asp.net/psheriff/the-basics-of-mvvm

    http://www.codemag.com/article/1208031

    Unit Testing

    As just mentioned above, if you use the MVVM design pattern you get the benefits of being able to do unit testing and take advantage of TDD if you so desire. 

    jQuery and JavaScript

    Using jQuery and JavaScript is an absolute must when building today’s modern web applications. Web Forms used to be criticized because when it generated the HTML controls, it “munged” the id attribute. This means that the id that you used in your ASPX page was something different when it ended up on the client. This makes it hard to know what the name is when you want to reference that control in jQuery or JavaScript.

    Microsoft gave us the ClientID property and the UniqueID properties to access the id and name attributes respectively. However starting with .NET 4.0 they added a ClientIDMode to the page level and to the Web.Config file. This allows you to set the ClientIDMode=”Static” and the id you set in your ASPX page is what will be generated on the client. This makes integrating with jQuery and JavaScript just as easy as it is with MVC.

    Bootstrap

    Twitter Bootstrap is a very powerful and popular CSS and JavaScript library that allows you to create responsive web sites. We have been using bootstrap for a few years now and it works just fine in Web Forms. We have successfully implemented templates we purchased from wrapbootstrap.com and themeforest.net. We typically take these templates and integrate the navigation and other elements into our Web Forms master pages. We then build very nice looking responsive web applications using Web Forms.

    GridView

    Web pages love tables! However tables are not always a good thing on smaller devices like a smart phone. Using bootstrap styles in combination we can make the GridView work much better. A better approach is to use the GridView so you get the built-in paging and all the great features of the GridView but make it not look so tabular. I wrote a blog about how to create an alternate view of tabular data. Check out this approach on how to present data that will work better on a mobile device:

    http://weblogs.asp.net/psheriff/an-alternate-approach-to-a-gridview

    Additional Guidance

    One thing I like to do is consider what other folks are saying about Web Forms vs MVC. If you look at the following names, you can see what some of the heavyweights in the industry have to say.

    Scott Guthrie

    “Web Forms and MVC are two approaches for building ASP.NET apps. They are both good choices.”

    http://weblogs.asp.net/scottgu/archive/2010/01/24/about-technical-debates-both-in-general-and-regarding-asp-net-web-forms-and-asp-net-mvc-in-particular.aspx

    Dino Esposito

    “ASP.NET MVC doesn't magically transform every developer into an expert architect and doesn't prevent developers from writing bloated and poorly designed code. At the end of the day, both Web Forms and ASP.NET MVC help to build applications that are designed and implemented to deal effectively with the complexity of real-world solutions”

    http://msdn.microsoft.com/en-us/magazine/dd942833.aspx

    Jeffrey Palermo

    “It is rarely a good idea to trash your current application and start over”

    http://clear-measure.com/i-have-a-web-forms-custom-application-should-i-upgrade-to-asp-net-mvc-now-or-wait/

    K. Scott Allen

    “…figure out for yourself what framework will be the best for you, your team, and your business.”

    http://www.odetocode.com/blogs/scott/archive/2013/02/12/you-want-to-build-web-software-with-c.aspx

    Microsoft

    A good overview of which to use when.

    http://www.asp.net/mvc/tutorials/older-versions/overview/asp-net-mvc-overview

    Public Sites Favors MVC

    What we have gathered from our own experience and from reading what others are using MVC for are the following types of sites.

    ·         Blogs

    ·         Web content

    ·         Marketing

    ·         Membership

    ·         Shopping

    ·         Mobile

    Business Apps Favor Web Forms

    We have found that for building business applications that are doing a lot of CRUD operations that Web Forms lends itself really well to these types of applications.

    ·         Line-of-business

    ·         SaaS

    ·         Extranet

     

     

    Summary

    In the end it is up to you which approach you are going to use when developing your web applications. But you should not let folks that are clearly biased toward MVC sway your choice. Web Forms is still a great choice for developing web applications. Just because Microsoft releases a new technology does not mean that you should immediately trash everything you know and jump on it.

    As you have seen in this article, Web Forms and MVC are based on the same underlying technology and both can generate fast, small, responsive web applications. At the same time both can be unit tested, take advantage of MVVM, HTML 5, CSS 3 and jQuery libraries. So don’t throw away all your hard-earned skills, just take advantage of the tricks in this article and develop modern web applications with Web Forms.

    Read more...

  • Join me on Thursday, April 10th in Nashville

    Hi All,

    If you are in the Nashville, TN area, I hope you will join me at the Nashville .NET User Group http://nashdotnet.org/ for a seminar entitled "Best Practices for Flexible Code".

    Seminar Description

    Creating applications that are flexible and maintainable means thinking about application development a little differently. You need to adopt good object-oriented techniques in order to create software that can truly adapt to a changing development environment. In this seminar you will see many examples of tips and tricks that will help you keep your software running for many years to come. You will see real-world examples of extension methods, faster reflection, string handling, generics, using XML, wrapper classes, dependency injection, configuration and exception management. You will walk away with a code that you can use in your applications right away.

    So, come on out at (http://nashdotnet.org/) at 6pm on Thursday, April 10th, 2014.

    Hope to see you there!

    Paul Sheriff

     

     

    Read more...

  • WPF for the Visual Basic Programmer - Part 2 (Pluralsight)

    Hi All,

    I have just published a new course on www.pluralsight.com. Check it out! 

    Visual Basic Programmers are still in demand. Upgrade your skills by learning XAML and WPF. This course is specifically designed for the Visual Basic programmer and will get you up to speed quickly with WPF. In Part 2 you will learn the correct way to design WPF windows, how to use styles and all the most commonly used controls for business applications. You will gain a good knowledge of data binding and how to use the various list controls in WPF.

    http://pluralsight.com/training/Courses/TableOfContents/wpf-vb-programmer-pt2

    Enjoy!

    Paul

     

    Read more...

  • Put Development Standards In Place At Your Shop

    Before beginning any application development consider implementing programming and database standards with your team. Using development standards allows all programmers to know what is expected of them and how to create new applications from scratch. Standards help developers move from one project to another without having to learn a different style of programming because it was created by another programmer.

    There are many reasons programming standards are created. Many years ago when mainframes were in vogue, every shop had programming standards. In fact, they used to teach programming standards in college. Now, standards are all but forgotten or just never learned by the younger generation. Microsoft does have a set of programming standards for C# and Visual Basic. These are an excellent place to start, and I would like to encourage all programmers today to adopt some sort of standards as an important first step in application development.

    Creating standards does not limit your creativity as most programmers seem to think. Programming standards help you focus your creativity where it is really needed. You concentrate on the business problem you are trying to solve, instead of having to always think about what name to give a method or variable. As a corollary, consider the Windows and Mac operating environments where most programs written have a consistent look and feel. This is why users like using Windows or Macs, because they do not have to learn everything about how a new program works. They already know how to use most of the features in each program. Utilizing standards in your programming, you keep the programmer’s “look and feel” consistent. You will spend less time figuring out what the variables are or how many indents a programmer used, and you can focus more on the logic of the program.

    The use of standards lead to reduced maintenance costs as well, due to consistency in each program. You can move from one project to another very easily, even one someone else wrote, and immediately read and understand the code. Programming standards help programmers create a consistent structure, code style, variable names, and methods names within all applications. Standards also help programmers create code that is unambiguous, easy to read, and easy to maintain by other developers.

    The standards documents you should have in place at your shop are Visual Studio Setup, C# or Visual Basic Programming Standards, SQL Server Object Naming Standards and Database Development Standards. The rules set forth in these documents are guidelines, so feel free to modify these to suit your own organizations’ needs.

    • The Visual Studio Setup document is used to ensure each programmer configures their Visual Studio the same as everyone else in the shop. Especially important is the Tab setting so everyone uses the same tab indent. If different programmers use different tabs and they get changed, this can wreak havoc on your source control.
    • The C# or Visual Basic Programming Standards document will set forth variable and method naming, class naming, file naming, control naming and many other standards.
    • The SQL Server Object Naming Standards document describes how to name tables, stored procedures, views, and other database objects. You should also describe how SQL keywords and functions in your SQL statements are cased.
    • The Database Development Standards document describes your database design philosophy. Your philosophy may include things such as how you create primary keys, the use of clustered indexes, standard fields for each table, how to handle concurrency, and whether or not to use dynamic SQL or stored procedures.

    You can find examples of all of these standards documents at my website: http://www.pdsa.com/download/StandardsDocuments.zip

    We have definitely found that having programming standards in place at our shop has been a positive thing. I hope they work equally as well for you.

    Read more...

  • WPF for the Visual Basic Programmer (Pluralsight)

    Hello All,

    I have just published a new course on www.pluralsight.com! Check it out!

    WPF For the Visual Basic Programmer

    Visual Basic Programmers are still in demand. Upgrade your skills by learning XAML and WPF. This course is specifically designed for the Visual Basic programmer and will get you up to speed quickly with WPF. In Part 1 you will learn the correct way to design WPF windows, how to use styles and all the most commonly used controls for business applications. You will gain a good knowledge of data binding and how to use the various list controls in WPF.

    http://pluralsight.com/training/Courses/TableOfContents/wpf-vb-programmer-pt1

     

    Read more...

  • Pluralsight Class on Best Practices for Requirements Gathering

    Hello All,

    My Vice President, Michael Krasowski, has published his first course on Pluralsight!

    Best Practices for Requirements Gathering

    This course begins with the fundamentals of the requirements process, including project definition template, the uncertainty of requirements, nailing down stakeholders, and the skills needed to be a requirements analyst. Next we explore how requirements gathering in an Agile environment works. And lastly, we review practical tools to guide the student from user cases/stories, work flows, mockups, business rules, and data model to produce a solid specification that meets a customer's expectations.

    Check it out at: http://pluralsight.com/training/Courses/TableOfContents/best-practices-requirements-gathering

    Paul

    Read more...

  • Two more courses on Pluralsight

    Hello All,

    I am pleased to announce that I have released two more courses on Pluralsight.com.

    How to Start and Run a Consulting Business

    Have you ever wanted to break out of the corporate life and be your own boss? Many people have this dream. In this course you will learn what it takes to start and be successful in your own consulting business. Throughout this video you will learn how to determine what your company should look like, how to manage your money wisely, how to get and keep clients, how best to survive the ups and downs of the economy and how to create an exit strategy. Your instructor has been running his own successful business for over 22 years and shares his valuable insight so you too can be a success!

    Module 1: Hanging Your Shingle
    Module 2: Money Matters
    Module 3: How to Get and Keep Clients (or Marketing 101)
    Module 4: How To Survive the Ups and Downs
    Module 5: Creating an Exit Strategy

    http://pluralsight.com/training/Courses/TableOfContents/start-run-consulting-business


    WPF for the Business Programmer
    There are so many cool things you can do with WPF that would be impossible or very difficult with Windows Forms. In this video you will see some creative ways to use the WPF List Box. Some screens that you can use right away in your business applications will be presented. You will learn some unique ways to put together user controls to create unique shapes. Finally you will create a shell application to make your WPF application look like Windows 8. This course goes way beyond the basics of WPF to give you some unique insights on how to create business applications.

    Module 1: The Flexible WPF List Box
    Module 2: More Fun with the WPF List Box
    Module 3: Develop Business Application Screens in WPF
    Module 4: Create WPF Shapes with Text
    Module 5: Creating a Windows 8 Shell in WPF

    http://pluralsight.com/training/Courses/TableOfContents/wpf-business-programmer


    And of course, my first course is:

    The Many Approaches to XML Processing in .NET Applications

    Did you know that you can use XML instead of a SQL database for applications? Did you know there is LINQ to XML that allows you to process XML documents quickly and efficiently? If the answer is no to either of these two questions, then you need to watch this course. XML files are very common in today's programming world. You will most likely need to read files, write files and query XML within your applications. .NET provides a rich set of XML processing classes that you can use to perform all these functions. C# allows you to easily create, read and query XML files using XPath, LINQ to XML and other methods. In this course you will learn to read and write XML files using the various .NET classes. You will see some real-world uses of XML files in applications.

    Module 1: What is this XML Thing Anyway?
    Module 2: A Myriad of Methods to Read XML
    Module 3: 16 Ways to Write XML Documents
    Module 4: Real World Uses of XML
    Module 5: LINQ to XML Step-by-Step
    Module 6: Use XML: An Alternative to SQL


    http://pluralsight.com/training/Courses/TableOfContents/xml-processing-approaches-dotnet-applications

    Go to www.pluralsight.com and sign up today and start learning! 

    Read more...