2009-03-25 12 views
8

Mam aplikację, którą chcę (ewentualnie) przekonwertować na ASP.NET MVC. Chcę wykonać kompleksową aktualizację usługi (do ASP.NET), ale chcę używać aktualnych funkcjonalności asp, aby uruchomić bieżącą funkcjonalność, dzięki czemu mogę aktualizować małe elementy podczas robienia kolejnych aktualizacji do nowej struktury. Ta strona jest w dużym stopniu zależna od biblioteki DLL VB6, która nie jest jeszcze bardzo dojrzała, więc będziemy również chcieli ją w końcu uaktualnić, potencjalnie zastępując obecną funkcjonalność usługami sieciowymi. Czy istnieje szybka naprawa, czy też to zadanie to 3-miesięczne zadanie? Jestem pewien, że już wcześniej sądzono, że piękno MVC jest takie, że uważam, że istnieje sposób, aby temu zaradzić, chociaż nie jestem pewien, od czego zacząć. Jaki byłby najszybszy sposób na konwersję tej aplikacji (w ciągu 40 godzin), gdzie mogę po prostu wprowadzić małe zmiany w konfiguracji i działać w ASP.NET MVC?Klasyczna ASP w ASP.NET MVC (C#)

Odpowiedz

7

Krótka odpowiedź brzmi ... Nie możesz. Różnice między klasycznym aspem i asp.net są dość drastyczne nie tylko w składni, ale w ogólnym projekcie. MVC to nie tylko podobna implementacja do klasycznego aspa, chociaż może tak wyglądać. Konwersja zajmie trochę czasu, myśli i wysiłku, aby całkowicie zadziałać.

Dobrą wiadomością jest to, że można uruchomić je SxS, dzięki czemu można faktycznie klasyczny kod asp działa w witrynie, która jest skonfigurowana jako witryna ASP.NET lub ASP.NET MVC. Tak więc przy pomocy taśmy klejącej można zsumować swoje ulepszone rozwiązanie częściowo.

+0

Nie chciałem sugerować, że uważałem je za podobne w jakikolwiek sposób. Dziękuję Ci. Czy mogę zapytać, w opcji "obok siebie", czy istnieje sposób, że możemy przestać rejestrować bibliotekę DLL VB6 i sprawić, aby była ona łatwa do wdrożenia. –

+0

O ile wiem, nadal będziesz musiał zarejestrować bibliotekę DLL, chyba że ponownie ją zapiszesz (przynajmniej jeśli chodzi o klasyczny kod VB). Dzięki .NET możesz odejść od tworzenia współzależności i odwoływania się do nich lokalnie, ale to nie pomoże klasycznemu kodowi, który od tego zależy. –

3

Przepisz swoją bibliotekę DLL VB6 jako zespół COM. Następnie możesz odwoływać się zarówno do ASP, jak i ASP.NET.

Mam nadzieję, że większość ciężkiego podnoszenia znajduje się w bibliotekach DLL VB6. Jeśli tak, możesz rozpocząć migrację stron do ASP.NET MVC, jak chcesz. Trzeba uważać na komunikację między stronami - takie rzeczy jak sesja i pliki cookie. Pliki cookie będą działać tak, jak są, ale musisz przenieść sesję do czegoś, co można współdzielić między MVC i ASP, tak jak serwer Sql. Niestety, wymaga to przepisania twoich wywołań sesji w ASP na coś innego (być może ponownie opakowanie COM wokół składnika .NET). Wyszukiwanie i zamiana powinny jednak wystarczyć.

Co do harmonogramu i ilości pracy, jaką to pociąga - to ładny kontekst zależny od ilości spaghetti w twojej istniejącej aplikacji, ile logiki jest w DLL vs. ASP i ile stron, które przenosisz.

Nie sądzę, że 40 godzin to rozsądna ilość czasu, aby przyspieszyć działanie .NET, MVC i przepisać - choć myślę, że mogą to być 2-3 miesiące.

+0

zależy od programisty, rodzaju posiadanych zasobów szkoleniowych oraz od tego, jak "przyspieszyć" to, czego potrzebują. Pchałbym górne granice do 6-8 miesięcy –

2

Pracuję nad podobnym projektem już od jakiegoś czasu; Mieliśmy klasyczną aplikację ASP i chcieliśmy przenieść ją do ASP.Net (używając WebForms). Robimy to po kawałku na raz, jeśli dodamy nową stronę, robimy to w .Net i po prostu przekierowujemy użytkownika między plikami .asp i .aspx. Praca z MVC nie powinna być inna.

Największym problemem, który napotkaliśmy, było bezpieczeństwo; Witryna wymagała zalogowania się, a sesja nie jest oczywiście dzielona między tymi dwoma. Zajmowaliśmy się tym poprzez utrzymywanie bitów sesji, którym zależy na tabeli w bazie danych i przekazywanie identyfikatora GUID przez ciąg zapytania (robimy to tylko raz przy logowaniu, a następnie usuwamy rekord z bazy danych w celu zmniejszenia zagrożeń bezpieczeństwa).

Powiązane problemy