BizTalk Server-distinguished field

The distinguished field is used to expose the value of a node of a message instance to BizTalk Server system. However, if there is a record that has a parent node that has multiple instances, then that record won’t be able to be highlighted as distinguished. An error message of “The node can occur potentially multiple times in the instance. Only nodes which are guaranteed to be unique can be promoted.“ will appear.

This constraint was purposely designed to remove any ambiguity in accessing the data. However, despite that, should the developer still desire to use the node, then the record’s XPath query can still be used. The article Using XPaths in Message Assignments describes how XPath queries can be leveraged in BizTalk Server.

Technorati Tags: BizTalk Server,Distinguished,fields,XPath,queries

Exploring the new Azure property pages in Visual Studio

Great news for the Azure community.  The Windows Azure SDK and Windows Azure Tools for Microsoft Visual Studio (November 2010) have been released!  This release contains a lot of new features and most of them were announced at PDC.

The release can be downloaded here.

The overview of new features:

  • Virtual Machine (VM) Role (Beta):Allows you to create a custom VHD image using Windows Server 2008 R2 and host it in the cloud.
  • Remote Desktop Access: Enables connecting to individual service instances using a Remote Desktop client.
  • Full IIS Support in a Web role: Enables hosting Windows Azure web roles in a IIS hosting environment.
  • Elevated Privileges: Enables performing tasks with elevated privileges within a service instance.
  • Virtual Network (CTP): Enables support for Windows Azure Connect, which provides IP-level connectivity between on-premises and Windows Azure resources.
  • Diagnostics: Enhancements to Windows Azure Diagnostics enable collection of diagnostics data in more error conditions.
  • Networking Enhancements: Enables roles to restrict inter-role traffic, fixed ports on InputEndpoints.
  • Performance Improvement: Significant performance improvement local machine deployment.

This blog shows a first highlight of the new features that are part of the new SDK.

Extra small instance size

One of the nice features that many people have been asking for is the introduction of a new, lightweight, VM size: the Extra small instance.  They come with a small amount of memory (786 MB) and a low CPU speed (1Ghz), but at a very low cost (5ct / compute hour).  Configuring this is very easy, through the Role Configuration tab.

Remote desktop features

It is now possible to connect to an Azure instance, by using a Remote Desktop Connection.  The publishing wizard has been updated to enable this easily.  When deploying an application, you can provide a user name and a password for a remote desktop user, together with a certificate that has to be uploaded to the Azure portal, after exporting it with the private key.  (Export certificate – Browse to the portal – Your project – Installed Certificates – Manage – Upload certificate)

Public ports in endpoints

In previous SDK’s, it was unknown until at runtime at what actual port the role endpoints were hosted.  This can now be fixed and configured in the endpoints tab page on an Azure role:

Using Azure Connect

The Azure Connect feature is a very interesting feature that allows to set up a virtual network between Azure roles and the local network.  The property page of the Azure role allows to configure the specific token that is need for the Azure Connect feature.

Sam Vanhoutte, Codit

Windows Azure AppFabric Caching Service – soup to nuts primer

Introduction

One of the important reasons to move an application to the cloud is scalability (outside of other benefits that the cloud provides). When the application is deployed to the cloud, it is critical to maintain performance – the system needs to handle the increase in load and importantly maintain low latency response times. This is currently needed for most applications, be it a website selling books or a large social networking website or a complex map reduce algorithm. Distributed Caching as a technology enables applications to scale elastically while maintaining the application performance. Previously, Windows Server AppFabric enabled you to use distributed caching on-premises. Now, distributed caching is available on the cloud for Azure applications!

Here are some scenarios to leverage the Windows Azure AppFabric Caching Service:

  • ASP.NET application running as a web role needing a scalable session repository
  • Windows Azure hosted application frequently accessing reference data
  • Windows Azure hosted application aggregating objects from various services and data stores

Windows Azure AppFabric Caching is Microsoft’s distributed caching Platform As A
Service that can be easily configured and leveraged by your applications. It provides elastic scale, agile apps development, familiar programming model and best of all, managed & maintained by Microsoft.

