What I actually do in Microsoft Consulting Services? Check out here.
Have no ideas? May be you can read this.
14 February, 2010
05 February, 2010
HTML 5
Steve Jobs said,"Apple does not support Flash because it is so buggy, he says. Whenever a Mac crashes more often than not it’s because of Flash. No one will be using Flash, he says. The world is moving to HTML5." (Read more)
So what HTML 5 is all about?
The definition from Wikipedia: "HTML5 is the proposed next standard for HTML 4.01, XHTML 1.0 and DOM Level 2 HTML. It aims to reduce the need for proprietary plug-in-based rich internet application (RIA) technologies such as Adobe Flash, Microsoft Silverlight, and Sun JavaFX."
YouTube is working on this: http://www.youtube.com/html5
Hope to see more to come this year.
So what HTML 5 is all about?
The definition from Wikipedia: "HTML5 is the proposed next standard for HTML 4.01, XHTML 1.0 and DOM Level 2 HTML. It aims to reduce the need for proprietary plug-in-based rich internet application (RIA) technologies such as Adobe Flash, Microsoft Silverlight, and Sun JavaFX."
YouTube is working on this: http://www.youtube.com/html5
Hope to see more to come this year.
18 January, 2010
Semantic Search Engine
Back to the days in the university, semantic web was a computer science research area and now we can see some nice search applications out there: Powerset / hakia / deepdyve
Compare the results of searching"what is software design" in Powerset , hakia and Google
What is semantic search? Wikipedia says, "Semantic search is a process used to improve online searching by using data from semantic networks to disambiguate queries and web text in order to generate more relevant results. (more)"
Here's a very good summary from Atos Consulting:
Concept
* The Semantic Search Engine or Third-Generation Search Engine is a search engine in which Semantic technologies and / or Natural Language Processing (NLP) techniques are applied. There are some investigation groups and companies―such as Swoogle, PowerSet (acquired by Microsoft in 2008), and hakia ― that are making a big effort in this area.
* Basically, the objective of these products is to take advantage of the existence of structural data (RDF, microformats, and OWL) on the Web in order to process the information included and offer to the end user an intelligent response. Essentially, the Semantic Search Engine can understand the question and is able to provide an exact response, rather than just returning thousands of pages where all words included into the search field are found.
* This challenge is so complex that most current providers cannot properly be considered as true Semantic Search because results are not oriented to the casual end user, but as a tool for specialists.
* Another related concept is Natural Language Search in which one can ask a question using complete sentences phrased in everyday language (such as ‘where can I find information about William Shakespeare?’) as opposed to formulating a search statement (such as ‘su:Shakespeare, William’).
* There is a big dependence between this technology and Semantic annotation. Until all Webmasters, blog users, and wiki writers frequently use ontology annotation, Semantic Search will be limited to certain Webpages or content provided by Semantic experts.
* Another important dependence to consider is with the language itself. Some languages (such as English) are more suitable than others in making the adoption process less complex.
Application and Benefits
* Different applications of Semantic Search are: Vertical Semantic Search and General-purpose Semantic Search. General-purpose actual search engines work using statistical ranking methods, and the results are reasonably acceptable, although the end user’s time may be wasted by search results that don’t distinguish between credible contents and misleading information. As hakia points out, a popular Website may not always be credible and a credible Website may not always be popular.
* Another application would be the ability to search precisely in non-textual content, such as annotated photograph and audio.
* Related with Vertical Semantic Search, this technology is being adopted where the meaning of sentences, the combination of content, and context are crucial to retrieve precise information, such as in law, finance, science, and libraries.
Compare the results of searching"what is software design" in Powerset , hakia and Google
What is semantic search? Wikipedia says, "Semantic search is a process used to improve online searching by using data from semantic networks to disambiguate queries and web text in order to generate more relevant results. (more)"
Here's a very good summary from Atos Consulting:
Concept
* The Semantic Search Engine or Third-Generation Search Engine is a search engine in which Semantic technologies and / or Natural Language Processing (NLP) techniques are applied. There are some investigation groups and companies―such as Swoogle, PowerSet (acquired by Microsoft in 2008), and hakia ― that are making a big effort in this area.
* Basically, the objective of these products is to take advantage of the existence of structural data (RDF, microformats, and OWL) on the Web in order to process the information included and offer to the end user an intelligent response. Essentially, the Semantic Search Engine can understand the question and is able to provide an exact response, rather than just returning thousands of pages where all words included into the search field are found.
* This challenge is so complex that most current providers cannot properly be considered as true Semantic Search because results are not oriented to the casual end user, but as a tool for specialists.
* Another related concept is Natural Language Search in which one can ask a question using complete sentences phrased in everyday language (such as ‘where can I find information about William Shakespeare?’) as opposed to formulating a search statement (such as ‘su:Shakespeare, William’).
* There is a big dependence between this technology and Semantic annotation. Until all Webmasters, blog users, and wiki writers frequently use ontology annotation, Semantic Search will be limited to certain Webpages or content provided by Semantic experts.
* Another important dependence to consider is with the language itself. Some languages (such as English) are more suitable than others in making the adoption process less complex.
Application and Benefits
* Different applications of Semantic Search are: Vertical Semantic Search and General-purpose Semantic Search. General-purpose actual search engines work using statistical ranking methods, and the results are reasonably acceptable, although the end user’s time may be wasted by search results that don’t distinguish between credible contents and misleading information. As hakia points out, a popular Website may not always be credible and a credible Website may not always be popular.
* Another application would be the ability to search precisely in non-textual content, such as annotated photograph and audio.
* Related with Vertical Semantic Search, this technology is being adopted where the meaning of sentences, the combination of content, and context are crucial to retrieve precise information, such as in law, finance, science, and libraries.
SharePoint 2010 updated services infrastructure
In Microsoft® SharePoint® Server 2010, services are no longer contained within a Shared Services Provider (SSP). Instead, the infrastructure for hosting services moves into SharePoint® Foundation 2010 and the configuration of service offerings is much more flexible. Individual services can be configured independently and third-party companies can add services to the platform.
More granular configuration of services
· You can deploy only the services that are needed to a farm. Services that are deployed are called service applications.
· Web applications can be configured to use only the services that are needed, rather than the entire set of services that are deployed.
· You can deploy multiple instances of the same service in a farm and assign unique names to the resulting service applications.
· You can share services across multiple Web applications within the same farm.
Sharing services across farms
· Some services can be shared across server farms. Other services can be shared only within a single server farm. Services that support sharing across farms can be run in a central farm and consumed from regional locations.
· Each Web application can be configured to use services from different farms. For example, you can share the User Profile Service across Web applications in several server farms while using some services, such as the Business Data Connectivity, locally.
· In large environments, computing-intensive services can be run in a central farm to minimize administration overhead and to scale out easily and efficiently as requirements grow.
Logical architecture
· All service applications in a farm are deployed to the same IIS Web site. (See below diagram)
· Service applications can be deployed to different application pools to achieve process isolation. However, farm performance is optimized if services are contained within one application pool.
· To achieve physical isolation of services, create separate instances of service applications and place them in different application pools
Service groups
· By default, all service applications are included in the default group, unless you change this setting for a service application when it is created. You can add and remove service applications from the default group at any time. (See above diagram)
· When you create a Web application, you can select the default group or you can create a custom group of services. You create a custom group of services by selecting only the service applications that you want the Web application to use.
· Custom groups are not reusable across multiple Web applications. Each time you select "custom" when creating a Web application, you are selecting services only for the Web application you are creating.
Connecting service applications to Web applications
· When you create a service application, a connection for the service application is created at the same time. A connection is a virtual entity that connects Web applications to service applications.
· In Windows PowerShell these connections are called proxies. The term "proxy" also appears at the end of the type description for connections on the Manage Service Applications page in Central Administration.
· Connections for services in the local farm are not created by the administrator, but these appear along with the list of service applications in Central Administration.
· Some connections might include settings that can be modified. For example, if a Web application is connected to multiple instances of the Managed Metadata service, you must indicate which of the connections is connected to the primary service application which hosts the corporate taxonomy.
A List of Service in SharePoint 2010
Sample of Single farm, single service group
Manage Service Applications page
More granular configuration of services
· You can deploy only the services that are needed to a farm. Services that are deployed are called service applications.
· Web applications can be configured to use only the services that are needed, rather than the entire set of services that are deployed.
· You can share services across multiple Web applications within the same farm.
Sharing services across farms
· Some services can be shared across server farms. Other services can be shared only within a single server farm. Services that support sharing across farms can be run in a central farm and consumed from regional locations.
· Each Web application can be configured to use services from different farms. For example, you can share the User Profile Service across Web applications in several server farms while using some services, such as the Business Data Connectivity, locally.
· In large environments, computing-intensive services can be run in a central farm to minimize administration overhead and to scale out easily and efficiently as requirements grow.
Logical architecture
· All service applications in a farm are deployed to the same IIS Web site. (See below diagram)
· Service applications can be deployed to different application pools to achieve process isolation. However, farm performance is optimized if services are contained within one application pool.
· To achieve physical isolation of services, create separate instances of service applications and place them in different application pools
Service groups
· By default, all service applications are included in the default group, unless you change this setting for a service application when it is created. You can add and remove service applications from the default group at any time. (See above diagram)
· When you create a Web application, you can select the default group or you can create a custom group of services. You create a custom group of services by selecting only the service applications that you want the Web application to use.
· Custom groups are not reusable across multiple Web applications. Each time you select "custom" when creating a Web application, you are selecting services only for the Web application you are creating.
Connecting service applications to Web applications
· When you create a service application, a connection for the service application is created at the same time. A connection is a virtual entity that connects Web applications to service applications.
· In Windows PowerShell these connections are called proxies. The term "proxy" also appears at the end of the type description for connections on the Manage Service Applications page in Central Administration.
· Connections for services in the local farm are not created by the administrator, but these appear along with the list of service applications in Central Administration.
· Some connections might include settings that can be modified. For example, if a Web application is connected to multiple instances of the Managed Metadata service, you must indicate which of the connections is connected to the primary service application which hosts the corporate taxonomy.
A List of Service in SharePoint 2010
Sample of Single farm, single service group
Manage Service Applications page
15 January, 2010
What is Windows Communication Foundation?
I've been designing .NET applications using ASP.NET Web Services since 2004. Web Services is the great tool for building service-oriented architecture (SOA) systems and connecting applications in different environments. But, it does not solve some other important problems and you need to use another tools e.g. .NET Remoting, Enterprise Services, Web Services Enhancements (WSE), System.Messaging, System.Net.
With WCF, the perfect solution is at hand:
Here’s how WCF addresses common technical requirements:
- Because WCF can communicate using Web services, interoperability with other platforms that also support SOAP, such as Java EE application servers, is straightforward.
- To allow optimal performance when both parties in a communication are built on WCF, the wire encoding used in this case is an optimized binary version of SOAP. Messages still conform to the data structure of a SOAP message, referred to as its Infoset, but their encoding uses a binary representation of that Infoset rather than the standard angle-brackets-and-text format of XML.
- Managing object lifetimes, defining distributed transactions, and other aspects of Enterprise Services are now provided by WCF. They are available to any WCF-based application, which means that third party applications can use them with any of the other applications with which it communicates.
- Because it supports a large set of the WS-* specifications, WCF helps provide reliability, security, and transactions when communicating with any platform that also supports these specifications.
- WCF’s option for queued messaging, built on MSMQ, allows applications to use persistent queuing without needing to use another set of application programming interfaces.
- The version of WCF in the .NET Framework 3.5 has built-in support for creating RESTful clients and services.
Read more here: Introducing Windows Communication Foundation
Or MSDN WCF
With WCF, the perfect solution is at hand:
Here’s how WCF addresses common technical requirements:
- Because WCF can communicate using Web services, interoperability with other platforms that also support SOAP, such as Java EE application servers, is straightforward.
- To allow optimal performance when both parties in a communication are built on WCF, the wire encoding used in this case is an optimized binary version of SOAP. Messages still conform to the data structure of a SOAP message, referred to as its Infoset, but their encoding uses a binary representation of that Infoset rather than the standard angle-brackets-and-text format of XML.
- Managing object lifetimes, defining distributed transactions, and other aspects of Enterprise Services are now provided by WCF. They are available to any WCF-based application, which means that third party applications can use them with any of the other applications with which it communicates.
- Because it supports a large set of the WS-* specifications, WCF helps provide reliability, security, and transactions when communicating with any platform that also supports these specifications.
- WCF’s option for queued messaging, built on MSMQ, allows applications to use persistent queuing without needing to use another set of application programming interfaces.
- The version of WCF in the .NET Framework 3.5 has built-in support for creating RESTful clients and services.
Read more here: Introducing Windows Communication Foundation
Or MSDN WCF
ADO.NET Entity Framework (Object/Relational Mapping)
You may heard of Hibernate if people are talking about ORM. What ORM tools can Microsoft deliver? Here you go:
The ADO.NET Entity Framework is an Object/Relational Mapping (ORM) framework that enables developers to work with relational data as domain-specific objects, eliminating the need for most of the data access plumbing code that developers usually need to write. Using the Entity Framework, developers issue queries using LINQ, then retrieve and manipulate data as strongly typed objects. The Entity Framework’s ORM implementation provides services like change tracking, identity resolution, lazy loading, and query translation so that developers can focus on the application-specific business logic rather than the data access fundamentals.
The Entity Framework uses the Entity Data Model (EDM) to describe the application-specific object or “conceptual” model against which the developer programs. The EDM builds on the widely known Entity Relationship model (introduced by Dr. Peter Chen) to raise the abstraction level above logical database schemas. The EDM was developed with the primary goal of becoming the common data model across a suite of developer and server technologies from Microsoft.
Extract from ADO.NET Entity Framework At-a-Glance
Read more on Beginner's Guide to the ADO.NET Entity Framework
The ADO.NET Entity Framework is an Object/Relational Mapping (ORM) framework that enables developers to work with relational data as domain-specific objects, eliminating the need for most of the data access plumbing code that developers usually need to write. Using the Entity Framework, developers issue queries using LINQ, then retrieve and manipulate data as strongly typed objects. The Entity Framework’s ORM implementation provides services like change tracking, identity resolution, lazy loading, and query translation so that developers can focus on the application-specific business logic rather than the data access fundamentals.
The Entity Framework uses the Entity Data Model (EDM) to describe the application-specific object or “conceptual” model against which the developer programs. The EDM builds on the widely known Entity Relationship model (introduced by Dr. Peter Chen) to raise the abstraction level above logical database schemas. The EDM was developed with the primary goal of becoming the common data model across a suite of developer and server technologies from Microsoft.
Extract from ADO.NET Entity Framework At-a-Glance
Read more on Beginner's Guide to the ADO.NET Entity Framework
14 January, 2010
Are you really know how to program in .NET?
Have been interviewing many .NET developers/programmers/analysts recently, to be honest, many of them are below average. I've consolidated some essential .NET development materials and resources on the web for those who keen on learning software development:
Overview of the .NET Framework : Entry ticket please. Framework architecture, Common Language Runtime, Common Type System, Class Library, Guidelines and Best Practices ...
C# Programming Guide & C# Language Specification 3.0 : Arrays, Strings, seems easy? Not quite. Generics, LINQ Query Expressions, Lambda, Iterators, Collection, Threading, Reflection ...
Design Guidelines for Class Library Developers : Good codes, bad codes. That makes a difference.
ASP.NET and Visual Web Developer : How to build an advance ASP.NET web site. What's more? Web Services, AJAX, Model View Controller (MVC)
Improving .NET Application Performance and Scalability : The need of speed.
Microsoft Data Development Technologies At-a-Glance : At the end of the day, data is what you really concern. So, how to access data is critical.
Microsoft Application Architecture Guide : For developers or solution architects to design and build effective, high quality applications. It provides guidance for using architecture principles, design principles, and patterns that are tried and trusted.
Overview of the .NET Framework : Entry ticket please. Framework architecture, Common Language Runtime, Common Type System, Class Library, Guidelines and Best Practices ...
C# Programming Guide & C# Language Specification 3.0 : Arrays, Strings, seems easy? Not quite. Generics, LINQ Query Expressions, Lambda, Iterators, Collection, Threading, Reflection ...
Design Guidelines for Class Library Developers : Good codes, bad codes. That makes a difference.
ASP.NET and Visual Web Developer : How to build an advance ASP.NET web site. What's more? Web Services, AJAX, Model View Controller (MVC)
Improving .NET Application Performance and Scalability : The need of speed.
Microsoft Data Development Technologies At-a-Glance : At the end of the day, data is what you really concern. So, how to access data is critical.
Microsoft Application Architecture Guide : For developers or solution architects to design and build effective, high quality applications. It provides guidance for using architecture principles, design principles, and patterns that are tried and trusted.
How to measure your web site?
Measuring web site traffic and marketing effectiveness is hard and often ignore during software development. Some web analytics software provide extensible solution with a consolidated view of visitor interactions. Omniture and Google Analytics are the enterprise-class web analytics solution that gives you rich insights into your website.
Quote: "Free product offerings are tempting, and a good learning tool, but strategic initiatives with an opportunity for large gains in site yield should choose commercial products." "Narrow a shortlist of Web analytics vendor choices to those that answer the big question, which is software as a service (SaaS) or on premises, then concentrate on price, support and "ecosystem" partners."
Other players: Coremetrics, Unica, Webtrends
Read more:
The Interactive Marketing Metrics You Need - Forrester Research
Key Challenges in Web Analytics, 2009 (PDF)
Quote: "Free product offerings are tempting, and a good learning tool, but strategic initiatives with an opportunity for large gains in site yield should choose commercial products." "Narrow a shortlist of Web analytics vendor choices to those that answer the big question, which is software as a service (SaaS) or on premises, then concentrate on price, support and "ecosystem" partners."
Other players: Coremetrics, Unica, Webtrends
Read more:
The Interactive Marketing Metrics You Need - Forrester Research
Key Challenges in Web Analytics, 2009 (PDF)
12 January, 2010
Flash vs Silverlight
Still enterprises are still prefer Flash than Silverlight at the moment. But Silverlight has been greatly improved in these few years. Have a look:
Flash vs Silverlight Gallery
(you will be more interested in this comparison)
Silverlight Showcase
Silverlike
Flash vs Silverlight Gallery
(you will be more interested in this comparison)
Silverlight Showcase
Silverlike
Subscribe to:
Posts (Atom)