Attention: We are retiring the ASP.NET Community Blogs. Learn more >

Contents tagged with .NET 3.0

  • [Service Factory] Modeling Edition (VS2005) Released

    The "modeling edition" of Service Factory was released yesterday on the Codeplex site:

    The Web Service Software Factory: Modeling Edition (also known as the Service Factory) is an integrated collection of resources designed to help you quickly and consistently build WCF and ASMX Web services that adhere to well-known architecture and design patterns. These resources consist of models with code generation in the form of tools integrated with Visual Studio 2005 and patterns and architecture topics in the form of written guidance.

    patterns & practices: Web Service Software Factory - View Release

    If you are looking for a way to build several WCF based enterprise services in a fast, consistent way but with great flexibility, you should look at this package which plugs into VS2005. A VS2008 version shouldn't be far away.

    I've been using the previous version of Service Factory since for almost a year, and it's been working just fine. One thing I was missing was a good modeling tool for designing our services, and now it's here.

    Check out Don Smith's video of an earlier version of Service Factory if you want to get a hunch of what it is all about.

  • Akropolis - Yet Another Way to Build .NET WinForm Apps...

    I just had a quick look at the demo videos on the Akropolis website and it looks pretty nice but it makes me wonder which tool you're supposed to be using in the future when you want to build a WinForms app (or whatever we're supposed to be calling a fat/smart client). Akropolis looks really useful if you want to create a standard looking application with WPF, that's for sure. This is what the home page states:

    Acropolis builds on the rich capabilities of Microsoft Windows and the .NET Framework, including Windows Presentation Foundation (WPF), by providing tools and pre-built components that help developers quickly assemble applications from loosely-coupled parts and services.

    From what I can see, Akropolis will be focusing on standard looking business client applications, but there is also support for themes, animations and stuff which they show off in their demos. Not sure why a business application would have that, but if it's based on WPF and XAML, it's easy to add bells and whistles I guess :) There is a CTP available for download on their website.

  • [Service Factory] How the Service Factory Guys Think

    Don Smith put a video up on the Service Factory Codeplex site about how they think about services, where they believe Service Factory is today and where they are heading. I thought the message about the different types of services was quite interesting because it is close to the way we're thinking when we're identifying service components for an enterprise. Note that the type of (web) services you may create as part of a specific solution because it may help you scale out, tier and get better availability and so on is something different to me. I'm more thinking of enterprise class services here.

    Don mentions 3 types of services; Entity/Capability, Utility/Messaging and Process/Activity.

    The first one is easy to understand and I think that's where most organisations start on their SOA roadmap. An Entity Service is usually very simple and may represent one or more business entities with data stored in a database or perhaps wrapped within a (legacy) system. You often se CRUD-like interfaces on these, but I recommend you to try and stay away from too granular methods. If you have an entity service for say a Person or a Customer, consider to not expose methods to get just the phone number or the email address, but rather get a complete Person or Customer object. These objects could be based on well known XML Schemas owned by perhaps information architecture group or something.

    The second type of services I usually call "Infrastructure Services" and are typically Security Token Services (STS), message routers and such. Could also be metadata/taxonomy/ontology services to help out with information integration cross services and systems. If anyone was using UDDI, I think it could also be placed in this category ;) Having said that, I think this category of services are very, important. It's hard to maintain and govern enterprise class services without an STS and a proper service catalogue. Not sure I understand their view on "Message" in this type of services. "Simple" Message routing services based perhaps on ws-addressing and such could be placed here, but more complex message handling, perhaps handled by a workflow engine, I think would go into the third and final category of services...

    ...called Activity and/or Process Services, which usually (for us anyway) contains methods and interfaces that map to scenarios, use cases, routines/functions (depending on which methodology and terms you're using). Also good for long running processes which may involve message queues, perhaps BizTalk and Windows Workflow Foundation. These services most often use other services, like Entity Services, to orchestrate and aggregate data needed by service consumers. They may not have their own database like Entity Services, unless you need to save state for a workflow or to keep replicated and denormalized data for aggregated search or perhaps masterdata for partitioned entities. See the Entity Aggregation pattern for a detailed description. One could argue that services that implement the this pattern should go into the first category of services, but I usually put them into the Activity Service category anyway, for reasons I'll probably blog about some other time (it's getting late).

    I'm happy to hear about where the Service Factory team is heading, to have better support for Utility/Messaging (Infrastructure) Services and move into support for Activity/Process Services. I wish there were some good guidance for activity and process services already. I'm quite interested in seeing what this team will do with LINQ in the near future. I'm not too fond of the data access code in current Data Access Guidance Package.

    Anyway, go check out the video, it's short and the sound is a bit so, so, but it's a good message.

  • Note to Self

    I've not blogged much lately, and it's not because I don't have anything to blog about - quite the contrary. Too much to do right now. I got a few things I would like to blog about, just as a note to myself:

    - The use of Software Factory to build WCF web services in a structured way (it's helping us out in a large SOA project now), and why you must be careful of using too long project names :(

    - How you could modify Software Factory to fit your needs, add new recipies and tweak the code that gets generated (my colleague Eric has done some cool work with this, and I hope he will blog about how to enable DataContract generation from an XSD-schema)

    - A few things to think about when writing XSD-schemas to be used for generating WCF DataContracts.

    - The (what seems to be) lack of support for calling Workflows (WF) från WCF and vice versa. It wasn't as easy as dragging a WCF Activity från the toolbox... I'm still struggling with this one.

    - Some experience from using DataDude with Software Factory and Team Foundation Server

    - And some CI with TFS notes that may help other people out.

     Sorry for not posting anything useful about the topics above right now, but I'll get to it, I promise. Stay tuned :)

  • Installing .NET 3.0 and Orcas... (or perhaps call it) An Ordinary Saturday in a Programmers' Life

    Note of warning - don't follow the steps I did. Better make sure you install things in the right order. Have a quick look down at the end where I have a "Lessons Learned" :p

    The Logbook

    It's Saturday morning and I'm about to install .NET 3.0 and Orcas and whateverelse I might need to get a proper 3.0 platform up and running on a WinXP VPC. It's 11am and I won't be sitting in front of the box all day to do this because I got loads of other stuff to do. The plan is to uninstall a few old things, then do something else, then download one part, install it and do something else and keep doing this until thing seem ok. Goal is to have a decent WinXP + .NET 3.0 + Orcas install to play around with by the end of the day :)

    11:00am - Need a new VPC machine to install things on, so I start by taking a copy of my (almost) vanilla WinXP SP2 VPC file I always keep handy.

    11:30am - Phew! That took a while to copy... I'm in there now, uninstalling a few old things I no longer need. I noticed I copied the wrong VPC file so I got a few old WinFX things I need to remove.

    11:55am - All done, downloading the SDK setup file... BTW, Nicholas Allen got a page where he lists things you need to install: http://blogs.msdn.com/drnick/archive/2006/11/07/v1-rtm-downloads.aspx

    12:10pm After reading up on some things, I started the install of "Microsoft® Windows® Software Development Kit for Windows Vista™ and .NET Framework 3.0 Runtime Components". It complains that I still got a few old things I should remove (FxCop etc.) and retry install. That's a good one Microsoft. Thanks. Uninstalling and retrying... this install is downloading during installation, so it might take a while. I'm off to do something else while that is running... BTW. The full install requires some 2.3 GB of disk space.

    12:18pm BANG! Installation bombed. It crashed during the FxCop installation it seems. I wanted to read about the error, but when the "report to ms" dialog was done, it closed the installation dialogs... I guess I should restart XP and restart the installation again... gah!

    12:25pm It says I must first install the old version... here goes. What old version? Taking a look at the installed programs and uninstalling whatever seems to be related to any SDKs...

    12:40pm Ngggh... still refusing to install. Uninstalling even more and trying again. Lessons learned - start out with a very, very fresh XP + VS.NET 2005 box. Kids, don't try this on your daddy's machine at home. I think I'm off to cut my hair and have something to eat.

    15:30pm Right, I'm back. I've unistalled everything I think is remotely related to the old WinFX stuff, and also let WinXP finish installing a few updates it had on queue... took a while it did. Starting a new install of .NET 3.0 SDK again. Next, next, next, next... BANG! My whole VPC now crashed as the installer was about to start doing its real work. Jeeeez... what is this?

    15:35pm Starting VPC again and we'll see if the install works better this time. Wow... it's actually looking good now.

    16:20pm Still installing...

    16:25pm Done! Now on to the next install, Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF), November 2006 CTP, starting now...

    16:55pm I'm back. Had something to eat. Right, installing the Orcas stuff didn't work, because it needs the .NET 3.0 runtime stuff on the machine... Weird, because one would think it got installed with the SDK... whatever, installing the runtime now. Seems that I didn't read right stuff :D

    17:55pm This is your host this evening, back from driving my daughter to a street dance show she's in. The runtime is installed and I'm back in track again - time to install the WCF/WPF extensions... why does the task "merging of the help collections" give me the chills? Because "merging of the help collections might take some time"...

    18:15pm Everything looks fine, now installing the Workflow extensions... Why does all these installation look different? Seems like every team at Microsoft is using their own installer and tools for making these packages? One would think that there were some kind of guidelines that they should try and use the same templates. Anyway, as long as it works I'm happy.

    19:15pm Took a break. Workflow Foundation extensions seems to be installed OK, time to fire up VS.NET and see if it works :p

    (a few minutes later) It works!! Yay! I need a drink...

    Lessons learned:

    a) Make sure you got a few hours of spare time...  ;)

    b) Try to have an as clean as possible machine from start - WinXP SP2 and VS.NET 2005, that's all. Use a virtual machine if possible, don't mess up the box you're working on every day.

    c) Remove anything even remotely related to older .NET 3.0 / WinFX installations.

    d) Install things in this order:

       1. Microsoft .NET Framework 3.0 Redistributable Package 
       2. Microsoft® Windows® Software Development Kit for Windows Vista™ and .NET Framework 3.0 Runtime Components
       3. Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF), November 2006 CTP
       4. Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation)

    e) Voilá, you're (hopefully) done, start making your first WPF app or something already!