At this time, this service is in labs release and can be used for development & test purposes only.

Configuring the Cache endpoint

  1. Go to https://portal.appfabriclabs.com/ and login using your Live ID
  2. Create a Project and then add a unique Service Namespace to it, for instance ‘TestAzureCache1’.

  3. When you click on the Cache endpoint, you should see the service URL and the authentication access token as follows:

At this point, you are done setting up the cache endpoint. Comparing this to installing and configuring the cache cluster on-premises shows the agility that cloud platforms truly provide.

Developing an application

  1. Download the Windows Azure AppFabric SDK to get started.
  2. Copy the app.config or web.config from the portal shown above and use it from your client application

  3. In your solution, add references to Microsoft.ApplicationServer.Caching.Client and Microsoft.ApplicationServer.Caching.Core from C:\Program Files\Windows Azure AppFabric SDK\V2.0\Assemblies\Cache
  4. Add the namespace to the beginning of your source code and develop the application in a similar manner to developing on-premises application

    using Microsoft.ApplicationServer.Caching;

* At this point, Azure AppFabric caching service does not have all the features that Windows Server AppFabric Cache supports. . For more information, see http://msdn.microsoft.com/en-us/library/gg278356.aspx.

  1. If you are developing the application via code instead of config, here are set of code for accessing the caching service. Only the statements highlighted need to be modified as per your configured endpoint.

private
void PrepareClient()

{

// Insert the Service URL from the labs portal


string hostName = “TestAzureCache1.cache.appfabriclabs.com”;


int cachePort = 22233;


List<DataCacheServerEndpoint> server = new
List<DataCacheServerEndpoint>();

server.Add(new
DataCacheServerEndpoint(hostName, cachePort));


DataCacheFactoryConfiguration config = new
DataCacheFactoryConfiguration();


//Insert the Authentication Token from the labs portal


string authenticationToken = <To Be Filled Out>;

config.SecurityProperties = new
DataCacheSecurity(authenticationToken);

config.Servers = server;

config.IsRouting = false;

config.RequestTimeout = new
TimeSpan(0, 0, 45);

config.ChannelOpenTimeout = new
TimeSpan(0, 0, 45);

config.MaxConnectionsToServer = 5;

config.TransportProperties = new
DataCacheTransportProperties() { MaxBufferSize = 100000 };

config.LocalCacheProperties = new
DataCacheLocalCacheProperties(10000, new
TimeSpan(0, 5, 0), DataCacheLocalCacheInvalidationPolicy.TimeoutBased);


DataCacheFactory myCacheFactory = new
DataCacheFactory(config);

myDefaultCache = myCacheFactory.GetCache(“default”);

}

Performance data

By now, you must be thinking if this is indeed this easy, what is the catch? 🙂 🙂 There is none. Here are some performance numbers that I ran, hopefully this makes you feel at ease.

This is an ASP.NET application running as a web role in Windows Azure accessing the cache service. The Object count parameter is used to instantiate an object which has an array of int[] and string[]. For example, when Object count is set to 100 the application will instantiate int[100] and string[100] with each array item is initialized to a string ~6 bytes. So approximately, the parameter ‘Object count’ * 10 is the pre-serialized object size. When storing the object in the caching service, the KEY is generated using RAND and then depending on the Operations dropdown, the workload is run for a set of iterations based on the ‘Iterations’ parameter. Finally, the average latency is computed. The web role is running in South Central US data center in the same DC where the caching service is also deployed in order to avoid any external network latencies. For all these tests, the local cache feature is disabled.

Operation

Object Size

(pre-serialized)

Avg Latency (ms)

PUT

~1KB

4.5 – 6.5

GET

~ 1 KB

4.8 – 5.1

PUT

~10 KB

7.4 – 8.9

GET

~10 KB

7.6 – 10.3

PUT

~100 KB

38.9 – 45.6

GET

~100 KB

