Friday, November 19, 2010

WCF 4.0

As we encounter more and more weird issues in WCF, plan to get into what .NET 4.0 offers in this space to check if some of those features can be addressed to resolve the problems we are getting..

Friday, November 05, 2010

Happy Diwali

Wishing everybody a very Happy and Prosperous Diwali..May the festival of lights bring cheer in everyone's life and destroy all bad things..

Saturday, October 30, 2010

Out with kids

While most of my posts have been about work, technology and experiences took a break today to report an evening with the kids on the beach. T'was a lot of fun..

Tuesday, October 26, 2010

VS 2010 and .NET 4.0

While looking for new features in VS 2010 and .NET 4.0, we came across the following set that helps us  in Project execution:
Managed Extensibility Framework
The Managed Extensibility Framework (MEF) is a new library in the .NET Framework 4 that helps you build extensible and composable applications. MEF enables you to specify points where an application can be extended, to expose services to offer to other extensible applications and to create parts for consumption by extensible applications. It also enables easy discoverability of available parts based on metadata, without the need to load the assemblies for the parts. Check Managed Extensibility Framework Overview and Managed Extensibility Framework. For a list of the MEF types, see the System.ComponentModel.Composition namespace.
Parallel Computing

The .NET Framework 4 introduces a new programming model for writing multithreaded and asynchronous code that greatly simplifies the work of application and library developers. The new model enables developers to write efficient, fine-grained, and scalable parallel code in a natural idiom without having to work directly with threads or the thread pool. The new System.Threading.Tasks namespace and other related types support this new model. Parallel LINQ (PLINQ), which is a parallel implementation of LINQ to Objects, enables similar functionality through declarative syntax. See Parallel Programming in the .NET Framework.
ASP.NET
  • Core services, including a new API that lets you extend caching, support for compression for session-state data, and a new application preload manager (autostart feature).
  • Web Forms, including more integrated support for ASP.NET routing, enhanced support for Web standards, updated browser support, new features for data controls, and new features for view state management.
  • Web Forms controls, including a new Chart control.
  • MVC, including new helper methods for views, support for partitioned MVC applications, and asynchronous controllers.
  • Dynamic Data, including support for existing Web applications, support for many-to-many relationships and inheritance, new field templates and attributes, and enhanced data filtering.
  • Microsoft Ajax, including additional support for client-based Ajax applications in the Microsoft Ajax Library.
  • Visual Web Developer, including improved IntelliSense for JScript, new auto-complete snippets for HTML and ASP.NET markup, and enhanced CSS compatibility.
  • Deployment, including new tools for automating typical deployment tasks.
  • Multi-targeting, including better filtering for features that are not available in the target version of the .NET Framework.

Saturday, October 23, 2010

Aussies series

Was hoping to see a nice contest with the Oz team but rain has again played a spoilsport at Goa..Vizag match was fun...Waiting for the match to start...

Tuesday, October 19, 2010

CMS Options

While discussing with a colleague over what the different choices for a present day CMS systems were, I discovered a nice .NET 4.0 based package Composite C1. This has been now convered into a free open source web CMS.

http://www.composite.net/C1.aspx

Monday, October 18, 2010

CS 2009 Articles

Some articles that I found interesting on the CS 2009 front. Hosted on MOSS 2007 the CS webparts while a cumbersome at times can provide a lot of relief.
Introducing Commerce Server 2009, including what's new in Commerce Server 2009

Introducing Commerce Server 2009
Creating Commerce Server 2009 Web applications, integrating Commerce Server 2009 with other applications, and extending Commerce Server 2009 functionality
Development
Learn about the new, out-of-the-box Default Web site and how Web Parts work in Commerce Server 2009
SharePoint Commerce Services
Documentation about programming with the Commerce Server 2009 platform
Development
Deploying Commerce Server 2009- Deploying Commerce Server 2009
Terms used in Commerce Server 2009 - Glossary

Saturday, October 16, 2010

MS CRM 5.0

