Coding Standard Wiki - c#

At my place of work I've been put in charge of creating a coding standards document. Generally we follow what FxCop and StyleCop tools report to some degree but what we really require is document that will explain when to use a convention, why and maybe even a simple example.
This could be extended in the future for other purposes as well.
The first thing that came to my mind is to have an internal wiki site that we could build up and change easily over time but I've never used a wiki-based engine before and would like some recommendations.
If possible the engine should be in C# so we're able to tweak it to our needs if required.
If you think a wiki solution is the wrong way to go about this then please give an alternative :)
Update
I've just been informed, although we do have a php server it wont be staying, so I'm afraid php-based wiki ideas are off the table.
Update 2
Could you also (if possible) let me know if any of these solutions work with Active Directory?
Cheers
Tony

ScrewTurn Wiki is an free and open-source wiki made in C# and ASP.Net. Different database back-ends can be used, like MSSQL and MySQL, but also works without any database. It has several plugins to work with Active Directory.

Mindtouch Deki
Great wiki and it's built on C# and PHP, so you can use it on Mono or .NET
It also has Active Directory integration.
Download their ready-to-use VMware image. It started using it on my own PC then moved it to the company's VMware server when they had it ready.

We keep an internal wiki at my shop that has almost all of our documentation (not just coding standards). We didn't really see the need to roll our own so we just used MediaWiki...

We use JAMWiki and love it.
It is a solid application, we have had nothing but good interaction with both the application and the developers.
The guy you maintains the code does a great job answering questions and helping users out.

Brad Abrams has published an online set of C# coding standrds:
http://blogs.msdn.com/brada/articles/361363.aspx
If you go to the starter kits section of the Microsoft ASP.NET site, you will find several wikis to download such as ScrewTurn and Flexwiki. A wiki would be ideal for your needs by the sound of it :-)

I second MediaWiki. It's not C#, but it can be a nice excuse to sneak some free software in through the backdoor.
If you guys are a Microsoft shop, though, and are using Sharepoint, it has some built-in wiki-esque functionality.

In one project that I develop, I set up one MediaWiki wiki for development documentation, and one for online help.
I even generate part of the development documentation right from source code and database.

At the shop I'm at they use a commercial package which is really good: Confluence. What's especially nice is that it integrates with LDAP/AD so that you don't need a seperate login and it's build especially with business use in mind and has lots of free plugins. We couldn't live without it.

I am confused by what you mean when you say you don't have a php server. It runs on every platform known to man. I am noticing most Visual Studio Developers don't know that PHP runs on IIS.
I would go with mediawiki It has the biggest feature set and most add-ons developed for it in case you ever need to port your data elsewhere. If you need to modify your wiki you are doing it wrong.

Related

How to convert an ASPX.net application to WebPart in Sharepoint2007?

I'm starting with Sharepoint.
I have a simple C# application using a database.
I want to show it in Sharepoint2007, and my boss told me that I have to do it with a WebPart, but I've been looking for information and I haven't found it.
Sharepoint 2007 web parts are difficult to build because you need to programmatically build up the presentation layer in your code.
You should definitely use Smart Part as this allows you to develop Web parts like they are user controls in a conventional .Net application.
You should also read up on Sharepoint patterns and practices as it is fairly different in certain aspects.
You could possibly use (see link below) to show data from the DB.
http://blogs.technet.com/b/paulpaa/archive/2010/01/26/data-view-web-part-to-view-data-from-non-sharepoint-database-adventure-works.aspx
However if you want more adaptability and the feeling that you know what your doing(I guess your a developer with some knowledge of c#)
You would possibly be best off going down the coding route. I always say work smart not hard!
Get some tools to make your job easier. WSP.builder for one(Codeplex) and start with something very simple. People say theres not much use in the hello world but it's a great place to start when learning how to deploy, Debug your first sharepoint web part.
What i would advise is.
Read up on how to use WSP builder. This will help you build your Sharepoint projects with the required structure.
You will want to use visual web part feature within wsp builder for this.
Once you know how to deploy this, Should come with reading around wsp builder! you should be well on your way to getting your web part done.
If you ever find it hard keep at it SharePoint can be a tempramental beast! Theres a wealth of knowledge on google exploit it!(Work smart not hard;))
Also if you have your own development area back it up! If it breaks you don't want to have to rebuild it i learnt the hard way!
Hope this helps

Should I start to use Windows Azure

