Ocean

Current Visual Studio 2008 Version:  2.0      Last Updated: 1-31-2010
Current Visual Studio 2010 Version:  {coming soon}

Introduction

Modern programming languages have long provided developers the capability to create code libraries that can be reused across multiple applications.  Heck, even Microsoft’s BC7 had the capability to create run-time loadable libraries.

Most developers and software shops create their own code libraries and consume that code in their applications.  The code reuse makes them more productive, reduces test costs and unifies across developers, how their applications are coded.

Code libraries that provide foundational components, services and functionality become known as frameworks.

The Visual Studio 2008 Ocean v2 framework provides the following:

  • Feature rich business object base class
  • Rule based business entity validation
  • Rule based business entity data case correction for formatting
  • SQL Server data stack
    • simplifies data layer code
    • provides business entity loader
    • built in concurrency checks
    • connection string manager
    • connection management
    • three companion stored procedures
  • WPF
    • Aero functions for creating glass
    • Behaviors for routing keys to ICommands
    • Collection of commonly used converters
    • AJAX Style Loading ComboBox, CheckListBox, Validation Summary (Form Notification) custom controls
    • DataConext Spy (thank you Josh Smith)
  • MVVM
    • View Manager Services – provides non-linear application navigation, full featured MDI replacement
    • View Model UI Services – provides application modal services like, dialogs (messages, file open, file save) and logging capabilities
    • RelayCommand  (thank you Josh Smith)
    • Messenger (thank you Josh Smith)
    • Bases classes for ViewModels and Views
    • UIValidationError – provides a way to capture data entry type exceptions in the UI and communicate them to the ViewModel; see this blog post.
  • Password generation services
  • BLL(Of T) – can replace boiler maker business logic layers.  See BBQ Shack for implementation.
  • DAL(Of T) – can replace boiler maker data access layers.  See BBQ Shack for implementation.

When Visual Studio 2010 RTM is released, I’ll publish a release of Ocean v3 and at least one sample line of business application demonstrating its feature set.  The sample application will be written in both VB.NET and C#.  That release will also have the SQL Server Compact 2008 data stack and will use it.

Background

In March of 2008 I published my work on declarative business object validation rules and case correction rules in this Code Project article.  My motivation was to provide a business object coding technique that would facilitate application code generation and that generated code would be easy to read and understand.

That same API also need to be flexible enough so that developers would not be locked into a single coding pattern.  That goal was accomplished by allowing rules to be added using attributes or code.

In September of 2008 I went on a cruise to Alaska and wrote Ocean v1.  I wrote about the cruise and Ocean in this blog post.  A few days after the cruise I started working for Microsoft on the Cider Team.  (WPF & Silverlight Designer Team)

In September of 2009 I went on another cruise to Alaska and wrote Ocean v2.  I used the BBQ Shack application as my proving ground for Ocean by demonstrating that Ocean’s code is a cross platform allowing business objects to be shared between WPF, Silverlight and .NET 2.0 assemblies.  I wrote this cross platform capability up in this blog post.  Ocean v2 supports Visual Studio 2008 and Silverlight 3.

In November of 2009 I went on a cruise to Hawaii and wrote Ocean for Visual Studio 2010 and started working on Crank.  Crank is a metadata driven code generation application that can generate code for any framework and not just Ocean.  Crank uses the new super cool T4 templates I wrote about in this blog post.  Crank is written in C#, yes, I know Dark Side, etc.  Crank was my 3rd C# application.  Programming for a week on a ship without Internet access brought me back to the old days of coding.

As of January 2010 Ocean is written in VB.NET.  I don’t have any plans to convert it to C#.  I would need a real compelling reason to allocate the time to do this.

Changes from Ocean v1 and v2

Between Ocean v1 and v2, Microsoft started shipping .NET framework code that included a Validation namespace.  In order to prevent developers from dealing with namespace collisions or using aliased namespaces, I changed the Ocean.OceanFramework.Validation namespace to Ocean.OceanFramework.OceanValidation.