4.6 – 7.3

Now that you have some cache in the cloud, get your apps going!

Authored by: Rama Ramani
Reviewed by: Christian Martinez, Jason Roth

WCF Test Client Assembly was not found. Reinstall the assembly or Visual Studio. The application cannot continue and will exit.

While testing a new service I was creating on my BizTalk development machine, I wanted to test the service using the WCF Test Client.
However, when I brought up the tool, I was shown all of the adapters that are created for the WCF LOB adapters: SAP/SQL/ and the two Oracle adapters.
You can comment out the adapters so you don’t see the red x’s in the the tool

By going into the machine.config in the (for me) C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config folder and commenting the endpoint from the client section

<client>
      <endpoint binding="sqlBinding" contract="IMetadataExchange" name="mssql"/>
      <metadata>...
      </metadata>
</client>

to

<client>
      <!--<endpoint binding="sqlBinding" contract="IMetadataExchange" name="mssql"/>-->
      <metadata>...
      </metadata>
</client>

I don’t see the the red x, however, if you don’t have the required assemblies (Oracle, SAP, etc) the tool will close automatically without giving you any results.

Lesson learned: only install the adapters that you will be connecting to, otherwise, the WCF Test Client Tool will close miserably.

Installing ESB setup powershell scripts about_signing

While installing the sample tutorials of the ESB toolkit, I came across this error:

ExceptionHanlding_Install.ps1 cannot be loaded because the execution of scripts is disabled on this system

So I, of course, set the execution policy to unrestricted (like everyone does anyway)

but still not love!!!!

The real issue is that it states that it is running under x86 Powershell (which is not the default PowerShell on a x64 system)

To fix this, you need to run the following command:

%windir%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe “Set-ExecutionPolicy Unrestricted”

				
					

San Diego Day of Azure II, Azure Discovery

The San Diego .NET User Group is really excited about doing our second all-day Azure event of the year. This one will be intense. You can blame me as I put the program together, but we are going from 8:00am to 5:00pm on Saturday Dec 4th. This is full-spectrum coverage, ranging from architecture and greenfield applications through to migration of existing apps. We will of course also have lots of great SWAG. Show up early, show up caffeinated (we’ll have food and coffee).

This is a FREE event, sponsored by Microsoft and the San Diego .NET User Group. Space is however limited, so register today here.

If you are not a paid member of the group, please consider doing joining. We are self-funded, and our membership dues get used to fund meetings and events like this. Without the support of the developer community, we couldn’t be doing this. We are a federally incorporated 501(c)3 non-profit organization, so your $50 dues are tax deductible.

Here’s the content and conference agenda:

 

Andrew Karcher

Conference Opening

 

8:00 – 8:15

Brian Loesgen

Azure Discovery

Cloud technologies are transformational, and one of those rare paradigm shifts that we don’t see often. The Windows Azure platform represents a tremendous investment by Microsoft, one that developers can benefit from today to enable solutions that previously would have been impossible or prohibitively expensive to create. This session will go beyond an overview of Microsoft’s Windows Azure cloud platform, it will show you why Cloud computing is a seismic shift, and why the Windows Azure platform is a natural evolution for .NET (and other) developers. What’s going on under the hood? What’s in it for me? Why PaaS and not IaaS? Fabric? Blobs? CDNs? Geo-distribution? Hybrids? This far-ranging session will touch on many aspects of the Azure platform.

8:15 – 9:15

Break

   

9:15 – 9:30

Scott Reed

Creating an Azure app, from “file|new|project” on through deployment

Demo after demo this talk will walk through creating a new Cloud application and then utilizing each major feature of Windows Azure.  From web roles to worker roles, internal and external communication, local storage as well as blobs, tables, and queues each aspect will be covered.  Provides a great overview of the different features available now, as well as an in depth look at the APIs available for that feature.

9:30 – 11:30

Lunch

   

11:30 – 12:30

Henry Chan

Migrating an existing ASP.NET app to Windows Azure (live demo)

