Archive for the ‘Microsoft’ Category

A Very Interesting CNN Article on How the App Model Is Moving to Wide Variety of Platforms

Monday, January 11th, 2010

One of our customers, forwarded me the following CNN article.

http://www.cnn.com/2010/TECH/01/09/ces.apps/index.html

A must read.

ORM Deep Dive

Friday, June 5th, 2009

Our design team has been spending some time the last few weeks at taking another look at our architectural practices and also at standardizing on a core Web application architecture that we can then drop into the heart of any web application and then extend/wrap it based on the needs of the particular web application we may be working on.

Performance is one of the key factors in determining best practices and for data intensive applications, the database and data access layer performance in particular can make or break an application’s responsiveness more than any other layer in the application.

As we do a lot of ASP.Net/ .Net development, one of our designers Sanguanchai who is based in our Bangkok office has been trying to break down the use of LINQ to SQL versus using the Entity Framework 4 (currently in beta 1) across key considerations – not just performance - for use in our core architecture.

You can take a look at his findings in the post he published yesterday - LINQ to SQL vs Entity Framework. No doubt there are other architects and developers out there trying to get a handle on the same question and we hope you find this useful.

On a slightly related note, if you are the podcast listening type, .Net Rocks had Dan Simmons, Dev Manager on the EF4 and LINQ to SQL Team as a guest on the latest show. It’s good listen and you get some background on Microsoft’s decisions – including why EF is at version 4 though it is actually the 2nd release. You also get a view into the decisions behind certain features in EF4 and I personally got a better understanding of how best to leverage certain features of EF4 that were opaque to me thus far.

Again, the direct link to Sanguanchai’s post:

http://www.osellus.com/blogs/2009/06/04/linq-to-sql-vs-entity-framework/

Enjoy!

LINQ to SQL vs Entity Framework

Thursday, June 4th, 2009

Compare features for LINQ to SQL vs Entity Framework

Feature LINQ to SQL Entity Framework
Model domain model conceptual data model
Databases Supported SQL server only variety of databases
Data Sources tables only tables, replication, reporting Services, BI and etc
Complexity simple to use complex to use
Development Time rapid development slower development but more capabilities
Mapping class to single table class to multiple tables
Inheritance hard to apply simple to apply
File Types dbml file only after compilation generate edmx file with 3 sections to represent the schema: csdl, msl and ssdl
Create complex properties (e.g. Customer type may have Address property that is an Address type with Street, City, Region, Country and Postal code properties) Not Support Support in VS2010 Beta 1 but we can manually modify in .edmx file.
Query 1. LINQ to SQL (for select)
2. Data Context (for update, create, delete, store procedure, view)
1. LINQ to Entities (for select)2. Entity SQL (is a derivative of Transact-SQL, it supports inheritance and associations) 

3. Object Services (for update, create, delete, store procedure, view)

4. Entity Client (is an ADO.NET managed provider, it is similar to SQLClient, OracleClient, etc. It provides several components like EntityCommand, EntityTransaction)

 

Can synchronize with Database if Database Schema is changed Not Support Support
Performance Very slow for the first query Very slow for the first query. But overall performance is better than LINQ to SQL (Please see the result in the attach file)
Continue to improve features in the future No Yes
Generate database from entity model Not Support It will support in VS2010 Beta1.

Limitation for Entity Framework in VS2008 SP1

1. It will throw error in runtime if we use Contains statement. For example,
from p in context.Yard_Projects
where p_projectIDs.Contains(p.ProjectID)
select p
2. It will not generate method that map to store procedure that are not return as entity type. (We need to Entity Client to execute store procedure.) For example,
Void DeleteProjects(@CSVProjectIDs)
3. We need to map every column of a table in the storage schema. If some columns are not mapped, it will compile error.
4. If we delete a type from diagram, it’s difficult to put it back. We may manually update in .edmx file or delete old one and generate new model.
5. You don’t get a lot of control over the storage schema at all. What you mostly see is the client schema and the mapping to the storage schema.
6. If you want create methods that are map to store procedure that has the result from multiple tables, we need to manually modify section “SSDL” in the .edmx file.

Performance Test

