Sunday, December 05, 2010

Latest Status on Oslo...Oslo, Quadrant and the Repository is dead, long live “M”?

In October 2007, Microsoft introduced “Oslo” as the codename for a set of technical investments to apply model-driven principles to building applications and services. Since that announcement, many of those investments have shipped in products such as the .NET Framework, Windows Server AppFabric and Windows Azure AppFabric. This note is an update on the three “Oslo” investments that have yet to ship: the “Oslo” repository, “Quadrant”, and “M.”


Microsoft created the “Oslo” repository to make the model of a system or application easily accessible without relying on application-specific machinery to consume or query those models. The “Oslo” repository achieved this by storing the models for applications and systems in a shared SQL Server relational database.
Over the past year, customer feedback prefering a more loosely-coupled approach; specifically, an approach based on a common protocol and data model  rather than a common store has forced MSFT to shut down Quadrant and the Repository.  The momentum behind the Open Data Protocol (OData) and its underlying data model, Entity Data Model (EDM), shows that customers are acting on this preference.

With OData, Microsoft has enabled access to information across a growing number of technologies, data sources, and tools, including .NET Framework, Visual Studio, Microsoft Excel Power Pivot, SQL Server Reporting Services, SharePoint 2010, Windows Azure storage, and Codename “Dallas.”
With EDM, they have created a common abstract model for data that can be represented in multiple forms (XML-based EDMX/CSDL, C# or Visual Basic classes, visual designers, OData metadata) to simplify the creation and sharing of models.

Microsoft created a language codenamed “M” for defining schema, constraints, queries, and transformations. While they used “M” to build the “Oslo” repository and “Quadrant,” there has been significant interest both inside and outside of Microsoft in using “M” for other applications. Microsoft is continuing their investment in this technology and will share our plans for productization once they are concrete.

Saturday, December 04, 2010

MS Tech breakup

As I continue to look into areas that will be growth islands in the MS domain, following topic come to mind:
  • MS Cloud services (Azure)
  • MS Web Platform
  • MS SOA based technologies
  • SQL BI
Wondering if there are any other ones at a high level..

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/