Technical Specifications

Coordinator
Apr 8, 2008 at 10:48 PM
Edited Apr 11, 2008 at 1:11 AM
A brief collection of technical specifications questions gathered from the original thread that we need to answer before moving forward:

1. Development Platform: Visual Studio 2008_
2. DBMS: Microsoft SQL Server 2005 (Must be able to be opened by Express)
3. Testing Framework NUnit initially.
4. 3rd-party addons: Approved
5. UI Framework: Jquery
7. ASP.Net View Engine to begin with, possibly either building or forking a custom view engine

Questions in debate:
6. Mocking Framework
Apr 8, 2008 at 11:25 PM
1. VS2005 or VS2008? I am an MSDN subscriber so I have access to both VS2005 and and VS2008 Pro - I would need to upgrade my laptop,
2. What DBMS? SQL Server 2005 Standard/developer Edition but allowing for SQL2005 Express compatibility)
3. Testing Framework? (NUnit, MBUnit, MSTest, XUnit....) NUnit for lower level, NUnitASP for the GUI. If we are all using VS2008 Pro, then the built-in testing framework can be used.
4. Use of third-party MVC addons
5. Which UI Framework (asp.net ajax, JQuery, Ext JS,...) ASP.NET and AJAX.NET
6. Which mocking framework NMock?


Coordinator
Apr 8, 2008 at 11:34 PM
1. VS2008
2. SQL Server 2005

4. Yes
5. mixture of JUnit (http://www.junit.com) for the 'front-end' & Ext JS for the 'management' side (http://www.extjs.com)

7. I personally would love write up a custom view engine.


TATWORTH - Can people using VS 2008 Express gain access to the built-in-testing framework? The reason I ask is because if this is going to be a starter kit, we want to make sure that everyone that tries to use it has the capabilities of viewing all components of the project.
Apr 9, 2008 at 12:03 AM
My 2 cents:

1. VS2008
2. SQL Server 2005 Express (which allows for easy transition to Std/Devel)
3. Doesn't really matter (they are all about functionally equivalent), however I have a slight preference for MSTest (although not sure if it works with VWD?)
4. I would prefer to avoid dependencies, however there is some great work out there that can be leveraged
5. JQuery
6. Moq
7. ASP.NET View Engine

Cheers,
-Brad
Apr 9, 2008 at 12:08 AM
1. VS2008
2. SQL Server Express
3. MSTest
4,I agree I would prefer avoiding dependencies, just because I think if it is a sample app, it would be nice to try to do as much as possible with the MS stuff and keep it as simple as possible so new developers can pick it up.
5.JQuery
6.Rhino - I don't reall have a preference here as I am just getting into mocking and Rhino is the only one I have tried
7. ASP.NET View Engine

Mike
Apr 9, 2008 at 7:11 AM
3) NUnit and NUnitAsp are freeware. I am not familiar with MSTest however the post at http://weblogs.asp.net/bsimser/archive/2006/12/08/msbuild-nant-nunit-mstest-and-frustration.aspx is not very encouraging with respect to MSTest.
Apr 9, 2008 at 9:19 AM
1. VS2008 (it looks like we all agree on that)
2. SQLServer 2005 or 2008 but with compatability for express versions (after all if this is going to be a strater kit, you can't expext everyone to have SQLServer)
3. I was going to say MSTest because its built in, but ChanceUSC has a point about MSTest in express editions so maybe Nunit would be better
4. Yes, why reinvent the wheel
5. Asp.Net AJAX
6. Rhino, its what is used in all the MVC demos and projects I have seen so far and there are some nice helper methods available (and it was developed in Israel, and Im Israeli :-))
7. Don't care as long as it supports some type of easy templating
Coordinator
Apr 9, 2008 at 5:36 PM
Edited Apr 9, 2008 at 5:37 PM

ChanceUSC wrote:
A brief collection of technical specifications questions gathered from the original thread that we need to answer before moving forward:

1. Development Platform: Visual Studio 2008_
2. DBMS: Microsoft SQL Server 2005 (Must be able to be opened by Express)
4. 3rd-party addons: Approved

Questions in debate:
3. Testing Framework (NUnit, MBUnit, MSTest, XUnit....)
5. UI Framework (asp.net ajax, JQuery, Ext JS,...)
6. Mocking Framework
7. Use of View Engines (Custom, NVelocity, Brail, NHahml...)

Apr 9, 2008 at 7:50 PM
Edited Apr 9, 2008 at 7:51 PM


ChanceUSC wrote:

ChanceUSC wrote:
A brief collection of technical specifications questions gathered from the original thread that we need to answer before moving forward:

1. Development Platform: Visual Studio 2008_
2. DBMS: Microsoft SQL Server 2005 (Must be able to be opened by Express)
4. 3rd-party addons: Approved

Questions in debate:
3. Testing Framework (NUnit, MBUnit, MSTest, XUnit....)
5. UI Framework (asp.net ajax, JQuery, Ext JS,...)
6. Mocking Framework
7. Use of View Engines (Custom, NVelocity, Brail, NHahml...)


I am not sure the asp.net ajax stuff is where it needs to be to showcase an app like this. Also there controls always seemed very heavy to me. Lots of the MVC folks seem to be using JQuery or prototype. My vote is JQuery because it is lightweight and pretty nice. What do others think?
Coordinator
Apr 9, 2008 at 8:07 PM

mrfleck wrote:


ChanceUSC wrote:

ChanceUSC wrote:
A brief collection of technical specifications questions gathered from the original thread that we need to answer before moving forward:

1. Development Platform: Visual Studio 2008_
2. DBMS: Microsoft SQL Server 2005 (Must be able to be opened by Express)
4. 3rd-party addons: Approved

Questions in debate:
3. Testing Framework (NUnit, MBUnit, MSTest, XUnit....)
5. UI Framework (asp.net ajax, JQuery, Ext JS,...)
6. Mocking Framework
7. Use of View Engines (Custom, NVelocity, Brail, NHahml...)


I am not sure the asp.net ajax stuff is where it needs to be to showcase an app like this. Also there controls always seemed very heavy to me. Lots of the MVC folks seem to be using JQuery or prototype. My vote is JQuery because it is lightweight and pretty nice. What do others think?


I agree completely, one of the best things about the MVC is the freedom it provides. Although you can technically use JQuery in WebForms, it is rather tedious where as the MVC really opens the door for it.

My vote is for JQuery
Coordinator
Apr 10, 2008 at 1:24 AM
I think I generally agree w/ Bradl's list; I'd rather limit the 3rd party add-ons as much as possible (MVC-Contrib, ok, but let's not go overboard w/ the others). The focus here should be on the MVC framework, not the 3rd party hotness.

I'm ok w/ whatever JS we want, I can even roll our own if you like, as needed. One of my peeves,though, is adding a JS framework like Prototype that tries to do it all, and then only using a handful of features from it; that's a lot of wasted bandwidth.

Likewise, as much as I like Silverlight and related stuff, I think we save that for a much later build, again to keep the initial focus on MVC.

That said, I think there may be some value to making a handful of sexy skins, to get the 'ooo' factor from users. Maybe build 2...
Apr 10, 2008 at 1:35 AM


pvencill wrote:
I think I generally agree w/ Bradl's list; I'd rather limit the 3rd party add-ons as much as possible (MVC-Contrib, ok, but let's not go overboard w/ the others). The focus here should be on the MVC framework, not the 3rd party hotness.

I'm ok w/ whatever JS we want, I can even roll our own if you like, as needed. One of my peeves,though, is adding a JS framework like Prototype that tries to do it all, and then only using a handful of features from it; that's a lot of wasted bandwidth.

Likewise, as much as I like Silverlight and related stuff, I think we save that for a much later build, again to keep the initial focus on MVC.

That said, I think there may be some value to making a handful of sexy skins, to get the 'ooo' factor from users. Maybe build 2...

I am al about keeping it simple to begin with and limiting 3rd party stuff. It will have less dependancies, and a smaller learing curve. Keeping it simple will also allow us to succeed pretty quickly with a 1.0 feature set. I agree with the prototype comment and I think that is why I like jquery at on 29k ish packed, it is pretty lean.
Coordinator
Apr 10, 2008 at 12:39 PM
Cool. I've not worked w/ JQuery yet, but I'm good at javascript so I imagine it won't take me long to come up to speed if needed.
Apr 10, 2008 at 4:22 PM
It seems that everyone prefers jquery so although i haven't used it it seems like a good choice due to its small size and easy interface

But i just thought that since this is supposed to be an asp.net starter kit it may make more sense to stick to asp.net ajax
Coordinator
Apr 10, 2008 at 4:52 PM
I've worked with ASP.Net Ajax a lot, and I'll say that in my mind, like Webforms were built to make Winforms developers feel at home on the web, asp.net ajax was built to make webforms developers feel at home in web 2.0. It's a weighty download, and most of it is done to abstract stuff that only needs abstraction if you're not a javascript developer. Just my 2c. When working with webforms, it's hard to beat asp.net ajax. When not. . . not as hard. ;)
Coordinator
Apr 10, 2008 at 5:57 PM
Edited Apr 10, 2008 at 6:00 PM

pvencill wrote:
I've worked with ASP.Net Ajax a lot, and I'll say that in my mind, like Webforms were built to make Winforms developers feel at home on the web, asp.net ajax was built to make webforms developers feel at home in web 2.0. It's a weighty download, and most of it is done to abstract stuff that only needs abstraction if you're not a javascript developer. Just my 2c. When working with webforms, it's hard to beat asp.net ajax. When not. . . not as hard. ;)


Agreed, Asp.net's Ajax is great for it's purpose.. to make ajax development easy within web forms. When you step outside of that realm and into the MVC you are really opening the door to a lot of new and interesting things that have been happening with the web that asp.net web form developers have been sheltered from. JQuery being merely one of them.

I understand the other arguement though, asp.net ajax may be more 'comfortable' to people moving from webforms but I don't think we should tie our hands to satisfy comfortability of transitioning. The reason I say this is because a lot of people that haven't been asp.net developers are extremely interested in asp.net MVC. We don't want to give the impression that they should be using the bloated asp.net ajax package. MVC is about losing weight, we are losing the fat of webforms.. and asp.net ajax :)
Coordinator
Apr 10, 2008 at 7:03 PM


ChanceUSC wrote:MVC is about losing weight, we are losing the fat of webforms.. and asp.net ajax :)


:) maybe we should have some kind of weight-loss theme. . . a la the Biggest Loser. lol
Apr 10, 2008 at 7:42 PM
Well then JQuery it shall be