I tried to test on LINQ to SQL and Entity Framework, I found the overall performance Entity Framework is better than LINQ to SQL. I separated test cases into 2 test groups.
1. Test select/create/update/delete for single table. You can see my test result in the “TestForSingleTable” sheet.
2. Test select/create/update/delete for single table with many associations. You can see my test result in te “TestForManyAssociation” sheet.
You can see the performance report in the link, PerformanceReport

Recommendation

I think we should use Entity Framework than LINQ to SQL because many reasons as follows.
1. It is more flexible to mapping entity model to database. You can map one class to multiple tables, using inheritance.
2. It supports many queries, you can use LINQ to Entities, Entity SQL, Object Services and Entity Client.
3. When the database schema is changed, you can synchronize entity model from latest database.
4. It has better overall performance when compare with LINQ to SQL.
5. It will be improved many features in the VS2010. You will create complex data type, generate database from entity model.
6. It supports many database vender other than SQL Server.

But disadvantage of using Entity Framework may be complexity and development time.

Refer to my performance report, if we use Entity Framework to implement in the data layer, we should use the following patterns.testperformancelinqtosql_entityframework
1. Use LINQ to Entity for simple queries.
2. Use Entity Client or Object to execute Store Procedure for complex queries (many joins, groups) or queries that perform delete many entities with contains many associations.
3. Use Object Service to insert, update, delete single/multiple entities.

Requirements Traceability : The capability exists

Thursday, April 2nd, 2009

I have been reading Payman’s posts over the past week and the No new Methodology Please; Let’s focus on Tools post in particular stuck with me because it focuses on something I have been thinking about too. His post talks about the noise in the processes domain where there is a lot of focus on coming up with unnecessarily niche processes rather than focus on actually making processes useful by developing tools that make employing existing mature processes practical.

While Payman’s post focuses on processes, it struck me that even where tools go, often companies employ ALM tools with a narrow focus without fully grasping how they can be fully leveraged and what capabilities these tools pack. Over the last year, we have helped design and deploy solutions based on Microsoft Visual studio Team System (VSTS) for a few customers. One of the key needs that kept leaping out at us from all these engagements is that most customers wanted a way to implement requirements traceability – and they were not always aware that most ALM tools already have the capability to implement end-to-end Requirements Management – in particular traceability.

VSTS for example provides advanced linking capabilities that can be leveraged to allow tracking execution of a requirement from beginning to end (and backwards as well). A number of tools have come up around VSTS to satisfy other aspects of traceability such as the ability to track and link requirements within documents – document traceability.  Traceability has always been this much sought after goal – which many companies have been attempting to address in their tools for many years. Now, the tools exist but most of us are not aware how to leverage them or even that the capability exists.

Over the following few weeks, I am thinking of putting up a series of blog posts focusing on Traceability to think through for myself and others who are interested in Traceability – how to leverage tools – with particular focus on VSTS since I am most familiar with it. A recent solution we implemented for a customer involved integrating VSTS with their CRM solution so that the solution was now truly end-to-end : Right from the time the requirement came in from the customer. In a future post, I hope to outline the lessons we learnt from this particular implementation and also step back to examine the broader implications and advantages of implementing such integrations.

We are also discussing the possibility of perhaps even having a series of webinars that focus on various aspects of Traceability based on our experience over many projects over the years and  how we can leverage VSTS for the purpose.

Watch this space.

Speeding up the CMMI Maturity Level Appriasal with the Right ALM System

Saturday, March 28th, 2009

In an earlier post, I mentioned that one my favorite CMMI phrase is “Say what you do; Do what you say; Prove it”. The “prove it” part of this phrase is especially important during the Standard CMMI Appraisal Method for Process Improvement (SCAMPI) A.  SCAMPI A provides maturity rating, and traditionally in preparation for it an organization spends hundreds (in some cases thousand) of tedious hours compiling, verifying and cataloging paper-based compliance evidence.

An integrated application lifecycle management (ALM) system, such as Microsoft VSTS, substantially reduces this burden by digitizing the majority of the required evidence, and making it accessible from a single portal (SharePoint in the case of VSTS). This portal goes beyond paper-based documents. It provides bi-directional traceability and search functionality. Moreover, the generation of the evidence documentation is automated.

