Navigation


contactdonateaop.net



Experimental Support for ASP.NET

posted by gael    Wednesday, February 27th, 2008 at 11:10 pm

I have just checked in a library (actually, only two classes) allowing to use PostSharp in ASP.NET projects. The stuff is hosted at http://code.google.com/p/postsharp-user-plugins/. The reason why it did not work previously is that ASP.NET compilation does not go through MSBuild, so PostSharp was simply not invoked.

Indeed, MSBuild has its own compilation mechanism. Fortunately, it has an extension point that seems just done for PostSharp: the IAssemblyPostProcessor interface. As you may imagine, it allows to post-process the compiled assembly.

So I simply developed an implementation of this interface (one class). The second class is a configuration handler.

Here is how to use this preliminary version of the library (from the documentation):

In order to use PostSharp in a web project, specify this class as an assembly post-processor in web.config:

<configuration>
     <system.web>
       <compilation debug="true"
         assemblyPostProcessorType="PostSharp.AspNet.AssemblyPostProcessor, PostSharp.AspNet"/>
     </system.web>
</configuration>

Additionally, you have to add the <postsharp … /> section in the configuration file:

<?xml version="1.0"?>
<configuration>
 <!-- Add a configuration handler for PostSharp. -->
 <configSections>
  <section name="postsharp"
                         type="PostSharp.AspNet.Configuration.PostSharpConfiguration, PostSharp.AspNet"/>
 </configSections>
 <!-- PostSharp configuration -->
 <postsharp directory="P:\open\branches\1.0\Core\PostSharp.MSBuild\bin\Debug" trace="true">
  <parameters>
   <!--<add name="parameter-name" value="parameter-value"/>-->
  </parameters>
  <searchPath>
   <!-- Always add the binary folder to the search path. -->
   <add name="bin" value="~\bin"/>
   <!-- Then add the location of plug-ins that are not installed in standard locations. -->
   <add name="laos-weaver" value="P:\open\branches\1.0\Laos\PostSharp.Laos.Weaver\bin\Debug"/>
  </searchPath>
 </postsharp>
 <appSettings/>
 <connectionStrings/>
 <system.web>
  <!-- Note the 'assemblyPostProcessorType' attribute. -->
  <compilation debug="true"
                             assemblyPostProcessorType="PostSharp.AspNet.AssemblyPostProcessor, PostSharp.AspNet">
  <authentication mode="None"/>
  <trace enabled="true" pageOutput="true"/>
 </system.web>
</configuration>
 

In all configuration parameters and in search path elements, the tilde character (~) is replaced by the physical path of the application.

Be prepared that the compilation will be much much longer, especially if it is fine-grained…

This is a preliminary version, feedback is welcome!

Happy postsharping!

Gael

First version of PostSharp4Unity

posted by gael    Wednesday, February 27th, 2008 at 11:32 am

PostSharp4Unity modifies assemblies after compilation to make objects
self-configurable: you don’t need to call a factory method; you can use the
default constructor. All you have to do is to decorate your class with the
custom attribute “Configurable”. It smells like Spring, isn’t it ;-).

It is available from

http://code.google.com/p/postsharp-user-plugins/
.

I have updated the StopLight sample. The first change is on the
StoplightForm class:

