Overall I was impressed with the advice given in the book. In order to make better practical use of it, I wanted to create a basic "outline" view that I could easily find and scan, making reference back to the book if needed. That is really all this post is. I thought about adding "notes"... either to each item or to each section, but they just cluttered it up. I want this to be more a quick cheat sheet of the guidelines, not a full blown Readers Digest edition of the book...
Tuesday, January 16, 2018
"Effective Java" book outline
Effective Java was written by Joshua Bloch in 2001, and the second edition released in 2009 shortly after the release of Java 6. I received a copy of the second edition from my manager as recommended reading. While it was sometimes a little dated, it still made for easy reading, and it felt like most of the recommendations would still be pretty relevant. As it happens, there is now a third edition that covers Java 7, 8, and 9 which may be worth checking out...
Friday, December 29, 2017
Resources for diving into Git internals
One of the things my boss asked me to do before I leave Farm Bureau for the bustling Bay Area was to put together some resources related to using Visual Studio Team Services. One of my co-workers on the database team also asked me to put together some resources for learning git. So, to that end, I pieced together a few things that would make my absence less disruptive.
As part of the process, I ended up uncovering a few presentation that delved pretty deep under the covers. Now, these are lessons that are best consumed by one who is already pretty familiar with git basics, but I think the reward is a deeper, richer understanding of git behavior that can make us more effective with the tool. I'm not going to rehash everything that is in the videos (just watch the videos, they're excellent), I'll just provide a link and a brief synopsis.
As part of the process, I ended up uncovering a few presentation that delved pretty deep under the covers. Now, these are lessons that are best consumed by one who is already pretty familiar with git basics, but I think the reward is a deeper, richer understanding of git behavior that can make us more effective with the tool. I'm not going to rehash everything that is in the videos (just watch the videos, they're excellent), I'll just provide a link and a brief synopsis.
Tuesday, November 7, 2017
Microsoft 70-487: Design a Web API
Exam Objectives
Define HTTP resources with HTTP actions; plan appropriate URI space, and map URI space using routing; choose appropriate HTTP method (get, put, post, delete) to meet requirements; choose appropriate format (Web API formats) for responses to meet requirements; plan when to make HTTP actions asynchronous; design and implement routesQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 4.1
[Blog] Using HTTP Methods (GET, POST, PUT, etc.) in Web API
[Apigee] Web API Design: Crafting Interfaces that Developers Love
[HackerNoon] RESTful API Designing guidelines — The best practices
[MSDN] Web API Routing
[Blog] Using HTTP Methods (GET, POST, PUT, etc.) in Web API
[Apigee] Web API Design: Crafting Interfaces that Developers Love
[HackerNoon] RESTful API Designing guidelines — The best practices
[MSDN] Web API Routing
[MSDN] Media Formatters in ASP.NET Web API 2
[MSDN] REST URI Support in Web API - Converting UriTemplates to Routes
[PluralSight] Implementing an API in ASP.NET Web API
[Blog] ASP.NET MVC and Web API - Comparison of Async / Sync Actions
[MSDN] REST URI Support in Web API - Converting UriTemplates to Routes
[PluralSight] Implementing an API in ASP.NET Web API
[Blog] ASP.NET MVC and Web API - Comparison of Async / Sync Actions
Tuesday, October 31, 2017
Microsoft 70-487: Choose a deployment strategy for an Azure web application
Exam Objectives
Perform an in-place upgrade and VIP swap; configure an upgrade domain; create and configure input and internal endpoints; specify operating system configuration; deploy applications using Azure Web SiteQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 5.2
[MSDN] How to update a cloud service
[MSDN] How to manage cloud services
[Blog] What is Windows Azure Fault Domain and Upgrade Domain?
[MSDN] Set up staging environments in Azure App Service
[PluralSight] Windows Azure Web Sites
[GitHub] Publish to Azure using Web Deploy
[MSDN] How to update a cloud service
[MSDN] How to manage cloud services
[Blog] What is Windows Azure Fault Domain and Upgrade Domain?
[MSDN] Set up staging environments in Azure App Service
[PluralSight] Windows Azure Web Sites
[GitHub] Publish to Azure using Web Deploy
[GitHub] Setting up a VSTS account so it can deploy to a Web App
[MSDN] Azure Exam Prep – Fault Domains and Update Domains
[MSDN] Enable communication for role instances in azure
[MSDN] Azure Guest OS releases and SDK compatibility matrix
[MSDN] Deploy your app to Azure App Service using FTP/S
[MSDN] Azure Exam Prep – Fault Domains and Update Domains
[MSDN] Enable communication for role instances in azure
[MSDN] Azure Guest OS releases and SDK compatibility matrix
[MSDN] Deploy your app to Azure App Service using FTP/S
Monday, October 23, 2017
Microsoft 70-487: Create, configure, and publish a web package
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-487 - Chapter 5.5
[MSDN] Web Packaging: Creating web packages using MSBuild
[MSDN] Building and Packaging Web Application Projects (pre-VS2013)
[MSDN] Web Deployment Overview for Visual Studio and ASP.NET
[MSDN] How to: Edit Deployment Settings in Publish Profile
[Blog] How to build and deploy a web deployment package using MSBuild
[MSDN] Web Deployment Operation
[MSDN] Web Deployment runCommand Provider
[MSDN] Excluding Files and Folders from Deployment
[MSDN] Web Packaging: Creating web packages using MSBuild
[MSDN] Building and Packaging Web Application Projects (pre-VS2013)
[MSDN] Web Deployment Overview for Visual Studio and ASP.NET
[MSDN] How to: Edit Deployment Settings in Publish Profile
[Blog] How to build and deploy a web deployment package using MSBuild
[MSDN] Web Deployment Operation
[MSDN] Web Deployment runCommand Provider
[MSDN] Excluding Files and Folders from Deployment
Friday, October 20, 2017
Microsoft 70-487: Configure a web application for deployment
Exam Objectives
Switch from production/release mode to debug mode; use SetParameters to set up an IIS app pool; set permissions and passwords; enable and monitor ASP.NET App Suspend; configure WCF endpoints (including HTTPS protocol mapping), bindings, and behaviors; transform web.config by using XSLT (for example, across development, test, and production/release environments); configure Azure configuration settingsQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 5.3
[MSDN] How to: Set Debug and Release Configurations
[MSDN] Understanding Build Configurations
[MSDN] Configuring Parameters for Web Package Deployment
[MSDN] Web Deploy Parameterization
[TechNet] Using declareParam and setParam
[Blog] MSDeploy with Declare and Set parameter files
[MSDN] Configuring Permissions for Team Build Deployment
[MSDN] Basic Security Practices for Web Applications
[MSDN] Best practices for deploying passwords
[Blog] Davidson Sousa - Setting folder permissions using Web Deploy
[Blog] Sayed Hashimi - Setting Folder Permissions on Web Publish
[Blog] Kevin Leetham - Modifying directory permissions with Web Deployment
[MSDN] Enable and monitor ASP.NET App Suspend on Windows Server 2012 R2
[MSDN] ASP.NET App Suspend – responsive shared .NET web hosting
[MSDN] How to: Transform Web.config When Deploying a Web Application Project
[MSDN] Web.config Transformation Syntax for Web Project Deployment
[GitHub] Xdt transform samples
[MSDN] Configure web apps in Azure App Service
[MSDN] Configure Azure cloud service roles with Visual Studio
[MSDN] How to: Set Debug and Release Configurations
[MSDN] Understanding Build Configurations
[MSDN] Configuring Parameters for Web Package Deployment
[MSDN] Web Deploy Parameterization
[TechNet] Using declareParam and setParam
[Blog] MSDeploy with Declare and Set parameter files
[MSDN] Configuring Permissions for Team Build Deployment
[MSDN] Basic Security Practices for Web Applications
[MSDN] Best practices for deploying passwords
[Blog] Davidson Sousa - Setting folder permissions using Web Deploy
[Blog] Sayed Hashimi - Setting Folder Permissions on Web Publish
[Blog] Kevin Leetham - Modifying directory permissions with Web Deployment
[MSDN] Enable and monitor ASP.NET App Suspend on Windows Server 2012 R2
[MSDN] ASP.NET App Suspend – responsive shared .NET web hosting
[MSDN] How to: Transform Web.config When Deploying a Web Application Project
[MSDN] Web.config Transformation Syntax for Web Project Deployment
[GitHub] Xdt transform samples
[MSDN] Configure web apps in Azure App Service
[MSDN] Configure Azure cloud service roles with Visual Studio
Tuesday, October 10, 2017
Microsoft 70-487: Design a deployment strategy
Exam Objectives
Create an IIS install package; deploy to web farms; deploy a web application by using XCopy; automate a deployment from TFS or Build ServerQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 5.1
[MSDN] How to: Create a Web Deployment Package in Visual Studio
[MSDN] Using Web Deploy for Web Farms (2009)
[MSDN] Deploy an Application to a Web Farm
[MSDN] How to: Create a Web Deployment Package in Visual Studio
[MSDN] Using Web Deploy for Web Farms (2009)
[MSDN] Deploy an Application to a Web Farm
[MSDN] Introducing the Microsoft Web Farm Framework
[MSDN] Xcopy
[MSDN] Walkthrough: Deploying an ASP.NET Web Application Using XCOPY
[MSDN] How to: Create an Automated Build and Deployment Solution with TFS
[MSDN] Build and Deployment Automation Case Study
[Blog] Using Windows Azure VMs to Publish and Synchronize a Web Farm
[MSDN] Xcopy
[MSDN] Walkthrough: Deploying an ASP.NET Web Application Using XCOPY
[MSDN] How to: Create an Automated Build and Deployment Solution with TFS
[MSDN] Build and Deployment Automation Case Study
[Blog] Using Windows Azure VMs to Publish and Synchronize a Web Farm
Tuesday, October 3, 2017
Microsoft 70-487: Share assemblies between multiple applications and servers
Exam Objectives
Prepare the environment for use of assemblies across multiple servers (interning); sign assemblies by using a strong name; deploy assemblies to the global assembly cache; implement assembly versioning; create an assembly manifest; configure assembly binding redirects (for example, from MVC4 to MVC5)Quick Overview of Training Materials
Exam Ref 70-487 - Chapter 5.6
[MSDN] Programming with Assemblies:
- How to: Sign an Assembly with a Strong Name
- How to: Install an Assembly into the Global Assembly Cache
[MSDN] Assemblies in the CLR:
- Global Assembly Cache
- Assembly Versioning
- Assembly Manifest
- Strong-Named Assemblies
[MSDN] Configuring Assembly Binding Redirection
[MSDN] Redirecting Assembly Versions
[MSDN] Look at Sharing Common Assemblies in ASP.NET 4.5
[MSDN] How the Runtime Locates Assemblies
[StackOverflow] What is the GAC in .NET?
[MSDN] Programming with Assemblies:
- How to: Sign an Assembly with a Strong Name
- How to: Install an Assembly into the Global Assembly Cache
[MSDN] Assemblies in the CLR:
- Global Assembly Cache
- Assembly Versioning
- Assembly Manifest
- Strong-Named Assemblies
[MSDN] Configuring Assembly Binding Redirection
[MSDN] Redirecting Assembly Versions
[MSDN] Look at Sharing Common Assemblies in ASP.NET 4.5
[MSDN] How the Runtime Locates Assemblies
[StackOverflow] What is the GAC in .NET?
[Blog] Sharing common assemblies with aspnet_intern.exe
[Blog] ASP.NET Assembly Interning
[Blog] Back to Basics: When does a .NET Assembly Dependency get loaded
[YouTube] .NET Assembly Versioning
[Blog] ASP.NET Assembly Interning
[Blog] Back to Basics: When does a .NET Assembly Dependency get loaded
[YouTube] .NET Assembly Versioning
Thursday, September 28, 2017
Microsoft 70-487: Manage packages by using NuGet
Exam Objectives
Create and configure a NuGet package; install and update an existing NuGet package; connect to a local repository cache for NuGet, set up your own package repositoryQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 5.4
[Software] Nuget Package Explorer, Source
[MSDN] NuGet Documentation:
-PowerShell Reference
-Package Creation Workflow
-Hosting your own NuGet feeds
[Wikipedia] Nuget
[PluralSight] Introduction to NuGet
[Software] Nuget Package Explorer, Source
[MSDN] NuGet Documentation:
-PowerShell Reference
-Package Creation Workflow
-Hosting your own NuGet feeds
[Wikipedia] Nuget
[PluralSight] Introduction to NuGet
Wednesday, September 27, 2017
Microsoft 70-487: Create and configure a WCF service on Azure
Exam Objectives
Create and configure bindings for WCF services (Azure SDK—extensions to WCF); relay bindings to Azure using service bus endpoints; integrate with the Azure service bus relay; host services in Azure (from 3.9);Quick Overview of Training Materials
Monday, September 25, 2017
Microsoft 70-487: Host and manage services
Exam Objectives
Manage services concurrency (single, multiple, reentrant); create service hosts; choose a hosting mechanism; choose an instancing mode (per call, per session, singleton); activate and manage a service by using AppFabric; implement transactional services; host services in an Azure worker roleQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 3.9
[MSDN] Sessions, Instancing, and Concurrency
[MSDN] How to: Create a Transactional Service
[CodeProject] WCF Concurrency
[MSDN] Hosting
[MSDN] Deploying an Internet Information Services-Hosted WCF Service
[MSDN] How to: Host a WCF Service in a Managed Windows Service
[DotNetCurry] Hosting WCF Service in Windows Server AppFabric
[Blog] Deploying A WCF Service On Windows Azure
[Blog] Deploying an Existing WCF Service to Azure
[MSDN] Sessions, Instancing, and Concurrency
[MSDN] How to: Create a Transactional Service
[CodeProject] WCF Concurrency
[MSDN] Hosting
[MSDN] Deploying an Internet Information Services-Hosted WCF Service
[MSDN] How to: Host a WCF Service in a Managed Windows Service
[DotNetCurry] Hosting WCF Service in Windows Server AppFabric
[Blog] Deploying A WCF Service On Windows Azure
[Blog] Deploying an Existing WCF Service to Azure
[PluralSight] WCF End-to-End -
Hosting and Service Configuration
Instancing and Concurrency
Transaction Handling
[PluralSight] WCF Advanced Topics
Instancing and Concurrency
Transaction Handling
[PluralSight] WCF Advanced Topics
Wednesday, September 20, 2017
Microsoft 70-487: Secure a WCF service
Exam Objectives
Implement message level security, implement transport level security; implement certificates; design and implement multiple authentication modesQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 3.4
[Book] Programming WCF Services - Ch. 10: Security
[MSDN] Programming WCF Security
[MSDN] Message Security in WCF
[MSDN] Transport Security
[MSDN] Working with Certificates
[MSDN] Improving Web Service Security - Chapter 7, Chapter 5 (Auth)
[MSDN] How to: Use Certificate Authentication and Transport Security in WCF
[CodeProject] Nine simple steps to enable X.509 certificates on WCF
[Book] Programming WCF Services - Ch. 10: Security
[MSDN] Programming WCF Security
[MSDN] Message Security in WCF
[MSDN] Transport Security
[MSDN] Working with Certificates
[MSDN] Improving Web Service Security - Chapter 7, Chapter 5 (Auth)
[MSDN] How to: Use Certificate Authentication and Transport Security in WCF
[CodeProject] Nine simple steps to enable X.509 certificates on WCF
Sunday, September 17, 2017
Microsoft 70-487: Implement messaging patterns
Exam Objectives
Implement one way, request/reply, streaming, and duplex communication; implement Azure Service Bus and Azure QueuesQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 3.8
[MSDN] One-Way Service, How to create, One-Way
[MSDN] Request/Reply Service, How to create
[MSDN] Duplex Service, How to create
[MSDN] Streaming Message Transfer
[MSDN] Large Data and Streaming
[MSDN] Using Service Bus Queues with WCF
[MSDN-Blog] My Hello Azure Service Bus WCF Service
[MSDN] Azure Service Bus
[Blog] WCF Best Practices: One way is not always really one way
[PluralSight] WCF End-to-End - Operations
My post on Creating a Service
[MSDN] Request/Reply Service, How to create
[MSDN] Duplex Service, How to create
[MSDN] Streaming Message Transfer
[MSDN] Large Data and Streaming
[MSDN] Using Service Bus Queues with WCF
[MSDN-Blog] My Hello Azure Service Bus WCF Service
[MSDN] Azure Service Bus
[Blog] WCF Best Practices: One way is not always really one way
[PluralSight] WCF End-to-End - Operations
My post on Creating a Service
Wednesday, September 13, 2017
Microsoft 70-487: Version a WCF service
Exam Objectives
Version different types of contracts (message, service, data); configure address, binding, and routing service versioningQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 3.6
[Book] Programming WCF Services - Ch. 3: Data Contracts
[MSDN] Versioning Strategies
[MSDN] Best Practices: Data Contract Versioning
[MSDN] Using Message Contracts (Versioning section)
[MSDN] How To: Service Versioning (Routing)
[CodeProject] WCF Routing Service - Part IV: Service Versioning
[PluralSight] WCF Power Topics - Versioning Your Services
[Book] Programming WCF Services - Ch. 3: Data Contracts
[MSDN] Versioning Strategies
[MSDN] Best Practices: Data Contract Versioning
[MSDN] Using Message Contracts (Versioning section)
[MSDN] How To: Service Versioning (Routing)
[CodeProject] WCF Routing Service - Part IV: Service Versioning
[PluralSight] WCF Power Topics - Versioning Your Services
Monday, September 4, 2017
Microsoft 70-487: Consume WCF services
Exam Objectives
Generate proxies by using SvcUtil; generate proxies by creating a service reference; create and implement channel factoriesQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 3.5
[Book] Programming WCF Services
Saturday, September 2, 2017
Microsoft 70-487: Configure WCF services by using the API
Exam Objectives
Configure service behaviors; configure service endpoints; configure binding; specify a service contract; expose service metadata (XSDs, WSDL, and metadata exchange); WCF routing and discovery featuresQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 3.3
[Book] Programming WCF Services (in particular, Appendix C: Discovery)
[MSDN] Configuring WCF Services in Code (.NET 4.5+)
[Book] Programming WCF Services (in particular, Appendix C: Discovery)
[MSDN] Configuring WCF Services in Code (.NET 4.5+)
[MSDN] How to: Create a Service Endpoint in Code
[MSDN] WCF Discovery
[MSDN] Routing
PluralSight WCF Library - WCF Power Topics in particular (routing and discovery)
My post on file based config
[MSDN] WCF Discovery
[MSDN] Routing
PluralSight WCF Library - WCF Power Topics in particular (routing and discovery)
My post on file based config
Friday, August 25, 2017
Microsoft 70-487: Configure WCF services by using configuration settings
Exam Objectives
Configure service behaviors; configure service endpoints; configure bindings including WebSocket bindings; specify a service contract; expose service metadata (XSDs, WSDL, and metadata exchange endpoint); configure message compression and encodingQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 3.2
[MSDN] Configuring Services Using Configuration Files
[MSDN] Configuring and Extending the Runtime with Behaviors
[MSDN] Reference Source (.NET Source code search!)
[MSDN] Windows Communication Foundation Bindings
[MSDN] System-Provided Bindings
[MSDN] Choosing a Message Encoder
My Post - PluralSight WCF Library
[MSDN] Configuring Services Using Configuration Files
[MSDN] Configuring and Extending the Runtime with Behaviors
[MSDN] Reference Source (.NET Source code search!)
[MSDN] Windows Communication Foundation Bindings
[MSDN] System-Provided Bindings
[MSDN] Choosing a Message Encoder
My Post - PluralSight WCF Library
Saturday, August 19, 2017
Microsoft 70-487: Create a WCF service
Exam Objectives
Create contracts (service, data, message, callback, and fault); implement message inspectors; implement asynchronous operations in the serviceQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 3.1
[Book] Programming WCF Services
[MSDN] Define a Windows Communication Foundation Service Contract
[Book] Programming WCF Services
[MSDN] Define a Windows Communication Foundation Service Contract
[MSDN] Using Data Contracts
[MSDN] Using Message Contracts
[MSDN] Fault Contract
[MSDN] Create a Duplex Contract
[MSDN] Message Inspectors
[MSDN] How to inspect and modify WCF message via custom MessageInspector
[MSDN] How to modify a WCF message using an IDispatchMessageInspector?
[MSDN] Implement an Asynchronous Service Operation
[MSDN] Synchronous and Asynchronous Operations
[MSDN] Asynchronous Programming Patterns
[MSDN] Using Message Contracts
[MSDN] Fault Contract
[MSDN] Create a Duplex Contract
[MSDN] Message Inspectors
[MSDN] How to inspect and modify WCF message via custom MessageInspector
[MSDN] How to modify a WCF message using an IDispatchMessageInspector?
[MSDN] Implement an Asynchronous Service Operation
[MSDN] Synchronous and Asynchronous Operations
[MSDN] Asynchronous Programming Patterns
Friday, July 28, 2017
PluralSight WCF Library
PluralSight has a pretty robust collection of WCF related courses. I decided it would be useful to index the concepts covered in the courses I watched (as part of putting together to 70-487 study guide).
Monday, July 10, 2017
Microsoft 70-487: Implement transactions
Exam Objectives
Manage transactions by using the API from System.Transactions namespace; implement distributed transactions; specify transaction isolation levelQuick Overview of Training Materials
Exam Ref 70-487 - Chapter 1.3
[MSDN] System.Transactions Namespace
[MSDN] Distributed Transactions
[MSDN] Distributed Transactions Overview
[MSDN] Introducing System.Transactions in the .NET Framework 2.0
[MSDN] Transactions in WCF Services
[MSDN] Transaction Processing
[MSDN] Long Running Transactions
[MSDN] Transaction Isolation Levels
[MSDN] System.Transactions Namespace
[MSDN] Distributed Transactions
[MSDN] Distributed Transactions Overview
[MSDN] Introducing System.Transactions in the .NET Framework 2.0
[MSDN] Transactions in WCF Services
[MSDN] Transaction Processing
[MSDN] Long Running Transactions
[MSDN] Transaction Isolation Levels
[PluralSight] Understanding .NET and WCF Transactions
[Wikipedia] Transaction Processing
[StackOverflow] Why is TransactionScope default Isolation level Serializable
[Book] Database Management Systems (2nd Ed.) - Ch. 18
[YouTube] Database Management Systems Lecture 24 and Lecture 25
[Wikipedia] Transaction Processing
[StackOverflow] Why is TransactionScope default Isolation level Serializable
[Book] Database Management Systems (2nd Ed.) - Ch. 18
[YouTube] Database Management Systems Lecture 24 and Lecture 25
Subscribe to:
Posts (Atom)