In a very interesting case, an organization, utilizing VSTS, was able of to achieve CMMI maturity level 2 in an six months.

As a side note.  I strongly believe that CMMI is not just for the organization who intend to get an official rating.  Any organization, regardless of size, can greatly benefit from CMMI best practices.  These best practices are the result of over a decade work by some of the industries best minds.  They are quantitatively improved and empirically validated.  I feel, this has much more merit than unverified (latest fad) concepts introduced by methodology theorists.

My advice is not to view CMMI not just as a certification mechanism, rather adopt parts of CMMI that are relevant and beneficial to your organization.

Eating Our Own Dogfood

Monday, March 23rd, 2009

Last Friday Negin, our head of software development, was telling me about a custom software development project that one of her teams had just wrapped up. This is a commercial grade web application, developed for a local customer here in Toronto area. Negin told me that the project was done under four months!

This morning I quickly glanced over the requirements and design documents of the system. It consisted of over 306 UI screens and massive amount of business logic (629 methods, 68,875 lines of code, 44 tables and 287 store procedures).

Negin attributed the rapid development cycle to VSTS and the process that was used. As I am not familiar with the project, I asked her and her team members to provide details of their experiences during this project.

It’s exciting to see VSTS and processes bringing so much tangible benefits to our own development projects.

Upcoming RUP in VSTS Webinar

Tuesday, May 27th, 2008

Join us on May 29th for a webinar hosted by Osellus and Microsoft Canada.

This event will showcase how the new Visual Studio Team System 2008 and IRIS Process Live can streamline the deployment and enactment of your existing methodology by using the Rational Unified Process as a case study.

For more information, visit http://www.starshot.com/microsoft/Osellus/May29/index.htmlColchicine
Gentamicin
Flonase
Viagra online
Adipex
Purchase phentermine
Ambien 10mg
Zileuton
Buy Tylenol
Meridia sibutramine
Propylthiouracil
Meridia weight loss pill
Buy Cialis
Xanax withdrawel
Buy Soma
Wholesale pfizer viagra
Phentermine shipped to missouri
Alteplase
Phentermine in the uk
Buy online viagra securely
Discount tramadol
Xanax 2 mg
Buy phentermine online same day delivery
Trileptal
Xanax no prescription required
Liquid hydrocodone
Tramadol prescription
Phentermine no rx
Chlorthalidone
Phentermine hcl
Diphemanil
Penbutolol
Is phentermine discontinued
Lorazepam
Lethal doses klonopin wellbrutrin xanax
Leucovorin
Buy phentermine epharmacist
Phentermine usa pharmacy
Idoxuridine
Lomefloxacin
Imiquimod
Generic viagra reviews
Celexa phentermine
Viagra sample
Buy generic viagra
Colestipol
Buy cheap viagra
Keppra
Order xanax
Lansoprazole
Clopidogrel
Buy Wellbutrin
Diet medication online phentermine
Diet online phentermine pill
Generic fioricet
Orlistat
Viagra erection
Phenacetin
Order ambien online
Buy Famvir
Methscopolamine
Order xanax on line
Phentermine 90
Cod free phentermine shipping
Klonopin xanax
Phentermine ionamin canada
Cimetidine
Where can i buy phentermine
Phentermine next day delivery
Vicodin without prescription
Impotence treatment viagra
Phentermine saturday delivery
Buy cheap fioricet
Viagra class action
Methazolamide
Thiopropazate
Multivitamins
Phentermine diet plan
Viagra online canada
Zyban
Bactrim
Nitric oxide viagra
Buy generic hydrocodone
Clorazepate
Diethylpropion
Phentermine 15mg
Acquisto cialis
Phentermine discount
Cialis discount online
Acetohexamide
Selegiline
90 cod count day phentermine
Natural viagra free samples
Drug test tramadol hydochloride
Cialis drug for impotence
Phentermine resident sale virginia
Exelon
Non prescription xanax
Pravastatin
Good morning viagra commercial
Diphenhydramine
Cod delivered phentermine
Anileridine
Methotrimeprazine
Atropine
Xanax withdraw
Cheapest diet phentermine pill
Buy discount viagra online
Fosamax
Viagra online sales
Metaraminol
Phentermine result
Hydrocodone cod
Viagra pill cutter
Macrodantin
Online phentermine prescription
Uk cheapest viagra
Cheap online order viagra
Viagra sample pack
Shipping phentermine to florida
Lowest prices on phentermine
Order vicodin
Pyrazinamide
Discount phentermine
Drug information picture identification tramadol er bvf
Somatostatin
Trimethaphan
Buy viagra on line
Xanax withdrawal symptoms
Diltiazem
Codeine
Chlorzoxazone
Phentermine no prescription
Pyrimethamine
Phentermine phendimetrazine
Medroxyprogesterone
Cialis online
Loratadine
Buy generic xanax
Perscription phentermine
Hydralazine
Cefatrizine
Viagra users
Herbal viagra alternative review
Buying viagra online uk
Side effects of xanax mylan
Estradiol
Hydroxyzine
Phentermine success story
Viagra sale online