[Configurable]
public partial class StoplightForm : Form, IStoplightView
  {

Then, in Program.Main, you can use the default constructor:

Application.Run(new StoplightForm());

Unfortunately, that’s not all. Since Unity has no notion of context registry
(i.e. no notion of “current container”), you have to build a basic one:

public sealed class UnityContainerProvider : IUnityContainerProvider
{
   private readonly IUnityContainer container;

    public UnityContainerProvider()
    {
       this.container = new UnityContainer()
         .Register<ILogger, TraceLogger>()
         .Register<IStoplightTimer, RealTimeTimer>();
    }

    public IUnityContainer  CurrentContainer
     { get { return this.container; } }
}  

Then tell
PostSharp4Unity to build your container:

[assembly: DefaultUnityContainerProvider(
  typeof(UnityContainerProvider))]

As you can see, there is a little of set up to do, but it’s only once per
assembly. (And would be useless if there were some Unity-wide notion of
context registry or default container.) At this price, you can use Unity
with any object without having to construct them using a factory method.

Pay attention that your
‘configurable’ objects are now configured before the constructor is
executed, and not after. So, in the class StoplightForm, we have to
move the view initialization at the end of the constructor:

[Configurable]
public partial class StoplightForm : Form, IStoplightView
{
   private StoplightPresenter presenter;

   public StoplightForm()
   {
      InitializeComponent();
      presenter.SetView(this);
    }

   [Dependency]
    public StoplightPresenter Presenter
    {
      get { return presenter; }
      set { presenter = value; }
    }

There are still some problems being discussed, but at least you have the
first bits.

Happy PostSharping!

Gael

A few words about relicensing

posted by gael    Wednesday, February 27th, 2008 at 11:03 am

I have been quite laconic in the release announcement about relicensing. Much
more was said on the licensing
page
, but yet I got some feedback that it was not clear.

The summary of PostSharp licensing is: Runtime libraries are released
under the non-viral LGPL license; compile-time components are released under
GPL.

The first thing to realize is that
chances are great that
relicensing changes nothing to your life
. Indeed, programs that
are transformed by PostSharp are not contaminated by GPL,
since they reference only runtime libraries of PostSharp. Basically, if your
program does not need the library PostSharp.Core.dll to be present on
your customer's computer, using PostSharp does not affect your program's
licensing scheme at all. And I'm pretty sure it's the case of 99% of users.

So who is impacted by the GPL license? Well, people who develop programs that
use PostSharp to modify other assemblies. In other words: if your program
transform the programs of your customers, read on.

Anyway, what kind of programs modify other programs? There are two typical
families of products that fall in that category: O-R mappers, obfuscators,
optimizers, code generators are the first one; they are typically deployed only
on development machines. Another family includes application servers offering
aspect-oriented services (AFAIK there is none for .NET, but in the Java
world it's quite common for an application server to have an integrated AOP
engine). Of course a special member of that family is the still-unreleased
Starcounter object database server; deploying .NET assemblies to this server
will make classes "magically" persistent in a server environment.

What if your program uses core parts of PostSharp? Actually, you are not
automatically infected by GPL. You have the following options:

  • If you don't distribute your work outside of your company, you are not
    infected. So if you make an in-house plug-in, you are okay.
  • You can release your work under any license approved by the
    Open Source Initiative. Well,
    attention: all your work, and not only the assembly directly referencing
    PostSharp.
  • You can acquire a commercial license, which is basically a GPL exemption
    for your products. Exemptions will be provided on an individual, per-product
    basis. Since the number of customer of these licenses is quite small,
    exemptions will be given as a part of a partnership program including
    support and NDA. The idea there is to have a few good customers with a
    strong relationship. The "masses" have the product for free (anyway with a
    level of support often quoted as better than commercial one).

An important point is that the licensing itself is in 'candidate'
phase
. If it makes you feel badly, do not hesitate to react. The point
is that, given the size and the complexity of the product, it is not possible
any more to develop and support it exclusively during free time, so I must raise
some money. I would like the product to be supported by few key partners having
a strong interest in PostSharp, and let it free for most (99%) people.

Happy PostSharping!

Gael

Jasema: Implementing the Undo feature using PostSharp

posted by gael    Saturday, February 23rd, 2008 at 6:53 pm

An interesting post on The Simple Part explains how to use PostSharp to implement an “Undo” feature in Jasema, a tool to create WPF Path Geometry in an easy user friendly way.

The trick is to apply a “journaling” aspect on some front-end methods. The aspect record the object state before and after execution.

Congratulations to ‘Karlagius’ for this original use of AOP!

Gael

Microsoft Entity Framework without Plumbing

posted by gael    Thursday, February 21st, 2008 at 11:12 am

Ruurd Boeke has recently released
PostSharp4ET, a PostSharp plug-in allowing to use Microsoft Entity Framework
without plumbing code — PostSharp generates it for you at build-time.
PostSharp4ET is released as a part of
Entity Framework Contrib hosted
on CodePlex.com.

With PostSharp4ET, enabling persistency on a class should be as easy as
decorating it with a custom attribute:

[Poco("ConnectionName")]
public class Person
{
   public int PersonID { get; set; }
   public string Firstname { get; set; }
   public string Lastname { get; set; }
}

Under the hood, EF-specific interfaces are implemented automatically at build
time.

Ruurd

explains everything extensively
on his blog. And even if you are not
interested in Microsoft Entity Framework, Ruurd's blog is a great introduction
to how to write more complex aspect libraries with PostSharp.

Thank you Ruurd for this excellent work!

Announcing PostSharp 1.0 RC 2

posted by gael    Wednesday, February 20th, 2008 at 6:49 pm

I am pleased to announce the long awaited second release
candidate of PostSharp 1.0 available for download.

This is a stability release solving all bugs discovered in the
previous release, which has been downloaded over 6 thousand times.

Additionally to 40 bug fixes, this release brings important changes in licensing and minor
improvement in the installer and packaging.

Relicensing

With this release (and from revision 287 exactly), the whole
PostSharp code base has been relicensed from GPL/LGPL/MPL to a GPL 3 / LGPL 3
scheme. Don’t be afraid: this relicensing actually affects only a few of you.
Run-time components are licensed under LGPL, compile-time components
under GPL
. So it is still free to use PostSharp and PostSharp Laos in
your applications, but if you distribute an application that uses PostSharp to
transform assemblies (like an O-R mapper), and don’t want to release your work
as open-source, then you are kindly requested to acquire a commercial license.

This licensing scheme is really directed to have
ISV making money on PostSharp contributing to the project.
Commercial licenses will be available to “a selected few” under
a partnership program.

Don’t be afraid: I have no plan to “lock”
end-users in GPL licenses.

You will find more about licensing on the website. If you
have any question, or if you think you will need a commercial license, do not
hesitate to contact me.

Improved Distribution Packages

A minor improvement of the MSI package is that you can now
choose not to install PostSharp in the GAC. PostSharp actually does not
need to be in GAC; I put there to benefit from NGen. If you want to disable GAC
installation and NGeneration, choose the custom installation mode and disable
the option.

Another improvement is that I now provide a package for
xcopy
deployment as well as instructions describing how to insert PostSharp
in the MSBuild process at global or project level.

What’s next?

I’m sometimes asked for a roadmap with dates…
and when I give some I suddenly get in the incapacity to respect
them! I acknowledge it took me to long to deliver this release.
The reason is that I had to work on another project and I had to
invest the remaining time in the website migration, which became
really urgent. Now that the website is up and that I will have
some time dedicated to the project (I will blog about it soon),
things should go more smoothly. The idea is to deliver a release
candidate every month and to declare the 1.0 branch as stable as
soon as the number of reported bugs become acceptable. It’s
difficult to predict how many iterations it will take, but I
still hope to have the stable release for Q2 of this year.

Happy aspecting and keep on good work reporting
bugs!

Gael

Zero Bug Point Again

posted by gael    Thursday, February 14th, 2008 at 3:23 pm

It has not happened before publishing the first release candidate in October: PostSharp has reached a zero-bug point again. This means that it is ready for a new release candidate.

May I kindly ask all who have reported a bug (and all who have some minutes to loose) to download the latest build from http://download.postsharp.org/builds/1.0. If everything is ok I will publish the RC2 next week.

Thank you!

Gael

PostSharp at AOSD 2008 Conference

posted by gael    Wednesday, February 13th, 2008 at 5:45 pm

I am proud to announce that PostSharp will be presented at AOSD 2008, the most important conference of the Aspect-Oriented community.

The paper is called User-friendly aspects with compile-time semantics in .NET and insists on original contributions of PostSharp Laos to the art of aspect-oriented development.

I will present my work in Brussels on Wednesday, April 2th, 2008 and will attend the conference from Tuesday to Friday of this week.

If anyone if interested in meeting me in Brussels, just let me know. If many are interested, we could organize a workshop on the side of the conference. Just leave a comment to this blog.

Happy aspecting!

Gael

Download Adobe InDesign CS2 v4.0 OEM Cheap OEM Software. Buy and download oem Adobe, oem Autodesk, oem Macromedia, oem Microsoft at SoftwareVending.com Download Adobe Acrobat 7.0 Pro OEMDownload Adobe Contribute CS3 OEM Online Casinogulfstream casino hollywood gun lake casino updated information hammond indiana casino hampton beach casino hampton nh Download Microsoft Windows Millennium Edition OEMDownload Microsoft Windows Server 2003 Enterprise 64 Bit x64 OEM Download Adobe Acrobat 3D OEM Download Adobe Photoshop CS3 French OEMDownload Adobe Dreamweaver CS3 OEM Download Adobe Acrobat 6 professional OEM Download Adobe Premiere Elements 3.0 OEMDownload Adobe Premiere Pro 7 OEM Download Adobe Acrobat 7.0 Pro OEM Download Adobe Streamline 4.0 OEMDownload Adobe Contribute CS3 OEM Download Adobe Acrobat 8 OEM Download Microsoft Windows XP Professional SP2 OEMDownload Adobe InDesign CS2 v4.0 OEM Download Adobe Acrobat Distiller 6 OEM Download Adobe Acrobat 7.0 Pro OEMDownload Adobe Acrobat 6 professional OEM Download Adobe After Effects 7 OEM Download Adobe Type Manager Deluxe 4.1 OEMDownload Adobe Photoshop CS3 French OEM Download Adobe After Effects CS3 OEM Download Microsoft Windows Server 2008 OEMDownload Adobe Acrobat 3D OEM Download Adobe Atmosphere 1.0 OEM Download Adobe Photoshop CS2 + Image ready CS2 OEMDownload Adobe InDesign CS2 v4.0 OEM Download Adobe Audition 1.5 OEM Download Adobe Creative Suite 3 Design Premium OEMDownload Microsoft Windows Millennium Edition OEM Download Adobe Contribute CS3 OEM Download Adobe Contribute CS3 OEMDownload Adobe Illustrator CS OEM Download Adobe Creative Suite 2 Premium OEM Download Adobe InCopy CS OEMDownload Adobe Premiere PRO 2.0 OEM Download Adobe Creative Suite 3 Web Premium OEM Download Adobe Creative Suite 3 Design Premium OEMDownload Adobe Acrobat 7.0 Pro OEM Download Adobe Creative Suite 3 Design Premium OEM Download Adobe Pagemaker 7 OEMDownload Adobe Illustrator CS3 OEM Download Adobe Creative Suite Standard Full OEM Download Adobe Premiere Pro 7 OEMDownload Adobe Photoshop Lightroom 1.3 Multilingual OEM Download Adobe Dimensions 3.0 OEM Download Adobe Dreamweaver CS3 OEMDownload Adobe Creative Suite 3 Design Premium OEM Download Adobe Dreamweaver CS3 OEM Download Adobe Photoshop CS + Adobe ImageReady CS OEMDownload Adobe Photoshop Lightroom 1.3 OEM Download Adobe Encore DVD 1.5 OEM Download Microsoft Windows XP Professional x64 OEMDownload Adobe Contribute CS3 OEM Download Adobe Fireworks CS3 OEM Download Adobe InCopy CS OEMDownload Adobe Photoshop CS + Adobe ImageReady CS OEM Download Adobe Flash CS3 Professional OEM Download Adobe Creative Suite Standard Full OEMDownload Microsoft Windows Server 2003 Enterprise 64 Bit x64 OEM Download Adobe Flex 2 OEM Download Adobe Creative Suite 3 Web Premium OEMDownload Adobe GoLive CS2 V 8.0 OEM Download Adobe Flex Builder Professional 3.0 OEM Download Microsoft Windows Server 2008 OEMDownload Adobe Premiere Elements 1.0 OEM Download Adobe FrameMaker 7.0 OEM Download Microsoft Windows Server 2003 Enterprise 64 Bit x64 OEMCheap OEM Software. Buy and download oem Adobe, oem Autodesk, oem Macromedia, oem Microsoft at SoftwareVending.com Download Adobe GoLive CS V 7.0 PC OEM Download Adobe Creative Suite Standard Full OEMDownload Adobe InCopy CS OEM Download Adobe GoLive CS2 V 8.0 OEM Download Microsoft Windows XP Professional x64 OEMDownload Adobe Premiere PRO 2.0 OEM Download Adobe Illustrator 10 OEM Download Adobe Acrobat 8 OEMDownload Adobe GoLive CS V 7.0 PC OEM Download Adobe Illustrator CS OEM Download Adobe Creative Suite Standard Full OEMDownload Microsoft Windows Server 2008 OEM Download Adobe Illustrator CS2 OEM Download Adobe Photoshop Elements 5 OEMDownload Adobe Illustrator CS3 OEM Download Adobe Illustrator CS3 OEM Download Adobe Dreamweaver CS3 OEMDownload Adobe Premiere PRO 2.0 OEM Download Adobe InCopy CS OEM Download Adobe Creative Suite Standard Full OEMDownload Adobe Creative Suite 2 Premium OEM Download Adobe InDesign CS OEM Download Adobe Creative Suite 3 Web Premium OEMDownload Adobe Photoshop 7 OEM Download Adobe InDesign CS2 OEM Download Adobe Contribute CS3 OEMDownload Microsoft Windows Server 2003 Enterprise 64 Bit x64 OEM Download Adobe InDesign CS2 v4.0 OEM Download Adobe Acrobat 7.0 Pro OEMDownload Adobe Creative Suite Standard Full OEM Download Adobe Pagemaker 7 OEM Download Adobe Illustrator CS2 OEMDownload Adobe Pagemaker 7 OEM Download Adobe Photoshop 7 OEM Download Adobe Type Manager Deluxe 4.1 OEMDownload Adobe Premiere Pro 7 OEM Download Adobe Photoshop CS + Adobe ImageReady CS OEM Download Adobe GoLive CS2 V 8.0 OEMDownload Adobe FrameMaker 7.0 OEM Download Adobe Photoshop CS2 + Image ready CS2 OEM Download Adobe Photoshop CS3 Extended OEMDownload Adobe Premiere Pro 1.5 OEM Download Adobe Photoshop CS3 Extended OEM Online Casinogulfstream casino hollywood gun lake casino updated information hammond indiana casino hampton beach casino hampton nhDownload Adobe Dimensions 3.0 OEM Download Adobe Photoshop CS3 French OEM Download Adobe InDesign CS2 v4.0 OEMDownload Adobe Photoshop Lightroom 1.3 OEM Download Adobe Photoshop Elements 4.0 OEM Download Adobe Acrobat 7.0 Pro OEMOnline Casinogulfstream casino hollywood gun lake casino updated information hammond indiana casino hampton beach casino hampton nh Download Adobe Photoshop Elements 5 OEM Download Adobe Acrobat 3D OEMDownload Adobe InDesign CS OEM Download Adobe Photoshop Lightroom 1.3 OEM Download Adobe Type Manager Deluxe 4.1 OEMDownload Adobe Streamline 4.0 OEM Download Adobe Photoshop Lightroom 1.3 Multilingual OEM Download Adobe Premiere Pro 7 OEMDownload Adobe Dimensions 3.0 OEM Download Adobe Premiere Elements 1.0 OEM Download Adobe Photoshop CS3 Extended OEMDownload Adobe Photoshop CS + Adobe ImageReady CS OEM Download Adobe Premiere Elements 3.0 OEM Download Microsoft Windows Millennium Edition OEMDownload Adobe Acrobat 6 professional OEM Download Adobe Premiere Pro 1.5 OEM Download Microsoft Windows XP Professional x64 OEMDownload Adobe Photoshop 7 OEM Download Adobe Premiere PRO 2.0 OEM Download Adobe Photoshop CS3 French OEMDownload Adobe Streamline 4.0 OEM Download Adobe Premiere Pro 7 OEM Download Microsoft Windows NT 4.0 Terminal Server OEMDownload Adobe FrameMaker 7.0 OEM Download Adobe RoboHelp 6 OEM Download Adobe Pagemaker 7 OEMDownload Adobe Premiere Elements 1.0 OEM Download Adobe Streamline 4.0 OEM Download Adobe Contribute CS3 OEMDownload Adobe Acrobat 7.0 Pro OEM Download Adobe Type Manager Deluxe 4.1 OEM Download Adobe Acrobat 6 professional OEMDownload Adobe InDesign CS2 OEM Download Microsoft Digital Image Suite 2006 11.0 OEM Online Casinogulfstream casino hollywood gun lake casino updated information hammond indiana casino hampton beach casino hampton nhDownload Adobe RoboHelp 6 OEM Download Microsoft Exchange Server Enterprise 2003 OEM Download Adobe Creative Suite 2 Premium OEMDownload Adobe Creative Suite 2 Premium OEM Download Microsoft Frontpage 2003 OEM Download Adobe GoLive CS V 7.0 PC OEMDownload Adobe InDesign CS2 OEM Download Microsoft Money 2007 Deluxe OEM Download Adobe Photoshop CS3 Extended OEMDownload Adobe Premiere Pro 1.5 OEM Download Microsoft Office 2000 Premium Edition OEM Download Adobe Acrobat 3D OEMDownload Microsoft Windows NT 4.0 Terminal Server OEM Download Microsoft Office 2003 Professional Edition OEM Download Adobe InDesign CS2 OEMDownload Adobe Creative Suite 3 Web Premium OEM Download Microsoft Office 97 SR2 OEM Download Microsoft Windows Server 2003 Enterprise Edition OEMDownload Adobe InDesign CS2 OEM Download Microsoft Office SharePoint Designer 2007 OEM Download Adobe Illustrator CS3 OEMDownload Adobe Premiere PRO 2.0 OEM Download Microsoft Office Visio Professional 2007 OEM Download Adobe Premiere Elements 1.0 OEMCheap OEM Software. Buy and download oem Adobe, oem Autodesk, oem Macromedia, oem Microsoft at SoftwareVending.com Download Microsoft Office XP Professional OEM Download Adobe Illustrator 10 OEMDownload Adobe GoLive CS V 7.0 PC OEM Download Microsoft OneNote 2003 Pro OEM Download Adobe RoboHelp 6 OEMDownload Adobe Photoshop CS3 Extended OEM Download Microsoft PhotoDraw 2.0 OEM Download Adobe FrameMaker 7.0 OEMDownload Adobe Streamline 4.0 OEM Download Microsoft Picture It Photo Premium 9 OEM Download Microsoft Windows Server 2003 Enterprise 64 Bit x64 OEMDownload Adobe Acrobat 8 OEM Download Microsoft Plus! XP OEM Download Adobe Illustrator CS2 OEMDownload Adobe Photoshop 7 OEM Download Microsoft SQL Server 2000 Enterprise Edition OEM Download Adobe Creative Suite 2 Premium OEMDownload Adobe RoboHelp 6 OEM Download Microsoft Streets & Trips 2006 OEM Download Adobe Photoshop Elements 4.0 OEMDownload Adobe Acrobat 7.0 Pro OEM Download Microsoft Streets and Trips 2004 OEM Download Adobe Acrobat 7.0 Pro OEMDownload Adobe Illustrator CS2 OEM Download Microsoft Visio 2003 Pro OEM Download Adobe Photoshop CS2 + Image ready CS2 OEMDownload Adobe Photoshop 7 OEM Download Microsoft Visual Basic 6.0 Pro OEM Download Adobe Dreamweaver CS3 OEMDownload Adobe RoboHelp 6 OEM Download Microsoft Visual Studio Professional Edition 2005 MSDN OEM Download Adobe Premiere Elements 3.0 OEMDownload Adobe Acrobat 6 professional OEM Download Microsoft Windows 2000 Advanced Server with SP4 OEM Download Adobe Illustrator CS OEMDownload Adobe Illustrator 10 OEM Download Microsoft Windows 2000 Professional with SP4 OEM Download Adobe Streamline 4.0 OEMDownload Adobe Photoshop CS3 French OEM Download Microsoft Windows 98 Second Edition OEM Download Adobe InDesign CS2 OEMDownload Adobe Type Manager Deluxe 4.1 OEM Download Microsoft Windows Millennium Edition OEM Download Adobe Acrobat 8 OEMDownload Adobe GoLive CS V 7.0 PC OEM Download Microsoft Windows NT 4.0 Terminal Server OEM Download Adobe Premiere Elements 3.0 OEMDownload Adobe Photoshop CS2 + Image ready CS2 OEM Download Microsoft Windows Server 2003 Enterprise 64 Bit x64 OEM Download Adobe Creative Suite 3 Design Premium OEMDownload Adobe Streamline 4.0 OEM Download Microsoft Windows Server 2003 Enterprise Edition OEM Download Adobe Streamline 4.0 OEMDownload Adobe Acrobat 8 OEM Download Microsoft Windows Server 2008 OEM Download Adobe GoLive CS V 7.0 PC OEMDownload Adobe Illustrator CS OEM Download Microsoft Windows XP Professional SP2 OEM Download Microsoft Windows Server 2003 Enterprise Edition OEMDownload Adobe Photoshop Elements 5 OEM Download Microsoft Windows XP Professional x64 OEM Download Adobe Illustrator CS3 OEMDownload Microsoft Windows NT 4.0 Terminal Server OEM Download Microsoft Works 7 OEM Online Casinogulfstream casino hollywood gun lake casino updated information hammond indiana casino hampton beach casino hampton nh