Microsoft Dynamics CRM is a multi-lingual Customer Relationship Management software package developed by Microsoft. Out of the box, the product focuses mainly on Sales, Marketing, and Service (help desk) sectors, but Microsoft has been marketing Dynamics CRM as an XRM platform and has been encouraging partners to use its proprietary (but .NET based) framework to customize it to meet many different demands.

Some new features in MS CRM 5.0:
http://demiliani.com/blog/archive/2008/11/11/6526.aspx

Sunday, October 10, 2010

Leaning past 3 days

Some new things I learnt in the last 3 days:
The site which outlines most of the highly scalable projects/sites:
http://highscalability.com/
This site discusses the arch of the following sites
  • YouTube
  • Flickr
  • Amazon
  • Google
  • Plenty of Fish
For comparison of features between the basic, standard and enterprise versions of SharePoint :
http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx

Wednesday, October 06, 2010

Telerik RADAJAXManager slow at ihttpasynchandler.beginrequest

We are experiencing an issue with the AJAX calls getting slow while using the RADAJAXManager and the AVICode analysis of the dump shows slowness in the IHttpAsyncHandler BeginRequest. This is for a specific project. Similar implementations done on other projects is not causing any probs...Investigating..

Tuesday, October 05, 2010

Two updates in the Program I am working

While resolving some of the FxCop issues tht we encountered in the program, we were trying to use the GlobalSuppression.cs file for obviously...suppressing the errors and were having some issues. Interestingly I personally did not find a lot of places where global suppression was being explained..So here goes some places we visited / used to get it working:
http://blogs.msdn.com/b/codeanalysis/archive/2006/12/28/faq-what-is-the-globalsuppressions.cs-globalsuppressions.vb-file-and-why-is-it-needed-is-it-possible-to-change-the-name-of-this-file-david-kean.aspx

http://dansen.wordpress.com/2008/04/15/suppressing-code-analysis-rules/

Another area we are seeing is the "Please wait while scripts are loaded" message. Typical suspects are JS issues, big JS/CSS sizes etc...A good JS debugger tool for ie should help..Firebug anyone?
This did help us to narrow down on the piece of JS script that was causing this error to come up..Removed that and BINGO!.

Saturday, October 02, 2010

Sandboxed vs Farm

Nice article on "Developing, Deploying, and Monitoring Sandboxed Solutions in SharePoint 2010"
http://msdn.microsoft.com/en-us/magazine/ee335711.aspx

For those who donno about Sandboxed solutions, some primer:
One of the many challenges in SharePoint solutions is striking a balance between creating solutions and deploying them in a way that you can trust will not damage or impair the SharePoint farm. Farm administrators are responsible for maintaining the health and integrity of the SharePoint farm, and often this means putting complicated, time-consuming processes in place to test and validate solutions deployed to the farm. This need is counter to the rapid application model used to create SharePoint solutions, and it complicates the deployment of third-party solutions. A new feature in SharePoint 2010, called sandboxed solutions, addresses many of these concerns, enabling farm administrators to feel comfortable that the SharePoint farm is safe, giving site collection administrators the authority to manage the applications in their site collection, and providing developers with the flexibility to create solutions they know will be deployed in a safe and rapid manner.

Friday, October 01, 2010

RBS Storage

Overview of Remote BLOB Storage (SharePoint Server 2010)

This article is a conceptual overview of how RBS works with Microsoft SQL Server 2008 Express and Microsoft SQL Server 2008 R2 Express. It contains important information about RBS features and providers. We strongly recommend that you read this article before you implement RBS.

Install and configure Remote BLOB Storage (RBS) with the FILESTREAM provider (SharePoint Server 2010)
This article describes how to install and configure RBS and implement the FILESTREAM provider for use with SharePoint Server 2010.

Install and configure Remote BLOB Storage (RBS) without the FILESTREAM provider (SharePoint Server 2010)
This article describes how to install and configure RBS without using the FILESTREAM provider.

Set a content database to use Remote Blob Storage (RBS) (SharePoint Server 2010)
This article describes how to set a content database to use RBS. You must already have RBS installed to perform these procedures.