Automatic work item creation and linking in VSTS

Thursday, March 13th, 2008

It’s been a busy few weeks since the Heroes Happen {Here} event here in Toronto where we launched the latest release of our IRIS Process Live product for VSTS 2008.  This release has been generating a lot of excitement amongst those looking to increase their productivity with VSTS.  IRIS Process Live (IPL) is a collection of client and server extensions that enable VSTS to guide the execution of your projects based on your process of choice.  IPL is methodology neutral so it allows you to bring any process definition (MSF, RUP, agile, in-house) into your VSTS enactment environment and automatically create the necessary work items and relationships to help you get going.  The following are some of the features of IRIS Process Live.

IPL extends the project creation wizard to allow you to select the process definition and process patterns that you want to use for your project.

Select process definition during project creation

IPL extends the project creation wizard to allow you to select which process elements you want to instantiate in your project.

Select which elements to instantiate

IPL work items automatically contain the necessary guidance for you to get started.

IPL work items are automatically linked together based on their process relationships.

IPL work items automatically contain links to relevant guidance and process guidance items.

IPL automatically performs work item state changes based on their process relationships.

IPL automatically sends users notifications when their work items are ready to be started or have been updated.

IPL allows you to create additional work items from the process definition at any time during project execution.

Instantiate additional work items during project execution

Both activities and work products are instantiated by the wizard

IPL allows you to add or remove additional process definitions and practices during project execution.

IPL contains process related reports that can be used for process improvement or governance related initiatives.

More information about IRIS Process Live is available at http://www.osellus.com/IRIS-PL.

Governance Webinar Recording

Friday, December 7th, 2007

Yesterday Omid and I gave a joint Microsoft-Osellus webinar on Effective Software Development Governance with Adam Galant. Thanks to Rini Gahir and Adam Galant from Microsoft Canada for arranging this webinar.

It was a challenge to fit an explanation of the theoretical concepts of SD Governance with a tangible step-by-step approach to achieving it within the 45 minutes we had. In the end we were able to keep to our time and I hope the audience (about 36 attendees) left with an outline of a practical approach to establishing software development governance in an automated yet flexible manner.

Here is a link to a recording of the governance webinar.

Webinar - Effective Software Development Governance

Wednesday, November 28th, 2007

You can use this link to register for the joint Microsoft-Osellus Webinar on software development governance. Omid is going to be talking about a lot of things that we have been able to achieve with the collaboration between the osellus process toolset/service offerings and the VSTS integrated ALM.

Here is a preview of what we will be talking about:

Effective governance aligns your software development investment with your business strategy. By ensuring continuous traceability of software development activities, governance leads to enhanced customer satisfaction and compliance with internal and external policies.

While most organizations use some measure of implicit governance, the full potential of a governance framework can be realized by taking three practical and explicit measures. The software development processes in the organization need to be selected and tailored in a manner that supports organization’s business goals. These processes need to be enforced in a streamlined manner. And, they need to be monitored to ensure corrective actions are taken in a timely manner.

In this webinar we outline a practical approach to establish software development governance in an automated yet flexible manner. We will discuss how the business objectives, standards and control mechanisms in the organization should be mapped to process elements such a roles, activities and work products that guide practitioners in a non-intrusive manner. Microsoft Visual Studio Team System (VSTS) and the IRIS process automation suite from Osellus will be used to demonstrate implementation of an effective governance framework in real-world scenarios.