I corrected two spelling errors in Ocean’s public API’s.

A few changes were made to the BusinessEntityBase class to better support multi-threaded applications.

Expected Changes from Ocean v2 to v3

In Ocean v2 WPF & Silverlight share code by using the file linking feature of Visual Studio 2008.

In Ocean v3 with Visual Studio 2010, WPF & Silverlight can share a single Silverlight assembly.  This code sharing feature is available in Visual Studio 2010 with Silverlight 3 and above.  When I initially release Ocean v3, it will only have WPF code.  Once Silverlight 4 RTM’s, I’ll ship Ocean v3.1.  This change will not have any public API changes.  To use the new assembly, simply replace the reference.

In the mean time, if you need the functionality of the Ocean v3, OceanFramework in Silverlight, simply create a new Silverlight class library, and import all the code from the Ocean v3, OceanFramework WPF version and recompile.  This blog post covers assembly sharing.

I have not yet made a final decision about the View Manager Services for Silverlight.  I know that I can use this functionality in Silverlight, I’m just not sure I want to pull the few WPF specific features out.  For now, Ocean v2 ships with the View Manager Services in the Ocean.OceanFrameworkWPF assembly.  I may move this code to the Ocean.OceanFramework assembly when Silverlight 4 RTM’s.  If I don’t move it, I’ll ship it as part of the Ocean.OceanFrameworkSiverlight assembly.

Feature Examples

The BBQ Shack application is the best demonstration of the Ocean framework.  It demonstrates WPF & Silverlight code sharing and uses almost all features in the framework library.

  • BBQ Shack (this is part of the below downloads)

I also wrote a small Ocean Feature Demo application that is a shell MVVM application that shows how to use the View Manager Services and View Model UI Services.  This very simple application doesn’t do anything except demonstrate one technique for application navigation and solving the MDI question that almost all developers new to WPF ask about.

  • Ocean Feature Demo (this is part of the below downloads)

Documentation

Over time I’ll add more documentation for Ocean.  This is one of the reasons I’ve held off not publishing this, but I realized it would simply be better to publish this now along with the two above examples.

I know many have been waiting and I apologize for not publishing sooner.

System Requirements

  • Visual Studio 2008 with SP1  (I have not tried BBQ Shack on Visual Studio 2010)
  • Silverlight 3 Developer Version (not Silverlight 3 Beta, not Silverlight 4 Beta)
  • Note:  If you cannot create a Silverlight application in Visual Studio, you do not have the Silverlight Developer version installed.
  • SQL Server 2008 or SQL Server 2008 Express

Downloads

Sky Drive BBQ Shack Source Code, Database and Ocean v2  (opens page where three zip files are located.)

If you just want Ocean v2, you can simply select the Ocean zip file on the above down page.

If you want the BBQ Shack, you must download all three of the zip files.  The BBQShack and Ocean zip files should be unziped in the same folder, like your \Projects folder.  After unzipping the folders will look like this:

…\Projects\BBQShack

…\Projects\Ocean

Doing this will ensure that the Ocean projects can be found by the BBQ Shack solution.

After unzipping the above download zip files, you will have these folders in your projects folder.

folders