Migrate content into or out of Remote BLOB Storage (RBS) (SharePoint Server 2010)
This article describes how to migrate content into or out of RBS, or to a different RBS provider.

Disable Remote BLOB Storage (RBS) on a content database (SharePoint Server 2010)
This article describes how to disable RBS in a SharePoint Server 2010 environment.

Saturday, September 25, 2010

Governance in SharePoint

As promised, trying to ensure that I learn and document something new everyday.
Today trying to document whatever I can recollect about our recent Governance especially performance engineering techniques in SharePoint. Firstly there are several usual tools AVICode, YSlow, HttpWatch, Fiddler + NExpert that have been a boon. Knowing the areas to be compressed, Minified or corrected due to repeated/failed calls is invaluable.

Another tool that helps a lot,  RPO (Runtime Page Optimizer) from Aptimize.
An interesting sight for overall Governance in SharePoint is :
http://technet.microsoft.com/en-us/office/sharepointserver/bb507202.aspx

Thursday, September 23, 2010

A new lesson a day

While I have been lazy in my blog posting, I have tried to keep this as updated as possible based on the time I get. I have come to realize that I need to be more proactive and start following the "Something new each day" axiom. And more importantly, as I have recently learnt, document what I learn. It could be anything - Technology, business, Religion, Politics....anything..a titbit here and there goes a long way.
"Only those people who documented, made it big" a birdy tells me and so I have decided to at least dedicate 10 mins each day to documenting this fact. Lets see how far I get.
Today's post is around: Startups around Cloud computing...


Altor Networks -

They tackle the challenge of security posed for virtualized datacenter infrastructure - through a virtual firewall/IPS system - that mitigates risks to virtualized and cloud-based applications and data.

Appirio

It bills itself as a provider of “both products and professional services that help enterprises accelerate their adoption of the cloud.” The company’s strategy is to focus on existing platforms, such as Google Apps, Amazon Web Services and Salesforce CRM, and provide tools and services that help customers leverage those platforms.

Friday, September 10, 2010

Exam 70-576 requirements

Creating an Application Design (19%)

  • Identify artifacts from application requirements: Web parts, event receivers, list definitions, list templates, workflows, site definitions, custom actions, content types, site columns, mapping artifacts to application requirements
  • Select a deployment model:
    Identifying artifacts and execution appropriate for sandbox and farm (i.e. GAC vs. BIN) implementation, designing solutions for single server or multi-server environments, dividing artifacts between sandbox and farm
  • Select the appropriate execution method:
    In-page, workflow, event receiver (asynchronous vs. synchronous), timer job, and service application, selecting which logic execution model to use for a problem, determining where code or artifact runs.
