Feb 18 2016 SoFri Meeting
We began with a shout out to sponsors including jet brains and infragistics who both had give-aways for end of the night. Our sponsors help us keep the lights on and the excitement going at each DNN user group meet-up and event. Be sure to thank our sponsors and support them in return!
DNN Con - Baltimore, April 1-2 2016
The first announcement for the night was an update for the DNN Con in Baltimore in April. Joseph Craig and Don Bishop have been putting together a promising event and are building up some exciting momentum. Here are a few things we know about the event at this point:
- Our very own Clint Patterson will be giving a Keynote presentation!
- Joe Brinkman and Will Morgenweck will be presenting as well
- Sponsors, there's still time for sponsors to step up
- Everyone should attend DNN Con that can get up to Baltimore! A call out to spread the word and get others to attend
- There is also still open the call out to speakers and presenters, so anyone with ideas is encouraged to chime in now!
DNN Connect - Spain, June 2-5 2016
A touch later in the summer, we have the awesome convention that's on other side of the pond. DNN Connect will be in Spain this year and we heard a little about it, most enviably that SoFri's David Poindexter would be attending. We look forward to getting a travel log of the exciting European road-trip!
- There's a call out for speakers, www.dnnconnect.com
- There's a neat voting system that allows people to vote up ideas and topics that can be presented
- There's a call out for sponsors of specific elements... our favorite is the Beer Keg Sponsor
DNN 8 Module Contest Update
Joe Brinkman talked for a moment about the DNN 8 Module Development Contest and that voting should be ready to get started tomorrow. We'll post a link/update as soon as we see voting begin!
NEW DNN Documentation Center
Joe also talked about the new DNN Documentation Center that has just been released, and how we can all participate in updating and contributing to it. We'll be sure to follow up with a more in-depth review of the system of DNN help documents, glossary, documentation and content in a future SoFri meeting. Until then, be sure to check it out! dnnsoftware.com/docs
SoFri Meet-Up Sponsorship
Oh, another quick note and shout out to a different type of sponsor, David talked briefly about the MeetUp that were' currently using to promote Southern Fried DNN the user group meetings locally and reminded everyone that they can chip in and sponsor the $22/month MeetUp account in any level of donation. This month's gracious sponsor was the noble Clint Patterson.
SoFri Upcoming Meetings
As a last bit of meeting information before we dove into the speaker session, David gave a brief introduction for our next two SoFri meetings.
SoFri Meeting March 10 - Tony Carter Xamarin, DNN 8, DNN Web API, JSON Web Token - a bevy of new ideas, new technology and a deep-dive into new approaches! Note The Special Date which is not the usual third-Thursday.
April 21 - Nik Kalyani Always exciting with a fresh approach and, often, new cutting-edge technology. What's in store for this meeting? Don't miss out!
Darrell Tunnell's DNN Packager
As a fresh voice and a different approach, SouthernFriedDNN was proud to present Darrell Tunnell who joined us online from the UK to share this new paradigm for DNN development.
Referenced throughout the notes below, here are a list of the site and link references for DNN Packager:
An Introduction to Common DNN Development
David Poindexter opened the speaker session with a brief introduction to one of the more common, accepted methods for approaching DNN development within Visual Studio. It helped put into focus why Darrell's approach and new DNN Packager are an exciting new direction and a great introduction for new developers wishing to get started quickly and easily!
Developers will often have fantastic ideas for new DNN extensions, but setting up a project in Visual Studio that allows them to be productive can be a dark, long and winding road. One must step very carefully to avoid MSBuild errors, missing target's files, and the popular "where is my ZIP file?".
For the uninitiated developer, it can lead to a dampened spirit, and for a truly feeble developer, a desire to give up and try out some other CMS instead.
Even for veteran developers, solutions based on DNN can often contain hundreds of modules, and there is a need to be as DRY as possible in everything you do. Long winded, repetitive setup tasks that involve manual steps are to be avoided at all costs.
In this session, Darrell Tunnell introduces an open source solution to this issue, called "DnnPackager" and shows just how easy it is to get up and running productively in Visual Studio.
Our Speaker, Darrell Tunnel
Darrell Tunnell is a Lead Application Developer at Reach Contact Ltd based in the UK. He is also an Open Source contributor, and is involved with many projects on GitHub. For the past year he has been delving into ASP.NET 5 and MVC 6. His experience with DotNetNuke (DNN) first started as a hobby several years ago, and was also put into practice during his 4 years at "Silverbear Ltd". There he was a Senior Developer working on a DNN based solution for projects focusing on membership-oriented organizations. And here's a cool fact - Darrell was already using SPA development for DNN prior to official support in the DNN Platform! :-)
In the DNN Packager GitHub location, Darrell outlines his motivation to create DNN Packager and its primary purpose,
"Many people use visual studio DotNetNuke project templates for their DNN development. I have a number of issues with project templates - which I describe [in a blog post titled "Why not use a DotNetNuke Project Template!"]
I have tried to eliminate the need for project templates, and instead take advantage of NuGet and the Package Manager Console to streamline Dnn development. This is the same principal that Entity Framework Code First uses."
Introducing DNN Packager Version 2.0.2
DNN Packager is on GitHub and is also present as a NuGet package with the goal to get DNN Developers up and running as pain free as possible, helping them avoid build problems and streamline the development workflow.
A quick note that although having some notes from the presentation in this post, you'll obviously get more out of it by watching the video that we recorded of the session. Also, these steps are all really well documented in his "DNN Packager Getting Started" blog article, so be sure to follow along there for notes, photos, details and more!
Get Up And Running!
Darrell jumps right in at the beginning by opening new project in visual studio to start from scratch. He runs through the following steps:
- Created a new project in visual studio titled "ModuleBeta" as a demo
- Add NuGet package for DNN packager (browses for DNN Packager, and it installs instantly)
- Read Me is skipped because Darrell is here to run through in person!
- Right off, he shows how, if he builds it, it's already produced a DNN Module install zip file like any standard DNN module
- Add DotNetNuke.Core NuGet to get the DNN 7 package to bring in the DNN 7 assembly. By choosing this, you can also target DNN 6, 5, etc if you want to since other NuGet are available. It's up to you to then update the manifest file but there's not a restraint within DNN Packager, you can do any dnn version. Shaun Bobble asked whether older DNN versions, which sometimes needed additional DLLs, would be included. Darrell recommended that in those cases, try to add the relevant NuGet package as needed, but of course it can be manually added from a local resource
- Next he chose to "Add New Item" and selected to add a user control
- Darrell then updated that in the manifest so it was present. Darrell talked a little at this point about the idea, the methodology... about how staying connected to NuGet for packages means that dependencies are maintained. And if there are group/team workflows and builds that are done across GitHub and source control, then keeping it setup this way makes it manageable and dynamic.
- Ready to Test!
Darrell now did a build and we're ready to test install opening the Package Manager Console (under Tools menu if it's not visible already). Typing "Install-Module DNN7" and having selected the ModuleBeta, the build text output says that it's just installed one package... and we're done!
Darrell browsed to see the module in place within DNN. David pointed out how fast and cool it is that the module was already installed in the test DNN instance with no step in the Extensions page necessary!
In a good example of development and debugging during a live presentation, we enjoyed going through and troubleshooting two edits that were necessary. Darrell mentioned that these don't happen all the time, but for us, it was a great example of hands-on debugging.
The first item was that, "NuGet sometimes drops extra web.configs into folders indiscriminately," as Joe Brinkman pointed out from online. David then pointed out the second item which was a typo in the manifest that was made while talking and typing too fast ; )
Darrell mentioned that working within the manifest was the weakest link and that he was working on a visual editor that would help alleviate typo type problems Darrell used the phrase "malarkey" ; ) when talking about how to install either Debug or Release builds. He then talked about this method helping really keep clear that the builds and rounds of testing would completely clear the solution when uninstalling and clearing between builds.
DNN Packager Key Features
This lead to talking about a few key features of DNN Packager regarding builds and creating different build configurations.
- Debug Attach - loads up the debug version and attaches and launches your Visual Studio Debugger so that you can debug your code just by adding that couple of words onto the command. You can then leave that running while you're writing code... David chimed in, "Darrell, if this works, this is brilliant!"
- Including Additional Files In Install Package - Any file you add, as long as the build file action is set to "content", it will get added into the resources zip that is generated. This covers CSS, JS, etc as they default to "content" You can also exclude files by changing their content type. Additionally other directories and libraries can be added as additional package assemblies
- Build Specific Versions of Manifests - This helps you put in the additional PDB file to be installed from a debug manifest vs the release manifest not having that file. He then went to talk a little about the inclusion of the different manifest versions that are automatically picked and included
- Team City Integration - "If you're not using Team City for your module projects, then you should be!" Darrell said... and we think that's worth checking out too! Team City from sponsor JetBrains is powerful continuous integration that benefits developers, admins, your project and builds... definitely worth checking out! Whenever there is a build, DNNPackager is clever enough to know it's running in TeamCity and TeamCity automatically becomes aware and see the zip file in the artifacts tab. When Team City builds a module that has packager, the zip file will show up on the artifacts tab in team city and DNN Packager will inform Team City to post/inform about new builds and zip files. If you have CI processes you can setup deployment process and all kinds of integrated steps/actions.
At this point in the presentation, the famous Shaun Bobble chimed in in with quote, "I'm Still looking for a word better than EPIC to describe the work done here."
Darrell wrapped up by talking about how to get involved... to go to the GitHub ISSUES section and comment on issues and inspiration for new ideas for what he'll develop next!
What's Next for DNN Packager & Darrell?
What's next? Darrell is working on a new Visual Studio interface so that you can have all the trappings of buttons, etc in VS of a DNN Extensions for Visual Studio. So it's a new Project, not based on cs prog or asp.net, etc it's a new project type or project system for DNN. So it's already brought in DNN Packager by default, but then also DNN related item templates like "Module View" etc. So it's yet another way to benefit from DNN Packager and get a leg up on rapid DNN development in Visual Studio.
- VSIX file that allows for simple project creation (DNN Project file) - .DNNProj (similar to .CSProj)
- No need to worry about dependencies - it does it for you
- Idea is that item templates are created to scaffold out different types of projects
- A visual designer for the manifest file
- Can switch to XML view if you want
Ongoing Buzz Around DNN Packager
I can say that at the end of the meeting, everyone was talking about DNN Packager and what this would mean for their next projects and what the Visual Studio template/structure could mean for new developers just getting started. David exclaimed that, "We, as developers, are giddy at this point!" We continued to talk at dinner and then saw many posts on Twitter during the evening. By the time the YouTube video was posted around midnight, there were eager viewers waiting as it had 9 views by the morning!
We closed out the meeting reminding everyone of our upcoming March and April meetings and jumping into the Sponsors Give-Aways for the night. The first was a Jet Brains license... a pretty exciting item that was won by Harald Fichtner from Marion SC and then logo tShirts from Infragisics won by Grant Ehret and myself (which I'll share with my crew)!
Southern Fried DNN - February 2016 User Group Meeting
We've posted the uncut video of the night's meeting and presentation to our YouTube channel. If you missed the meeting, here's your chance to catch up! See you March 10th for our next meeting!