Henry Chan, Chief Cloud Architect for Nubifer Cloud Computing will demonstrate the process of converting a traditional ASP.NET application into a Windows Azure application. The application being converted is the popular “Nerd Dinner” ASP.NET MVC technology demonstration application written by Scott Hanselman. The live demonstration will cover creation/setup of a new project in Visual Studio 2010, importing existing code, updating the code to utilize Windows Azure technologies, and publishing the completed project.

12:30 – 1:30

Break

   

1:30 – 1:45

Lynn Langit, Ike Ellis

SQL Azure (approx. 1 hour on migration of existing DBs to SQL Az, and then Twitter-on-WA WA BI demo)

In this demo-filled session, Ike and Lynn will show how SQL Azure works. They will demonstrate working with SQL Azure storage in your application and discuss the option to connect a non-cloud hosted front end and/or a cloud-hosted front end to a SQL Azure back end solution. Ike and Lynn will also talk about migration strategies and best practices. In this talk, you will also learn recommended business scenarios for cloud-based storage. They will cover in detail features of SQL Server RDMS which are and are not supported in SQL Azure. Finally, Ike and Lynn will demonstrate several new enhancements Microsoft has added to SQL Azure based on the feedback received from the community since launching the service earlier this year.

1:45 – 3:45

Break

   

3:45 – 4:00

Brian Loesgen

Architectural patterns and best practices

Microsoft’s Windows Azure cloud platform is a full Platform-as-a-Service offering, and is much, MUCH more than “Hosting Version 2.0”. You could do things the way you always have, but as an architect or developer on the Windows Azure platform there are some exciting new architectural patterns that enable the next generation of software, and do things that would have been impossible just a few years ago. As an architect evangelist on the Microsoft Azure ISV team, I see new Windows Azure patterns and best practices regularly. The key takeaway from this session is “question everything”, come and see why.

4:00 – 5:00

Andrew Karcher

Raffle

 

5:00 – 5:15

Scott Reed, DevelopMentor, Brain Hz

Scott’s career in software began in 1993 at IBM. Along the way he has developed enterprise solutions for both Microsoft and Cardinal Health. In 2006, Scott founded Brain Hz Software, a company specializing in software architecture and agile development. He is an expert in all things .NET and is a .NET and WCF instructor for DevelopMentor.  His interests range from data access technologies, multithreading, and communications as well as UI technologies.

Scott holds a B.S. in Computer Science and Mathematics from Virginia Tech. He is an active member of the local .NET community, regularly giving talks at user groups and code camps in Southern California.

Henry T. Chan, Nubifer

Henry Chan is a thought leader in Cloud Computing and has over 20 years of proven experience in architecting and building custom enterprise software applications, client server and system applications. Henry possesses extensive experience working with Fortune 500 companies, as well as with start-up companies. Henry maintains expertise in analysis, design and implementation of information systems using web and client-server technologies. He is heavily involved in design and development, with a special focus on the Windows Azure platform, leveraging technologies like T-SQL, C#, VB.NET, ASP.NET (both WebForms and MVC) with AJAX extensions, Javascript, jQuery, WPF, Silverlight, and XHTML technologies. Henry possesses a BS in Computer Science from the University of California, San Diego. To read some of the cloud computing research Henry has co-authored with the nubifer research team, visit0http://nubifer.wordpress.com

Lynn Langit, Microsoft

Lynn Langit is a Developer Evangelist for Microsoft in Southern California.  She has worked with SQL Server for 10 years and has published two technical books on SQL Server (both on Business Intelligence).  In her spare time, Lynn works on creating courseware to get kids started in coding.  She also personally volunteers on the largest electronic medical records project implemented in sub-saharan Africa – SmartCare.  For more information check out her blog at http://blogs.msdn.com/SoCalDevGal.

Ike Ellis, DevelopMentor, EllisTeam