Designing UX (17%)
  • Determine presentation page type:
    Web Part page, application Page, publishing page, page layout, static page.
  • Determine SharePoint visual components:
    Web parts, silverlight, AJAX, ribbon, visual web parts, delegate controls, custom field types, dialog.
  • Plan branding strategy:
    Determining usage of themes, templates, enforce consistency via site definitions, master pages and page layouts, determining usage of CSS styles and JavaScript, designing.
  • Design application customization strategy:Supportable customizations allowed through SharePoint UI, SharePoint Designer 2010, VS 2010 (site columns, content types, page customization, themes, page layouts, personalization)
  • Design navigation strategy
    Identify inclusion of navigational items (global/current/custom), consume an existing site map provider vs. create a custom provider, determine depth and inclusion of pages/sites, dynamic vs. static navigation, consume an existing navigation control vs. create a custom navigation control
  • Managing Application Development (18%)
  • Design for localization and globalization:
    Use and implementation of resource files, variations (content creation and workflow, multilingual content), selecting locales, date and time, regional settings, RTL vs. LTR.
  • Develop a security approach
    Authentication (NTLM, Kerberos, Forms-based Authentication, claims, Single Sign-On, Anonymous), authorization (SharePoint groups, AD groups, claims, permission levels) enterprise-wide security policies.
  • Define application configuration approach
    Defining "web.config" modifications, Lists as a configuration option, Property bags, declarative vs. programmatic, SP persisted objects.
  • Optimizing SharePoint Application Design (15%)

    Optimize page performance:View State, Inline JS, Inline CSS, HTML output, AJAX, Client side cache, .NET cache, BLOB Cache, Session State, IIS compression.
  • Optimize data access:SPQuery, SPSiteDataQuery, Large lists, Search (managed properties), SharePoint 2010 query throttling, Client object model vs. web service/rest/SOAP/RPC, Linq.
  • Design for logging and exception handling
    Determining appropriate level of logging to include in a custom code project, Evaluating SharePoint log data, Instrumenting code to improve the ability to maintain the system, Determining when exceptions are raised, error values returned, and what should be written to the SharePoint ULS log, Debugger, and Event log.
  • Identify and Resolve deployment issues
    Single server vs. farm vs. multi-farm, infrastructure vs. content database, web applications, application pools, feature activation failures, pushing applications to front end, security context, feature scope, feature dependencies.
  • Analyze memory utilization
    Memory profiling, Disposal of SharePoint objects, Load testing, Identifying memory bottlenecks (hierarchy), Analyze ULS logs, Monitoring memory counters, ensure implemention of IDisposable on custom artifacts containing IDisposable members.
  • Designing SharePoint Composite Applications (13%)
    Design external application integration
    Selecting appropriate BCS connection from Web Service, .NET Type, and SQL Connection, Defining authentication requirements, Defining solutions that include Office client applications.
  • Determine data capture approach
    Evaluate when to use different forms technologies (InfoPath vs. ASP.NET), Office client, Silverlight, BCS, Infopath Forms Services.
  • Design SharePoint information architectureContent types (local, global), Site columns, Site structure, Taxonomy (managed metadata).
  • Design a workflow solution
    Workflow tool (Visio, SharePoint Designer, Visual Studio), Sequential vs. State Machine, Item vs. Site, Declarative vs. Code, custom actions.
  • Designing SharePoint Solutions and Features (18%)
    Plan SharePoint Features

    Feature Sets, Feature Stapling, determine feature scope, Create a new Feature (vs. extending), activation dependencies, feature receivers.
  • Plan SharePoint solution packaging
     Create a new Solution (vs. extending), Manage reference assemblies in a SharePoint WSP solution, solution sets, solution dependencies, solution targeting.
  • Establishing application modification and version upgrade strategy
     Designing an artifact upgrade strategy, Feature and solution upgrade, Site upgrade, Versioning custom assemblies, Versioning workflows (new feature, new assembly version, new code), Resolving incompatible changes between dev and production.
  • Develop a strategy for delivery of application modifications and existing data transformation
     Formulating a new version of custom code, Updating Web parts while retaining properties, connections and other user entered settings, Content maintenance, Developing a content upgrade strategy, Deployment configurations, Deploying modified code safely (data safe), Preparing scripts (PowerShell, EXE), packages (WSP, MSI), or installers

Best Practices for MOSS

http://spg.codeplex.com/

Exam 70-573

  • Some Sites:
http://techtrainingnotes.blogspot.com/2010/05/sharepoint-2010-preparing-for-70-573-ts.html

Six ways to store data in MSS:
http://www.wictorwilen.se/Post/Six-ways-to-store-settings-in-SharePoint.aspx


  • Working with the SharePoint User Interface (19%)
  • Manage SPSite and SPWeb programmatically by using Visual Studio 2010
This objective may include but is not limited to: creating sub webs, referencing SPFiles, manipulating property bag, when to call Update, referencing SPContext, SPSite, SPWeb, SPSite.OpenWeb, SPWeb.Webs, feature activiation and deactivation