I guess I should start getting to know it a little better
Apr 10, 2008 at 8:08 PM

ChanceUSC wrote:
TATWORTH - Can people using VS 2008 Express gain access to the built-in-testing framework? The reason I ask is because if this is going to be a starter kit, we want to make sure that everyone that tries to use it has the capabilities of viewing all components of the project.

Possibly not - much as I welcome the unit testing of VS2005 team being available made available to VS2008 Pr, it would be better to use NUnit initially. It would be preferable to have the NUnit test projects named distinctively so we have the option of adding a VS2008 Pro/Team unit test project - this would be necessary if a VS2008 Team users offers to run code coverage tests.
Apr 10, 2008 at 10:36 PM
What about
8. Build scripts (MSBuild, NAnt)
9. Continuous Integration (CC.NET, Draco.NET, TeamCity, ...)

I am a strong believer in getting everything up and running via the command line, so I think we should put some effort into the build system. I worked with MSBuild and CC.NET in the past, hence these would be my recommendations.
However, we have to think about how the CI server can be hosted.
Apr 12, 2008 at 7:39 AM
We need to think about what it is we're trying to show people. We aren't trying to demonstrate how to use a particular javascript framework. So, we should use the best one for the job. I'm all for using jQuery. I'm a prototype guy myself but jQuery looks just as good. If asp.net ajax was... well... less sucky, we might be using that, but i think consensus is we're not.

3. Testing Framework: I like using NUnit and MSTest at the same time
6. Mocking Framework: Moq. If you've not tried it, you should. Once you "get" lambdas, Moq... sings! The only problem with it is it's a little young,


how to include multiple testing frameworks with only one file.

Compilation symbols! Add the following to the top of every test file.

#if NUNIT
using TestClass = NUnit.Framework.TestFixtureAttribute;
using TestMethod = NUnit.Framework.TestAttribute;
using TestInitialize = NUnit.Framework.SetUpAttribute;
using TestCleanup = NUnit.Framework.TearDownAttribute;
#else
using TestClass = Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute;
using TestMethod = Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute;
using TestInitialize = Microsoft.VisualStudio.TestTools.UnitTesting.TestInitializeAttribute;
using TestCleanup = Microsoft.VisualStudio.TestTools.UnitTesting.TestCleanupAttribute;
#endif
using NUnit.Framework.SyntaxHelpers;
using Assert = NUnit.Framework.Assert;
using Moq;

Now, assuming the testing framework in question uses attributes to define test classes and methods, we can add it in the same way. Then just create a build configuration for each which sets the correct symbol, e.g. "Debug with NUnit", "Debug with MbUnit" etc.

As you can see I love the NUnit Assert and SyntaxHelpers. The first time i saw Assert.That( x, Is.Not.Null ) and Assert.That( x, Text.Contains( "jack" ).IgnoreCase ) I was hooked. But now we can use the NUnit Assert with any other framework...

I understand and completely agree with those of you who may say "Pick one and stick with it", but this way everyone can use their favourite framework at the same time...

Just a thought.
Apr 17, 2008 at 10:46 PM
How about a data access layer? One of the LINQ variations, SubSonic, NHibernate...?

I personally like SubSonic.

-k