Ike is the Lead SQL Instructor and SQL Course Author for DevelopMentor. He first worked with Microsoft SQL Server in 1997. Ike started as an independent consultant and trainer in September, 2000. Recent projects include a planning and financial solution used by a major retailer, a SQL Server Analysis Services project for a top ten university, an attorney scorecard tool used by the oldest intellectual property law firm in the US, SQL performance tuning for a medical imaging company, and an enrollment and retention tool used by an online university.

Ike has been Microsoft Certified since the beginning. He currently holds the MCDBA, MCSE, MCSD, MCNE, and MCT certifications. Ike loves consulting, loves technology, and thoroughly enjoys teaching. He’s been doing all three since 1996. Ike is a popular code camp and user group speaker.  In addition to his responsibilities at EllisTeam, he is the current chairperson for the Tech Immersion Group of the San Diego .NET User’s Group. He also volunteers his time with SQLPass and the San Diego .NET Developer’s Group. Ike blogs at http://ellisteam.blogspot.com/

Brian Loesgen, Microsoft

Brian Loesgen is a Principal Architect Evangelist with Microsoft, on the Azure ISV team. Based in San Diego, Brian is a 6-time Microsoft MVP and has extensive experience in building sophisticated enterprise, ESB and SOA solutions. Brian was a key architect/developer of the “Microsoft ESB Guidance”, initially released by Microsoft in Oct 2006. He is a co-author of the SOA Manifesto, and is a co-author of 8 books, including “SOA with .NET and Windows Azure”, and is the lead author and currently working on “BizTalk Server 2010 Unleashed”. He has written technical white papers for Intel, Microsoft and others. Brian has spoken at numerous major technical conferences worldwide. Brian is a co-founder and past-President of the International .NET Association (ineta.org), and past-President of the San Diego .NET user group, where he continues to lead the Connected Systems SIG, and is a member of the Editorial Board for the .NET Developer’s Journal. Brian was also a member of the Microsoft Connected Systems Division Virtual Technical Specialist Team pilot, and is part of Microsoft’s Connected Systems Advisory Board. Brian has been blogging since 2003 at http://blog.BrianLoesgen.com.

BizTalk 2010 Installation and Configuration – Installing BizTalk Adapter Pack 2010 and BizTalk AppFabric Connect feature (Part 10)

BizTalk 2010 Installation and Configuration – Installing BizTalk Adapter Pack 2010 and BizTalk AppFabric Connect feature (Part 10)

In sequence of a set of posts about installation and configuration of BizTalk 2010, I leave you here two excellent posts about: Installing BizTalk Adapter Pack 2010 posted by Steef-Jan Wiggers: http://soa-thoughts.blogspot.com/2010/11/installing-biztalk-adapter-pack-2010-on.html And Microsoft AppFabric Connect in BizTalk 2010 posted by Thiago Almeida: http://connectedthoughts.wordpress.com/2010/10/19/microsoft-appfabric-connect-in-biztalk-2010-licensing-and-installation-whats-the-deal/ Related links BizTalk 2010 Installation and Configuration – Enable Internet Information […]

Moving to cloud a bit more

Since it announcement Windows Azure is getting more and more attention also by us BizTalk guys lije myself in Holland. I witnessed the announcement of Windows Azure by Ray Ozzie during the keynote at PDC 2008 and I was amazed by it in fact that is a was brand new wave that is heading us: Cloud Computing. Currently it is at is at highpoint of hype-cycle and it has everybody’s attention. Coming year Microsoft in The Netherlands will fully focus on Azure, it’s coming issue of .NET Magazine in March will have Windows Azure as its theme and also Developer Days will have a very strong focus on Windows Azure.

I myself in future will expand my scope and will add some of my experiences from this platform here on my blog. I have joined the Dutch Windows Azure User Group and hopefully I can gain and share knowledge with other members the same way as in the BizTalk User Group.You can expect some stories coming in the near future. I did some post on the subject in the past, but I will try to do so more frequently. I would encourage you if you have not do so already to start investing time in this new technology. A good starting point is the Windows Azure Portal and reading Azure In Action, which is definitely an great resource for learning and understanding Azure.

Cheers!