This objective does not include: trivial cases such as setting title and other loose properties of the objects
  • Implement a dialog by using the Dialog FrameworkThis objective may include but is not limited to: Create dialogs from JavaScript or from server side, display dialogs.
  • Create a custom ribbon object
    This objective may include but is not limited to: adding custom actions to the ribbon, customizing groups, customizing tabs, customizing the existing ribbon
  • Customize navigation programmatically
    This objective may include but is not limited to: TopNav bar, quick launch, custom actionsThis objective does not include: custom menu controls, custom site map providers
  • Create and apply branding to a SharePoint site
    This objective may include but is not limited to: applying custom master pages to content pages and application pages, placeholders, page layouts, programmatically working with themes, deploying CSS, CSSlink, ScriptLink
    This objective does not include: graphic design, creating a CSS
  • Developing Web Parts and Controls (21%)
  • Create Web Parts This objective may include but is not limited to: including properties, controls using Render vs. CreateChildControl, life cycle, visual, standard Web Parts,
    This objective does not include: trivial case where developer uses Visual Web Part project template
    Create connectable Web Parts
    This objective may include but is not limited to: Implement consumer/provider interfaces
  • Debug Web Parts
    This objective may include but is not limited to: ULS log, and event log, debug.log tracing, developer dashboard
  • Create and implement delegate controls
    This objective may include but is not limited to: overriding existing controls with lower sequence, developing and using .ascx files
  • Developing Business Logic (19%)
  • Implement a custom workflow in Visual Studio 2010This objective may include but is not limited to: work with inititation data or association data to create a SharePoint task, extend a workflow imported from SharePoint Designer 2010, use a HandleExternalEvent and CallExternalMethod to interact with a custom local service, work with inititation data or association data in a site workflow, corelation token.
    This objective does not include: trivial cases such as workflows with no custom actions, initiation data, association data.
  • Create a custom workflow action
    This objective may include but is not limited to: create a custom SPD action, create and add a custom activity to a Visual Studio workflow, define an action.xml file.
  • Create and implement event receiversThis objective may include but is not limited to: accessing event properties, list, item, site, email, avoiding recursion, cancelling events, choosing synchronization state
  • Customize Enterprise Content Management (ECM)
    This objective may include but is not limited to: creating a content type that inherit from appropriate parent, creating and implementing a custom publishing field control that is page mode aware, activating a master page programmatically including token usage,
    This objective does not include: page layouts, formatting
  • Create, implement and debug a Timer JobThis objective may include but is not limited to: configuration, programmatic scheduling, queueing, attaching debugger to the Timer service
  • Create and modify Business Connectivity Service model in Visual Studio 2010This objective may include but is not limited to: create a BDC model in Visual Studio 2010, define insert, update and delete methods, create and read items, make data searchable
  • Manage Users, Groups, Permissions
    This objective may include but is not limited to: SPGroups, SPUser, permission inheritance, all securable objects, SPRoleDefinition, SPRole, SPRoleAssignment.
  • Working With SharePoint Data (22%)
  • Access list data by using the Server object model This objective may include but is not limited to: SPQuery, LINQ, SPList, SPSiteDataQuery, schema management, working with a query Governor, create LINQ query that includes a join statement, SPQuery Vs. SPSiteDataQuery
  • Access SharePoint Data by using WCF Data Services
    This objective may include but is not limited to: WCF ListData.svc, RESTFUL URLs conventions, create and use a client service reference.
  • Access (CRUD) data by using the Client Object ModelThis objective may include but is not limited to: Javascript, .NET, Silverlight, Build Silverlight User Interface for SharePoint using Client Object Model, Query data by using CAML over the Client Object Model in Silverlight, non data API (site, web, list, access).
  • Work with documents programmatically
    This objective may include but is not limited to: SPFile, SPFolder, SPVersion, upload document and set meta data.
  • Work with the meta data
    This objective may include but is not limited to: Access data from user profiles, taxonomy, folksonomy.
  • Extending SharePoint Search
    This objective may include but is not limited to: creating a custom query using full text query or keyword query, customize the look and feel of the search result using XSLT.
  • Implement and debug code that executes in an alternative security context.This objective may include but is not limited to: create code that uses the RunWithElevatedPrivileges delegate (including debugging), create code that uses the System Account, create code that impersonate a different user.
  • Create and modify a custom content type
    This objective may include but is not limited to: declaratively and programmatically creating and upgrading content type using Visual Studio 2010, modifying an exisiting content type, site columns.
  • Stabilizing and Deploying SharePoint Components (19%)