71 Responses to Ocean

  1. [...] recently published a huge body of excellent work.  He has been working for quite some time on Ocean, a code generation system that blows my mind, and BBQ Shack, a great line-of-business WPF and [...]

  2. wilzad says:

    Hi,
    I was studying Ocean and BBQ Shack for last two days, I have a few doubts, Please clear them if you have some time to spare. I tried most of your blog posts and codeproject articles but unfortunatly i didn’t get any answer. The doubts are

    1. I have created my business entities as EDM (Entity Data Model). how do i implement validation to these entity classes using Ocean.
    2. Even if i have my data objects as Entities, do i have to create duplicate data objects for implementing validation ?

    thanks in advance.
    Vilsad

    • Vilsad,

      I reply to all comments on my blog and Code Project articles. Please send me any URL’s for messages you have left without responses. I would like to track down the problem.

      EDM could be a problem. EDM owns the creation of the entities which is one reason I don’t use it and have not invested any time working with it.

      Are you doing Silverlight or WPF? If Silverlight, I know that RIA services can work with the DataAnnotations validation attributes.

      EDM does offer the ability for you to have partial classes. So you “could” add business rules in code instead of using attributes.

      Another approach you could take would be to pass the entity object to a validation class that did the validation instead of the entity.

      Personally, I like being able to have an entity validate itself, no matter which tier it is currently in., UI, Business or Data Layers. This is why I wrote Ocean.

      Maybe in the future, EDM will provide the ability for developers to provide a T4 template for the generating the EDM Entities.

      I wish I had a better answer. Perhaps the EDM Team does.

      Cheers,

      Karl

      • wilzad says:

        thank you for the quick reply, I am doing WPF, i am proceeding with validating the Entity at data layer itself using partial classes. have you got any documentation / tutorial for ocean ?
        One again thank you for the reply.
        Regards
        Vilsad

    • Vilsad,

      I have not had time to publish docs. I’m in the middle of another huge project that generates applicaitons from Metedata. This is also part of Ocean.

      Once this is done, I’ll release it and docs.

      But to wire up validation in code as opposed to using attributes, have a look at the BusinessEntityBase class. It has many methods you can override to add validation rules.

      Have a look at ccc_CharacterCasingCheck.vb. Look at the very bottom of the file. The validation rule is being added in code.

      Question: If your validation is in the data layer, how will the UI take advantage of the rules at runtime?

      Cheers,

      Karl

  3. ipengi says:

    Karl, am I right in thinking that, ocean only works with sql server at this point? If so, do you expect that it will offer support for other dbs in the future?

    • The only SQL Server dependent part is the OceanFrameworkSQL.

      The rest has no dependency on SQL Server.

      I would be very easy to use other databases or modify the code in the DataAccess class to work with other databases.

      Cheers,

      Karl

  4. billgerold says:

    Hi Karl
    This may be a little off topic but I do have a (general) question
    i noticed that you mentioned you would not normally store the connections string in the config file for a production application.
    What do you consider a good alternative?
    How would you go about allowing the user to configure their own configurations?
    I have a number of applications in production and always struggle with this.

    • Bill,

      I never allow the user to “see” the real connection strings. If you do, they can use just about any tool to connect to the database.

      I have a very complex technique that I use to hides connection strings from the users, does allow them to connection the applicaiton to different databases and also works with Report Builder and Reporting Services. This also works for remote and local users. By remote, I mean users getting all their data over the Internet. Not sure I can share this.

      One technique you “could” try is to use a web service to list the options for choosing.

      Just keep in mind, the number of services that require a connection string like the database, reporting services, report builder, others.

      Karl

      • billgerold says:

        Thanks Karl
        I don’t let them see them either, I was just wondering if you had a solution that would allow them to change the connection “On the Fly”
        It seems an Item that all apps need but is never really discussed

        Your apps are really great and I learn alot from them
        Keep up the Great work

  5. [...] goal for this blog post and the BBQ Shack application is to demonstrate the features in Ocean v2, while at the same time provide a real world MVVM line of business example.  Trying to reign [...]

  6. jaweedkhan says:

    I don’t know just a little correction in your great article

    In November of 2010 I went on a cruise to Hawaii and wrote Ocean for Visual Studio 2010…
    :)
    Cheerz
    Jaweed

  7. jaweedkhan says:

    Hi Karl,
    Thanks for your great work… Can you please upload source code and database on CodeProject or some other code sharing web site
    because sometime Personal Storage Sites are blocked by firewall and proxy servers..

    Thanks
    Jaweed Sarfraz

  8. joelkarr says:

    Karl,

    Ocean Framework really solves many of the issues I had getting started with WPF and non linear navigations. I am attempting to convert it to C#. I was just wondering if you happened to have a C# version?

    If not, I would be more than happy to send my “converted” version to you.

    Joel

    • sarmaad says:

      Hi Joel,

      I am finding it difficult to read the VB version ;) and was going down the road of converting to c#.

      However ….

      I would appreciate to see your converted c# version of the framework.

      Let me know if you have the zip file hosted somewhere.

      thank you…

      sarmaad

    • Joel & Sarmaad,

      I’m converting to C# for Windows Phone 7, then I’ll do the conversion to C# for Silverlight and WPF.

      Cheers,

      Karl

  9. Taras Buha says:

    Thank you for so pretty blog, especially for Ocean framework.
    Where I can get c# vershion?

  10. brisleyegts says:

    Karl,
    Its the end of October, the Phone Ocean is out. Are we going to see the indicated Ocean 3/3.1 and later released in VB?
    Really interested in this!
    Thanks,
    Brian

  11. Brian,

    It is impossible for me to maintain a VB and C# version of my code.

    As you know, I’ve moved to C# a while back. Now that I’m also working in the web space, I’m glad I did. JavaScript and jQuery look more like C# than VB.

    I’m going on a cruise in two weeks and will bring back Ocean 3 for the desktop (maybe silverlight 4 too) and a brand new reference application.

    The fact that Ocean is in C# really won’t impact users, as the dll can be referenced.

    Best,

    Karl

  12. Orgbrat says:

    Hi Karl and Merry Christmas..

    I am interested in starting my first WPF 4.0 using MVVM VS 2010 project with your Ocean Framework. Is there an update as to when you might have the 3.x C# version published so someone might try it.

    Happy Holidays

    Steve

    • Hi Steve,

      Everytime I give a date, it seems to get delayed.

      I’m working on extensions for MVC3 and a very cool application that shows Ocean off. Let me see how this week goes, maybe I can post this within a week or so. I’ve been thinking about a much smaller application that demonstrates how to use the framework. Give me the next 10 days.

      Best,

      Karl

      • Orgbrat says:

        Hi Karl,

        I know you are very busy so this would be very much appreciated.

        I have looked at MVVM articles and videos for a week including your “In the Box – MVVM Training” which by the way I do like your concept of traing inside VS 2010. I have studied Josh Smith, Jason Dolinger, Billy Hollis and your own articles and videos. I think of all I have looked at, I like the Non-linear navigation aspects of the two sample apps that Billy Hollis and yourself have talked about.

        Since I have come from from a WinForms programming background including the MDI interface, I find this WPF Non-linear navigation something I like to try a simple sample for at least myself.

        I just want to say thanks for all the effort you guys have spent trying to help other developers.

        Thanks

        Steve

  13. stevensrf1 says:

    Has the code been upgraded to c# yet. If so the code that is available for download is in the VB.Net carpola. Does anyone know where I can download the c# code? If so can someone send me the link to download the code in C# at steve_44@inbox.com

    • Steven,

      I have the c# code, but have not released it yet. I have not had time to finish the example code that consumes the library yet. Currently, I’m getting pulled in several directions. I’ll need a few more weeks.

      Best,

      Karl

      • damonronco says:

        Is there any chance you could release the library as is and then possibly get users of the library to help build examples?

        • Karl says:

          Very sorry, my time has been fragmented in several directions. I’ll be working on the project full time starting on 28 May (no BBQ weekend for Karl)

          Cheers,

          Karl

  14. goldytech says:

    Hi Karl

    Any tentative timeline for next version of Ocean or else you have become fanboy of PRISM :)

  15. Karl says:

    There is an early drop of Ocean 3 here:

    https://karlshifflett.wordpress.com/2011/06/29/boise-prism-unity-wpf-mvvm-code-and-decks/

    I’ve been spending 100% of my off-time looking for a lot and working with builders to get my home built. This is taking up much more time than I expected.

    I have two priorities after I settle my home (actually hoping to get this settled over the next two weeks)

    1. Update Mole
    2. Update BBQ Shack to Prism (50% completed). This includes Ocean 3 (100 % completed)

    Best,

    Karl

  16. Jay Bishtawi says:

    Hey Karl,

    Any update on BBQ Shack to Prims?

    • Karl says:

      Jay,

      I’ve started it, but was laid up for 12 weeks with neck surgery and recovery. I’ll be finishing up XAML Power Toys this week or next and will go back to Visual Studio 2010 BBQ Shack w/Prism.

      Sorry for the delay. I also purchased a new Harley-Davidson Road King, so you know how my weekends have been spent.

      Best,

      Karl

  17. Jay Bishtawi says:

    Hey Karl,

    Thank you so much for your prompt response; and sorry to hear about your surgery, I understand about back pain. Congrats on the new bike. I am trying to understand how are you going to deal with the ViewManagerService in Prism. If you can elaborate further on this area it would be great.

    • Karl says:

      Jay,

      I’m using Prism Region Navigation now. I was the PM for Prism 4.0 for the last 1/3 of the project and was able to contribute to the navigation API’s in Prism 4. I would suggest using them instead, although ViewManagerService is very good and fulfilled all my requirements.

      Using the Prism API’s as a unit allows taking advantage of the many features regions expose.

      Best,

      Karl

  18. Hey Karl,
    Thank you for all the work you have put into Ocean, I’ve been studying the framework as well as BBQShack for the last few weeks and i have learned a ton. I noticed in the Ocean3 preview, the GenericLayers assembly has had a bit of a face lift. Would you happen to have any quick one off examples demonstrating the use of IService and IRepository?

    • Karl says:

      Josh,

      In the bootstrapper I configure the Unit container as follows:

      this.Container.RegisterInstance(env, new ContainerControlledLifetimeManager());
      this.Container.RegisterType(typeof(IEventResolver), typeof(EventResolver));
      this.Container.RegisterType(typeof(IResolver), typeof(UnityResolver));
      this.Container.RegisterType(typeof(IDialogFacade), typeof(DialogFacade), new ContainerControlledLifetimeManager());
      this.Container.RegisterType(typeof(IDataAccess), typeof(DataAccess), new InjectionConstructor(Obfuscate.DecryptString(Properties.Resources.ConnectionString)));

      // Synchronous data layer
      this.Container.RegisterType(typeof(IRepository), typeof(Repository));
      this.Container.RegisterType(typeof(IRepositoryCount), typeof(RepositoryCount));
      this.Container.RegisterType(typeof(IRepositoryList), typeof(RepositoryList));
      this.Container.RegisterType(typeof(IRepositoryListByKey), typeof(RepositoryListByKey));

      // Asynchronous data layer
      this.Container.RegisterType(typeof(IRepositoryAsync), typeof(RepositoryAsync));
      this.Container.RegisterType(typeof(IRepositoryCountAsync), typeof(RepositoryCountAsync));
      this.Container.RegisterType(typeof(IRepositoryListAsync), typeof(RepositoryListAsync));
      this.Container.RegisterType(typeof(IRepositoryListByKeyAsync), typeof(RepositoryListByKeyAsync));

      // Synchronous business layer
      this.Container.RegisterType(typeof(IService), typeof(Service));
      this.Container.RegisterType(typeof(IServiceCount), typeof(ServiceCount));
      this.Container.RegisterType(typeof(IServiceList), typeof(ServiceList));
      this.Container.RegisterType(typeof(IServiceListByKey), typeof(ServiceListByKey));

      // Asynchronous business layer
      this.Container.RegisterType(typeof(IServiceAsync), typeof(ServiceAsync));
      this.Container.RegisterType(typeof(IServiceCountAsync), typeof(ServiceCountAsync));
      this.Container.RegisterType(typeof(IServiceListAsync), typeof(ServiceListAsync));
      this.Container.RegisterType(typeof(IServiceListByKeyAsync), typeof(ServiceListByKeyAsync));

      this.Container.RegisterType(typeof(ILoggingService), typeof(LoggingService));

      Here is the concrete implementation of the the LoggingService ctor and a method that calls a logging method that writes a log entry into the database.:

      public LoggingService(IServiceAsync serviceAsync) {
      if (serviceAsync == null) {
      throw new ArgumentNullException(“serviceAsync”);
      }
      _serviceAsync = serviceAsync;
      }

      void WriteToDatabaseAsync(ApplicationLogEntry entry) {
      _serviceAsync.InsertAsync(
      entry,
      r => {
      if (r.AffectedRows != 1 || r.NewIdent WriteSendingExceptionToLogFile(ex, entry));
      }

      As you can see, configuring a container, setting up a dependency in a ctor and calling its method is SO SIMPLE. The above uses the TPL library.

      When BBQShack Prism comes out, this will all seem much clearer.

      Best,

      Karl

      • That makes perfect sense! extremely simple. Thanks again for taking the time to show the community an actual real world example of this stuff.

      • Have you encountered the following error?

        If i use the code sample above, it works fine. But if in another class i need IService instead of IServiceAsync

        I get the following:
        The type Repository`1 has multiple constructors of length 1. Unable to disambiguate.

        • Karl says:

          Josh,

          I’ve not seen this, but I know what it is. Have a look at the concrete class and see what method it is having trouble disambiguating.

          I’m not seeing this issue.

          Best,

          Karl

        • Karl says:

          Josh,

          OK, I was able to repro the same problem you are having. It has a simple solution.

          this.Container.RegisterType(typeof(IRepository<>), typeof(Repository<>), new InjectionConstructor(typeof(IResolver<IDataAccess>)));

          When you register your Repository (or other types) that have two constructors, the Unity container does not know which constructor you would like to use.

          In the above line of code, I’ve told Unity to use the constructor that matches the signature of the InjectionConstructor class.

          This should sort this out for you.

          Best,

          Karl

  19. Jay Bishtawi says:

    Karl,

    I am not sure how you can have the non-linear navigation work Prism Region Navigation. I see in a previous post that you have indicated that you are about 50% done with BBQ Shack (PRISM), is there a way for you to share what you currently have completed, or a way for you to share how you are doing the non-linear navigation in PRISM, any snippet of code you can provide will be greatly appreciated.

    Thank you very much for the great work and support you provide the community.

    • Karl says:

      Jay,

      I’ve written about it a good bit about non-linear navigation here with many code examples, both WPF and Silverlight: http://blogs.msdn.com/b/kashiffl/

      Also check this out, http://karlshifflett.wordpress.com/2012/03/24/boise-code-camp-prism-ocean-3-session/

      This includes a modified Prism 4 that that provides the Uri of the previous view so the new view can navigate back.

      The example application that I taught from shows a high octane use of Prism region navigation.

      There is a slight paradigm change between my 2008 BBQShack but its worth the effort.

      Sorry, but I don’t share code before its ready. I just don’t have any extra time to … However, the above Boise Code Camp code and Ocean3 is good to go.

      Best,

      Karl

  20. Jay Bishtawi says:

    Karl,

    I want to start by saying many thanks for all your work, and your willingness to share with the community. I am looking forward to seeing your completed BBQShack Prism project.

    Can you elaborate little further if you can, on the paradigm change between the previous version and the new project please?

    • Karl says:

      Jay,

      I’m sorry but I just don’t have the cycles to write this up. I suggest reading the Prism 4, chapter on navigation as this explains how the new BBQ Shack will work,

      Best,

      Karl

  21. Jay Bishtawi says:

    Karl,

    Thank you so much for all your guidance as I am working through the non-linear navigation in my PRISM application. In this post http://blogs.msdn.com/b/kashiffl/archive/2010/10/04/prism-v4-region-navigation-pipeline.aspx there is a comment by you indicating that you are going to redo the sample in UNITY and post on your blog, but I can not find it. If you have it handy can you please provide me a link for the new project.

    The main issue I am struggling with, is how to hook the “ShellViewModel” to the “ShellView” using UNITY.

    Any guidance or direction you can provide will be greatly appreciated.

    • Karl says:

      Jay,

      Have a look at the code from the Boise Code Camp here: http://karlshifflett.wordpress.com/2012/03/24/boise-code-camp-prism-ocean-3-session/

      There is an application I wrote called Wpf.Demos

      This is one simple technique:

      public partial class ShellView : Window {

      [Dependency]
      public ShellViewModel ShellViewModel {
      get { return this.DataContext as ShellViewModel; }
      set { this.DataContext = value; }
      }

      public ShellView() {
      InitializeComponent();
      }
      }

      Just remember to use Unity to create your Shell as below in the bootstrapper:

      protected override DependencyObject CreateShell() {

      var shell = this.Container.Resolve();
      Application.Current.MainWindow = shell;
      Application.Current.MainWindow.Show();
      return shell;
      }

      Best,

      Karl

  22. Jay Bishtawi says:

    Hey Karl,

    Thank you so much for your outstanding work on MVVM in The Box.

    I have a question regarding DialogInteraction, you have created an InteractionDialogAction and InteractionDialogBase.

    and you created 2 different windows for each one of those interaction types.

    i have a couple of questions regarding extending this model. I want to be able to pass a view and viewmodel for each ModalInteractionDialog so it can be used across multiple (modules).

    Can you provide any guidance on how to adjust this please?

    Thank you in advance for your time and help

    • Karl says:

      Jay,

      I don’t use interactions any more to display dialog boxes. Too many moving parts. Instead I have a FormControl that is placed on all my forms. I can then display anything required from the ViewModel, like dialog boxes, etc.

      I have this in production today at work and will add it to Ocean and the Prism BBQ Shack application.

      The code is extensive so there is no way to properly guide you until I ship Prism BBQ Shack.

      If you need to get this sorted out now and can use the Prism interactions, post a question on the Prism forum on CodePlex. They have outstanding support.

      Best,

      Karl

  23. Jay Bishtawi says:

    Thank you so much for your time and your answer. Is there an ETA on when you think you might have the Prism BBQ Shack done?

    Semper Fi Marine….

    • Karl says:

      Jay,

      My weekends have become SO busy with summer here. I really want to publish this work though. I’m on vacation the rest of the week. I’ll try to schedule two nights a week when I get back to work on it.

      Best,

      Karl

  24. Josh Graham says:

    Karl, Is it possible to pass an object as a navigation parameter?

    • Karl says:

      Hi Josh,

      Yes. I have modified Prism to do this.

      I’ll be posting Ocean for Prism soon and it has this.

      If you can’t wait, modify the Prism source to accept one. Not that difficult. Just take your time, understand all the entry points for initiating navigation and add an overload that accepts Object, then test it.

      Best,

      Karl

  25. Jay Bishtawi says:

    Hey Karl,

    Is the Ocean for Prism will have the “FormControl” for dialog interaction with it?

    Thanks

  26. Jay Bishtawi says:

    Hey Karl,

    On June 14, you mentioned that you will be posting Ocean for Prism soon. Do you have an ETA?

    Thank you and have a wonderful 4th of July.

  27. Your work on this is eagerly awaited and appreciated. There are so few examples of full “real” apps available therefore making this is a great resource.

  28. Jay Bishtawi says:

    Hey Karl,

    Hope you are having a great summer.

    Was hoping you can provide some ETA on Ocean for Prism.

    Have a great day.

    • Karl says:

      My weekends this summer have been crazy and will be through September.

      It is my hearts desire to post this, just lacking cycles.

      I have it in production at work, and have made a number of improvements, so the wait (bummer) will be worth it in the long run.

      Best,

      Karl

  29. Jay Bishtawi says:

    Karl,
    Thank you so much for your reply. I hope you have been enjoying your summer and the crazy weekends are all fun.

    As llan stated we are eagerly awaiting your work, and I am sure it would be in the same high standards as all your previous work.

    I want to express my gratituded as well, and I am looking forward to see the completed product.

    Thanks again Karl

  30. rameshdurai says:

    Hi karl,
    Any updates on ocean v3? I’m eagerly waiting for it.

  31. dush_a says:

    Hi Karl,
    Thanks for Ocean 3 update. Do you have any updates on PrismBBQShack ?

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 246 other followers