by community-syndication | Mar 10, 2009 | BizTalk Community Blogs via Syndication
Hi,
Pluralsight instructors have been doing great job!!! Not to mention the number of MVPs (Aaron Skonnard, Jon Flanders, Matt Milner..etc) from this single company! But here are a bunch of very useful introductory screencasts on WCF, Rest Services, ASP.Net MVP, etc. Check the pluralsight for more videos.
Ajax-enabling your WCF Services: http://www.pluralsight.com/main/screencasts/screencast.aspx?id=enabling-ajax-integration
Calling Restful Services: http://www.pluralsight.com/main/screencasts/screencast.aspx?id=calling-restful-services
Building Restful […]
by community-syndication | Mar 10, 2009 | BizTalk Community Blogs via Syndication
On the website http://msdn.microsoft.com/en-us/library/dd451003.aspx, we have a step by step guide to publish the Siebel adapter as a WCF Service in IIS and then have MOSS consume the data using that service. In this approach, credentials are pass by MOSS to the adapter using custom HTTP headers.
If instead you want to consume this service from a .net application or any client that wants to pass the credentials using the ClientCredentials object, this is how you will go about doing it. Follow the steps on http://msdn.microsoft.com/en-us/library/dd450994.aspx that gives detailed instructions about publishing the WCF service. There are 2 differences though
1. In the “Configure service and endpoint behaviors” page, for “AuthenticationType” you will need to select “ClientCredentialUsernamePassword” (as opposed to “HTTPUsernamePassword” that the tutorial specifies)
2. In the “Configure the service endpoint binding and address” page, click on the BindingConfiguration (the following BasicHttpBindingElement) to customize the binding. Set Security Mode to “TransportWithMessageCredential”
Follow the rest of the instructions for publishing the service. You can now connect to the service using a .net proxy application and pass the credentials using the ClientCredentials object.
by community-syndication | Mar 9, 2009 | BizTalk Community Blogs via Syndication
by community-syndication | Mar 9, 2009 | BizTalk Community Blogs via Syndication
Hi all
A couple of months ago, while trying to solve the If-Then-Else issue within a map
in a nice way, a fellow BizTalk MVP suggested to me that I could just have the script
inside a custom scripting functoid and then copy the script from custom scripting
functoid to custom scripting functoid.
Naturally (as I assumed it was, back then) I told him that this was impossible, because
BizTalk wouldn’t let me have two custom scripting functoids which contains the same
method, ie. the two methods have the same signature.
“Sure you can”, he replied…. So I had to check it out… I fired up my BizTalk 2006
R2 virtual machine, and sure enough: He was right. I was in chock, because I was totally
sure i was right. so I fired up a BizTalk 2006 virtual machine and again; He was right
and I was wrong.
Now… those who know me will know that when I am convinced I am right, I will usually
go to great lengths to prove it 🙂 So I stepped down a version and tried BizTalk
2004. Again no luck.
But FINALLY, when trying it on BizTalk 2002, it turned out that I was right. Back
in BizTalk 2002, scripts were in VBScript and here you can not have multiple custom
scripting functoids with methods with the same signature. In versions after BizTalk
2002, the compiler will collapse those methods into one, but in BizTalk 2000 and 2002,
this is not done, and therefore an error occurs.
So all in all, I discovered this limitation back in 2003 and never questioned it again
since. So let this be a lesson to all (especially me, because I always think I am
right 🙂 ) – that sometimes we need to reevaluate what we think we know.
Hopefully this post will:
-
encourage people to reevaluate opinions and knowledge
-
inform others like me, who thinks that you cannot have the same method signature twice
in a map, that this is wrong 🙂
—
eliasen
by community-syndication | Mar 9, 2009 | BizTalk Community Blogs via Syndication
Below the annoying message box ‘The installation of this package failed‘ that popped up while building a fresh new (virtual) BizTalk Server 2009 development box on Windows Server 2008.
It occurred when I was installing Windows Sharepoint Services 3.0 with service pack 1, which is one the prerequisites for the SharePoint Services adapter.
I wanted to get […]
by community-syndication | Mar 9, 2009 | BizTalk Community Blogs via Syndication
[Source: http://geekswithblogs.net/EltonStoneman]
The Code Generation Guidance Package on CodePlex was designed to be extensible and reusable. There are three main C# projects, which isolate logic for code generation, and the UI and GAX components.
Sixeyed.CodeGeneration
This is the core project, defining how metadata is represented and retrieved, and defining configuration for code generation runs. Metadata is defined in terms of:
- A metadata source, which contains the logic for connecting to the source
- A metadata provider, which uses the source to provide a list of available items, and to populate requested items
- Metadata items, which are a representation of the metadata, typically using an appropriate .NET framework class
Code generation and UI logic always works on the interfaces which define these components, and the relationships between them:
In the Add Generated Items recipe, the available source types, sources and providers are populated from the collection of IMetadataSource objects held in the static SourceContainer class (additional sources can be added to the container at runtime using the SourceAssemblyConfiguration recipe argument – described in Sixeyed.Guidance.CodeGeneration Sample Package). When a provider is selected, GetItemNames is called to populate the list of available metadata items. When the selected items are iterated over in a code generation run, GetItem is called and the populated IMetadataItem is loaded as a property for the T4 template. The metadata item exposes the provider, and the provider exposes the source so the template can connect directly to the metadata if it needs to.
Each metadata interface has an abstract base class which implements it and contains core logic. For a given source, there may be an additional base class which abstracts logic common to that type of source. In Sixeyed.CodeGeneration.Metadata.Database.Source, DatabaseSource contains logic for accessing ADO.NET data sources in terms of IDbConnection and IDbCommand objects; SqlServerSource contains overriding logic to specify SqlConnection and SqlCommand usage – any additional database sources would do the same. Similarly for the SOAP metadata source, the logic for accessing WSDL is abstracted into a base class which may be used by other sources (e.g. a WCF specific source):
IMetadataProvider contains logic for accessing the source and retrieving a list of available items, and for populating a named item. The majority of logic is in the generic base class, so provider classes are quite simple. Simpler still are metadata item classes, which inherit the generic ItemBase class, specifying the underlying type of the item (XmlSchema in this case), without requiring any additional code.
Logic for populating template properties and executing T4 templates is located in the Guidance project rather than the code generation project, as it is dependent on the specific T4 engine being used.
Sixeyed.CodeGeneration.UI
The UI project contains generic user controls which represent metadata selections, and expose various events to notify of selection changes. The Guidance package Wizard uses these components rather than defining its own UI – the controls from this assembly allow code generation to be configured and invoked from a different UI host.
Sixeyed.Guidance.CodeGeneration
This project defines the GAX package and links together the code generation and UI components. The Guidance package is quite straightforward – it contains a single class AddGeneratedItems for the action of generating items from metadata and adding them to the selected project. The action expects SourceConfiguration, SelectedItems and TemplateConfiguration arguments; it connects to the source, iterates over the selected items and executes the template for each item.
To collect the argument values, there are custom wizard pages and value providers for each, allowing a recipe to provide ready-configured settings, or build a UI to gather them from the user:
- Sixeyed.Guidance.CodeGeneration.CustomWizardPages. The custom Wizard pages use the static Metadata class to share state for the configured metadata source and provider. They override IsDataValid to determine if the page has collected enough information for the Wizard to proceed and the base class provides EnableNextStep which will advance the Wizard by enabling the Next or Finish button as appropriate. The base class will read the SourceAssemblyConfiguration recipe argument if provided, and use it to add any extra metadata assemblies at runtime.
- Sixeyed.Guidance.CodeGeneration.ValueProviders. The value provider classes are straightforward, reading optional arguments from the recipe and populating the relevant metadata settings. Custom recipes can specify value providers to load settings instead of Wizard pages, so the Wizard UI can be restricted.
TODOs
There are a couple of minor changes I’d like to make to the current codebase:
- Sixeyed.Guidance.CodeGeneration.CustomWizardPages.SelectTemplate defines its own UI, which should be moved to a user control in the UI project;
- Sixeyed.CodeGeneration.Generation.MemberName contains methods for providing valid field and property names, but the Pascal and camel-case conversion is very basic;
- Sixeyed.CodeGeneration.UI.SourceUri has some ugly hard-coding to decide which UI dialog it should show for different types of URI. It should be configurable, but I’m not happy moving it to an attribute of IMetadataSource, as that brings the UI into the core project.
And some additional metadata sources which I’ll add at a future point – a Clipboard source providing access to clipboard data through text or XML providers, and a BizTalk source which will use the ExplorerOM for providers supplying application, group and instance information as metadata.
by community-syndication | Mar 9, 2009 | BizTalk Community Blogs via Syndication
Hi All,
I’ve made pictures on the
Microsoft Global Summit MVP [Most Valuable Professional] 2009 March 1-4, Seattle, Redmond.
Mostly the BizTalk MVPs.
http://public.fotki.com/leogan/cities_and_countries/usa/2009-microsoftgloba/
Steve Ballmer, many vice presidents, Microsoft Fellows, developers from different product teams.
It was fun.
by community-syndication | Mar 9, 2009 | BizTalk Community Blogs via Syndication
I’ll be giving a talk for Microsoft’s “Build Your Skills” event on March 24th in St. Louis (and March 31st in Minneapolis) on the topic of code profiling. We’ll look at the profiling tools built into Visual Studio Team System Developer, and a few others to boot. You can get all the details here.
There is a whole slate of great talks planned for the day, so register now if you’re
in the area…
by community-syndication | Mar 9, 2009 | BizTalk Community Blogs via Syndication
WCF services can be accessed by a variety of clients, and this post will talk briefly about accessing services from Silverlight. The same familiar programming model applies to Silverlight as any WCF client application.
The first step in developing Silverlight clients is to set up a development environment. If you already have Visual Studio 2008 SP1 on the box, all that is needed is to install the Microsoft Silverlight Tools for Visual Studio 2008, available on this page (among other resources). The package will install the Silverlight runtime (the piece required to run Silverlight apps in the browser), the Silverlight SDK (the libraries and tools needed to build apps), and the Visual Studio project templates and other supporting features.
To create your first WCF service and Silverlight client combination, follow the steps in this set of documentation topics. Note that only certain WCF bindings and features are supported in Silverlight, and you can consult this page for a full description.
A common pitfall for developers new to Silverlight is the cross-domain restriction in the networking stack. For security reasons, if the WCF service and Silverlight client live on different domains (for example http://fabrikam.com/service.svc and http://contoso.com/mysilverlightcontrol.html), the service domain needs to use a cross-domain policy file to explicitly opt in to be accessible by Silverlight clients (for example http://fabrikam.com/clientaccesspolicy.xml). For a description of the cross-domain restriction, see this topic. For an example cross-domain policy file, see this topic.
If you get stuck at any point in the process so far, this article explains how to easily debug the service-client pair.
After you have built your first Silverlight WCF solution, you can move on to some advanced scenarios. Here is a list of areas you may wish to explore:
- Duplex communication – WCF services can “push” data to Silverlight clients, without the user having to manually poll the service. This is also known as a “notification” communication pattern, as opposed to a “request/reply” pattern. This topic walks you through implementing this scenario. The programming model for duplex services is rather complex, so our team has implemented a code sample which hides away some of that complexity. Check out the “Duplex Services” section of this blog post for more information and a link to the sample. In the next version of Silverlight, a greatly simplified duplex programming model is being considered.
- REST services – this class of web services uses light-weight wire formats (such as plain XML or JSON) and clear URI conventions for a simple experience consuming services. This set of topics highlights how WCF in Silverlight can be used to access REST services.
Here are some good resources for follow-up:
Going forward, content from the Silverlight web services team blog (linked above) will be syndicated over here at the .NET Endpoint blog. Please keep an eye out for exciting new content coming up over the next month.
Yavor Georgiev
Program Manager
Connected Framework Team
by community-syndication | Mar 8, 2009 | BizTalk Community Blogs via Syndication
Zoiner and I are both travelling this week, but rather than cancel our meetings, we have rejiggered them (I’ve always wanted to use that word in a sentence).
So, San Diego .NET User Group Connected Systems and Architecture SIGs are doing a joint meeting tomorrow (Monday March 9 2009), and I will be doing my Microsoft SOA Offerings presentation.
I plan to show a demo I’ve been working on. It involves BizTalk Server 2009, ESB Guidance 2.0, Dublin, Windows Workflow Foundation and Windows Communication Foundation (from .NET 4.0), and Azure, all in a couple of VMs running simultaneously (off my notebook) with two networks, using 64-bit Virtual PC hosted on 64-bit Windows 7. With the exception of Virtual PC, *everything* in that chain is beta — or earlier. Now that should certainly appeal to the inner-geek in all of you!
Meeting starts at 6:00 for pizza, 6:30 for the meeting itself, at the Microsoft La Jolla office.
Technorati Tags: BizTalk,Azure,ESB,SOA,WF,WCF,Dublin