Manage a solution in Visual Studio 2010
This objective may include but is not limited to: modify the contained features in the solution, add an assembly that is not included in the visual studio solution, manage mapped folders for localization, sandbox and farm solutions, customize manifest.xml .
  • Manage a feature by using Visual Studio 2010
This objective may include but is not limited to: upgrading, localizing, versioning, developing features, feature receivers (activating and installing) that interact with their parent object, customizing feature.xml
This objective does not include: features without elements

  • Store and retrieve configuration data
    This objective may include but is not limited to: App config, web config, persisted object, list, xml, file system, cookies, property bag.
  • Create a site definition by using Visual Studio 2010This objective may include but is not limited to: feature activation, site provisioning, localization.
    This objective does not include: list definitions and modules defined in ONET.xml, SharePoint Designer.
  • Manage SharePoint object life cycle by using the Dispose API
This objective may include but is not limited to: SPWeb, SPContext, IDisposable, Try…Catch…Finally, using blocks

  • Develop, debug, and deploy sandboxed solutionsThis objective may include but is not limited to: APIs that are allowed or not allowed in sandbox, use a full trust proxy



.

Thursday, September 09, 2010

Exam 70-667 requirement

  • Installing and Configuring a SharePoint Environment (25 percent)
  • Deploy new installations and upgrades.This objective may include but is not limited to: running Visual Upgrade, performing an in-place upgrade, performing a database attach upgrade, analyzing a PreUpgradeCheck report, installing language packs, and scripting installations; analyzing ULS logs, installation error logs, and event logs to identify installation problems; and repairing installation errors
  • Configure SharePoint farms.
    This objective may include but is not limited to: configuring inter-server communications, server roles, high availability, InfoPath Forms Services (IPFS), Alternate Access Mappings (AAM), external sites, host headers, and applying and managing patches
  • Configure service applications.This objective may include but is not limited to: configuring service applications such as Business Connectivity Services (BCS), Access Services, Visio Services, Microsoft Office PerformancePoint Server 2007, user profiles, Microsoft Office Excel services, Managed Metadata Services (MMS), and IPFS
  • Configure indexing and search.
    This objective may include but is not limited to: configuring FAST Search for SharePoint, crawl schedules, iFilters, crawl rules, content sources, scopes, managed properties, content types, search components, index partitioning, and federated search locations
  • Managing a SharePoint Environment (26 percent)
  • Manage operational settings.
    This objective may include but is not limited to: configuring logging, quotas, monitoring levels, health reports, security, and SQL Server Reporting Services (SSRS) integration
  • Manage accounts and user roles.
    This objective may include but is not limited to: managing user accounts, group accounts, managed accounts, computer accounts, and service accounts; and delegating site collection administration
  • Manage authentication providers.
    This objective may include but is not limited to: managing NTLM, Kerberos, claims-based, and forms-based authentication; and configuring Secure Store Service (SSS) and Active Directory Federation Services (AD FS)
  • Deploying and Managing Applications (24 percent)
  • Manage Web Applications.
    This objective may include but is not limited to: managing databases, Web Application settings, security, and policies
  • Manage site collections.This objective may include but is not limited to: managing site collection policies, features, caching, and auditing; configuring site collection security; configuring multi-tenancy; and configuring site collection quotas and locks
  • Deploy and manage SharePoint solutions.This objective may include but is not limited to: deploying and managing SharePoint solution packages, managing sandbox solutions, and managing user solutions
Maintaining a SharePoint Environment (25 percent)
  • Back up and restore a SharePoint environment.
This objective may include but is not limited to: configuring backup settings; backing up and restoring content, search, and service application databases; detaching and attaching databases; and exporting lists and sites
  • Monitor and analyze a SharePoint environment.
    This objective may include but is not limited to: generating health, administrative, and Web analytics reports; interpreting usage and trace logs; identifying and resolving health and performance issues
  • Optimize the performance of a SharePoint environment.
    This objective may include but is not limited to: configuring resource throttling (large list management, object model override); configuring remote Binary Large Objects (BLOB) storage and BLOB and object caching; and optimizing services