I have just gotten Visual Studio 2010 Pro Academic Version today with the MSDN Free Azure service.
I was wondering should I start develpering it now or start at a latter stage. I have just started to program with .NET and C# but should I learn Azure now or wait untill it is mainstream?
Should I buy more data then the Pro MSDN or just use the default data?
Thanks in advance.
Benny.
If you are just beginning with .Net and C# then I would say no. Its not the time for you to move on to using Azure... but then others might disagree with me. so its your own opinion.
However you don't need to wait it to be mainstream.. Many are already using it extensively. Even if you think its not as much in demand (from job perspective) in your locality then also learning anything thats goin to be used anyway and will become mainstream will make you an expert by then... Its totally depend upon business situation. An other answer has shed some light on this
If you learn something today that isn't yet mainstream, then when it does go mainstream, you might just be an expert that people will pay handsomely for some consulting work.
Also, consider where your product is? Do you really need something super stable and super secure for something you haven't even built yet? I find that by the time I have an application I've built finally come to market, the tools I've used that were "Beta" are now widely used, mainstream, and stable.
Keep in mind that technology moves fast. I've seen developers use tools in a new project that became obsolete by the time the project went to production.
With that said, I agree with Shekar_Pro, Azure, and many other cloud based services, are already widely used and adopted.

Help me to choose the right platform for my Portal from .net, php, php based cms and .net based cms

hi I am planning to develop a site very similar to http://www.nextdaypets.com/ but with some more features...i have worked on JOOMLA n i know it pretty well. but there are few limitation like access level control and there is no component available for what i need. what i m confused about is that whether i should make that component in joomla or should i develop my own cms or should i take some .net based cms and write the component for it. I know C# and .net framework as a beginner. I just completed a certification course in .net last month and i don't know php but don't have issue in learning it...so what should i do...please suggest.
Well, as i understood , all you need to do is to adopt an open source CMS (joomla or drupal) and customise it. If you know a bit of php it will take you a day of expirementing to get familiar with making components & modules for joomla /drupal. Majority of the work you can do by customising the existing stuff and using third party open source components available already. The remaining small delta amount of work, you can code yourself.IF won't be that tough i can assure.
Developing a CMS of your own might not b a good option, as it takes a lot of effort to get a stable one with all features, currently being offered.
Also , if you have a doubt about the platform, i would suggest to stick on to open source platform, rather than Commercial one. The large number of OSComponents available as well as the large community support are factors defenitly you should consider.
writing your own cms is lots of work, so you should consider this carefully. Extending an existing framework could save you a lot of time.
In your case I'd choose a cms which fits well to my purpose and uses a language I'm familar with. So if you like C#, then look for an ASP.NET based cms. Of course, if you like to learn PHP joomla would be a good choise.
Usually, when I have to pick a platform I consider a certain number of variables. For example, does your customer want an open-source or a commercial platform? Is it concerned with being dependent on you for future changes to the system? Does he have already a hosting provider? Will he host the website himself? These are all tech-questions that should be kept in consideration.
I would strongly advice against writing your own CMS. That's a lot of work, and even the best and most tested products hide some bugs. Relying on something that already exists out there, it will speed your development up, as it will allow you to focus on the specific functionalities, and not on the overall system or basic features (client-server architecture, caching, views resolving, itemization, etc. ...).
I've worked quite a lot with many CMS, and in this period my attention is focused mainly on Umbraco, a .NET-based open-source CMS that has many interesting features. I personally don't like Drupal, Joomla, Wordpress, etc.
If you (or you customer) have money to spend and can afford a commercial platform, I would suggest you to take a look at Sharepoint or Sitecore; Sitecore is somewhat conceptually close to Umbraco, whereas Sharepoint is more extensive but there is more work to do to bring it up and running.
If you are looking for an e-commerce platform and PHP doesnt scare you, you could give a try to Magento.
I hope these few names can help you. I mentioned them because of my own personal experience and - to be honest - they are all good products...
Cheers,
Gianluca.

Starting a new Site - Should I "Use a Template" or "Write from Scratch"

