Wide is the quickest way to create a participatory shell application such as Visual studio 2012. It's completely free and makes use of popular open-source projects.

Website → https://github.com/chandramouleswaran/Wide
Source → https://github.com/chandramouleswaran/Wide

Stack

  Hover over components used in this project to learn more.
platforms
languages
frameworks
Libraries

Overview

Wide - IDE Framework

The Wide IDE framework is a library that lets you quickly create IDE shells using popular open source projects with minimal code. Wide provides a set of PRISM modules that form the core of your application. All you need to do is create PRISM modules that can participate in building the application. Some of the functions provided by Wide out of the box are:

  • Core module (Required)
  • Used for customizable splash screen
  • Used for Menus (supports regular menus with icon, checkable menus)
  • Used for Toolbar (menu view model can be reused for toolbars)
  • Multiple toolbars can be added to the IDE (check demo)
  • Themes (VS2010, VS2012 Light/Dark theme and no theme)
  • ThemeManager to add/remove themes
  • Used for Statusbar (in development)
  • Open file service with participatory handlers (could be based on extension or even file contents)
  • Save and restore layout along with opening documents
  • Logger module (For the logging tool)

Using NuGet

You can also install Wide using Nuget. Below given are the steps to install and also start using Wide quickly.

  • Create a WPF Application project (4.0) - Give it any name
  • Once the project is created, delete MainWindow.xaml and App.xaml (this needs to be done as NuGet is going to update the project with new files)
  • Open Package manager console (View > Other Windows > Package Manager Console)
  • Type “Install-Package Wide.Example -Pre” (NuGet)
  • Once the package is installed - open the Properties of App.xaml and set the build action to “ApplicationDefinition”
  • Set the Copy to output directory for NLog.config to “Copy Always”

Screeshots

Screenshot

Motivation

Main Purpose

I often run into creating applications that opens, edits, saves a file/remote script etc. I am sure that most of the developers create such utility applications to make their work/life easy. As I wanted to learn WPF, PRISM, MVVM and create an IDE like application - I created the Wide IDE framework. Rather than a framework, Wide is a set of modules that can help in building VS 2012 like applications quickly. Like every modular PRISM application, modules can participate in building the IDE along with adding new functionality to the application.

Why I work on Wide

  1. Fun to work on WPF, .NET and C#
  2. To learn and improve my programming skills.
  3. Improve my communication and teaching skills.
  4. Use different source control versions and explore other projects.

Wide Documentation

There is no comprehensive documentation at this point. A good way to understand Wide is by looking at the sample application. For more information on the framework, you can visit this CodeProject article

Lessons

Timeline estimation

Wide started out as an after work hours project that I estimated to get done within couple of months. But the interesting part was, researching, learning and testing sample code alone took 2 months!! I don’t want to get all teary-eyed here but learning, designing and mastering is the key to create a decent software. Overall, this project took me around 5 months of “after work hours” (around 2 hours daily - weekends excluded). This time not only included Wide but also included submitting PRs for MahApps.Metro for certain features needed for Wide and adding themes for AvalonDock. I am generally good at estimating timelines at work but this being outside of work and something new, I was way off ! Thanks to my wife for supporting me these 5 months!

Reinvent?

The most important lesson I learnt and I keep on learning with every project is to understand that there is someone who has already thought of your idea (99% of the case). There are some good open source projects out there such as Gemini, Orchestra, SoapBox etc which does what Wide does. So, why reinvent the wheel? Is it worth it?

  1. If you want to learn something and create something new and different from existing frameworks - Yes!! Its better to understand/research these frameworks first and see if it fits into what you want. If it does, then reinventing the wheel is just a waste of time.
  2. Worth it or not - in the process you deciding, you would have learnt something which is always “worth it”!!
  3. Remember - “Orkut, MySpace came before Facebook”

Share, Contribute and advance…

People love freebies !! My father jokingly says “People will take anything for free - even poison !!” Jokes apart, it just feels so good to contribute to the community! Business-wise, it makes no sense - but you feel good and learn at the end of the day.

self
Chandramouleswaran

Hello! I'm a 26 year old, WPF/C# self-learned software developer, musician from India with a Master's degree in Computer science. I believe that every piece of software and information/knowledge is available for free for those who seek it.

Purpose

The purpose of this website is to share code, knowldedge, and happiness. Credits to plusjade for jekyll-bootstrap and this website.

Contact