Oleg's profileOleg SychPhotosBlogLists Tools Help

Blog


    March 02

    My blog is moving

    I finally decided to host this blog on my own domain. Unfortunately, hosting a domain on Windows Live Spaces does not work very well, so I will not be posting here anymore. Over the next few weeks, I will be gradually moving the content from this blog to its new, permanent location at http://www.olegsych.com. I apologize for the inconvenience and hope that you will continue reading my blog at its new address and subscribe to my new RSS feed at http://feeds.feedburner.com/olegsych. Here is what I posted on my new site today.

    How to use T4 to generate strongly-typed AzMan wrapper

    This article provides a brief overview of AzMan and demonstrates how several existing APIs can be used to perform authorization checks in .NET applications. It then discusses shortcomings of the current APIs and demonstrates how T4 templates can be used to generate a set of C# classes and enumerations that wrap AzMan COM API and allow application developers to write strongly-typed authorization code.

    February 12

    T4 as a general-purpose .NET scripting engine

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2008/02/t4-as-a-general-purpose-net-scripting-engine

    February 02

    Understanding T4 template transformation

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2007/12/text-template-transformation-toolkit

    January 19

    How to use T4 to generate CRUD stored procedures

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2008/01/how-to-use-t4-to-generate-crud-stored-procedures

    December 27

    How to use T4 to generate Decorator classes

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2007/12/how-to-use-t4-to-generate-decorator-classes

    December 23

    How to use T4 to generate .config files

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2007/12/how-to-use-t4-to-generate-config-files

    December 22

    How to create a simple T4 template

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2007/12/how-to-create-a-simple-t4-template

    T4 Overview and Examples

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2007/12/text-template-transformation-toolkit

    December 13

    POT without Guidance

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2007/12/pot-without-guidance

    October 28

    Regulator by Roy Osherove

    Regular expressions are a powerful tool for working with text. Unfortunately, like most powerful tools, it is also complex and difficult to learn. In business application development, I find myself having to use regular expressions only once every couple of month, which gives me enough time to forget how to write them. That's where the Regulator comes in.

    Regulator is an advanced, free regular expressions testing and learning tool written by Roy Osherove. It allows you to build and verify a regular expression against any text input and displays matching, splitting or replacement results within an easy to understand, hierarchical tree. Regulator has a fully-featured regular expression editor with color highlighting and IntelliSense, code snippets, regular expression analyzer (which translates regular expressions in plain English) and online search powered by RegExLib.com.

    You can download Regulator from Roy's web site or Source Forge where he hosts his open source project. Current version comes without an installer; you simply extract the files to a folder on your hard drive. If you are developing under non-admin user account, you will need to make sure that Regulator has write access to *.config and *.xml files in its installation directory. Regulator will crash with an obscure error if it cannot open these files in exclusive mode. Here is how I made it work under regular user account on my XP workstation:

    • Download Regulator20Bin.zip from Roy's web site
    • Extract files from the archive into C:\Program Files\Roy Osherove\The Regulator 2.0 directory
    • Modify security settings of quickmenu.config and snippets.xml to grant local Users group Modify permission
    • Modify advanced security settings of "The Regulator 2.0" directory to grant local Users group permissions to Create Files and Create Folders (this allows Regulator to create two additional .settings files)
    October 21

    Refactoring Databases: Evolutionary Database Design by Scott Ambler and Pramod Sadalage

    Today I am adding a new book to my shelf. It is Refactoring Databases: Evolutionary Database Design by Scott Ambler and Pramod Sadalage. This book extends the concept of refactoring to relational databases. Large enterprise databases are often accessed by multiple applications developed by different teams at different times and updated on different schedules. These additional dependencies between databases, applications, teams and schedules make databases refactoring much more difficult then code refactoring. First part of the book provides a good overview of why databases refactoring is important and defines the process that makes it possible. Second part of the book contains a catalog of different refactorings, describing their motivation, trade-offs and implementation mechanics. Some of the information in this book is available in this article on www.agiledata.org.

    For me, the most important thing in this book was the concept of transition period in the refactoring process and specific examples of how it can be implemented. Transition period allows the database and applications to evolve independently, enabling database changes while keeping the applications working. I think it is applicable to code refactoring as well, in particular, refactoring of frameworks, also accessed by multiple applications. .NET framework has ObsoleteAttribute designed specifically for that, which suggests that idea of transition period in refactoring is gaining wider acceptance in the industry.

    I picked up this book at the right time. As soon as HillsClerk Traffic (court case management) System goes live, we will need to start extending the system to support other court types (Criminal, Family Violence, etc). Our goal is to have a single database for all courts and refactoring will be necessary to keep the system evolving. Ideas from this book will be directly applicable to our project.

    September 29

    TFS Power Tools

    I have been using TFS Power Tools for a while and thought it would be a good idea to mention it now that a new version was released.

    Visual Studio 2005 Team Foundation Server Power Tools is a set of enhancements, tools and command-line utilities that improve the Team Foundation Server user experience.

    Best Practices Analyzer and Work Item Templates are new in this version. You can download or find more information about TFS Power Tools on MSDN.

    September 20

    Microsoft SharedView

    I came across a new live product Microsoft released recently as a beta – SharedView. It is a free online presentation tool, similar to WebEx and Microsoft Office Live Meeting. I found it simpler and easier to use then WebEx. You get all the features you would expect – sharing a slideshow, a document or entire desktop. You can allow other participants to present and even control your desktop if you need to. It integrates with Live Messenger, so you can invite people quickly. You can email invitations as well.

    SharedView only allows up to 15 people to participate in a single meeting, so you would need to upgrade to Microsoft Office Live Meeting if your audience is larger.

    Technically, SharedView is a beta. However, I found it very stable and polished. The term beta means less and less these days as Microsoft and Google are racing to deliver products that they don't want to provide support for.

    Check it out.

    August 05

    DebugExe command-line switch in Visual Studio

    This page has moved. I apologize for the inconvenience. Here is the new location:

    http://www.olegsych.com/2007/08/debugexe-command-line-switch-in-visual-studio/

    February 22

    Fiddler HTTP Debugger

    Fiddler is a HTTP Debugging Proxy which logs all HTTP traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP Traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler is designed to be much simpler than using NetMon or Achilles, and includes a simple but powerful JScript.NET event-based scripting subsystem.
     
    Fiddler also allows you to record and play back the HTTP traffic as well as to export these recordings as Visual Studio Team System web tests. ?Currently, Fiddler has better support for AJAX web test recording then VSTS Test Edition. Check out this blog post by Eric Lee for more information.
     
    Fiddler is made by Microsoft and is available as a free download at http://www.fiddlertool.com.
     
    February 19

    Camelback Mountain Hike

    I got a chance to hike up the Camelback Mountain in Scottsdale, Arizona with a couple of friends and coworkers. Tony Martin took great pictures (at the cost of an injured knee and torn jeans) and posted them on his web site. Edmund Tong also took great pictures and posted them here. I took crappy pictures with my camera phone and posted them here.
    February 14

    Resource Refactoring Add-On for Visual Studio

    Resource Refactoring Tool is an add-on for Visual Studio 2005 that helps you to quickly extract all copies of a literal string from source code into a resource file. Version 1.0 came out on February 13. Great tool; works as advertised; fits right in with other refactorings.
     
    There is one minor problem you might run into. Installer registers the add-on only for the current user. Click here for details and workaround.