I have been thinking of starting a site of my own for long time. I am good at all concepts of C#/ASP.NET and all DB stuff. I have created and can create a site from scratch for myself. But the effort/time involved in creating a site from scratch is little discouraging, where next thing (and more important thing) I need to worry about is the content on the site.
I have seen many sites and blogs (few links below).
I need to know, what is the general approach while creating a similar site?
Are there any general tips i need to be aware of before starting one?
http://naspinski.net
http://codeclimber.net.nz
Do you mean stating you own Blog?
you can open blog on some free service as Blogger and see how it goes.
Later you can buy you own domain name and hosting, install existing Blog engine there(even open source if you want to tweak it) and continue from there.
after comment clarification:
Buy a domain name, buy disk space and traffic from hosting company. Install ant cms(content managment system)/blog/forum/anything else you wan ton the host. Develop only the parts you can't find in existing cms/blog systems. No need to develop everything from scratch. With saved time you can take any open-source blog/cms engine and help them with patches.
Consider some open source C#/asp.net blogging platforms:
Oxite
BlogEngine.NET
Subtext
If you're talking about a blog site, there's no need to reinvent the wheel unless you just want to. There are plenty of capable blog engines in any language of your choice. Go with one and extend it if necessary.
Building your own blog engine is fast and easy. Building a good one is slow and hard. I've written many iterations of my blog - currently version 6 using ASP.NET and C#, and working on the design for version 7.
As to whether it's worth it, that's really your call. Do you code in your free time? Enjoy it? Are you willing to go through the whole lifecycle?
You will be responsible for:
Analysis & Design
Development
Testing
Deployment
Prod support
It's worth it to me. Is it worth it to you?
It really depends how much time you're willing to spend on it and what kind of site.If you want a blog site,there are a lot of free blog engine out there that you can use and takes a little time to make it live.My number one recommendation is blogengine.net...very flexible,a lot of choices for theme,and easy to set up.However, if you're like me that is willing to spend a lot of time building it then go for it.I started building my site....a social networking site(http://www.joecaps.com) December 2008 and until now I'm still building it.

Been a LAMP developer for years, now transitioning to the Microsoft Web Stack. Where do I begin?

I've always worked with the standard Linux web stack (linux, apache, php, python, mysql) but have been given a great job opportunity working with a group that works with the Microsoft Web Stack (IIS, ASP.NET, MSSQL, C#).
There seems to be a pretty good Microsoft following here on SO. Where should I begin? Specific books, tutorials, online resources are appreciated.
ASP.NET MVC will probably seem more familiar to you than ASP.NET WebForms. And honestly, I think that most pro-shops are going to move towards it over the next 5 years.
There are some really good tutorials (the kind that WebForms still doesn't have) at this site.
http://www.asp.net/Learn/mvc/
MSSQL (other than some tweaks to syntax) and IIS will probably be less of a hurdle, unless you'll specifically be administering them. I'd focus on learning C# and ASP.NET.
A good resource for C# is the MSDN C# tutorials.
A good resource for ASP.NET is the ASP.NET Quickstart Site.
RampUp is Microsoft's intro learning site. There are learning paths based on the background of the developer (like you for a LAMP stack)
http://msdn.microsoft.com/en-us/rampup/default.aspx
Additionally, the Asp.Net site has a bunch of tutorials and videos
http://www.asp.net/learn/
The data access tutorials available here from the ASP.NET website are as good a place as any for the experienced IT professional to learn about SQL Server data access in ASP.NET.
Would recommend www.learnvisualstudio.net great for staters.
If books are your best learning source then some I found helpful:
Pro C#
Pro ASP.NET
CLR via C#
The third book is about the common language runtime (what executes compiled C# code).
ASP.Net has a few different approaches. There's inline coding (much like PHP and ASP Classic), code behind and MVC.
To start out I would just stick with inline coding. Working with ASP.Net controls and view states is pretty hairy at first so I'd get familiar with the syntax to start and then move on.
Lot of good web sites in this SO thread. I very much lke MSDN Virtual Labs. They have them on just about every technology in the stack and they let you get your hands on the technology and play around.
You should definitely read a good quality book, about C#, I would recommend a C# 3.0 in a Nutshell, Third Edition book, from O'Reilly.
Then you should look into some MS stack specific pages, as is the CodeProject (www.codeproject.com/) site.
At the end you should start read some interesting blogs, on technologies you will work with.
You definitely should not miss the following ones:
weblogs.asp.net/scottgu/
www.hanselman.com/blog/
haacked.com
That would be for a start. :)
(sorry for missing links, but SO say I am a new user, and I can post only one link. :( )
I would suggest you read C# in Depth by Jon Skeet, who is a user here at SO. It will definitely help you master C#. The rest is gravy.

Categories

Resources