<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14294547</id><updated>2011-11-28T11:51:00.281+11:00</updated><title type='text'>LakshmiKanth Upadrasta</title><subtitle type='html'>Enterprise Architecture, Business Architecture, Enterprise Information Architecture &amp;amp; Data Management, Master Data Management.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14294547.post-5691322256495122327</id><published>2011-03-18T11:00:00.002+11:00</published><updated>2011-03-18T11:03:57.121+11:00</updated><title type='text'>New Photographs</title><content type='html'>Colorful&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-YzmKkgttdCQ/TYKhK2qIz2I/AAAAAAAAAAU/nMQ2zaF5Ppg/s1600/DSC_0294.jpeg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 213px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5585203695735852898" border="0" alt="" src="http://4.bp.blogspot.com/-YzmKkgttdCQ/TYKhK2qIz2I/AAAAAAAAAAU/nMQ2zaF5Ppg/s320/DSC_0294.jpeg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-x3CLXhvUdR0/TYKhKZGqNTI/AAAAAAAAAAM/8FugWTgmPRs/s1600/DSC_0267.jpeg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 213px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5585203687802418482" border="0" alt="" src="http://4.bp.blogspot.com/-x3CLXhvUdR0/TYKhKZGqNTI/AAAAAAAAAAM/8FugWTgmPRs/s320/DSC_0267.jpeg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;To me sepia appeals more.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-5691322256495122327?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/5691322256495122327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/5691322256495122327'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2011/03/new-photographs.html' title='New Photographs'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-YzmKkgttdCQ/TYKhK2qIz2I/AAAAAAAAAAU/nMQ2zaF5Ppg/s72-c/DSC_0294.jpeg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-7899958454595673118</id><published>2010-04-23T11:06:00.004+10:30</published><updated>2010-07-02T22:17:54.640+10:30</updated><title type='text'>Enterprise Architecture Framework Resources</title><content type='html'>1) &lt;a href="http://www.finance.gov.au/e-government/strategy-and-governance/australian-government-architecture.html"&gt;Australian Government Architecture&lt;/a&gt;&lt;br /&gt;2) &lt;a href="http://www.qgcio.qld.gov.au/qgcio/architectureandstandards/qgea2.0/Pages/index.aspx"&gt;Queensland Government Enterprise Architecture&lt;/a&gt;&lt;br /&gt;3) &lt;a href="http://www.togaf.org"&gt;TOGAF v9&lt;/a&gt;&lt;br /&gt;4) &lt;a href="http://www.whitehouse.gov/omb/e-gov/fea/"&gt;Federal Enterprise Architecture Resources&lt;/a&gt;&lt;br /&gt;5) &lt;a href="http://mike2.openmethodology.org/"&gt;MIKE 2.0&lt;/a&gt;&lt;br /&gt;6) &lt;a href="http://www.zifa.com/framework.html"&gt;Zachman&lt;/a&gt; (The full framework is not accessible publicly).&lt;br /&gt;7) &lt;a href="http://www.mitre.org/work/tech_papers/tech_papers_04/04_0104/04_0104.pdf"&gt;EA Body Of Knowledge&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-7899958454595673118?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/7899958454595673118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/7899958454595673118'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2010/04/architecture-framework-resources.html' title='Enterprise Architecture Framework Resources'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-5130965900976544356</id><published>2008-07-02T10:08:00.001+10:30</published><updated>2008-07-02T10:08:05.664+10:30</updated><title type='text'>Microsoft - Master Data Management</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;At last there is activity on the MDM side of things from Microsoft. I have been following industry news and Microsoft news on Strature acquisition by Microsoft since mid 2007. Finally there is a dedicated site for this (&lt;a href="http://www.microsoft.com/sharepoint/mdm/default.mspx"&gt;Master Data Management&lt;/a&gt;). &lt;/p&gt; &lt;p&gt;However there are few questions on how +EDM will be utilised within the Microsoft Business Applications suite (MS CRM, Axapta, Navision etc). +EDM originally focused on hierarchy management and business intelligence. I have not seen any literature which project +EDM with pre-built data models such as its competitor products (IBM WCC, IBM WPC, Seibel UCM and the likes)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;1) Does Microsoft present and industry specific data model through +EDM?&lt;/p&gt; &lt;p&gt;2) If Microsoft presents the industry specific data models, do they relate back to their own products or be product neural?&lt;/p&gt; &lt;p&gt;3) Will there be a product or Guidance specifically around meta-data management (because Master Data and Meta Data are the two pillars that are required for SOA)?&lt;/p&gt; &lt;p&gt;Also note that MDM is not mentioned on Microsoft SOA web site like it competitors&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-5130965900976544356?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/5130965900976544356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14294547&amp;postID=5130965900976544356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/5130965900976544356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/5130965900976544356'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2008/07/microsoft-master-data-management.html' title='Microsoft - Master Data Management'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-5094465605315338041</id><published>2008-05-29T10:03:00.001+10:30</published><updated>2008-05-29T10:03:24.070+10:30</updated><title type='text'>Solution Architecture - Scalability &amp; Availability.</title><content type='html'>&lt;p&gt;Scalability and Availability are two non-functional requirements that I could never reject or push-back to the business. It is critical that a business application is available to all intended users/audience at the agreed service levels. Although this is not a SLA discussion it is important to mention SLAs. SLA usually define your Scalability and Availability aspects. Getting back to our original discussion about how to scale, here are few pointer that we usually look to:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Business Functions that Support the day-to-day business transactions.&lt;/li&gt; &lt;li&gt;Infrastructure Functions that indirectly support business functions. These are typically re-usable components.&lt;/li&gt; &lt;li&gt;Caching Aspects&lt;/li&gt; &lt;li&gt;Distributed transactions&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Without going to deep into the issue, here is the link on how Ebay manages these issues:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.infoq.com/articles/ebay-scalability-best-practices"&gt;Scalability Best Practices&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-5094465605315338041?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/5094465605315338041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14294547&amp;postID=5094465605315338041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/5094465605315338041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/5094465605315338041'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2008/05/solution-architecture-scalability.html' title='Solution Architecture - Scalability &amp;amp; Availability.'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-76780739782849689</id><published>2008-03-18T22:51:00.004+11:00</published><updated>2008-03-19T00:07:19.303+11:00</updated><title type='text'>Brading a website</title><content type='html'>&lt;div align="justify"&gt;It's too long since this blog post was updated. In fact the claim blog was helpful, you know what I mean.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Recently I was at a Portal Demonstration of a large organization. As usual, technology was presented in the best possible way. All kudos to the presenter. However, during the Q&amp;amp;A session one of the gentlemen said:&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;"Brading is easy, it is about pictures and colors. What is more difficult is the customer experience". &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Hmmmm. I have a purticular problem with this statement. I didn't make a fuss about the statement, at the same time I could not sleep well with out writing it out here. And do not deny that Customer Experience is hard to create,but do not accept that one is tougher than the other. Both are complement each other.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;First of all, what is branding? &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Well I will jump a head and talk about Corporate Branding rather than just branding as "branding" can take various forms and for our discussion Corporate Branding is more relevant.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Below is the Wikipedia version of the definition:&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Corporate branding&lt;/strong&gt; is the practice of using a company's name as a product &lt;a title="Brand" href="http://en.wikipedia.org/wiki/Brand"&gt;brand name&lt;/a&gt;. It is an attempt to leverage &lt;a title="Corporation" href="http://en.wikipedia.org/wiki/Corporation"&gt;corporate&lt;/a&gt; &lt;a title="Brand equity" href="http://en.wikipedia.org/wiki/Brand_equity"&gt;brand equity&lt;/a&gt; to create product brand recognition. It is a type of &lt;a title="Family branding" href="http://en.wikipedia.org/wiki/Family_branding"&gt;family branding&lt;/a&gt; or &lt;a title="Umbrella brand" href="http://en.wikipedia.org/wiki/Umbrella_brand"&gt;umbrella brand&lt;/a&gt;. Disney, for example, includes the word "Disney" in the name of many of its products; among many other examples are &lt;a title="IBM" href="http://en.wikipedia.org/wiki/IBM"&gt;IBM&lt;/a&gt;, &lt;a title="Pepsi" href="http://en.wikipedia.org/wiki/Pepsi"&gt;Pepsi&lt;/a&gt;, and &lt;a title="Coca-Cola" href="http://en.wikipedia.org/wiki/Coca-Cola"&gt;Coca-Cola&lt;/a&gt;.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;On the other hand there is Product:&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;According to Marketing Guru, &lt;strong&gt;Peter Kotler&lt;/strong&gt;, A product is anything that can be offered to a market for attention, acquisition, use or consumption that might satisfy a want or need.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Products&lt;/strong&gt; are offered to a market through a multple channels. Off late website/online channels have picked the customers' view. Especially services that need not have personal contact, for example, credit cards services, mortgage self service etc. Since the intrusion of WWW into customer self servicing arena, there has been a lot of talk about website brading (Portals have replaced the web sites only recently even though the Portal technoogy has been around for a while).&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Again lets take a quick look what a product is made off. Apologies for a marketing lecture here, but it is essential for this discussion. A product has three levels&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Core Product&lt;/strong&gt;: is at the centre of the product and is the core benefit obtained when the product is purchased.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;/strong&gt; Credit Card product, credit limit.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Actual Product:&lt;/strong&gt; is built around the core product, and has up to five characteristics: quality level, features, styling, brand name and packaging&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;/strong&gt; Card Plastic, Logo of Visa/Master Card/Amex etc and the issuing bank.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Augmented Product:&lt;/strong&gt; consists of additional services and benefits around the core and actual product.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;/strong&gt; Verified By visa, by the way our&lt;strong&gt; online Self service&lt;/strong&gt; (&lt;strong&gt;using Portals for consistent look and feel&lt;/strong&gt;).&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Now, getting back to our original dicussion around the gentleman's statement, the augmentation of the product is for a better customer experience, in our case, the Portal (for what ever it is used for) is the augmented product. Hence, atleast with my marketing concepts, brading is not all about colors and pictures, it could be about:&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;a name, a term, a sign, symbol or desing, or a combination of these intended to identify the products or services of one seller or group of sellers and to differentiate them from those of competitors.&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;- &lt;strong&gt;Peter Kotler.&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;And finally before wrapping up, "Through brand a company communicates its strategy, its values, its offerings and its uniqueness.. both internally and externally.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Hence, branding is higher level beast in the product feature/benefits box and is difficult to create and maintain in the minds of consumers. Customer experience should help improve the brand value and the brading in general.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-76780739782849689?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/76780739782849689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/76780739782849689'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2008/03/brading-website.html' title='Brading a website'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-114429277917176400</id><published>2006-04-06T13:31:00.000+10:30</published><updated>2006-04-06T13:36:19.240+10:30</updated><title type='text'>Injecting state into child work items</title><content type='html'>Have you ever wondered how to inject state from a parent work item to child. Here is a good way of doing it. &lt;a href="http://staff.southworks.net/blogs/mariano/archive/2006/02/17/210.aspx"&gt;Mariano&lt;/a&gt; has a blog post.&lt;br /&gt;&lt;br /&gt;I thought it is good because you need not worry about rewriting the same code over and again and it overcomes the issue with state bag of the child work item not being initialized.&lt;br /&gt;&lt;br /&gt;Good one Mariano.&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-114429277917176400?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/114429277917176400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/114429277917176400'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2006/04/injecting-state-into-child-work-items.html' title='Injecting state into child work items'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-114345306879079567</id><published>2006-03-27T20:23:00.000+11:00</published><updated>2006-03-27T20:51:08.813+11:00</updated><title type='text'>Unit testing CAB applications</title><content type='html'>Recently I have investigated and started using the Microsoft Composite Appliction Block. Found it interesting in the first place. However, there are quite a few things missing from it. First and foremost the help with the CAB is not good enough. Not to miss, there has been some commitment from the GotDotNet project portal. Still a lot needs to be done. It took me a while to figure out how to Unit test these modules. More about simple things like using MDI Workspaces, Window Workspaces etc. It really tough if these things are not documented. &lt;br /&gt;&lt;br /&gt;I thought of posting a bit of code to develop Unit testable work item. Let us call this UnitTestWorkItem. The following class can act as a root work item to which you can add other work items, views, services etc. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class UnitTestWorkItem : WorkItem&lt;br /&gt; {&lt;br /&gt;  public UnitTestWorkItem()&lt;br /&gt;  {&lt;br /&gt;   InitializeRootWorkItem(CreateBuilder());&lt;br /&gt;&lt;br /&gt;   Services.AddNew&lt;CommandAdapterMapService, ICommandAdapterMapService&gt;();&lt;br /&gt;   Services.AddNew&lt;ControlActivationService, IControlActivationService&gt;();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public Builder Builder&lt;br /&gt;  {&lt;br /&gt;   get { return InnerBuilder; }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public IReadWriteLocator Locator&lt;br /&gt;  {&lt;br /&gt;   get { return InnerLocator; }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  private Builder CreateBuilder()&lt;br /&gt;  {&lt;br /&gt;   Builder builder = new Builder();&lt;br /&gt;&lt;br /&gt;   builder.Strategies.AddNew&lt;WinFormServiceStrategy&gt;(BuilderStage.Initialization);&lt;br /&gt;   builder.Strategies.AddNew&lt;EventBrokerStrategy&gt;(BuilderStage.Initialization);&lt;br /&gt;   builder.Strategies.AddNew&lt;CommandStrategy&gt;(BuilderStage.Initialization);&lt;br /&gt;   builder.Strategies.AddNew&lt;ControlActivationStrategy&gt;(BuilderStage.Initialization);&lt;br /&gt;   builder.Strategies.AddNew&lt;ControlSmartPartStrategy&gt;(BuilderStage.Initialization);&lt;br /&gt;   builder.Strategies.AddNew&lt;ObjectBuiltNotificationStrategy&gt;(BuilderStage.PostInitialization);&lt;br /&gt;&lt;br /&gt;   builder.Policies.SetDefault&lt;ObjectBuiltNotificationPolicy&gt;(new ObjectBuiltNotificationPolicy());&lt;br /&gt;   builder.Policies.SetDefault&lt;ISingletonPolicy&gt;(new SingletonPolicy(true));&lt;br /&gt;&lt;br /&gt;   return builder;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The above code will create the necesasry infrastructure to create the foundation to unit test your CAB applications.  Here is a peice of sample code that instatiate a WorkItem and then gets it ready to test.&lt;br /&gt;&lt;br /&gt;private CreateBankTellerView target; &lt;br /&gt;private UnitTestWorkItem rootWorkItem;&lt;br /&gt;private TellerWorkItem WiTeller;&lt;br /&gt;&lt;br /&gt;rootWorkItem = new UnitTestWorkItem ();&lt;br /&gt;WiTeller= rootWorkItem.WorkItems.AddNew&lt;TellerWorkItem&gt;();&lt;br /&gt;WiTeller.Services.AddNew&lt;TellerService&gt;();&lt;br /&gt;target = WiCust.SmartParts.AddNew&lt;CreateBankTellerView&gt;();&lt;br /&gt;&lt;br /&gt;The above code create the views, services and work items that need testing. However, to pass values to it and invoke some events you need to do a lot more. But here is the trick, I have used the VS.NET 2005 testing project that generate the accessor class for you. And that makes it easy to test the views.&lt;br /&gt;&lt;br /&gt;CreateBankTellerViewAccessor accessor = new CreateBankTellerView(target);&lt;br /&gt;accessor.txtFirstName = "John";&lt;br /&gt;&lt;br /&gt;accessor.btnSave_Click(null,null);&lt;br /&gt;&lt;br /&gt;In the above code line is firing the button click event. This is a good starting point to unit test CAB apps. &lt;br /&gt;&lt;br /&gt;See you untill my next post. You can find similar code from the GotDotNet project portal. The code above has been adapted from the same site.&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-114345306879079567?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/114345306879079567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/114345306879079567'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2006/03/unit-testing-cab-applications.html' title='Unit testing CAB applications'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-114186057329397606</id><published>2006-03-09T10:28:00.000+11:00</published><updated>2006-03-09T10:29:33.303+11:00</updated><title type='text'>Breaking through the inactivity</title><content type='html'>After two months of inactive blogging, here I am back. Uni study and work kept me away.&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-114186057329397606?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/114186057329397606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/114186057329397606'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2006/03/breaking-through-inactivity.html' title='Breaking through the inactivity'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-113529413056406062</id><published>2005-12-23T10:22:00.000+11:00</published><updated>2005-12-23T10:28:50.576+11:00</updated><title type='text'>Cider's intellesense</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;Merry Christmas!!!&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;It's christmas time and I thought of using this spare time to try out the new WPF designer in VS2005. Well immediately I encountered a small glitch. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;br&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Once you place a control on a Panel or a Grid, VS2005 doesn't update the intellesense. Then I thought it is because you do not give a name to the control in XAML. Even giving it a name didn't work.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;br&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Compile the code and then check it. Bingo!!! You can see the controls listed in the intellesense.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;br&gt;&lt;span style="font-size:85%;"&gt;Once again have a merry Christmas!!!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-113529413056406062?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/113529413056406062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/113529413056406062'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/12/ciders-intellesense.html' title='Cider&apos;s intellesense'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-113504867809051707</id><published>2005-12-20T14:12:00.000+11:00</published><updated>2005-12-21T09:48:04.746+11:00</updated><title type='text'>ASP.NET templates</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;Most guys would have looked into themes in ASP.NET 2.0. Microsoft has released a set of templates for ASP.NET 2.0 for those who need to get a head around master pages and xhtml standards-compliant templates&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/asp.net/reference/design/templates"&gt;&lt;span style="font-size:85%;"&gt;http://msdn.microsoft.com/asp.net/reference/design/templates&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;/default.aspx&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;I liked them because they are straight out of the box, and can use easily.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-113504867809051707?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/113504867809051707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/113504867809051707'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/12/aspnet-templates.html' title='ASP.NET templates'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-113504833040676629</id><published>2005-12-20T14:08:00.000+11:00</published><updated>2005-12-20T14:12:10.416+11:00</updated><title type='text'>Play music with .NET this holiday season</title><content type='html'>Yes, &lt;a href="http://pluralsight.com/blogs/dbox/"&gt;Don Box&lt;/a&gt; shows how to play piano with .NET. Want to check it out, &lt;a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20051215winfxca/manifest.xml"&gt;click here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy the piano.&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-113504833040676629?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/113504833040676629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/113504833040676629'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/12/play-music-with-net-this-holiday.html' title='Play music with .NET this holiday season'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-113348283111536302</id><published>2005-12-02T11:15:00.000+11:00</published><updated>2005-12-02T11:20:31.126+11:00</updated><title type='text'>DataGrid Pagination in Webparts</title><content type='html'>Today I had an issue with a data grid on a web part not paginating. After a bit of merry-go-around the web I could figure out how to do it.&lt;br /&gt;&lt;br /&gt;The following is the sequence of steps.&lt;br /&gt;&lt;br /&gt;Step 1: Set up your CreateChildControls&lt;br /&gt;&lt;br /&gt;protected override void CreateChildControls()&lt;br /&gt;{&lt;br /&gt;dGrid = new DataGrid();&lt;br /&gt;// write code to set up the data grid&lt;br /&gt;// with your columns etc.&lt;br /&gt;&lt;br /&gt;dGrid .PageIndexChanged +=new DataGridPageChangedEventHandler(dGrid _PageIndexChanged);&lt;br /&gt;&lt;br /&gt;base.Controls.Add(dGrid);&lt;br /&gt;base.CreateChildControls();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Step 2: Create the PageIndexChanged Event handler&lt;br /&gt;private void dGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e )&lt;br /&gt;{&lt;br /&gt;dGrid .CurrentPageIndex = e.NewPageIndex;&lt;br /&gt;dGrid.DataSource = dtSource;&lt;br /&gt;dGrid.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Step 3: Render the DataGrid&lt;br /&gt;&lt;br /&gt;protected override void RenderWebPart(HtmlTextWriter output)&lt;br /&gt;{&lt;br /&gt;output.Write(SPEncode.HtmlEncode(Text));&lt;br /&gt;dGrid.RenderControl(output);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You should be in business. Happy coding guys.&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-113348283111536302?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/113348283111536302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14294547&amp;postID=113348283111536302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/113348283111536302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/113348283111536302'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/12/datagrid-pagination-in-webparts.html' title='DataGrid Pagination in Webparts'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-112917601716622441</id><published>2005-10-13T14:15:00.000+10:30</published><updated>2005-10-13T14:30:17.173+10:30</updated><title type='text'>VS 2005 Web project build</title><content type='html'>Did you guys ever get a check out error like this one. &lt;a href="http://photos1.blogger.com/blogger/3938/1289/1600/builderr.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3938/1289/320/builderr.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You get this error if your code is under source control. VS2005 checks in all folders that are on the files system (with in the project) to source safe. Then it is Source safe that tags it read-only and needing to check out  on the next build you do.&lt;br /&gt;&lt;br /&gt;The work around is simple, all you need to do is hide the bin folder using Windows explorer. Next time you open the project in VS2005, you will not see the bin folder and VS2005 will not checkin that folder to source safe. Wait, that is not all, however, you will see the bin folder in the Solution Explorer on the next rebuild. Don't panic, VS2005 will not check in the files again. So enjoy web projects now. For more info on this refer to:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/VS05WebFiles.asp"&gt;http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/VS05WebFiles.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-112917601716622441?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/112917601716622441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14294547&amp;postID=112917601716622441' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112917601716622441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112917601716622441'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/10/vs-2005-web-project-build.html' title='VS 2005 Web project build'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-112911369208923077</id><published>2005-10-12T20:43:00.000+10:30</published><updated>2005-12-21T09:38:56.566+11:00</updated><title type='text'>ObjectDataSource</title><content type='html'>&lt;div align="justify"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;After blogging yesterday, I couldn't rest until &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;I found that Microsoft has provided a property&lt;br /&gt;on the object data source to address this situation.&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;You need to set the DataObjectTypeName to call an Update &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;or Insert &lt;/span&gt;&lt;span style="font-size:85%;"&gt;method &lt;/span&gt;&lt;span style="font-size:85%;"&gt;that accepts an object parameter.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/span&gt;&lt;?xml:namespace prefix = asp /&gt;&lt;asp:objectdatasource id="ObjectDataSource1" runat="server" onupdated="ObjectDataSource1_Updated"&gt;&lt;span style="font-size:85%;"&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;br /&gt; &lt;/p&gt;&lt;asp:objectdatasource id="ObjectDataSource1" runat="server"&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;OnUpdated="ObjectDataSource1_Updated" &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;DataObjectTypeName="Author" &lt;/strong&gt;SelectMethod="GetAuthor"&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;TypeName="Author" UpdateMethod="Save" &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;OnUpdating="ObjectDataSource1_Updating"&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;InsertMethod="Save" &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;OnSelecting="ObjectDataSource1_Selecting"&gt;&lt;br /&gt;&lt;selectparameters&gt;&lt;br /&gt;&lt;/span&gt;&lt;asp:parameter name="Name" type="String"&gt;&lt;br /&gt;&lt;/selectparameters&gt;&lt;br /&gt;&lt;/asp:objectdatasource&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/asp:parameter&gt;&lt;p align="justify"&gt;&lt;br /&gt; &lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;/selectparameters&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:85%;"&gt;Happy Coding Guys.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;br /&gt; &lt;/p&gt;&lt;asp:parameter name="Name" type="String"&gt;&lt;/asp:parameter&gt;&lt;/asp:objectdatasource&gt;&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-112911369208923077?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/112911369208923077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14294547&amp;postID=112911369208923077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112911369208923077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112911369208923077'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/10/objectdatasource_12.html' title='ObjectDataSource'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-112900151811857884</id><published>2005-10-11T10:37:00.000+10:30</published><updated>2005-10-11T14:01:58.136+10:30</updated><title type='text'>ObjectDataSource</title><content type='html'>ObjectDataSource is a cool feature of ASP.NET 2.0. It allows the abstraction of of the data access tier in a multi-tier approach. Data-bound controls can connect to the objectdatasource just like any other datasource. As the object data source is meant to hide the data layer from the presentation tier, you will not find CommandType properties such as the DeleteCommandType or the SelectCommandType. This helps in true abstraction of the data layer from the presentation layer.&lt;br /&gt;&lt;br /&gt;Having said all good about ObjectDataSource, it is time disclose a fact. The ObjectDataSource cannot use methods that accept an "Object" as a parameter to Update, Delete or Insert. See the picture below &lt;a href="http://photos1.blogger.com/blogger/3938/1289/1600/a.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3938/1289/320/a.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the picture, you can see that the Update method is configured to UpdatePerson(Person person). However the runtime will error out with the following message.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"&lt;span style="color:#ff0000;"&gt;ObjectDataSource 'PersonDataSource' could not find a non-generic method 'UpdatePerson' that has parameters: FirstName, LastName.&lt;/span&gt; "&lt;br /&gt;&lt;br /&gt;The cheat to this is to write a wrapper method around the UpdatePerson to accept individual attributes and use it. See code snippet below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public void UpdatePerson(string FirstName,string LastName)&lt;br /&gt;{&lt;br /&gt;       Person p = PersonDAL.GetByName("John");&lt;br /&gt;       p.FirstName = FirstName;&lt;br /&gt;       p.LastName = LastName;&lt;br /&gt;       p.UpdatePerson(p);&lt;br /&gt;      &lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-112900151811857884?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/112900151811857884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14294547&amp;postID=112900151811857884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112900151811857884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112900151811857884'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/10/objectdatasource.html' title='ObjectDataSource'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-112355219267453374</id><published>2005-08-09T12:14:00.000+10:30</published><updated>2005-08-09T12:19:52.680+10:30</updated><title type='text'>Visual Studio AddIn error</title><content type='html'>Good on the Visual Studio IDE extensibility projects. However one will encounter the following error trying to compile a new Add In project.&lt;br /&gt;&lt;br /&gt;Error 1 The best overloaded method match for 'EnvDTE80.Commands2.AddNamedCommand2(EnvDTE.AddIn, string, string, string, bool, object, ref System.Array, int, int, EnvDTE80.vsCommandControlType)' has some invalid arguments c:\RND\MyAddin1\MyAddin1\Connect.cs 40 24 MyAddin1&lt;br /&gt;&lt;br /&gt;Error 2 Argument '7': cannot convert from 'ref object[]' to 'ref System.Array' c:\RND\MyAddin1\MyAddin1\Connect.cs 40 140 MyAddin1&lt;br /&gt;&lt;br /&gt;Microsft is aware and has two &lt;a href="http://lab.msdn.microsoft.com/ProductFeedback/ViewWorkaround.aspx?FeedbackID=FDBK23060"&gt;work arounds&lt;/a&gt; for this. I took the second one to make it easier and await a fix from Microsoft.&lt;br /&gt;&lt;br /&gt;Happy coding guys.&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-112355219267453374?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/112355219267453374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14294547&amp;postID=112355219267453374' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112355219267453374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112355219267453374'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/08/visual-studio-addin-error.html' title='Visual Studio AddIn error'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14294547.post-112105493639231730</id><published>2005-07-11T14:29:00.000+10:30</published><updated>2005-07-11T14:38:56.393+10:30</updated><title type='text'>Indigo</title><content type='html'>It is nice to see how Indigo is coming out at the moment. Looks very promising. Hhhmm its time I need to get my hands on to Indigo.&lt;div class="blogger-post-footer"&gt;Awake, Arise and Stop Not Till The Goal Is Reached&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14294547-112105493639231730?l=kanthu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kanthu.blogspot.com/feeds/112105493639231730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14294547&amp;postID=112105493639231730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112105493639231730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14294547/posts/default/112105493639231730'/><link rel='alternate' type='text/html' href='http://kanthu.blogspot.com/2005/07/indigo_112105493639231730.html' title='Indigo'/><author><name>Lakshmikanth Upadrasta</name><uri>http://www.blogger.com/profile/12462953818925065260</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
