Introduction to "Acropolis"

"Acropolis" is Microsoft code-name for the project having a toolkit for creation of modular, business-focused windows client applications easily. Acropolis runs on .NET Framework. It includes a set of tools and a runtime. It allows us to build reusable components and assemble them to create a working application, which is easy to modify or enhance. Currently, Acropolis is in CTP1 phase. It comes as a part of August 2007 CTP download. It can be downloaded from here. We can download following components:

  • AcropolisMSI.msi: It consists of run-time and tools.
  • Acropolis_Help.exe: It contains Help file in CHM format.
  • AcropolisSamples.exe: It contains few samples designed using Acropolis.

Acropolis is based on Modular Development.  Modular development allows us to build applications using a set of loosely coupled components. It uses composite application framework to address complex and frequently changing business requirements. By using this framework, we will develop our applications by just connecting reusable and configurable loosely coupled components. By using this kind of model, it is easier to implement a new business requirement or change request.

Acropolis is having a set of components to build an application. These components are classified as parts and services.

  • Parts: These components are self-contained and reusable business logic units, which can be exposed through our UI components. These UI components are called as part views.
  • Services: These components cannot be exposed through our UI [Won't have UI], but they are reusable business logic units across multiple parts and applications.

Acropolis components provides following benefits:

  • It's easy to divided work among the development teams. Different teams can build different parts or services. Finally, these components can be integrated to design actual application.
  • Improves Code reusability by making of use of reusable parts and services.
  • Improves maintainability. It's easy to add an enhancement or change request without any side-effects.

Acropolis is having robust infrastructure to manage interactions among the components. It internally uses many component-interaction patterns to reduce the stress on developers. It separates business logic from user interface, by which we can enhance our UI without any side-effects on business logic.

Acropolis is having following tools and elements:

  • Part: It is the basic building block of the application. It is a portion of our UI having self-contained and reusable functionality. Parts separate business logic and UI.
  • Part View: It is UI part of the part. This are also called as skins.
  • Form:  It is a part having one or more child parts, which will work together to implement a functionality or scenario.
  • Service: It is a component that implements a specific pluggable functionality without any UI. Services can be used by parts to implement their business logic.
  • Shell: It is the component that will combine parts, forms and services together. Shell communicates with parts or forms using "Acropolis" runtime.
  • Runtime: It is the framework to run "Acropolis" applications. It manages the lifetime and communication among parts and services in a "Acropolis" application.
  • Connection Point: It is a point for communication between a part and other elements like forms, services.

Let's look into few of these components in deep.

  • Acropolis Runtime and Shell: It provides a framework and application host for running the smart client applications desgined using Acropolis. Runtime manages the lifetime and communication among parts and services. Shell is the host application that launches parts or services.
  • Services: These are reusable elements having business logic in it and does not require UI. This can be plugged into the applications by making parts to declare a service dependency 
  • Connection Points: These are used to establish loose coupling among part views and external entities. You can add connection points to our application either by declaring those in connection point section of xaml file [Application.xaml]. Connection point declaration consists of a name and specification whether the point is visible to other part views or not.
  • Part Views: "Acropolis" consists of two components, one is having businedd logic called as part and other is having only UI code called as part view. By using part views, we can provide UI independence. Connection points provides the necessary communication between parts and part views. This points are called part-view contracts.
  • Forms: It is a collection of child parts working together for implementation of a specific functionality. A part communicates with its child parts through connection points to provide loose coupling.

I am ending up the things here. I hope this article will be helpful for all.