• Workflow basic

    Workflow is simply an ordered series of steps that accomplished some defined purpose according to a set of rules. By that definition, what I just described is a workflow.

  • System.Transaction

    You code can be scoped within a scope or no scope at all. If there is not scope wrapping your code directly, your code will follow its caller’s transaction scope. If there is no scope from above, then there is no transaction control in the .net domain.
    If there is scope directly scope your code, your code behaves based on the TransactionScopeOption.
    If it is TransactionScope.Required, then join the scope above, it is not null, or create scope if it is null.
    If it is TransactionScope.RequiresNew, then always create a new Scope.
    If its TransactionScope.Suppress, your code will not be part of transaction scope above. This means that if your code execute succesfully, even an error occurred afterward, and the error can rollback ambient transaction, but will not roll back your code. This is different from “no scope” case, in that case your code can be roll back if there is ambient transaction.
    When to use what? First you don’t care about your caller, your never know who is going to call your code.
    If your code require transaction within(for example you have multiple insert/update/delete inside your code), and your code could be part of outer ambient transaction scope, use TransactionScope.Required. If your code require transaction within, but the transaction is independent from existing ambient transaction(outer transaction), becuase your does not want to be affected by the ambient transaction, you should use TransactionScope.ReqiresNew These two options are similar.
    The difficult thing is when to use suppress and when to not use scope at all.
    If your code do not want to affect by the ambient transaction, and there is only single insert/update/delete, you should use Transaction.Suppress. If there is only single insert/update/delete, and you want to be part of ambient transaction, do not use scope. Below is chart to help you how to use TransacationScope.


    <img style=”cursor:pointer; cursor:hand;” src=”http://bp1.blogger.com/_yUba7cqllFE/RuqOabGkdII/AAAAAAAAACA/SMs3-8ob8Fo/s400/transaction.png” border=”0” alt=”“id=”BLOGGER_PHOTO_ID_5110053311808304258” />

  • Controlling Changes to Content Types

            You can prevent users from making changes to content types in two ways: specify a content
            type as read-only or define it as sealed.
    
  • WSS List limits

    Performance with large lists and document libraries has also been another concern with Windows SharePoint Services 2.0. For example, lists often start showing degraded performance when the number of items exceeds 2000. Document libraries have similar performance concerns. However, the rule of thumb for not exceeding 2000 documents applies to each folder within a document library as opposed to the document library itself. Therefore, coming up with a scheme to partition documents across multiple folders within a document library has come to be a popular approach in Windows SharePoint Services 2.0 for dealing with a large number of documents.

  • wss and asp.net 2.0

    Windows SharePoint Services 3.0 provisioning starts at the level of the IIS Web site. Before you can create your first Windows SharePoint Services site, someone must run an administrative procedure to extend 3.0 functionality onto one or more IIS Web sites. In Windows Share- Point Services 2.0, the term virtual server was used to describe an IIS Web site that had been extended with Windows SharePoint Services functionality. To avoid confusion with another Microsoft product of the same name, the Windows SharePoint Services 3.0 documentation now refers to an IIS Web site extended with Windows SharePoint Services functionality as a Web application.

            <p>